smoothly 1.102.0 → 1.103.0

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 (366) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/{smoothly-app_103.cjs.entry.js → smoothly-app_104.cjs.entry.js} +184 -163
  3. package/dist/cjs/smoothly-app_104.cjs.entry.js.map +1 -0
  4. package/dist/cjs/smoothly-submit.cjs.entry.js +1 -1
  5. package/dist/cjs/smoothly-trigger-sink.cjs.entry.js +1 -1
  6. package/dist/cjs/smoothly-trigger-source.cjs.entry.js +1 -1
  7. package/dist/cjs/smoothly.cjs.js +1 -1
  8. package/dist/collection/collection-manifest.json +1 -0
  9. package/dist/collection/components/input/demo/date/index.js +1 -1
  10. package/dist/collection/components/input/demo/index.js +4 -4
  11. package/dist/collection/components/input/demo/index.js.map +1 -1
  12. package/dist/collection/components/input/demo/price/index.js +1 -1
  13. package/dist/collection/components/input/demo/radio/index.js +36 -0
  14. package/dist/collection/components/input/demo/radio/index.js.map +1 -0
  15. package/dist/collection/components/input/demo/radio/style.css +12 -0
  16. package/dist/collection/components/input/demo/standard/index.js +1 -1
  17. package/dist/collection/components/input/demo/user-input/index.js +3 -3
  18. package/dist/collection/components/input/edit/index.js +1 -1
  19. package/dist/collection/components/input/file/index.js +1 -1
  20. package/dist/collection/components/input/month/index.js +4 -4
  21. package/dist/collection/components/input/radio/item/index.js +1 -1
  22. package/dist/collection/components/input/radio/item/index.js.map +1 -1
  23. package/dist/collection/components/input/radio/item/style.css +10 -1
  24. package/dist/collection/components/input/radio/style.css +1 -0
  25. package/dist/collection/components/input/range/demo/index.js +1 -1
  26. package/dist/collection/components/input/range/index.js +4 -4
  27. package/dist/collection/components/input/reset/index.js +1 -1
  28. package/dist/collection/components/input/select/index.js +3 -3
  29. package/dist/collection/components/input/submit/index.js +1 -1
  30. package/dist/collection/components/item/index.js +1 -1
  31. package/dist/collection/components/label/index.js +2 -2
  32. package/dist/collection/components/lazy/index.js +1 -1
  33. package/dist/collection/components/load-more/index.js +1 -1
  34. package/dist/collection/components/modal/index.js +2 -2
  35. package/dist/collection/components/notification/index.js +1 -1
  36. package/dist/collection/components/notifier/index.js +1 -1
  37. package/dist/collection/components/spinner/index.js +2 -2
  38. package/dist/collection/components/submit/index.js +1 -1
  39. package/dist/collection/components/summary/index.js +1 -1
  40. package/dist/collection/components/table/body/index.js +1 -1
  41. package/dist/collection/components/table/cell/index.js +1 -1
  42. package/dist/collection/components/table/demo/colspan/index.js +1 -1
  43. package/dist/collection/components/table/demo/filler-row/index.js +1 -1
  44. package/dist/collection/components/table/demo/filtered/index.js +5 -5
  45. package/dist/collection/components/table/demo/group/index.js +1 -1
  46. package/dist/collection/components/table/demo/index.js +1 -1
  47. package/dist/collection/components/table/demo/nested-no-cell/index.js +2 -2
  48. package/dist/collection/components/table/demo/nested-no-cell/inner/index.js +1 -1
  49. package/dist/collection/components/table/demo/simple/simple.js +1 -1
  50. package/dist/collection/components/table/expandable/cell/index.js +1 -1
  51. package/dist/collection/components/table/expandable/row/index.js +1 -1
  52. package/dist/collection/components/table/filler-row/index.js +1 -1
  53. package/dist/collection/components/table/foot/index.js +1 -1
  54. package/dist/collection/components/table/group/index.js +1 -1
  55. package/dist/collection/components/table/head/index.js +2 -2
  56. package/dist/collection/components/table/index.js +1 -1
  57. package/dist/collection/components/table/row/index.js +1 -1
  58. package/dist/collection/components/tabs/demo/index.js +1 -1
  59. package/dist/collection/components/tabs/tab/index.js +1 -1
  60. package/dist/collection/components/theme/color/index.js +1 -1
  61. package/dist/collection/components/theme/demo/index.js +1 -1
  62. package/dist/collection/components/theme/guide/index.js +8 -8
  63. package/dist/collection/components/theme/picker/index.js +2 -2
  64. package/dist/collection/components/toggle-switch/demo/index.js +1 -1
  65. package/dist/collection/components/toggle-switch/index.js +1 -1
  66. package/dist/collection/components/trigger/index.js +1 -1
  67. package/dist/collection/components/trigger/sink/index.js +1 -1
  68. package/dist/collection/components/trigger/source/index.js +1 -1
  69. package/dist/components/{p-2d754996.js → p-018f3b07.js} +3 -3
  70. package/dist/components/{p-2d754996.js.map → p-018f3b07.js.map} +1 -1
  71. package/dist/components/{p-5d4481e5.js → p-08527022.js} +2 -2
  72. package/dist/components/{p-5d4481e5.js.map → p-08527022.js.map} +1 -1
  73. package/dist/components/{p-f55ddc88.js → p-08a3d487.js} +30 -30
  74. package/dist/components/{p-f55ddc88.js.map → p-08a3d487.js.map} +1 -1
  75. package/dist/components/{p-e3486f48.js → p-08c44bae.js} +10 -10
  76. package/dist/components/{p-e3486f48.js.map → p-08c44bae.js.map} +1 -1
  77. package/dist/components/{p-1904abe1.js → p-1e5c4418.js} +5 -5
  78. package/dist/components/{p-1904abe1.js.map → p-1e5c4418.js.map} +1 -1
  79. package/dist/components/{p-4051f859.js → p-234932d2.js} +3 -3
  80. package/dist/components/{p-4051f859.js.map → p-234932d2.js.map} +1 -1
  81. package/dist/components/{p-4d3d5d0b.js → p-237af64d.js} +9 -9
  82. package/dist/components/{p-4d3d5d0b.js.map → p-237af64d.js.map} +1 -1
  83. package/dist/components/{p-7a9728b2.js → p-239cce56.js} +3 -3
  84. package/dist/components/{p-7a9728b2.js.map → p-239cce56.js.map} +1 -1
  85. package/dist/components/{p-50304fc1.js → p-2974c59f.js} +3 -3
  86. package/dist/components/{p-50304fc1.js.map → p-2974c59f.js.map} +1 -1
  87. package/dist/components/{p-1062aeb9.js → p-29b5ead7.js} +3 -3
  88. package/dist/components/{p-1062aeb9.js.map → p-29b5ead7.js.map} +1 -1
  89. package/dist/components/{p-f2f0d309.js → p-2d648420.js} +10 -10
  90. package/dist/components/{p-f2f0d309.js.map → p-2d648420.js.map} +1 -1
  91. package/dist/components/{p-1e46b981.js → p-33c30e05.js} +2 -2
  92. package/dist/components/{p-1e46b981.js.map → p-33c30e05.js.map} +1 -1
  93. package/dist/components/{p-b25fbf6e.js → p-36137940.js} +5 -5
  94. package/dist/components/{p-b25fbf6e.js.map → p-36137940.js.map} +1 -1
  95. package/dist/components/{p-a8f5826f.js → p-3d846c0d.js} +11 -11
  96. package/dist/components/{p-a8f5826f.js.map → p-3d846c0d.js.map} +1 -1
  97. package/dist/components/{p-35bfb804.js → p-3f2e92e9.js} +2 -2
  98. package/dist/components/{p-35bfb804.js.map → p-3f2e92e9.js.map} +1 -1
  99. package/dist/components/{p-658906f0.js → p-44a8837c.js} +9 -9
  100. package/dist/components/{p-658906f0.js.map → p-44a8837c.js.map} +1 -1
  101. package/dist/components/p-4c5965cd.js +45 -0
  102. package/dist/components/{p-003a635b.js.map → p-4c5965cd.js.map} +1 -1
  103. package/dist/components/{p-a2a5e7f4.js → p-4cb94746.js} +2 -2
  104. package/dist/components/{p-a2a5e7f4.js.map → p-4cb94746.js.map} +1 -1
  105. package/dist/components/{p-12f62e4d.js → p-4da1c188.js} +6 -6
  106. package/dist/components/{p-12f62e4d.js.map → p-4da1c188.js.map} +1 -1
  107. package/dist/components/{p-a3c25ce5.js → p-4e8a6a86.js} +21 -21
  108. package/dist/components/{p-a3c25ce5.js.map → p-4e8a6a86.js.map} +1 -1
  109. package/dist/components/{p-5cd257ad.js → p-4ee29da5.js} +3 -3
  110. package/dist/components/{p-5cd257ad.js.map → p-4ee29da5.js.map} +1 -1
  111. package/dist/components/{p-55806dd1.js → p-4faf0679.js} +6 -6
  112. package/dist/components/{p-55806dd1.js.map → p-4faf0679.js.map} +1 -1
  113. package/dist/components/{p-5bc54b34.js → p-50d6a16d.js} +2 -2
  114. package/dist/components/{p-5bc54b34.js.map → p-50d6a16d.js.map} +1 -1
  115. package/dist/components/p-52626573.js +123 -0
  116. package/dist/components/{p-c2fb9b51.js.map → p-52626573.js.map} +1 -1
  117. package/dist/components/{p-31603adf.js → p-527dedc1.js} +7 -7
  118. package/dist/components/{p-31603adf.js.map → p-527dedc1.js.map} +1 -1
  119. package/dist/components/{p-d422d58c.js → p-5ac20ff9.js} +3 -3
  120. package/dist/components/{p-d422d58c.js.map → p-5ac20ff9.js.map} +1 -1
  121. package/dist/components/{p-346ba422.js → p-5c9332bf.js} +2 -2
  122. package/dist/components/{p-346ba422.js.map → p-5c9332bf.js.map} +1 -1
  123. package/dist/components/{p-30f4e440.js → p-5eafd1ac.js} +4 -4
  124. package/dist/components/{p-30f4e440.js.map → p-5eafd1ac.js.map} +1 -1
  125. package/dist/components/{p-9ffa8501.js → p-60b2b2bb.js} +9 -9
  126. package/dist/components/{p-9ffa8501.js.map → p-60b2b2bb.js.map} +1 -1
  127. package/dist/components/{p-140b6f3c.js → p-612f2051.js} +5 -5
  128. package/dist/components/{p-140b6f3c.js.map → p-612f2051.js.map} +1 -1
  129. package/dist/components/{p-4dcf5fac.js → p-61a80c6e.js} +21 -21
  130. package/dist/components/{p-4dcf5fac.js.map → p-61a80c6e.js.map} +1 -1
  131. package/dist/components/{p-7b6467fd.js → p-684de2fd.js} +11 -11
  132. package/dist/components/{p-7b6467fd.js.map → p-684de2fd.js.map} +1 -1
  133. package/dist/components/{p-14e31e4a.js → p-6bda7e35.js} +10 -10
  134. package/dist/components/{p-14e31e4a.js.map → p-6bda7e35.js.map} +1 -1
  135. package/dist/components/{p-76cc6651.js → p-6ea452d9.js} +2 -2
  136. package/dist/components/{p-76cc6651.js.map → p-6ea452d9.js.map} +1 -1
  137. package/dist/components/{p-37732412.js → p-70b61978.js} +2 -2
  138. package/dist/components/{p-37732412.js.map → p-70b61978.js.map} +1 -1
  139. package/dist/components/{p-3a1a67e7.js → p-723edf05.js} +3 -3
  140. package/dist/components/{p-3a1a67e7.js.map → p-723edf05.js.map} +1 -1
  141. package/dist/components/{p-e48ad105.js → p-75916f5e.js} +2 -2
  142. package/dist/components/{p-e48ad105.js.map → p-75916f5e.js.map} +1 -1
  143. package/dist/components/{p-4a5c24c0.js → p-760a7e6a.js} +22 -22
  144. package/dist/components/{p-4a5c24c0.js.map → p-760a7e6a.js.map} +1 -1
  145. package/dist/components/{p-e7dcaec1.js → p-795bda50.js} +2 -2
  146. package/dist/components/{p-e7dcaec1.js.map → p-795bda50.js.map} +1 -1
  147. package/dist/components/{p-c9126eb3.js → p-83676034.js} +34 -34
  148. package/dist/components/{p-c9126eb3.js.map → p-83676034.js.map} +1 -1
  149. package/dist/components/{p-d8c97dde.js → p-84ba0025.js} +3 -3
  150. package/dist/components/{p-d8c97dde.js.map → p-84ba0025.js.map} +1 -1
  151. package/dist/components/{p-40d2000b.js → p-85ed9f7d.js} +2 -2
  152. package/dist/components/{p-40d2000b.js.map → p-85ed9f7d.js.map} +1 -1
  153. package/dist/components/{p-96fff9ba.js → p-8f9e26ce.js} +7 -7
  154. package/dist/components/{p-96fff9ba.js.map → p-8f9e26ce.js.map} +1 -1
  155. package/dist/components/{p-0e242fdd.js → p-974b3a13.js} +4 -4
  156. package/dist/components/{p-0e242fdd.js.map → p-974b3a13.js.map} +1 -1
  157. package/dist/components/{p-90cf2f0e.js → p-9ad494c1.js} +2 -2
  158. package/dist/components/{p-90cf2f0e.js.map → p-9ad494c1.js.map} +1 -1
  159. package/dist/components/{p-02c38067.js → p-9aeab5df.js} +5 -5
  160. package/dist/components/{p-02c38067.js.map → p-9aeab5df.js.map} +1 -1
  161. package/dist/components/{p-e9905fbc.js → p-a66e99e6.js} +17 -17
  162. package/dist/components/{p-e9905fbc.js.map → p-a66e99e6.js.map} +1 -1
  163. package/dist/components/{p-0b3f1a79.js → p-a76a4d76.js} +2 -2
  164. package/dist/components/{p-0b3f1a79.js.map → p-a76a4d76.js.map} +1 -1
  165. package/dist/components/{p-b494ebd3.js → p-aac05986.js} +9 -9
  166. package/dist/components/{p-b494ebd3.js.map → p-aac05986.js.map} +1 -1
  167. package/dist/components/{p-c4637f18.js → p-aac4d78f.js} +9 -9
  168. package/dist/components/{p-c4637f18.js.map → p-aac4d78f.js.map} +1 -1
  169. package/dist/components/{p-bb94849f.js → p-ac63635b.js} +2 -2
  170. package/dist/components/{p-bb94849f.js.map → p-ac63635b.js.map} +1 -1
  171. package/dist/components/{p-581d3377.js → p-ad918487.js} +6 -6
  172. package/dist/components/{p-581d3377.js.map → p-ad918487.js.map} +1 -1
  173. package/dist/components/{p-e04a506b.js → p-adb5afee.js} +11 -11
  174. package/dist/components/{p-e04a506b.js.map → p-adb5afee.js.map} +1 -1
  175. package/dist/components/{p-fdf5432e.js → p-aee7c7ad.js} +8 -8
  176. package/dist/components/{p-fdf5432e.js.map → p-aee7c7ad.js.map} +1 -1
  177. package/dist/components/{p-6aaf93a3.js → p-b2be4c15.js} +13 -13
  178. package/dist/components/{p-6aaf93a3.js.map → p-b2be4c15.js.map} +1 -1
  179. package/dist/components/{p-c172bb64.js → p-b34956f3.js} +8 -8
  180. package/dist/components/{p-c172bb64.js.map → p-b34956f3.js.map} +1 -1
  181. package/dist/components/{p-753658b4.js → p-b4919dec.js} +2 -2
  182. package/dist/components/{p-753658b4.js.map → p-b4919dec.js.map} +1 -1
  183. package/dist/components/{p-4f0ce21b.js → p-b52a6734.js} +3 -3
  184. package/dist/components/{p-4f0ce21b.js.map → p-b52a6734.js.map} +1 -1
  185. package/dist/components/{p-3abf736a.js → p-b5752ca0.js} +5 -5
  186. package/dist/components/{p-3abf736a.js.map → p-b5752ca0.js.map} +1 -1
  187. package/dist/components/{p-2779565d.js → p-b80060f3.js} +2 -2
  188. package/dist/components/{p-2779565d.js.map → p-b80060f3.js.map} +1 -1
  189. package/dist/components/{p-a4614780.js → p-bb65b34c.js} +2 -2
  190. package/dist/components/{p-a4614780.js.map → p-bb65b34c.js.map} +1 -1
  191. package/dist/components/p-bd4239d1.js +282 -0
  192. package/dist/components/p-bd4239d1.js.map +1 -0
  193. package/dist/components/{p-71fa6386.js → p-c26e4c8e.js} +4 -4
  194. package/dist/components/{p-71fa6386.js.map → p-c26e4c8e.js.map} +1 -1
  195. package/dist/components/{p-dea4659e.js → p-c3625434.js} +3 -3
  196. package/dist/components/{p-dea4659e.js.map → p-c3625434.js.map} +1 -1
  197. package/dist/components/{p-3fa2299b.js → p-c37e4491.js} +2 -2
  198. package/dist/components/{p-3fa2299b.js.map → p-c37e4491.js.map} +1 -1
  199. package/dist/components/{p-fb97b2ff.js → p-c4674baf.js} +4 -4
  200. package/dist/components/p-c4674baf.js.map +1 -0
  201. package/dist/components/{p-7550fc08.js → p-c669761d.js} +2 -2
  202. package/dist/components/{p-7550fc08.js.map → p-c669761d.js.map} +1 -1
  203. package/dist/components/{p-19d93e64.js → p-c9caeeb4.js} +2 -2
  204. package/dist/components/{p-19d93e64.js.map → p-c9caeeb4.js.map} +1 -1
  205. package/dist/components/{p-ec815cfd.js → p-cb02f661.js} +7 -7
  206. package/dist/components/{p-ec815cfd.js.map → p-cb02f661.js.map} +1 -1
  207. package/dist/components/{p-93141817.js → p-ccb418c1.js} +10 -10
  208. package/dist/components/{p-93141817.js.map → p-ccb418c1.js.map} +1 -1
  209. package/dist/components/{p-6d1e5f27.js → p-ce52b5f8.js} +3 -3
  210. package/dist/components/p-ce52b5f8.js.map +1 -0
  211. package/dist/components/p-dccf0678.js +74 -0
  212. package/dist/components/p-dccf0678.js.map +1 -0
  213. package/dist/components/{p-97e22dc3.js → p-e44568a9.js} +4 -4
  214. package/dist/components/{p-97e22dc3.js.map → p-e44568a9.js.map} +1 -1
  215. package/dist/components/{p-9bcdd1ec.js → p-e72aaf1f.js} +6 -6
  216. package/dist/components/{p-9bcdd1ec.js.map → p-e72aaf1f.js.map} +1 -1
  217. package/dist/components/{p-211c0f22.js → p-e779a545.js} +3 -3
  218. package/dist/components/{p-211c0f22.js.map → p-e779a545.js.map} +1 -1
  219. package/dist/components/{p-6008d530.js → p-ea295759.js} +4 -4
  220. package/dist/components/{p-6008d530.js.map → p-ea295759.js.map} +1 -1
  221. package/dist/components/{p-e32d9cd5.js → p-eada567a.js} +5 -5
  222. package/dist/components/{p-e32d9cd5.js.map → p-eada567a.js.map} +1 -1
  223. package/dist/components/{p-d4f3568a.js → p-ed3f781f.js} +18 -18
  224. package/dist/components/{p-d4f3568a.js.map → p-ed3f781f.js.map} +1 -1
  225. package/dist/components/{p-6f96e7ef.js → p-ef0cb600.js} +2 -2
  226. package/dist/components/{p-6f96e7ef.js.map → p-ef0cb600.js.map} +1 -1
  227. package/dist/components/{p-4441247b.js → p-efb6497e.js} +6 -6
  228. package/dist/components/{p-4441247b.js.map → p-efb6497e.js.map} +1 -1
  229. package/dist/components/{p-aff94100.js → p-f0fc48a4.js} +5 -5
  230. package/dist/components/{p-aff94100.js.map → p-f0fc48a4.js.map} +1 -1
  231. package/dist/components/{p-6a11096b.js → p-f1b7920d.js} +2 -2
  232. package/dist/components/{p-6a11096b.js.map → p-f1b7920d.js.map} +1 -1
  233. package/dist/components/{p-04b312ca.js → p-f4a54d1b.js} +2 -2
  234. package/dist/components/{p-04b312ca.js.map → p-f4a54d1b.js.map} +1 -1
  235. package/dist/components/{p-064f3907.js → p-f5bbd838.js} +3 -3
  236. package/dist/components/{p-064f3907.js.map → p-f5bbd838.js.map} +1 -1
  237. package/dist/components/{p-6e8454e3.js → p-f7d8bf2d.js} +8 -8
  238. package/dist/components/{p-6e8454e3.js.map → p-f7d8bf2d.js.map} +1 -1
  239. package/dist/components/{p-c259b478.js → p-fd1366e6.js} +12 -12
  240. package/dist/components/{p-c259b478.js.map → p-fd1366e6.js.map} +1 -1
  241. package/dist/components/{p-2ef8a833.js → p-fd230d2b.js} +2 -2
  242. package/dist/components/{p-2ef8a833.js.map → p-fd230d2b.js.map} +1 -1
  243. package/dist/components/smoothly-app-demo.js +156 -150
  244. package/dist/components/smoothly-app-demo.js.map +1 -1
  245. package/dist/components/smoothly-app-room.js +1 -1
  246. package/dist/components/smoothly-app.js +1 -1
  247. package/dist/components/smoothly-button-demo-standard.js +1 -1
  248. package/dist/components/smoothly-button-demo.js +1 -1
  249. package/dist/components/smoothly-calendar.js +1 -1
  250. package/dist/components/smoothly-dialog-demo.js +1 -1
  251. package/dist/components/smoothly-dialog.js +1 -1
  252. package/dist/components/smoothly-display-demo.js +1 -1
  253. package/dist/components/smoothly-filter-field.js +1 -1
  254. package/dist/components/smoothly-filter-input.js +1 -1
  255. package/dist/components/smoothly-filter-select.js +1 -1
  256. package/dist/components/smoothly-filter.js +1 -1
  257. package/dist/components/smoothly-form-demo-all.js +1 -1
  258. package/dist/components/smoothly-form-demo-card.js +1 -1
  259. package/dist/components/smoothly-form-demo-controlled.js +1 -1
  260. package/dist/components/smoothly-form-demo-date-range.js +1 -1
  261. package/dist/components/smoothly-form-demo-date.js +1 -1
  262. package/dist/components/smoothly-form-demo-login.js +1 -1
  263. package/dist/components/smoothly-form-demo-pet.js +1 -1
  264. package/dist/components/smoothly-form-demo-prices.js +1 -1
  265. package/dist/components/smoothly-form-demo-schedule.js +1 -1
  266. package/dist/components/smoothly-form-demo-transparent.js +1 -1
  267. package/dist/components/smoothly-form-demo-typed.js +1 -1
  268. package/dist/components/smoothly-form-demo.js +1 -1
  269. package/dist/components/smoothly-form.js +1 -1
  270. package/dist/components/smoothly-icon-demo.js +1 -1
  271. package/dist/components/smoothly-input-checkbox-demo.js +20 -20
  272. package/dist/components/smoothly-input-checkbox.js +1 -1
  273. package/dist/components/smoothly-input-clear.js +1 -1
  274. package/dist/components/smoothly-input-color-demo.js +1 -1
  275. package/dist/components/smoothly-input-color.js +1 -1
  276. package/dist/components/smoothly-input-date-demo.js +1 -1
  277. package/dist/components/smoothly-input-date-range.js +1 -1
  278. package/dist/components/smoothly-input-date-time.js +1 -1
  279. package/dist/components/smoothly-input-date.js +1 -1
  280. package/dist/components/smoothly-input-demo-radio.d.ts +11 -0
  281. package/dist/components/smoothly-input-demo-radio.js +8 -0
  282. package/dist/components/smoothly-input-demo-radio.js.map +1 -0
  283. package/dist/components/smoothly-input-demo-standard.js +1 -1
  284. package/dist/components/smoothly-input-demo-user-input.js +1 -1
  285. package/dist/components/smoothly-input-demo.js +1 -1
  286. package/dist/components/smoothly-input-edit.js +1 -1
  287. package/dist/components/smoothly-input-file.js +1 -1
  288. package/dist/components/smoothly-input-month.js +1 -1
  289. package/dist/components/smoothly-input-price-demo.js +1 -1
  290. package/dist/components/smoothly-input-radio-item.js +1 -1
  291. package/dist/components/smoothly-input-radio.js +1 -1
  292. package/dist/components/smoothly-input-range-demo.js +1 -1
  293. package/dist/components/smoothly-input-range.js +1 -1
  294. package/dist/components/smoothly-input-reset.js +1 -1
  295. package/dist/components/smoothly-input-select.js +1 -1
  296. package/dist/components/smoothly-input-submit.js +1 -1
  297. package/dist/components/smoothly-input.js +1 -1
  298. package/dist/components/smoothly-item.js +1 -1
  299. package/dist/components/smoothly-label.js +1 -1
  300. package/dist/components/smoothly-lazy.js +1 -1
  301. package/dist/components/smoothly-load-more.js +1 -1
  302. package/dist/components/smoothly-modal.js +1 -1
  303. package/dist/components/smoothly-notification.js +1 -1
  304. package/dist/components/smoothly-notifier.js +1 -1
  305. package/dist/components/smoothly-spinner.js +1 -1
  306. package/dist/components/smoothly-submit.js +1 -1
  307. package/dist/components/smoothly-summary.js +1 -1
  308. package/dist/components/smoothly-tab.js +1 -1
  309. package/dist/components/smoothly-table-body.js +1 -1
  310. package/dist/components/smoothly-table-cell.js +1 -1
  311. package/dist/components/smoothly-table-demo-colspan.js +1 -1
  312. package/dist/components/smoothly-table-demo-filler-row.js +1 -1
  313. package/dist/components/smoothly-table-demo-filtered.js +1 -1
  314. package/dist/components/smoothly-table-demo-group.js +1 -1
  315. package/dist/components/smoothly-table-demo-nested-no-cell-inner.js +1 -1
  316. package/dist/components/smoothly-table-demo-nested-no-cell.js +1 -1
  317. package/dist/components/smoothly-table-demo-simple.js +1 -1
  318. package/dist/components/smoothly-table-demo.js +1 -1
  319. package/dist/components/smoothly-table-expandable-cell.js +1 -1
  320. package/dist/components/smoothly-table-expandable-row.js +1 -1
  321. package/dist/components/smoothly-table-filler-row.js +1 -1
  322. package/dist/components/smoothly-table-foot.js +1 -1
  323. package/dist/components/smoothly-table-head.js +1 -1
  324. package/dist/components/smoothly-table-row-group.js +1 -1
  325. package/dist/components/smoothly-table-row.js +1 -1
  326. package/dist/components/smoothly-table.js +1 -1
  327. package/dist/components/smoothly-tabs-demo.js +1 -1
  328. package/dist/components/smoothly-theme-color.js +1 -1
  329. package/dist/components/smoothly-theme-colors.js +1 -1
  330. package/dist/components/smoothly-theme-demo.js +1 -1
  331. package/dist/components/smoothly-theme-guide.js +1 -1
  332. package/dist/components/smoothly-theme-picker.js +1 -1
  333. package/dist/components/smoothly-toggle-switch-demo.js +1 -1
  334. package/dist/components/smoothly-toggle-switch.js +1 -1
  335. package/dist/components/smoothly-trigger-sink.js +1 -1
  336. package/dist/components/smoothly-trigger-source.js +1 -1
  337. package/dist/components/smoothly-trigger.js +1 -1
  338. package/dist/esm/loader.js +1 -1
  339. package/dist/esm/{smoothly-app_103.entry.js → smoothly-app_104.entry.js} +184 -164
  340. package/dist/esm/smoothly-app_104.entry.js.map +1 -0
  341. package/dist/esm/smoothly-submit.entry.js +1 -1
  342. package/dist/esm/smoothly-trigger-sink.entry.js +1 -1
  343. package/dist/esm/smoothly-trigger-source.entry.js +1 -1
  344. package/dist/esm/smoothly.js +1 -1
  345. package/dist/smoothly/{p-1591ed71.entry.js → p-2009497a.entry.js} +2 -2
  346. package/dist/smoothly/{p-bcf83be6.entry.js → p-24c44cdc.entry.js} +2 -2
  347. package/dist/smoothly/{p-5b91cbdd.entry.js → p-ad9cd2da.entry.js} +2 -2
  348. package/dist/smoothly/p-ad9cd2da.entry.js.map +1 -0
  349. package/dist/smoothly/{p-a00d7c21.entry.js → p-c04ed5b3.entry.js} +2 -2
  350. package/dist/smoothly/smoothly.esm.js +1 -1
  351. package/dist/smoothly/smoothly.esm.js.map +1 -1
  352. package/dist/types/components/input/demo/radio/index.d.ts +5 -0
  353. package/dist/types/components.d.ts +13 -0
  354. package/package.json +1 -1
  355. package/dist/cjs/smoothly-app_103.cjs.entry.js.map +0 -1
  356. package/dist/components/p-003a635b.js +0 -45
  357. package/dist/components/p-6d1e5f27.js.map +0 -1
  358. package/dist/components/p-7c487e25.js +0 -264
  359. package/dist/components/p-7c487e25.js.map +0 -1
  360. package/dist/components/p-c2fb9b51.js +0 -123
  361. package/dist/components/p-fb97b2ff.js.map +0 -1
  362. package/dist/esm/smoothly-app_103.entry.js.map +0 -1
  363. package/dist/smoothly/p-5b91cbdd.entry.js.map +0 -1
  364. /package/dist/smoothly/{p-1591ed71.entry.js.map → p-2009497a.entry.js.map} +0 -0
  365. /package/dist/smoothly/{p-bcf83be6.entry.js.map → p-24c44cdc.entry.js.map} +0 -0
  366. /package/dist/smoothly/{p-a00d7c21.entry.js.map → p-c04ed5b3.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"file":"smoothly-app.smoothly-app-demo.smoothly-app-room.smoothly-back-to-top.smoothly-burger.smoothly-button.smoothly-button-confirm.smoothly-button-demo.smoothly-button-demo-standard.smoothly-calendar.smoothly-date-text.smoothly-dialog.smoothly-dialog-demo.smoothly-display.smoothly-display-demo.smoothly-display-demo-json.smoothly-display-json.smoothly-display-json-object.smoothly-display-json-primitive.smoothly-display-json-record-key.smoothly-filter.smoothly-filter-field.smoothly-filter-input.smoothly-filter-select.smoothly-filter-toggle.smoothly-form.smoothly-form-demo.smoothly-form-demo-all.smoothly-form-demo-card.smoothly-form-demo-controlled.smoothly-form-demo-date.smoothly-form-demo-date-range.smoothly-form-demo-login.smoothly-form-demo-pet.smoothly-form-demo-prices.smoothly-form-demo-schedule.smoothly-form-demo-transparent.smoothly-form-demo-typed.smoothly-frame.smoothly-icon.smoothly-icon-demo.smoothly-input.smoothly-input-checkbox.smoothly-input-clear.smoothly-input-color.smoothly-input-color-demo.smoothly-input-date.smoothly-input-date-demo.smoothly-input-date-range.smoothly-input-date-time.smoothly-input-demo.smoothly-input-demo-standard.smoothly-input-demo-user-input.smoothly-input-edit.smoothly-input-file.smoothly-input-month.smoothly-input-price-demo.smoothly-input-radio.smoothly-input-radio-item.smoothly-input-range.smoothly-input-range-demo.smoothly-input-reset.smoothly-input-select.smoothly-input-submit.smoothly-item.smoothly-label.smoothly-lazy.smoothly-load-more.smoothly-modal.smoothly-notification.smoothly-notifier.smoothly-spinner.smoothly-summary.smoothly-tab.smoothly-table.smoothly-table-body.smoothly-table-cell.smoothly-table-demo.smoothly-table-demo-colspan.smoothly-table-demo-filler-row.smoothly-table-demo-filtered.smoothly-table-demo-group.smoothly-table-demo-nested-no-cell.smoothly-table-demo-nested-no-cell-inner.smoothly-table-demo-simple.smoothly-table-expandable-cell.smoothly-table-expandable-row.smoothly-table-filler-row.smoothly-table-foot.smoothly-table-head.smoothly-table-row.smoothly-table-row-group.smoothly-tabs.smoothly-tabs-demo.smoothly-theme-color.smoothly-theme-color-variant.smoothly-theme-colors.smoothly-theme-demo.smoothly-theme-guide.smoothly-theme-picker.smoothly-toggle-switch.smoothly-toggle-switch-demo.smoothly-trigger.entry.js","mappings":"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M;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,IAAI;AAChB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,YAAY,KAAK;AACjB,YAAY,KAAK;AACjB,YAAY,KAAK;AACjB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAA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","names":["Type","isoly.Locale","isoly.Language","styleCss","parse","URLPattern","isoly.Date","generate.weekdays","generate.month","DateFormat","handlers","add","Handler","Base","isoly.DateTime","isoly.TimeSpan","isoly.Currency","tidily.format","tidily.get","isly.object","create","Message_1","Level_1","require$$0","ConsoleHandler_1","Position_1","Location_1","Region_1","_Error","require$$1","require$$2","require$$3","require$$4","require$$5","User_1","Endpoint_1","Authority_1","Locator_1","Uri","Device_1","InDevice_1","Reader_1","BufferedReader_1","Error","__awaiter","this","StringReader_1","FileReader_1","fs","path","FolderReader_1","Enumerator_1","Enumerable_1","ArrayEnumerator_1","BufferedEnumerator_1","String","Utilities","OutDevice_1","Writer_1","Utilities_1","Indenter_1","PrefixReader_1","FileWriter_1","TillReader_1","UntilReader_1","IO","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","Source","Array","Boolean","SType","Number","TArray","TString","TNumber","TBoolean","TCompletion","TUnion","TCompletor","complete","lexer.tokenize","parsers","isly.function","isly.string","isly.record","selectively.and","selectively.parse","selectively.And","selectively.Property","selectively.Includes","selectively.property","selectively.includes","selectively.Within","selectively.Contains","selectively.Is","selectively.Rule","selectively.contains","selectively.within","selectively.is","selectively.Not","selectively.not","property","fields","Header","to","CamelCase.from","from","CamelCase.to","RequestHeader","Serializer.serialize","Parser.parse","__classPrivateFieldGet","__classPrivateFieldSet","Socket","ArrayBuffer","SocketJson","SocketString","SocketArrayBuffer","SocketFactory","Response","ResponseHeader","Platform.Response","ResponseLike","FormData","Parser.add","Search.parse","Serializer.add","Search.stringify","EditableObserver","isly.boolean","isly.any","http\n .fetch","http.Request","http.Search.stringify","isly.fromIs","isoly.DateRange","SmoothlyFormDemoPrices","isly.number","isoly.CountryCode.Alpha2","isoly.CountryCode.Name.en.from","Message","tidily.Selection","tidily.State","tidily.StateEditor","generate.years","generate.months","isly.Type","http.fetch","selectively.filter","SmoothlyThemeColors"],"sources":["node_modules/isly/dist/mjs/any/index.js","src/model/getLocale.ts","src/components/app/style.css?tag=smoothly-app","src/components/app/index.tsx","src/components/app/demo/index.tsx","node_modules/urlpattern-polyfill/dist/urlpattern.js","node_modules/urlpattern-polyfill/index.js","src/components/app/room/style.css?tag=smoothly-app-room&encapsulation=scoped","src/components/app/room/index.tsx","src/components/back-to-top/style.scss?tag=smoothly-back-to-top&encapsulation=scoped","src/components/back-to-top/index.tsx","src/components/burger/style.css?tag=smoothly-burger&encapsulation=scoped","src/components/burger/index.tsx","src/components/button/style.css?tag=smoothly-button&encapsulation=scoped","src/components/button/index.tsx","src/components/confirm/style.css?tag=smoothly-button-confirm&encapsulation=scoped","src/components/confirm/index.tsx","src/components/button/demo/style.css?tag=smoothly-button-demo","src/components/button/demo/index.tsx","src/components/button/demo/standard/style.css?tag=smoothly-button-demo-standard&encapsulation=scoped","src/components/button/demo/standard/index.tsx","src/components/calendar/generate.ts","src/components/calendar/style.css?tag=smoothly-calendar&encapsulation=scoped","src/components/calendar/index.tsx","src/components/input/date/text/DateFormat.ts","src/components/input/date/text/InputSelection.ts","src/components/input/date/text/style.css?tag=smoothly-date-text&encapsulation=scoped","src/components/input/date/text/index.tsx","src/components/dialog/style.css?tag=smoothly-dialog&encapsulation=scoped","src/components/dialog/index.tsx","src/components/dialog/demo/style.css?tag=smoothly-dialog-demo&encapsulation=scoped","src/components/dialog/demo/index.tsx","node_modules/tidily/dist/mjs/getAdjecentWordBreakIndex.js","node_modules/tidily/dist/mjs/Selection.js","node_modules/tidily/dist/mjs/State.js","node_modules/tidily/dist/mjs/StateEditor.js","node_modules/tidily/dist/mjs/Action.js","node_modules/tidily/dist/mjs/Handler/base.js","node_modules/tidily/dist/mjs/Handler/card-csc.js","node_modules/tidily/dist/mjs/Handler/card-expires.js","node_modules/tidily/dist/mjs/Handler/card-number.js","node_modules/tidily/dist/mjs/DateFormat.js","node_modules/tidily/dist/mjs/Handler/date/Base.js","node_modules/tidily/dist/mjs/Handler/date/dmy.js","node_modules/tidily/dist/mjs/Handler/date/mdy.js","node_modules/tidily/dist/mjs/Handler/date/ymd.js","node_modules/tidily/dist/mjs/Handler/date-time.js","node_modules/tidily/dist/mjs/Handler/divisor.js","node_modules/tidily/dist/mjs/Handler/duration.js","node_modules/tidily/dist/mjs/Handler/email.js","node_modules/tidily/dist/mjs/Handler/identifier.js","node_modules/tidily/dist/mjs/Handler/identity-number.js","node_modules/tidily/dist/mjs/Handler/integer.js","node_modules/tidily/dist/mjs/Handler/password.js","node_modules/tidily/dist/mjs/Handler/percent.js","node_modules/tidily/dist/mjs/Handler/phonePrefix.js","node_modules/tidily/dist/mjs/Handler/phone.js","node_modules/tidily/dist/mjs/Handler/postal-code.js","node_modules/tidily/dist/mjs/Handler/price.js","node_modules/tidily/dist/mjs/Handler/text.js","node_modules/tidily/dist/mjs/Handler/hex-color.js","src/components/display/style.css?tag=smoothly-display&encapsulation=scoped","src/components/display/index.tsx","src/components/display/demo/index.tsx","src/components/display/demo/json/index.tsx","src/components/display/json/JsonValue.tsx","src/components/display/json/style.css?tag=smoothly-display-json&encapsulation=scoped","src/components/display/json/index.tsx","src/components/display/json/object/style.css?tag=smoothly-display-json-object&encapsulation=scoped","src/components/display/json/object/index.tsx","src/components/display/json/primitive/style.css?tag=smoothly-display-json-primitive&encapsulation=scoped","src/components/display/json/primitive/index.tsx","src/components/display/json/object/key/style.css?tag=smoothly-display-json-record-key&encapsulation=scoped","src/components/display/json/object/key/index.tsx","node_modules/selectively/dist/mjs/Rule.js","node_modules/selectively/dist/mjs/Always.js","node_modules/selectively/dist/mjs/Any.js","node_modules/selectively/dist/mjs/And.js","node_modules/selectively/dist/mjs/Criteria.js","node_modules/@cogneco/mend/build/Error/Level.js","node_modules/@cogneco/mend/build/Error/Message.js","node_modules/@cogneco/mend/build/Error/ConsoleHandler.js","node_modules/@cogneco/mend/build/Error/Position.js","node_modules/@cogneco/mend/build/Error/Location.js","node_modules/@cogneco/mend/build/Error/Region.js","node_modules/@cogneco/mend/build/Error/index.js","node_modules/@cogneco/mend/build/Uri/User.js","node_modules/@cogneco/mend/build/Uri/Endpoint.js","node_modules/@cogneco/mend/build/Uri/Authority.js","node_modules/@cogneco/mend/build/Uri/Locator.js","node_modules/@cogneco/mend/build/Uri/index.js","node_modules/@cogneco/mend/build/IO/Device.js","node_modules/@cogneco/mend/build/IO/InDevice.js","node_modules/@cogneco/mend/build/IO/Reader.js","node_modules/@cogneco/mend/build/IO/BufferedReader.js","node_modules/@cogneco/mend/build/IO/fs.browser.js","node_modules/@cogneco/mend/build/IO/path.browser.js","node_modules/@cogneco/mend/build/IO/StringReader.js","node_modules/@cogneco/mend/build/IO/FileReader.js","node_modules/@cogneco/mend/build/IO/FolderReader.js","node_modules/@cogneco/mend/build/Utilities/Enumerator.js","node_modules/@cogneco/mend/build/Utilities/Enumerable.js","node_modules/@cogneco/mend/build/Utilities/ArrayEnumerator.js","node_modules/@cogneco/mend/build/Utilities/BufferedEnumerator.js","node_modules/@cogneco/mend/build/Utilities/String.js","node_modules/@cogneco/mend/build/Utilities/index.js","node_modules/@cogneco/mend/build/IO/OutDevice.js","node_modules/@cogneco/mend/build/IO/Writer.js","node_modules/@cogneco/mend/build/IO/Indenter.js","node_modules/@cogneco/mend/build/IO/PrefixReader.js","node_modules/@cogneco/mend/build/IO/FileWriter.js","node_modules/@cogneco/mend/build/IO/TillReader.js","node_modules/@cogneco/mend/build/IO/UntilReader.js","node_modules/@cogneco/mend/build/IO/index.js","node_modules/@cogneco/mend/build/index.js","node_modules/selectively/dist/mjs/lexer/Source.js","node_modules/selectively/dist/mjs/lexer/index.js","node_modules/selectively/dist/mjs/Type/Base.js","node_modules/selectively/dist/mjs/Type/Array.js","node_modules/selectively/dist/mjs/Type/Cursor.js","node_modules/selectively/dist/mjs/Type/Completion.js","node_modules/selectively/dist/mjs/Type/Boolean.js","node_modules/selectively/dist/mjs/Type/Completor.js","node_modules/selectively/dist/mjs/Type/Number.js","node_modules/selectively/dist/mjs/Type/Object.js","node_modules/selectively/dist/mjs/Type/String.js","node_modules/selectively/dist/mjs/Type/Union.js","node_modules/selectively/dist/mjs/Type/index.js","node_modules/selectively/dist/mjs/EndsWith.js","node_modules/selectively/dist/mjs/Every.js","node_modules/selectively/dist/mjs/FunctionCall.js","node_modules/selectively/dist/mjs/Expression.js","node_modules/selectively/dist/mjs/Value.js","node_modules/selectively/dist/mjs/GreaterThan.js","node_modules/selectively/dist/mjs/GreaterThanOrEqual.js","node_modules/selectively/dist/mjs/Has.js","node_modules/selectively/dist/mjs/Includes.js","node_modules/selectively/dist/mjs/Some.js","node_modules/selectively/dist/mjs/Is.js","node_modules/selectively/dist/mjs/LesserThan.js","node_modules/selectively/dist/mjs/LesserThanOrEqual.js","node_modules/selectively/dist/mjs/Match.js","node_modules/selectively/dist/mjs/Not.js","node_modules/selectively/dist/mjs/Or.js","node_modules/selectively/dist/mjs/parse/Source.js","node_modules/selectively/dist/mjs/parse/parse.js","node_modules/selectively/dist/mjs/parse/Expression.js","node_modules/selectively/dist/mjs/parse/Every.js","node_modules/selectively/dist/mjs/parse/Some.js","node_modules/selectively/dist/mjs/parse/group.js","node_modules/selectively/dist/mjs/parse/GreaterThan.js","node_modules/selectively/dist/mjs/parse/GreaterThanOrEqual.js","node_modules/selectively/dist/mjs/parse/LesserThan.js","node_modules/selectively/dist/mjs/parse/LesserThanOrEqual.js","node_modules/selectively/dist/mjs/parse/Not.js","node_modules/selectively/dist/mjs/parse/Has.js","node_modules/selectively/dist/mjs/Within.js","node_modules/selectively/dist/mjs/parse/Within.js","node_modules/selectively/dist/mjs/Contains.js","node_modules/selectively/dist/mjs/parse/Contains.js","node_modules/selectively/dist/mjs/parse/FunctionCall.js","node_modules/selectively/dist/mjs/Property.js","node_modules/selectively/dist/mjs/parse/Property.js","node_modules/selectively/dist/mjs/parse/Includes.js","node_modules/selectively/dist/mjs/StartsWith.js","node_modules/selectively/dist/mjs/parse/StartsWith.js","node_modules/selectively/dist/mjs/parse/EndsWith.js","node_modules/selectively/dist/mjs/InfixOperator.js","node_modules/selectively/dist/mjs/parse/InfixOperator.js","node_modules/selectively/dist/mjs/parse/Value.js","node_modules/selectively/dist/mjs/parse/Is.js","node_modules/selectively/dist/mjs/parse/ignore.js","node_modules/selectively/dist/mjs/resolve/resolve.js","node_modules/selectively/dist/mjs/resolve/And.js","node_modules/selectively/dist/mjs/resolve/replace.js","node_modules/selectively/dist/mjs/resolve/Endswith.js","node_modules/selectively/dist/mjs/resolve/Every.js","node_modules/selectively/dist/mjs/resolve/FunctionCall.js","node_modules/selectively/dist/mjs/resolve/GreaterThan.js","node_modules/selectively/dist/mjs/resolve/GreaterThanOrEqual.js","node_modules/selectively/dist/mjs/resolve/Has.js","node_modules/selectively/dist/mjs/resolve/Includes.js","node_modules/selectively/dist/mjs/resolve/LesserThan.js","node_modules/selectively/dist/mjs/resolve/LesserThanOrEqual.js","node_modules/selectively/dist/mjs/resolve/Not.js","node_modules/selectively/dist/mjs/resolve/Or.js","node_modules/selectively/dist/mjs/resolve/Property.js","node_modules/selectively/dist/mjs/resolve/Some.js","node_modules/selectively/dist/mjs/resolve/Startswith.js","node_modules/selectively/dist/mjs/resolve/Is.js","node_modules/selectively/dist/mjs/Tuple.js","node_modules/selectively/dist/mjs/selectively.js","src/components/filter/Filter.ts","src/components/filter/style.css?tag=smoothly-filter&encapsulation=scoped","src/components/filter/index.tsx","src/components/filter/field/style.css?tag=smoothly-filter-field&encapsulation=scoped","src/components/filter/field/index.tsx","src/components/filter/input/style.css?tag=smoothly-filter-input&encapsulation=scoped","src/components/filter/input/index.tsx","src/components/filter/select/style.css?tag=smoothly-filter-select&encapsulation=scoped","src/components/filter/select/index.tsx","src/components/filter/toggle/style.css?tag=smoothly-filter-toggle&encapsulation=scoped","src/components/filter/toggle/index.tsx","node_modules/cloudly-http/dist/Method.js","node_modules/cloudly-http/dist/Parser.js","node_modules/cloudly-http/dist/Serializer.js","node_modules/cloudly-http/dist/CamelCase.js","node_modules/cloudly-http/dist/Request/Header.js","node_modules/cloudly-http/dist/Request/index.js","node_modules/cloudly-http/dist/Platform.js","node_modules/cloudly-http/dist/Socket/Socket.js","node_modules/cloudly-http/dist/Socket/ArrayBuffer.js","node_modules/cloudly-http/dist/Socket/Json.js","node_modules/cloudly-http/dist/Socket/String.js","node_modules/cloudly-http/dist/Socket/Factory.js","node_modules/cloudly-http/dist/Socket/index.js","node_modules/cloudly-http/dist/Response/Header.js","node_modules/cloudly-http/dist/Response/Like.js","node_modules/cloudly-http/dist/Response/index.js","node_modules/cloudly-http/dist/fetch.js","node_modules/cloudly-http/dist/FormData.js","node_modules/cloudly-http/dist/Search.js","node_modules/cloudly-http/dist/index.js","src/components/input/Clearable.ts","src/components/input/Editable/Observer.ts","src/components/input/Editable/index.ts","src/components/input/Looks.ts","src/components/input/Input.ts","src/components/form/style.css?tag=smoothly-form","src/components/form/index.tsx","src/components/form/demo/style.css?tag=smoothly-form-demo&encapsulation=scoped","src/components/form/demo/index.tsx","src/components/form/demo/all/index.tsx","src/components/form/demo/card/index.tsx","src/components/form/demo/controlled/index.tsx","src/components/form/demo/date/style.css?tag=smoothly-form-demo-date&encapsulation=scoped","src/components/form/demo/date/index.tsx","src/components/form/demo/date-range/style.css?tag=smoothly-form-demo-date-range&encapsulation=scoped","src/components/form/demo/date-range/index.tsx","src/components/form/demo/login/index.tsx","src/components/form/demo/pet/style.css?tag=smoothly-form-demo-pet&encapsulation=scoped","src/components/form/demo/pet/index.tsx","src/components/form/demo/prices/index.tsx","src/components/form/demo/schedule/index.tsx","src/components/form/demo/transparent/index.tsx","src/components/form/demo/typed/Contact.ts","src/components/form/demo/typed/style.css?tag=smoothly-form-demo-typed&encapsulation=scoped","src/components/form/demo/typed/index.tsx","src/components/frame/style.css?tag=smoothly-frame&encapsulation=scoped","src/components/frame/index.tsx","src/components/icon/style.css?tag=smoothly-icon&encapsulation=scoped","src/components/icon/index.tsx","src/components/icon/demo/style.css?tag=smoothly-icon-demo&encapsulation=scoped","src/components/icon/demo/index.tsx","src/components/input/Deep.ts","src/components/input/Adjacent.ts","src/components/input/InputStateHandler.ts","src/components/input/Key.ts","src/components/input/style.css?tag=smoothly-input&encapsulation=scoped","src/components/input/index.tsx","src/components/input/checkbox/style.css?tag=smoothly-input-checkbox&encapsulation=scoped","src/components/input/checkbox/index.tsx","src/components/input/clear/style.css?tag=smoothly-input-clear&encapsulation=scoped","src/components/input/clear/index.tsx","src/components/input/color/style.css?tag=smoothly-input-color&encapsulation=scoped","src/components/input/color/index.tsx","src/components/input/color/demo/index.tsx","src/components/input/date/style.css?tag=smoothly-input-date&encapsulation=scoped","src/components/input/date/index.tsx","src/components/input/demo/date/style.css?tag=smoothly-input-date-demo&encapsulation=scoped","src/components/input/demo/date/index.tsx","src/components/input/date/range/style.scss?tag=smoothly-input-date-range&encapsulation=scoped","src/components/input/date/range/index.tsx","src/components/input/date/time/style.css?tag=smoothly-input-date-time&encapsulation=scoped","src/components/input/date/time/index.tsx","src/components/input/demo/style.css?tag=smoothly-input-demo&encapsulation=scoped","src/components/input/demo/index.tsx","src/components/input/demo/standard/style.css?tag=smoothly-input-demo-standard&encapsulation=scoped","src/components/input/demo/standard/index.tsx","src/components/input/demo/user-input/style.css?tag=smoothly-input-demo-user-input&encapsulation=scoped","src/components/input/demo/user-input/index.tsx","src/components/input/edit/style.css?tag=smoothly-input-edit&encapsulation=scoped","src/components/input/edit/index.tsx","src/components/input/file/style.css?tag=smoothly-input-file&encapsulation=scoped","src/components/input/file/index.tsx","src/components/input/month/style.css?tag=smoothly-input-month&encapsulation=scoped","src/components/input/month/index.tsx","src/components/input/demo/price/style.css?tag=smoothly-input-price-demo&encapsulation=scoped","src/components/input/demo/price/index.tsx","src/components/input/radio/style.css?tag=smoothly-input-radio&encapsulation=scoped","src/components/input/radio/index.tsx","src/components/input/radio/item/style.css?tag=smoothly-input-radio-item&encapsulation=scoped","src/components/input/radio/item/index.tsx","src/components/input/range/style.css?tag=smoothly-input-range&encapsulation=scoped","src/components/input/range/index.tsx","src/components/input/range/demo/index.tsx","src/components/input/reset/style.css?tag=smoothly-input-reset&encapsulation=scoped","src/components/input/reset/index.tsx","src/components/item/Item.ts","src/components/input/select/style.css?tag=smoothly-input-select&encapsulation=scoped","src/components/input/select/index.tsx","src/components/input/submit/style.css?tag=smoothly-input-submit&encapsulation=scoped","src/components/input/submit/index.tsx","src/components/item/style.css?tag=smoothly-item&encapsulation=scoped","src/components/item/index.tsx","src/components/label/style.css?tag=smoothly-label&encapsulation=scoped","src/components/label/index.tsx","src/components/lazy/style.css?tag=smoothly-lazy&encapsulation=scoped","src/components/lazy/index.tsx","src/components/load-more/index.tsx","src/components/modal/style.css?tag=smoothly-modal&encapsulation=scoped","src/components/modal/index.tsx","src/components/notification/style.css?tag=smoothly-notification&encapsulation=scoped","src/components/notification/index.tsx","src/components/notifier/style.css?tag=smoothly-notifier&encapsulation=scoped","src/components/notifier/index.tsx","src/components/spinner/style.css?tag=smoothly-spinner&encapsulation=scoped","src/components/spinner/index.tsx","src/components/summary/style.css?tag=smoothly-summary&encapsulation=scoped","src/components/summary/index.tsx","src/components/tabs/tab/style.css?tag=smoothly-tab&encapsulation=scoped","src/components/tabs/tab/index.tsx","src/components/table/style.css?tag=smoothly-table&encapsulation=scoped","src/components/table/index.tsx","src/components/table/body/style.css?tag=smoothly-table-body&encapsulation=scoped","src/components/table/body/index.tsx","src/components/table/cell/style.css?tag=smoothly-table-cell&encapsulation=scoped","src/components/table/cell/index.tsx","src/components/table/demo/style.css?tag=smoothly-table-demo&encapsulation=scoped","src/components/table/demo/index.tsx","src/components/table/demo/colspan/style.css?tag=smoothly-table-demo-colspan&encapsulation=scoped","src/components/table/demo/colspan/index.tsx","src/components/table/demo/filler-row/style.css?tag=smoothly-table-demo-filler-row&encapsulation=scoped","src/components/table/demo/filler-row/index.tsx","src/components/table/Selector.tsx","src/components/table/demo/filtered/style.css?tag=smoothly-table-demo-filtered&encapsulation=scoped","src/components/table/demo/filtered/index.tsx","src/components/table/demo/group/style.css?tag=smoothly-table-demo-group&encapsulation=scoped","src/components/table/demo/group/index.tsx","src/components/table/demo/nested-no-cell/data.ts","src/components/table/demo/nested-no-cell/style.css?tag=smoothly-table-demo-nested-no-cell&encapsulation=scoped","src/components/table/demo/nested-no-cell/index.tsx","src/components/table/demo/nested-no-cell/inner/style.css?tag=smoothly-table-demo-nested-no-cell-inner&encapsulation=scoped","src/components/table/demo/nested-no-cell/inner/index.tsx","src/components/table/demo/simple/style.css?tag=smoothly-table-demo-simple&encapsulation=scoped","src/components/table/demo/simple/simple.tsx","src/components/table/expandable/cell/style.scss?tag=smoothly-table-expandable-cell&encapsulation=scoped","src/components/table/expandable/cell/index.tsx","src/components/table/expandable/row/style.scss?tag=smoothly-table-expandable-row&encapsulation=scoped","src/components/table/expandable/row/index.tsx","src/components/table/filler-row/style.css?tag=smoothly-table-filler-row&encapsulation=scoped","src/components/table/filler-row/index.tsx","src/components/table/foot/style.css?tag=smoothly-table-foot&encapsulation=scoped","src/components/table/foot/index.tsx","src/components/table/head/style.css?tag=smoothly-table-head&encapsulation=scoped","src/components/table/head/index.tsx","src/components/table/row/style.css?tag=smoothly-table-row&encapsulation=scoped","src/components/table/row/index.tsx","src/components/table/group/style.scss?tag=smoothly-table-row-group&encapsulation=scoped","src/components/table/group/index.tsx","src/components/tabs/style.css?tag=smoothly-tabs&encapsulation=scoped","src/components/tabs/index.tsx","src/components/tabs/demo/style.css?tag=smoothly-tabs-demo&encapsulation=scoped","src/components/tabs/demo/index.tsx","src/components/theme/color/style.css?tag=smoothly-theme-color&encapsulation=scoped","src/components/theme/color/index.tsx","src/components/theme/color/variant/style.css?tag=smoothly-theme-color-variant&encapsulation=scoped","src/components/theme/color/variant/index.tsx","src/components/theme/colors/style.css?tag=smoothly-theme-colors&encapsulation=scoped","src/components/theme/colors/index.tsx","src/components/theme/demo/style.css?tag=smoothly-theme-demo&encapsulation=scoped","src/components/theme/demo/index.tsx","src/components/theme/guide/style.css?tag=smoothly-theme-guide&encapsulation=scoped","src/components/theme/guide/index.tsx","src/components/theme/picker/style.css?tag=smoothly-theme-picker&encapsulation=scoped","src/components/theme/picker/index.tsx","src/components/toggle-switch/style.css?tag=smoothly-toggle-switch&encapsulation=scoped","src/components/toggle-switch/index.tsx","src/components/toggle-switch/demo/style.css?tag=smoothly-toggle-switch-demo&encapsulation=scoped","src/components/toggle-switch/demo/index.tsx","src/components/trigger/style.css?tag=smoothly-trigger&encapsulation=scoped","src/components/trigger/index.tsx"],"sourcesContent":["import { Type } from \"../Type\";\nexport function any(name) {\n return new IslyAny(name ?? \"any\");\n}\nexport class IslyAny extends Type {\n class = \"any\";\n is = (value) => value != undefined;\n}\n//# sourceMappingURL=index.js.map","import { isoly } from \"isoly\"\n\nexport function getLocale(): isoly.Locale | undefined {\n\tconst result = navigator.language\n\treturn isoly.Locale.is(result) ? result : isoly.Language.is(result) ? isoly.Locale.toLocale(result) : undefined\n}\n","smoothly-app {\n\t--header-height: 5rem;\n\tdisplay: block;\n}\n\nsmoothly-app>smoothly-notifier>main {\n\theight: calc(100dvh - var(--header-height));\n}\n\nsmoothly-app[hidden] {\n\tdisplay: none;\n}\n\nsmoothly-app>smoothly-notifier {\n\theight: 100%;\n\tbackground: none;\n}\n\nsmoothly-app.smoothly-mobile-mode>smoothly-notifier>header:has(smoothly-burger)>nav>ul smoothly-app-room {\n\twidth: 100%;\n\theight: 4em;\n}\n\nsmoothly-app>smoothly-notifier>header {\n\tposition: sticky;\n\ttop: 0;\n\tz-index: 20;\n\twidth: 100%;\n\theight: var(--header-height);\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tbox-sizing: border-box;\n\talign-items: center;\n\tbox-shadow: 0 1px 0 0 rgb(var(--smoothly-color-shade)) inset;\n}\n\nsmoothly-app>smoothly-notifier>header>nav {\n\twidth: 100%;\n\tflex-shrink: 2;\n\theight: 100%;\n}\n\nsmoothly-app>smoothly-notifier>header>nav,\nsmoothly-app>smoothly-notifier>header>nav>ul {\n\tdisplay: flex;\n\tmargin: 0;\n}\n\nsmoothly-app:not([label])>smoothly-notifier>header>h1 {\n\tdisplay: none;\n}\nsmoothly-app>smoothly-notifier>header>h1 {\n\tmargin-left: 1rem;\n\tmargin-bottom: 0.8em;\n\tdisplay: flex;\n\theight: 100%;\n}\n\nsmoothly-app>smoothly-notifier>header>h1>a {\n\tdisplay: inline-block;\n\talign-self: center;\n\tsize: 100%;\n\tbackground-position-y: center;\n\ttext-decoration: none;\n\twhite-space: nowrap;\n}\n\nsmoothly-app>smoothly-notifier>header>nav>ul {\n\twidth: 100%;\n}\n\nsmoothly-app>smoothly-notifier>header>nav>ul>div.nav-start-container {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 100%;\n}\n\nsmoothly-app>smoothly-notifier>header>nav>ul>div.nav-end-container {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 100%;\n\tmargin-left: auto;\n\tmargin-right: 1rem;\n}\n\nsmoothly-app>smoothly-notifier>header>nav>ul>[slot=\"nav-end\"] {\n\twidth: fit-content;\n\talign-self: center;\n\theight: fit-content;\n\tmargin-left: 10rem;\n}\n\nsmoothly-app>smoothly-notifier>header>nav>ul li a {\n\tdisplay: flex;\n\theight: 2.3rem;\n\ttext-decoration: none;\n\talign-items: center;\n\talign-self: center;\n}\n\nsmoothly-app.smoothly-mobile-mode:not([menu-open])>smoothly-notifier>header>nav {\n\tdisplay: none;\n}\n\nsmoothly-app>smoothly-notifier>main>div {\n\toverflow-y: scroll;\n\theight: 100%;\n}\n\n/* Mobile mode */\nsmoothly-app.smoothly-mobile-mode>smoothly-notifier>header>nav {\n\twidth: fit-content;\n\tmax-width: 100%;\n\ttop: 100%;\n\tposition: absolute;\n\tmax-height: calc(100dvh - var(--header-height));\n\toverflow-y: scroll;\n\tright: 0;\n\theight: auto;\n}\n\nsmoothly-app.smoothly-mobile-mode>smoothly-notifier>header>nav,\nsmoothly-app.smoothly-mobile-mode>smoothly-notifier>header>nav>ul {\n\tflex-direction: column;\n\tbackground-color: rgba(var(--smoothly-color));\n}\n\nsmoothly-app.smoothly-mobile-mode>smoothly-notifier>header>nav>ul {\n\tpadding: 1.5rem;\n\tbox-sizing: border-box;\n}\n\nsmoothly-app.smoothly-mobile-mode>smoothly-notifier>header>nav>ul li {\n\tmargin-right: 0;\n\twidth: 100%;\n}\nsmoothly-app:not(.smoothly-mobile-mode)>smoothly-notifier>header>smoothly-burger {\n\tdisplay: none;\n}\nsmoothly-app.smoothly-mobile-mode>smoothly-notifier>header>smoothly-burger {\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n}\n\nsmoothly-app.smoothly-mobile-mode>smoothly-notifier>header>nav>ul>[slot=\"nav-start\"] {\n\tdisplay: none;\n}\n\nsmoothly-app.smoothly-mobile-mode>smoothly-notifier>header>nav>ul>div.nav-start-container,\nsmoothly-app.smoothly-mobile-mode>smoothly-notifier>header>nav>ul>div.nav-end-container {\n\tflex-direction: column;\n\tmargin: 0;\n\talign-items: start;\n\tjustify-content: center;\n}\n\nsmoothly-app.smoothly-mobile-mode>smoothly-notifier>header>nav>ul>div.nav-start-container>*:last-child {\n\tmargin-bottom: 1em;\n}\n\n","import { Component, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { SmoothlyAppRoomCustomEvent } from \"../../components\"\nimport { Color } from \"../../model\"\n\ntype Room = {\n\telement: HTMLSmoothlyAppRoomElement\n}\n@Component({\n\ttag: \"smoothly-app\",\n\tstyleUrl: \"style.css\",\n\tscoped: false,\n})\nexport class SmoothlyApp {\n\t@Prop({ reflect: true }) label?: string\n\t@Prop() color: Color\n\t@Prop() home?: string\n\t@Prop({ mutable: true, reflect: true }) menuOpen = false\n\t@Prop({ reflect: true }) navBreakpoint: `${number}${\"px\" | \"em\" | \"rem\"}` = \"48rem\"\n\t@State() mobileMode = false\n\t@State() selected?: Room\n\t@Event() smoothlyUrlChange: EventEmitter<string>\n\tprivate burgerElement?: HTMLSmoothlyBurgerElement\n\tprivate navElement?: HTMLElement\n\tmainElement?: HTMLElement\n\trooms: Record<string, Room | undefined> = {}\n\n\tcomponentWillLoad() {\n\t\tconst mediaQuery = window.matchMedia(`(max-width: ${this.navBreakpoint})`)\n\t\tthis.mobileMode = mediaQuery.matches\n\t\tmediaQuery.addEventListener(\"change\", e => this.updateMobileMode(e.matches))\n\t}\n\tcomponentDidLoad() {\n\t\tthis.updateMobileMode(this.mobileMode)\n\t}\n\tupdateMobileMode(mobileMode: boolean) {\n\t\tthis.mobileMode = mobileMode\n\t\tObject.values(this.rooms).forEach(room => room?.element.setMobileMode(mobileMode))\n\t\tif (!mobileMode)\n\t\t\tthis.menuOpen = false\n\t}\n\n\tasync componentDidRender() {\n\t\tif (!this.selected && !window.location.search)\n\t\t\t(this.home && this.rooms[this.home]\n\t\t\t\t? this.rooms[this.home]\n\t\t\t\t: Object.values(this.rooms).find(room => !room?.element.disabled)\n\t\t\t)?.element.setSelected(true)\n\t}\n\t@Method()\n\tasync selectRoom(path: string) {\n\t\tthis.rooms[path]?.element.setSelected(true)\n\t}\n\t@Watch(\"selected\")\n\tasync selectedChanged() {\n\t\tObject.values(this.rooms).forEach(\n\t\t\troom => room?.element.path != this.selected?.element.path && room?.element.setSelected(false)\n\t\t)\n\t\tconst content = await this.selected?.element.getContent()\n\t\trequestAnimationFrame(() => {\n\t\t\tif (this.mainElement && content)\n\t\t\t\tthis.mainElement.replaceChildren(content)\n\t\t})\n\t}\n\t@Listen(\"popstate\", { target: \"window\" })\n\tasync locationChangeHandler(event: PopStateEvent) {\n\t\tthis.rooms[event.state.smoothlyPath]?.element.setSelected(true, { history: true })\n\t\tthis.smoothlyUrlChange.emit(window.location.href)\n\t}\n\t@Listen(\"smoothlyRoomSelect\")\n\troomSelectedHandler(event: SmoothlyAppRoomCustomEvent<{ history: boolean; query?: string }>) {\n\t\tthis.selected = { element: event.target }\n\t\tif (this.mobileMode)\n\t\t\tthis.menuOpen = false\n\t\tif (!event.detail.history) {\n\t\t\tconst path = this.selected.element.path.toString()\n\t\t\tconst location = new URL(window.location.pathname == path ? window.location.href : window.location.origin)\n\t\t\tlocation.pathname = path\n\t\t\tlocation.search = event.detail.query ? `?${event.detail.query}` : \"\"\n\t\t\twindow.history.pushState({ smoothlyPath: path, smoothlyQuery: event.detail.query || \"\" }, \"\", location.href)\n\t\t}\n\t}\n\t@Listen(\"smoothlyRoomLoad\")\n\troomLoadedHandler(event: SmoothlyAppRoomCustomEvent<{ selected: boolean }>) {\n\t\tconst room = (this.rooms[event.target.path.toString()] = { element: event.target })\n\t\tif (room.element.selected) {\n\t\t\tthis.selected = room\n\t\t}\n\t}\n\t@Listen(\"click\", { target: \"window\" })\n\tclickHandler(event: MouseEvent) {\n\t\tif (this.mobileMode && !event.composedPath().some(e => e == this.burgerElement || e == this.navElement))\n\t\t\tthis.menuOpen = false\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host class={{ \"smoothly-mobile-mode\": this.mobileMode }}>\n\t\t\t\t<smoothly-notifier>\n\t\t\t\t\t<header color={this.color}>\n\t\t\t\t\t\t<h1>\n\t\t\t\t\t\t\t<a href={\"\"}>{this.label}</a>\n\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t<slot name=\"header\" />\n\t\t\t\t\t\t<nav ref={e => (this.navElement = e)}>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<div class={\"nav-start-container\"}>\n\t\t\t\t\t\t\t\t\t<slot name=\"nav-start\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t\t\t<div class={\"nav-end-container\"}>\n\t\t\t\t\t\t\t\t\t<slot name=\"nav-end\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</nav>\n\t\t\t\t\t\t<smoothly-burger\n\t\t\t\t\t\t\tref={e => (this.burgerElement = e)}\n\t\t\t\t\t\t\topen={this.menuOpen}\n\t\t\t\t\t\t\tonSmoothlyNavStatus={e => (e.stopPropagation(), (this.menuOpen = e.detail))}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</header>\n\t\t\t\t\t<main ref={e => (this.mainElement = e)} />\n\t\t\t\t</smoothly-notifier>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Component, h, Listen, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-app-demo\",\n})\nexport class SmoothlyAppDemo {\n\t@Prop() baseUrl: string\n\tapp?: HTMLSmoothlyAppElement\n\t@Listen(\"smoothlyUrlChange\", { target: \"window\" })\n\turlChangeHandler(event: CustomEvent<string>) {\n\t\tconsole.log(\"smoothlyUrlChange\", event.detail)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<smoothly-app color=\"dark\" label=\"Smoothly Demo\" home=\"/root\" ref={e => (this.app = e)}>\n\t\t\t\t<smoothly-app-room path=\"/\">\n\t\t\t\t\t<section style={{ padding: \"1em\", maxWidth: \"32em\", margin: \"0 auto\" }}>\n\t\t\t\t\t\t<header>\n\t\t\t\t\t\t\t<h1>Welcome</h1>\n\t\t\t\t\t\t</header>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tSmoothly is a component library written in <a href=\"http://stenciljs.com\">Stencil</a>. It can therefore be\n\t\t\t\t\t\t\tused across web based frontend toolchains such as React, Vue, Angular, Svelte, and even plain HTML.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tThis is particularly useful when trying to unifying the user experience across projects written in\n\t\t\t\t\t\t\tdifferent technology stacks. It is also written to minimize the amount of code you need to write to\n\t\t\t\t\t\t\tachieve a nice user experience.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</section>\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/form\" label=\"Forms\" content={<smoothly-form-demo />} />\n\t\t\t\t<smoothly-app-room path=\"/input\" label=\"Inputs\" content={<smoothly-input-demo />} />\n\t\t\t\t<smoothly-app-room path=\"/table\" label=\"Tables\" content={<smoothly-table-demo />} />\n\t\t\t\t<smoothly-app-room path=\"/button\" label=\"Buttons\" content={<smoothly-button-demo />} />\n\t\t\t\t<smoothly-app-room path=\"/icon\" label=\"Icons\" content={<smoothly-icon-demo />} />\n\t\t\t\t<smoothly-app-room path=\"/theme\" label=\"Theming\" content={<smoothly-theme-demo />} />\n\t\t\t\t<smoothly-app-room path=\"/dialog\" label=\"Dialogs\" content={<smoothly-dialog-demo />} slot=\"nav-end\" />\n\t\t\t\t<smoothly-app-room path=\"/display\" label=\"Display\" content={<smoothly-display-demo />} slot=\"nav-end\" />\n\t\t\t\t<smoothly-app-room path=\"/tabs\" label=\"Tabs\" slot=\"nav-end\">\n\t\t\t\t\t<smoothly-tabs-demo />\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/links\" label=\"Links\" slot=\"nav-end\">\n\t\t\t\t\t<smoothly-input type=\"text\">Default</smoothly-input>\n\t\t\t\t\t<div style={{ padding: \"1em\", maxWidth: \"12em\" }}>\n\t\t\t\t\t\t<smoothly-button fill=\"solid\" color=\"danger\" link=\"https://google.com\">\n\t\t\t\t\t\t\topen\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button\n\t\t\t\t\t\t\tfill=\"solid\"\n\t\t\t\t\t\t\tcolor=\"danger\"\n\t\t\t\t\t\t\tlink=\"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf\"\n\t\t\t\t\t\t\ttype=\"download\">\n\t\t\t\t\t\t\tdownload\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button fill=\"solid\" color=\"danger\" onClick={() => alert(\"clicked\")}>\n\t\t\t\t\t\t\taction\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button disabled fill=\"solid\" color=\"danger\" onClick={() => alert(\"clicked\")}>\n\t\t\t\t\t\t\taction\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button type=\"link\" fill=\"clear\" color=\"danger\" onClick={() => alert(\"clicked\")}>\n\t\t\t\t\t\t\taction link\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t</div>\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/redirect\" label=\"Redirect\" slot=\"nav-end\">\n\t\t\t\t\t<smoothly-button type=\"link\" link=\"/input\">\n\t\t\t\t\t\tTo input\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"link\" link=\"../button\">\n\t\t\t\t\t\tTo button\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"link\" link={new URL(\"/hidden\", window.location.origin).href}>\n\t\t\t\t\t\tTo hidden\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"link\" link=\"/redirect\">\n\t\t\t\t\t\tTo redirect\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"link\" link=\"nested\">\n\t\t\t\t\t\tTo redirect nested, relative path\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/hidden\">\n\t\t\t\t\t<p>hello world!</p>\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/redirect/nested\">this is a nested room</smoothly-app-room>\n\t\t\t</smoothly-app>\n\t\t)\n\t}\n}\n","// src/path-to-regex-modified.ts\nvar Part = class {\n constructor(type, name, prefix, value, suffix, modifier) {\n this.type = 3 /* kFixed */;\n this.name = \"\";\n this.prefix = \"\";\n this.value = \"\";\n this.suffix = \"\";\n this.modifier = 3 /* kNone */;\n this.type = type;\n this.name = name;\n this.prefix = prefix;\n this.value = value;\n this.suffix = suffix;\n this.modifier = modifier;\n }\n hasCustomName() {\n return this.name !== \"\" && typeof this.name !== \"number\";\n }\n};\nvar regexIdentifierStart = /[$_\\p{ID_Start}]/u;\nvar regexIdentifierPart = /[$_\\u200C\\u200D\\p{ID_Continue}]/u;\nvar kFullWildcardRegex = \".*\";\nfunction isASCII(str, extended) {\n return (extended ? /^[\\x00-\\xFF]*$/ : /^[\\x00-\\x7F]*$/).test(str);\n}\nfunction lexer(str, lenient = false) {\n const tokens = [];\n let i = 0;\n while (i < str.length) {\n const char = str[i];\n const ErrorOrInvalid = function(msg) {\n if (!lenient)\n throw new TypeError(msg);\n tokens.push({ type: \"INVALID_CHAR\", index: i, value: str[i++] });\n };\n if (char === \"*\") {\n tokens.push({ type: \"ASTERISK\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"+\" || char === \"?\") {\n tokens.push({ type: \"OTHER_MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n let name = \"\";\n let j = i + 1;\n while (j < str.length) {\n const code = str.substr(j, 1);\n if (j === i + 1 && regexIdentifierStart.test(code) || j !== i + 1 && regexIdentifierPart.test(code)) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name) {\n ErrorOrInvalid(`Missing parameter name at ${i}`);\n continue;\n }\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n let count = 1;\n let pattern = \"\";\n let j = i + 1;\n let error = false;\n if (str[j] === \"?\") {\n ErrorOrInvalid(`Pattern cannot start with \"?\" at ${j}`);\n continue;\n }\n while (j < str.length) {\n if (!isASCII(str[j], false)) {\n ErrorOrInvalid(`Invalid character '${str[j]}' at ${j}.`);\n error = true;\n break;\n }\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n } else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n ErrorOrInvalid(`Capturing groups are not allowed at ${j}`);\n error = true;\n break;\n }\n }\n pattern += str[j++];\n }\n if (error) {\n continue;\n }\n if (count) {\n ErrorOrInvalid(`Unbalanced pattern at ${i}`);\n continue;\n }\n if (!pattern) {\n ErrorOrInvalid(`Missing pattern at ${i}`);\n continue;\n }\n tokens.push({ type: \"REGEX\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\nfunction parse(str, options = {}) {\n const tokens = lexer(str);\n options.delimiter ?? (options.delimiter = \"/#?\");\n options.prefixes ?? (options.prefixes = \"./\");\n const segmentWildcardRegex = `[^${escapeString(options.delimiter)}]+?`;\n const result = [];\n let key = 0;\n let i = 0;\n let path = \"\";\n let nameSet = /* @__PURE__ */ new Set();\n const tryConsume = (type) => {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n const tryConsumeModifier = () => {\n return tryConsume(\"OTHER_MODIFIER\") ?? tryConsume(\"ASTERISK\");\n };\n const mustConsume = (type) => {\n const value = tryConsume(type);\n if (value !== void 0)\n return value;\n const { type: nextType, index } = tokens[i];\n throw new TypeError(`Unexpected ${nextType} at ${index}, expected ${type}`);\n };\n const consumeText = () => {\n let result2 = \"\";\n let value;\n while (value = tryConsume(\"CHAR\") ?? tryConsume(\"ESCAPED_CHAR\")) {\n result2 += value;\n }\n return result2;\n };\n const DefaultEncodePart = (value) => {\n return value;\n };\n const encodePart = options.encodePart || DefaultEncodePart;\n let pendingFixedValue = \"\";\n const appendToPendingFixedValue = (value) => {\n pendingFixedValue += value;\n };\n const maybeAddPartFromPendingFixedValue = () => {\n if (!pendingFixedValue.length) {\n return;\n }\n result.push(new Part(3 /* kFixed */, \"\", \"\", encodePart(pendingFixedValue), \"\", 3 /* kNone */));\n pendingFixedValue = \"\";\n };\n const addPart = (prefix, nameToken, regexOrWildcardToken, suffix, modifierToken) => {\n let modifier = 3 /* kNone */;\n switch (modifierToken) {\n case \"?\":\n modifier = 1 /* kOptional */;\n break;\n case \"*\":\n modifier = 0 /* kZeroOrMore */;\n break;\n case \"+\":\n modifier = 2 /* kOneOrMore */;\n break;\n }\n if (!nameToken && !regexOrWildcardToken && modifier === 3 /* kNone */) {\n appendToPendingFixedValue(prefix);\n return;\n }\n maybeAddPartFromPendingFixedValue();\n if (!nameToken && !regexOrWildcardToken) {\n if (!prefix) {\n return;\n }\n result.push(new Part(3 /* kFixed */, \"\", \"\", encodePart(prefix), \"\", modifier));\n return;\n }\n let regexValue;\n if (!regexOrWildcardToken) {\n regexValue = segmentWildcardRegex;\n } else if (regexOrWildcardToken === \"*\") {\n regexValue = kFullWildcardRegex;\n } else {\n regexValue = regexOrWildcardToken;\n }\n let type = 2 /* kRegex */;\n if (regexValue === segmentWildcardRegex) {\n type = 1 /* kSegmentWildcard */;\n regexValue = \"\";\n } else if (regexValue === kFullWildcardRegex) {\n type = 0 /* kFullWildcard */;\n regexValue = \"\";\n }\n let name;\n if (nameToken) {\n name = nameToken;\n } else if (regexOrWildcardToken) {\n name = key++;\n }\n if (nameSet.has(name)) {\n throw new TypeError(`Duplicate name '${name}'.`);\n }\n nameSet.add(name);\n result.push(new Part(type, name, encodePart(prefix), regexValue, encodePart(suffix), modifier));\n };\n while (i < tokens.length) {\n const charToken = tryConsume(\"CHAR\");\n const nameToken = tryConsume(\"NAME\");\n let regexOrWildcardToken = tryConsume(\"REGEX\");\n if (!nameToken && !regexOrWildcardToken) {\n regexOrWildcardToken = tryConsume(\"ASTERISK\");\n }\n if (nameToken || regexOrWildcardToken) {\n let prefix = charToken ?? \"\";\n if (options.prefixes.indexOf(prefix) === -1) {\n appendToPendingFixedValue(prefix);\n prefix = \"\";\n }\n maybeAddPartFromPendingFixedValue();\n let modifierToken = tryConsumeModifier();\n addPart(prefix, nameToken, regexOrWildcardToken, \"\", modifierToken);\n continue;\n }\n const value = charToken ?? tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n appendToPendingFixedValue(value);\n continue;\n }\n const openToken = tryConsume(\"OPEN\");\n if (openToken) {\n const prefix = consumeText();\n const nameToken2 = tryConsume(\"NAME\");\n let regexOrWildcardToken2 = tryConsume(\"REGEX\");\n if (!nameToken2 && !regexOrWildcardToken2) {\n regexOrWildcardToken2 = tryConsume(\"ASTERISK\");\n }\n const suffix = consumeText();\n mustConsume(\"CLOSE\");\n const modifierToken = tryConsumeModifier();\n addPart(prefix, nameToken2, regexOrWildcardToken2, suffix, modifierToken);\n continue;\n }\n maybeAddPartFromPendingFixedValue();\n mustConsume(\"END\");\n }\n return result;\n}\nfunction escapeString(str) {\n return str.replace(/([.+*?^${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\nfunction flags(options) {\n return options && options.ignoreCase ? \"ui\" : \"u\";\n}\nfunction stringToRegexp(path, names, options) {\n return partsToRegexp(parse(path, options), names, options);\n}\nfunction modifierToString(modifier) {\n switch (modifier) {\n case 0 /* kZeroOrMore */:\n return \"*\";\n case 1 /* kOptional */:\n return \"?\";\n case 2 /* kOneOrMore */:\n return \"+\";\n case 3 /* kNone */:\n return \"\";\n }\n}\nfunction partsToRegexp(parts, names, options = {}) {\n options.delimiter ?? (options.delimiter = \"/#?\");\n options.prefixes ?? (options.prefixes = \"./\");\n options.sensitive ?? (options.sensitive = false);\n options.strict ?? (options.strict = false);\n options.end ?? (options.end = true);\n options.start ?? (options.start = true);\n options.endsWith = \"\";\n let result = options.start ? \"^\" : \"\";\n for (const part of parts) {\n if (part.type === 3 /* kFixed */) {\n if (part.modifier === 3 /* kNone */) {\n result += escapeString(part.value);\n } else {\n result += `(?:${escapeString(part.value)})${modifierToString(part.modifier)}`;\n }\n continue;\n }\n if (names)\n names.push(part.name);\n const segmentWildcardRegex = `[^${escapeString(options.delimiter)}]+?`;\n let regexValue = part.value;\n if (part.type === 1 /* kSegmentWildcard */)\n regexValue = segmentWildcardRegex;\n else if (part.type === 0 /* kFullWildcard */)\n regexValue = kFullWildcardRegex;\n if (!part.prefix.length && !part.suffix.length) {\n if (part.modifier === 3 /* kNone */ || part.modifier === 1 /* kOptional */) {\n result += `(${regexValue})${modifierToString(part.modifier)}`;\n } else {\n result += `((?:${regexValue})${modifierToString(part.modifier)})`;\n }\n continue;\n }\n if (part.modifier === 3 /* kNone */ || part.modifier === 1 /* kOptional */) {\n result += `(?:${escapeString(part.prefix)}(${regexValue})${escapeString(part.suffix)})`;\n result += modifierToString(part.modifier);\n continue;\n }\n result += `(?:${escapeString(part.prefix)}`;\n result += `((?:${regexValue})(?:`;\n result += escapeString(part.suffix);\n result += escapeString(part.prefix);\n result += `(?:${regexValue}))*)${escapeString(part.suffix)})`;\n if (part.modifier === 0 /* kZeroOrMore */) {\n result += \"?\";\n }\n }\n const endsWith = `[${escapeString(options.endsWith)}]|$`;\n const delimiter = `[${escapeString(options.delimiter)}]`;\n if (options.end) {\n if (!options.strict) {\n result += `${delimiter}?`;\n }\n if (!options.endsWith.length) {\n result += \"$\";\n } else {\n result += `(?=${endsWith})`;\n }\n return new RegExp(result, flags(options));\n }\n if (!options.strict) {\n result += `(?:${delimiter}(?=${endsWith}))?`;\n }\n let isEndDelimited = false;\n if (parts.length) {\n const lastPart = parts[parts.length - 1];\n if (lastPart.type === 3 /* kFixed */ && lastPart.modifier === 3 /* kNone */) {\n isEndDelimited = options.delimiter.indexOf(lastPart) > -1;\n }\n }\n if (!isEndDelimited) {\n result += `(?=${delimiter}|${endsWith})`;\n }\n return new RegExp(result, flags(options));\n}\n\n// src/url-utils.ts\nvar DEFAULT_OPTIONS = {\n delimiter: \"\",\n prefixes: \"\",\n sensitive: true,\n strict: true\n};\nvar HOSTNAME_OPTIONS = {\n delimiter: \".\",\n prefixes: \"\",\n sensitive: true,\n strict: true\n};\nvar PATHNAME_OPTIONS = {\n delimiter: \"/\",\n prefixes: \"/\",\n sensitive: true,\n strict: true\n};\nfunction isAbsolutePathname(pathname, isPattern) {\n if (!pathname.length) {\n return false;\n }\n if (pathname[0] === \"/\") {\n return true;\n }\n if (!isPattern) {\n return false;\n }\n if (pathname.length < 2) {\n return false;\n }\n if ((pathname[0] == \"\\\\\" || pathname[0] == \"{\") && pathname[1] == \"/\") {\n return true;\n }\n return false;\n}\nfunction maybeStripPrefix(value, prefix) {\n if (value.startsWith(prefix)) {\n return value.substring(prefix.length, value.length);\n }\n return value;\n}\nfunction maybeStripSuffix(value, suffix) {\n if (value.endsWith(suffix)) {\n return value.substr(0, value.length - suffix.length);\n }\n return value;\n}\nfunction treatAsIPv6Hostname(value) {\n if (!value || value.length < 2) {\n return false;\n }\n if (value[0] === \"[\") {\n return true;\n }\n if ((value[0] === \"\\\\\" || value[0] === \"{\") && value[1] === \"[\") {\n return true;\n }\n return false;\n}\nvar SPECIAL_SCHEMES = [\n \"ftp\",\n \"file\",\n \"http\",\n \"https\",\n \"ws\",\n \"wss\"\n];\nfunction isSpecialScheme(protocol_regexp) {\n if (!protocol_regexp) {\n return true;\n }\n for (const scheme of SPECIAL_SCHEMES) {\n if (protocol_regexp.test(scheme)) {\n return true;\n }\n }\n return false;\n}\nfunction canonicalizeHash(hash, isPattern) {\n hash = maybeStripPrefix(hash, \"#\");\n if (isPattern || hash === \"\") {\n return hash;\n }\n const url = new URL(\"https://example.com\");\n url.hash = hash;\n return url.hash ? url.hash.substring(1, url.hash.length) : \"\";\n}\nfunction canonicalizeSearch(search, isPattern) {\n search = maybeStripPrefix(search, \"?\");\n if (isPattern || search === \"\") {\n return search;\n }\n const url = new URL(\"https://example.com\");\n url.search = search;\n return url.search ? url.search.substring(1, url.search.length) : \"\";\n}\nfunction canonicalizeHostname(hostname, isPattern) {\n if (isPattern || hostname === \"\") {\n return hostname;\n }\n if (treatAsIPv6Hostname(hostname)) {\n return ipv6HostnameEncodeCallback(hostname);\n } else {\n return hostnameEncodeCallback(hostname);\n }\n}\nfunction canonicalizePassword(password, isPattern) {\n if (isPattern || password === \"\") {\n return password;\n }\n const url = new URL(\"https://example.com\");\n url.password = password;\n return url.password;\n}\nfunction canonicalizeUsername(username, isPattern) {\n if (isPattern || username === \"\") {\n return username;\n }\n const url = new URL(\"https://example.com\");\n url.username = username;\n return url.username;\n}\nfunction canonicalizePathname(pathname, protocol, isPattern) {\n if (isPattern || pathname === \"\") {\n return pathname;\n }\n if (protocol && !SPECIAL_SCHEMES.includes(protocol)) {\n const url = new URL(`${protocol}:${pathname}`);\n return url.pathname;\n }\n const leadingSlash = pathname[0] == \"/\";\n pathname = new URL(\n !leadingSlash ? \"/-\" + pathname : pathname,\n \"https://example.com\"\n ).pathname;\n if (!leadingSlash) {\n pathname = pathname.substring(2, pathname.length);\n }\n return pathname;\n}\nfunction canonicalizePort(port, protocol, isPattern) {\n if (defaultPortForProtocol(protocol) === port) {\n port = \"\";\n }\n if (isPattern || port === \"\") {\n return port;\n }\n return portEncodeCallback(port);\n}\nfunction canonicalizeProtocol(protocol, isPattern) {\n protocol = maybeStripSuffix(protocol, \":\");\n if (isPattern || protocol === \"\") {\n return protocol;\n }\n return protocolEncodeCallback(protocol);\n}\nfunction defaultPortForProtocol(protocol) {\n switch (protocol) {\n case \"ws\":\n case \"http\":\n return \"80\";\n case \"wws\":\n case \"https\":\n return \"443\";\n case \"ftp\":\n return \"21\";\n default:\n return \"\";\n }\n}\nfunction protocolEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n if (/^[-+.A-Za-z0-9]*$/.test(input))\n return input.toLowerCase();\n throw new TypeError(`Invalid protocol '${input}'.`);\n}\nfunction usernameEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n const url = new URL(\"https://example.com\");\n url.username = input;\n return url.username;\n}\nfunction passwordEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n const url = new URL(\"https://example.com\");\n url.password = input;\n return url.password;\n}\nfunction hostnameEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n if (/[\\t\\n\\r #%/:<>?@[\\]^\\\\|]/g.test(input)) {\n throw new TypeError(`Invalid hostname '${input}'`);\n }\n const url = new URL(\"https://example.com\");\n url.hostname = input;\n return url.hostname;\n}\nfunction ipv6HostnameEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n if (/[^0-9a-fA-F[\\]:]/g.test(input)) {\n throw new TypeError(`Invalid IPv6 hostname '${input}'`);\n }\n return input.toLowerCase();\n}\nfunction portEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n if (/^[0-9]*$/.test(input) && parseInt(input) <= 65535) {\n return input;\n }\n throw new TypeError(`Invalid port '${input}'.`);\n}\nfunction standardURLPathnameEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n const url = new URL(\"https://example.com\");\n url.pathname = input[0] !== \"/\" ? \"/-\" + input : input;\n if (input[0] !== \"/\") {\n return url.pathname.substring(2, url.pathname.length);\n }\n return url.pathname;\n}\nfunction pathURLPathnameEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n const url = new URL(`data:${input}`);\n return url.pathname;\n}\nfunction searchEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n const url = new URL(\"https://example.com\");\n url.search = input;\n return url.search.substring(1, url.search.length);\n}\nfunction hashEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n const url = new URL(\"https://example.com\");\n url.hash = input;\n return url.hash.substring(1, url.hash.length);\n}\n\n// src/url-pattern-parser.ts\nvar Parser = class {\n constructor(input) {\n // The list of `LexToken`s produced by the path-to-regexp `lexer()` function\n // when passed `input` with lenient mode enabled.\n this.tokenList = [];\n // As we parse the input string we populate a `URLPatternInit` dictionary\n // with each component pattern. This is then the final result of the parse.\n this.internalResult = {};\n // The index of the current `LexToken` being considered.\n this.tokenIndex = 0;\n // The value to add to `tokenIndex` on each turn through the parse loop.\n // While typically this is `1`, it is also set to `0` at times for things\n // like state transitions, etc. It is automatically reset back to `1` at\n // the top of the parse loop.\n this.tokenIncrement = 1;\n // The index of the first `LexToken` to include in the component string.\n this.componentStart = 0;\n // The current parse state. This should only be changed via `changeState()`\n // or `rewindAndSetState()`.\n this.state = 0 /* INIT */;\n // The current nest depth of `{ }` pattern groupings.\n this.groupDepth = 0;\n // The current nesting depth of `[ ]` in hostname patterns.\n this.hostnameIPv6BracketDepth = 0;\n // True if we should apply parse rules as if this is a \"standard\" URL. If\n // false then this is treated as a \"not a base URL\".\n this.shouldTreatAsStandardURL = false;\n this.input = input;\n }\n // Return the parse result. The result is only available after the\n // `parse()` method completes.\n get result() {\n return this.internalResult;\n }\n // Attempt to parse the input string used to construct the Parser object.\n // This method may only be called once. Any errors will be thrown as an\n // exception. Retrieve the parse result by accessing the `Parser.result`\n // property getter.\n parse() {\n this.tokenList = lexer(\n this.input,\n /*lenient=*/\n true\n );\n for (; this.tokenIndex < this.tokenList.length; this.tokenIndex += this.tokenIncrement) {\n this.tokenIncrement = 1;\n if (this.tokenList[this.tokenIndex].type === \"END\") {\n if (this.state === 0 /* INIT */) {\n this.rewind();\n if (this.isHashPrefix()) {\n this.changeState(\n 9 /* HASH */,\n /*skip=*/\n 1\n );\n } else if (this.isSearchPrefix()) {\n this.changeState(\n 8 /* SEARCH */,\n /*skip=*/\n 1\n );\n this.internalResult.hash = \"\";\n } else {\n this.changeState(\n 7 /* PATHNAME */,\n /*skip=*/\n 0\n );\n this.internalResult.search = \"\";\n this.internalResult.hash = \"\";\n }\n continue;\n } else if (this.state === 2 /* AUTHORITY */) {\n this.rewindAndSetState(5 /* HOSTNAME */);\n continue;\n }\n this.changeState(\n 10 /* DONE */,\n /*skip=*/\n 0\n );\n break;\n }\n if (this.groupDepth > 0) {\n if (this.isGroupClose()) {\n this.groupDepth -= 1;\n } else {\n continue;\n }\n }\n if (this.isGroupOpen()) {\n this.groupDepth += 1;\n continue;\n }\n switch (this.state) {\n case 0 /* INIT */:\n if (this.isProtocolSuffix()) {\n this.internalResult.username = \"\";\n this.internalResult.password = \"\";\n this.internalResult.hostname = \"\";\n this.internalResult.port = \"\";\n this.internalResult.pathname = \"\";\n this.internalResult.search = \"\";\n this.internalResult.hash = \"\";\n this.rewindAndSetState(1 /* PROTOCOL */);\n }\n break;\n case 1 /* PROTOCOL */:\n if (this.isProtocolSuffix()) {\n this.computeShouldTreatAsStandardURL();\n let nextState = 7 /* PATHNAME */;\n let skip = 1;\n if (this.shouldTreatAsStandardURL) {\n this.internalResult.pathname = \"/\";\n }\n if (this.nextIsAuthoritySlashes()) {\n nextState = 2 /* AUTHORITY */;\n skip = 3;\n } else if (this.shouldTreatAsStandardURL) {\n nextState = 2 /* AUTHORITY */;\n }\n this.changeState(nextState, skip);\n }\n break;\n case 2 /* AUTHORITY */:\n if (this.isIdentityTerminator()) {\n this.rewindAndSetState(3 /* USERNAME */);\n } else if (this.isPathnameStart() || this.isSearchPrefix() || this.isHashPrefix()) {\n this.rewindAndSetState(5 /* HOSTNAME */);\n }\n break;\n case 3 /* USERNAME */:\n if (this.isPasswordPrefix()) {\n this.changeState(\n 4 /* PASSWORD */,\n /*skip=*/\n 1\n );\n } else if (this.isIdentityTerminator()) {\n this.changeState(\n 5 /* HOSTNAME */,\n /*skip=*/\n 1\n );\n }\n break;\n case 4 /* PASSWORD */:\n if (this.isIdentityTerminator()) {\n this.changeState(\n 5 /* HOSTNAME */,\n /*skip=*/\n 1\n );\n }\n break;\n case 5 /* HOSTNAME */:\n if (this.isIPv6Open()) {\n this.hostnameIPv6BracketDepth += 1;\n } else if (this.isIPv6Close()) {\n this.hostnameIPv6BracketDepth -= 1;\n }\n if (this.isPortPrefix() && !this.hostnameIPv6BracketDepth) {\n this.changeState(\n 6 /* PORT */,\n /*skip=*/\n 1\n );\n } else if (this.isPathnameStart()) {\n this.changeState(\n 7 /* PATHNAME */,\n /*skip=*/\n 0\n );\n } else if (this.isSearchPrefix()) {\n this.changeState(\n 8 /* SEARCH */,\n /*skip=*/\n 1\n );\n } else if (this.isHashPrefix()) {\n this.changeState(\n 9 /* HASH */,\n /*skip=*/\n 1\n );\n }\n break;\n case 6 /* PORT */:\n if (this.isPathnameStart()) {\n this.changeState(\n 7 /* PATHNAME */,\n /*skip=*/\n 0\n );\n } else if (this.isSearchPrefix()) {\n this.changeState(\n 8 /* SEARCH */,\n /*skip=*/\n 1\n );\n } else if (this.isHashPrefix()) {\n this.changeState(\n 9 /* HASH */,\n /*skip=*/\n 1\n );\n }\n break;\n case 7 /* PATHNAME */:\n if (this.isSearchPrefix()) {\n this.changeState(\n 8 /* SEARCH */,\n /*skip=*/\n 1\n );\n } else if (this.isHashPrefix()) {\n this.changeState(\n 9 /* HASH */,\n /*skip=*/\n 1\n );\n }\n break;\n case 8 /* SEARCH */:\n if (this.isHashPrefix()) {\n this.changeState(\n 9 /* HASH */,\n /*skip=*/\n 1\n );\n }\n break;\n case 9 /* HASH */:\n break;\n case 10 /* DONE */:\n break;\n }\n }\n }\n changeState(newState, skip) {\n switch (this.state) {\n case 0 /* INIT */:\n break;\n case 1 /* PROTOCOL */:\n this.internalResult.protocol = this.makeComponentString();\n break;\n case 2 /* AUTHORITY */:\n break;\n case 3 /* USERNAME */:\n this.internalResult.username = this.makeComponentString();\n break;\n case 4 /* PASSWORD */:\n this.internalResult.password = this.makeComponentString();\n break;\n case 5 /* HOSTNAME */:\n this.internalResult.hostname = this.makeComponentString();\n break;\n case 6 /* PORT */:\n this.internalResult.port = this.makeComponentString();\n break;\n case 7 /* PATHNAME */:\n this.internalResult.pathname = this.makeComponentString();\n break;\n case 8 /* SEARCH */:\n this.internalResult.search = this.makeComponentString();\n break;\n case 9 /* HASH */:\n this.internalResult.hash = this.makeComponentString();\n break;\n case 10 /* DONE */:\n break;\n }\n this.changeStateWithoutSettingComponent(newState, skip);\n }\n changeStateWithoutSettingComponent(newState, skip) {\n this.state = newState;\n this.componentStart = this.tokenIndex + skip;\n this.tokenIndex += skip;\n this.tokenIncrement = 0;\n }\n rewind() {\n this.tokenIndex = this.componentStart;\n this.tokenIncrement = 0;\n }\n rewindAndSetState(newState) {\n this.rewind();\n this.state = newState;\n }\n safeToken(index) {\n if (index < 0) {\n index = this.tokenList.length - index;\n }\n if (index < this.tokenList.length) {\n return this.tokenList[index];\n }\n return this.tokenList[this.tokenList.length - 1];\n }\n isNonSpecialPatternChar(index, value) {\n const token = this.safeToken(index);\n return token.value === value && (token.type === \"CHAR\" || token.type === \"ESCAPED_CHAR\" || token.type === \"INVALID_CHAR\");\n }\n isProtocolSuffix() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \":\");\n }\n nextIsAuthoritySlashes() {\n return this.isNonSpecialPatternChar(this.tokenIndex + 1, \"/\") && this.isNonSpecialPatternChar(this.tokenIndex + 2, \"/\");\n }\n isIdentityTerminator() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \"@\");\n }\n isPasswordPrefix() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \":\");\n }\n isPortPrefix() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \":\");\n }\n isPathnameStart() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \"/\");\n }\n isSearchPrefix() {\n if (this.isNonSpecialPatternChar(this.tokenIndex, \"?\")) {\n return true;\n }\n if (this.tokenList[this.tokenIndex].value !== \"?\") {\n return false;\n }\n const previousToken = this.safeToken(this.tokenIndex - 1);\n return previousToken.type !== \"NAME\" && previousToken.type !== \"REGEX\" && previousToken.type !== \"CLOSE\" && previousToken.type !== \"ASTERISK\";\n }\n isHashPrefix() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \"#\");\n }\n isGroupOpen() {\n return this.tokenList[this.tokenIndex].type == \"OPEN\";\n }\n isGroupClose() {\n return this.tokenList[this.tokenIndex].type == \"CLOSE\";\n }\n isIPv6Open() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \"[\");\n }\n isIPv6Close() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \"]\");\n }\n makeComponentString() {\n const token = this.tokenList[this.tokenIndex];\n const componentCharStart = this.safeToken(this.componentStart).index;\n return this.input.substring(componentCharStart, token.index);\n }\n computeShouldTreatAsStandardURL() {\n const options = {};\n Object.assign(options, DEFAULT_OPTIONS);\n options.encodePart = protocolEncodeCallback;\n const regexp = stringToRegexp(\n this.makeComponentString(),\n /*keys=*/\n void 0,\n options\n );\n this.shouldTreatAsStandardURL = isSpecialScheme(regexp);\n }\n};\n\n// src/url-pattern.ts\nvar COMPONENTS = [\n \"protocol\",\n \"username\",\n \"password\",\n \"hostname\",\n \"port\",\n \"pathname\",\n \"search\",\n \"hash\"\n];\nvar DEFAULT_PATTERN = \"*\";\nfunction extractValues(url, baseURL) {\n if (typeof url !== \"string\") {\n throw new TypeError(`parameter 1 is not of type 'string'.`);\n }\n const o = new URL(url, baseURL);\n return {\n protocol: o.protocol.substring(0, o.protocol.length - 1),\n username: o.username,\n password: o.password,\n hostname: o.hostname,\n port: o.port,\n pathname: o.pathname,\n search: o.search !== \"\" ? o.search.substring(1, o.search.length) : void 0,\n hash: o.hash !== \"\" ? o.hash.substring(1, o.hash.length) : void 0\n };\n}\nfunction processBaseURLString(input, isPattern) {\n if (!isPattern) {\n return input;\n }\n return escapePatternString(input);\n}\nfunction applyInit(o, init, isPattern) {\n let baseURL;\n if (typeof init.baseURL === \"string\") {\n try {\n baseURL = new URL(init.baseURL);\n o.protocol = processBaseURLString(baseURL.protocol.substring(0, baseURL.protocol.length - 1), isPattern);\n o.username = processBaseURLString(baseURL.username, isPattern);\n o.password = processBaseURLString(baseURL.password, isPattern);\n o.hostname = processBaseURLString(baseURL.hostname, isPattern);\n o.port = processBaseURLString(baseURL.port, isPattern);\n o.pathname = processBaseURLString(baseURL.pathname, isPattern);\n o.search = processBaseURLString(baseURL.search.substring(1, baseURL.search.length), isPattern);\n o.hash = processBaseURLString(baseURL.hash.substring(1, baseURL.hash.length), isPattern);\n } catch {\n throw new TypeError(`invalid baseURL '${init.baseURL}'.`);\n }\n }\n if (typeof init.protocol === \"string\") {\n o.protocol = canonicalizeProtocol(init.protocol, isPattern);\n }\n if (typeof init.username === \"string\") {\n o.username = canonicalizeUsername(init.username, isPattern);\n }\n if (typeof init.password === \"string\") {\n o.password = canonicalizePassword(init.password, isPattern);\n }\n if (typeof init.hostname === \"string\") {\n o.hostname = canonicalizeHostname(init.hostname, isPattern);\n }\n if (typeof init.port === \"string\") {\n o.port = canonicalizePort(init.port, o.protocol, isPattern);\n }\n if (typeof init.pathname === \"string\") {\n o.pathname = init.pathname;\n if (baseURL && !isAbsolutePathname(o.pathname, isPattern)) {\n const slashIndex = baseURL.pathname.lastIndexOf(\"/\");\n if (slashIndex >= 0) {\n o.pathname = processBaseURLString(baseURL.pathname.substring(0, slashIndex + 1), isPattern) + o.pathname;\n }\n }\n o.pathname = canonicalizePathname(o.pathname, o.protocol, isPattern);\n }\n if (typeof init.search === \"string\") {\n o.search = canonicalizeSearch(init.search, isPattern);\n }\n if (typeof init.hash === \"string\") {\n o.hash = canonicalizeHash(init.hash, isPattern);\n }\n return o;\n}\nfunction escapePatternString(value) {\n return value.replace(/([+*?:{}()\\\\])/g, \"\\\\$1\");\n}\nfunction escapeRegexpString(value) {\n return value.replace(/([.+*?^${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\nfunction partsToPattern(parts, options) {\n options.delimiter ?? (options.delimiter = \"/#?\");\n options.prefixes ?? (options.prefixes = \"./\");\n options.sensitive ?? (options.sensitive = false);\n options.strict ?? (options.strict = false);\n options.end ?? (options.end = true);\n options.start ?? (options.start = true);\n options.endsWith = \"\";\n const kFullWildcardRegex2 = \".*\";\n const segmentWildcardRegex = `[^${escapeRegexpString(options.delimiter)}]+?`;\n const regexIdentifierPart2 = /[$_\\u200C\\u200D\\p{ID_Continue}]/u;\n let result = \"\";\n for (let i = 0; i < parts.length; ++i) {\n const part = parts[i];\n if (part.type === 3 /* kFixed */) {\n if (part.modifier === 3 /* kNone */) {\n result += escapePatternString(part.value);\n continue;\n }\n result += `{${escapePatternString(part.value)}}${modifierToString(part.modifier)}`;\n continue;\n }\n const customName = part.hasCustomName();\n let needsGrouping = !!part.suffix.length || !!part.prefix.length && (part.prefix.length !== 1 || !options.prefixes.includes(part.prefix));\n const lastPart = i > 0 ? parts[i - 1] : null;\n const nextPart = i < parts.length - 1 ? parts[i + 1] : null;\n if (!needsGrouping && customName && part.type === 1 /* kSegmentWildcard */ && part.modifier === 3 /* kNone */ && nextPart && !nextPart.prefix.length && !nextPart.suffix.length) {\n if (nextPart.type === 3 /* kFixed */) {\n const code = nextPart.value.length > 0 ? nextPart.value[0] : \"\";\n needsGrouping = regexIdentifierPart2.test(code);\n } else {\n needsGrouping = !nextPart.hasCustomName();\n }\n }\n if (!needsGrouping && !part.prefix.length && lastPart && lastPart.type === 3 /* kFixed */) {\n const code = lastPart.value[lastPart.value.length - 1];\n needsGrouping = options.prefixes.includes(code);\n }\n if (needsGrouping) {\n result += \"{\";\n }\n result += escapePatternString(part.prefix);\n if (customName) {\n result += `:${part.name}`;\n }\n if (part.type === 2 /* kRegex */) {\n result += `(${part.value})`;\n } else if (part.type === 1 /* kSegmentWildcard */) {\n if (!customName) {\n result += `(${segmentWildcardRegex})`;\n }\n } else if (part.type === 0 /* kFullWildcard */) {\n if (!customName && (!lastPart || lastPart.type === 3 /* kFixed */ || lastPart.modifier !== 3 /* kNone */ || needsGrouping || part.prefix !== \"\")) {\n result += \"*\";\n } else {\n result += `(${kFullWildcardRegex2})`;\n }\n }\n if (part.type === 1 /* kSegmentWildcard */ && customName && !!part.suffix.length) {\n if (regexIdentifierPart2.test(part.suffix[0])) {\n result += \"\\\\\";\n }\n }\n result += escapePatternString(part.suffix);\n if (needsGrouping) {\n result += \"}\";\n }\n if (part.modifier !== 3 /* kNone */) {\n result += modifierToString(part.modifier);\n }\n }\n return result;\n}\nvar URLPattern = class {\n constructor(init = {}, baseURLOrOptions, options) {\n this.regexp = {};\n this.names = {};\n this.component_pattern = {};\n this.parts = {};\n try {\n let baseURL = void 0;\n if (typeof baseURLOrOptions === \"string\") {\n baseURL = baseURLOrOptions;\n } else {\n options = baseURLOrOptions;\n }\n if (typeof init === \"string\") {\n const parser = new Parser(init);\n parser.parse();\n init = parser.result;\n if (baseURL === void 0 && typeof init.protocol !== \"string\") {\n throw new TypeError(`A base URL must be provided for a relative constructor string.`);\n }\n init.baseURL = baseURL;\n } else {\n if (!init || typeof init !== \"object\") {\n throw new TypeError(`parameter 1 is not of type 'string' and cannot convert to dictionary.`);\n }\n if (baseURL) {\n throw new TypeError(`parameter 1 is not of type 'string'.`);\n }\n }\n if (typeof options === \"undefined\") {\n options = { ignoreCase: false };\n }\n const ignoreCaseOptions = { ignoreCase: options.ignoreCase === true };\n const defaults = {\n pathname: DEFAULT_PATTERN,\n protocol: DEFAULT_PATTERN,\n username: DEFAULT_PATTERN,\n password: DEFAULT_PATTERN,\n hostname: DEFAULT_PATTERN,\n port: DEFAULT_PATTERN,\n search: DEFAULT_PATTERN,\n hash: DEFAULT_PATTERN\n };\n this.pattern = applyInit(defaults, init, true);\n if (defaultPortForProtocol(this.pattern.protocol) === this.pattern.port) {\n this.pattern.port = \"\";\n }\n let component;\n for (component of COMPONENTS) {\n if (!(component in this.pattern))\n continue;\n const options2 = {};\n const pattern = this.pattern[component];\n this.names[component] = [];\n switch (component) {\n case \"protocol\":\n Object.assign(options2, DEFAULT_OPTIONS);\n options2.encodePart = protocolEncodeCallback;\n break;\n case \"username\":\n Object.assign(options2, DEFAULT_OPTIONS);\n options2.encodePart = usernameEncodeCallback;\n break;\n case \"password\":\n Object.assign(options2, DEFAULT_OPTIONS);\n options2.encodePart = passwordEncodeCallback;\n break;\n case \"hostname\":\n Object.assign(options2, HOSTNAME_OPTIONS);\n if (treatAsIPv6Hostname(pattern)) {\n options2.encodePart = ipv6HostnameEncodeCallback;\n } else {\n options2.encodePart = hostnameEncodeCallback;\n }\n break;\n case \"port\":\n Object.assign(options2, DEFAULT_OPTIONS);\n options2.encodePart = portEncodeCallback;\n break;\n case \"pathname\":\n if (isSpecialScheme(this.regexp.protocol)) {\n Object.assign(options2, PATHNAME_OPTIONS, ignoreCaseOptions);\n options2.encodePart = standardURLPathnameEncodeCallback;\n } else {\n Object.assign(options2, DEFAULT_OPTIONS, ignoreCaseOptions);\n options2.encodePart = pathURLPathnameEncodeCallback;\n }\n break;\n case \"search\":\n Object.assign(options2, DEFAULT_OPTIONS, ignoreCaseOptions);\n options2.encodePart = searchEncodeCallback;\n break;\n case \"hash\":\n Object.assign(options2, DEFAULT_OPTIONS, ignoreCaseOptions);\n options2.encodePart = hashEncodeCallback;\n break;\n }\n try {\n this.parts[component] = parse(pattern, options2);\n this.regexp[component] = partsToRegexp(\n this.parts[component],\n /* out */\n this.names[component],\n options2\n );\n this.component_pattern[component] = partsToPattern(this.parts[component], options2);\n } catch (err) {\n throw new TypeError(`invalid ${component} pattern '${this.pattern[component]}'.`);\n }\n }\n } catch (err) {\n throw new TypeError(`Failed to construct 'URLPattern': ${err.message}`);\n }\n }\n test(input = {}, baseURL) {\n let values = {\n pathname: \"\",\n protocol: \"\",\n username: \"\",\n password: \"\",\n hostname: \"\",\n port: \"\",\n search: \"\",\n hash: \"\"\n };\n if (typeof input !== \"string\" && baseURL) {\n throw new TypeError(`parameter 1 is not of type 'string'.`);\n }\n if (typeof input === \"undefined\") {\n return false;\n }\n try {\n if (typeof input === \"object\") {\n values = applyInit(values, input, false);\n } else {\n values = applyInit(values, extractValues(input, baseURL), false);\n }\n } catch (err) {\n return false;\n }\n let component;\n for (component of COMPONENTS) {\n if (!this.regexp[component].exec(values[component])) {\n return false;\n }\n }\n return true;\n }\n exec(input = {}, baseURL) {\n let values = {\n pathname: \"\",\n protocol: \"\",\n username: \"\",\n password: \"\",\n hostname: \"\",\n port: \"\",\n search: \"\",\n hash: \"\"\n };\n if (typeof input !== \"string\" && baseURL) {\n throw new TypeError(`parameter 1 is not of type 'string'.`);\n }\n if (typeof input === \"undefined\") {\n return;\n }\n try {\n if (typeof input === \"object\") {\n values = applyInit(values, input, false);\n } else {\n values = applyInit(values, extractValues(input, baseURL), false);\n }\n } catch (err) {\n return null;\n }\n let result = {};\n if (baseURL) {\n result.inputs = [input, baseURL];\n } else {\n result.inputs = [input];\n }\n let component;\n for (component of COMPONENTS) {\n let match = this.regexp[component].exec(values[component]);\n if (!match) {\n return null;\n }\n let groups = {};\n for (let [i, name] of this.names[component].entries()) {\n if (typeof name === \"string\" || typeof name === \"number\") {\n let value = match[i + 1];\n groups[name] = value;\n }\n }\n result[component] = {\n input: values[component] ?? \"\",\n groups\n };\n }\n return result;\n }\n static compareComponent(component, left, right) {\n const comparePart = (left2, right2) => {\n for (let attr of [\"type\", \"modifier\", \"prefix\", \"value\", \"suffix\"]) {\n if (left2[attr] < right2[attr])\n return -1;\n else if (left2[attr] === right2[attr])\n continue;\n else\n return 1;\n }\n return 0;\n };\n const emptyFixedPart = new Part(3 /* kFixed */, \"\", \"\", \"\", \"\", 3 /* kNone */);\n const wildcardOnlyPart = new Part(0 /* kFullWildcard */, \"\", \"\", \"\", \"\", 3 /* kNone */);\n const comparePartList = (left2, right2) => {\n let i = 0;\n for (; i < Math.min(left2.length, right2.length); ++i) {\n let result = comparePart(left2[i], right2[i]);\n if (result)\n return result;\n }\n if (left2.length === right2.length) {\n return 0;\n }\n return comparePart(left2[i] ?? emptyFixedPart, right2[i] ?? emptyFixedPart);\n };\n if (!left.component_pattern[component] && !right.component_pattern[component]) {\n return 0;\n }\n if (left.component_pattern[component] && !right.component_pattern[component]) {\n return comparePartList(left.parts[component], [wildcardOnlyPart]);\n }\n if (!left.component_pattern[component] && right.component_pattern[component]) {\n return comparePartList([wildcardOnlyPart], right.parts[component]);\n }\n return comparePartList(left.parts[component], right.parts[component]);\n }\n get protocol() {\n return this.component_pattern.protocol;\n }\n get username() {\n return this.component_pattern.username;\n }\n get password() {\n return this.component_pattern.password;\n }\n get hostname() {\n return this.component_pattern.hostname;\n }\n get port() {\n return this.component_pattern.port;\n }\n get pathname() {\n return this.component_pattern.pathname;\n }\n get search() {\n return this.component_pattern.search;\n }\n get hash() {\n return this.component_pattern.hash;\n }\n};\nexport {\n URLPattern\n};\n","import { URLPattern } from \"./dist/urlpattern.js\";\n\nexport { URLPattern };\n\nif (!globalThis.URLPattern) {\n globalThis.URLPattern = URLPattern;\n}\n",":host {\n\tdisplay: flex;\n\tjustify-content: center;\n\ttext-align: center;\n\tcursor: pointer;\n\theight: 100%;\n\tposition: relative;\n}\n\n:host>div {\n\toverflow-y: auto;\n\theight: 100%;\n}\n\n:not(:host[label], :host[icon]),\n:host[disabled] {\n\tdisplay: none;\n}\n\n:host>div {\n\tdisplay: none;\n}\n\n:host>li {\n\theight: 100%;\n\tlist-style: none;\n}\n\n:host>li>a {\n\tpadding: 0 1.5em;\n\theight: 100%;\n}\n\n:host[selected]>li>a {\n\tdisplay: flex;\n\tcolor: rgb(var(--smoothly-color-contrast));\n\tbackground: rgb(var(--smoothly-color-shade));\n}\n\n:host:hover>li>a {\n\tcolor: rgb(var(--smoothly-color-contrast));\n\tbackground-color: rgb(var(--smoothly-color-tint));\n\ttransition: 0.2s;\n}\n\n:host>li>a>smoothly-icon {\n\talign-self: inherit;\n}\n:host[icon]>li>a>.label {\n\tdisplay: none;\n}\n:host([icon][label]):hover::before,\n:host([icon][label]):hover::after {\n\tposition: absolute;\n\tcolor: rgb(var(--smoothly-color-contrast));\n\tbackground-color: rgb(var(--smoothly-color-tint));\n\tborder-radius: 0.25rem;\n\tpointer-events: none;\n}\n:host([icon][label]):hover::before {\n\tcontent: \"\";\n bottom: -1.75rem;\n transform: rotate(45deg);\n width: 1.25em;\n height: 1.25em;\n}\n:host([icon][label]):hover::after {\n\tcontent: attr(label);\n\twhite-space: nowrap;\n\tbottom: -3.25rem;\n\tpadding: .5rem 1rem;\n\tborder-radius: .25rem;\n}\n\n/* Mobile mode */\n:host.smoothly-mobile-mode>li>a {\n\tpadding: 0;\n}\n:host.smoothly-mobile-mode[icon]>li>a>.label {\n\tdisplay: unset;\n\tpadding: 0 1rem;\n}\n:host.smoothly-mobile-mode>li>a {\n\tmargin-left: -1.5rem;\n\tmargin-right: -1.5rem;\n\tpadding-left: 1.5rem;\n\tpadding-right: 1.5rem;\n}\n:host.smoothly-mobile-mode[icon][label]:hover::before,\n:host.smoothly-mobile-mode[icon][label]:hover::after {\n\tcontent: unset;\n}\n\n","import {\n\tComponent,\n\tEvent,\n\tEventEmitter,\n\tFunctionalComponent,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tState,\n\tVNode,\n} from \"@stencil/core\"\nimport \"urlpattern-polyfill\"\nimport { Icon } from \"../../../model\"\n\n@Component({\n\ttag: \"smoothly-app-room\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyAppRoom {\n\tprivate query?: string\n\t@Prop({ reflect: true }) label?: string\n\t@Prop({ reflect: true }) icon?: Icon\n\t@Prop({ reflect: true }) disabled: boolean\n\t@Prop() path: string | URLPattern = \"\"\n\t@Prop({ reflect: true, mutable: true }) selected?: boolean\n\t@Prop() content?: VNode | FunctionalComponent\n\t@State() mobileMode = false\n\t@Event() smoothlyRoomSelect: EventEmitter<{ history: boolean; query?: string }>\n\t@Event() smoothlyRoomLoad: EventEmitter<{ selected: boolean }>\n\t@Event() smoothlyUrlChange: EventEmitter<string>\n\tprivate contentElement?: HTMLElement\n\tcomponentDidRender() {\n\t\tthis.selected && this.smoothlyUrlChange.emit(window.location.href)\n\t}\n\tcomponentWillLoad() {\n\t\tthis.selected = (typeof this.path == \"string\" ? new URLPattern({ pathname: this.path }) : this.path).test(\n\t\t\twindow.location\n\t\t)\n\t\tthis.smoothlyRoomLoad.emit({ selected: this.selected })\n\t\tthis.selected && window.history.replaceState({ smoothlyPath: this.path }, \"\", window.location.href)\n\t}\n\t@Method()\n\tasync setMobileMode(mobile: boolean) {\n\t\tthis.mobileMode = mobile\n\t}\n\t@Method()\n\tasync getContent(): Promise<HTMLElement | undefined> {\n\t\treturn this.contentElement\n\t}\n\t@Method()\n\tasync setSelected(selected: boolean, options?: { history?: boolean }): Promise<void> {\n\t\tthis.selected = selected\n\t\tif (selected) {\n\t\t\tthis.smoothlyRoomSelect.emit({ history: !!options?.history, query: this.query })\n\t\t}\n\t}\n\t@Listen(\"smoothlyUrlUpdate\", { target: \"window\" })\n\tasync setQuery(event: CustomEvent<{ query?: string; path: string }>): Promise<void> {\n\t\tif (event.detail.path == this.path && this.query != event.detail.query) {\n\t\t\tthis.query = event.detail.query\n\t\t\twindow.history.pushState(\n\t\t\t\t{ smoothlyPath: this.path, smoothlyQuery: this.query },\n\t\t\t\t\"\",\n\t\t\t\t`${window.location.pathname}${this.query ? `?${this.query}` : \"\"}`\n\t\t\t)\n\t\t\tthis.smoothlyUrlChange.emit(window.location.href)\n\t\t}\n\t}\n\n\tclickHandler(event: MouseEvent) {\n\t\tif (!event.metaKey && !event.ctrlKey && event.which != 2 && event.button != 1) {\n\t\t\tevent.preventDefault()\n\t\t\tthis.setSelected(true)\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={{ \"smoothly-mobile-mode\": this.mobileMode }}>\n\t\t\t\t<li>\n\t\t\t\t\t<a href={typeof this.path == \"string\" ? this.path : this.path.pathname} onClick={e => this.clickHandler(e)}>\n\t\t\t\t\t\t{this.icon && <smoothly-icon name={this.icon} />}\n\t\t\t\t\t\t{this.label && <span class=\"label\">{this.label}</span>}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t\t<div ref={e => (this.contentElement = e)}>\n\t\t\t\t\t{this.content && <smoothly-lazy content={this.content} />}\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tbackground-color: rgba(var(--smoothly-default-color), 1);\n\topacity: var(--opacity);\n\tpointer-events: var(--pointer-events);\n\ttransition: opacity 400ms;\n\tz-index: 3;\n\tborder-radius: 50%;\n\tbox-shadow: var(--smoothly-shadow);\n\theight: 3rem;\n\twidth: 3rem;\n\tposition: fixed;\n\tbottom: var(--bottom);\n\tright: var(--right);\n\toutline: none;\n\tcursor: pointer;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n}\n","import { Component, Element, h, Host, Prop, State } from \"@stencil/core\"\nimport { Scrollable } from \"../../model/Scrollable\"\n\n@Component({\n\ttag: \"smoothly-back-to-top\",\n\tstyleUrl: \"style.scss\",\n\tscoped: true,\n})\nexport class SmoothlyBackToTop {\n\tprivate scrollableParent?: HTMLElement\n\t@Element() element: HTMLSmoothlyBackToTopElement\n\t@Prop() opacity = \"0.5\"\n\t@Prop() bottom = \"1rem\"\n\t@Prop() right = \"1rem\"\n\t@State() visible: boolean\n\tcomponentWillLoad() {\n\t\tthis.scrollableParent = Scrollable.findParent(this.element)\n\t\tthis.scrollableParent?.addEventListener(\"scroll\", () => {\n\t\t\tthis.visible = (this.scrollableParent?.scrollTop ?? 0) > 20\n\t\t})\n\t}\n\trender() {\n\t\tconst cssVariables = {\n\t\t\t\"--opacity\": this.visible ? this.opacity : \"0\",\n\t\t\t\"--pointer-events\": this.visible ? \"auto\" : \"none\",\n\t\t\t\"--bottom\": this.bottom,\n\t\t\t\"--right\": this.right,\n\t\t}\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tstyle={cssVariables}\n\t\t\t\tonClick={() =>\n\t\t\t\t\tthis.scrollableParent?.scrollTo({\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\tbehavior: \"smooth\",\n\t\t\t\t\t})\n\t\t\t\t}>\n\t\t\t\t<smoothly-icon name=\"caret-up-outline\" />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\theight: 100%;\n\tcursor: pointer;\n}\n:host smoothly-icon {\n\t--smoothly-icon-size: 3rem;\n\tmargin-right: 1em;\n}\n:host:not([open]) smoothly-icon {\n\ttransform: rotate(0deg);\n\ttransition: transform 100ms ease-in-out;\n}\n:host([open]) smoothly-icon {\n\ttransform: rotate(-90deg);\n\ttransition: transform 100ms ease-in-out;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, Watch } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-burger\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyBurger {\n\t@Element() element: HTMLSmoothlyBurgerElement\n\t@Prop({ reflect: true, mutable: true }) open = false\n\t@Event() smoothlyNavStatus: EventEmitter<boolean>\n\n\t@Watch(\"open\")\n\topenChanged() {\n\t\tthis.smoothlyNavStatus.emit(this.open)\n\t}\n\n\t@Listen(\"click\")\n\tclickHandler() {\n\t\tthis.open = !this.open\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-icon name=\"menu\" />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../color/style.css\";\n\n:host {\n\t--smoothly-button-border-radius: 0.5rem;\n\tdisplay: inline-flex;\n\tbox-sizing: border-box;\n\tborder-radius: var(--smoothly-button-border-radius);\n\tfont-size: var(--smoothly-button-font-size, 1rem);\n\tcursor: pointer;\n\tborder: none;\n\toutline: none;\n\tposition: relative;\n}\n:host([shape=rounded]) {\n\t--smoothly-button-border-radius: 2rem;\n}\n\n:host([type=link]) {\n\tdisplay: inline;\n}\n\n:host([disabled]) {\n\topacity: 0.5;\n}\n:host>a {\n\tfont-weight: 400;\n\tbackground-color: transparent;\n}\n:host>a,\n:host>button {\n\tfont-size: var(--smoothly-button-font-size);\n\tborder: 1px solid transparent;\n\toutline: none;\n\tcursor: pointer;\n\tdisplay: inline-flex;\n\tgap: 0.5rem;\n\tbox-sizing: border-box;\n}\n:host>button {\n\tfont-weight: bold;\n\tjustify-content: center;\n\twidth: 100%;\n\talign-items: center;\n\tborder-radius: var(--smoothly-button-border-radius);\n\tpadding-inline: var(--smoothly-button-padding-inline, 1rem);\n}\n:host {\n\tmin-height: var(--smoothly-button-height, 2.5rem);\n}\n\n:host:has(> a:empty),\n:host:has(> button:empty),\n:host>a:empty,\n:host>button:empty {\n\tborder-width: 0;\n\tmin-height: 0;\n\tpadding-inline: 0;\n}\n\n:host([size=small]) {\n\t--smoothly-button-height: 2rem;\n\t--smoothly-button-padding-inline: 0.75rem;\n\t--smoothly-button-font-size: 0.875rem;\n\t--smoothly-icon-size: 1.4rem;\n}\n:host([size=large]) {\n\t--smoothly-button-height: 3rem;\n\t--smoothly-button-padding-inline: 1.25rem;\n\t--smoothly-button-font-size: 1.125rem;\n}\n\n:host(:not([size=icon]):not([size=flexible]))>button {\n\tmin-width: 8rem;\n}\n:host([size=icon]) {\n\t--smoothly-icon-size: 1.4rem;\n}\n:host([size=icon])>button {\n\tmin-height: var(--smoothly-button-height, 2.5rem);\n\tmin-width: var(--smoothly-button-height, 2.5rem);\n\tpadding: 0;\n}\n\n:host(:not([size=icon])) {\n\tmin-width: 8em;\n}\n\n:host([size=flexible]) {\n\tmin-width: unset;\n\tpadding: 0;\n\tmargin: 0;\n\tdisplay: flex;\n\tjustify-content: center;\n}\n\n:host([size=flexible])>button {\n\tmin-width: unset;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n:host([expand]) {\n\twidth: 100%;\n}\n\n:host([expand=full]) {\n\tborder-left: none;\n\tborder-right: none;\n\t--smoothly-button-border-radius: 0;\n}\n\n:host([fill=outline])>button {\n\tbackground-color: transparent;\n\tcolor: rgb(var(--smoothly-button-foreground));\n\tfill: rgb(var(--smoothly-button-foreground));\n\tstroke: rgb(var(--smoothly-button-foreground));\n\tborder-color: rgb(var(--smoothly-button-foreground));\n}\n\n:host(:not([fill=clear]):not([disabled]))>button:hover,\n:host(:not([disabled]))>button:focus-visible,\n:host([fill=outline]:not([disabled])):active>button::before {\n\tborder-color: rgb(var(--smoothly-button-focus-color));\n}\n\n:host([fill=outline]:not([disabled]))>button:hover::before,\n:host([fill=outline]:not([disabled]))>button:focus-within::before,\n:host([fill=outline]:not([disabled]))>button:active::before {\n\tcontent: \"\";\n\tposition: absolute;\n\tborder: 2px solid rgb(var(--smoothly-button-focus-border));\n\tinset: -1px;\n\tborder-radius: var(--smoothly-button-border-radius);\n}\n\n:host(:not([fill=clear]):not([fill=outline]):not([disabled]))>button:hover,\n:host(:not([fill=clear]):not([fill=outline]):not([disabled]))>button:focus-visible,\n:host(:not([fill=clear]):not([fill=outline]):not([disabled]))>button:active {\n\tbackground: rgb(var(--smoothly-button-hover-background));\n}\n\n:host>button,\n:host ::slotted(smoothly-icon) {\n\tcolor: rgb(var(--smoothly-button-foreground));\n\tstroke: rgb(var(--smoothly-button-foreground));\n\tfill: rgb(var(--smoothly-button-foreground));\n}\n\n:host([hidden]) {\n\tdisplay: none;\n}\n","import { Component, h, Host, Prop } from \"@stencil/core\"\nimport { Color, Fill } from \"../../model\"\nimport { Button } from \"./Button\"\n\n@Component({\n\ttag: \"smoothly-button\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyButton {\n\t@Prop({ reflect: true }) color?: Color\n\t@Prop({ reflect: true }) expand?: \"block\" | \"full\"\n\t@Prop({ reflect: true }) fill?: Fill\n\t@Prop({ reflect: true }) tooltip?: string\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop({ reflect: true }) type: Button.Properties[\"type\"]\n\t@Prop({ reflect: true }) size: \"small\" | \"large\" | \"icon\" | \"flexible\"\n\t@Prop({ reflect: true }) shape?: \"rounded\"\n\t@Prop() link?: string\n\n\trender() {\n\t\treturn (\n\t\t\t<Host title={this.tooltip}>\n\t\t\t\t<Button disabled={this.disabled} type={this.type} link={this.link}>\n\t\t\t\t\t<slot />\n\t\t\t\t</Button>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: inline-block;\n}\n:host([disabled]) {\n\topacity: 0.5;\n\tpointer-events: none;\n}\n:host:not([warning]) > smoothly-button:first-child {\n\tdisplay: none;\n}\n:host[warning] > smoothly-button:nth-child(2) {\n\tdisplay: none;\n}\n:host([expand]) {\n\twidth: 100%;\n}\n","import { Component, Event, EventEmitter, h, Host, Prop, State, VNode } from \"@stencil/core\"\nimport { Color, Data, Fill } from \"../../model\"\nimport { Editable } from \"../input/Editable\"\n\n@Component({\n\ttag: \"smoothly-button-confirm\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyButtonConfirm {\n\ttimer?: number\n\t@Prop() color?: Color\n\t@Prop({ reflect: true }) name: string\n\t@Prop() doubleClickTime = 0.2\n\t@Prop({ reflect: true }) expand?: \"block\" | \"full\"\n\t@Prop() fill?: Fill\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop() shape?: \"rounded\"\n\t@Prop() size: \"small\" | \"large\" | \"icon\" | \"flexible\"\n\t@State() clickTimeStamp: number | undefined\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyConfirm: EventEmitter<Data>\n\n\tclickHandler(event: MouseEvent): void {\n\t\tif (this.clickTimeStamp && event.timeStamp - this.clickTimeStamp > this.doubleClickTime * 1000) {\n\t\t\tthis.timer && window.clearTimeout(this.timer)\n\t\t\tthis.clickTimeStamp = undefined\n\t\t\tthis.smoothlyConfirm.emit({ [this.name]: true })\n\t\t} else {\n\t\t\tthis.clickTimeStamp = event.timeStamp\n\t\t\tthis.timer = window.setTimeout(() => {\n\t\t\t\tthis.clickTimeStamp = undefined\n\t\t\t}, 2000)\n\t\t}\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host warning={this.clickTimeStamp}>\n\t\t\t\t<smoothly-button\n\t\t\t\t\tfill={this.fill}\n\t\t\t\t\texpand={this.expand}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\tshape={this.shape}\n\t\t\t\t\tcolor={\"warning\"}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\ttype={\"button\"}\n\t\t\t\t\tonClick={event => this.clickHandler(event)}>\n\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\tname={\"alert-outline\"}\n\t\t\t\t\t\tfill={this.fill}\n\t\t\t\t\t\tcolor=\"warning\"\n\t\t\t\t\t\tsize={this.size === \"icon\" ? \"tiny\" : \"small\"}\n\t\t\t\t\t/>\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button\n\t\t\t\t\tfill={this.fill}\n\t\t\t\t\texpand={this.expand}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\tshape={this.shape}\n\t\t\t\t\tcolor={this.color}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\ttype={\"button\"}\n\t\t\t\t\tonClick={event => this.clickHandler(event)}>\n\t\t\t\t\t<slot />\n\t\t\t\t</smoothly-button>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","smoothly-button-demo {\n\tdisplay: block;\n\tmargin: 1rem;\n}\n\nsmoothly-button-demo > section > div {\n\tdisplay: flex;\n\talign-items: center;\n}\n\nsmoothly-button-demo smoothly-button {\n\tmargin: .2em .5em;\n}\n","import { Component, h, Host } from \"@stencil/core\"\n@Component({\n\ttag: \"smoothly-button-demo\",\n\tstyleUrl: \"style.css\",\n})\nexport class SmoothlyButtonDemo {\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<section>\n\t\t\t\t\t<smoothly-button-demo-standard />\n\t\t\t\t</section>\n\t\t\t\t<section>\n\t\t\t\t\t<h4>Confirm button (two clicks)</h4>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<smoothly-button-confirm name=\"confirm\" shape=\"rounded\" color=\"danger\" size=\"large\">\n\t\t\t\t\t\t\tDelete\n\t\t\t\t\t\t</smoothly-button-confirm>\n\t\t\t\t\t\t<smoothly-button-confirm name=\"confirm-icon\" shape=\"rounded\" color=\"success\" size=\"icon\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"checkmark-outline\" size=\"tiny\" />\n\t\t\t\t\t\t</smoothly-button-confirm>\n\t\t\t\t\t\t<smoothly-button-confirm name=\"confirm-icon\" shape=\"rounded\" color=\"danger\" size=\"icon\" fill=\"outline\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"trash-outline\" size=\"tiny\" fill=\"outline\" />\n\t\t\t\t\t\t</smoothly-button-confirm>\n\t\t\t\t\t</div>\n\t\t\t\t\t<smoothly-toggle-switch-demo />\n\t\t\t\t\t<h4>Links with icons</h4>\n\t\t\t\t\t<smoothly-button type=\"link\">\n\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\" />\n\t\t\t\t\t\ttype link\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"button\" color=\"warning\" fill=\"default\">\n\t\t\t\t\t\t<smoothly-icon name=\"call\" slot=\"start\" />\n\t\t\t\t\t\t<a href=\"https://google.com\">link</a>\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button link=\"https://google.com\" type=\"link\">\n\t\t\t\t\t\t<smoothly-icon name=\"arrow-forward\" slot=\"end\" />\n\t\t\t\t\t\tlink + type link\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<h4>Size and Color test</h4>\n\t\t\t\t\t<smoothly-button color=\"primary\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\t\tColor Primary + Small\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button color=\"secondary\" fill=\"solid\" shape=\"rounded\">\n\t\t\t\t\t\tColor Secondary + Default\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button color=\"warning\" fill=\"solid\" size=\"large\">\n\t\t\t\t\t\tColor Warning + Large\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button color=\"danger\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\t\tColor Danger + Small\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button color=\"success\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\t\tColor Success + Small\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button color=\"tertiary\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\t\tColor Tertiary + Small\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button color=\"dark\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\t\tColor Dark + Small\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button color=\"medium\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\t\tColor Medium + Small\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button color=\"light\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\t\tColor Light + Small\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<h4>Expand examples</h4>\n\t\t\t\t\t<smoothly-button color=\"secondary\" fill=\"solid\" expand=\"full\">\n\t\t\t\t\t\tColor Secondary + Default\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button color=\"warning\" fill=\"solid\" expand=\"block\">\n\t\t\t\t\t\tColor Warning + Large\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<h4>Fill examples</h4>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<smoothly-button shape=\"rounded\" color=\"primary\" fill=\"solid\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\" />\n\t\t\t\t\t\t\tFill Solid\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button shape=\"rounded\" color=\"secondary\" fill=\"outline\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\" />\n\t\t\t\t\t\t\tFill Outline\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button shape=\"rounded\" color=\"tertiary\" fill=\"clear\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\" />\n\t\t\t\t\t\t\tFill Clear\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button size=\"icon\" shape=\"rounded\" color=\"success\" fill=\"solid\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"basketball\" />\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<h4>Buttons with Icon in \"start\"</h4>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<smoothly-button shape=\"rounded\" fill=\"solid\" color=\"warning\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\" />\n\t\t\t\t\t\t\tCheck\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button shape=\"rounded\" fill=\"solid\" color=\"secondary\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"basketball\" slot=\"start\" />\n\t\t\t\t\t\t\tCheck\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button shape=\"rounded\" fill=\"solid\" color=\"success\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"call\" slot=\"start\" />\n\t\t\t\t\t\t\tCheck\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button size=\"icon\" fill=\"solid\" shape=\"rounded\" color=\"success\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"call\" />\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button size=\"flexible\" fill=\"solid\" color=\"success\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"airplane\" />\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<h4>Buttons with Icon in \"end\"</h4>\n\t\t\t\t\t<smoothly-button fill=\"solid\" color=\"light\">\n\t\t\t\t\t\tGo Forward\n\t\t\t\t\t\t<smoothly-icon name=\"arrow-forward\" slot=\"end\" />\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<h4>Test for icon button</h4>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<smoothly-button size=\"icon\" fill=\"solid\" shape=\"rounded\" color=\"success\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"call\" />\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button size=\"icon\" shape=\"rounded\" color=\"warning\" fill=\"solid\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"search-outline\" />\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button size=\"icon\" shape=\"rounded\" color=\"secondary\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" />\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<h4>Link examples</h4>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<smoothly-button type=\"link\">type link</smoothly-button>\n\t\t\t\t\t\t<smoothly-button type=\"button\" fill=\"clear\">\n\t\t\t\t\t\t\t<a href=\"https://google.com\">link</a>\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button link=\"https://google.com\" type=\"link\">\n\t\t\t\t\t\t\tlink + type link\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<h4>Disabled buttons</h4>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<smoothly-button disabled fill=\"solid\" color=\"secondary\">\n\t\t\t\t\t\t\tDisabled\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button type=\"link\" link=\"https://google.com\" disabled>\n\t\t\t\t\t\t\tDisabled link\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t</div>\n\t\t\t\t</section>\n\t\t\t\t<smoothly-back-to-top />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host smoothly-input-select smoothly-item {\n\tdisplay: flex;\n}\n\n:host .buttons {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 0.5rem;\n}\n:host .buttons > smoothly-button {\n\tmargin-block: 0;\n}\n\n:host .height-text {\n\tborder-left: 3px dotted rgb(var(--smoothly-default-contrast));\n\tpadding-inline: 1rem;\n\talign-content: center;\n}\n","import { Component, h, Host, State, Watch } from \"@stencil/core\"\nimport { Color, Fill, Icon } from \"../../../../model\"\nimport { Button } from \"../../Button\"\n\ntype Options = {\n\tfill?: Fill\n\tdisabled?: boolean\n\texpand?: \"block\" | \"full\"\n\ttype?: Button.Properties[\"type\"]\n\tsize?: \"small\" | \"large\" | \"icon\" | \"flexible\"\n\trounded?: boolean\n\ticon?: Icon\n\ttext?: { value: string; useColor?: boolean }\n\ttooltip?: string\n}\n\n@Component({\n\ttag: \"smoothly-button-demo-standard\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyButtonDemoStandard {\n\t@State() props: Options = {}\n\t@State() heightText: string = \"\"\n\t@State() lastButton?: HTMLElement\n\n\t@Watch(\"props\")\n\tupdateInputHeightText() {\n\t\tsetTimeout(() => {\n\t\t\tconst rootFontSize = Number(getComputedStyle(document.documentElement).fontSize.replace(\"px\", \"\"))\n\t\t\tif (this.lastButton) {\n\t\t\t\tconst heightPx = this.lastButton.clientHeight\n\t\t\t\tthis.heightText = `${heightPx / rootFontSize}rem (${heightPx}px)`\n\t\t\t}\n\t\t}, 100)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Button Standard</h2>\n\t\t\t\t<smoothly-form onSmoothlyFormInput={e => (this.props = e.detail)} looks=\"grid\">\n\t\t\t\t\t<smoothly-input-checkbox name=\"text.useColor\" checked>\n\t\t\t\t\t\tUse Color as Text\n\t\t\t\t\t</smoothly-input-checkbox>\n\t\t\t\t\t<smoothly-input-select name=\"size\">\n\t\t\t\t\t\t<span slot=\"label\">Size</span>\n\t\t\t\t\t\t{[\"small\", \"large\", \"icon\", \"flexible\"].map(size => (\n\t\t\t\t\t\t\t<smoothly-item value={size} key={size}>\n\t\t\t\t\t\t\t\t{size}\n\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<smoothly-input name=\"text.value\" value=\"Button\">\n\t\t\t\t\t\tText\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input-radio name=\"expand\" clearable>\n\t\t\t\t\t\t<span slot=\"label\">Expand</span>\n\t\t\t\t\t\t<smoothly-input-radio-item value=\"block\">block</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-radio-item value=\"full\">full</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t</smoothly-input-radio>\n\t\t\t\t\t<smoothly-input-select name=\"fill\">\n\t\t\t\t\t\t<span slot=\"label\">Fill</span>\n\t\t\t\t\t\t{Fill.values.map(fill => (\n\t\t\t\t\t\t\t<smoothly-item value={fill} key={fill}>\n\t\t\t\t\t\t\t\t{fill}\n\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<smoothly-input-checkbox name=\"disabled\">Disabled</smoothly-input-checkbox>\n\t\t\t\t\t<smoothly-input-select name=\"type\">\n\t\t\t\t\t\t<span slot=\"label\">Type</span>\n\t\t\t\t\t\t{[\"button\", \"submit\", \"reset\", \"link\"].map(type => (\n\t\t\t\t\t\t\t<smoothly-item value={type} key={type}>\n\t\t\t\t\t\t\t\t{type}\n\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<smoothly-input-checkbox name=\"rounded\">Rounded</smoothly-input-checkbox>\n\t\t\t\t\t<smoothly-input-select name=\"icon\" menuHeight=\"8items\">\n\t\t\t\t\t\t<span slot=\"label\">Icon</span>\n\t\t\t\t\t\t{Icon.Name.values.map(icon => (\n\t\t\t\t\t\t\t<smoothly-item value={icon} key={icon}>\n\t\t\t\t\t\t\t\t<smoothly-icon name={icon} size=\"small\" tooltip={icon} />\n\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<smoothly-input name=\"tooltip\" value=\"Tooltip\">\n\t\t\t\t\t\tTooltip\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t</smoothly-form>\n\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t{Color.values.map((color, index, colors) => (\n\t\t\t\t\t\t<smoothly-button\n\t\t\t\t\t\t\tonClick={e => console.log(`Clicked button with color: ${color}`, e)}\n\t\t\t\t\t\t\ttooltip={this.props.tooltip}\n\t\t\t\t\t\t\tref={el => colors.length - 1 == index && (this.lastButton = el)}\n\t\t\t\t\t\t\tcolor={color}\n\t\t\t\t\t\t\texpand={this.props.expand}\n\t\t\t\t\t\t\tfill={this.props.fill}\n\t\t\t\t\t\t\tdisabled={this.props.disabled}\n\t\t\t\t\t\t\tshape={this.props.rounded ? \"rounded\" : undefined}\n\t\t\t\t\t\t\tsize={this.props.size}\n\t\t\t\t\t\t\ttype={this.props.type}\n\t\t\t\t\t\t\tkey={color}>\n\t\t\t\t\t\t\t{this.props.icon ? <smoothly-icon name={this.props.icon} /> : undefined}\n\t\t\t\t\t\t\t{this.props.text?.useColor ? color : this.props.text?.value}\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t))}\n\t\t\t\t\t<div class=\"height-text\">{this.heightText}</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { isoly } from \"isoly\"\n\nexport function month(date: isoly.Date): isoly.Date[][] {\n\tconst d = new Date(date)\n\td.setDate(1)\n\tlet day = -((d.getDay() + 6) % 7) + 1\n\tconst result: string[][] = []\n\tfor (let row = 0; row < 6; row++) {\n\t\tconst r = []\n\t\tfor (let column = 0; column < 7; column++) {\n\t\t\tconst d = new Date(date)\n\t\t\td.setUTCDate(day++)\n\t\t\tr.push(isoly.Date.create(d))\n\t\t}\n\t\tif (row < 5 || isoly.Date.firstOfMonth(r[0]) == isoly.Date.firstOfMonth(date))\n\t\t\tresult.push(r)\n\t}\n\treturn result\n}\n\nexport function weekdays(): string[] {\n\tconst day = new globalThis.Date()\n\tday.setDate(day.getDate() - day.getDay() + 1)\n\tconst result: string[] = []\n\tfor (let i = 0; i < 7; i++) {\n\t\tresult.push(day.toLocaleString(undefined, { weekday: \"short\" }))\n\t\tday.setDate(day.getDate() + 1)\n\t}\n\treturn result\n}\n\nexport function months(current: isoly.Date): { date: isoly.Date; name: string; selected?: boolean }[] {\n\tconst day = new globalThis.Date(current)\n\tconst result: { date: isoly.Date; name: string; selected?: boolean }[] = []\n\tfor (let i = 0; i < 12; i++) {\n\t\tday.setMonth(i, 28)\n\t\tconst date = isoly.Date.create(day)\n\t\tresult.push({\n\t\t\tdate,\n\t\t\tname: day.toLocaleString(undefined, { month: \"long\" }),\n\t\t\tselected: date.substr(0, 7) == current.substr(0, 7),\n\t\t})\n\t}\n\treturn result\n}\nexport function years(\n\tcurrent: isoly.Date,\n\tmin?: isoly.Date,\n\tmax?: isoly.Date\n): { date: isoly.Date; name: string; selected?: boolean }[] {\n\tconst day = new globalThis.Date(current)\n\tconst start = min ? isoly.Date.getYear(min) : new Date().getFullYear() - 50\n\tconst end = max ? isoly.Date.getYear(max) : new Date().getFullYear() + 50\n\tconst result: { date: isoly.Date; name: string; selected?: boolean }[] = []\n\tfor (let i = start; i <= end; i++) {\n\t\tday.setFullYear(i)\n\t\tconst date = isoly.Date.create(day)\n\t\tresult.push({\n\t\t\tdate,\n\t\t\tname: day.toLocaleString(undefined, { year: \"numeric\" }),\n\t\t\tselected: date == current,\n\t\t})\n\t}\n\treturn result\n}\n",":host {\n\tdisplay: block;\n\t--other-month-opacity: 0.5;\n\tpadding: 0.5em;\n\tborder: 1px solid rgb(var(--smoothly-input-border));\n}\n\n:host>smoothly-input-month {\n\tpadding: 0 0.5em\n}\n\n:host>table {\n\ttable-layout: fixed;\n\twidth: 100%;\n}\n\n:host>table>thead>tr>th,\n:host>table>tr>td {\n\ttext-align: center;\n\tpadding: 0.5em;\n\tmin-width: 2em;\n\tbox-sizing: border-box;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tcolor: rgb(var(--smoothly-input-foreground));\n\t-webkit-user-select: none;\n\tuser-select: none;\n}\n:host>table>tr>td {\n\tposition: relative;\n\tcursor: pointer;\n}\n\n:host>table>tr>td.currentMonth {\n\tcolor: rgb(var(--smoothly-default-contrast));\n}\n\n:host>table>tr>td:not(.currentMonth) {\n\tcolor: rgba(var(--smoothly-default-contrast), var(--other-month-opacity));\n}\n\n:host>table>tr>td:nth-child(6):not(.currentMonth).selected,\n:host>table>tr>td:nth-child(6):not(.currentMonth).dateRange,\n:host>table>tr>td:nth-child(7):not(.currentMonth).selected,\n:host>table>tr>td:nth-child(7):not(.currentMonth).dateRange {\n\tcolor: rgba(var(--smoothly-default-contrast));\n}\n\n:host>table>tr>td:nth-child(6),\n:host>table>tr>td:nth-child(7) {\n\tcolor: rgb(var(--smoothly-calendar-weekend-foreground, var(--smoothly-danger-color)));\n}\n\n:host>table>tr>td:nth-child(6):not(.currentMonth),\n:host>table>tr>td:nth-child(7):not(.currentMonth) {\n\tcolor: rgba(var(--smoothly-calendar-weekend-foreground, var(--smoothly-danger-color)), var(--other-month-opacity));\n}\n\n:host>table>tr>td:not(.selected, .disable):hover {\n\tcolor: rgb(var(--smoothly-primary-contrast));\n\tbackground: rgb(var(--smoothly-primary-tint));\n}\n\n:host>table>tr>td.selected {\n\tcolor: rgb(var(--smoothly-primary-contrast));\n\tbackground: rgb(var(--smoothly-primary-color));\n}\n\n:host>table>tr>td.today::before {\n\tcontent: \"\";\n\tinset: 2px;\n\tposition: absolute;\n\tborder: 1px solid currentColor;\n}\n\n:host>table>tr>td.dateRange {\n\tcolor: rgb(var(--smoothly-primary-contrast));\n\tbackground: rgb(var(--smoothly-primary-tint));\n}\n\n:host>table>tr>td.disable {\n\tcursor: not-allowed;\n\topacity: 0.5;\n}\n","import { Component, Element, Event, EventEmitter, Fragment, h, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport * as generate from \"./generate\"\n\n@Component({\n\ttag: \"smoothly-calendar\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class Calendar {\n\tprivate frozenDate: isoly.Date\n\t@Element() element: HTMLTableRowElement\n\t@Prop({ mutable: true }) month?: isoly.Date\n\t@Prop({ mutable: true }) value?: isoly.Date\n\t@Prop() start?: isoly.Date\n\t@Prop() end?: isoly.Date\n\t@Prop({ mutable: true }) max: isoly.Date\n\t@Prop({ mutable: true }) min: isoly.Date\n\t@Prop({ reflect: true }) doubleInput: boolean\n\t@State() startInternal?: isoly.Date\n\t@State() endInternal?: isoly.Date\n\t@Event() smoothlyDateSet: EventEmitter<isoly.Date>\n\t@Event() smoothlyDateRangeSet: EventEmitter<isoly.DateRange>\n\n\tcomponentWillLoad() {\n\t\tthis.onStart()\n\t\tthis.onEnd()\n\t}\n\t@Watch(\"start\")\n\tonStart() {\n\t\tthis.startInternal = this.start\n\t}\n\t@Watch(\"end\")\n\tonEnd() {\n\t\tthis.endInternal = this.end\n\t}\n\t@Method()\n\tasync jumpTo(yearMonth: { Y?: string; M?: string }) {\n\t\tconst year = isoly.Date.Year.is(yearMonth.Y)\n\t\t\t? yearMonth.Y\n\t\t\t: this.month?.substring(0, 4) ?? isoly.Date.now().substring(0, 4)\n\t\tconst mon = isoly.Date.Month.is(yearMonth.M)\n\t\t\t? yearMonth.M\n\t\t\t: this.month?.substring(5, 7) ?? isoly.Date.now().substring(5, 7)\n\t\tconst date = `${year}-${mon}-01`\n\t\tif (isoly.Date.is(date))\n\t\t\tthis.month = date\n\t}\n\n\tprivate clickCounter = 0\n\tprivate onClick(date: isoly.Date) {\n\t\tthis.value = date\n\t\tthis.smoothlyDateSet.emit(this.value)\n\t}\n\tprivate onClickDoubleInput(date: isoly.Date) {\n\t\tthis.clickCounter += 1\n\t\tif (this.clickCounter % 2 == 1) {\n\t\t\tthis.startInternal = this.endInternal = this.frozenDate = date\n\t\t} else {\n\t\t\tconst start = this.startInternal! > date ? date : this.startInternal\n\t\t\tconst end = this.endInternal! < date ? date : this.endInternal\n\t\t\tthis.startInternal = start\n\t\t\tthis.endInternal = end\n\t\t}\n\t\tthis.clickCounter % 2 == 0 &&\n\t\t\tthis.startInternal &&\n\t\t\tthis.endInternal &&\n\t\t\tthis.smoothlyDateRangeSet.emit({ start: this.startInternal, end: this.endInternal })\n\t}\n\tprivate onHover(date: isoly.Date) {\n\t\tif (this.doubleInput && this.clickCounter % 2 == 1) {\n\t\t\tif (date < this.frozenDate) {\n\t\t\t\tthis.startInternal = date\n\t\t\t\tthis.endInternal = this.frozenDate\n\t\t\t} else {\n\t\t\t\tthis.startInternal = this.frozenDate\n\t\t\t\tthis.endInternal = date\n\t\t\t}\n\t\t}\n\t}\n\tprivate withinLimit(date: isoly.Date) {\n\t\treturn (!this.min || date >= this.min) && (!this.max || date <= this.max)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<smoothly-input-month\n\t\t\t\t\tname=\"month\"\n\t\t\t\t\tvalue={this.month ?? this.value}\n\t\t\t\t\tmin={this.min}\n\t\t\t\t\tmax={this.max}\n\t\t\t\t\tinCalendar\n\t\t\t\t\tnext\n\t\t\t\t\tprevious\n\t\t\t\t\tshowLabel={false}\n\t\t\t\t\tonSmoothlyInput={e => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\"month\" in e.detail && typeof e.detail.month == \"string\" && (this.month = e.detail.month)\n\t\t\t\t\t}}\n\t\t\t\t\tonSmoothlyUserInput={e => e.stopPropagation()}>\n\t\t\t\t\t<div slot={\"year-label\"}>\n\t\t\t\t\t\t<slot name={\"year-label\"} />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div slot={\"month-label\"}>\n\t\t\t\t\t\t<slot name={\"month-label\"} />\n\t\t\t\t\t</div>\n\t\t\t\t</smoothly-input-month>\n\t\t\t\t<table>\n\t\t\t\t\t<thead>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t{generate.weekdays().map(day => (\n\t\t\t\t\t\t\t\t<th>{day}</th>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</thead>\n\t\t\t\t\t{generate.month(this.month ?? this.value ?? isoly.Date.now()).map(week => (\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t{week.map(date => (\n\t\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t\ttabindex={1}\n\t\t\t\t\t\t\t\t\tonMouseOver={this.withinLimit(date) ? () => this.onHover(date) : undefined}\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tthis.withinLimit(date)\n\t\t\t\t\t\t\t\t\t\t\t? () => (this.doubleInput ? this.onClickDoubleInput(date) : this.onClick(date))\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t\t\tselected:\n\t\t\t\t\t\t\t\t\t\t\tdate == this.value ||\n\t\t\t\t\t\t\t\t\t\t\t(this.doubleInput && (date == this.startInternal || date == this.endInternal)),\n\t\t\t\t\t\t\t\t\t\ttoday: date == isoly.Date.now(),\n\t\t\t\t\t\t\t\t\t\tcurrentMonth:\n\t\t\t\t\t\t\t\t\t\t\tisoly.Date.firstOfMonth(this.month ?? this.value ?? isoly.Date.now()) ==\n\t\t\t\t\t\t\t\t\t\t\tisoly.Date.firstOfMonth(date),\n\t\t\t\t\t\t\t\t\t\tdateRange: this.doubleInput && date > (this.startInternal ?? \"\") && date < (this.endInternal ?? \"\"),\n\t\t\t\t\t\t\t\t\t\tdisable: !this.withinLimit(date),\n\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t{date.substring(8, 10)}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t))}\n\t\t\t\t</table>\n\t\t\t</Fragment>\n\t\t)\n\t}\n}\n","import { isoly } from \"isoly\"\n\nexport namespace DateFormat {\n\texport const guides = {\n\t\tY: \"YYYY\",\n\t\tM: \"MM\",\n\t\tD: \"DD\",\n\t} as const\n\n\texport type Part = \"Y\" | \"M\" | \"D\"\n\texport type Parts = { [part in Part]?: string }\n\texport namespace Part {\n\t\texport function isComplete(part: Part, value: string | undefined): boolean {\n\t\t\treturn (value?.length ?? 0) >= DateFormat.Part.lengthOf(part)\n\t\t}\n\t\texport function lengthOf(part: Part): number {\n\t\t\treturn guides[part].length\n\t\t}\n\t\texport function getGuide(part: Part, filledLength: number | undefined): string {\n\t\t\tconst guide = DateFormat.guides[part]\n\t\t\treturn guide.substring(0, guide.length - (filledLength ?? 0))\n\t\t}\n\t}\n\texport namespace Parts {\n\t\texport function lastDay(parts: Parts): number {\n\t\t\tif (parts.Y && parts.M && parseInt(parts.M) >= 1 && parseInt(parts.M) <= 12) {\n\t\t\t\tconst lastDate = isoly.Date.lastOfMonth(`${parts.Y.padStart(4, \"0\")}-${parts.M.padStart(2, \"0\")}-01`)\n\t\t\t\treturn isoly.Date.getDay(lastDate)\n\t\t\t} else if (parts.M && parseInt(parts.M) >= 1 && parseInt(parts.M) <= 12) {\n\t\t\t\t// Assume leap year\n\t\t\t\tconst lastDate = isoly.Date.lastOfMonth(`2004-${parts.M.padStart(2, \"0\")}-01`)\n\t\t\t\treturn isoly.Date.getDay(lastDate)\n\t\t\t}\n\t\t\treturn 31\n\t\t}\n\t\texport function toDate(parts: Parts): isoly.Date | undefined {\n\t\t\tif (parts.Y && parts.Y.length == 4 && parts.M && parts.M.length == 2 && parts.D && parts.D.length == 2) {\n\t\t\t\tconst value = `${parts.Y}-${parts.M}-${parts.D}`\n\t\t\t\tconst lastOfMonth = isoly.Date.lastOfMonth(`${parts.Y}-${parts.M}-01`)\n\t\t\t\treturn lastOfMonth < value ? lastOfMonth : value\n\t\t\t}\n\t\t\treturn undefined\n\t\t}\n\t\texport function fromDate(value: isoly.Date): Required<DateFormat.Parts>\n\t\texport function fromDate(value: undefined): undefined\n\t\texport function fromDate(value: isoly.Date | undefined): Required<DateFormat.Parts> | undefined\n\t\texport function fromDate(value: isoly.Date | undefined): Required<DateFormat.Parts> | undefined {\n\t\t\tif (value) {\n\t\t\t\treturn {\n\t\t\t\t\tY: value.substring(0, 4).padStart(4, \"0\"),\n\t\t\t\t\tM: value.substring(5, 7).padStart(2, \"0\"),\n\t\t\t\t\tD: value.substring(8, 10).padStart(2, \"0\"),\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined\n\t\t}\n\t}\n\n\texport type Order = \"YMD\" | \"DMY\" | \"MDY\"\n\n\texport namespace Order {\n\t\texport function fromLocale(locale?: isoly.Locale): Order {\n\t\t\tswitch (locale) {\n\t\t\t\tcase \"en-US\":\n\t\t\t\t\treturn \"MDY\"\n\t\t\t\tcase \"sq-AL\":\n\t\t\t\tcase \"es-AR\":\n\t\t\t\tcase \"it-IT\":\n\t\t\t\tcase \"en-GB\":\n\t\t\t\tcase \"fr-FR\":\n\t\t\t\tcase \"et-EE\":\n\t\t\t\tcase \"de-AT\":\n\t\t\t\tcase \"de-DE\":\n\t\t\t\tcase \"he-IL\":\n\t\t\t\tcase \"is-IS\":\n\t\t\t\tcase \"lv-LV\":\n\t\t\t\tcase \"pl-PL\":\n\t\t\t\tcase \"ru-RU\":\n\t\t\t\tcase \"fi-FI\":\n\t\t\t\tcase \"hi-IN\":\n\t\t\t\tcase \"en-IN\":\n\t\t\t\t\treturn \"DMY\"\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"YMD\"\n\t\t\t}\n\t\t}\n\t\texport function getPart(order: Order, index: number): Part {\n\t\t\treturn order.charAt(index) as Part\n\t\t}\n\t\texport function toArray(order: Order): Part[] {\n\t\t\treturn order.split(\"\") as Part[]\n\t\t}\n\t}\n\n\texport type Separator = \"-\" | \"/\" | \".\"\n\texport namespace Separator {\n\t\texport function fromLocale(locale?: isoly.Locale): Separator {\n\t\t\tswitch (locale) {\n\t\t\t\tcase \"sq-AL\":\n\t\t\t\tcase \"es-AR\":\n\t\t\t\tcase \"it-IT\":\n\t\t\t\tcase \"en-GB\":\n\t\t\t\tcase \"fr-FR\":\n\t\t\t\tcase \"en-US\":\n\t\t\t\t\treturn \"/\"\n\t\t\t\tcase \"et-EE\":\n\t\t\t\tcase \"de-AT\":\n\t\t\t\tcase \"de-DE\":\n\t\t\t\tcase \"he-IL\":\n\t\t\t\tcase \"is-IS\":\n\t\t\t\tcase \"lv-LV\":\n\t\t\t\tcase \"pl-PL\":\n\t\t\t\tcase \"ru-RU\":\n\t\t\t\tcase \"fi-FI\":\n\t\t\t\t\treturn \".\"\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"-\"\n\t\t\t}\n\t\t}\n\t}\n}\n","export namespace InputSelection {\n\texport function isAtStart(event: KeyboardEvent): boolean {\n\t\tconst el = event.currentTarget as HTMLElement\n\t\tconst sel = window.getSelection()\n\t\tif (!sel || sel.rangeCount === 0 || !el.contains(sel.anchorNode))\n\t\t\treturn false\n\n\t\t// Only trigger if there is no selection (caret only)\n\t\tif (!sel.isCollapsed)\n\t\t\treturn false\n\n\t\tconst range = sel.getRangeAt(0)\n\t\tconst preRange = range.cloneRange()\n\t\tpreRange.selectNodeContents(el)\n\t\tpreRange.setEnd(range.startContainer, range.startOffset)\n\n\t\treturn preRange.toString().length === 0\n\t}\n\n\texport function isAtEnd(event: KeyboardEvent): boolean {\n\t\tconst el = event.currentTarget as HTMLElement\n\t\tconst sel = window.getSelection()\n\t\tif (!sel || sel.rangeCount === 0 || !el.contains(sel.anchorNode))\n\t\t\treturn false\n\n\t\t// Only trigger if there is no selection (caret only)\n\t\tif (!sel.isCollapsed)\n\t\t\treturn false\n\n\t\tconst range = sel.getRangeAt(0)\n\t\tconst postRange = range.cloneRange()\n\t\tpostRange.selectNodeContents(el)\n\t\tpostRange.setStart(range.endContainer, range.endOffset)\n\n\t\treturn postRange.toString().length === 0\n\t}\n\n\texport function selectAll(el?: HTMLElement) {\n\t\tif (!el)\n\t\t\treturn\n\t\tel.focus()\n\t\tconst range = document.createRange()\n\t\trange.selectNodeContents(el) // Select all content inside\n\n\t\tconst sel = window.getSelection()\n\t\tif (!sel)\n\t\t\treturn\n\n\t\tsel.removeAllRanges()\n\t\tsel.addRange(range) // Apply the selection\n\t}\n\n\texport function setPosition(el: HTMLElement | undefined, index: number) {\n\t\tif (!el)\n\t\t\treturn\n\n\t\tel.focus()\n\n\t\tconst selection = window.getSelection()\n\t\tif (!selection)\n\t\t\treturn\n\n\t\tconst range = document.createRange()\n\t\tconst textNode = el.firstChild || el\n\n\t\tconst position = Math.max(0, Math.min(index, el.innerText.length))\n\t\trange.setStart(textNode, position)\n\t\trange.collapse(true)\n\n\t\tselection.removeAllRanges()\n\t\tselection.addRange(range)\n\t}\n\n\texport function isCollapsed(el: HTMLElement): boolean {\n\t\tconst sel = window.getSelection()\n\t\tif (!sel || sel.rangeCount === 0)\n\t\t\treturn true // nothing selected at all\n\n\t\tconst range = sel.getRangeAt(0)\n\n\t\t// Make sure selection is inside our element\n\t\tif (!el.contains(range.startContainer) || !el.contains(range.endContainer)) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn range.collapsed\n\t}\n}\n","\n:host {\n\t--guide-opacity: 0.5;\n}\n\n:host .smoothly-date-text-part:focus {\n\toutline: none;\n}\n\n:host .guide {\n\topacity: var(--guide-opacity);\n}\n\n:host .smoothly-date-text-part:not(.is-complete) + .guide + .smoothly-date-separator {\n\topacity: var(--guide-opacity);\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { getLocale } from \"../../../../model\"\nimport { DateFormat } from \"./DateFormat\"\nimport { InputSelection } from \"./InputSelection\"\n\n@Component({\n\ttag: \"smoothly-date-text\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputDateRangeText {\n\t@Element() element: HTMLElement\n\tprivate partElements: { [partIndex in number]: HTMLSpanElement | undefined } = {\n\t\t0: undefined,\n\t\t1: undefined,\n\t\t2: undefined,\n\t}\n\t@Prop() locale?: isoly.Locale = getLocale()\n\t@Prop({ reflect: true }) readonly: boolean\n\t@Prop({ reflect: true }) disabled: boolean\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop() value?: isoly.Date // Only used for initial value\n\t@State() parts: DateFormat.Parts = {}\n\tprivate previousEmittedValue?: isoly.Date\n\t@State() order: DateFormat.Order\n\t@State() separator: DateFormat.Separator\n\t@State() focusedIndex?: number\n\t@Event() smoothlyDateTextHasText: EventEmitter<boolean>\n\t@Event() smoothlyDateTextChange: EventEmitter<isoly.Date | undefined>\n\t@Event() smoothlyDateTextFocusChange: EventEmitter<boolean>\n\t@Event() smoothlyDateHasPartialDate: EventEmitter<DateFormat.Parts>\n\t@Event() smoothlyDateTextDone: EventEmitter<void>\n\t@Event() smoothlyDateTextPrevious: EventEmitter<void>\n\t@Event() smoothlyDateTextNext: EventEmitter<void>\n\n\tcomponentWillLoad() {\n\t\tthis.order = DateFormat.Order.fromLocale(this.locale)\n\t\tthis.separator = DateFormat.Separator.fromLocale(this.locale)\n\t\tthis.parts = DateFormat.Parts.fromDate(this.value) ?? {}\n\t}\n\tcomponentDidLoad() {\n\t\tthis.updateInputs()\n\t}\n\n\t@Watch(\"parts\")\n\tpartsHandler() {\n\t\tconst value = DateFormat.Parts.toDate(this.parts)\n\t\tif (value != this.previousEmittedValue) {\n\t\t\tthis.smoothlyDateTextChange.emit(value)\n\t\t\tthis.previousEmittedValue = value\n\t\t}\n\t\tthis.smoothlyDateTextHasText.emit(Object.values(this.parts).some(part => !!part))\n\t}\n\t@Watch(\"focusedIndex\")\n\tfocusedIndexHandler() {\n\t\tthis.smoothlyDateTextFocusChange.emit(typeof this.focusedIndex == \"number\")\n\t}\n\n\t@Method()\n\tasync setValue(value: isoly.Date | undefined) {\n\t\tconst parts = DateFormat.Parts.fromDate(value)\n\t\tthis.setAllParts(parts)\n\t}\n\n\tsetAllParts(parts?: DateFormat.Parts) {\n\t\tthis.parts = parts ?? {}\n\t\tthis.updateInputs()\n\t}\n\tupdateInputs() {\n\t\tconst yearIndex = this.order.indexOf(\"Y\")\n\t\tconst monthIndex = this.order.indexOf(\"M\")\n\t\tconst dayIndex = this.order.indexOf(\"D\")\n\t\tthis.partElements[yearIndex] && (this.partElements[yearIndex]!.innerText = this.parts.Y ?? \"\")\n\t\tthis.partElements[monthIndex] && (this.partElements[monthIndex]!.innerText = this.parts.M ?? \"\")\n\t\tthis.partElements[dayIndex] && (this.partElements[dayIndex]!.innerText = this.parts.D ?? \"\")\n\t}\n\n\tsetPart(part: \"Y\" | \"M\" | \"D\", value: string | undefined) {\n\t\tthis.parts = {\n\t\t\t...this.parts,\n\t\t\t[part]: value,\n\t\t}\n\t\tconst index = this.order.indexOf(part)\n\t\tthis.partElements[index] && (this.partElements[index]!.innerText = value ?? \"\")\n\t}\n\n\t@Method()\n\tasync select(place: \"start\" | \"end\" = \"start\") {\n\t\tconst index = place == \"start\" ? 0 : 2\n\t\tthis.setFocus(index)\n\t}\n\t@Method()\n\tasync deselect() {\n\t\tthis.partElements[this.focusedIndex ?? 0]?.blur()\n\t}\n\n\tgetInnerText(target: EventTarget | null) {\n\t\treturn (target as HTMLSpanElement).innerText.replace(/\\n/g, \"\").replace(/\\D/g, \"\")\n\t}\n\n\t@Listen(\"beforeinput\")\n\tbeforeInputHandler(e: InputEvent) {\n\t\tconst part = this.order[this.focusedIndex ?? 0] as \"Y\" | \"M\" | \"D\"\n\t\tconst value = this.getInnerText(e.target)\n\t\tconst nonDigitData = e.data && /\\D/.test(e.data)\n\t\tconst isComplete = DateFormat.Part.isComplete(part, value)\n\t\tconst noRangedSelection = InputSelection.isCollapsed(e.target as HTMLElement)\n\t\tif (\n\t\t\t(e.inputType == \"insertText\" || e.inputType == \"insertFromPaste\") &&\n\t\t\t(nonDigitData || (isComplete && noRangedSelection))\n\t\t) {\n\t\t\te.preventDefault()\n\t\t}\n\t\tif (e.inputType == \"insertParagraph\" || e.inputType == \"insertLineBreak\") {\n\t\t\tthis.smoothlyDateTextDone.emit()\n\t\t\te.preventDefault()\n\t\t}\n\t}\n\n\t@Listen(\"input\", { capture: true })\n\tinputHandler(e: InputEvent) {\n\t\tconst part = DateFormat.Order.getPart(this.order, this.focusedIndex ?? 0)\n\t\tconst index = this.focusedIndex ?? 0\n\t\tconst value = this.getInnerText(e.target)\n\t\tthis.parts = {\n\t\t\t...this.parts,\n\t\t\t[part]: value,\n\t\t}\n\n\t\tif ([\"D\", \"M\"].includes(part)) {\n\t\t\tconst isDay = part == \"D\"\n\t\t\tconst max = isDay ? DateFormat.Parts.lastDay(this.parts) : 12\n\t\t\tconst singleDigitThreshold = isDay ? 3 : 1\n\t\t\tconst numberValue = parseInt(value)\n\t\t\tif (value.length >= 2) {\n\t\t\t\tthis.commitPart(part, numberValue, index, max)\n\t\t\t} else if (value.length == 1 && numberValue > singleDigitThreshold) {\n\t\t\t\tthis.autoAdvancePart(part, numberValue, index, max)\n\t\t\t}\n\t\t}\n\t\tif (DateFormat.Part.isComplete(part, value)) {\n\t\t\tthis.setFocus(index + 1)\n\t\t}\n\t\tconst roundedValue = DateFormat.Parts.toDate(this.parts)\n\t\tif (roundedValue) {\n\t\t\tconst roundedParts = DateFormat.Parts.fromDate(roundedValue)\n\t\t\tif (this.parts.D !== roundedParts?.D) {\n\t\t\t\tthis.setPart(\"D\", roundedParts?.D)\n\t\t\t}\n\t\t}\n\t\tif (this.parts.Y || this.parts.M || this.parts.D)\n\t\t\tthis.smoothlyDateHasPartialDate.emit(this.parts)\n\t}\n\tkeyDownHandler(e: KeyboardEvent) {\n\t\tconst text = this.getInnerText(e.target)\n\t\tconst index = this.focusedIndex ?? 0\n\t\tif (InputSelection.isAtStart(e) && e.key == \"ArrowLeft\") {\n\t\t\tthis.autoAdvanceIfPossible(index)\n\t\t\tthis.setFocus(index - 1)\n\t\t\te.preventDefault() // Keep selection\n\t\t} else if (InputSelection.isAtEnd(e) && e.key == \"ArrowRight\") {\n\t\t\tthis.autoAdvanceIfPossible(index)\n\t\t\tthis.setFocus(index + 1)\n\t\t\te.preventDefault() // Keep selection\n\t\t} else if (e.key == \"Home\" || e.key == \"ArrowUp\") {\n\t\t\tthis.autoAdvanceIfPossible(index)\n\t\t\tthis.setFocus(0)\n\t\t\te.preventDefault() // Keep selection\n\t\t} else if (e.key == \"End\" || e.key == \"ArrowDown\") {\n\t\t\tthis.autoAdvanceIfPossible(index)\n\t\t\tthis.setFocus(2)\n\t\t\te.preventDefault() // Keep selection\n\t\t} else if (InputSelection.isAtStart(e) && e.key == \"Backspace\" && text == \"\") {\n\t\t\tthis.autoAdvanceIfPossible(index)\n\t\t\tthis.setFocus(index - 1)\n\t\t\te.preventDefault() // Prevent delete previous part\n\t\t} else if (InputSelection.isAtEnd(e) && e.key == \"Delete\" && text == \"\") {\n\t\t\tthis.autoAdvanceIfPossible(index)\n\t\t\tthis.setFocus(index + 1)\n\t\t\te.preventDefault() // Prevent delete next part\n\t\t}\n\t}\n\n\tcommitPart(part: DateFormat.Part, value: number, index: number, max: number) {\n\t\tconst clamped = Math.max(1, Math.min(value, max))\n\t\tthis.setPart(part, clamped.toString().padStart(2, \"0\"))\n\t\tInputSelection.setPosition(this.partElements[index], 2)\n\t}\n\tautoAdvancePart(part: DateFormat.Part, value: number, index: number, max: number) {\n\t\tconst clamped = Math.max(1, Math.min(value, max))\n\t\tthis.setPart(part, clamped.toString().padStart(2, \"0\"))\n\t\tthis.setFocus(index + 1)\n\t}\n\n\tautoAdvanceIfPossible(index: number) {\n\t\tconst part = DateFormat.Order.getPart(this.order, index)\n\t\tconst value = this.parts[part] ?? \"\"\n\t\tif (part == \"D\" && value.length == 1) {\n\t\t\tthis.autoAdvancePart(part, parseInt(value), index, DateFormat.Parts.lastDay(this.parts))\n\t\t} else if (part == \"M\" && value.length == 1) {\n\t\t\tthis.autoAdvancePart(part, parseInt(value), index, 12)\n\t\t}\n\t}\n\n\tsetFocus(index: number) {\n\t\tif (index < 0) {\n\t\t\tthis.smoothlyDateTextPrevious.emit()\n\t\t} else if (index > 2) {\n\t\t\tthis.smoothlyDateTextNext.emit()\n\t\t} else {\n\t\t\tInputSelection.selectAll(this.partElements[index])\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={{ \"has-text\": Object.values(this.parts).some(part => !!part) }}>\n\t\t\t\t{DateFormat.Order.toArray(this.order).map((part, index) => (\n\t\t\t\t\t<span onClick={() => !this.readonly && !this.disabled && this.setFocus(index)}>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t\"smoothly-date-text-part\": true,\n\t\t\t\t\t\t\t\t\"is-complete\": DateFormat.Part.isComplete(part, this.parts[part]),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonFocus={() => (this.focusedIndex = index)}\n\t\t\t\t\t\t\tonBlur={() => (this.focusedIndex = undefined)}\n\t\t\t\t\t\t\tonKeyDown={(e: KeyboardEvent) => this.keyDownHandler(e)}\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tref={el => (this.partElements[index] = el)}\n\t\t\t\t\t\t\tcontenteditable={!(this.readonly || this.disabled)}\n\t\t\t\t\t\t\tinputmode=\"numeric\">\n\t\t\t\t\t\t\t{/* year or month or day written here */}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span class=\"guide\">{DateFormat.Part.getGuide(part, this.parts[part]?.length)}</span>\n\t\t\t\t\t\t{index < 2 && <span class=\"smoothly-date-separator\">{this.separator}</span>}\n\t\t\t\t\t</span>\n\t\t\t\t))}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 55%;\n left: 50%;\n transform: translate(-50%, -50%);\n\twidth: 100%;\n\theight: 100%;\n\tz-index: 1;\n\t/* stylelint-disable-next-line declaration-no-important */\n\tbackground: rgba(var(--smoothly-default-color), var(--smoothly-semitransparent)) !important;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host > section {\n\tmargin-top: var(--smoothly-dialog-margin-top)\n}\n:host > section > div.header {\n\tborder-top-left-radius: 8px;\n\tborder-top-right-radius: 8px;\n\tmargin-top: 2em;\n\tcolor: rgb(var(--smoothly-primary-contrast));\n\tbackground: rgb(var(--smoothly-primary-color));\n\tborder-color: rgb(var(--smoothly-primary-color));\n}\n:host:not([header]) div.header {\n\tborder: none;\n}\n\n:host > section > * {\n\tposition: relative;\n\tcolor: rgb(var(--smoothly-default-contrast));\n\tbackground-color: rgb(var(--smoothly-default-color));\n\tborder-color: rgb(var(--smoothly-color));\n\tborder-width: 1px;\n\tborder-style: solid;\n\tmax-width: 40em;\n\twidth: calc(100vw - 4em - 2px);\n\tmax-height: calc(100vh - 6em - 2px);\n\theight: auto;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\tborder-collapse: collapse;\n}\n:host > section > div.content {\n\tborder-bottom-left-radius: 8px;\n\tborder-bottom-right-radius: 8px;\n\tmargin-bottom: 2em;\n\tborder: 1px solid rgb(var(--smoothly-default-contrast));\n\tbox-sizing: border-box;\n\toverflow: hidden;\n}\n:host:not([header]) >section> div.content {\n\tborder-radius: 8px;\n}\n:host > section > * > smoothly-trigger {\n\tposition: absolute;\n\tright: -2em;\n\ttop: -2em;\n\tz-index: 1;\n\tborder-color: transparent;\n}\n:host > section > * > smoothly-trigger:hover {\n\tborder-color: transparent;\n}\n:host > section > div.header > smoothly-trigger > smoothly-icon {\n\tbackground-color: rgb(var(--smoothly-color));\n\tborder-radius: 50%;\n}\n:host > section > * > * {\n\tmargin: 10px;\n}\n","import { Component, h, Listen, Prop } from \"@stencil/core\"\nimport { Color, Trigger } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-dialog\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyDialog {\n\t@Prop({ reflect: true }) color: Color | undefined\n\t@Prop({ mutable: true, reflect: true }) open = true\n\t@Prop({ reflect: true }) closable = false\n\t@Prop({ reflect: true }) header: string | undefined\n\t@Listen(\"trigger\")\n\tTriggerListener(event: CustomEvent<Trigger>) {\n\t\tif (Trigger.is(event.detail) && event.detail.name == \"close\")\n\t\t\tthis.open = false\n\t}\n\thostData() {\n\t\treturn {\n\t\t\tstyle: {\n\t\t\t\tdisplay: this.open ? \"block\" : \"none\",\n\t\t\t},\n\t\t}\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<section>\n\t\t\t\t<div class=\"header\">\n\t\t\t\t\t{this.closable && (\n\t\t\t\t\t\t<smoothly-trigger fill=\"clear\" name=\"close\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"close-circle\" fill=\"solid\" color={this.color} />\n\t\t\t\t\t\t</smoothly-trigger>\n\t\t\t\t\t)}\n\t\t\t\t\t{this.header ? <h1>{this.header}</h1> : <slot name=\"header\" />}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"content\">\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t)\n\t}\n}\n","\n:host > smoothly-button {\n\tdisplay: block;\n\tmargin-block: 2rem;\n}\n","import { Component, h, Host, State } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-dialog-demo\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyDialogDemo {\n\t@State() openModal = false\n\t@State() openTallModal = false\n\t@State() showFrame = false\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-button fill=\"solid\" color=\"light\" onClick={() => (this.openModal = true)}>\n\t\t\t\t\tOpen Modal\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button fill=\"solid\" color=\"light\" onClick={() => (this.openTallModal = true)}>\n\t\t\t\t\tOpen Modal with long text and top-aligned.\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button fill=\"solid\" color=\"light\" onClick={() => (this.showFrame = !this.showFrame)}>\n\t\t\t\t\tShow Frame\n\t\t\t\t</smoothly-button>\n\n\t\t\t\t<smoothly-modal closable open={this.openModal} onSmoothlyModalChange={e => (this.openModal = e.detail)}>\n\t\t\t\t\t<h2 slot=\"header\">Modal</h2>\n\t\t\t\t\t<span>Are you sure you want to confirm this action?</span>\n\t\t\t\t\t<smoothly-button slot=\"actions\" color=\"success\">\n\t\t\t\t\t\tConfirm\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button slot=\"actions\" color=\"light\" fill=\"outline\" onClick={() => (this.openModal = false)}>\n\t\t\t\t\t\tCancel\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t</smoothly-modal>\n\n\t\t\t\t<smoothly-modal\n\t\t\t\t\tclosable\n\t\t\t\t\topen={this.openTallModal}\n\t\t\t\t\tonSmoothlyModalChange={e => (this.openTallModal = e.detail)}\n\t\t\t\t\talign=\"top\">\n\t\t\t\t\t<h2 slot=\"header\">Modal</h2>\n\t\t\t\t\t<smoothly-summary>\n\t\t\t\t\t\t<div slot=\"summary\">Lorem ipsum</div>\n\t\t\t\t\t\t<div slot=\"content\">\n\t\t\t\t\t\t\t{Array.from({ length: 10 }).map(() => (\n\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et\n\t\t\t\t\t\t\t\t\tdolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut\n\t\t\t\t\t\t\t\t\taliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum\n\t\t\t\t\t\t\t\t\tdolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui\n\t\t\t\t\t\t\t\t\tofficia deserunt mollit anim id est laborum.\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</smoothly-summary>\n\t\t\t\t\t<smoothly-button slot=\"actions\" color=\"light\" fill=\"outline\" onClick={() => (this.openTallModal = false)}>\n\t\t\t\t\t\tCancel\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t</smoothly-modal>\n\n\t\t\t\t{this.showFrame && (\n\t\t\t\t\t<smoothly-dialog closable>\n\t\t\t\t\t\t<smoothly-frame url=\"https://www.wikipedia.org/\" name=\"parent\" style={{ height: \"80vh\" }} />\n\t\t\t\t\t</smoothly-dialog>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","function getForwardWordBreakIndex(str, index, wordRegex) {\n let result = 0;\n while (wordRegex.exec(str) != null) {\n result = wordRegex.lastIndex;\n if (wordRegex.lastIndex > index)\n break;\n }\n wordRegex.lastIndex <= index && (result = str.length);\n return result;\n}\nfunction getBackwardWordBreakIndex(str, index, wordRegex) {\n let result = 0;\n let execArray;\n while ((execArray = wordRegex.exec(str)) != null) {\n if (wordRegex.lastIndex - execArray[0].length < index)\n result = wordRegex.lastIndex - execArray[0].length;\n else\n break;\n }\n return result;\n}\nexport function getAdjecentWordBreakIndex(str, index, direction) {\n const wordRegex = /([\\wåäöüéáúíóßðœøæñµçþ_]+|[@-]+)/gi;\n return direction == \"backward\"\n ? getBackwardWordBreakIndex(str, index, wordRegex)\n : getForwardWordBreakIndex(str, index, wordRegex);\n}\n//# sourceMappingURL=getAdjecentWordBreakIndex.js.map","export var Selection;\n(function (Selection) {\n function getCursor(selection) {\n return selection.direction == \"backward\" ? selection.start : selection.end;\n }\n Selection.getCursor = getCursor;\n function getStalker(selection) {\n return selection.direction != \"backward\" ? selection.start : selection.end;\n }\n Selection.getStalker = getStalker;\n})(Selection || (Selection = {}));\n//# sourceMappingURL=Selection.js.map","export var State;\n(function (State) {\n function copy(state) {\n return {\n value: state.value,\n selection: { start: state.selection.start, end: state.selection.end, direction: state.selection.direction },\n remainder: state.remainder,\n };\n }\n State.copy = copy;\n})(State || (State = {}));\n//# sourceMappingURL=State.js.map","export class StateEditor {\n value;\n selection;\n constructor(state) {\n this.value = state.value;\n this.selection = { start: state.selection?.start, end: state.selection?.end, direction: state.selection?.direction };\n }\n get(index, length = 1) {\n return this.value.substring(index, index + length);\n }\n is(index, ...character) {\n const c = this.get(index);\n return character.some(d => c == d);\n }\n isDigit(index) {\n const character = this.get(index);\n return character >= \"0\" && character <= \"9\";\n }\n match(matcher) {\n return this.value.match(matcher);\n }\n replace(start, end, value) {\n let result;\n if (typeof start == \"string\" && typeof end == \"string\") {\n let s;\n result = this;\n while ((s = result.value.indexOf(start)) > -1)\n result = result.replace(s, s + start.length, end);\n }\n else if (typeof start == \"number\" && typeof end == \"number\") {\n const state = {\n value: this.value,\n selection: { start: this.selection.start, end: this.selection.end, direction: this.selection.direction },\n };\n if (!value)\n value = \"\";\n state.value = this.value.slice(0, start) + value + this.value.slice(end, this.value.length);\n if (this.selection.start >= end)\n state.selection.start = this.selection.start + value.length - end + start;\n else if (this.selection.start > start && this.selection.start < end)\n state.selection.start = Math.min(this.selection.start, start + value.length);\n if (this.selection.end >= end)\n state.selection.end = this.selection.end + value.length - end + start;\n else if (this.selection.end > start && this.selection.end < end)\n state.selection.end = Math.min(this.selection.end, start + value.length);\n result = new StateEditor(state);\n }\n return result || this;\n }\n insert(index, value) {\n return this.replace(index, index, value);\n }\n append(value) {\n return this.insert(this.value.length, value);\n }\n prepend(value) {\n return this.insert(0, value);\n }\n suffix(value) {\n return new StateEditor({ value: this.value + value, selection: this.selection });\n }\n delete(start, end) {\n let result;\n if (!this.value)\n result = this;\n else if (typeof start == \"string\") {\n let s;\n result = this;\n while (start && (s = result.value.indexOf(start)) > -1)\n result = result.delete(s, s + start.length);\n }\n else\n result = this.replace(start, end || start + 1, \"\");\n return result;\n }\n truncate(end) {\n return this.value.length >= end ? this.delete(end, this.value.length) : this;\n }\n pad(length, padding, index) {\n let result = this;\n while (length > result.value.length + padding.length)\n result = result.insert(index, padding);\n if (length > result.value.length)\n result = result.insert(index, padding.substring(0, length - result.value.length));\n return result;\n }\n padEnd(length, padding) {\n return this.pad(length, padding, this.value.length);\n }\n padStart(length, padding) {\n return this.pad(length, padding, 0);\n }\n toLower() {\n return this.map(symbol => symbol.toLowerCase());\n }\n toUpper() {\n return this.map(symbol => symbol.toUpperCase());\n }\n map(mapping) {\n let result = this;\n let j = 0;\n for (let i = 0; i < this.value.length; i++) {\n const replacement = mapping(this.get(i), i);\n result = result.replace(j, j + 1, replacement);\n j += replacement.length;\n }\n return result;\n }\n static copy(state) {\n return new StateEditor({ ...state });\n }\n static create() {\n return new StateEditor({ value: \"\", selection: { start: 0, end: 0 } });\n }\n static modify(state) {\n return new StateEditor(typeof state == \"string\" ? { value: state, selection: { start: state.length, end: state.length } } : state);\n }\n}\n//# sourceMappingURL=StateEditor.js.map","import { getAdjecentWordBreakIndex } from \"./getAdjecentWordBreakIndex\";\nimport { Selection } from \"./Selection\";\nimport { State } from \"./State\";\nimport { StateEditor } from \"./StateEditor\";\nexport var Action;\n(function (Action) {\n function apply(formatter, state, action) {\n let result = State.copy(formatter.unformat(StateEditor.copy(state)));\n if (state.autocomplete == \"cc-exp\" && /^\\d\\d \\/$/g.test(state.value))\n action?.key && (action.key = \"Backspace\");\n if (action) {\n if (action.ctrlKey || action.metaKey) {\n if (action.key == \"a\")\n select(result, 0, result.value.length, \"forward\");\n else if ([\"ArrowLeft\", \"ArrowRight\"].includes(action.key) && state?.type != \"password\")\n result = ctrlArrow(formatter, state, action);\n else if ([\"Delete\", \"Backspace\"].includes(action.key) && state?.type != \"password\")\n result = ctrlBackspaceDelete(formatter, state, action);\n }\n else if ([\"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"].includes(action.key))\n arrowHomeEnd(result, action);\n else if ([\"Delete\", \"Backspace\"].includes(action.key)) {\n result.selection.start == result.selection.end &&\n select(result, result.selection.start + (action.key == \"Backspace\" ? -1 : 0), result.selection.end + (action.key == \"Delete\" ? 1 : 0));\n erase(result);\n }\n else if (action.key != \"Unidentified\") {\n erase(result);\n formatter.allowed(action.key, result) && replace(result, action.key);\n }\n }\n return formatter.format(StateEditor.copy(result));\n }\n Action.apply = apply;\n function paste(formatter, state, pasted) {\n const result = State.copy(formatter.unformat(StateEditor.copy(state)));\n replace(result, pasted);\n return formatter.format(StateEditor.copy(result));\n }\n Action.paste = paste;\n function ctrlArrow(formatter, state, action) {\n let cursorPosition = Selection.getCursor(state.selection);\n let stalkPosition = Selection.getStalker(state.selection);\n cursorPosition = getAdjecentWordBreakIndex(state.value, cursorPosition, action.key == \"ArrowLeft\" ? \"backward\" : \"forward\");\n stalkPosition = action.shiftKey ? stalkPosition : cursorPosition;\n return State.copy(formatter.unformat(StateEditor.copy({\n ...state,\n selection: {\n start: Math.min(stalkPosition, cursorPosition),\n end: Math.max(stalkPosition, cursorPosition),\n direction: stalkPosition < cursorPosition ? \"forward\" : stalkPosition > cursorPosition ? \"backward\" : \"none\",\n },\n })));\n }\n function ctrlBackspaceDelete(formatter, state, action) {\n const cursorPosition = Selection.getCursor(state.selection);\n const adjecentIndex = getAdjecentWordBreakIndex(state.value, cursorPosition, action.key == \"Backspace\" ? \"backward\" : \"forward\");\n const result = State.copy(formatter.unformat(StateEditor.copy({\n ...state,\n selection: {\n start: Math.min(cursorPosition, adjecentIndex),\n end: Math.max(cursorPosition, adjecentIndex),\n direction: \"none\",\n },\n })));\n result.value = result.value.substring(0, result.selection.start) + result.value.substring(result.selection.end);\n result.selection.end = result.selection.start;\n return result;\n }\n function arrowHomeEnd(state, action) {\n let cursorPosition = Selection.getCursor(state.selection);\n let stalkPosition = Selection.getStalker(state.selection);\n cursorPosition =\n action.key == \"Home\"\n ? 0\n : action.key == \"End\"\n ? state.value.length\n : state.selection.start == state.selection.end || action.shiftKey\n ? Math.min(Math.max(cursorPosition + (action.key == \"ArrowLeft\" ? -1 : 1), 0), state.value.length)\n : action.key == \"ArrowLeft\"\n ? state.selection.start\n : state.selection.end;\n stalkPosition = action.shiftKey ? stalkPosition : cursorPosition;\n state.selection.direction =\n stalkPosition < cursorPosition ? \"forward\" : stalkPosition > cursorPosition ? \"backward\" : \"none\";\n state.selection.start = Math.min(stalkPosition, cursorPosition);\n state.selection.end = Math.max(stalkPosition, cursorPosition);\n }\n function select(state, from, to, direction) {\n state.selection.start = from;\n state.selection.end = to;\n direction && (state.selection.direction = direction);\n }\n function erase(state) {\n replace(state, \"\");\n }\n function replace(state, insertString) {\n state.value =\n state.value.substring(0, state.selection.start) + insertString + state.value.substring(state.selection.end);\n state.selection.start = state.selection.start + insertString.length;\n state.selection.end = state.selection.start;\n }\n})(Action || (Action = {}));\n//# sourceMappingURL=Action.js.map","import { StateEditor } from \"../StateEditor\";\nconst handlers = {};\nexport function add(type, create) {\n handlers[type] = create;\n}\nexport function get(type, ...argument) {\n const create = handlers[type];\n return create && create(argument);\n}\nexport function format(data, type, ...argument) {\n const handler = get(type, ...argument);\n return handler\n ? handler.format(StateEditor.modify(handler.toString(typeof data == \"string\" ? parse(data, type, argument) : data)))\n .value\n : \"\";\n}\nexport function parse(value, type, ...argument) {\n const handler = get(type, argument);\n return handler ? handler.fromString(handler.unformat(StateEditor.modify(value)).value) : undefined;\n}\n//# sourceMappingURL=base.js.map","import { add } from \"./base\";\nclass Handler {\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" && !!value ? value : undefined;\n }\n partialFormat = this.format;\n format(unformatted) {\n return {\n ...unformatted,\n type: \"text\",\n inputmode: \"numeric\",\n autocomplete: \"cc-csc\",\n length: [3, 3],\n pattern: /^\\d{3}$/,\n };\n }\n unformat(formatted) {\n return formatted;\n }\n allowed(symbol, state) {\n return state.value.length < 3 && symbol >= \"0\" && symbol <= \"9\";\n }\n}\nadd(\"card-csc\", () => new Handler());\n//# sourceMappingURL=card-csc.js.map","import { add } from \"./base\";\nclass Handler {\n toString(data) {\n return Array.isArray(data) && data.length == 2 && typeof data[0] == \"number\" && typeof data[1] == \"number\"\n ? data[0].toString().padStart(2, \"0\") + data[1].toString().padStart(2, \"0\")\n : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" && value.length == 4\n ? [Number.parseInt(value.slice(0, 2)), Number.parseInt(value.slice(2))]\n : undefined;\n }\n partialFormat = this.format;\n format(unformatted) {\n let result = unformatted;\n if (unformatted.value.length > 0 && !unformatted.is(0, \"0\", \"1\"))\n result = result.prepend(\"0\");\n if (result.value.length > 1)\n result = result.insert(2, \" / \");\n return {\n ...result,\n type: \"text\",\n inputmode: \"numeric\",\n autocomplete: \"cc-exp\",\n length: [7, 7],\n pattern: /^(0[1-9]|1[012]) \\/ \\d\\d$/,\n };\n }\n unformat(formatted) {\n return formatted.delete(\" / \");\n }\n allowed(symbol, state) {\n return state.value.length < 4 && symbol >= \"0\" && symbol <= \"9\";\n }\n}\nadd(\"card-expires\", () => new Handler());\n//# sourceMappingURL=card-expires.js.map","import { add } from \"./base\";\nclass Handler {\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" && !!value ? value : undefined;\n }\n partialFormat = this.format;\n format(unformatted) {\n const issuer = getIssuer(unformatted.value);\n const result = unformatted.map((symbol, index) => (index + 1 < issuer.length[0] && issuer.spaceIndexes.includes(index) ? \" \" : \"\") + symbol);\n return {\n ...result,\n type: \"text\",\n inputmode: \"numeric\",\n autocomplete: \"cc-number\",\n length: issuer.length.slice(1),\n pattern: issuer.verification,\n classes: [\"issuer-\" + issuer.icon],\n };\n }\n unformat(formatted) {\n return formatted.delete(\" \");\n }\n allowed(symbol, state) {\n const issuer = getIssuer(state.value);\n return symbol >= \"0\" && symbol <= \"9\" && state.value.length < issuer.length[0];\n }\n}\nadd(\"card-number\", () => new Handler());\nfunction getIssuer(value) {\n let result = {\n ...defaultIssuer,\n spaceIndexes: value.length == 14 ? [4, 10] : defaultIssuer.spaceIndexes,\n };\n for (const key in issuers)\n if (Object.prototype.hasOwnProperty.call(issuers, key) && issuers[key].identification.test(value)) {\n result = { ...defaultIssuer, name: key, ...issuers[key] };\n break;\n }\n return result;\n}\nconst defaultIssuer = {\n name: \"unknown\",\n verification: /^\\d{19}$/,\n spaceIndexes: [4, 8, 12],\n identification: /^\\d/,\n length: [16, 16, 19],\n icon: \"generic\",\n};\nconst issuers = {\n amex: {\n verification: /^3[47][0-9]{2}\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{3}$/,\n identification: /^3[47]/,\n length: [15, 18, 18],\n icon: \"amex\",\n },\n dankort: {\n verification: /^(5019)\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4}$/,\n spaceIndexes: [4, 8, 12],\n identification: /^(5019)\\d+/,\n length: [16, 19, 19],\n icon: \"generic\",\n },\n diners: {\n verification: /^3(?:0[0-5]|[68][0-9])[0-9]\\s[0-9]{6}\\s[0-9]{4}$/,\n identification: /^3(?:0[0-5]|[68][0-9])/,\n spaceIndexes: [4, 10],\n length: [14, 16, 16],\n icon: \"diners\",\n },\n discover: {\n verification: /^6(?:011|5[0-9]{2})\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4}$/,\n spaceIndexes: [4, 8, 12],\n identification: /^6(?:011|5[0-9]{2})/,\n length: [16, 19, 19],\n icon: \"generic\",\n },\n electron: {\n verification: /^((4026|4405|4508|4844|4913|4917)\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4})|((4175)\\s(00)[0-9]{2}\\s[0-9]{4}\\s[0-9]{4})$/,\n identification: /^(4026|417500|4405|4508|4844|4913|4917)/,\n spaceIndexes: [4, 8, 12],\n length: [16, 19, 19],\n icon: \"generic\",\n },\n interpayment: {\n verification: /^(636)[0-9]\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4}$/,\n spaceIndexes: [4, 8, 12],\n identification: /^(636)/,\n length: [16, 19, 19],\n icon: \"generic\",\n },\n jcb: {\n verification: /^((?:2131|1800)\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4})|(35[0-9]{2}\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4})$/,\n identification: /^(?:2131|1800|35\\d{3})/,\n spaceIndexes: [4, 8, 12],\n length: [16, 19, 19],\n icon: \"generic\",\n },\n unionpay: {\n verification: /^(62|88)[0-9]{2}\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4}$/,\n spaceIndexes: [4, 8, 12],\n identification: /^(62|88)/,\n length: [16, 19, 19],\n icon: \"generic\",\n },\n maestro: {\n verification: /^(5018|5020|5038|5612|5893|6304|6759|6761|6762|6763|0604|6390)\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4}$/,\n spaceIndexes: [4, 8, 12],\n identification: /^(5018|5020|5038|5612|5893|6304|6759|6761|6762|6763|0604|6390)/,\n length: [16, 19, 19],\n icon: \"maestro\",\n },\n mastercard: {\n verification: /^5[1-5][0-9]{2}\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4}$/,\n spaceIndexes: [4, 8, 12],\n identification: /^5[1-5][0-9]/,\n length: [16, 19, 19],\n icon: \"mastercard\",\n },\n visa: {\n verification: /^4[0-9]{3}\\s[0-9]{4}\\s[0-9]{4}\\s[0-9](?:[0-9]{3})?$/,\n spaceIndexes: [4, 8, 12],\n identification: /^4[0-9]/,\n length: [16, 16, 19],\n icon: \"visa\",\n },\n};\n//# sourceMappingURL=card-number.js.map","export var DateFormat;\n(function (DateFormat) {\n function fromLocale(locale) {\n let result;\n switch (locale) {\n case \"sq-AL\":\n case \"es-AR\":\n case \"it-IT\":\n case \"en-GB\":\n case \"fr-FR\":\n result = \"dd/mm/YYYY\";\n break;\n case \"en-US\":\n result = \"mm/dd/YYYY\";\n break;\n case \"et-EE\":\n case \"de-AT\":\n case \"de-DE\":\n case \"he-IL\":\n case \"is-IS\":\n case \"lv-LV\":\n case \"pl-PL\":\n case \"ru-RU\":\n case \"fi-FI\":\n result = \"dd.mm.YYYY\";\n break;\n case \"hi-IN\":\n case \"en-IN\":\n result = \"dd-mm-YYYY\";\n break;\n default:\n result = \"YYYY-mm-dd\";\n break;\n }\n return result;\n }\n DateFormat.fromLocale = fromLocale;\n function toLocale(format) {\n let result;\n switch (format) {\n case \"dd/mm/YYYY\":\n result = \"en-GB\";\n break;\n case \"mm/dd/YYYY\":\n result = \"en-US\";\n break;\n case \"dd.mm.YYYY\":\n result = \"de-DE\";\n break;\n default:\n result = \"sv-SE\";\n break;\n }\n return result;\n }\n DateFormat.toLocale = toLocale;\n function is(value) {\n return (typeof value == \"string\" &&\n (value == \"YYYY-mm-dd\" || value == \"dd/mm/YYYY\" || value == \"dd.mm.YYYY\" || value == \"mm/dd/YYYY\"));\n }\n DateFormat.is = is;\n})(DateFormat || (DateFormat = {}));\n//# sourceMappingURL=DateFormat.js.map","import { DateFormat } from \"../../DateFormat\";\nimport { add } from \"../base\";\nexport class Base {\n separator;\n constructor(separator) {\n this.separator = separator;\n }\n partialFormat(unformatted) {\n const formatted = this.format(unformatted);\n return {\n ...formatted,\n remainder: this.formatString.slice(formatted.value.length),\n };\n }\n unformat(formatted) {\n return formatted.delete(this.separator);\n }\n validMonth(day, month, year) {\n return (new Date(Number.parseInt(year ?? \"2004\"), Number.parseInt(month), 0).getDate() >=\n Number.parseInt(day));\n }\n}\nconst handlers = {};\nexport function register(format, create) {\n handlers[format] = create;\n}\nadd(\"date\", (parameters) => {\n const argument = parameters && parameters.length > 0 ? parameters[0] : undefined;\n const format = DateFormat.is(argument) ? argument : DateFormat.fromLocale(argument);\n const create = handlers[format] ?? handlers[\"YYYY-mm-dd\"];\n return create();\n});\n//# sourceMappingURL=Base.js.map","import { isoly } from \"isoly\";\nimport { Base, register } from \"./Base\";\nclass Handler extends Base {\n constructor(separator) {\n super(separator);\n }\n toString(data) {\n return isoly.Date.is(data) && data.length == 10\n ? [data.substring(8, 10), data.substring(5, 7), data.substring(0, 4)].join(this.separator)\n : \"\";\n }\n fromString(value) {\n const result = value?.length == 8 ? `${value.substring(4, 8)}-${value.substring(2, 4)}-${value.substring(0, 2)}` : undefined;\n return isoly.Date.is(result) ? result : undefined;\n }\n formatString = `DD${this.separator}MM${this.separator}YYYY`;\n format(unformatted) {\n let result = unformatted.delete(this.separator);\n if (result.get(0, 1) > \"3\")\n result = result.insert(0, \"0\");\n if (result.value.length > 1)\n result = result.insert(2, this.separator);\n if (result.get(3, 1) > \"1\")\n result = result.insert(3, \"0\");\n if (result.value.length > 4)\n result = result.insert(5, this.separator);\n return {\n ...result,\n type: \"text\",\n length: [0, 10],\n pattern: new RegExp([\"^(0[1-9]|[12][0-9]|3[01])\", \"(0[1-9]|1[012])\", \"\\\\d{4}$\"].join(this.separator)),\n };\n }\n allowed(symbol, state) {\n return state.selection.start == 1 && state.value[0] == \"3\"\n ? symbol >= \"0\" && symbol <= \"1\"\n : state.selection.start == 1 && state.value[0] == \"0\"\n ? symbol >= \"1\" && symbol <= \"9\"\n : state.selection.start == 2\n ? symbol >= \"0\" &&\n symbol <= \"9\" &&\n (symbol == \"0\" || symbol == \"1\" || this.validMonth(state.value.substring(0, 2), symbol))\n : state.selection.start == 3\n ? symbol >= \"0\" && symbol <= \"9\" && this.validMonth(state.value.substring(0, 2), state.value[2] + symbol)\n : state.selection.start == 7\n ? symbol >= \"0\" &&\n symbol <= \"9\" &&\n this.validMonth(state.value.substring(0, 2), state.value.substring(2, 4), state.value.substring(4, 7) + symbol)\n : state.selection.start < 8 && symbol >= \"0\" && symbol <= \"9\";\n }\n}\nregister(\"dd.mm.YYYY\", () => new Handler(\".\"));\nregister(\"dd/mm/YYYY\", () => new Handler(\"/\"));\nregister(\"dd-mm-YYYY\", () => new Handler(\"-\"));\n//# sourceMappingURL=dmy.js.map","import { isoly } from \"isoly\";\nimport { Base, register } from \"./Base\";\nclass Handler extends Base {\n constructor(separator) {\n super(separator);\n }\n toString(data) {\n return isoly.Date.is(data) && data.length == 10\n ? [data.substring(5, 7), data.substring(8, 10), data.substring(0, 4)].join(this.separator)\n : \"\";\n }\n fromString(value) {\n const result = value.length == 8 ? `${value.substring(4, 8)}-${value.substring(0, 2)}-${value.substring(2, 4)}` : undefined;\n return isoly.Date.is(result) ? result : undefined;\n }\n formatString = `MM${this.separator}DD${this.separator}YYYY`;\n format(unformatted) {\n let result = unformatted.delete(this.separator);\n if (result.get(0, 1) > \"1\")\n result = result.insert(0, \"0\");\n if (result.value.length > 1)\n result = result.insert(2, this.separator);\n if (result.get(3, 1) > (result.get(0, 2) == \"02\" ? \"2\" : \"3\"))\n result = result.insert(3, \"0\");\n if (result.value.length > 4)\n result = result.insert(5, this.separator);\n return {\n ...result,\n type: \"text\",\n length: [0, 10],\n pattern: new RegExp([\"^(0[1-9]|1[012])\", \"(0[1-9]|[12][0-9]|3[01])\", \"\\\\d{4}$\"].join(this.separator)),\n };\n }\n allowed(symbol, state) {\n const result = state.selection.start == 1 && state.value[0] == \"1\"\n ? symbol >= \"0\" && symbol <= \"2\"\n : state.selection.start == 1 && state.value[0] == \"0\"\n ? symbol >= \"1\" && symbol <= \"9\"\n : state.selection.start == 3\n ? symbol >= \"0\" && symbol <= \"9\" && this.validMonth(state.value[2] + symbol, state.value.substring(0, 2))\n : state.selection.start == 7\n ? symbol >= \"0\" &&\n symbol <= \"9\" &&\n this.validMonth(state.value.substring(2, 4), state.value.substring(0, 2), state.value.substring(4, 7) + symbol)\n : state.selection.start < 8 && symbol >= \"0\" && symbol <= \"9\";\n return result;\n }\n}\nregister(\"mm/dd/YYYY\", () => new Handler(\"/\"));\n//# sourceMappingURL=mdy.js.map","import { isoly } from \"isoly\";\nimport { Base, register } from \"./Base\";\nclass Handler extends Base {\n constructor(separator) {\n super(separator);\n }\n toString(data) {\n return typeof data != \"string\" ? \"\" : data;\n }\n fromString(value) {\n const result = value?.length == 8 ? `${value.substring(0, 4)}-${value.substring(4, 6)}-${value.substring(6, 8)}` : undefined;\n return isoly.Date.is(result) ? result : undefined;\n }\n daysInMonth(value) {\n const firstOfMonth = `${value.substring(0, 4)}-${value.substring(4, 6)}-01`;\n return isoly.Date.is(firstOfMonth)\n ? +isoly.Date.lastOfMonth(`${value.substring(0, 4)}-${value.substring(4, 6)}-01`).substring(8, 10)\n : 31;\n }\n formatString = `YYYY${this.separator}MM${this.separator}DD`;\n format(unformatted) {\n let result = unformatted.delete(this.separator);\n if (result.value.length > 3) {\n result = result.insert(4, this.separator);\n if (result.get(5, 1) > \"1\")\n result = result.insert(5, \"0\");\n if (result.value.length > 6) {\n result = result.insert(7, this.separator);\n if (result.get(8, 1) > this.daysInMonth(unformatted.value).toString().substring(0, 1))\n result = result.insert(8, \"0\");\n }\n }\n return {\n ...result,\n type: \"text\",\n length: [0, 10],\n pattern: new RegExp([\"^\\\\d{4}\", \"(0[1-9]|1[012])\", \"(0[1-9]|[12][0-9]|3[01])$\"].join(this.separator)),\n };\n }\n allowed(symbol, state) {\n const daysInMonth = this.daysInMonth(state.value);\n return state.selection.start == 5 && state.value[4] == \"0\"\n ? symbol >= \"1\" && symbol <= \"9\"\n : state.selection.start == 5 && state.value[4] == \"1\"\n ? symbol >= \"0\" && symbol <= \"2\"\n : state.selection.start == 7 && state.value[6] == \"0\"\n ? symbol >= \"1\" && symbol <= \"9\"\n : state.selection.start == 7 && ((state.value[6] == \"2\" && daysInMonth < 30) || state.value[6] == \"3\")\n ? symbol >= \"0\" && symbol <= daysInMonth.toString().substring(1)\n : state.selection.start < 8 && symbol >= \"0\" && symbol <= \"9\";\n }\n}\nregister(\"YYYY-mm-dd\", () => new Handler(\"-\"));\n//# sourceMappingURL=ymd.js.map","import { isoly } from \"isoly\";\nimport { add } from \"./base\";\nclass Handler {\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n let result = value.replace(\" \", \"T\");\n const fillerDate = \"0000-01-01T00:00:00.000Z\";\n if (result?.match(/-\\d$/))\n result = result.substring(0, result.length - 1) + \"0\" + result.substring(result.length - 1, result.length);\n result = !result.match(/^\\d{4}-(0[1-9]|1[012])/)\n ? undefined\n : result + fillerDate.substring(result.length, fillerDate.length);\n return isoly.DateTime.is(result) ? result : undefined;\n }\n partialFormat = this.format;\n format(unformatted) {\n let result = formatDate(unformatted);\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])[\\d:.-]$/))\n result = result.insert(10, \" \");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) 3$/))\n result = result.replace(11, 12, \"23:\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) [45]$/))\n result = result.insert(11, \"23:\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) [6-9]$/))\n result = result.insert(11, \"23:5\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) 24$/))\n result = result.replace(10, 13, \"00:\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) 25$/))\n result = result.insert(12, \"3:\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) 2[6-9]$/))\n result = result.insert(12, \"3:5\").append(\":\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) ([0-1]\\d|2[0-3])\\d[\\s\\S]$/))\n result = result.insert(13, \":\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) ([0-1]\\d|2[0-3]):[6-9]$/))\n result = result.insert(14, \"5\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) ([0-1]\\d|2[0-3]):[0-5]\\d\\d$/))\n result = result.insert(16, \":\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) ([0-1]\\d|2[0-3]):[0-5]\\d:[6-9]$/))\n result = result.insert(17, \"5\");\n return {\n ...result,\n type: \"text\",\n length: [0, 19],\n pattern: /^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) ([0-1]\\d|2[0-3])(:[0-5]\\d){2}$/,\n };\n }\n unformat(formatted) {\n return formatted;\n }\n allowed(symbol, state) {\n return (state.value.length < 19 &&\n ((symbol >= \"0\" && symbol <= \"9\") || symbol == \"-\" || symbol == \":\" || symbol == \".\" || symbol == \" \"));\n }\n}\nadd(\"date-time\", () => new Handler());\nexport function formatDate(unformatted, format) {\n let result = unformatted;\n switch (format) {\n case \"dd/mm/YYYY\":\n case \"dd.mm.YYYY\":\n if (!validDate(result.value, format))\n result = result.replace(0, 10, validDate(\"31\" + result.value.substring(2, 10), format)\n ? \"31\" + result.value.substring(2, 10)\n : validDate(\"30\" + result.value.substring(2, 10), format)\n ? \"30\" + result.value.substring(2, 10)\n : validDate(\"29\" + result.value.substring(2, 10), format)\n ? \"29\" + result.value.substring(2, 10)\n : validDate(\"28\" + result.value.substring(2, 10), format)\n ? \"28\" + result.value.substring(2, 10)\n : result.value);\n break;\n case \"mm/dd/YYYY\":\n if (!validDate(result.value, format))\n result = result.replace(0, 10, validDate(result.value.substring(0, 3) + \"31\" + result.value.substring(5, 10), format)\n ? result.value.substring(0, 3) + \"31\" + result.value.substring(5, 10)\n : validDate(result.value.substring(0, 3) + \"30\" + result.value.substring(5, 10), format)\n ? result.value.substring(0, 3) + \"30\" + result.value.substring(5, 10)\n : validDate(result.value.substring(0, 3) + \"29\" + result.value.substring(5, 10), format)\n ? result.value.substring(0, 3) + \"29\" + result.value.substring(5, 10)\n : validDate(result.value.substring(0, 3) + \"28\" + result.value.substring(5, 10), format)\n ? result.value.substring(0, 3) + \"28\" + result.value.substring(5, 10)\n : result.value);\n break;\n default:\n if (unformatted.value.length == 10) {\n if (!validDate(result.value)) {\n result = result.replace(0, 10, validDate(result.value.substring(0, 8) + \"31\")\n ? result.value.substring(0, 8) + \"31\"\n : validDate(result.value.substring(0, 8) + \"30\")\n ? result.value.substring(0, 8) + \"30\"\n : validDate(result.value.substring(0, 8) + \"29\")\n ? result.value.substring(0, 8) + \"29\"\n : validDate(result.value.substring(0, 8) + \"28\")\n ? result.value.substring(0, 8) + \"28\"\n : result.value);\n break;\n }\n return unformatted;\n }\n }\n return result;\n}\nfunction validDate(date, format) {\n let year;\n let month;\n let day;\n switch (format) {\n case \"dd/mm/YYYY\":\n case \"dd.mm.YYYY\":\n year = parseInt(date.substring(6, 10));\n month = parseInt(date.substring(3, 5));\n day = parseInt(date.substring(0, 2));\n return year && month && day ? day > 0 && daysPerMonth(year, month) >= day : false;\n case \"mm/dd/YYYY\":\n year = parseInt(date.substring(6, 10));\n month = parseInt(date.substring(0, 2));\n day = parseInt(date.substring(3, 5));\n return year && month && day ? day > 0 && daysPerMonth(year, month) >= day : false;\n default:\n year = parseInt(date.substring(0, 4));\n month = parseInt(date.substring(5, 7));\n day = parseInt(date.substring(8, 10));\n return year && month && day ? day > 0 && daysPerMonth(year, month) >= day : false;\n }\n}\nfunction daysPerMonth(year, month) {\n let result;\n switch (month) {\n case 1:\n case 3:\n case 5:\n case 7:\n case 8:\n case 10:\n case 12:\n default:\n result = 31;\n break;\n case 4:\n case 6:\n case 9:\n case 11:\n result = 30;\n break;\n case 2:\n result = 28;\n break;\n }\n return result;\n}\n//# sourceMappingURL=date-time.js.map","import { add } from \"./base\";\nclass Handler {\n toString(data) {\n return Array.isArray(data) && data.length == 2 && typeof data[0] == \"number\" && typeof data[1] == \"number\"\n ? data[0].toString() + \" / \" + data[1].toString()\n : typeof data == \"number\"\n ? data.toString()\n : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" && value.match(/^\\d{1,2}\\s+\\/\\s+\\d{1,2}$/)\n ? [Number.parseInt(value.slice(0, 2)), Number.parseInt(value.slice(value.length - 2))]\n : typeof value == \"string\" && value.match(/\\d{1,2}/)\n ? Number.parseInt(value)\n : undefined;\n }\n partialFormat = this.format;\n format(unformatted) {\n let result = unformatted;\n if (unformatted.match(/^\\d\\/$/))\n result = unformatted.replace(1, 2, \" / \");\n else if (unformatted.match(/^\\d{1,2}\\s$/))\n result = unformatted.replace(unformatted.value.length - 1, unformatted.value.length, \" / \");\n else if (unformatted.match(/^[\\D.]+\\/[\\D.]+$/))\n result = unformatted.delete(0, unformatted.value.length);\n else if (unformatted.match(/^[\\D.]+\\/[\\D.]+\\d$/))\n result = unformatted.delete(0, unformatted.value.length - 1);\n else if (unformatted.match(/^[\\D.]+\\/[\\D.]+\\d\\d$/))\n result = unformatted.delete(0, unformatted.value.length - 2);\n else if (unformatted.match(/^[\\D.]+\\//))\n result = unformatted.delete(0, unformatted.value.search(\"/\") + 1);\n else if (unformatted.match(/^\\d\\d\\/$/))\n result = unformatted.replace(2, 3, \" / \");\n else if (unformatted.match(/^\\d\\d\\s+\\/$/))\n result = unformatted.delete(2, unformatted.value.length);\n else if (unformatted.match(/^\\d\\s+\\/$/))\n result = unformatted.delete(1, unformatted.value.length);\n else if (unformatted.match(/^\\d\\d\\s\\s+\\/\\s*$/))\n result = unformatted.replace(2, unformatted.value.length, \" / \");\n else if (unformatted.match(/^\\d\\s\\s+(\\/\\s*)?$/))\n result = unformatted.replace(1, unformatted.value.length, \" / \");\n else if (unformatted.match(/^\\d\\s\\/\\s\\d\\d.+$/))\n result = unformatted.delete(6, unformatted.value.length);\n else if (unformatted.value.length > 1 && unformatted.value.indexOf(\"/\") < 1)\n result = unformatted.insert(2, \" / \");\n else if (unformatted.value.length > 1 && unformatted.value.split(\"/\").length > 2)\n result = unformatted.delete(unformatted.value.lastIndexOf(\"/\"));\n else if (unformatted.value.length == 1 && !unformatted.isDigit(0))\n result = unformatted.delete(0);\n return { ...result, type: \"text\", length: [1, 7], pattern: /^(\\d{1,2}|\\d{1,2} \\/ \\d{1,2})$/ };\n }\n unformat(formatted) {\n return formatted;\n }\n allowed(symbol, state) {\n return state.value.length < 7 && ((symbol >= \"0\" && symbol <= \"9\") || symbol == \"/\" || symbol == \" \");\n }\n}\nadd(\"divisor\", () => new Handler());\n//# sourceMappingURL=divisor.js.map","import { isoly } from \"isoly\";\nimport { add } from \"./base\";\nclass Handler {\n separator = \":\";\n patterns = {\n allowed: /^-?\\d*(?::{0,1}[0-5]{0,1}[0-9]{0,1}|[.,]{0,1}[0-9]{0,2})$/,\n extract: /^(-?)(\\d*)([:,.]{0,1})([0-9]{0,2})$/,\n zeros: /^(-?)(0+)(?:[1-9]|0[,.:]?)/,\n };\n toString(data) {\n let result;\n if (!isoly.TimeSpan.is(data))\n result = \"\";\n else {\n const span = isoly.TimeSpan.normalize(data);\n if (!span.minutes && !span.hours)\n result = \"\";\n else if (this.separator != \":\")\n result = (+isoly.TimeSpan.toHours(span).toFixed(2) || \"\").toString(10);\n else if (span.hours && !span.minutes)\n result = span.hours.toString(10);\n else if (!span.hours && span.minutes)\n result = `${span.minutes < 0 ? \"-\" : \"\"}0:${Math.abs(span.minutes).toString(10)}`;\n else\n result = `${span.hours?.toString(10)}:${Math.abs(span.minutes ?? 0).toString(10)}`;\n }\n return result;\n }\n fromString(value) {\n let result;\n const match = value.match(this.patterns.extract);\n if (!match)\n result = undefined;\n else {\n const [value, negative, hours, separator, minutes] = match;\n this.separator = separator;\n if (separator == \":\") {\n const parsed = {\n hours: parseInt(hours),\n minutes: parseInt(minutes),\n };\n const multiplicand = negative ? -1 : 1;\n result = isoly.TimeSpan.normalize({\n hours: !Number.isFinite(parsed.hours) ? 0 : parsed.hours * multiplicand,\n minutes: !Number.isFinite(parsed.minutes) ? 0 : parsed.minutes * multiplicand,\n });\n }\n else {\n const hours = parseFloat(value.replace(\",\", \".\"));\n result = isoly.TimeSpan.normalize({\n hours: !Number.isFinite(hours) ? 0 : hours,\n });\n }\n }\n return result;\n }\n partialFormat = this.format;\n format(unformatted) {\n let result = unformatted;\n const [, negative, hours, separator] = unformatted.match(this.patterns.extract) ?? [];\n if (!hours && separator)\n result = result.insert(negative ? 1 : 0, \"0\");\n const match = result.match(this.patterns.zeros);\n if (match) {\n const [, negative, zeros] = match;\n if (zeros) {\n const offset = negative ? 1 : 0;\n result = result.delete(offset, zeros.length + offset);\n }\n }\n return { ...result, type: \"tel\", pattern: this.patterns.allowed };\n }\n unformat(formatted) {\n const [, , , separator] = formatted.match(this.patterns.extract) ?? [];\n if (separator)\n this.separator = separator;\n return formatted;\n }\n allowed(symbol, state) {\n const nextValue = state.value.slice(0, state.selection.start) + symbol + state.value.slice(state.selection.end);\n return !!nextValue.match(this.patterns.allowed);\n }\n}\nadd(\"duration\", () => new Handler());\n//# sourceMappingURL=duration.js.map","import { add } from \"./base\";\nclass Handler {\n settings;\n constructor(settings) {\n this.settings = settings;\n }\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" && !!value ? value : undefined;\n }\n partialFormat = this.format;\n format(unformatted) {\n return { ...unformatted, ...this.settings, type: \"text\", inputmode: \"email\", autocomplete: \"email\" };\n }\n unformat(formatted) {\n return formatted;\n }\n allowed(symbol, state) {\n return (this.settings.length == undefined ||\n this.settings.length[1] == undefined ||\n state.value.length < this.settings.length[1]);\n }\n}\nadd(\"email\", (settings) => new Handler(settings || {}));\n//# sourceMappingURL=email.js.map","import { add } from \"./base\";\nconst modeTypes = [\"code\", \"pascal\", \"snake\", \"camel\", \"attribute\"];\nclass Handler {\n settings;\n mode;\n constructor(settings, mode) {\n this.settings = settings;\n this.mode = mode;\n }\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" && !!value ? value : undefined;\n }\n split(unformatted) {\n let firstAllowedSymbol;\n let previousAllowedSymbol = \"\";\n return unformatted\n .map((symbol, index) => {\n const newSymbol = index !== 0 &&\n symbol === symbol.toUpperCase() &&\n isNaN(+symbol) &&\n previousAllowedSymbol !== \" \" &&\n this.isSymbolAllowed(symbol) &&\n firstAllowedSymbol\n ? \" \" + symbol\n : (symbol === \"_\" || symbol === \"-\") && previousAllowedSymbol !== \" \"\n ? \" \"\n : (symbol === \" \" && previousAllowedSymbol === \" \") ||\n !this.isSymbolAllowed(symbol) ||\n (!firstAllowedSymbol && !this.isSymbolLetter(symbol) && this.mode !== \"code\")\n ? \"\"\n : symbol;\n !firstAllowedSymbol && (firstAllowedSymbol = this.isSymbolLetter(symbol));\n this.isSymbolAllowed(symbol) && (previousAllowedSymbol = symbol);\n return newSymbol;\n })\n .toLower()\n .delete(\"-\")\n .delete(\"_\");\n }\n isSymbolLetter(symbol) {\n return (symbol >= \"a\" && symbol <= \"z\") || (symbol >= \"A\" && symbol <= \"Z\");\n }\n isSymbolAllowed(symbol) {\n return this.isSymbolLetter(symbol) || (symbol >= \"0\" && symbol <= \"9\") || symbol === \" \";\n }\n partialFormat = this.format;\n format(unformatted) {\n const alignedString = this.split(unformatted);\n let result;\n switch (this.mode) {\n case \"code\":\n result = alignedString.delete(\" \");\n break;\n case \"pascal\":\n case \"camel\":\n let previousSpace;\n result = alignedString\n .map((symbol, index) => {\n const newSymbol = (index === 0 && this.mode === \"pascal\") || previousSpace ? symbol.toUpperCase() : symbol.toLowerCase();\n previousSpace = symbol == \" \";\n return newSymbol;\n })\n .delete(\" \");\n break;\n case \"snake\":\n case \"attribute\":\n result = alignedString.replace(\" \", this.mode === \"snake\" ? \"_\" : \"-\");\n break;\n default:\n result = unformatted;\n }\n return { ...result, ...this.settings, type: \"text\", autocomplete: \"on\" };\n }\n unformat(formatted) {\n return formatted;\n }\n allowed(symbol, state) {\n return (this.isSymbolLetter(symbol) ||\n (symbol >= \"0\" && symbol <= \"9\" && (this.mode == \"code\" || state.value.length > 0)) ||\n (symbol == \"_\" && this.mode == \"snake\" && state.value.length > 0) ||\n (symbol == \"-\" && this.mode == \"attribute\" && state.value.length > 0));\n }\n}\nadd(\"identifier-code\", (settings) => new Handler(settings || {}, \"code\"));\nadd(\"identifier-pascal\", (settings) => new Handler(settings || {}, \"pascal\"));\nadd(\"identifier-snake\", (settings) => new Handler(settings || {}, \"snake\"));\nadd(\"identifier-camel\", (settings) => new Handler(settings || {}, \"camel\"));\nadd(\"identifier-attribute\", (settings) => new Handler(settings || {}, \"attribute\"));\n//# sourceMappingURL=identifier.js.map","import { add } from \"./base\";\nclass Handler {\n country;\n constructor(country) {\n this.country = country;\n }\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" && !!value ? value : undefined;\n }\n partialFormat = this.format;\n format(unformatted) {\n let result = unformatted;\n const year = new Date().getFullYear().toString();\n if (unformatted.value.length > 1 && unformatted.get(0, 2) != \"19\" && unformatted.get(0, 2) != \"20\")\n result = result.prepend(unformatted.get(0, 2) > year.substring(2, 4) ? \"19\" : \"20\");\n if (result.value.length >= 8)\n result = result.insert(8, \"-\");\n return {\n ...result.truncate(13),\n type: \"text\",\n length: [11, 13],\n pattern: /^\\d{6,8}-\\d{4}$/,\n };\n }\n unformat(formatted) {\n return formatted.delete(\"-\");\n }\n allowed(symbol, state) {\n return state.value.length < 13 && symbol >= \"0\" && symbol <= \"9\";\n }\n}\nadd(\"identity-number\", (argument) => new Handler(argument && argument.length > 0 ? argument[0] : undefined));\n//# sourceMappingURL=identity-number.js.map","import { add } from \"./base\";\nclass Handler {\n min;\n max;\n pad;\n constructor(options) {\n this.min = options.min;\n this.max = options.max;\n this.pad = options.pad;\n }\n toString(data) {\n return typeof data == \"number\" ? data.toString() : \"\";\n }\n fromString(value) {\n const parsed = typeof value == \"string\" ? Number.parseInt(value) : undefined;\n return typeof parsed == \"number\" && !Number.isNaN(parsed) ? parsed : undefined;\n }\n partialFormat(unformatted) {\n return {\n ...unformatted,\n type: \"text\",\n inputmode: \"numeric\",\n length: [3, undefined],\n pattern: /^[0-9]+$/,\n };\n }\n format(unformatted) {\n const result = this.partialFormat(unformatted);\n const number = this.fromString(result.value);\n const value = number == undefined\n ? result.value\n : this.min != undefined && number < this.min\n ? this.toString(this.min)\n : this.max != undefined && number > this.max\n ? this.toString(this.max)\n : result.value;\n return {\n ...result,\n value: typeof this.pad == \"number\" && value ? value.padStart(this.pad, \"0\") : value,\n };\n }\n unformat(formatted) {\n return formatted;\n }\n allowed(symbol, state) {\n return (symbol >= \"0\" &&\n symbol <= \"9\" &&\n (this.max == undefined ||\n this.max.toString().length > state.value.length ||\n state.selection.start != state.selection.end));\n }\n}\nadd(\"integer\", (argument) => new Handler(argument?.[0] ?? {}));\n//# sourceMappingURL=integer.js.map","import { add } from \"./base\";\nclass Handler {\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" && !!value ? value : undefined;\n }\n partialFormat = this.format;\n format(unformatted) {\n return { ...unformatted, type: \"password\", autocomplete: \"current-password\" };\n }\n unformat(formatted) {\n return formatted;\n }\n allowed(symbol, state) {\n return true;\n }\n}\nadd(\"password\", () => new Handler());\n//# sourceMappingURL=password.js.map","import { add } from \"./base\";\nclass Handler {\n toString(data) {\n let result = \"\";\n if (typeof data == \"number\") {\n const decimals = data.toString().split(\".\")[1]?.length ?? 2;\n result = (data * 100).toFixed(!decimals || decimals <= 1 ? 0 : decimals - 2);\n }\n return result;\n }\n fromString(value) {\n const parsedFloat = typeof value == \"string\" ? Number.parseFloat(value) : undefined;\n return typeof parsedFloat == \"number\" && !Number.isNaN(parsedFloat) ? parsedFloat / 100 : undefined;\n }\n partialFormat = this.format;\n format(unformatted) {\n return {\n ...(unformatted.value ? unformatted.suffix(\" %\") : unformatted),\n type: \"text\",\n inputmode: \"numeric\",\n length: [3, undefined],\n pattern: /^\\d+(.\\d+)? %+$/,\n };\n }\n unformat(formatted) {\n return formatted.delete(\" %\");\n }\n allowed(symbol, state) {\n return (symbol >= \"0\" && symbol <= \"9\") || (symbol == \".\" && !state.value.includes(\".\"));\n }\n}\nadd(\"percent\", () => new Handler());\n//# sourceMappingURL=percent.js.map","export const phonePrefix = [\n {\n countryCode: \"+46\",\n areaCodes: [\n \"011\",\n \"0120\",\n \"0121\",\n \"0122\",\n \"0123\",\n \"0125\",\n \"013\",\n \"0140\",\n \"0141\",\n \"0142\",\n \"0143\",\n \"0144\",\n \"0150\",\n \"0151\",\n \"0152\",\n \"0155\",\n \"0156\",\n \"0157\",\n \"0158\",\n \"0159\",\n \"016\",\n \"0171\",\n \"0173\",\n \"0174\",\n \"0175\",\n \"0176\",\n \"018\",\n \"019\",\n \"021\",\n \"0220\",\n \"0221\",\n \"0222\",\n \"0223\",\n \"0224\",\n \"0225\",\n \"0226\",\n \"0227\",\n \"023\",\n \"0240\",\n \"0241\",\n \"0243\",\n \"0246\",\n \"0247\",\n \"0248\",\n \"0250\",\n \"0251\",\n \"0253\",\n \"0258\",\n \"026\",\n \"0270\",\n \"0271\",\n \"0278\",\n \"0280\",\n \"0281\",\n \"0290\",\n \"0291\",\n \"0292\",\n \"0293\",\n \"0294\",\n \"0295\",\n \"0297\",\n \"0300\",\n \"0301\",\n \"0302\",\n \"0303\",\n \"0304\",\n \"031\",\n \"0320\",\n \"0321\",\n \"0322\",\n \"0325\",\n \"033\",\n \"0340\",\n \"0345\",\n \"0346\",\n \"035\",\n \"036\",\n \"0370\",\n \"0371\",\n \"0372\",\n \"0380\",\n \"0381\",\n \"0382\",\n \"0383\",\n \"0390\",\n \"0392\",\n \"0393\",\n \"040\",\n \"0410\",\n \"0411\",\n \"0413\",\n \"0414\",\n \"0415\",\n \"0416\",\n \"0417\",\n \"0418\",\n \"042\",\n \"0430\",\n \"0431\",\n \"0433\",\n \"0435\",\n \"044\",\n \"0451\",\n \"0454\",\n \"0455\",\n \"0456\",\n \"0457\",\n \"0459\",\n \"046\",\n \"0470\",\n \"0471\",\n \"0472\",\n \"0474\",\n \"0476\",\n \"0477\",\n \"0478\",\n \"0479\",\n \"0480\",\n \"0481\",\n \"0485\",\n \"0486\",\n \"0490\",\n \"0491\",\n \"0492\",\n \"0493\",\n \"0494\",\n \"0495\",\n \"0496\",\n \"0498\",\n \"0499\",\n \"0500\",\n \"0501\",\n \"0502\",\n \"0503\",\n \"0504\",\n \"0505\",\n \"0506\",\n \"0510\",\n \"0511\",\n \"0512\",\n \"0513\",\n \"0514\",\n \"0515\",\n \"0520\",\n \"0521\",\n \"0522\",\n \"0523\",\n \"0524\",\n \"0525\",\n \"0526\",\n \"0528\",\n \"0530\",\n \"0531\",\n \"0532\",\n \"0533\",\n \"0534\",\n \"054\",\n \"0550\",\n \"0551\",\n \"0552\",\n \"0553\",\n \"0554\",\n \"0555\",\n \"0560\",\n \"0563\",\n \"0564\",\n \"0565\",\n \"0570\",\n \"0571\",\n \"0573\",\n \"0580\",\n \"0581\",\n \"0582\",\n \"0583\",\n \"0584\",\n \"0585\",\n \"0586\",\n \"0587\",\n \"0589\",\n \"0590\",\n \"0591\",\n \"060\",\n \"0611\",\n \"0612\",\n \"0613\",\n \"0620\",\n \"0621\",\n \"0622\",\n \"0623\",\n \"0624\",\n \"063\",\n \"0640\",\n \"0642\",\n \"0643\",\n \"0644\",\n \"0645\",\n \"0647\",\n \"0650\",\n \"0651\",\n \"0652\",\n \"0653\",\n \"0657\",\n \"0660\",\n \"0661\",\n \"0662\",\n \"0663\",\n \"0670\",\n \"0671\",\n \"0672\",\n \"0680\",\n \"0682\",\n \"0684\",\n \"0687\",\n \"0690\",\n \"0691\",\n \"0692\",\n \"0693\",\n \"0695\",\n \"0696\",\n \"08\",\n \"090\",\n \"0910\",\n \"0911\",\n \"0912\",\n \"0913\",\n \"0914\",\n \"0915\",\n \"0916\",\n \"0918\",\n \"0920\",\n \"0921\",\n \"0922\",\n \"0923\",\n \"0924\",\n \"0925\",\n \"0926\",\n \"0927\",\n \"0928\",\n \"0929\",\n \"0930\",\n \"0932\",\n \"0933\",\n \"0934\",\n \"0935\",\n \"0940\",\n \"0941\",\n \"0942\",\n \"0943\",\n \"0950\",\n \"0951\",\n \"0952\",\n \"0953\",\n \"0954\",\n \"0960\",\n \"0961\",\n \"0970\",\n \"0971\",\n \"0973\",\n \"0975\",\n \"0976\",\n \"0977\",\n \"0978\",\n \"0980\",\n \"0981\",\n \"010\",\n \"020\",\n \"0378\",\n \"070\",\n \"072\",\n \"073\",\n \"076\",\n \"079\",\n \"0710\",\n \"0740\",\n \"0746\",\n \"0749\",\n \"0741\",\n \"0742\",\n \"0743\",\n \"0744\",\n \"0745\",\n \"0747\",\n \"075\",\n \"077\",\n \"078\",\n \"0900\",\n \"0939\",\n \"0944\",\n \"0969\",\n \"099\",\n ],\n },\n];\n//# sourceMappingURL=phonePrefix.js.map","import { add } from \"./base\";\nimport { phonePrefix } from \"./phonePrefix\";\nclass Handler {\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" && !!value ? value : undefined;\n }\n partialFormat = this.format;\n format(unformatted) {\n let result = unformatted;\n if (result.value.startsWith(\"+\")) {\n for (const country of phonePrefix)\n if (result.value.startsWith(country.countryCode))\n for (let prefix of country.areaCodes) {\n prefix = prefix.substring(1);\n if (result.value.startsWith(country.countryCode + prefix) && !result.value.includes(\"-\"))\n result = result\n .insert(country.countryCode.length, \"-\")\n .insert(country.countryCode.length + 1 + prefix.length, \"-\");\n }\n }\n else {\n const first = phonePrefix[0];\n for (const prefix of first.areaCodes)\n if (result.value.startsWith(prefix) && !result.value.includes(\"-\")) {\n result = result.insert(prefix.length, \"-\");\n result = result.delete(0);\n result = result.insert(0, \"-\").insert(0, first.countryCode);\n }\n }\n if (result.value.includes(\"-\")) {\n const digitIndex = result.value.indexOf(\"-\", result.value.indexOf(\"-\") + 1) + 1;\n const digitCount = result.value.substring(digitIndex, result.value.length + 1).length;\n switch (digitCount) {\n case 4:\n result = result.insert(digitIndex + 2, \" \");\n break;\n case 5:\n result = result.insert(digitIndex + 3, \" \");\n break;\n case 6:\n result = result.insert(digitIndex + 2, \" \");\n result = result.insert(digitIndex + 5, \" \");\n break;\n case 7:\n result = result.insert(digitIndex + 3, \" \");\n result = result.insert(digitIndex + 6, \" \");\n break;\n case 8:\n case 9:\n result = result.insert(digitIndex + 3, \" \");\n result = result.insert(digitIndex + 7, \" \");\n break;\n default:\n break;\n }\n if (digitCount > 9) {\n const spaces = Math.ceil(digitCount / 3) - 1;\n if (spaces > 0) {\n for (let i = 0; i < spaces; i++) {\n const position = i * 3 + 3 + i;\n result = result.insert(position + digitIndex, \" \");\n }\n }\n }\n }\n return { ...result, type: \"tel\", autocomplete: \"tel\" };\n }\n unformat(formatted) {\n return formatted.delete(\" \").delete(\"-\");\n }\n allowed(symbol, state) {\n return ((symbol >= \"0\" && symbol <= \"9\") || (state.selection.start == 0 && symbol == \"+\" && !state.value.includes(\"+\")));\n }\n}\nadd(\"phone\", () => new Handler());\n//# sourceMappingURL=phone.js.map","import { add } from \"./base\";\nclass Handler {\n country;\n constructor(country) {\n this.country = country;\n }\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" && !!value ? value : undefined;\n }\n partialFormat = this.format;\n format(unformatted) {\n const result = !unformatted.value.includes(\" \") && unformatted.value.length >= 4 ? unformatted.insert(3, \" \") : unformatted;\n return {\n ...result.truncate(6),\n type: \"text\",\n autocomplete: \"postal-code\",\n length: [6, 6],\n pattern: /^\\d{3} \\d{2}$/,\n };\n }\n unformat(formatted) {\n return formatted.delete(\" \");\n }\n allowed(symbol, state) {\n return state.value.length <= 5 && symbol >= \"0\" && symbol <= \"9\";\n }\n}\nadd(\"postal-code\", (argument) => new Handler(argument && argument.length > 0 ? argument[0] : undefined));\n//# sourceMappingURL=postal-code.js.map","import { isoly } from \"isoly\";\nimport { StateEditor } from \"../StateEditor\";\nimport { add } from \"./base\";\nclass Handler {\n currency;\n toInteger;\n constructor(options) {\n this.currency = options && typeof options == \"object\" ? options.currency : options;\n this.toInteger = options && typeof options == \"object\" ? options.toInteger : undefined;\n }\n toString(data) {\n return typeof data == \"number\" ? (isNaN(data) ? \"\" : data.toString()) : \"\";\n }\n fromString(value) {\n const result = typeof value == \"string\" ? Number.parseFloat(value) : undefined;\n return result != undefined && !isNaN(result) ? result : undefined;\n }\n partialFormat(unformatted) {\n let result = unformatted.value == \"NaN\" ? unformatted.replace(0, unformatted.value.length, \"\") : StateEditor.copy(unformatted);\n const decimals = this.currency && isoly.Currency.decimalDigits(this.currency);\n result = this.addLeadingIntegerZero(result);\n result = this.fillDecimalsIfPresent(result, decimals, \"onlyLimit\");\n result = this.truncateIntegerZeros(result);\n result = this.addThousandSeparators(result);\n return {\n ...result,\n remainder: this.format(unformatted).value.slice(result.value.length),\n type: \"text\",\n inputmode: \"numeric\",\n length: [3, undefined],\n pattern: new RegExp(\"^(\\\\d{0,3})( \\\\d{3})*(\\\\.\\\\d*)?$\"),\n };\n }\n format(unformatted) {\n let result = unformatted.value == \"NaN\" ? unformatted.replace(0, unformatted.value.length, \"\") : StateEditor.copy(unformatted);\n const decimals = this.currency && isoly.Currency.decimalDigits(this.currency);\n if (!this.toInteger)\n result = this.forceDecimalZero(result, decimals);\n result = this.addLeadingIntegerZero(result);\n result = this.fillDecimalsIfPresent(result, decimals, \"fillAndLimit\");\n result = this.truncateIntegerZeros(result);\n result = this.addThousandSeparators(result);\n result = this.appendCurrency(result);\n return {\n ...result,\n type: \"text\",\n inputmode: \"numeric\",\n length: [3, undefined],\n pattern: new RegExp(\"^(\\\\d{0,3})( \\\\d{3})*(\\\\.\\\\d+)?\" + (this.currency ? \" \" + this.currency : \"\") + \"$\"),\n };\n }\n forceDecimalZero(state, decimals) {\n if (!state.value.includes(\".\") && decimals && (Math.abs(Number.parseFloat(state.value)) >= 0 || state.value == \"0\"))\n state = state.suffix(\".0\");\n return state;\n }\n addLeadingIntegerZero(state) {\n const separatorIndex = state.value && state.value.includes(\".\") ? state.value.indexOf(\".\") : undefined;\n if (separatorIndex == 0)\n state = state.prepend(\"0\");\n return state;\n }\n fillDecimalsIfPresent(state, decimals, zeroHandling) {\n const separatorIndex = state.value.indexOf(\".\");\n if (separatorIndex != -1) {\n const adjust = separatorIndex + 1 + (decimals ?? 2) - state.value.length;\n state =\n adjust < 0\n ? state.truncate(state.value.length + adjust)\n : zeroHandling == \"fillAndLimit\"\n ? state.suffix(\"0\".repeat(adjust))\n : state;\n }\n return state;\n }\n truncateIntegerZeros(state) {\n const match = state.match(/^[0\\s]{2,}/);\n if (match)\n state = state.replace(0, match[0].length, \"0\");\n return state;\n }\n addThousandSeparators(state) {\n let separatorIndex = state.value.includes(\".\") ? state.value.indexOf(\".\") : state.value.length;\n const spaces = separatorIndex <= 0 ? 0 : Math.ceil(separatorIndex / 3) - 1;\n for (let i = 0; i < spaces; i++) {\n const position = separatorIndex - (spaces - i) * 3;\n state = state.insert(position, \" \");\n separatorIndex++;\n }\n return state;\n }\n appendCurrency(state) {\n return this.currency && (state.value.length > 1 || (state.value.length == 1 && state.value.charAt(0) != \".\"))\n ? state.suffix(\" \" + this.currency)\n : state;\n }\n unformat(formatted) {\n return this.currency ? formatted.delete(\" \").delete(\"\" + this.currency) : formatted.delete(\" \");\n }\n allowed(symbol, state) {\n return ((symbol >= \"0\" && symbol <= \"9\") ||\n (symbol == \".\" &&\n !state.value.includes(\".\") &&\n (!this.currency || isoly.Currency.decimalDigits(this.currency) != 0)));\n }\n}\nadd(\"price\", (argument) => new Handler(argument && argument.length > 0 ? argument[0] : undefined));\n//# sourceMappingURL=price.js.map","import { add } from \"./base\";\nclass Handler {\n settings;\n constructor(settings) {\n this.settings = settings;\n }\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" && !!value ? value : undefined;\n }\n partialFormat = this.format;\n format(unformatted) {\n return { ...unformatted, type: \"text\", ...this.settings };\n }\n unformat(formatted) {\n return formatted;\n }\n allowed(symbol, state) {\n return (this.settings.length == undefined ||\n this.settings.length[1] == undefined ||\n state.value.length < this.settings.length[1]);\n }\n}\nadd(\"text\", (settings) => new Handler(settings || {}));\n//# sourceMappingURL=text.js.map","import { add } from \"./base\";\nclass Handler {\n toString(value) {\n return typeof value == \"string\" ? \"#\" + value : \"\";\n }\n fromString(value) {\n return value ? \"#\" + value : undefined;\n }\n partialFormat = this.format;\n format(unformatted) {\n const result = unformatted.delete(\"#\");\n return {\n ...(result.value ? result.prepend(\"#\") : result),\n type: \"text\",\n length: [4, 7],\n pattern: /^#([0-9a-f]{3}|[0-9a-f]{6})$/i,\n };\n }\n unformat(formatted) {\n return formatted.delete(\"#\");\n }\n allowed(symbol, state) {\n return (((symbol >= \"0\" && symbol <= \"9\") || (symbol >= \"a\" && symbol <= \"f\") || (symbol >= \"A\" && symbol <= \"F\")) &&\n state.value.length < 6);\n }\n}\nadd(\"hex-color\", () => new Handler());\n//# sourceMappingURL=hex-color.js.map",":host {\n\tdisplay: block;\n\twhite-space: wrap;\n}\n\n:host[hidden] {\n\tdisplay: none;\n}\n\n:host>div {\n\topacity: 0.6;\n\tfont-size: .8rem;\n}\n","import { Component, h, Prop } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { tidily } from \"tidily\"\nimport { getLocale } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-display\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyDisplay {\n\t@Prop() type: tidily.Type | \"json\"\n\t@Prop() label?: string\n\t@Prop() value?: any\n\t@Prop() collapseDepth?: number\n\t@Prop() toInteger?: boolean\n\t@Prop() currency?: isoly.Currency\n\t@Prop() country?: isoly.CountryCode.Alpha2\n\t@Prop() format?: isoly.DateTime.Format\n\trender() {\n\t\tlet result: string | HTMLElement | undefined\n\t\tconst type = this.type\n\t\tswitch (type) {\n\t\t\tcase \"json\":\n\t\t\t\tresult = <smoothly-display-json value={this.value} collapseDepth={this.collapseDepth} />\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tresult = tidily.format(this.value, type)\n\t\t\t\tbreak\n\t\t\tcase \"email\":\n\t\t\t\tresult = <a href={\"mailto:\" + this.value}>{tidily.format(this.value, type)}</a>\n\t\t\t\tbreak\n\t\t\tcase \"phone\":\n\t\t\t\tresult = <a href={\"tel:\" + this.value}>{tidily.format(this.value, type, this.country)}</a>\n\t\t\t\tbreak\n\t\t\tcase \"postal-code\":\n\t\t\t\tresult = tidily.format(this.value, type, this.country)\n\t\t\t\tbreak\n\t\t\tcase \"price\":\n\t\t\t\tresult = tidily.format(this.value, type, { currency: this.currency, toInteger: this.toInteger })\n\t\t\t\tbreak\n\t\t\tcase \"date\":\n\t\t\t\tresult = tidily.get(this.type as tidily.Type, getLocale())?.toString(this.value)\n\t\t\t\tbreak\n\t\t\tcase \"duration\":\n\t\t\t\tresult = tidily.format(this.value, type) || \"0\"\n\t\t\t\tbreak\n\t\t\tcase \"date-time\":\n\t\t\t\tresult = this.format\n\t\t\t\t\t? isoly.DateTime.localize(this.value, this.format, getLocale())\n\t\t\t\t\t: tidily.get(this.type as tidily.Type, getLocale())?.toString(this.value)\n\t\t\t\tbreak\n\t\t}\n\t\treturn this.label ? [<div>{this.label}</div>, result] : result\n\t}\n}\n","import { Component, Event, EventEmitter, h, State } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { Color, Notice } from \"../../../model\"\n@Component({\n\ttag: \"smoothly-display-demo\",\n})\nexport class SmoothlyDisplayDemo {\n\t@State() downloadingSpinner: boolean\n\t@Event() notice: EventEmitter<Notice>\n\tprivate noticeWarning(notice: Notice) {\n\t\tconsole.log(\"emit\", notice)\n\t\tthis.notice.emit(notice)\n\t}\n\trender() {\n\t\treturn [\n\t\t\t<main>\n\t\t\t\t<fieldset>\n\t\t\t\t\t<h2>Smoothly display</h2>\n\t\t\t\t\t<dl>\n\t\t\t\t\t\t<dt>Duration</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<smoothly-display style={{ display: \"inline\" }} type=\"duration\" value={{ hours: 13, minutes: 100 }} />\n\t\t\t\t\t\t\t\t\t{\" h\"}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<smoothly-display style={{ display: \"inline\" }} type=\"duration\" value={{ hours: 8 }} />\n\t\t\t\t\t\t\t\t\t{\" h\"}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<smoothly-display style={{ display: \"inline\" }} type=\"duration\" value={{ minutes: 3 }} />\n\t\t\t\t\t\t\t\t\t{\" h\"}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<smoothly-display\n\t\t\t\t\t\t\t\t\t\tstyle={{ display: \"inline\" }}\n\t\t\t\t\t\t\t\t\t\ttype=\"duration\"\n\t\t\t\t\t\t\t\t\t\tvalue={{ hours: -13, minutes: 100 }}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{\" h\"}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<smoothly-display style={{ display: \"inline\" }} type=\"duration\" value={{ hours: -8 }} />\n\t\t\t\t\t\t\t\t\t{\" h\"}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<smoothly-display style={{ display: \"inline\" }} type=\"duration\" value={{}} />\n\t\t\t\t\t\t\t\t\t{\" h\"}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<smoothly-display style={{ display: \"inline\" }} type=\"duration\" value={{ minutes: -3 }} />\n\t\t\t\t\t\t\t\t\t{\" h\"}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>text</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"text\" value=\"text\" />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>postal code</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"postal-code\" value=\"752 31\" />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>password</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"password\" value=\"password\" />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>email</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"email\" value=\"test@example.com\" />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>price</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"price\" value=\"13.37\" currency=\"SEK\" />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>price without decimals</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type={\"price\"} value={200} currency=\"SEK\" toInteger />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>price with decimals if they are set, otherwise no decimal</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type={\"price\"} value={200.2} currency=\"SEK\" toInteger />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>price with decimals</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type={\"price\"} value={200.2} currency=\"SEK\" />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>percent</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"percent\" value=\"42\" />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>phone</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"phone\" value=\"0101881108\" />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>card number</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"card-number\" value=\"4111111111111111\" />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>card expires</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"card-expires\" value=\"7/22\" />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>card csc</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"card-csc\" value=\"987\" />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>date</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"date\" value=\"2022-07-07\" />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>date time</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display\n\t\t\t\t\t\t\t\ttype=\"date-time\"\n\t\t\t\t\t\t\t\tformat={{\n\t\t\t\t\t\t\t\t\tyear: \"numeric\",\n\t\t\t\t\t\t\t\t\tmonth: \"short\",\n\t\t\t\t\t\t\t\t\tday: \"numeric\",\n\t\t\t\t\t\t\t\t\thour: \"numeric\",\n\t\t\t\t\t\t\t\t\tminute: \"numeric\",\n\t\t\t\t\t\t\t\t\tsecond: \"numeric\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tvalue=\"2022-07-07T02:02:02Z\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display\n\t\t\t\t\t\t\t\ttype=\"date-time\"\n\t\t\t\t\t\t\t\tformat={{\n\t\t\t\t\t\t\t\t\tyear: \"2-digit\",\n\t\t\t\t\t\t\t\t\tmonth: \"long\",\n\t\t\t\t\t\t\t\t\tday: \"2-digit\",\n\t\t\t\t\t\t\t\t\thour: \"2-digit\",\n\t\t\t\t\t\t\t\t\tminute: \"2-digit\",\n\t\t\t\t\t\t\t\t\tsecond: \"2-digit\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tvalue=\"2022-07-07T02:02:02Z\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display\n\t\t\t\t\t\t\t\ttype=\"date-time\"\n\t\t\t\t\t\t\t\tformat={{\n\t\t\t\t\t\t\t\t\tyear: \"numeric\",\n\t\t\t\t\t\t\t\t\tmonth: \"2-digit\",\n\t\t\t\t\t\t\t\t\tday: \"2-digit\",\n\t\t\t\t\t\t\t\t\thour: \"numeric\",\n\t\t\t\t\t\t\t\t\tminute: \"numeric\",\n\t\t\t\t\t\t\t\t\tsecond: \"numeric\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tvalue=\"2022-07-07T12:22:24Z\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display\n\t\t\t\t\t\t\t\ttype=\"date-time\"\n\t\t\t\t\t\t\t\tformat={{\n\t\t\t\t\t\t\t\t\tyear: \"numeric\",\n\t\t\t\t\t\t\t\t\tmonth: \"numeric\",\n\t\t\t\t\t\t\t\t\tday: \"numeric\",\n\t\t\t\t\t\t\t\t\thour: \"numeric\",\n\t\t\t\t\t\t\t\t\tminute: \"numeric\",\n\t\t\t\t\t\t\t\t\tsecond: \"numeric\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tvalue=\"2022-07-07T12:22:24Z\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display\n\t\t\t\t\t\t\t\ttype=\"date-time\"\n\t\t\t\t\t\t\t\tformat={{ year: \"numeric\", month: \"short\", day: \"numeric\" }}\n\t\t\t\t\t\t\t\tvalue=\"2022-07-07T00:00+02:00\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display\n\t\t\t\t\t\t\t\ttype=\"date-time\"\n\t\t\t\t\t\t\t\tformat={{ year: \"2-digit\", month: \"numeric\", day: \"numeric\" }}\n\t\t\t\t\t\t\t\tvalue=\"2022-07-07T00:00+02:00\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display\n\t\t\t\t\t\t\t\ttype=\"date-time\"\n\t\t\t\t\t\t\t\tformat={{\n\t\t\t\t\t\t\t\t\tyear: \"2-digit\",\n\t\t\t\t\t\t\t\t\tmonth: \"numeric\",\n\t\t\t\t\t\t\t\t\tday: \"numeric\",\n\t\t\t\t\t\t\t\t\thour: \"2-digit\",\n\t\t\t\t\t\t\t\t\tminute: \"2-digit\",\n\t\t\t\t\t\t\t\t\tsecond: \"2-digit\",\n\t\t\t\t\t\t\t\t\ttimeZone: \"Europe/Stockholm\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tvalue=\"2022-07-07T12:15Z\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>Display JSON</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display-demo-json />\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t</dl>\n\t\t\t\t</fieldset>\n\t\t\t\t<h2>With labels</h2>\n\t\t\t\t<dd>\n\t\t\t\t\t<smoothly-display label=\"Today\" type=\"date\" value={isoly.Date.now()} />\n\t\t\t\t\t<smoothly-display label=\"Total amount\" type=\"price\" currency=\"SEK\" value={6789} />\n\t\t\t\t\t<smoothly-display label=\"Total amount\" type=\"price\" currency=\"GBP\" value={678.9} />\n\t\t\t\t\t<smoothly-display\n\t\t\t\t\t\tlabel=\"Logs\"\n\t\t\t\t\t\ttype=\"json\"\n\t\t\t\t\t\tvalue={[\n\t\t\t\t\t\t\t{ type: \"trace\", message: \"Hello\" },\n\t\t\t\t\t\t\t{ type: \"error\", message: \"Oh no!\" },\n\t\t\t\t\t\t]}\n\t\t\t\t\t/>\n\t\t\t\t</dd>\n\t\t\t\t<fieldset>\n\t\t\t\t\t<h2>Test of different kinds of notifier</h2>\n\t\t\t\t\t<button onClick={() => this.noticeWarning(Notice.warn(\"This is a test warning notice.\"))}>warning</button>\n\t\t\t\t\t<button onClick={() => this.noticeWarning(Notice.succeeded(\"This is a test success notice.\"))}>\n\t\t\t\t\t\tsuccess\n\t\t\t\t\t</button>\n\t\t\t\t\t<button onClick={() => this.noticeWarning(Notice.failed(\"This is a test danger notice.\"))}>danger</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\tthis.noticeWarning(\n\t\t\t\t\t\t\t\tNotice.execute(\n\t\t\t\t\t\t\t\t\t\"This is a test execute notice.\",\n\t\t\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\t\t\tnew Promise<[boolean, string]>(resolve =>\n\t\t\t\t\t\t\t\t\t\t\twindow.setTimeout(() => resolve([true, \"This went great\"]), 3000)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}>\n\t\t\t\t\t\texecute\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\tthis.noticeWarning(\n\t\t\t\t\t\t\t\tNotice.delay(\n\t\t\t\t\t\t\t\t\t\"This is a test delay notice.\",\n\t\t\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\t\t\tnew Promise<[boolean, string]>(resolve =>\n\t\t\t\t\t\t\t\t\t\t\twindow.setTimeout(() => resolve([true, \"This went great\"]), 3000)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}>\n\t\t\t\t\t\tdelay\n\t\t\t\t\t</button>\n\t\t\t\t</fieldset>\n\t\t\t\t<fieldset>\n\t\t\t\t\t<h2>Smoothly spinner</h2>\n\t\t\t\t\t<div style={{ width: \"fit-content\" }}>\n\t\t\t\t\t\tLarge\n\t\t\t\t\t\t<smoothly-spinner\n\t\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\"--spinner-background\": \"200,255,200\",\n\t\t\t\t\t\t\t\t\"--spinner-background-opacity\": \"0.2\",\n\t\t\t\t\t\t\t\t\"--spinner-color\": \"0,130,0\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div style={{ width: \"fit-content\" }}>\n\t\t\t\t\t\tMedium\n\t\t\t\t\t\t<smoothly-spinner size=\"medium\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div style={{ width: \"fit-content\" }}>\n\t\t\t\t\t\tSmall\n\t\t\t\t\t\t<smoothly-spinner size=\"small\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\tIcon sized spinner on button\n\t\t\t\t\t\t{Color.values.map(color => (\n\t\t\t\t\t\t\t<smoothly-button\n\t\t\t\t\t\t\t\tsize=\"icon\"\n\t\t\t\t\t\t\t\tcolor={color}\n\t\t\t\t\t\t\t\tshape=\"rounded\"\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tthis.downloadingSpinner = true\n\t\t\t\t\t\t\t\t\tsetTimeout(() => (this.downloadingSpinner = false), 3000)\n\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t{!this.downloadingSpinner && <smoothly-icon name=\"download-outline\" />}\n\t\t\t\t\t\t\t\t{this.downloadingSpinner && (\n\t\t\t\t\t\t\t\t\t<smoothly-spinner size=\"icon\" style={{ \"--spinner-background-opacity\": \"0\" }} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t\t<h3>Spinner with overlay</h3>\n\t\t\t\t\t<div style={{ position: \"relative\", height: \"10em\" }}>\n\t\t\t\t\t\tLarge Overlay Spinner\n\t\t\t\t\t\t<smoothly-spinner\n\t\t\t\t\t\t\toverlay\n\t\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\"--spinner-background\": \"255,200,255\",\n\t\t\t\t\t\t\t\t\"--spinner-background-opacity\": \"0.5\",\n\t\t\t\t\t\t\t\t\"--spinner-color\": \"0,130,0\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div style={{ position: \"relative\", height: \"10em\" }}>\n\t\t\t\t\t\tMedium Overlay Spinner\n\t\t\t\t\t\t<smoothly-spinner overlay color=\"secondary\" size=\"medium\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div style={{ position: \"relative\", height: \"10em\" }}>\n\t\t\t\t\t\tSmall Overlay Spinner\n\t\t\t\t\t\t<smoothly-spinner overlay size=\"small\" />\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\t\t\t\t<fieldset>\n\t\t\t\t\t<h2>Smoothly summary</h2>\n\t\t\t\t\t<smoothly-summary>\n\t\t\t\t\t\t<span slot=\"summary\">Some title</span>\n\t\t\t\t\t\t<smoothly-summary slot=\"content\">\n\t\t\t\t\t\t\t<div slot=\"summary\">Some other title</div>\n\t\t\t\t\t\t\t<div slot=\"content\">\n\t\t\t\t\t\t\t\tA lot more content, yes please. A lot more content, yes please. A lot more content, yes please. A lot\n\t\t\t\t\t\t\t\tmore content, yes please. A lot more content, yes please.A lot more content, yes please. A lot more\n\t\t\t\t\t\t\t\tcontent, yes please. A lot more content, yes please. A lot more content, yes please.\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</smoothly-summary>\n\t\t\t\t\t</smoothly-summary>\n\t\t\t\t\t<smoothly-summary>\n\t\t\t\t\t\t<div slot=\"summary\" style={{ display: \"flex\", gap: \"0.3rem\" }}>\n\t\t\t\t\t\t\t<span>Person</span>\n\t\t\t\t\t\t\t<smoothly-icon name=\"person\" color=\"light\" fill=\"clear\" size=\"tiny\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<p slot=\"content\">Some person information.</p>\n\t\t\t\t\t</smoothly-summary>\n\n\t\t\t\t\t<h2>Label</h2>\n\t\t\t\t\t{labels.map(l => (\n\t\t\t\t\t\t<smoothly-label hue={l.hue} description={l.description} shape={\"rectangle\"}>\n\t\t\t\t\t\t\t{l.name}\n\t\t\t\t\t\t</smoothly-label>\n\t\t\t\t\t))}\n\t\t\t\t\t<smoothly-label color=\"primary\" description=\"Using colors\" shape={\"rectangle\"}>\n\t\t\t\t\t\tPrimary\n\t\t\t\t\t</smoothly-label>\n\t\t\t\t</fieldset>\n\t\t\t</main>,\n\t\t]\n\t}\n}\nconst labels = [\n\t{\n\t\tname: \"2fa\",\n\t\thue: 120,\n\t\tdescription: \"User has two factor authentication enabled.\",\n\t},\n\t{\n\t\tname: \"expired\",\n\t\thue: 240,\n\t\tdescription: \"User's password has expired.\",\n\t},\n\t{\n\t\tname: \"inactive\",\n\t\thue: 60,\n\t\tdescription: \"User is inactive.\",\n\t},\n]\n","import { Component, h, Host } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-display-demo-json\",\n})\nexport class SmoothlyDisplayDemoJson {\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t{[0, 1, 3, undefined].map(colapseDepth => [\n\t\t\t\t\t<div>collapseDepth={colapseDepth ?? \"undefined\"}</div>,\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<smoothly-display type=\"json\" value={json} collapseDepth={colapseDepth} />\n\t\t\t\t\t</div>,\n\t\t\t\t])}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n\nconst json = {\n\tname: \"stringy\",\n\tnested: {\n\t\tage: 109,\n\t\tarray: [\"one\", \"two\", \"three\", { name: \"four\" }],\n\t\temptyObject: {},\n\t\temptyArray: [],\n\t\ttruthy: true,\n\t\tfalsy: false,\n\t\tnull: null,\n\t\tnotDefined: undefined,\n\t\tlongString:\n\t\t\t\"pepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakorpepparkakor\",\n\t},\n}\n","import { FunctionalComponent, h } from \"@stencil/core\"\nimport { isly } from \"isly\"\n\nexport const JsonValue: FunctionalComponent<{ value: any; collapseDepth?: number }> = ({ value, collapseDepth }) => {\n\treturn isly.object().is(value) || Array.isArray(value) ? (\n\t\t<smoothly-display-json-object value={value} collapseDepth={collapseDepth} />\n\t) : (\n\t\t<smoothly-display-json-primitive value={value} />\n\t)\n}\n",":host {\n\tfont-family: monospace;\n}\n","import { Component, h, Prop, VNode } from \"@stencil/core\"\nimport { JsonValue } from \"./JsonValue\"\n\n@Component({\n\ttag: \"smoothly-display-json\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyDisplayJson {\n\t@Prop() value: any\n\t@Prop() collapseDepth?: number\n\n\trender(): VNode {\n\t\treturn <JsonValue value={this.value} collapseDepth={this.collapseDepth} />\n\t}\n}\n",":host {\n\tfont-family: monospace;\n\tposition: relative;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n\n.indent {\n\tpadding-left: 1rem;\n\tborder-left: 1px solid rgba(var(--smoothly-default-contrast), 0.3);\n}\n:host(:not(.open)) .content {\n\t/* Hide content so it's still selectable and you can copy the full JSON */\n\topacity: 0;\n\tposition: absolute;\n\tpointer-events: none;\n}\n:host>.content>.indent:last-child>.comma {\n\tdisplay: none;\n}\n:host .open-bracket {\n\tcursor: pointer;\n}\n:host .open-bracket::after {\n\tbackground-color: rgb(var(--smoothly-light-color));\n\tcolor: rgb(var(--smoothly-light-shade));\n\tborder: 1px solid rgb(var(--smoothly-light-color));\n\twhite-space: pre;\n\tborder-radius: 0.25rem;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n:host > .open-bracket:hover::after {\n\tcolor: rgb(var(--smoothly-default-contrast));\n\tborder-color: rgb(var(--smoothly-light-shade));\n}\n\n:host(:not(.open):not(.empty))>.open-bracket::after {\n\tcontent: \" ▶ \" attr(data-length) \" ◀ \";\n}\n:host(.open:not(.empty))>.open-bracket::after {\n\tcontent: \" ▼ \";\n}\n:host > .open-bracket:hover,\n:host > .open-bracket:hover~.close-bracket {\n\tfont-weight: bold;\n}\n:host > .open-bracket:hover+.content>.indent {\n\tborder-left-color: rgb(var(--smoothly-default-contrast));\n}\n","import { Component, ComponentWillLoad, h, Host, Prop, State, VNode } from \"@stencil/core\"\nimport { JsonValue } from \"../JsonValue\"\n\n@Component({\n\ttag: \"smoothly-display-json-object\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyDisplayJsonObject implements ComponentWillLoad {\n\t@Prop() value: Record<string, any> | any[]\n\t@Prop() collapseDepth?: number\n\t@State() open: boolean\n\t@State() empty: boolean\n\tprivate openBracket: string = \"\"\n\tprivate closeBracket: string = \"\"\n\tprivate length: number\n\n\tcomponentWillLoad() {\n\t\tthis.open = typeof this.collapseDepth == \"number\" ? this.collapseDepth > 0 : true\n\t\tif (Array.isArray(this.value)) {\n\t\t\tthis.openBracket = \"[\"\n\t\t\tthis.closeBracket = \"]\"\n\t\t\tthis.length = this.value.length\n\t\t} else {\n\t\t\tthis.openBracket = \"{\"\n\t\t\tthis.closeBracket = \"}\"\n\t\t\tthis.length = Object.keys(this.value).length\n\t\t}\n\t\tthis.empty = this.length == 0\n\t}\n\n\trender(): VNode {\n\t\tconst nextCollapseDepth = typeof this.collapseDepth == \"number\" ? Math.max(this.collapseDepth - 1, 0) : undefined\n\t\treturn (\n\t\t\t<Host class={{ empty: this.empty, open: this.open }}>\n\t\t\t\t<span class=\"open-bracket\" onClick={() => (this.open = !this.open)} data-length={this.length}>\n\t\t\t\t\t{this.openBracket}\n\t\t\t\t</span>\n\t\t\t\t<span class=\"content\">\n\t\t\t\t\t{Array.isArray(this.value)\n\t\t\t\t\t\t? this.value.map(v => (\n\t\t\t\t\t\t\t\t<div class=\"indent\">\n\t\t\t\t\t\t\t\t\t<JsonValue value={v} collapseDepth={nextCollapseDepth} />\n\t\t\t\t\t\t\t\t\t<span class=\"comma\">,</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t ))\n\t\t\t\t\t\t: Object.entries(this.value).map(([k, v]) => (\n\t\t\t\t\t\t\t\t<div class=\"indent\">\n\t\t\t\t\t\t\t\t\t{<smoothly-display-json-record-key value={k} />}:{\" \"}\n\t\t\t\t\t\t\t\t\t{<JsonValue value={v} collapseDepth={nextCollapseDepth} />}\n\t\t\t\t\t\t\t\t\t<span class=\"comma\">,</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t ))}\n\t\t\t\t</span>\n\t\t\t\t<span class=\"close-bracket\">{this.closeBracket}</span>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tfont-family: monospace;\n\tdisplay: inline;\n\toverflow-wrap: anywhere;\n\twhite-space: pre-wrap;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n\n:host(.string), \n:host(.number),\n:host(.boolean) {\n\tfont-weight: bold;\n}\n:host(.string) {\n\tcolor: rgb(var(--smoothly-primary-color));\n}\n:host(.number) {\n\tcolor: rgb(var(--smoothly-secondary-color));\n}\n:host(.boolean) {\n\tcolor: rgb(var(--smoothly-tertiary-color));\n}\n:host(.null),\n:host(.undefined) {\n\tcolor: rgb(var(--smoothly-medium-color));\n}\n","import { Component, h, Host, Prop, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-display-json-primitive\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyDisplayJsonPrimitive {\n\t@Prop() value: any\n\n\trender(): VNode {\n\t\treturn <Host class={this.value == null ? \"null\" : typeof this.value}>{\"\" + JSON.stringify(this.value)}</Host>\n\t}\n}\n",":host {\n\tfont-family: monospace;\n\tdisplay: inline;\n\tcolor: rgb(var(--smoothly-default-contrast));\n}\n:host[hidden] {\n\tdisplay: none;\n}\n","import { Component, h, Host, Prop, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-display-json-record-key\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyDisplayJsonRecordKey {\n\t@Prop() value: any\n\n\trender(): VNode {\n\t\treturn <Host>\"{this.value}\"</Host>\n\t}\n}\n","export class Rule {\n filter(value) {\n return value.filter(element => this.is(element));\n }\n stringify(precedence = 0) {\n let result = this.toString();\n if (this.precedence < precedence)\n result = \"(\" + result + \")\";\n return result;\n }\n}\nconst creators = [\n criteria => (criteria instanceof Rule ? criteria : undefined),\n];\nexport function add(create) {\n creators.push(create);\n}\nlet always;\nexport function setFallback(fallback) {\n always = fallback;\n}\nexport function create(criteria) {\n let result;\n for (const c of creators) {\n result = c(criteria);\n if (result)\n break;\n }\n return result || always;\n}\n//# sourceMappingURL=Rule.js.map","import { Rule, setFallback } from \"./Rule\";\nexport class Always extends Rule {\n constructor() {\n super();\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"Always\";\n }\n is(value) {\n return true;\n }\n toString() {\n return \"\";\n }\n}\nsetFallback(new Always());\n//# sourceMappingURL=Always.js.map","import { create, Rule } from \"./Rule\";\nexport class Any extends Rule {\n constructor(criteria) {\n super();\n this.criteria = criteria;\n this.precedence = 50;\n this.class = \"Any\";\n }\n is(value) {\n return (value &&\n typeof value == \"object\" &&\n Object.getOwnPropertyNames(value).some(property => this.criteria.is(value[property]) || this.is(value[property])));\n }\n toString() {\n return this.criteria.stringify(this.precedence);\n }\n}\nexport function any(criteria, value) {\n const result = new Any(create(criteria));\n return value ? result.is(value) : result;\n}\n//# sourceMappingURL=Any.js.map","import { Any } from \"./Any\";\nimport { create, Rule } from \"./Rule\";\nexport class And extends Rule {\n constructor(rules) {\n super();\n this.precedence = 40;\n this.class = \"And\";\n this.rules = rules.reduce((r, e) => (e instanceof And ? [...r, ...e.rules] : [...r, e]), []);\n }\n is(value) {\n return this.rules.every(c => c.is(value));\n }\n toString() {\n return this.rules.map(c => c.stringify(this.precedence)).join(\" \");\n }\n generalize() {\n return new And(this.rules.map(r => (r.class == \"Property\" ? r : new Any(r))));\n }\n}\nexport function and(...criterias) {\n return new And(criterias.map(create));\n}\n//# sourceMappingURL=And.js.map","import { Rule } from \"./Rule\";\nexport var Criteria;\n(function (Criteria) {\n Criteria.is = isCriteria;\n})(Criteria || (Criteria = {}));\nexport function isCriteria(value, recursive = false) {\n return (typeof value == \"number\" ||\n typeof value == \"string\" ||\n value instanceof Rule ||\n (recursive &&\n typeof value == \"object\" &&\n value &&\n Object.values(value).every(value => Array.isArray(value) ? value.every(value => isCriteria(value, true)) : isCriteria(value, true))));\n}\n//# sourceMappingURL=Criteria.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Level;\n(function (Level) {\n Level[Level[\"Logging\"] = 0] = \"Logging\";\n Level[Level[\"Debug\"] = 1] = \"Debug\";\n Level[Level[\"Warning\"] = 2] = \"Warning\";\n Level[Level[\"Recoverable\"] = 3] = \"Recoverable\";\n Level[Level[\"Critical\"] = 4] = \"Critical\";\n})(Level = exports.Level || (exports.Level = {}));\n//# sourceMappingURL=Level.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Level_1 = require(\"./Level\");\nclass Message {\n constructor(description, level = Level_1.Level.Recoverable, type = \"unknown\", region) {\n this.description = description;\n this.level = level;\n this.type = type;\n this.region = region;\n }\n toString() {\n return Level_1.Level[this.level] + \": \" + this.type + \" error. \" + this.description + (this.region ? \" @ \" + this.region.toString() : \"\");\n }\n}\nexports.Message = Message;\n//# sourceMappingURL=Message.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Message_1 = require(\"./Message\");\nclass ConsoleHandler {\n raise(message, level, type, region) {\n if (!(message instanceof Message_1.Message))\n message = new Message_1.Message(message, level, type, region);\n console.error(message.toString());\n }\n}\nexports.ConsoleHandler = ConsoleHandler;\n//# sourceMappingURL=ConsoleHandler.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Position {\n constructor(line, column) {\n this.line = line;\n this.column = column;\n }\n toString() {\n return \"Ln \" + this.line + \", Col \" + this.column;\n }\n}\nexports.Position = Position;\n//# sourceMappingURL=Position.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Position_1 = require(\"./Position\");\nclass Location extends Position_1.Position {\n constructor(resource, line, column) {\n super(line, column);\n this.resource = resource;\n }\n toString() {\n return this.resource.toString() + \" @ \" + super.toString();\n }\n}\nexports.Location = Location;\n//# sourceMappingURL=Location.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Region {\n constructor(resource, start, end, content) {\n this.resource = resource;\n this.start = start;\n this.end = end;\n this.content = content;\n }\n merge(other) { return other ? new Region(this.resource, this.start, other.end, this.content ? this.content : \"\" + other.content ? other.content : \"\") : this; }\n toString() {\n let result = this.resource.toString();\n if (this.start && this.end)\n result += \" (\" + this.start.toString() + \" - \" + this.end.toString() + \") \";\n if (this.content)\n result += this.content;\n return result;\n }\n}\nexports.Region = Region;\n//# sourceMappingURL=Region.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ConsoleHandler_1 = require(\"./ConsoleHandler\");\nexports.ConsoleHandler = ConsoleHandler_1.ConsoleHandler;\nvar Level_1 = require(\"./Level\");\nexports.Level = Level_1.Level;\nvar Location_1 = require(\"./Location\");\nexports.Location = Location_1.Location;\nvar Message_1 = require(\"./Message\");\nexports.Message = Message_1.Message;\nvar Position_1 = require(\"./Position\");\nexports.Position = Position_1.Position;\nvar Region_1 = require(\"./Region\");\nexports.Region = Region_1.Region;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass User {\n constructor(name, password) {\n this.name = name;\n this.password = password;\n }\n get isEmpty() {\n return !this.name && !this.password;\n }\n toString() {\n let result = \"\";\n if (this.name)\n result = this.name;\n if (this.password)\n result += \":\" + this.password;\n return result;\n }\n static parse(data) {\n let result;\n if (data) {\n const splitted = data.split(\":\", 2);\n result = new User(splitted[0], splitted[1]);\n }\n else\n result = new User();\n return result;\n }\n}\nexports.User = User;\n//# sourceMappingURL=User.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Endpoint {\n constructor(host = [], port) {\n this.host = host;\n this.port = port;\n }\n get isEmpty() {\n return this.host.length == 0 && !this.port;\n }\n toString() {\n let result = this.host.join(\".\");\n if (this.port)\n result += \":\" + this.port.toString();\n return result;\n }\n static parse(data) {\n let result;\n if (data) {\n const splitted = data.split(\":\", 2);\n result = new Endpoint(splitted[0].split(\".\"), splitted.length > 1 ? parseInt(splitted[1]) : undefined);\n }\n else\n result = new Endpoint();\n return result;\n }\n}\nexports.Endpoint = Endpoint;\n//# sourceMappingURL=Endpoint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst User_1 = require(\"./User\");\nconst Endpoint_1 = require(\"./Endpoint\");\nclass Authority {\n constructor(user = new User_1.User(), endpoint = new Endpoint_1.Endpoint()) {\n this.user = user;\n this.endpoint = endpoint;\n }\n get isEmpty() {\n return this.user.isEmpty && this.endpoint.isEmpty;\n }\n toString() {\n let result = \"\";\n if (!this.user.isEmpty)\n result = this.user.toString() + \"@\";\n if (!this.endpoint.isEmpty)\n result = result + this.endpoint.toString();\n return result;\n }\n static parse(data) {\n let result;\n if (data) {\n const splitted = data.split(\"@\", 2);\n result = new Authority(User_1.User.parse(splitted.length == 2 ? splitted.pop() : undefined), Endpoint_1.Endpoint.parse(splitted.pop()));\n }\n return result;\n }\n}\nexports.Authority = Authority;\n//# sourceMappingURL=Authority.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Authority_1 = require(\"./Authority\");\nclass Locator {\n constructor(scheme = [], authority = new Authority_1.Authority(), path = [], query = {}, fragment) {\n this.scheme = scheme;\n this.authority = authority;\n this.path = path;\n this.query = query;\n this.fragment = fragment;\n }\n get isRelative() {\n return this.path[0] == \".\" || this.path[0] == \"..\";\n }\n get isFolder() {\n return this.path[this.path.length - 1] == \"\";\n }\n get folder() {\n return this.isFolder ? this : new Locator(this.scheme, this.authority, this.path.filter((value, index) => index < this.path.length - 1), this.query, this.fragment);\n }\n get name() {\n return this.path[this.path.length - 1];\n }\n get extension() {\n const splitted = this.name.split(\".\");\n return splitted.length > 1 ? splitted[splitted.length - 1] : \"\";\n }\n createArray(value, count) {\n const result = [];\n while (count-- > 0)\n result.push(value);\n return result;\n }\n normalize() {\n let skip = 0;\n const path = this.path.reverse().filter((item, index) => {\n let r = false;\n if ((item == \"\" || item == \".\") && index < this.path.length - 1)\n r = false;\n else if (item == \"..\")\n skip++;\n else if (skip > 0)\n skip--;\n else\n r = true;\n return r;\n }).concat(this.createArray(\"..\", skip)).reverse();\n return new Locator(this.scheme, this.authority, path, this.query, this.fragment);\n }\n resolve(absolute) {\n return !absolute ? this : new Locator(this.scheme.length > 0 ? this.scheme : absolute.scheme, !this.authority.isEmpty ? this.authority : absolute.authority, this.isRelative ? absolute.folder.path.concat(this.path) : this.path, this.query, this.fragment).normalize();\n }\n appendPath(path) {\n return new Locator(this.scheme, this.authority, path instanceof Array ? [...this.path, ...path] : [...this.path, path], this.query, this.fragment);\n }\n toString() {\n let result = \"\";\n if (this.scheme.length > 0)\n result += this.scheme.join(\"+\") + \":\";\n if (!this.authority.isEmpty)\n result += \"//\" + this.authority.toString();\n else if (this.scheme.length > 0)\n result += \"//\";\n if (this.path) {\n let path = this.path.join(\"/\");\n if (path[0] != \".\" || result.length > 0)\n path = \"/\" + path;\n result += path;\n }\n if (Object.keys(this.query).length > 0)\n result += \"?\" + this.query.toString();\n if (this.fragment)\n result += \"#\" + this.fragment;\n return result;\n }\n static parse(data) {\n let result;\n switch (data) {\n case \"\":\n case null:\n case undefined:\n break;\n default:\n let hasAuthority = true;\n let scheme = [];\n let splitted = data.split(\"://\", 2);\n if (splitted.length > 1) {\n scheme = (splitted.shift() || \"\").split(\"+\");\n data = splitted.shift();\n }\n else if (data.slice(0, 2) == \"//\")\n data = data.slice(2);\n else\n hasAuthority = false;\n let index;\n let fragment;\n if (data && (index = data.lastIndexOf(\"#\")) > -1) {\n fragment = data.slice(index + 1);\n data = data.slice(0, index);\n }\n let query = {};\n if (data && (index = data.lastIndexOf(\"?\")) > -1) {\n query = new Object();\n data.slice(index + 1).split(\";\").forEach(element => {\n splitted = element.split(\"=\");\n const key = splitted.shift();\n const value = splitted.shift();\n if (key && value)\n query[key] = value;\n });\n data = data.slice(0, index);\n }\n let authority;\n let path = [];\n if (data) {\n splitted = data.split(\"/\");\n if (splitted.length > 0) {\n switch (splitted[0]) {\n case \".\":\n case \"..\":\n break;\n case \"\":\n splitted.shift();\n break;\n default:\n if (hasAuthority)\n authority = Authority_1.Authority.parse(splitted.shift());\n else\n splitted.unshift(\".\");\n break;\n }\n path = splitted;\n }\n }\n result = new Locator(scheme, authority, path, query, fragment);\n break;\n }\n return result;\n }\n}\nexports.Locator = Locator;\nLocator.empty = new Locator(undefined, undefined, undefined, undefined, undefined);\n//# sourceMappingURL=Locator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Authority_1 = require(\"./Authority\");\nexports.Authority = Authority_1.Authority;\nvar Endpoint_1 = require(\"./Endpoint\");\nexports.Endpoint = Endpoint_1.Endpoint;\nvar Locator_1 = require(\"./Locator\");\nexports.Locator = Locator_1.Locator;\nvar User_1 = require(\"./User\");\nexports.User = User_1.User;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Device {\n}\nexports.Device = Device;\n//# sourceMappingURL=Device.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Device_1 = require(\"./Device\");\nclass InDevice extends Device_1.Device {\n}\nexports.InDevice = InDevice;\n//# sourceMappingURL=InDevice.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst InDevice_1 = require(\"./InDevice\");\nclass Reader extends InDevice_1.InDevice {\n static addOpener(open, priority) {\n if (!priority)\n priority = 0;\n Reader.openers.push({ open, priority });\n Reader.openers = Reader.openers.sort((left, right) => right.priority - left.priority);\n }\n static open(locator) {\n let result;\n let i = 0;\n do\n result = Reader.openers[i++].open(locator);\n while (!result && i < Reader.openers.length);\n return result;\n }\n}\nexports.Reader = Reader;\nReader.openers = [];\n//# sourceMappingURL=Reader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Uri = require(\"../Uri\");\nconst Error = require(\"../Error\");\nconst Reader_1 = require(\"./Reader\");\nvar Reader_2 = require(\"./Reader\");\nexports.Reader = Reader_2.Reader;\nclass BufferedReader extends Reader_1.Reader {\n constructor(backend) {\n super();\n this.backend = backend;\n this.buffer = [];\n this.lastContent = \"\";\n this.lastMark = this.locationValue = this.backend.location;\n }\n get tabSize() { return this.backend.tabSize; }\n set tabSize(size) { this.backend.tabSize = size; }\n get readable() { return !!this.backend; }\n get opened() { return !!this.backend; }\n get isEmpty() { return (this.buffer.length == 0 || this.buffer[0].data == \"\\0\") && this.backend.isEmpty; }\n get resource() {\n const location = this.location;\n return location ? location.resource : Uri.Locator.empty;\n }\n get location() {\n return this.locationValue;\n }\n get region() {\n return new Error.Region(this.resource, this.lastMark, this.location, this.lastContent);\n }\n close() {\n return this.backend.close();\n }\n peek(length) {\n if (!length)\n length = 1;\n let next;\n while (length > this.buffer.length && (next = this.backend.read()))\n this.buffer.push({ data: next, location: this.backend.location });\n return this.buffer.length == 0 ? undefined : this.buffer.slice(0, length > this.buffer.length ? this.buffer.length : length).map(value => value.data).join(\"\");\n }\n read(length) {\n if (!length)\n length = 1;\n const result = this.peek(length);\n if (result && result.length > 0) {\n this.locationValue = this.buffer[result.length - 1].location;\n this.buffer.splice(0, result.length);\n this.lastContent += result;\n }\n return result;\n }\n peekIs(value, count) {\n let result;\n if (value)\n if (typeof (value) == \"string\") {\n const v = value;\n while (count && count-- > 0)\n value += v;\n result = this.peek(value.length) == value ? value : undefined;\n }\n else if (value.length > 0 && !(result = this.peekIs(value[0])) && value.length)\n result = this.peekIs(value.slice(1));\n return result;\n }\n readIf(value) {\n let result;\n if (value)\n if (typeof (value) == \"string\")\n result = this.peek(value.length) == value && this.read(value.length) || undefined;\n else if (value.length > 0 && !(result = this.readIf(value[0])) && value.length)\n result = this.readIf(value.slice(1));\n return result;\n }\n readAll() {\n let result = \"\";\n while (this.peek())\n result += this.read();\n return result != \"\" ? result : undefined;\n }\n mark() {\n const result = this.region;\n this.lastMark = this.location;\n this.lastContent = \"\";\n return result;\n }\n static create(backend) {\n return backend ? new BufferedReader(backend) : undefined;\n }\n}\nexports.BufferedReader = BufferedReader;\n//# sourceMappingURL=BufferedReader.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction close(fd) {\n return __awaiter(this, void 0, void 0, function* () { });\n}\nexports.close = close;\nfunction fsync(fd) {\n return __awaiter(this, void 0, void 0, function* () { });\n}\nexports.fsync = fsync;\nfunction open(path, flags, mode) {\n return __awaiter(this, void 0, void 0, function* () { return 0; });\n}\nexports.open = open;\nfunction write(fd, buffer, offset, encoding) {\n return __awaiter(this, void 0, void 0, function* () { return { bytesWritten: 0 }; });\n}\nexports.write = write;\nfunction lstatSync(path, options) { return { isDirectory: () => false }; }\nexports.lstatSync = lstatSync;\nfunction readdirSync(path) { return []; }\nexports.readdirSync = readdirSync;\nfunction readFileSync(path, encoding) { return \"\"; }\nexports.readFileSync = readFileSync;\n//# sourceMappingURL=fs.browser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sep = \"/\";\nexports.sep = sep;\n//# sourceMappingURL=path.browser.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Error = require(\"../Error\");\nconst Uri = require(\"../Uri\");\nconst Reader_1 = require(\"./Reader\");\nclass StringReader extends Reader_1.Reader {\n constructor(content, resource) {\n super();\n this.content = content;\n this.resource = resource;\n this.tabSize = 2;\n this.count = 0;\n this.line = 1;\n this.column = 1;\n this.lastContent = \"\";\n this.readable = true;\n this.content += \"\\0\";\n this.lastPosition = this.location;\n }\n get opened() { return this.count + 1 >= this.content.length; }\n get isEmpty() { return this.opened; }\n get location() { return new Error.Location(this.resource, this.line, this.column); }\n get region() { return new Error.Region(this.resource, this.lastPosition, this.location, this.lastContent); }\n close() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = !(yield this.isEmpty);\n if (result)\n this.count = this.content.length;\n return result;\n });\n }\n read() {\n let result;\n if (this.count < this.content.length)\n result = this.content.charAt(this.count);\n else if (this.count == this.content.length)\n result = undefined;\n this.count++;\n if (result) {\n switch (result) {\n case \"\\n\":\n this.line++;\n this.column = 1;\n break;\n case \"\\t\":\n this.column += this.tabSize;\n break;\n default:\n this.column++;\n break;\n }\n this.lastContent += result;\n }\n return result;\n }\n mark() {\n const result = this.region;\n this.lastPosition = this.location;\n this.lastContent = \"\";\n return result;\n }\n static create(content, resource) {\n return content != undefined ? new StringReader(content, resource || Uri.Locator.empty) : undefined;\n }\n}\nexports.StringReader = StringReader;\n//# sourceMappingURL=StringReader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./fs\");\nconst path = require(\"./path\");\nconst Uri = require(\"../Uri\");\nconst Reader_1 = require(\"./Reader\");\nconst StringReader_1 = require(\"./StringReader\");\nclass FileReader extends Reader_1.Reader {\n constructor(backend) {\n super();\n this.backend = backend;\n }\n get tabSize() { return this.backend.tabSize; }\n set tabSize(size) { this.backend.tabSize = size; }\n get readable() { return this.backend.readable; }\n get opened() { return this.backend.opened; }\n get isEmpty() { return this.backend.isEmpty; }\n get resource() { return this.backend ? this.backend.resource : Uri.Locator.empty; }\n get location() { return this.backend.location; }\n get region() { return this.backend.region; }\n close() {\n return this.backend.close();\n }\n read() { return this.backend.read(); }\n mark() { return this.backend.mark(); }\n static open(resource) {\n let backend;\n if (resource && (resource.scheme.length == 0 || resource.scheme.length == 1 && resource.scheme[0] == \"file\"))\n try {\n backend = StringReader_1.StringReader.create(fs.readFileSync((resource.isRelative ? \"\" : path.sep) + resource.path.join(path.sep), \"utf-8\"), resource);\n }\n catch (error) {\n console.log(`Failed to open file: ${resource.toString()}`);\n }\n return backend ? new FileReader(backend) : undefined;\n }\n}\nexports.FileReader = FileReader;\nReader_1.Reader.addOpener(p => FileReader.open(p), 10);\n//# sourceMappingURL=FileReader.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./fs\");\nconst path = require(\"./path\");\nconst Uri = require(\"../Uri\");\nconst Error = require(\"../Error\");\nconst Reader_1 = require(\"./Reader\");\nconst FileReader_1 = require(\"./FileReader\");\nclass FolderReader extends Reader_1.Reader {\n constructor(files) {\n super();\n this.files = files;\n this.tabSizeValue = 2;\n this.lastLocation = new Error.Location(Uri.Locator.empty, 0, 0);\n }\n get tabSize() { return this.tabSizeValue; }\n set tabSize(size) {\n this.tabSizeValue = size;\n if (this.current)\n this.current.tabSize = size;\n }\n get readable() { return this.current != undefined && this.current.readable || this.files.length > 0; }\n get opened() { return this.current != undefined || this.files.length > 0; }\n get isEmpty() { return this.files.length == 0 && (!this.current || this.current.isEmpty); }\n get resource() { return this.current ? this.current.resource : this.lastLocation.resource; }\n get location() { return this.current ? this.current.location : this.lastLocation; }\n get region() { return this.current ? this.current.region : new Error.Region(this.resource); }\n close() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.current != undefined && (yield this.current.close());\n });\n }\n read() {\n let result;\n if (!this.current && this.files.length > 0) {\n this.current = FileReader_1.FileReader.open(this.files.shift());\n this.current.tabSize = this.tabSize;\n }\n if (this.current) {\n result = this.current.read();\n if (result == undefined || result == \"\\0\") {\n this.current.close();\n this.current = undefined;\n }\n }\n this.lastLocation = this.location;\n return result;\n }\n mark() { return this.current ? this.current.mark() : new Error.Region(this.resource); }\n static getFiles(folder, filetype, ignoreFiles = []) {\n let result = [];\n const files = fs.readdirSync(folder);\n files.forEach(file => {\n const filename = folder + path.sep + file;\n if (ignoreFiles.indexOf(filename) == -1) {\n if (fs.lstatSync(filename).isDirectory())\n result = result.concat(FolderReader.getFiles(filename, filetype, ignoreFiles));\n else if (file.length > filetype.length && file.lastIndexOf(filetype, file.length - filetype.length) === file.length - filetype.length)\n result.push(filename);\n }\n });\n return result;\n }\n static open(resource) {\n let files;\n try {\n if (resource && (resource.scheme.length == 0 || resource.scheme.length == 1 && resource.scheme[0] == \"file\") && resource.isFolder || resource.name.match(\"*\"))\n files = FolderReader.getFiles((resource.isRelative ? \"\" : path.sep) + resource.folder.path.join(path.sep), resource.extension);\n }\n catch (error) {\n }\n return files ? new FolderReader(files.map(f => new Uri.Locator([\"file\"], undefined, f.split(path.sep)))) : undefined;\n }\n}\nexports.FolderReader = FolderReader;\nReader_1.Reader.addOpener((resource) => FolderReader.open(resource), 0);\n//# sourceMappingURL=FolderReader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction* generate(next) {\n let result;\n while ((result = next()) != undefined)\n yield result;\n}\nfunction isIterator(item) {\n return item.next instanceof Function;\n}\nfunction* merge(left, right) {\n let result;\n while (!(result = left.next()).done)\n yield result.value;\n if (isIterator(right))\n while (!(result = right.next()).done)\n yield result.value;\n else\n yield right;\n}\nclass Enumerator {\n constructor(backend) {\n this.iterator = backend instanceof Function ? generate(backend) : backend;\n }\n get length() {\n let result = 0;\n while (!this.next().done)\n result++;\n return result;\n }\n get last() {\n return this.nextValue && !this.nextValue.done ? this.nextValue.value : undefined;\n }\n fetch() {\n const result = this.next();\n return result.done ? undefined : result.value;\n }\n next(value) {\n return this.nextValue = this.iterator.next(value);\n }\n append(item) {\n return new Enumerator(merge(this, item));\n }\n map(mapping) {\n return new Enumerator(() => {\n const item = this.fetch();\n return (item != undefined) ? mapping(item) : undefined;\n });\n }\n reduce(reduce, result) {\n const item = this.fetch();\n return item ? this.reduce(reduce, reduce(result, item)) : result;\n }\n apply(apply) {\n const item = this.fetch();\n if (item) {\n apply(item);\n this.apply(apply);\n }\n }\n filter(filter) {\n return new Enumerator(() => {\n let item;\n do\n item = this.fetch();\n while (item != undefined && !filter(item));\n return item;\n });\n }\n toArray() {\n const item = this.fetch();\n let result;\n if (!item)\n result = [];\n else {\n result = this.toArray();\n result.unshift(item);\n }\n return result;\n }\n static from(backend) {\n return new Enumerator(backend);\n }\n}\nexports.Enumerator = Enumerator;\nEnumerator.empty = Enumerator.from(() => undefined);\n//# sourceMappingURL=Enumerator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Enumerator_1 = require(\"./Enumerator\");\nfunction isIterable(other) {\n return other == null ? false : typeof other[Symbol.iterator] === \"function\";\n}\nclass Enumerable {\n constructor(get) {\n this.get = get;\n }\n get length() {\n return this.get().length;\n }\n get first() {\n return this.get().fetch();\n }\n get last() {\n return this.get().last;\n }\n getEnumerator() {\n return new Enumerator_1.Enumerator(this.get());\n }\n [Symbol.iterator]() {\n return this.getEnumerator();\n }\n append(item) {\n return new Enumerable(() => this.get().append(item));\n }\n map(mapping) {\n return new Enumerable(() => this.get().map(mapping));\n }\n reduce(reduce, result) {\n return this.get().reduce(reduce, result);\n }\n apply(apply) {\n this.get().apply(apply);\n }\n filter(filter) {\n return new Enumerable(() => this.get().filter(filter));\n }\n toArray() {\n return this.getEnumerator().toArray();\n }\n static from(get) {\n return isIterable(get) ? new Enumerable(() => new Enumerator_1.Enumerator(get[Symbol.iterator]())) : new Enumerable(() => {\n const r = get();\n return r instanceof Enumerator_1.Enumerator ? r : new Enumerator_1.Enumerator(r);\n });\n }\n}\nexports.Enumerable = Enumerable;\nEnumerable.empty = Enumerable.from([]);\n//# sourceMappingURL=Enumerable.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Enumerator_1 = require(\"./Enumerator\");\nclass ArrayEnumerator extends Enumerator_1.Enumerator {\n constructor(backend) {\n super(() => this.position < this.backend.length ? this.backend[this.position++] : undefined);\n this.backend = backend;\n this.position = 0;\n }\n}\nexports.ArrayEnumerator = ArrayEnumerator;\n//# sourceMappingURL=ArrayEnumerator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Enumerator_1 = require(\"./Enumerator\");\nclass BufferedEnumerator extends Enumerator_1.Enumerator {\n constructor(backend) {\n super(() => {\n const result = this.peek(0);\n if (this.buffer.length > 0)\n this.buffer.shift();\n return result;\n });\n this.backend = backend;\n this.buffer = [];\n }\n peek(position) {\n if (!position)\n position = 0;\n let next;\n while (position > this.buffer.length - 1 && (next = this.backend.fetch()))\n this.buffer.push(next);\n return position > this.buffer.length - 1 ? undefined : this.buffer[position];\n }\n}\nexports.BufferedEnumerator = BufferedEnumerator;\n//# sourceMappingURL=BufferedEnumerator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass String {\n static padLeft(value, paddingCharacter, width) {\n return String.pad(value, paddingCharacter, width, true);\n }\n static padRight(value, paddingCharacter, width) {\n return String.pad(value, paddingCharacter, width, false);\n }\n static pad(value, paddingCharacter, width, padLeft) {\n let padding = \"\";\n const count = width - value.length;\n for (let i = 0; i < count; i++)\n padding += paddingCharacter;\n return padLeft ? padding + value : value + padding;\n }\n}\nexports.String = String;\n//# sourceMappingURL=String.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Enumerator_1 = require(\"./Enumerator\");\nexports.Enumerator = Enumerator_1.Enumerator;\nvar Enumerable_1 = require(\"./Enumerable\");\nexports.Enumerable = Enumerable_1.Enumerable;\nvar ArrayEnumerator_1 = require(\"./ArrayEnumerator\");\nexports.ArrayEnumerator = ArrayEnumerator_1.ArrayEnumerator;\nvar BufferedEnumerator_1 = require(\"./BufferedEnumerator\");\nexports.BufferedEnumerator = BufferedEnumerator_1.BufferedEnumerator;\nvar String_1 = require(\"./String\");\nexports.String = String_1.String;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Device_1 = require(\"./Device\");\nclass OutDevice extends Device_1.Device {\n}\nexports.OutDevice = OutDevice;\n//# sourceMappingURL=OutDevice.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Uri = require(\"../Uri\");\nconst Utilities_1 = require(\"../Utilities\");\nconst OutDevice_1 = require(\"./OutDevice\");\nclass Writer extends OutDevice_1.OutDevice {\n constructor() {\n super(...arguments);\n this.newLineSymbol = \"\\n\";\n }\n write(message) {\n return __awaiter(this, void 0, void 0, function* () {\n return message instanceof Utilities_1.Enumerator ? this.writeImplementation(message) :\n message instanceof Array ? this.writeImplementation(new Utilities_1.ArrayEnumerator(message)) :\n this.writeImplementation(new Utilities_1.ArrayEnumerator([message]));\n });\n }\n writeLine(message) {\n return __awaiter(this, void 0, void 0, function* () {\n return message instanceof Utilities_1.Enumerator ? this.writeImplementation(message.append(this.newLineSymbol)) :\n message instanceof Array ? this.writeImplementation(new Utilities_1.ArrayEnumerator([...message, this.newLineSymbol])) :\n message ? this.writeImplementation(new Utilities_1.ArrayEnumerator([message, this.newLineSymbol])) :\n this.writeImplementation(new Utilities_1.ArrayEnumerator([this.newLineSymbol]));\n });\n }\n static addOpener(open, priority) {\n if (!priority)\n priority = 0;\n Writer.openers.push({ open, priority });\n Writer.openers = Writer.openers.sort((left, right) => right.priority - left.priority);\n }\n static open(resource) {\n return __awaiter(this, void 0, void 0, function* () {\n let result;\n if (typeof (resource) == \"string\") {\n const r = Uri.Locator.parse(resource);\n result = r ? yield Writer.open(r) : undefined;\n }\n else {\n let i = 0;\n do\n result = yield Writer.openers[i++].open(resource);\n while (!result && i < Writer.openers.length);\n }\n return result;\n });\n }\n}\nexports.Writer = Writer;\nWriter.openers = [];\n//# sourceMappingURL=Writer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Writer_1 = require(\"./Writer\");\nclass Indenter extends Writer_1.Writer {\n constructor(backend) {\n super();\n this.backend = backend;\n this.autoFlush = true;\n this.indentionSymbol = \"\\t\";\n this.indentionCount = 0;\n this.indentNext = false;\n }\n get resource() { return this.backend.resource; }\n get opened() { return this.backend.opened; }\n get writable() { return this.backend.writable; }\n flush() {\n return this.backend.flush();\n }\n close() {\n return this.backend.close();\n }\n increase() {\n this.indentionCount++;\n return true;\n }\n decrease() {\n this.indentionCount--;\n return this.indentionCount >= 0;\n }\n getIndention() {\n return this.indentionSymbol.repeat(this.indentionCount);\n }\n writeImplementation(buffer) {\n const result = [];\n let item;\n let next = buffer.fetch();\n if (next)\n do {\n item = next;\n next = buffer.fetch();\n if (this.indentNext)\n item = this.getIndention() + item;\n this.indentNext = item.endsWith(this.newLineSymbol);\n item = item.replace(this.newLineSymbol, this.newLineSymbol + this.getIndention());\n if (this.indentNext)\n item = item.substring(0, item.length - this.indentionCount * this.indentionSymbol.length);\n result.push(this.backend.write(item));\n } while (next);\n return Promise.all(result).then(r => r.reduce((previous, current) => previous && current, true));\n }\n}\nexports.Indenter = Indenter;\n//# sourceMappingURL=Indenter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Reader_1 = require(\"./Reader\");\nconst BufferedReader_1 = require(\"./BufferedReader\");\nclass PrefixReader extends Reader_1.Reader {\n constructor(backend, prefix) {\n super();\n this.prefix = prefix;\n this.done = false;\n this.backend = backend instanceof BufferedReader_1.BufferedReader ? backend : BufferedReader_1.BufferedReader.create(backend);\n }\n get tabSize() { return this.backend.tabSize; }\n set tabSize(size) { this.backend.tabSize = size; }\n get readable() { return this.backend.readable; }\n get opened() { return this.backend.opened; }\n get isEmpty() { return this.done || this.backend.isEmpty; }\n get resource() { return this.backend.resource; }\n get location() { return this.backend.location; }\n get region() { return this.backend.region; }\n close() {\n return this.backend.close();\n }\n read() {\n let result;\n if (!this.done) {\n result = this.backend.read();\n this.done = result == \"\\n\" && !this.backend.readIf(this.prefix) && !this.backend.peekIs(\"\\n\");\n }\n return result;\n }\n mark() { return this.backend.mark(); }\n static create(backend, prefix) {\n return backend && prefix ? new PrefixReader(backend, prefix) : backend;\n }\n}\nexports.PrefixReader = PrefixReader;\n//# sourceMappingURL=PrefixReader.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./fs\");\nconst path = require(\"./path\");\nconst Writer_1 = require(\"./Writer\");\nclass FileWriter extends Writer_1.Writer {\n constructor(resource, descriptor) {\n super();\n this.resource = resource;\n this.descriptor = descriptor;\n this.autoFlush = false;\n }\n get opened() { return this.descriptor > 0; }\n get writable() { return this.descriptor > 0; }\n flush() {\n return __awaiter(this, void 0, void 0, function* () {\n let result = true;\n try {\n yield fs.fsync(this.descriptor);\n }\n catch (error) {\n result = false;\n }\n return result;\n });\n }\n close() {\n return __awaiter(this, void 0, void 0, function* () {\n let result = this.opened;\n if (result) {\n try {\n yield fs.close(this.descriptor);\n }\n catch (error) {\n result = false;\n }\n this.descriptor = 0;\n }\n return result;\n });\n }\n writeImplementation(buffer) {\n return __awaiter(this, void 0, void 0, function* () {\n let result = true;\n const content = Buffer.from(buffer.reduce((r, item) => r + item, \"\"));\n try {\n const r = yield fs.write(this.descriptor, content, 0, \"utf8\");\n result = r.bytesWritten == content.length;\n }\n catch (error) {\n result = false;\n }\n return result && (!this.autoFlush || (yield this.flush()));\n });\n }\n static open(resource) {\n return __awaiter(this, void 0, void 0, function* () {\n let backend;\n if (resource && (resource.scheme.length == 0 || resource.scheme.length == 1 && resource.scheme[0] == \"file\"))\n try {\n backend = yield fs.open((resource.isRelative ? \"\" : path.sep) + resource.path.join(path.sep), \"w\");\n }\n catch (error) {\n backend = undefined;\n }\n return backend ? new FileWriter(resource, backend) : undefined;\n });\n }\n}\nexports.FileWriter = FileWriter;\nWriter_1.Writer.addOpener(FileWriter.open);\n//# sourceMappingURL=FileWriter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Reader_1 = require(\"./Reader\");\nconst BufferedReader_1 = require(\"./BufferedReader\");\nclass TillReader extends Reader_1.Reader {\n constructor(backend, endMark) {\n super();\n this.endMark = endMark;\n this.done = false;\n this.backend = backend instanceof BufferedReader_1.BufferedReader ? backend : BufferedReader_1.BufferedReader.create(backend);\n this.done = this.backend.peekIs(this.endMark) != undefined;\n }\n get tabSize() { return this.backend.tabSize; }\n set tabSize(size) { this.backend.tabSize = size; }\n get readable() { return this.backend.readable; }\n get opened() { return !this.done && this.backend.opened; }\n get isEmpty() { return this.done || this.backend.isEmpty; }\n get resource() { return this.backend.resource; }\n get location() { return this.backend.location; }\n get region() { return this.backend.region; }\n close() {\n const result = !this.done;\n if (result)\n this.done = true;\n return Promise.resolve(result);\n }\n read() {\n let result;\n if (!this.done) {\n result = this.backend.read();\n this.done = this.backend.peekIs(this.endMark) != undefined;\n }\n return result;\n }\n mark() { return this.backend.mark(); }\n static create(backend, endMark) {\n return backend && endMark ? new TillReader(backend, endMark) : backend;\n }\n}\nexports.TillReader = TillReader;\n//# sourceMappingURL=TillReader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Reader_1 = require(\"./Reader\");\nconst BufferedReader_1 = require(\"./BufferedReader\");\nclass UntilReader extends Reader_1.Reader {\n constructor(backend, endMark) {\n super();\n this.endMark = endMark;\n this.done = -1;\n this.backend = backend instanceof BufferedReader_1.BufferedReader ? backend : BufferedReader_1.BufferedReader.create(backend);\n const peeked = this.backend.peekIs(this.endMark);\n if (peeked)\n this.done = peeked.length;\n }\n get tabSize() { return this.backend.tabSize; }\n set tabSize(size) { this.backend.tabSize = size; }\n get readable() { return this.backend.readable; }\n get opened() { return !this.done && this.backend.opened; }\n get isEmpty() { return this.done == 0 || this.backend.isEmpty; }\n get resource() { return this.backend.resource; }\n get location() { return this.backend.location; }\n get region() { return this.backend.region; }\n close() {\n const result = this.done > 0;\n if (result)\n this.done = 0;\n return Promise.resolve(result);\n }\n read() {\n let result;\n if (this.done != 0) {\n result = this.backend.read();\n let peeked;\n if (this.done > 0)\n this.done--;\n else if (peeked = this.backend.peekIs(this.endMark))\n this.done = peeked.length;\n }\n return result;\n }\n mark() { return this.backend.mark(); }\n static create(backend, endMark) {\n return backend && endMark ? new UntilReader(backend, endMark) : backend;\n }\n}\nexports.UntilReader = UntilReader;\n//# sourceMappingURL=UntilReader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BufferedReader_1 = require(\"./BufferedReader\");\nexports.BufferedReader = BufferedReader_1.BufferedReader;\nvar Device_1 = require(\"./Device\");\nexports.Device = Device_1.Device;\nvar FileReader_1 = require(\"./FileReader\");\nexports.FileReader = FileReader_1.FileReader;\nvar FolderReader_1 = require(\"./FolderReader\");\nexports.FolderReader = FolderReader_1.FolderReader;\nvar Indenter_1 = require(\"./Indenter\");\nexports.Indenter = Indenter_1.Indenter;\nvar InDevice_1 = require(\"./InDevice\");\nexports.InDevice = InDevice_1.InDevice;\nvar OutDevice_1 = require(\"./OutDevice\");\nexports.OutDevice = OutDevice_1.OutDevice;\nvar PrefixReader_1 = require(\"./PrefixReader\");\nexports.PrefixReader = PrefixReader_1.PrefixReader;\nvar Reader_1 = require(\"./Reader\");\nexports.Reader = Reader_1.Reader;\nvar StringReader_1 = require(\"./StringReader\");\nexports.StringReader = StringReader_1.StringReader;\nvar FileWriter_1 = require(\"./FileWriter\");\nexports.FileWriter = FileWriter_1.FileWriter;\nvar TillReader_1 = require(\"./TillReader\");\nexports.TillReader = TillReader_1.TillReader;\nvar UntilReader_1 = require(\"./UntilReader\");\nexports.UntilReader = UntilReader_1.UntilReader;\nvar Writer_1 = require(\"./Writer\");\nexports.Writer = Writer_1.Writer;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Error = require(\"./Error\");\nexports.Error = Error;\nconst IO = require(\"./IO\");\nexports.IO = IO;\nconst Uri = require(\"./Uri\");\nexports.Uri = Uri;\nconst Utilities = require(\"./Utilities\");\nexports.Utilities = Utilities;\n//# sourceMappingURL=index.js.map","import { Error, IO } from \"@cogneco/mend\";\nexport class Source extends IO.BufferedReader {\n constructor(reader, errorHandler) {\n super(typeof reader == \"string\" ? IO.StringReader.create(reader) : reader);\n this.errorHandler = errorHandler;\n }\n raise(message, level, type = \"lexical\", region) {\n if (!(message instanceof Error.Message)) {\n if (!level)\n level = Error.Level.Critical;\n if (!region)\n region = this.region;\n message = new Error.Message(message, level, type, region);\n }\n if (this.errorHandler)\n this.errorHandler.raise(message);\n }\n requirePrefix(prefix) {\n return new Source(new IO.PrefixReader(this, prefix), this.errorHandler);\n }\n till(endMark) {\n return new Source(IO.TillReader.create(this, endMark), this.errorHandler);\n }\n until(endMark) {\n return new Source(IO.UntilReader.create(this, endMark), this.errorHandler);\n }\n peekIsSymbol(symbols) {\n return (this.peekIs(symbols ?? [\"!\", \"(\", \")\", \"[\", \"]\", \"|\", \"*\", \":\", \".\", \"<=\", \">=\", \"<\", \">\", \" * \", \" + \", \" - \", \" / \", \",\"])?.length ?? false);\n }\n peekIsWhitespace() {\n return !!this.peekIs([\" \", \"\\n\", \"\\t\"]);\n }\n}\n//# sourceMappingURL=Source.js.map","import { Utilities } from \"@cogneco/mend\";\nimport { Source } from \"./Source\";\nfunction tokenize(reader, errorHandler, symbols) {\n const source = new Source(reader, errorHandler);\n return new Utilities.Enumerator(() => {\n let result;\n let peekSymbolLength = 1;\n if (!source.isEmpty) {\n while (source.peekIsWhitespace() && !source.peekIsSymbol(symbols))\n source.read();\n if ((peekSymbolLength = source.peekIsSymbol(symbols)))\n result = { value: source.read(peekSymbolLength) || \"\", region: source.mark() };\n else {\n let value = \"\";\n while (!source.isEmpty && !source.peekIsWhitespace() && !source.peekIsSymbol(symbols))\n value += source.read();\n if (value)\n result = { value, region: source.mark() };\n }\n }\n return result;\n });\n}\nexport { Source, tokenize };\n//# sourceMappingURL=index.js.map","import { tokenize } from \"../lexer\";\nexport class Base {\n tokenize(input) {\n return tokenize(input, undefined, [\n \"!\",\n \"(\",\n \")\",\n \"[\",\n \"]\",\n \"|\",\n \" | \",\n \"*\",\n \":\",\n \".\",\n \"<=\",\n \">=\",\n \"<\",\n \">\",\n \" * \",\n \" + \",\n \"+\",\n \" - \",\n \"-\",\n \" / \",\n ])\n .map(t => ({ value: t.value }))\n .toArray();\n }\n}\n//# sourceMappingURL=Base.js.map","import { Base } from \"./Base\";\nexport class Array extends Base {\n constructor(input) {\n super();\n this.class = \"array\";\n this.array = input;\n }\n complete(input, baseObject, type) {\n const tokens = typeof input == \"string\" ? this.tokenize(input) : input;\n return Array.completor\n .flatMap(p => p(tokens, this, baseObject))\n .reduce((result, element) => result.some(p => p.value == element.value && p.cursor == element.cursor) ? result : [...result, element], []);\n }\n isType(value) {\n return global.Array.isArray(value);\n }\n static add(...pattern) {\n this.completor.push(...pattern);\n }\n static is(value) {\n return value instanceof Array;\n }\n}\nArray.completor = [];\n//# sourceMappingURL=Array.js.map","export var Cursor;\n(function (Cursor) {\n function is(value) {\n return typeof value == \"object\" && typeof value.start == \"number\" && typeof value.end == \"number\";\n }\n Cursor.is = is;\n})(Cursor || (Cursor = {}));\n//# sourceMappingURL=Cursor.js.map","import { Cursor } from \"./Cursor\";\nexport var Completion;\n(function (Completion) {\n function stringify(completions) {\n return completions.map(c => typeof c.cursor == \"number\"\n ? c.value.slice(0, c.cursor) + \"_\" + c.value.slice(c.cursor, c.value.length)\n : c.value + \"_\");\n }\n Completion.stringify = stringify;\n function prepend(prefix, completion, suffix) {\n return Array.isArray(completion)\n ? completion.map(c => prepend(prefix, c, suffix))\n : {\n value: prefix + completion.value + (suffix ?? \"\"),\n cursor: typeof completion?.cursor == \"number\"\n ? completion?.cursor + prefix.length\n : Cursor.is(completion.cursor)\n ? { start: completion.cursor.start + prefix.length, end: completion.cursor.end + prefix.length }\n : completion.value.length + prefix.length,\n suggestion: completion.suggestion,\n };\n }\n Completion.prepend = prepend;\n})(Completion || (Completion = {}));\n//# sourceMappingURL=Completion.js.map","import { Base as SType } from \"./Base\";\nimport { Completion } from \"./Completion\";\nexport class Boolean extends SType {\n constructor() {\n super();\n this.class = \"boolean\";\n }\n complete(input, baseObject, type) {\n const tokens = typeof input == \"string\" ? this.tokenize(input) : input;\n const result = type\n ? Boolean.literals.filter(c => c.value.startsWith(tokens[0]?.value ?? \"\"))\n : tokens[0]?.value == \":\"\n ? Completion.prepend(\":\", Boolean.literals.filter(c => c.value.startsWith(tokens[1]?.value ?? \"\")))\n : [];\n return [\n ...(result ?? []),\n ...(type ? [] : Boolean.completor)\n .flatMap(p => p(tokens, this, baseObject))\n .reduce((result, element) => result.some(p => p.value == element.value && p.cursor == element.cursor) ? result : [...result, element], []),\n ];\n }\n isType(value) {\n return typeof value == \"boolean\";\n }\n static add(...pattern) {\n this.completor.push(...pattern);\n }\n}\nBoolean.literals = [\n { value: \"true\", suggestion: { value: \"true\" } },\n { value: \"false\", suggestion: { value: \"false\" } },\n];\nBoolean.completor = [];\n//# sourceMappingURL=Boolean.js.map","import { Completion } from \"./Completion\";\nexport var Completor;\n(function (Completor) {\n function functions(tokens, argument, completion) {\n return tokens.length == 0\n ? [{ value: \":\", suggestion: { value: \":\" } }]\n : tokens.length <= 3 &&\n tokens[0].value == \":\" &&\n completion.value.startsWith(tokens[1]?.value ?? \"\") &&\n (tokens[2]?.value ?? \"(\") == \"(\"\n ? Completion.prepend(\":\", [completion])\n : tokens.length <= 4 &&\n tokens.slice(0, 4).reduce((string, token) => string + token.value, \"\") == \":\" + completion.value\n ? Completion.prepend(\":\" + completion.value.substring(0, completion.value.length - 1), argument(), \")\")\n : tokens.length == 5 &&\n tokens.slice(0, 3).reduce((string, token) => string + token.value, \"\") + tokens[4].value ==\n \":\" + completion.value\n ? Completion.prepend(\":\" + completion.value.substring(0, completion.value.length - 1), argument(tokens.slice(3, tokens.length - 1)), \")\")\n : tokens.length > 5 &&\n tokens.slice(0, 3).reduce((string, token) => string + token.value, \"\") + tokens[tokens.length - 1].value ==\n \":\" + completion.value\n ? Completion.prepend(\":\" + completion.value.substring(0, completion.value.length - 1), argument(tokens.slice(3, tokens.length - 1)), \")\")\n : [];\n }\n Completor.functions = functions;\n function expressions(tokens, argument, completion) {\n return tokens.length == 0\n ? [{ value: \":\", suggestion: { value: \":\" } }]\n : tokens[0].value != \":\"\n ? []\n : tokens.length == 1\n ? Completion.prepend(\":\", [completion])\n : Completion.prepend(\":\", argument(tokens.slice(1)));\n }\n Completor.expressions = expressions;\n function operators(tokens, argument, completion) {\n return tokens.length >= 1 && tokens[0].value == completion.value\n ? Completion.prepend(completion.value, argument(tokens.slice(1)))\n : tokens.length == 0 ||\n (tokens.length == 1 && completion.value.startsWith(tokens[0].value)) ||\n tokens[0].value == completion.value.replace(/ /g, \"\")\n ? [completion]\n : [];\n }\n Completor.operators = operators;\n})(Completor || (Completor = {}));\n//# sourceMappingURL=Completor.js.map","import { Base as SType } from \"./Base\";\nimport { Completion } from \"./Completion\";\nexport class Number extends SType {\n constructor(input) {\n super();\n this.input = input;\n this.class = \"number\";\n if (input)\n this.value = input;\n }\n complete(input, baseObject, type) {\n const tokens = typeof input == \"string\" ? this.tokenize(input) : input;\n return [\n ...(tokens.length > 0 && tokens[0].value == \":\" && baseObject\n ? Completion.prepend(\":\", baseObject.complete(tokens.slice(1), undefined, this))\n : baseObject && tokens.length >= 0 && type\n ? Completion.prepend(\" \", baseObject?.complete(tokens, undefined, undefined))\n : []),\n ...(type ? Number.completorArgument : Number.completor)\n .flatMap(p => p(tokens, this, baseObject))\n .reduce((result, element) => result.some(p => p.value == element.value && p.cursor == element.cursor) ? result : [...result, element], []),\n ];\n }\n isType(value) {\n return isNaN(+value) ? false : true;\n }\n static add(...pattern) {\n this.completor.push(...pattern);\n }\n static addArgument(...pattern) {\n this.completorArgument.push(...pattern);\n }\n static is(value) {\n return value instanceof Number || !global.Number.isNaN(value);\n }\n}\nNumber.completor = [];\nNumber.completorArgument = [];\n//# sourceMappingURL=Number.js.map","import { Base as SType } from \"./Base\";\nimport { Completion } from \"./Completion\";\nexport class TObject extends SType {\n constructor(properties) {\n super();\n this.properties = properties;\n this.class = \"object\";\n this.completions = Object.keys(this.properties).map(p => ({ value: p, suggestion: { value: p } }));\n }\n complete(input, baseObject, type) {\n const tokens = typeof input == \"string\" ? this.tokenize(input) : input;\n let result;\n const filtered = this.filterByType(type);\n if (!baseObject) {\n const matched = tokens.length > 0 ? this.match(tokens[0], filtered) : undefined;\n if (matched)\n result =\n tokens.length >= 1\n ? Completion.prepend(matched.value, this.properties[matched.value].complete(tokens.slice(1), this, type))\n : [];\n else if (type && tokens.length > 2 && type.isType(tokens[0].value + tokens[1].value + tokens[2].value))\n result = Completion.prepend(tokens[0].value + tokens[1].value + tokens[2].value, type.complete(tokens.slice(3), this, type));\n else if (type && tokens.length > 0 && type.isType(tokens[0].value))\n result = Completion.prepend(tokens[0].value, type.complete(tokens.slice(1), this, type));\n else {\n let found;\n result =\n tokens.length == 0\n ? [...this.addDot(filtered, type), ...(type?.class == \"number\" ? [] : TObject.wildcard)]\n : tokens.length == 1 && (found = TObject.wildcard.find(w => w.value == tokens[0].value))\n ? Completion.prepend(found.value, this.completions, type ? \".\" : \"\")\n : tokens.length >= 1 && (found = TObject.wildcard.find(w => w.value == tokens[0].value))\n ? Completion.prepend(found.value, this.complete(tokens.slice(1)))\n : this.addDot(this.partial(tokens[0], filtered), type);\n }\n }\n else\n result =\n tokens.length == 0\n ? [{ value: \".\", suggestion: { value: \".\" } }]\n : tokens[0].value != \".\"\n ? []\n : tokens.length == 1\n ? Completion.prepend(\".\", this.addDot(filtered, type))\n : this.properties[tokens[1].value]\n ? Completion.prepend(\".\" + tokens[1].value, this.properties[tokens[1].value].complete(tokens.slice(2), baseObject, type))\n : Completion.prepend(\".\", this.addDot(this.partial(tokens[1], filtered), type));\n return [\n ...result.reduce((result, element) => result.some(p => p.value == element.value && p.cursor == element.cursor) ? result : [...result, element], []),\n ...TObject.completor.flatMap(p => p(tokens, this, baseObject)),\n ];\n }\n filterByType(type) {\n return type\n ? this.completions.filter(c => this.properties[c.value].class == type.class ||\n (this.properties[c.value].class == \"object\"\n ? this.properties[c.value].filterByType(type).length > 0\n : false))\n : this.completions;\n }\n addDot(completions, type) {\n return !completions\n ? []\n : type\n ? completions.map(c => this.properties[c.value].class == \"object\"\n ? { value: c.value + \".\", suggestion: { value: c.suggestion?.value + \".\" } }\n : c)\n : completions;\n }\n partial(token, completions) {\n const result = completions.filter(c => c.value.startsWith(token.value));\n return result && result.length > 0 ? result : undefined;\n }\n match(token, completions) {\n const result = completions.filter(c => c.value == token.value);\n return result && result.length > 0 ? result[0] : undefined;\n }\n isType(value) {\n return false;\n }\n static add(...completor) {\n this.completor.push(...completor);\n }\n}\nTObject.wildcard = [\n { value: \"!\", cursor: 1, suggestion: { value: \"!\", description: \"not\" } },\n];\nTObject.completor = [];\n//# sourceMappingURL=Object.js.map","import { Base as SType } from \"./Base\";\nimport { Completion } from \"./Completion\";\nexport class String extends SType {\n constructor(input) {\n super();\n this.class = \"string\";\n if (input)\n this.value = input;\n }\n complete(input, baseObject, type) {\n const tokens = typeof input == \"string\" ? this.tokenize(input) : input;\n let result;\n if (type)\n result = this.value?.startsWith(tokens[0]?.value ?? \"\")\n ? [{ value: this.value, suggestion: { value: this.value } }]\n : undefined;\n else\n result =\n tokens.length == 0 || tokens[0].value != \":\"\n ? undefined\n : this.value?.startsWith(tokens[1]?.value ?? \"\")\n ? [Completion.prepend(\":\", { value: this.value, suggestion: { value: this.value } })]\n : undefined;\n return [\n ...(result ?? []),\n ...(type ? [] : String.completor)\n .flatMap(p => p(tokens, this, baseObject))\n .reduce((result, element) => result.some(p => p.value == element.value && p.cursor == element.cursor) ? result : [...result, element], []),\n ];\n }\n isType(value) {\n return typeof value.value == \"string\";\n }\n static add(...pattern) {\n this.completor.push(...pattern);\n }\n static is(value) {\n return value instanceof String;\n }\n}\nString.completor = [];\n//# sourceMappingURL=String.js.map","import { Base as SType } from \"./Base\";\nexport class Union extends SType {\n constructor(type) {\n super();\n this.type = type;\n this.class = \"union\";\n }\n complete(input, baseObject, type) {\n const tokens = typeof input == \"string\" ? this.tokenize(input) : input;\n return this.type ? this.type?.flatMap(t => t?.complete(tokens, baseObject, type) ?? []) : [];\n }\n isType(value) {\n return value instanceof Union;\n }\n static is(value) {\n return value instanceof Union;\n }\n}\n//# sourceMappingURL=Union.js.map","import { Array as TArray } from \"./Array\";\nimport { Boolean as TBoolean } from \"./Boolean\";\nimport { Completion as TCompletion } from \"./Completion\";\nimport { Completor as TCompletor } from \"./Completor\";\nimport { Number as TNumber } from \"./Number\";\nimport { TObject } from \"./Object\";\nimport { String as TString } from \"./String\";\nimport { Union as TUnion } from \"./Union\";\nexport var Type;\n(function (Type) {\n function complete(template, input) {\n const completions = template.complete(input);\n return completions\n .filter(c => !input.includes(c.value) && c.suggestion?.value)\n .map(c => ({\n full: c.value,\n cursor: c?.cursor ?? c.value.length,\n addon: c?.suggestion?.value,\n description: c?.suggestion?.description,\n }));\n }\n Type.complete = complete;\n function convert(value) {\n let result;\n switch (typeof value) {\n case \"object\":\n result = global.Array.isArray(value)\n ? new TArray(value.map(e => convert(e)))\n : new TObject(global.Object.entries(value).reduce((r, c) => {\n return { ...r, [c[0]]: convert(c[1]) };\n }, {}));\n break;\n case \"string\":\n result = new TString(value);\n break;\n default:\n result = new TNumber(value);\n break;\n }\n return result;\n }\n Type.convert = convert;\n Type.Array = TArray;\n Type.Boolean = TBoolean;\n Type.Completion = TCompletion;\n Type.Object = TObject;\n Type.String = TString;\n Type.Number = TNumber;\n Type.Union = TUnion;\n Type.Completor = TCompletor;\n})(Type || (Type = {}));\n//# sourceMappingURL=index.js.map","import { Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nimport { Completor } from \"./Type/Completor\";\nexport class EndsWith extends Rule {\n constructor(needle) {\n super();\n this.needle = needle;\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"EndsWith\";\n }\n is(value) {\n return typeof value == \"string\" && value.endsWith(this.needle);\n }\n toString() {\n return `*${this.needle}`;\n }\n}\nexport function endsWith(needle, value) {\n const result = new EndsWith(needle);\n return value ? result.is(value) : result;\n}\nfunction complete(tokens, string) {\n return Completor.expressions(tokens, (tokens) => {\n return !tokens || (tokens[0].value == \"*\" && string.value && string.value.endsWith(tokens[1]?.value ?? \"\"))\n ? [Type.Completion.prepend(\"*\", { value: string?.value ?? \"\", suggestion: { value: string?.value ?? \"\" } })]\n : [];\n }, { value: \"*\", suggestion: { value: \"*\", description: \"endswith\" } });\n}\nType.String.add(complete);\n//# sourceMappingURL=EndsWith.js.map","import { create, Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nimport { Completor } from \"./Type/Completor\";\nexport class Every extends Rule {\n constructor(criteria) {\n super();\n this.criteria = criteria;\n this.precedence = 100;\n this.class = \"Every\";\n }\n is(value) {\n return Array.isArray(value) && value.every(v => this.criteria.is(v));\n }\n toString() {\n return `every(${this.criteria.toString()})`;\n }\n}\nexport function every(criteria, value) {\n const result = new Every(create(criteria));\n return value ? result.is(value) : result;\n}\nfunction complete(tokens, type) {\n const arrayArgumentor = (tokens) => type.array.some(Type.String.is) && tokens\n ? type.array\n .filter(Type.String.is)\n .map(p => p.complete([{ value: \":\" }, ...tokens]))\n .reduce((result, element) => Array.isArray(element) ? result.concat(element) : element ? [...result, element] : result, [])\n : !tokens && type.array.some(Type.String.is)\n ? type.array.filter(Type.String.is).map(e => ({ value: e?.value ?? \"\" }))\n : type.array.some(Type.Number.is) && tokens\n ? type.array\n .filter(Type.Number.is)\n .map(e => e.complete(tokens))\n .reduce((result, element) => Array.isArray(element) ? result.concat(element) : element ? [...result, element] : result, [])\n : !tokens && type.array.some(Type.Number.is)\n ? type.array.filter(Type.Number.is).map(e => ({ value: (e?.value ?? \"\").toString() }))\n : [];\n return Completor.functions(tokens, arrayArgumentor, {\n value: \"every()\",\n cursor: 6,\n suggestion: { value: \"every()\" },\n });\n}\nType.Array.add(complete);\n//# sourceMappingURL=Every.js.map","import { Rule } from \"./Rule\";\nexport class FunctionCall extends Rule {\n constructor(identifier, argument, definition) {\n super();\n this.identifier = identifier;\n this.argument = argument;\n this.definition = definition;\n this.precedence = 85;\n this.class = \"FunctionCall\";\n }\n is(value) {\n return this.definition?.is(value) ?? true;\n }\n toString() {\n return `${this.identifier}(${this.argument.join(\", \")})`;\n }\n}\nexport function isType(value) {\n return typeof value == \"object\" && value?.class == \"FunctionCall\";\n}\n//# sourceMappingURL=FunctionCall.js.map","export class Expression {\n stringify(precedence = 0) {\n let result = this.toString();\n if (this.precedence < precedence)\n result = \"(\" + result + \")\";\n return result;\n }\n}\n//# sourceMappingURL=Expression.js.map","import { Expression } from \"./Expression\";\nexport class Value extends Expression {\n constructor(value, name) {\n super();\n this.name = name;\n this.precedence = Value.precedence;\n this.class = \"Value\";\n if (typeof value == \"string\")\n this.value = isNaN(+value.replace(\",\", \".\")) ? value : +value.replace(\",\", \".\");\n else\n this.value = value;\n }\n toString() {\n return this.name ? `${this.name?.toString()}.` + this.value.toString() : this.value.toString();\n }\n evaluate(variable) {\n return variable ? this.get(variable) : +this.value;\n }\n get(variable) {\n return typeof this.value == \"string\"\n ? +variable[this.value]\n : this.name && typeof this.value == \"object\"\n ? this.value.get(variable[this.name])\n : +this.value;\n }\n static create(value, name) {\n return new Value(value, name);\n }\n}\nValue.precedence = 19;\n//# sourceMappingURL=Value.js.map","import { Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nimport { Value } from \"./Value\";\nexport class GreaterThan extends Rule {\n constructor(value) {\n super();\n this.value = value;\n this.precedence = 85;\n this.class = \"GreaterThan\";\n this.symbol = \">\";\n }\n is(value, object) {\n return ((isNaN(+value) ? value : +value) >\n ((this.value instanceof Value && typeof this.value.value == \"string\" && this.value.value.includes(\"-\")) ||\n typeof this.value != \"object\"\n ? this.value\n : this.value.evaluate(object)));\n }\n toString() {\n return this.value.toString();\n }\n}\nexport function greaterThan(criteria, value) {\n const result = new GreaterThan(criteria);\n return value ? result.is(value) : result;\n}\nfunction complete(tokens, type, baseObject) {\n return Type.Completor.operators(tokens, (tokens) => (tokens && baseObject ? baseObject?.complete(tokens, undefined, type) : []), {\n value: \">\",\n suggestion: { value: \">\" },\n });\n}\nType.Number.add(complete);\nType.String.add(complete);\n//# sourceMappingURL=GreaterThan.js.map","import { Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nimport { Value } from \"./Value\";\nexport class GreaterThanOrEqual extends Rule {\n constructor(value) {\n super();\n this.value = value;\n this.precedence = 85;\n this.class = \"GreaterThanOrEqual\";\n this.symbol = \">=\";\n }\n is(value, object) {\n return ((isNaN(+value) ? value : +value) >=\n ((this.value instanceof Value && typeof this.value.value == \"string\" && this.value.value.includes(\"-\")) ||\n typeof this.value != \"object\"\n ? this.value\n : this.value.evaluate(object)));\n }\n toString() {\n return this.value.toString();\n }\n}\nexport function greaterThanOrEqual(criteria, value) {\n const result = new GreaterThanOrEqual(criteria);\n return value ? result.is(value) : result;\n}\nfunction complete(tokens, type, baseObject) {\n return Type.Completor.operators(tokens, (tokens) => (tokens && baseObject ? baseObject?.complete(tokens, undefined, type) : []), {\n value: \">=\",\n suggestion: { value: \">=\" },\n });\n}\nType.Number.add(complete);\nType.String.add(complete);\n//# sourceMappingURL=GreaterThanOrEqual.js.map","import { Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nimport { Completor } from \"./Type/Completor\";\nexport class Has extends Rule {\n constructor(property) {\n super();\n this.property = property;\n this.precedence = 85;\n this.class = \"Has\";\n }\n is(value, property) {\n return typeof value == \"object\" && value\n ? Object.entries(value).some(e => {\n property = typeof property == \"string\" ? property : this.property;\n return e[0] == property\n ? true\n : typeof e[1] == \"object\" && e[1]\n ? this.is(e[1], property.includes(\".\") && property.split(\".\")[0] == e[0] ? property.split(\".\")[1] : undefined)\n : false;\n })\n : false;\n }\n toString() {\n return `has(${this.property})`;\n }\n}\nexport function has(criteria, value) {\n const result = new Has(criteria);\n return value ? result.is(value) : result;\n}\nfunction complete(tokens, type, baseObject) {\n return baseObject && type?.class == \"object\"\n ? Completor.functions(tokens, (tokens) => type.completions.filter(c => c.value.startsWith(tokens ? tokens[0].value : \"\")), {\n value: \"has()\",\n cursor: 4,\n suggestion: { value: \"has()\" },\n })\n : [];\n}\nType.Object.add(complete);\n//# sourceMappingURL=Has.js.map","import { Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nimport { Completor } from \"./Type/Completor\";\nexport class Includes extends Rule {\n constructor(needle) {\n super();\n this.needle = needle;\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"Includes\";\n }\n is(value) {\n return typeof value == \"string\" && value.includes(this.needle);\n }\n toString() {\n return `*${this.needle}*`;\n }\n}\nexport function includes(needle, value) {\n const result = new Includes(needle);\n return value ? result.is(value) : result;\n}\nfunction complete(tokens, string) {\n return Completor.expressions(tokens, (tokens) => {\n return !tokens ||\n (tokens.length == 3 && string.value?.includes(tokens[1].value) && string.value != tokens[1].value) ||\n (tokens.length == 2 && tokens[0].value + tokens[1].value == \"**\")\n ? [\n Type.Completion.prepend(\"*\", { value: string?.value ?? \"\", suggestion: { value: string?.value ?? \"\" } }, \"*\"),\n ]\n : tokens.length == 1 && tokens[0].value == \"*\"\n ? [{ value: \"**\", suggestion: { value: \"**\", description: \"includes\" } }]\n : [];\n }, { value: \"**\", cursor: 1, suggestion: { value: \"**\", description: \"includes\" } });\n}\nType.String.add(complete);\n//# sourceMappingURL=Includes.js.map","import { create, Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nexport class Some extends Rule {\n constructor(criteria) {\n super();\n this.criteria = criteria;\n this.precedence = 100;\n this.class = \"Some\";\n }\n is(value, object) {\n return Array.isArray(value) && value.some(v => this.criteria.is(v, object));\n }\n toString() {\n return `some(${this.criteria.toString()})`;\n }\n}\nexport function some(criteria, value) {\n const result = new Some(create(criteria));\n return value ? result.is(value) : result;\n}\nfunction complete(tokens, type, baseObject) {\n return tokens.length == 0\n ? [{ value: \":\", suggestion: { value: \":\" } }]\n : tokens[0].value != \":\"\n ? []\n : tokens.length == 1 && tokens[0].value == \":\"\n ? Type.Completion.prepend(\":\", type.array\n .filter(Type.String.is)\n .filter(e => e.value && e.value != \"string\")\n .map(e => ({ value: e?.value ?? \"\", suggestion: { value: e?.value ?? \"\" } })))\n : tokens.length == 2 && tokens[0].value == \":\"\n ? Type.Completion.prepend(\":\", type.array\n .filter(Type.String.is)\n .filter(e => e.value && e.value != \"string\" && e.value.startsWith(tokens[1].value))\n .map(e => ({ value: e?.value ?? \"\", suggestion: { value: e?.value ?? \"\" } })))\n : [];\n}\nType.Array.add(complete);\n//# sourceMappingURL=Some.js.map","import { isCriteria } from \"./Criteria\";\nimport { add, Rule } from \"./Rule\";\nimport { some } from \"./Some\";\nexport class Is extends Rule {\n constructor(value) {\n super();\n this.value = value;\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"Is\";\n this.symbol = \":\";\n }\n is(value, object) {\n return Array.isArray(value) && isCriteria(this.value)\n ? some(this.value, value)\n : (typeof value == \"boolean\" ? value.toString() : isNaN(+value) ? value : +value) ==\n (typeof this.value == \"object\" ? this.value.evaluate(object) : this.value);\n }\n toString() {\n return this.value.toString();\n }\n}\nexport function is(criteria, value) {\n const result = new Is(criteria);\n return value ? result.is(value) : result;\n}\nadd(criteria => typeof criteria == \"bigint\" ||\n typeof criteria == \"boolean\" ||\n typeof criteria == \"number\" ||\n typeof criteria == \"string\"\n ? new Is(criteria)\n : undefined);\n//# sourceMappingURL=Is.js.map","import { Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nimport { Value } from \"./Value\";\nexport class LesserThan extends Rule {\n constructor(value) {\n super();\n this.value = value;\n this.precedence = 85;\n this.class = \"LesserThan\";\n this.symbol = \"<\";\n }\n is(value, object) {\n return ((isNaN(+value) ? value : +value) <\n ((this.value instanceof Value && typeof this.value.value == \"string\" && this.value.value.includes(\"-\")) ||\n typeof this.value != \"object\"\n ? this.value\n : this.value.evaluate(object)));\n }\n toString() {\n return this.value.toString();\n }\n}\nexport function lesserThan(criteria, value) {\n const result = new LesserThan(criteria);\n return value ? result.is(value) : result;\n}\nfunction complete(tokens, type, baseObject) {\n return Type.Completor.operators(tokens, (tokens) => (tokens && baseObject ? baseObject?.complete(tokens, undefined, type) : []), {\n value: \"<\",\n suggestion: { value: \"<\" },\n });\n}\nType.Number.add(complete);\nType.String.add(complete);\n//# sourceMappingURL=LesserThan.js.map","import { Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nimport { Value } from \"./Value\";\nexport class LesserThanOrEqual extends Rule {\n constructor(value) {\n super();\n this.value = value;\n this.precedence = 85;\n this.class = \"LesserThanOrEqual\";\n this.symbol = \"<=\";\n }\n is(value, object) {\n return ((isNaN(+value) ? value : +value) <=\n ((this.value instanceof Value && typeof this.value.value == \"string\" && this.value.value.includes(\"-\")) ||\n typeof this.value != \"object\"\n ? this.value\n : this.value.evaluate(object)));\n }\n toString() {\n return this.value.toString();\n }\n}\nexport function lesserThanOrEqual(criteria, value) {\n const result = new LesserThanOrEqual(criteria);\n return value ? result.is(value) : result;\n}\nfunction complete(tokens, type, baseObject) {\n return Type.Completor.operators(tokens, (tokens) => (tokens && baseObject ? baseObject?.complete(tokens, undefined, type) : []), {\n value: \"<=\",\n suggestion: { value: \"<=\" },\n });\n}\nType.Number.add(complete);\nType.String.add(complete);\n//# sourceMappingURL=LesserThanOrEqual.js.map","import { Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nimport { Completor } from \"./Type/Completor\";\nexport class Match extends Rule {\n constructor(criteria) {\n super();\n this.criteria = criteria;\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"Match\";\n }\n is(value) {\n return typeof value == \"string\" && this.criteria.test(value);\n }\n toString() {\n return `/${this.criteria}/`;\n }\n}\nexport function match(criteria) {\n return new Match(criteria);\n}\nfunction complete(tokens, string) {\n return Completor.expressions(tokens, (tokens) => {\n return tokens && tokens?.length == 1 && tokens[0].value == \"/\" ? [{ value: \"//\", cursor: 1 }] : [];\n }, { value: \"//\", cursor: 1, suggestion: { value: \"//\", description: \"match\" } });\n}\nType.String.add(complete);\n//# sourceMappingURL=Match.js.map","import { create, Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nimport { Completor } from \"./Type/Completor\";\nexport class Not extends Rule {\n constructor(criteria) {\n super();\n this.criteria = criteria;\n this.precedence = Not.precedence;\n this.class = \"Not\";\n }\n is(value) {\n return !this.criteria.is(value);\n }\n toString() {\n return `!${this.criteria.stringify(this.precedence)}`;\n }\n}\nNot.precedence = 90;\nexport function not(criteria, value) {\n const result = new Not(create(criteria));\n return value ? result.is(value) : result;\n}\nfunction complete(tokens, type, baseObject) {\n return type && type.class != \"object\" && baseObject\n ? Completor.expressions(tokens, (tokens) => {\n return tokens[0].value != \"!\"\n ? []\n : Type.Completion.prepend(\"!\", type.complete(tokens.slice(1), baseObject, type));\n }, { value: \"!\", cursor: 1, suggestion: { value: \"!\", description: \"not\" } })\n : [];\n}\nType.String.add(complete);\nType.Number.add(complete);\nType.Boolean.add(complete);\nType.Object.add(complete);\n//# sourceMappingURL=Not.js.map","import { create, Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nexport class Or extends Rule {\n constructor(criterias) {\n super();\n this.precedence = Or.precedence;\n this.class = \"Or\";\n this.criteria = criterias.reduce((r, c) => (c instanceof Or ? [...r, ...c.criteria] : [...r, c]), []);\n }\n is(value) {\n return this.criteria.some(c => c.is(value));\n }\n toString() {\n return this.criteria.map(c => c.stringify(this.precedence)).join(\" | \");\n }\n}\nOr.precedence = 30;\nexport function or(...criterias) {\n return new Or(criterias.map(create));\n}\nfunction complete(tokens, type, baseObject) {\n return Type.Completor.operators(tokens, (tokens) => (tokens && baseObject ? baseObject?.complete(tokens, undefined, undefined) : []), {\n value: \" | \",\n suggestion: { value: \"|\", description: \"or\" },\n });\n}\nType.Number.addArgument(complete);\n//# sourceMappingURL=Or.js.map","import { Error, Utilities } from \"@cogneco/mend\";\nexport class Source extends Utilities.BufferedEnumerator {\n constructor(tokens, errorHandler) {\n super(Array.isArray(tokens) ? new Utilities.ArrayEnumerator(tokens) : tokens);\n this.errorHandler = errorHandler;\n }\n clone(start = \"(\", end = \")\") {\n let nestingCount = 0;\n return new Source(new Utilities.Enumerator(() => {\n let result;\n if (this.peekIs(start))\n nestingCount++;\n else if (this.peekIs(end))\n nestingCount--;\n if (nestingCount >= 0)\n result = this.fetch();\n return result;\n }), this);\n }\n peekIs(...needles) {\n return needles.every((needle, index) => {\n const peeked = this.peek(index);\n return peeked && peeked.value && Source.is(needle, peeked.value);\n });\n }\n fetchIf(...needles) {\n const result = [];\n if (this.peekIs(...needles))\n needles.forEach(_ => result.push(this.fetch()));\n return needles.length == 1\n ? result.length == 1\n ? result[0]\n : undefined\n : needles.length == result.length\n ? result\n : undefined;\n }\n mark() {\n return Utilities.Enumerable.from(Utilities.Enumerable.empty);\n }\n raise(message, level = Error.Level.Critical, type = \"grammatical\", region) {\n if (typeof message == \"string\") {\n if (!region && this.last)\n region = this.last.region;\n message = new Error.Message(message, level, type, region);\n }\n this.errorHandler.raise(message);\n }\n static is(needle, value) {\n return Array.isArray(needle)\n ? needle.some(n => Source.is(n, value))\n : typeof needle != \"string\"\n ? needle.test(value)\n : needle.startsWith(\"!\") && needle != \"!\"\n ? !Source.is(needle.substring(1), value)\n : needle == \"any\"\n ? Source.symbol.every(s => s != value)\n : needle == \"symbol\"\n ? Source.symbol.some(s => s == value)\n : needle == \"identifier\"\n ? /[A-Za-z][A-Za-z0-9_]*/.test(value)\n : needle == value;\n }\n}\nSource.wildcard = [\"*\", \"?\"];\nSource.separator = [\"(\", \")\", \".\"];\nSource.operator = [\"!\", \"|\"];\nSource.comparator = [\"<\", \"<=\", \">\", \">=\", \":\"];\nSource.binaryOperator = [\" * \", \" + \", \" - \"];\nSource.symbol = [...Source.wildcard, ...Source.separator, ...Source.operator, ...Source.comparator];\n//# sourceMappingURL=Source.js.map","import { Error } from \"@cogneco/mend\";\nimport { And } from \"../And\";\nimport * as lexer from \"../lexer\";\nimport { Or } from \"../Or\";\nimport { Rule } from \"../Rule\";\nimport { Source } from \"./Source\";\nexport function parse(source, handler) {\n if (typeof source == \"string\") {\n handler = handler || new Error.ConsoleHandler();\n const tokens = lexer.tokenize(source, handler).toArray();\n source = new Source(tokens, handler);\n }\n handler = handler instanceof Rule ? handler : undefined;\n const result = [];\n while (source.peek()) {\n if (source.fetchIf(\"|\"))\n result[result.length - 1] = new Or([result[result.length - 1], parseNext(0, source)]);\n else\n result.push(parseNext(0, source));\n }\n return result.length == 1 ? result[0] : new And(result);\n}\nexport function parseNext(previous, source) {\n let result;\n const precedenceTest = typeof previous == \"number\" ? p => previous < p : p => previous.precedence > p;\n const left = typeof previous == \"number\" ? undefined : previous;\n for (const parser of parsers)\n if (precedenceTest(parser[1] || Number.MAX_SAFE_INTEGER)) {\n const r = parser[0](source, left);\n if (r) {\n result = parseNext(r, source);\n break;\n }\n }\n return result || left || new And([]);\n}\nconst parsers = [];\nexport function add(parser, precedence) {\n parsers.push([parser, precedence]);\n}\n//# sourceMappingURL=parse.js.map","import { Error } from \"@cogneco/mend\";\nimport { Expression } from \"../Expression\";\nimport * as lexer from \"../lexer\";\nimport { Value } from \"../Value\";\nimport { Source } from \"./Source\";\nexport function parseExpression(source, handler) {\n if (typeof source == \"string\") {\n handler = handler || new Error.ConsoleHandler();\n const tokens = lexer.tokenize(source, handler).toArray();\n source = new Source(tokens, handler);\n }\n handler = handler instanceof Expression ? handler : undefined;\n let result;\n let algebra = false;\n let comparator = false;\n while (!result != algebra && !comparator && source.peek()) {\n let i = 1;\n algebra = false;\n comparator = false;\n while (!algebra && !comparator && source.peek(i)) {\n algebra = Source.binaryOperator.some(c => source.peek(i)?.value == c);\n comparator = Source.comparator.some(c => source.peek(i)?.value == c);\n i++;\n }\n result = parseNextExpression(result ?? Number.MAX_SAFE_INTEGER, source);\n }\n if (!result)\n source.raise(\"Missing Expression\");\n return result ?? new Value(NaN);\n}\nexport function parseNextExpression(previous, source) {\n let result;\n const left = typeof previous == \"number\" ? undefined : previous;\n for (const expressionParser of expressionParsers) {\n const r = expressionParser[0](source, previous);\n if (r) {\n result = r;\n break;\n }\n }\n return result || left;\n}\nconst expressionParsers = [];\nexport function addExpression(expressionParser, precedence) {\n expressionParsers.push([expressionParser, precedence]);\n}\n//# sourceMappingURL=Expression.js.map","import { Every } from \"../Every\";\nimport { add, parse } from \"./parse\";\nadd(source => {\n const result = source.fetchIf(\":\", \"every\", \"(\") && new Every(parse(source.clone()));\n if (result && !source.fetchIf(\")\"))\n source.raise(\"Missing end of parenthesis.\");\n return result;\n});\n//# sourceMappingURL=Every.js.map","import { Some } from \"../Some\";\nimport { add, parse } from \"./parse\";\nadd(source => {\n const result = source.fetchIf(\":\", \"some\", \"(\") && new Some(parse(source.clone()));\n if (result && !source.fetchIf(\")\"))\n source.raise(\"Missing end of parenthesis.\");\n return result;\n});\n//# sourceMappingURL=Some.js.map","import { addExpression, parseExpression } from \"./Expression\";\nimport { add, parse } from \"./parse\";\nadd(getAdder(parse));\naddExpression(getAdder(parseExpression));\nfunction getAdder(parser) {\n return (source) => {\n const result = source.fetchIf(\"(\") && parser(source.clone());\n if (result && !source.fetchIf(\")\"))\n source.raise(\"Missing end of parenthesis.\");\n return result;\n };\n}\n//# sourceMappingURL=group.js.map","import { GreaterThan } from \"../GreaterThan\";\nimport { parseExpression } from \"./Expression\";\nimport { add } from \"./parse\";\nadd(source => {\n return source.fetchIf(\">\") && new GreaterThan(parseExpression(source));\n});\n//# sourceMappingURL=GreaterThan.js.map","import { GreaterThanOrEqual } from \"../GreaterThanOrEqual\";\nimport { parseExpression } from \"./Expression\";\nimport { add } from \"./parse\";\nadd(source => {\n return source.fetchIf(\">=\") && new GreaterThanOrEqual(parseExpression(source));\n});\n//# sourceMappingURL=GreaterThanOrEqual.js.map","import { LesserThan } from \"../LesserThan\";\nimport { parseExpression } from \"./Expression\";\nimport { add } from \"./parse\";\nadd(source => {\n return source.fetchIf(\"<\") && new LesserThan(parseExpression(source));\n});\n//# sourceMappingURL=LesserThan.js.map","import { LesserThanOrEqual } from \"../LesserThanOrEqual\";\nimport { parseExpression } from \"./Expression\";\nimport { add } from \"./parse\";\nadd(source => {\n return source.fetchIf(\"<=\") && new LesserThanOrEqual(parseExpression(source));\n});\n//# sourceMappingURL=LesserThanOrEqual.js.map","import { Not } from \"../Not\";\nimport { add, parseNext } from \"./parse\";\nadd(source => source.fetchIf(\"!\") && new Not(parseNext(Not.precedence, source)));\n//# sourceMappingURL=Not.js.map","import { Has } from \"../Has\";\nimport { add } from \"./parse\";\nadd(source => {\n const fetched = source.fetchIf(\"has\", \"(\", \"any\", \")\") || source.fetchIf(\":\", \"has\", \"(\", \"any\", \")\");\n return fetched && new Has(fetched.length == 4 ? fetched[2].value : fetched[3].value);\n});\n//# sourceMappingURL=Has.js.map","import { Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nimport { Completor } from \"./Type/Completor\";\nexport class Within extends Rule {\n constructor(value) {\n super();\n this.value = value;\n this.precedence = 85;\n this.class = \"Within\";\n }\n is(value) {\n return this.value.includes(value);\n }\n toString() {\n return `within(${this.value.join(\", \")})`;\n }\n}\nexport function within(criteria, value) {\n const result = new Within(criteria);\n return value ? result.is(value) : result;\n}\nfunction complete(tokens, type, baseObject) {\n return baseObject && type?.class\n ? Completor.functions(tokens, (tokens) => [], {\n value: \"within()\",\n cursor: 7,\n suggestion: { value: \"within()\" },\n })\n : [];\n}\nType.String.add(complete);\nType.Number.add(complete);\n//# sourceMappingURL=Within.js.map","import { Within } from \"../Within\";\nimport { add } from \"./parse\";\nadd(source => {\n const fetched = source.fetchIf(\":\", \"within\", \"(\");\n let parameters;\n if (fetched && source.peek()) {\n parameters = [source.fetch()?.value ?? \"\"];\n while (source.fetchIf(\",\"))\n parameters.push(source.fetchIf(\"any\")?.value ?? \"\");\n if (!source.fetchIf(\")\"))\n source.raise(\"Missing end of parenthesis.\");\n }\n return fetched && parameters ? new Within(parameters) : undefined;\n});\n//# sourceMappingURL=Within.js.map","import { Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nimport { Completor } from \"./Type/Completor\";\nexport class Contains extends Rule {\n constructor(criteria) {\n super();\n this.criteria = criteria;\n this.precedence = 85;\n this.class = \"Contains\";\n }\n is(value, object) {\n return Array.isArray(value) && this.criteria.every(c => value.some(v => c == v));\n }\n toString() {\n return `contains(${this.criteria.join(\", \")})`;\n }\n}\nexport function contains(criteria, value) {\n const result = new Contains(criteria);\n return value ? result.is(value) : result;\n}\nfunction complete(tokens, type, baseObject) {\n return Completor.functions(tokens, () => [], {\n value: \"contains()\",\n cursor: 9,\n suggestion: { value: \"contains()\" },\n });\n}\nType.Array.add(complete);\n//# sourceMappingURL=Contains.js.map","import { Contains } from \"../Contains\";\nimport { add } from \"./parse\";\nadd(source => {\n const fetched = source.fetchIf(\":\", \"contains\", \"(\");\n const parameters = [];\n if (fetched && source.peek()) {\n do {\n parameters.push(source.fetchIf(\"any\")?.value ?? \"\");\n } while (source.fetchIf(\",\"));\n if (!source.fetchIf(\")\"))\n source.raise(\"Missing end of parenthesis.\");\n }\n return fetched && parameters.length > 0 ? new Contains(parameters) : undefined;\n});\n//# sourceMappingURL=Contains.js.map","import { FunctionCall } from \"../FunctionCall\";\nimport { add } from \"./parse\";\nadd(source => {\n const peek = source.peek(3)?.value;\n const fetched = [\")\", \",\", \"(\"].find(s => s == peek) || source.peek(2)?.value == \")\" ? source.fetchIf(\"identifier\", \"(\") : undefined;\n let parameters;\n if (fetched && source.peek()) {\n parameters = [source.fetchIf(/[A-Za-z0-9_\\.\\-]+/)?.value ?? \"\"];\n while (source.fetchIf(\",\"))\n parameters.push(source.fetchIf(/[A-Za-z0-9_\\.\\-]+/)?.value ?? \"\");\n if (!source.fetchIf(\")\"))\n source.raise(\"Missing end of parenthesis.\");\n }\n return fetched && parameters ? new FunctionCall(fetched[0].value, parameters) : undefined;\n});\n//# sourceMappingURL=FunctionCall.js.map","import { and } from \"./And\";\nimport { add, create, Rule } from \"./Rule\";\nexport class Property extends Rule {\n constructor(name, criteria) {\n super();\n this.name = name;\n this.criteria = criteria;\n this.precedence = Property.precedence;\n this.class = \"Property\";\n this.symbol = \".\";\n }\n is(value, object) {\n return !this.criteria\n ? value == object?.[this.name]\n : typeof value == \"object\"\n ? this.criteria.is(value[this.name], object ?? value)\n : this.criteria.is(value, object?.[this.name]);\n }\n toString() {\n return `${this.name}${this.criteria ? this.criteria.symbol ?? \":\" : \"\"}${this.criteria?.stringify(this.precedence) ?? \"\"}`;\n }\n}\nProperty.precedence = 80;\nexport function property(name, criteria, value) {\n const result = (Array.isArray(name) ? name : [name]).reduceRight((r, p) => new Property(p, r), create(criteria));\n return value ? result.is(value) : result;\n}\nadd(criteria => typeof criteria == \"object\" && !(criteria instanceof Rule) && !Array.isArray(criteria)\n ? and(...Object.getOwnPropertyNames(criteria).map(p => property(p, criteria[p])))\n : undefined);\n//# sourceMappingURL=Property.js.map","import { Property } from \"../Property\";\nimport { add, parseNext } from \"./parse\";\nimport { Source } from \"./Source\";\nadd(source => {\n const result = [];\n let fetched;\n while ((fetched = source.fetchIf(\"identifier\", \".\")))\n result.push(fetched[0].value);\n if (source.peekIs(\"identifier\", Source.comparator) && (fetched = source.fetchIf(\"identifier\")))\n result.push(fetched.value);\n return result.length > 0\n ? result.reduceRight((r, name) => new Property(name, r), source.peekIs(\"identifier\") && (fetched = source.fetchIf(\"identifier\"))\n ? new Property(fetched.value)\n : parseNext(Property.precedence, source))\n : undefined;\n});\n//# sourceMappingURL=Property.js.map","import { Includes } from \"../Includes\";\nimport { add } from \"./parse\";\nadd(source => {\n const fetched = source.fetchIf(\":\", \"*\", \"any\", \"*\") || source.fetchIf(\"*\", \"any\", \"*\");\n return fetched && new Includes(fetched.length == 4 ? fetched[2].value : fetched[1].value);\n});\n//# sourceMappingURL=Includes.js.map","import { Rule } from \"./Rule\";\nimport { Type } from \"./Type\";\nimport { Completor } from \"./Type/Completor\";\nexport class StartsWith extends Rule {\n constructor(needle) {\n super();\n this.needle = needle;\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"StartsWith\";\n }\n is(value) {\n return typeof value == \"string\" && value.startsWith(this.needle);\n }\n toString() {\n return `${this.needle}*`;\n }\n}\nexport function startsWith(needle, value) {\n const result = new StartsWith(needle);\n return value ? result.is(value) : result;\n}\nfunction complete(tokens, string) {\n return Completor.expressions(tokens, (tokens) => {\n return !tokens ||\n (tokens.length == 1 && tokens[0].value == \"*\") ||\n (tokens.length == 2 &&\n tokens[1].value == \"*\" &&\n string.value &&\n string.value.startsWith(tokens[0]?.value ?? \"\"))\n ? [Type.Completion.prepend(\"\", { value: string?.value ?? \"\", suggestion: { value: string?.value ?? \"\" } }, \"*\")]\n : [];\n }, { value: \"*\", cursor: 0, suggestion: { value: \"*\", description: \"startswith\" } });\n}\nType.String.add(complete);\n//# sourceMappingURL=StartsWith.js.map","import { StartsWith } from \"../StartsWith\";\nimport { add } from \"./parse\";\nadd(source => {\n const fetched = source.fetchIf(\":\", \"any\", \"*\") || source.fetchIf(\"any\", \"*\");\n return fetched && new StartsWith(fetched?.length == 3 ? fetched[1].value : fetched[0].value);\n});\n//# sourceMappingURL=StartsWith.js.map","import { EndsWith } from \"../EndsWith\";\nimport { add } from \"./parse\";\nadd(source => {\n const fetched = source.fetchIf(\":\", \"*\", \"any\") || source.fetchIf(\"*\", \"any\");\n return fetched && new EndsWith(fetched?.length == 3 ? fetched[2].value : fetched[1].value);\n});\n//# sourceMappingURL=EndsWith.js.map","import { Expression } from \"./Expression\";\nimport { Type } from \"./Type\";\nexport class InfixOperator extends Expression {\n toString() {\n const symbol = this.symbol;\n return (this.left.stringify(InfixOperator.getPrecedence(symbol)) +\n ` ${symbol} ` +\n this.right.stringify(InfixOperator.getPrecedence(symbol)));\n }\n constructor(symbol, precedence, left, right) {\n super();\n this.precedence = precedence;\n this.left = left;\n this.right = right;\n this.class = \"InfixOperator\";\n this.symbol = symbol.replace(/ /g, \"\");\n }\n evaluate(criteria) {\n let result;\n switch (this.getSymbol()) {\n case \"+\":\n result = this.left.evaluate(criteria) + this.right.evaluate(criteria);\n break;\n case \"-\":\n result = this.left.evaluate(criteria) - this.right.evaluate(criteria);\n break;\n case \"*\":\n result = this.left.evaluate(criteria) * this.right.evaluate(criteria);\n break;\n default:\n result = NaN;\n break;\n }\n return result;\n }\n getSymbol() {\n return this.symbol;\n }\n stringify(precedence = 0) {\n let result = this.toString();\n if (this.precedence < precedence)\n result = \"(\" + result + \")\";\n return result;\n }\n static getPrecedence(symbol) {\n let result;\n symbol = symbol?.replace(/ /g, \"\");\n switch (symbol) {\n case \"+\":\n result = 14;\n break;\n case \"-\":\n result = 15;\n break;\n case \"*\":\n result = 16;\n break;\n default:\n result = undefined;\n break;\n }\n return result;\n }\n static create(symbol, left, right) {\n let result;\n const fallback = new InfixOperator(\"+\", 14, left, right);\n const precedence = InfixOperator.getPrecedence(symbol);\n if (precedence)\n result = new InfixOperator(symbol, precedence, left, right);\n return result || fallback;\n }\n}\nfunction complete(tokens, type, baseObject) {\n return [\" + \", \" - \", \" * \"]\n .map(s => ({ value: s, suggestion: { value: s } }))\n .map(c => Type.Completor.operators(tokens, (tokens) => (tokens ? baseObject.complete(tokens, undefined, type) : []), c))\n .reduce((result, element) => result.concat(element), []);\n}\nType.Number.addArgument(complete);\n//# sourceMappingURL=InfixOperator.js.map","import { InfixOperator } from \"../InfixOperator\";\nimport { addExpression, parseNextExpression } from \"./Expression\";\nimport { Source } from \"./Source\";\naddExpression((source, previous) => {\n let result;\n const symbol = source.peekIs(Source.binaryOperator) && source.fetch().value;\n let precedence;\n if (symbol && typeof previous == \"object\") {\n let right;\n let nextPrecedence;\n let i = 0;\n precedence = InfixOperator.getPrecedence(symbol);\n while (!nextPrecedence && source.peek(i)) {\n nextPrecedence =\n source.peek(i)?.value == \"(\" ? Number.MAX_SAFE_INTEGER : InfixOperator.getPrecedence(source.peek(i)?.value);\n i++;\n }\n if (nextPrecedence && precedence < nextPrecedence) {\n right = parseNextExpression(precedence, source);\n if (!right) {\n source.raise(\"Missing right hand side of \" + symbol);\n }\n }\n else\n right = parseNextExpression(NaN, source);\n if ((nextPrecedence && precedence == nextPrecedence) || nextPrecedence == Number.MAX_SAFE_INTEGER) {\n result = parseNextExpression(new InfixOperator(symbol, precedence, previous, right), source);\n }\n else\n result = new InfixOperator(symbol, precedence, previous, right);\n }\n return result;\n});\n//# sourceMappingURL=InfixOperator.js.map","import { Value } from \"../Value\";\nimport { addExpression, parseNextExpression } from \"./Expression\";\naddExpression((source, previous) => {\n const fetchedArray = [];\n let fetched;\n while ((fetched = source.fetchIf(\"identifier\", \".\")))\n fetchedArray.push(fetched[0].value);\n let result;\n if (fetchedArray.length == 0) {\n fetched = source.fetchIf(\"any\", \".\", \"any\") || source.fetchIf(\"any\", \",\", \"any\") || source.fetchIf(\"any\");\n result =\n fetched &&\n (Array.isArray(fetched)\n ? new Value(+fetched.map(t => t.value.replace(\",\", \".\")).join(\"\"))\n : new Value(fetched.value));\n }\n else {\n fetched = source.fetchIf(\"identifier\");\n const fetchedValue = new Value(fetched ? fetched.value : 0);\n result =\n fetchedArray.length > 0\n ? fetchedArray.reduceRight((r, name) => new Value(isNaN(+r) ? r : +r, name), fetchedValue)\n : undefined;\n }\n if (result && typeof previous == \"number\" && !isNaN(previous) && previous != Number.MAX_SAFE_INTEGER)\n result = parseNextExpression(result, source);\n return result;\n});\n//# sourceMappingURL=Value.js.map","import { Is } from \"../Is\";\nimport { parseExpression } from \"./Expression\";\nimport { add } from \"./parse\";\nimport { Source } from \"./Source\";\nadd(source => {\n let expression;\n if (source.fetchIf(\":\")) {\n let algebra = false;\n let comparator = false;\n let i = 1;\n while (!algebra && !comparator && source.peek(i)) {\n algebra = Source.binaryOperator.some(c => source.peek(i)?.value == c);\n comparator = Source.comparator.some(c => source.peek(i)?.value == c);\n i++;\n }\n if (algebra)\n expression = parseExpression(source);\n }\n const fetched = source.fetchIf(\"any\");\n return expression ? new Is(expression) : fetched && new Is(fetched.value);\n});\n//# sourceMappingURL=Is.js.map","import { add } from \"./parse\";\nadd(source => {\n source.raise(`Ignoring unknown token \"${source.fetch()}\"`);\n return undefined;\n});\n//# sourceMappingURL=ignore.js.map","export function resolve(definitions, rule, argument = { input: [], identifier: [] }) {\n return resolvers[rule?.class]?.(definitions, rule, argument) ?? rule;\n}\nconst resolvers = {};\nexport function add(className, resolver) {\n resolvers[className] = resolver;\n}\n//# sourceMappingURL=resolve.js.map","import { And } from \"../And\";\nimport { add, resolve } from \"./resolve\";\nadd(\"And\", (definitions, rule, argument) => new And(rule.rules.map(r => resolve(definitions, r, argument))));\n//# sourceMappingURL=And.js.map","export var replace;\n(function (replace) {\n function argument(value, argument) {\n let result = undefined;\n let index;\n const parameter = typeof value == \"string\" ? value : value.toString();\n if (argument &&\n argument.input &&\n argument.identifier &&\n argument?.input?.length > 0 &&\n argument?.identifier?.length > 0 &&\n argument.identifier.includes(parameter)) {\n index = argument.identifier.indexOf(parameter);\n result = isNaN(+argument.input[index]) ? argument.input[index] : +argument.input[index];\n }\n return result;\n }\n replace.argument = argument;\n})(replace || (replace = {}));\n//# sourceMappingURL=replace.js.map","import { EndsWith } from \"../EndsWith\";\nimport { replace } from \"./replace\";\nimport { add } from \"./resolve\";\nadd(\"EndsWith\", (definitions, rule, argument) => {\n const parameter = replace.argument(rule.needle, argument);\n return parameter\n ? new EndsWith(typeof parameter == \"object\" ? parameter.value.toString() : parameter.toString())\n : rule;\n});\n//# sourceMappingURL=Endswith.js.map","import { Every } from \"../Every\";\nimport { add, resolve } from \"./resolve\";\nadd(\"Every\", (definitions, rule, argument) => {\n return new Every(resolve(definitions, rule.criteria, argument));\n});\n//# sourceMappingURL=Every.js.map","import { FunctionCall } from \"../FunctionCall\";\nimport { parse } from \"../parse\";\nimport { add, resolve } from \"./resolve\";\nadd(\"FunctionCall\", (definitions, rule, argument) => {\n const definition = definitions[rule.identifier];\n const definitionRule = definition ? parse(definition.definition) : undefined;\n const property = definitionRule\n ? resolve(definitions, definitionRule, {\n input: argument?.input?.concat(rule.argument),\n identifier: argument?.identifier?.concat(definition.arguments),\n })\n : undefined;\n return new FunctionCall(rule.identifier, rule.argument, property);\n});\n//# sourceMappingURL=FunctionCall.js.map","import { GreaterThan } from \"../GreaterThan\";\nimport { replace } from \"./replace\";\nimport { add } from \"./resolve\";\nadd(\"GreaterThan\", (definitions, rule, argument) => {\n const parameter = replace.argument(rule.value, argument);\n return parameter ? new GreaterThan(parameter) : rule;\n});\n//# sourceMappingURL=GreaterThan.js.map","import { GreaterThanOrEqual } from \"../GreaterThanOrEqual\";\nimport { replace } from \"./replace\";\nimport { add } from \"./resolve\";\nadd(\"GreaterThanOrEqual\", (definitions, rule, argument) => {\n const parameter = replace.argument(rule.value, argument);\n return parameter ? new GreaterThanOrEqual(parameter) : rule;\n});\n//# sourceMappingURL=GreaterThanOrEqual.js.map","import { Has } from \"../Has\";\nimport { replace } from \"./replace\";\nimport { add } from \"./resolve\";\nadd(\"Has\", (definitions, rule, argument) => {\n const parameter = replace.argument(rule.property, argument);\n return parameter ? new Has(typeof parameter == \"object\" ? parameter.value.toString() : parameter.toString()) : rule;\n});\n//# sourceMappingURL=Has.js.map","import { Includes } from \"../Includes\";\nimport { replace } from \"./replace\";\nimport { add } from \"./resolve\";\nadd(\"Includes\", (definitions, rule, argument) => {\n const parameter = replace.argument(rule.needle, argument);\n return parameter\n ? new Includes(typeof parameter == \"object\" ? parameter.value.toString() : parameter.toString())\n : rule;\n});\n//# sourceMappingURL=Includes.js.map","import { LesserThan } from \"../LesserThan\";\nimport { replace } from \"./replace\";\nimport { add } from \"./resolve\";\nadd(\"LesserThan\", (definitions, rule, argument) => {\n const parameter = replace.argument(rule.value, argument);\n return parameter ? new LesserThan(parameter) : rule;\n});\n//# sourceMappingURL=LesserThan.js.map","import { LesserThanOrEqual } from \"../LesserThanOrEqual\";\nimport { replace } from \"./replace\";\nimport { add } from \"./resolve\";\nadd(\"LesserThanOrEqual\", (definitions, rule, argument) => {\n const parameter = replace.argument(rule.value, argument);\n return parameter ? new LesserThanOrEqual(parameter) : rule;\n});\n//# sourceMappingURL=LesserThanOrEqual.js.map","import { Not } from \"../Not\";\nimport { add, resolve } from \"./resolve\";\nadd(\"Not\", (definitions, rule, argument) => {\n return new Not(resolve(definitions, rule.criteria, argument));\n});\n//# sourceMappingURL=Not.js.map","import { Or } from \"../Or\";\nimport { add, resolve } from \"./resolve\";\nadd(\"Or\", (definitions, rule, argument) => new Or(rule.criteria.map(r => resolve(definitions, r, argument))));\n//# sourceMappingURL=Or.js.map","import { Property } from \"../Property\";\nimport { add, resolve } from \"./resolve\";\nadd(\"Property\", (definitions, rule, argument) => {\n return new Property(rule.name, rule.criteria && resolve(definitions, rule.criteria, argument));\n});\n//# sourceMappingURL=Property.js.map","import { Some } from \"../Some\";\nimport { add, resolve } from \"./resolve\";\nadd(\"Some\", (definitions, rule, argument) => {\n return new Some(resolve(definitions, rule.criteria, argument));\n});\n//# sourceMappingURL=Some.js.map","import { StartsWith } from \"../StartsWith\";\nimport { replace } from \"./replace\";\nimport { add } from \"./resolve\";\nadd(\"StartsWith\", (definitions, rule, argument) => {\n const parameter = replace.argument(rule.needle, argument);\n return parameter\n ? new StartsWith(typeof parameter == \"object\" ? parameter.value.toString() : parameter.toString())\n : rule;\n});\n//# sourceMappingURL=Startswith.js.map","import { Is } from \"../Is\";\nimport { replace } from \"./replace\";\nimport { add } from \"./resolve\";\nadd(\"Is\", (definitions, rule, argument) => {\n const parameter = replace.argument(rule.value, argument);\n return parameter ? new Is(parameter) : rule;\n});\n//# sourceMappingURL=Is.js.map","import { add, create, Rule } from \"./Rule\";\nexport class Tuple extends Rule {\n constructor(criteria) {\n super();\n this.criteria = criteria;\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"Tuple\";\n }\n is(value) {\n return this.criteria.length == value.length && this.criteria.every((c, index) => c.is(value[index]));\n }\n toString() {\n return `[${this.criteria.map(c => c.toString()).join(\", \")}]`;\n }\n}\nadd(criteria => (Array.isArray(criteria) ? new Tuple(criteria.map(create)) : undefined));\n//# sourceMappingURL=Tuple.js.map","import \"./Always\";\nimport { And, and } from \"./And\";\nimport { Any, any } from \"./Any\";\nimport { Contains, contains } from \"./Contains\";\nimport { Criteria } from \"./Criteria\";\nimport { EndsWith, endsWith } from \"./EndsWith\";\nimport { Every, every } from \"./Every\";\nimport { FunctionCall } from \"./FunctionCall\";\nimport { GreaterThan, greaterThan } from \"./GreaterThan\";\nimport { GreaterThanOrEqual, greaterThanOrEqual } from \"./GreaterThanOrEqual\";\nimport { Has, has } from \"./Has\";\nimport { Includes, includes } from \"./Includes\";\nimport { Is } from \"./Is\";\nimport { LesserThan, lesserThan } from \"./LesserThan\";\nimport { LesserThanOrEqual, lesserThanOrEqual } from \"./LesserThanOrEqual\";\nimport { Match, match } from \"./Match\";\nimport { Not, not } from \"./Not\";\nimport { Or, or } from \"./Or\";\nimport { parse, parseExpression } from \"./parse\";\nimport { Property, property } from \"./Property\";\nimport { resolve } from \"./resolve\";\nimport { create, Rule } from \"./Rule\";\nimport { Some, some } from \"./Some\";\nimport { StartsWith, startsWith } from \"./StartsWith\";\nimport { Tuple } from \"./Tuple\";\nimport { Type as SType } from \"./Type\";\nimport { Value } from \"./Value\";\nimport { Within, within } from \"./Within\";\nfunction is(criteria, value) {\n const result = create(criteria);\n return value ? result.is(value) : result;\n}\nfunction filter(criteria, value) {\n const c = create(criteria);\n return c.filter(value);\n}\nexport { And, Any, Criteria, Contains, EndsWith, Every, FunctionCall, Has, GreaterThan, GreaterThanOrEqual, LesserThan, LesserThanOrEqual, Includes, Is, Match, Not, Or, Property, Rule, Some, StartsWith, Tuple, SType as Type, Value, Within, any, and, create, contains, endsWith, every, has, filter, greaterThan, greaterThanOrEqual, lesserThan, lesserThanOrEqual, includes, is, match, not, or, parse, parseExpression, property, resolve, some, startsWith, within, };\n//# sourceMappingURL=selectively.js.map","import { EventEmitter } from \"@stencil/core\"\nimport { selectively } from \"selectively\"\nimport { isly } from \"isly\"\n\nconst EventEmitter = isly.object<EventEmitter>({ emit: isly.function<EventEmitter[\"emit\"]>() })\nexport interface Filter extends Filter.Element {\n\tsmoothlyFilterUpdate: EventEmitter<Filter.Update>\n\tsmoothlyFilterManipulate: EventEmitter<Filter.Manipulate>\n}\nexport namespace Filter {\n\texport type Manipulate = (criteria: selectively.Criteria) => selectively.Criteria\n\texport type Update = (expression: selectively.Criteria) => void\n\texport interface Element {\n\t\tproperty?: string\n\t\tproperties?: Record<string, string>\n\t}\n\texport namespace Element {\n\t\texport const type = isly.object<Element>({\n\t\t\tproperty: isly.string().optional(),\n\t\t\tproperties: isly.record<Record<string, string>>(isly.string(), isly.string()).optional(),\n\t\t})\n\t}\n\texport const type = Element.type.extend<Filter>({\n\t\tsmoothlyFilterUpdate: EventEmitter,\n\t\tsmoothlyFilterManipulate: EventEmitter,\n\t})\n}\n",":host {\n\tposition: relative;\n\tborder: 1px solid rgb(var(--smoothly-medium-tint));\n\tmargin-left: 1rem;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tmargin-right: 1rem;\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n}\n\n:host>div::slotted([slot=detail]) {\n\tz-index: 5;\n}\n\n:host::slotted([slot=bar]) {\n\tpointer-events: auto;\n\tmargin-left: 0.3em;\n\tmargin-right: 0.3em;\n\n\t&>[looks=\"plain\"] {\n\t\tdisplay: flex;\n\t\talign-self: stretch;\n\t\talign-items: center;\n\t}\n}\n\n:host>div:empty+smoothly-icon {\n\tdisplay: none;\n}\n\n:host>smoothly-icon {\n\tcursor: pointer;\n\tmargin-left: 0.3em;\n\tmargin-right: 0.3em;\n\tflex-shrink: 0;\n}\n\n:host>div.close {\n\tposition: fixed;\n\tz-index: 3;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100dvw;\n\theight: 100dvh;\n\tbackground: transparent;\n}\n\n:host>div.hidden {\n\tdisplay: none;\n}\n\n:host>.container {\n\tpadding: 2em;\n\tposition: absolute;\n\tright: 0.35em;\n\twidth: fit-content;\n\tdisplay: flex;\n\tjustify-content: center;\n\ttop: 100%;\n\twidth: fit-content;\n\tz-index: 4;\n\tbackground-color: rgb(var(--smoothly-color));\n\tmargin: 0.8em -2em;\n}\n\n/* arrow */\n:host>div.container:before {\n\tcontent: \"\";\n\twidth: 0.6em;\n\theight: 0.6em;\n\ttransform: rotate(45deg);\n\tborder-top: 1px solid rgb(var(--smoothly-medium-tint));\n\tborder-left: 1px solid rgb(var(--smoothly-medium-tint));\n\tbackground-color: rgb(var(--smoothly-color));\n\tposition: absolute;\n\tz-index: 3;\n}\n\n/* arrow placement */\n:host>div.container.arrow-top:before {\n\tleft: calc(91%);\n\ttop: -5px;\n}\n\n:host div.container:after {\n\tcontent: \"\";\n\theight: 100%;\n\twidth: 100%;\n\tborder: 1px solid rgb(var(--smoothly-medium-tint));\n\tborder-radius: 0.25em;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n}\n","import { Component, Event, EventEmitter, h, Host, Listen, State } from \"@stencil/core\"\nimport { selectively } from \"selectively\"\nimport { Filter } from \"./Filter\"\n\n@Component({\n\ttag: \"smoothly-filter\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyFilter {\n\tfield: HTMLSmoothlyFilterFieldElement | undefined\n\tupdating = false\n\tfilters: Set<Filter.Update> = new Set<Filter.Update>() // maybe set?\n\t@State() detailChildren?: boolean\n\t@State() criteria: selectively.Criteria = selectively.and()\n\t@State() expanded = false\n\t@Event() smoothlyFilter: EventEmitter<selectively.Criteria>\n\n\t@Listen(\"smoothlyFilterUpdate\")\n\tupdateHandler(event: CustomEvent<Filter.Update>) {\n\t\tevent.stopPropagation()\n\t\tif (Filter.Element.type.is(event.target))\n\t\t\tthis.filters.add(event.detail)\n\t}\n\t@Listen(\"smoothlyFilterManipulate\")\n\tmanipulateHandler(event: CustomEvent<Filter.Manipulate>) {\n\t\tevent.stopPropagation()\n\t\tthis.updating = true\n\t\tthis.criteria = event.detail(this.criteria)\n\t\tthis.smoothlyFilter.emit(this.criteria)\n\t\tthis.filters.forEach(update => update(this.criteria))\n\t\tthis.updating = false\n\t}\n\t@Listen(\"smoothlyFilterField\")\n\tfilterFieldHandler(event: CustomEvent<selectively.Criteria>) {\n\t\tevent.stopPropagation()\n\t\tif (!this.updating) {\n\t\t\tthis.smoothlyFilter.emit((this.criteria = selectively.and(event.detail)))\n\t\t\tthis.filters.forEach(update => update(this.criteria))\n\t\t}\n\t}\n\tclear(): void {\n\t\tthis.field?.clear()\n\t\tthis.smoothlyFilter.emit((this.criteria = selectively.and()))\n\t\tthis.filters.forEach(update => update(this.criteria))\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<slot name=\"bar\" />\n\t\t\t\t<smoothly-filter-field criteria={this.criteria} ref={e => (this.field = e)} />\n\t\t\t\t{this.criteria.toString() != \"\" && (\n\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\tname={\"close\"}\n\t\t\t\t\t\ttooltip={\"Clear all filters\"}\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tthis.clear()\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<div class={this.expanded ? \"container arrow-top\" : \"hidden\"}>\n\t\t\t\t\t<slot name=\"detail\" />\n\t\t\t\t</div>\n\t\t\t\t<smoothly-icon\n\t\t\t\t\tname={this.expanded ? \"options\" : \"options-outline\"}\n\t\t\t\t\ttooltip={(this.expanded ? \"Hide\" : \"Show\") + \" additional filters\"}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tthis.expanded = !this.expanded\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<div class={this.expanded ? \"close\" : \"hidden\"} onClick={() => (this.expanded = !this.expanded)} />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tflex-grow: 5;\n}\n\n","import { Component, Event, EventEmitter, h, Host, Method, Prop } from \"@stencil/core\"\nimport { selectively } from \"selectively\"\nimport { Data } from \"../../../model\"\n\n@Component({\n\ttag: \"smoothly-filter-field\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyFilterField {\n\tinput: HTMLSmoothlyInputElement | undefined\n\tprivate value: string = \"\"\n\t@Prop() criteria: selectively.Criteria\n\t@Event() smoothlyFilterField: EventEmitter<selectively.Rule>\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tawait this.input?.clear()\n\t}\n\tfilterFieldEmit() {\n\t\tthis.smoothlyFilterField.emit(selectively.parse(this.value ?? \"\"))\n\t}\n\tupdateValue(event: CustomEvent<Data>) {\n\t\tthis.value = event.detail.filter as string\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-input\n\t\t\t\t\tname=\"filter\"\n\t\t\t\t\tref={e => (this.input = e)}\n\t\t\t\t\tvalue={this.criteria.toString()}\n\t\t\t\t\tonSmoothlyInputLooks={e => e.stopPropagation()}\n\t\t\t\t\tonSmoothlyKeydown={e => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\te.detail.key == \"Enter\" && this.filterFieldEmit()\n\t\t\t\t\t}}\n\t\t\t\t\tonSmoothlyBlur={e => e.stopPropagation()}\n\t\t\t\t\tonSmoothlyFormDisable={e => e.stopPropagation()}\n\t\t\t\t\tonSmoothlyInputLoad={e => e.stopPropagation()}\n\t\t\t\t\tonSmoothlyChange={e => e.stopPropagation()}\n\t\t\t\t\tonSmoothlyInput={e => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\tthis.updateValue(e)\n\t\t\t\t\t}}>\n\t\t\t\t\tFilter\n\t\t\t\t</smoothly-input>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: contents;\n}\n\n:host>smoothly-input {\n\tflex-grow: 1;\n\tmin-width: 10em;\n\tflex-basis: 40%;\n}\n","import { Component, Event, EventEmitter, h, Prop, State } from \"@stencil/core\"\nimport { selectively } from \"selectively\"\nimport { tidily } from \"tidily\"\nimport { Filter } from \"../Filter\"\n\n@Component({\n\ttag: \"smoothly-filter-input\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyFilterInput implements Filter {\n\ttype: tidily.Type = \"text\"\n\t@State() needle: selectively.Criteria = \"\"\n\t@Prop() label: string\n\t@Prop() property: string\n\t@Prop() placeholder: string\n\t@Event() smoothlyFilterUpdate: EventEmitter<Filter.Update>\n\t@Event() smoothlyFilterManipulate: EventEmitter<Filter.Manipulate>\n\tcomponentDidLoad() {\n\t\tthis.smoothlyFilterUpdate.emit(this.update.bind(this))\n\t}\n\tupdate(expression: selectively.Criteria): void {\n\t\tif (expression instanceof selectively.And && expression.rules.length > 0)\n\t\t\tfor (const rule of expression.rules) {\n\t\t\t\tconst criteria = this.isCriteria(rule, this.property)\n\t\t\t\tif (criteria) {\n\t\t\t\t\tthis.needle = criteria.needle ?? \"\"\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\telse\n\t\t\tthis.needle = \"\"\n\t}\n\tprivate isCriteria(criteria: selectively.Rule | undefined, key: string): selectively.Includes | undefined {\n\t\tconst [property, ...rest] = key.split(\".\")\n\t\treturn (\n\t\t\t(criteria instanceof selectively.Property &&\n\t\t\t\tcriteria.name == property &&\n\t\t\t\t((criteria.criteria instanceof selectively.Includes && criteria.criteria) ||\n\t\t\t\t\t(criteria.criteria instanceof selectively.Property && this.isCriteria(criteria.criteria, rest.join(\".\"))))) ||\n\t\t\tundefined\n\t\t)\n\t}\n\tinputHandler(event: CustomEvent<Record<string, string>>) {\n\t\tevent.stopPropagation()\n\t\tconst needle = event.detail[this.property]\n\t\tconst manipulate: Filter.Manipulate = (criteria: selectively.Criteria): selectively.Criteria => {\n\t\t\tlet result: selectively.Criteria = criteria\n\t\t\tconst newCriteria = needle ? this.getCriteria(needle) : undefined\n\t\t\tif (result instanceof selectively.And) {\n\t\t\t\tconst index = result.rules.findIndex(r => this.findInstanceOf(r, this.property))\n\t\t\t\t!newCriteria\n\t\t\t\t\t? index != -1 && result.rules.splice(index, 1)\n\t\t\t\t\t: index == -1\n\t\t\t\t\t? result.rules.push(newCriteria)\n\t\t\t\t\t: (result.rules[index] = newCriteria)\n\t\t\t\tresult = selectively.and(...result.rules)\n\t\t\t}\n\t\t\treturn result\n\t\t}\n\t\tthis.smoothlyFilterManipulate.emit(manipulate.bind(this))\n\t}\n\tprivate getCriteria(needle: string): selectively.Rule | undefined {\n\t\treturn this.property\n\t\t\t.split(\".\")\n\t\t\t.reduceRight((r: selectively.Rule, e) => selectively.property(e, r), selectively.includes(needle))\n\t}\n\tfindInstanceOf(criteria: selectively.Criteria, property: string): boolean {\n\t\tconst [key, ...rest] = property.split(\".\")\n\t\treturn (\n\t\t\tcriteria instanceof selectively.Property &&\n\t\t\tcriteria.name == key &&\n\t\t\t(rest.length == 0 || (!!criteria.criteria && this.findInstanceOf(criteria.criteria, rest.join(\".\"))))\n\t\t)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<smoothly-input\n\t\t\t\tname={this.property}\n\t\t\t\tvalue={this.needle}\n\t\t\t\ttype={this.type}\n\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\tonSmoothlyBlur={e => e.stopPropagation()}\n\t\t\t\tonSmoothlyFormDisable={e => e.stopPropagation()}\n\t\t\t\tonSmoothlyInputLoad={e => e.stopPropagation()}\n\t\t\t\tonSmoothlyChange={e => e.stopPropagation()}\n\t\t\t\tonSmoothlyInput={e => this.inputHandler(e)}>\n\t\t\t\t{this.label}\n\t\t\t\t<slot />\n\t\t\t</smoothly-input>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: contents;\n}\n\n:host>smoothly-input-select {\n\tflex-grow: 1;\n\twidth: 12.5em;\n}\n\n.options {\n\tborder: rgb(var(--smoothly-input-border, var(--smoothly-color-contrast))) solid 1px;\n\tborder-top: rgba(var(--smoothly-input-border, var(--smoothly-color-contrast)), .4) solid 1px;\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Prop } from \"@stencil/core\"\nimport { selectively } from \"selectively\"\nimport { isly } from \"isly\"\nimport { Editable } from \"../../input/Editable\"\nimport { Looks } from \"../../input/Looks\"\nimport { Filter } from \"../Filter\"\n\n@Component({\n\ttag: \"smoothly-filter-select\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyFilterSelect implements Filter {\n\tprivate selectElement?: HTMLSmoothlyInputSelectElement\n\tupdating = false\n\titems: Map<string, { state: Record<string, any>; item: HTMLSmoothlyItemElement }> = new Map<\n\t\tstring,\n\t\t{ state: Record<string, any>; item: HTMLSmoothlyItemElement }\n\t>()\n\t@Element() element: HTMLSmoothlyFilterSelectElement\n\t@Prop() label: string\n\t@Prop() property: string\n\t@Prop() menuHeight?: `${number}items` | `${number}rem` | `${number}px` | `${number}vh` | undefined\n\t@Prop() multiple = false\n\t@Prop() type: \"array\" | \"string\" = \"string\"\n\t@Prop({ mutable: true }) looks?: Looks\n\t@Event() smoothlyFilterUpdate: EventEmitter<Filter.Update>\n\t@Event() smoothlyFilterManipulate: EventEmitter<Filter.Manipulate>\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks) => void>\n\tcomponentWillLoad() {\n\t\tthis.smoothlyInputLooks.emit(looks => (this.looks = this.looks ?? looks))\n\t}\n\tasync componentDidLoad() {\n\t\tthis.smoothlyFilterUpdate.emit(this.update.bind(this))\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tasync smoothlyInputLoadHandler(_: CustomEvent<(parent: Editable) => void>): Promise<void> {\n\t\t;(await this.selectElement?.getItems())?.forEach(item =>\n\t\t\tthis.items.set(item.value, {\n\t\t\t\tstate: this.property.split(\".\").reduceRight((r, e) => ({ [e]: r }), item.value),\n\t\t\t\titem,\n\t\t\t})\n\t\t)\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks?: Looks) => void>): void {\n\t\tif (event.target != this.element) {\n\t\t\tevent.stopPropagation()\n\t\t\tevent.detail(this.looks)\n\t\t}\n\t}\n\tupdate(expression: selectively.Criteria): void {\n\t\tthis.updating = true\n\t\tif (expression instanceof selectively.And && expression.rules.length > 0)\n\t\t\tfor (const item of this.items.values()) {\n\t\t\t\tconst selected = expression.rules.some(\n\t\t\t\t\tr =>\n\t\t\t\t\t\tthis.isCriteria(r, this.property, item.state) &&\n\t\t\t\t\t\t(this.type == \"array\" ? this.findInstanceOf(r, this.property) : r.is(item.state))\n\t\t\t\t)\n\t\t\t\titem.item.selected = selected\n\t\t\t}\n\t\telse\n\t\t\tthis.items.forEach(item => (item.item.selected = false))\n\t\tthis.updating = false\n\t}\n\tprivate isCriteria(criteria: selectively.Rule | undefined, key: string, value: Record<string, any> | any): boolean {\n\t\tconst [property, ...rest] = key.split(\".\")\n\t\tconst result =\n\t\t\tcriteria instanceof selectively.Property && criteria.name == property\n\t\t\t\t? this.isCriteria(criteria.criteria, rest.join(\".\"), value[property])\n\t\t\t\t: this.multiple\n\t\t\t\t? (criteria instanceof selectively.Within && criteria.value.some(e => e == value)) ||\n\t\t\t\t (this.type == \"array\" && criteria instanceof selectively.Contains && criteria.criteria.some(e => e == value))\n\t\t\t\t: criteria instanceof selectively.Is && criteria.value == value\n\t\treturn result\n\t}\n\tselectHandler(event: CustomEvent<Record<string, unknown>>) {\n\t\tevent.stopPropagation()\n\t\tif (!this.updating) {\n\t\t\tconst argument = event.detail[this.property]\n\t\t\tconst manipulate = (criteria: selectively.Criteria): selectively.Criteria => {\n\t\t\t\tlet result: selectively.Criteria = criteria\n\t\t\t\tconst newCriteria = this.getCriteria(argument)\n\t\t\t\tif (!(result instanceof selectively.Rule))\n\t\t\t\t\tresult = newCriteria ? selectively.and(result, newCriteria) : result\n\t\t\t\telse if (result instanceof selectively.And) {\n\t\t\t\t\tconst index = result.rules.findIndex(r => this.findInstanceOf(r, this.property))\n\t\t\t\t\t!newCriteria && index >= 0\n\t\t\t\t\t\t? result.rules.splice(index, 1)\n\t\t\t\t\t\t: !newCriteria\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: index == -1\n\t\t\t\t\t\t? result.rules.push(newCriteria)\n\t\t\t\t\t\t: (result.rules[index] = newCriteria)\n\t\t\t\t\tresult = selectively.and(...result.rules)\n\t\t\t\t}\n\t\t\t\treturn result\n\t\t\t}\n\t\t\tthis.smoothlyFilterManipulate.emit(manipulate.bind(this))\n\t\t}\n\t}\n\tfindInstanceOf(criteria: selectively.Criteria, key: string): boolean {\n\t\tconst [property, ...rest] = key.split(\".\")\n\t\treturn (\n\t\t\tcriteria instanceof selectively.Property &&\n\t\t\tcriteria.name == property &&\n\t\t\t(criteria.criteria instanceof selectively.Within ||\n\t\t\t\tcriteria.criteria instanceof selectively.Is ||\n\t\t\t\tcriteria.criteria instanceof selectively.Contains ||\n\t\t\t\t(criteria.criteria instanceof selectively.Property && this.findInstanceOf(criteria.criteria, rest.join(\".\"))))\n\t\t)\n\t}\n\tprivate getCriteria(detail: unknown): selectively.Rule | undefined {\n\t\tlet result: selectively.Criteria | undefined\n\t\tif (this.multiple && isly.string().array({ criteria: \"minLength\", value: 1 }).is(detail))\n\t\t\tresult = this.type == \"array\" ? selectively.contains(detail) : selectively.within(detail)\n\t\telse if (typeof detail == \"string\")\n\t\t\tresult = selectively.is(detail)\n\t\telse\n\t\t\tresult = undefined\n\t\treturn result && this.property.split(\".\").reduceRight((r, e) => selectively.property(e, r), result)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<smoothly-input-select\n\t\t\t\tref={e => (this.selectElement = e)}\n\t\t\t\tname={this.property}\n\t\t\t\tlooks={this.looks}\n\t\t\t\tmultiple={this.multiple}\n\t\t\t\tmenuHeight={this.menuHeight}\n\t\t\t\tonSmoothlyInputLooks={e => e.stopPropagation()}\n\t\t\t\tonSmoothlyItemSelect={e => e.stopPropagation()}\n\t\t\t\tonSmoothlyInput={e => this.selectHandler(e)}>\n\t\t\t\t{this.label && (\n\t\t\t\t\t<span slot=\"label\">\n\t\t\t\t\t\t{[this.label.slice(0, 1).toUpperCase(), this.label.slice(1, this.label.length)].join(\"\")}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t\t<slot name=\"items\" />\n\t\t\t</smoothly-input-select>\n\t\t)\n\t}\n}\n",":host {\n\tposition: relative;\n\tdisplay: inline-block;\n\tcursor: pointer;\n}\n\n:host:hover>smoothly-icon {\n\tstroke: rgb(var(--smoothly-success-tint));\n\tcolor: rgb(var(--smoothly-success-tint));\n\tfill: rgb(var(--smoothly-success-tint));\n}\n\n:host[flip] {\n\ttransform: scaleX(-1);\n}\n","import { Component, Event, EventEmitter, h, Prop } from \"@stencil/core\"\nimport { selectively } from \"selectively\"\nimport { Icon } from \"../../../model\"\nimport { Filter } from \"../Filter\"\n\n@Component({\n\ttag: \"smoothly-filter-toggle\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyFilterToggle {\n\t@Prop() icon: Icon\n\t@Prop() properties: Record<string, string>\n\t@Prop() tooltip: string\n\t@Prop() not: boolean\n\t@Prop({ reflect: true }) flip = false\n\t@Prop({ mutable: true }) active = false\n\t@Event() smoothlyFilterUpdate: EventEmitter<Filter.Update>\n\t@Event() smoothlyFilterManipulate: EventEmitter<Filter.Manipulate>\n\tcomponentWillLoad() {\n\t\tthis.active && this.activeHandler()\n\t}\n\tcomponentDidLoad() {\n\t\tthis.smoothlyFilterUpdate.emit(this.update.bind(this))\n\t}\n\tupdate(expression: selectively.Criteria): void {\n\t\tif (expression instanceof selectively.And && expression.rules.length > 0) {\n\t\t\tthis.active = Object.entries(this.properties).every(([key, value]) =>\n\t\t\t\texpression.rules.some(r => {\n\t\t\t\t\tconst criteria = !this.not ? r : r instanceof selectively.Not ? r.criteria : undefined\n\t\t\t\t\treturn value == \"\"\n\t\t\t\t\t\t? !(criteria instanceof selectively.Property && criteria.name == key)\n\t\t\t\t\t\t: this.isCriteria(criteria, key, value)\n\t\t\t\t})\n\t\t\t)\n\t\t} else\n\t\t\tthis.active = false\n\t}\n\tprivate isCriteria(criteria: selectively.Rule | undefined, key: string, value: string): boolean {\n\t\tconst [property, ...rest] = key.split(\".\")\n\t\treturn (\n\t\t\tcriteria instanceof selectively.Property &&\n\t\t\tcriteria.name == property &&\n\t\t\t((criteria.criteria instanceof selectively.Is && criteria.criteria.value == value) ||\n\t\t\t\tthis.isCriteria(criteria.criteria, rest.join(\".\"), value))\n\t\t)\n\t}\n\n\tactiveHandler(activate?: true) {\n\t\tconst manipulate: Filter.Manipulate = (criteria: selectively.Criteria): selectively.Criteria => {\n\t\t\tlet result: selectively.Criteria = criteria\n\t\t\tactivate && (this.active = !this.active)\n\t\t\tif (result instanceof selectively.And) {\n\t\t\t\tfor (const [key, value] of Object.entries(this.properties)) {\n\t\t\t\t\tconst newCriteria =\n\t\t\t\t\t\t!this.active || (this.active && value == \"\")\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: this.not\n\t\t\t\t\t\t\t? selectively.not(this.createCriteria(key, value))\n\t\t\t\t\t\t\t: this.createCriteria(key, value)\n\t\t\t\t\tconst index = result.rules.findIndex(r => this.findInstanceOf(r, key))\n\t\t\t\t\t!newCriteria && index >= 0\n\t\t\t\t\t\t? result.rules.splice(index, 1)\n\t\t\t\t\t\t: !newCriteria\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: index == -1\n\t\t\t\t\t\t? result.rules.push(newCriteria)\n\t\t\t\t\t\t: (result.rules[index] = newCriteria)\n\t\t\t\t}\n\t\t\t\tresult = selectively.and(...result.rules)\n\t\t\t}\n\t\t\treturn result\n\t\t}\n\t\tthis.smoothlyFilterManipulate.emit(manipulate.bind(this))\n\t}\n\tcreateCriteria(key: string, value: string): selectively.Rule {\n\t\tconst [property, ...rest] = key.split(\".\")\n\t\treturn selectively.property(\n\t\t\tproperty,\n\t\t\trest.length == 0 ? selectively.is(value) : this.createCriteria(rest.join(\".\"), value)\n\t\t)\n\t}\n\tfindInstanceOf(criteria: selectively.Criteria, property: string): boolean {\n\t\tconst check = !this.not ? criteria : criteria instanceof selectively.Not ? criteria.criteria : false\n\t\tconst [key, ...rest] = property.split(\".\")\n\t\treturn (\n\t\t\tcheck instanceof selectively.Property &&\n\t\t\tcheck.name == key &&\n\t\t\t(rest.length == 0 || (!!check.criteria && this.findInstanceOf(check.criteria, rest.join(\".\"))))\n\t\t)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<smoothly-icon\n\t\t\t\tfill=\"clear\"\n\t\t\t\tcolor={this.active ? \"success\" : \"medium\"}\n\t\t\t\tname={(this.active ? `${this.icon}` : `${this.icon}-outline`) as Icon}\n\t\t\t\ttooltip={this.tooltip}\n\t\t\t\tonClick={() => this.activeHandler(true)}\n\t\t\t/>\n\t\t)\n\t}\n}\n","export var Method;\n(function (Method) {\n function is(value) {\n return (typeof value == \"string\" &&\n (value == \"GET\" ||\n value == \"POST\" ||\n value == \"DELETE\" ||\n value == \"HEAD\" ||\n value == \"PATCH\" ||\n value == \"PUT\" ||\n value == \"OPTIONS\" ||\n value == \"TRACE\" ||\n value == \"CONNECT\"));\n }\n Method.is = is;\n function parse(value) {\n value = value?.toUpperCase();\n return is(value) ? value : undefined;\n }\n Method.parse = parse;\n})(Method || (Method = {}));\n//# sourceMappingURL=Method.js.map","const parsers = {};\nexport function add(parser, ...contentType) {\n contentType.forEach(t => (parsers[t] = parser));\n}\nexport function parse(request) {\n const contentType = request.headers.get(\"Content-Type\");\n const type = contentType && contentType.split(\";\");\n const parser = parsers[type?.[0] ?? \"plain/text\"];\n return parser ? parser(request) : request.text();\n}\n//# sourceMappingURL=Parser.js.map","const serializers = {};\nexport function add(serializer, ...contentType) {\n contentType.forEach(t => (serializers[t] = serializer));\n}\nexport function serialize(body, contentType) {\n const serializer = serializers[contentType?.split(\";\")[0] ?? \"\"];\n return serializer ? serializer(body, contentType) : body;\n}\n//# sourceMappingURL=Serializer.js.map","export function to(name) {\n return name.toLowerCase().replace(/-[a-z]/g, match => match.substring(1).toUpperCase());\n}\nexport function from(name) {\n const result = name.replace(/[A-Z]/g, match => \"-\" + match);\n return result[0].toUpperCase() + result.substring(1);\n}\n//# sourceMappingURL=CamelCase.js.map","import * as CamelCase from \"../CamelCase\";\nconst fields = [\n [\"aIM\", \"A-IM\", 1],\n [\"accept\", \"Accept\", 2],\n [\"acceptCharset\", \"Accept-Charset\", 2],\n [\"acceptDatetime\", \"Accept-Datetime\", 1],\n [\"acceptEncoding\", \"Accept-Encoding\", 2],\n [\"acceptLanguage\", \"Accept-Language\", 2],\n [\"accessControlRequestMethod\", \"Access-Control-Request-Method\", 1],\n [\"accessControlRequestHeaders\", \"Access-Control-Request-Headers\", 1],\n [\"authorization\", \"Authorization\", 1],\n [\"cacheControl\", \"Cache-Control\", 1],\n [\"cfConnectionIp\", \"CF-Connecting-IP\", 1],\n [\"cfIpCountry\", \"CF-IPCountry\", 1],\n [\"connection\", \"Connection\", 1],\n [\"contentLength\", \"Content-Length\", 1],\n [\"contentMD5\", \"Content-MD5\", 1],\n [\"contentType\", \"Content-Type\", 1],\n [\"cookie\", \"Cookie\", 1],\n [\"date\", \"Date\", 1],\n [\"expect\", \"Expect\", 1],\n [\"forwarded\", \"Forwarded\", 1],\n [\"from\", \"From\", 1],\n [\"host\", \"Host\", 1],\n [\"http2Settings\", \"HTTP2-Settings\", 1],\n [\"ifMatch\", \"If-Match\", 2],\n [\"ifModifiedSince\", \"If-Modified-Since\", 1],\n [\"ifNoneMatch\", \"If-None-Match\", 2],\n [\"ifRange\", \"If-Range\", 1],\n [\"ifUnmodifiedSince\", \"If-Unmodified-Since\", 1],\n [\"maxForwards\", \"Max-Forwards\", 1],\n [\"origin\", \"Origin\", 1],\n [\"pragma\", \"Pragma\", 1],\n [\"proxyAuthorization\", \"Proxy-Authorization\", 1],\n [\"range\", \"Range\", 1],\n [\"referer\", \"Referer\", 1],\n [\"te\", \"TE\", 2],\n [\"trailer\", \"Trailer\", 1],\n [\"transferEncoding\", \"Transfer-Encoding\", 1],\n [\"userAgent\", \"User-Agent\", 1],\n [\"upgrade\", \"Upgrade\", 2],\n [\"via\", \"Via\", 2],\n [\"warning\", \"Warning\", 1],\n [\"upgradeInsecureRequests\", \"Upgrade-Insecure-Requests\", 1],\n [\"xRequestedWith\", \"X-Requested-With\", 1],\n [\"dnt\", \"DNT\", 1],\n [\"xForwardedFor\", \"X-Forwarded-For\", 1],\n [\"xForwardedHost\", \"X-Forwarded-Host\", 1],\n [\"xForwardedProto\", \"X-Forwarded-Proto\", 1],\n [\"xMsContinuation\", \"X-Ms-Continuation\", 1],\n [\"frontEndHttps\", \"Front-End-Https\", 1],\n [\"xHttpMethodOverride\", \"X-Http-Method-Override\", 1],\n [\"xAttDeviceId\", \"X-ATT-DeviceId\", 1],\n [\"xWapProfile\", \"X-Wap-Profile\", 1],\n [\"proxyConnection\", \"Proxy-Connection\", 1],\n [\"xCsrfToken\", \"X-Csrf-Token\", 1],\n [\"xCorrelationID\", \"X-Correlation-ID\", 1],\n [\"xModNonce\", \"x-mod-nonce\", 1],\n [\"xModRetry\", \"x-mod-retry\", 1],\n [\"saveData\", \"Save-Data\", 1],\n [\"xAuthToken\", \"X-Auth-Token\", 1],\n [\"xTrackingId\", \"x-tracking-id\", 1],\n];\nexport var Header;\n(function (Header) {\n function is(value) {\n function isString(value) {\n return value == undefined || typeof value == \"string\";\n }\n function isStringArray(value) {\n return value == undefined || (Array.isArray(value) && value.every(v => typeof v == \"string\"));\n }\n return (typeof value == \"object\" && fields.every(field => (field[2] == 1 ? isString : isStringArray)(value[field[0]])));\n }\n Header.is = is;\n function to(header) {\n return Object.fromEntries(Object.entries(header).map(([name, value]) => {\n const field = fields.find(([camelCase, n, l]) => camelCase == name);\n return [field ? field[1] : CamelCase.from(name), Array.isArray(value) ? value.join(\", \") : value];\n }));\n }\n Header.to = to;\n function from(headers) {\n return Object.fromEntries((Array.isArray(headers)\n ? headers.map(([field, ...value]) => [field, value.join(\", \")])\n : isHeaders(headers)\n ? [...headers]\n : Object.entries(headers)).map(([name, value]) => {\n const field = fields.find(([c, n, l]) => name.toLowerCase() == n.toLowerCase());\n return field\n ? [field[0], field[2] == 1 || typeof value != \"string\" ? value : value.split(\",\").map(v => v.trim())]\n : [CamelCase.to(name), value];\n }));\n }\n Header.from = from;\n function toString(header) {\n return Object.entries(header)\n .map(([header, value]) => header + \": \" + value)\n .join(\"\\n\");\n }\n Header.toString = toString;\n function isHeaders(value) {\n return typeof value.entries == \"function\";\n }\n})(Header || (Header = {}));\n//# sourceMappingURL=Header.js.map","import { Method } from \"../Method\";\nimport * as Parser from \"../Parser\";\nimport * as Serializer from \"../Serializer\";\nimport { Header as RequestHeader } from \"./Header\";\nexport var Request;\n(function (Request) {\n function is(value) {\n return (typeof value == \"object\" &&\n Object.keys(value).every(key => [\"method\", \"url\", \"parameter\", \"search\", \"remote\", \"header\", \"body\"].some(k => k == key)) &&\n Method.is(value.method) &&\n value.url instanceof URL &&\n typeof value.parameter == \"object\" &&\n Object.entries(value.parameter).every(([parameter, value]) => typeof parameter == \"string\" && typeof value == \"string\") &&\n typeof value.search == \"object\" &&\n Object.entries(value.search).every(([key, value]) => typeof key == \"string\" && typeof value == \"string\") &&\n (value.remote == undefined || typeof value.remote == \"string\") &&\n (value.header == undefined || RequestHeader.is(value.header)));\n }\n Request.is = is;\n async function to(request) {\n const r = is(request) ? request : create(request);\n const header = r.header.contentType?.startsWith(\"multipart/form-data\")\n ? (({ contentType, ...header }) => header)(r.header)\n : r.header;\n return {\n url: r.url.toString(),\n method: r.method,\n headers: RequestHeader.to(header),\n body: [\"GET\", \"HEAD\"].some(v => v == r.method)\n ? undefined\n : await Serializer.serialize(await r.body, r.header.contentType),\n };\n }\n Request.to = to;\n function from(request) {\n const url = new URL(request.url);\n return {\n method: Method.parse(request.method) ?? \"GET\",\n url,\n header: RequestHeader.from(request.headers),\n parameter: {},\n search: Object.fromEntries(url.searchParams.entries()),\n body: Parser.parse(request),\n ...(\"cf\" in request && { cloudflare: request.cf }),\n };\n }\n Request.from = from;\n function create(request) {\n let result;\n if (typeof request == \"string\")\n result = create({ url: request });\n else {\n const url = typeof request.url == \"string\" ? new URL(request.url) : request.url;\n result = {\n method: Method.parse(request.method) ?? \"GET\",\n url,\n parameter: request.parameter ?? {},\n search: { ...request.search, ...Object.fromEntries(url.searchParams.entries()) },\n remote: request.remote,\n header: request.header ?? {},\n body: request.body,\n };\n }\n return result;\n }\n Request.create = create;\n let Header;\n (function (Header) {\n Header.is = RequestHeader.is;\n Header.from = RequestHeader.from;\n Header.to = RequestHeader.to;\n })(Header = Request.Header || (Request.Header = {}));\n})(Request || (Request = {}));\n//# sourceMappingURL=index.js.map","const PlatformRequest = typeof Request != \"undefined\" ? Request : globalThis.Request;\nconst PlatformResponse = typeof Response != \"undefined\" ? Response : globalThis.Response;\nexport { PlatformRequest as Request, PlatformResponse as Response };\n//# sourceMappingURL=Platform.js.map","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _Socket_instances, _Socket_receiveQueue, _Socket_sendQueue, _Socket_closed, _Socket_backend, _Socket_onMessage, _Socket_onClose, _Socket_handleOpen, _Socket_onOpen;\nexport class Socket {\n get state() {\n return __classPrivateFieldGet(this, _Socket_closed, \"f\") ? \"closed\" : \"opened\";\n }\n set onMessage(value) {\n if (__classPrivateFieldGet(this, _Socket_receiveQueue, \"f\").length && value) {\n __classPrivateFieldGet(this, _Socket_receiveQueue, \"f\").forEach(value);\n __classPrivateFieldSet(this, _Socket_receiveQueue, [], \"f\");\n }\n __classPrivateFieldSet(this, _Socket_onMessage, value, \"f\");\n }\n set onClose(value) {\n if (this.state == \"closed\" && value)\n value();\n __classPrivateFieldSet(this, _Socket_onClose, value, \"f\");\n }\n set onOpen(value) {\n if (this.state == \"opened\" && value)\n value();\n __classPrivateFieldSet(this, _Socket_onOpen, value, \"f\");\n }\n constructor(backend, isOpen) {\n _Socket_instances.add(this);\n _Socket_receiveQueue.set(this, []);\n _Socket_sendQueue.set(this, []);\n _Socket_closed.set(this, false);\n _Socket_backend.set(this, void 0);\n _Socket_onMessage.set(this, void 0);\n _Socket_onClose.set(this, void 0);\n _Socket_onOpen.set(this, void 0);\n __classPrivateFieldSet(this, _Socket_backend, backend, \"f\");\n if (isOpen)\n __classPrivateFieldSet(this, _Socket_sendQueue, undefined, \"f\");\n __classPrivateFieldGet(this, _Socket_backend, \"f\").addEventListener(\"open\", () => {\n if (__classPrivateFieldGet(this, _Socket_onOpen, \"f\"))\n __classPrivateFieldGet(this, _Socket_onOpen, \"f\").call(this);\n __classPrivateFieldGet(this, _Socket_instances, \"m\", _Socket_handleOpen).bind(this);\n });\n __classPrivateFieldGet(this, _Socket_backend, \"f\").addEventListener(\"message\", async (event) => {\n const data = this.processReceived(event.data);\n __classPrivateFieldGet(this, _Socket_instances, \"m\", _Socket_handleOpen).call(this);\n if (__classPrivateFieldGet(this, _Socket_onMessage, \"f\"))\n __classPrivateFieldGet(this, _Socket_onMessage, \"f\").call(this, data);\n else\n __classPrivateFieldGet(this, _Socket_receiveQueue, \"f\")?.push(data);\n });\n __classPrivateFieldGet(this, _Socket_backend, \"f\").addEventListener(\"close\", () => {\n if (__classPrivateFieldGet(this, _Socket_onClose, \"f\"))\n __classPrivateFieldGet(this, _Socket_onClose, \"f\").call(this);\n __classPrivateFieldSet(this, _Socket_closed, true, \"f\");\n });\n }\n send(message) {\n if (__classPrivateFieldGet(this, _Socket_sendQueue, \"f\"))\n __classPrivateFieldGet(this, _Socket_sendQueue, \"f\").push(this.processSend(message));\n else\n __classPrivateFieldGet(this, _Socket_backend, \"f\").send(this.processSend(message));\n }\n}\n_Socket_receiveQueue = new WeakMap(), _Socket_sendQueue = new WeakMap(), _Socket_closed = new WeakMap(), _Socket_backend = new WeakMap(), _Socket_onMessage = new WeakMap(), _Socket_onClose = new WeakMap(), _Socket_onOpen = new WeakMap(), _Socket_instances = new WeakSet(), _Socket_handleOpen = function _Socket_handleOpen() {\n __classPrivateFieldGet(this, _Socket_sendQueue, \"f\")?.forEach(buffer => __classPrivateFieldGet(this, _Socket_backend, \"f\").send(buffer));\n __classPrivateFieldSet(this, _Socket_sendQueue, undefined, \"f\");\n};\n//# sourceMappingURL=Socket.js.map","import { Socket } from \"./Socket\";\nexport class ArrayBuffer extends Socket {\n processReceived(data) {\n return data?.arrayBuffer\n ? data.arrayBuffer()\n : typeof data == \"string\"\n ? new TextEncoder().encode(data).buffer\n : data;\n }\n processSend(data) {\n return data;\n }\n}\n//# sourceMappingURL=ArrayBuffer.js.map","import { Socket } from \"./Socket\";\nexport class Json extends Socket {\n processReceived(data) {\n return JSON.parse(data?.arrayBuffer\n ? new TextDecoder().decode(data.arrayBuffer())\n : typeof data != \"string\"\n ? new TextDecoder().decode(data)\n : data);\n }\n processSend(data) {\n return JSON.stringify(data);\n }\n}\n//# sourceMappingURL=Json.js.map","import { Socket } from \"./Socket\";\nexport class String extends Socket {\n processReceived(data) {\n return data?.arrayBuffer\n ? new TextDecoder().decode(data.arrayBuffer())\n : typeof data != \"string\"\n ? new TextDecoder().decode(data)\n : data;\n }\n processSend(data) {\n return data;\n }\n}\n//# sourceMappingURL=String.js.map","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _Factory_json, _Factory_string, _Factory_arrayBuffer;\nimport { ArrayBuffer as SocketArrayBuffer } from \"./ArrayBuffer\";\nimport { Json as SocketJson } from \"./Json\";\nimport { String as SocketString } from \"./String\";\nexport class Factory {\n get json() {\n if (!__classPrivateFieldGet(this, _Factory_json, \"f\"))\n __classPrivateFieldSet(this, _Factory_json, new SocketJson(this.backend, this.isOpen), \"f\");\n return __classPrivateFieldGet(this, _Factory_json, \"f\");\n }\n get string() {\n if (!__classPrivateFieldGet(this, _Factory_string, \"f\"))\n __classPrivateFieldSet(this, _Factory_string, new SocketString(this.backend, this.isOpen), \"f\");\n return __classPrivateFieldGet(this, _Factory_string, \"f\");\n }\n get arrayBuffer() {\n if (!__classPrivateFieldGet(this, _Factory_arrayBuffer, \"f\"))\n __classPrivateFieldSet(this, _Factory_arrayBuffer, new SocketArrayBuffer(this.backend, this.isOpen), \"f\");\n return __classPrivateFieldGet(this, _Factory_arrayBuffer, \"f\");\n }\n constructor(backend, isOpen) {\n this.backend = backend;\n this.isOpen = isOpen;\n _Factory_json.set(this, void 0);\n _Factory_string.set(this, void 0);\n _Factory_arrayBuffer.set(this, void 0);\n }\n createResponse(header = {}) {\n return { status: 101, socket: this, header };\n }\n close(code, reason) {\n this.backend.close(code, reason);\n }\n}\n_Factory_json = new WeakMap(), _Factory_string = new WeakMap(), _Factory_arrayBuffer = new WeakMap();\n//# sourceMappingURL=Factory.js.map","import { Factory as SocketFactory } from \"./Factory\";\nexport var Socket;\n(function (Socket) {\n Socket.Factory = SocketFactory;\n})(Socket || (Socket = {}));\n//# sourceMappingURL=index.js.map","import * as CamelCase from \"../CamelCase\";\nconst fields = [\n [\"accessControlAllowOrigin\", \"Access-Control-Allow-Origin\", 1],\n [\"accessControlAllowCredentials\", \"Access-Control-Allow-Credentials\", 1],\n [\"accessControlExposeHeaders\", \"Access-Control-Expose-Headers\", 2],\n [\"accessControlMaxAge\", \"Access-Control-Max-Age\", 1],\n [\"accessControlAllowMethods\", \"Access-Control-Allow-Methods\", 2],\n [\"accessControlAllowHeaders\", \"Access-Control-Allow-Headers\", 2],\n [\"acceptPatch\", \"Accept-Patch\", 1],\n [\"acceptRanges\", \"Accept-Ranges\", 1],\n [\"age\", \"Age\", 1],\n [\"allow\", \"Allow\", 2],\n [\"altSvc\", \"Alt-Svc\", 1],\n [\"cacheControl\", \"Cache-Control\", 1],\n [\"cfConnectionIp\", \"CF-Connecting-IP\", 1],\n [\"cfIpCountry\", \"CF-IPCountry\", 1],\n [\"connection\", \"Connection\", 1],\n [\"contentDisposition\", \"Content-Disposition\", 1],\n [\"contentEncoding\", \"Content-Encoding\", 1],\n [\"contentLanguage\", \"Content-Language\", 2],\n [\"contentLength\", \"Content-Length\", 1],\n [\"contentLocation\", \"Content-Location\", 1],\n [\"contentMD5\", \"Content-MD5\", 1],\n [\"contentRange\", \"Content-Range\", 1],\n [\"contentSecurityPolicy\", \"Content-Security-Policy\", 1],\n [\"contentType\", \"Content-Type\", 1],\n [\"date\", \"Date\", 1],\n [\"deltaBase\", \"Delta-Base\", 1],\n [\"eTag\", \"ETag\", 1],\n [\"expires\", \"Expires\", 1],\n [\"iM\", \"IM\", 1],\n [\"lastModified\", \"Last-Modified\", 1],\n [\"link\", \"Link\", 1],\n [\"location\", \"Location\", 1],\n [\"p3P\", \"P3P\", 1],\n [\"pragma\", \"Pragma\", 1],\n [\"proxyAuthenticate\", \"Proxy-Authenticate\", 1],\n [\"publicKeyPins\", \"Public-Key-Pins\", 1],\n [\"refresh\", \"Refresh\", 1],\n [\"retryAfter\", \"Retry-After\", 1],\n [\"server\", \"Server\", 1],\n [\"setCookie\", \"Set-Cookie\", 1],\n [\"status\", \"Status\", 1],\n [\"strictTransportSecurity\", \"Strict-Transport-Security\", 1],\n [\"timingAllowOrigin\", \"Timing-Allow-Origin\", 2],\n [\"trailer\", \"Trailer\", 1],\n [\"transferEncoding\", \"Transfer-Encoding\", 1],\n [\"tk\", \"Tk\", 1],\n [\"upgrade\", \"Upgrade\", 2],\n [\"vary\", \"Vary\", 2],\n [\"via\", \"Via\", 1],\n [\"warning\", \"Warning\", 1],\n [\"wwwAuthenticate\", \"WWW-Authenticate\", 1],\n [\"xContentDuration\", \"X-Content-Duration\", 1],\n [\"xContentSecurityPolicy\", \"X-Content-Security-Policy\", 1],\n [\"xContentTypeOptions\", \"X-Content-Type-Options\", 1],\n [\"xCorrelationId\", \"X-Correlation-ID\", 1],\n [\"xFrameOptions\", \"X-Frame-Options\", 1],\n [\"xMsContinuation\", \"X-Ms-Continuation\", 1],\n [\"xPoweredBy\", \"X-Powered-By\", 1],\n [\"xRequestId\", \"X-Request-ID\", 1],\n [\"xUACompatible\", \"X-UA-Compatible\", 1],\n [\"xWebkitCsp\", \"X-WebKit-CSP\", 1],\n [\"xXssProtection\", \"X-XSS-Protection\", 1],\n];\nexport var Header;\n(function (Header) {\n function is(value) {\n function isString(value) {\n return value == undefined || typeof value == \"string\";\n }\n function isStringArray(value) {\n return value == undefined || (Array.isArray(value) && value.every(v => typeof v == \"string\"));\n }\n return (typeof value == \"object\" && fields.every(field => (field[2] == 1 ? isString : isStringArray)(value[field[0]])));\n }\n Header.is = is;\n function to(header) {\n return Object.fromEntries(Object.entries(header).map(([name, value]) => {\n const field = fields.find(([camelCase, ..._]) => camelCase == name);\n return [field ? field[1] : CamelCase.from(name), Array.isArray(value) ? value.join(\", \") : value];\n }));\n }\n Header.to = to;\n function from(headers) {\n return Object.fromEntries((Array.isArray(headers)\n ? headers.map(([field, ...value]) => [field, value.join(\", \")])\n : isHeaders(headers)\n ? getEntries(headers)\n : Object.entries(headers)).map(([name, value]) => {\n const field = fields.find(([c, n, l]) => name.toLowerCase() == n.toLowerCase());\n return field\n ? [field[0], field[2] == 1 || typeof value != \"string\" ? value : value.split(\",\").map(v => v.trim())]\n : [CamelCase.to(name), value];\n }));\n }\n Header.from = from;\n function toString(header) {\n return Object.entries(header)\n .map(([header, value]) => header + \": \" + value)\n .join(\"\\n\");\n }\n Header.toString = toString;\n function isHeaders(value) {\n return typeof value.forEach == \"function\";\n }\n function getEntries(headers) {\n const result = [];\n headers.forEach((value, key) => result.push([key, value]));\n return result;\n }\n})(Header || (Header = {}));\n//# sourceMappingURL=Header.js.map","import { Header } from \"./Header\";\nexport var Like;\n(function (Like) {\n function is(value) {\n return (typeof value == \"object\" &&\n Object.keys(value).every(key => [\"status\", \"header\", \"body\", \"socket\"].some(property => property == key)) &&\n (value.status == undefined || typeof value.status == \"number\") &&\n (value.header == undefined || Header.is(value.header)) &&\n (value.socket == undefined ||\n (typeof value.socket.close == \"function\" &&\n typeof value.socket.json?.send == \"function\" &&\n typeof value.socket.string?.send == \"function\" &&\n typeof value.socket.arrayBuffer?.send == \"function\")) &&\n (value.status != undefined || value.header != undefined || value.body != undefined));\n }\n Like.is = is;\n})(Like || (Like = {}));\n//# sourceMappingURL=Like.js.map","import * as Parser from \"../Parser\";\nimport * as Platform from \"../Platform\";\nimport * as Serializer from \"../Serializer\";\nimport { Socket } from \"../Socket\";\nimport { Header as ResponseHeader } from \"./Header\";\nimport { Like as ResponseLike } from \"./Like\";\nexport var Response;\n(function (Response) {\n function is(value) {\n return (typeof value == \"object\" &&\n Object.keys(value).every(key => [\"status\", \"header\", \"body\", \"socket\"].some(k => k == key)) &&\n (value.status == undefined || typeof value.status == \"number\") &&\n (value.header == undefined || ResponseHeader.is(value.header)) &&\n (value.socket == undefined || value.socket instanceof WebSocket));\n }\n Response.is = is;\n async function to(request) {\n return new Platform.Response(await Serializer.serialize(await request.body, request.header.contentType), {\n status: request.status,\n headers: new Headers(ResponseHeader.to(!request.header.contentType?.startsWith(\"multipart/formdata\")\n ? request.header\n : (({ contentType, ...header }) => header)(request.header))),\n ...(request.socket && {\n webSocket: { ...request.socket.createResponse().socket }?.backend,\n }),\n });\n }\n Response.to = to;\n function from(response) {\n return {\n status: response.status,\n header: ResponseHeader.from(response.headers),\n body: response.status == 101 ? undefined : Parser.parse(response),\n ...(response.webSocket && { socket: new Socket.Factory(response.webSocket) }),\n };\n }\n Response.from = from;\n function create(response, contentType) {\n const result = ResponseLike.is(response)\n ? {\n status: 200,\n header: {},\n body: undefined,\n ...(response.socket && { socket: response.socket }),\n ...response,\n }\n : typeof response?.createResponse == \"function\" && (contentType == undefined || ResponseHeader.is(contentType))\n ? response.createResponse(contentType)\n : {\n status: (typeof response == \"object\" && typeof response.status == \"number\" && response.status) || 200,\n header: typeof response == \"object\"\n ? {\n ...response.header,\n ...((response.status == 301 || response.status == 302) && response.location\n ? { location: response.location }\n : {}),\n }\n : {},\n body: !(typeof response == \"object\" && !Array.isArray(response)) ||\n response instanceof ArrayBuffer ||\n ArrayBuffer.isView(response) ||\n response instanceof FormData\n ? response\n : (({ header, ...body }) => body)(response),\n ...((response.webSocket && { socket: new Socket.Factory(response.webSocket) }) ||\n (response.socket && { socket: response.socket })),\n };\n if (!result.header.contentType)\n switch (typeof result.body) {\n case \"undefined\":\n break;\n default:\n case \"object\":\n result.header.contentType =\n typeof contentType == \"string\"\n ? contentType\n : contentType?.contentType\n ? contentType.contentType\n : result.body instanceof FormData\n ? \"multipart/formdata\"\n : result.body instanceof ArrayBuffer || ArrayBuffer.isView(result.body)\n ? isPdf(result.body)\n ? \"application/pdf\"\n : \"application/octet-stream\"\n : \"application/json; charset=utf-8\";\n break;\n case \"string\":\n result.header.contentType =\n result.body.slice(0, 9).toLowerCase() == \"<!doctype\"\n ? \"text/html; charset=utf-8\"\n : /^[A-Za-z0-9-_=]+\\.[A-Za-z0-9-_=]+\\.?[A-Za-z0-9-_.+/=]*$/.test(result.body)\n ? \"application/jwt; charset=utf-8\"\n : /^<\\?xml version=(.|\\n)*\\?>(.|\\n)*<svg(.|\\n)*<\\/svg>$/.test(result.body)\n ? \"image/svg+xml\"\n : \"text/plain; charset=utf-8\";\n break;\n }\n return result;\n }\n Response.create = create;\n function isPdf(body) {\n const bytes = new Uint8Array(ArrayBuffer.isView(body) ? body.buffer : body).slice(0, 4);\n return [37, 80, 68, 70].every((current, index) => current == bytes[index]);\n }\n Response.Header = ResponseHeader;\n Response.Like = ResponseLike;\n})(Response || (Response = {}));\n//# sourceMappingURL=index.js.map","import { Request } from \"./Request\";\nimport { Response } from \"./Response\";\nexport const fetch = create(globalThis.fetch);\nfetch.create = create;\nfunction create(fetch) {\n return async (request) => {\n const r = Request.create(request);\n return Response.from(await fetch(r.url.toString(), await Request.to(r)));\n };\n}\n//# sourceMappingURL=fetch.js.map","export var FormData;\n(function (FormData) {\n function to(data) {\n const result = new globalThis.FormData();\n result.append(\"*\", new globalThis.Blob([new TextEncoder().encode(JSON.stringify(toHelperObject(data, \"\", result)))], {\n type: \"application/json; charset=utf-8\",\n }));\n return result;\n }\n FormData.to = to;\n function toHelperObject(data, name, form) {\n return Object.entries(data).reduce((result, [key, value]) => {\n value instanceof Blob\n ? form.append(name ? `${name}.${key}` : key, value)\n : typeof value == \"object\" && value\n ? Array.isArray(value)\n ? (result[key] = toHelperArray(value, name ? `${name}.${key}` : key, form))\n : (result[key] = toHelperObject(value, name ? `${name}.${key}` : key, form))\n : (result[key] = value);\n return result;\n }, {});\n }\n function toHelperArray(data, name, form) {\n return data.reduce((result, value) => {\n typeof value == \"object\" && value\n ? Array.isArray(value)\n ? result.push(toHelperArray(value, name, form))\n : result.push(toHelperObject(value, name, form))\n : result.push(value);\n return result;\n }, []);\n }\n async function from(form) {\n const result = {};\n for (const [name, value] of form.entries())\n await set(result, name.split(\".\"), value);\n return result;\n }\n FormData.from = from;\n async function set(data, [head, ...tail], value) {\n if (tail.length == 0)\n value instanceof Blob && value.type.startsWith(\"application/json\")\n ? head == \"*\"\n ? merge(data, JSON.parse(await value.text()))\n : typeof data[head] == \"object\" && data[head]\n ? merge(data[head], JSON.parse(await value.text()))\n : (data[head] = JSON.parse(await value.text()))\n : (data[head] = value);\n else\n set(typeof data[head] == \"object\" && data[head] ? data[head] : (data[head] = {}), tail, value);\n }\n function merge(target, ...sources) {\n if (sources.length) {\n const [head, ...tail] = sources;\n Object.entries(head).forEach(([key, value]) => isObject(value)\n ? merge(isObject(target[key]) ? target[key] : (target[key] = {}), value)\n : (target[key] = head[key]));\n merge(target, ...tail);\n }\n }\n function isObject(value) {\n return value && typeof value == \"object\" && !Array.isArray(value);\n }\n FormData.isObject = isObject;\n})(FormData || (FormData = {}));\n//# sourceMappingURL=FormData.js.map","export function stringify(data) {\n const result = [];\n const map = (key, value) => {\n switch (typeof value) {\n default:\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n result.push(`${key}=${encodeURIComponent(value.toString())}`);\n break;\n case \"undefined\":\n break;\n case \"object\":\n for (const property in value)\n if (Object.prototype.hasOwnProperty.call(value, property))\n map(key ? key + `[${property}]` : property, value[property]);\n break;\n }\n };\n map(\"\", data);\n return result.join(\"&\");\n}\nexport function parse(data) {\n const convertArrays = (target) => {\n return typeof target == \"object\" &&\n Object.keys(target)\n .sort()\n .every((k, i) => `${k}` == `${i}`)\n ? Object.entries(target)\n .sort()\n .map(entry => (typeof entry[1] == \"object\" ? convertArrays(entry[1]) : entry[1]))\n : typeof target == \"object\"\n ? Object.fromEntries(Object.entries(target).map(entry => [entry[0], convertArrays(entry[1])]))\n : target;\n };\n const insert = (target, key, value) => {\n target[key[0]] = key.length > 1 ? insert(target[key[0]] ?? {}, key.slice(1), value) : value;\n return target;\n };\n const entries = data\n .split(\"&\")\n .map(d => d.split(\"=\", 2))\n .map(([k, v]) => [\n decodeURIComponent(k)\n .split(\"[\")\n .map(p => p.replace(\"]\", \"\")),\n decodeURIComponent(v.replace(/\\+/g, \" \")),\n ]);\n return entries.reduce((result, [key, value]) => convertArrays(insert(result, key, value)), {});\n}\n//# sourceMappingURL=Search.js.map","import { Client } from \"./Client\";\nimport { fetch } from \"./fetch\";\nimport { FormData } from \"./FormData\";\nimport * as http from \"./http\";\nimport { Method } from \"./Method\";\nimport * as Parser from \"./Parser\";\nimport { Request } from \"./Request\";\nimport { Response } from \"./Response\";\nimport * as Search from \"./Search\";\nimport * as Serializer from \"./Serializer\";\nimport { Socket } from \"./Socket\";\nParser.add(async (request) => await request.text(), \"text/plain\", \"text/html\");\nParser.add(async (request) => await request.json(), \"application/json\");\nParser.add(async (request) => await request.arrayBuffer(), \"application/pdf\");\nParser.add(async (request) => FormData.from(await request.formData()), \"multipart/form-data\");\nParser.add(async (request) => Search.parse(await request.text()), \"application/x-www-form-urlencoded\");\nSerializer.add(async (body) => (typeof body == \"string\" ? body : body.toString()), \"text/plain\", \"text/html\");\nSerializer.add(async (body) => JSON.stringify(body), \"application/json\");\nSerializer.add(async (body) => body, \"application/pdf\");\nSerializer.add(async (body) => Search.stringify(body), \"application/x-www-form-urlencoded\");\nSerializer.add(async (body) => (body instanceof globalThis.FormData ? body : FormData.to(body)), \"multipart/form-data\");\nexport { Client, fetch, FormData, Method, Parser, Request, Response, Search, Serializer, Socket, http };\n//# sourceMappingURL=index.js.map","export interface Clearable {\n\tclear(): Promise<void>\n}\nexport namespace Clearable {\n\texport function is(value: Clearable | any): value is Clearable {\n\t\treturn value && typeof value == \"object\" && typeof value.clear == \"function\"\n\t}\n}\n","import { Editable } from \".\"\n\nexport type Listener = (parent: Editable) => Promise<void>\n\nexport class Observer {\n\tprivate callbacks: Listener[] = []\n\tconstructor(private parent: Editable) {}\n\n\tasync subscribe(callback: Listener) {\n\t\tthis.callbacks.push(callback)\n\t\tawait callback(this.parent)\n\t}\n\n\tasync publish() {\n\t\tPromise.all(this.callbacks.map(callback => callback(this.parent)))\n\t}\n\n\tstatic create(parent: Editable) {\n\t\treturn new Observer(parent)\n\t}\n}\n","import { EventEmitter } from \"@stencil/core\"\nimport { isly } from \"isly\"\nimport { Listener as ObserverListener, Observer as EditableObserver } from \"./Observer\"\n\nexport interface Editable extends Editable.Element {\n\tisDifferentFromInitial: boolean\n\tvalue?: any\n\tsmoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n}\n\nexport namespace Editable {\n\texport const Observer = EditableObserver\n\texport namespace Observer {\n\t\texport type Listener = ObserverListener\n\t}\n\texport interface Element {\n\t\tedit: Editable.Edit\n\t\treset: Editable.Reset\n\t\treadonly: boolean\n\t\tlisten: Editable.Listen\n\t\tsetInitialValue: () => void\n\t}\n\texport namespace Element {\n\t\texport const type = isly.object<Element>({\n\t\t\tedit: isly.function(),\n\t\t\treadonly: isly.boolean(),\n\t\t\tlisten: isly.function<Listen>(),\n\t\t\treset: isly.function<Reset>(),\n\t\t\tsetInitialValue: isly.function(),\n\t\t})\n\t\texport const is = type.is\n\t}\n\texport type Listen = (listener: Observer.Listener) => void\n\texport type Edit = (editable: boolean) => Promise<void>\n\texport type Reset = () => Promise<void>\n\tconst EventEmitter = isly.object<EventEmitter>({ emit: isly.function<EventEmitter[\"emit\"]>() })\n\texport const type = Element.type.extend<Editable>({\n\t\tisDifferentFromInitial: isly.boolean(),\n\t\tvalue: isly.any().optional(),\n\t\tsmoothlyFormDisable: EventEmitter,\n\t})\n\texport const is = type.is\n}\n","import { isly } from \"isly\"\n\nexport type Looks = typeof Looks.values[number]\n\nexport namespace Looks {\n\texport const values = [\"plain\", \"grid\", \"border\", \"line\", \"transparent\"] as const\n\texport const type = isly.string(values)\n\texport const is = type.is\n}\n","import { EventEmitter } from \"@stencil/core\"\nimport { isly } from \"isly\"\nimport { Color, Data } from \"../../model\"\nimport { SmoothlyForm } from \"../form\"\nimport { Editable } from \"./Editable\"\nimport { Key } from \"./Key\"\nimport { Looks } from \"./Looks\"\n\nexport interface Input extends Input.Element {\n\tsmoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\tsmoothlyInput: EventEmitter<Data> // Used for smoothly-form\n\tsmoothlyUserInput: EventEmitter<Input.UserInput>\n\tsmoothlyKeydown?: EventEmitter<Key>\n\tsmoothlyInputForm?: EventEmitter<Record<string, Data>>\n\tparent: Editable | undefined\n}\nexport namespace Input {\n\texport type UserInput<T = any> = { name: string; value: T }\n\texport interface Element {\n\t\tregister: () => Promise<void>\n\t\tunregister: () => Promise<void>\n\t\tgetValue: GetValue\n\t\tdisabled?: boolean\n\t\tcolor?: Color\n\t\tname: string\n\t\tinvalid?: boolean\n\t\tlooks?: Looks\n\t\tdefined?: boolean\n\t\tbinary?: Binary\n\t}\n\texport namespace Element {\n\t\texport const type = isly.object<Element>({\n\t\t\tregister: isly.function<() => Promise<void>>(),\n\t\t\tunregister: isly.function<() => Promise<void>>(),\n\t\t\tgetValue: isly.function<GetValue>(),\n\t\t\tdisabled: isly.boolean().optional(),\n\t\t\tcolor: Color.type.optional(),\n\t\t\tname: isly.string(),\n\t\t\tinvalid: isly.boolean().optional(),\n\t\t\tlooks: Looks.type.optional(),\n\t\t\tdefined: isly.boolean().optional(),\n\t\t\tbinary: isly.function<Binary>().optional(),\n\t\t})\n\t\texport const is = type.is\n\t}\n\texport type GetValue = () => Promise<any>\n\texport type Binary = () => Promise<boolean>\n\tconst EventEmitter = isly.object<EventEmitter>({ emit: isly.function<EventEmitter[\"emit\"]>() })\n\texport const type = Element.type.extend<Input>({\n\t\tsmoothlyInputLoad: EventEmitter,\n\t\tsmoothlyInput: EventEmitter,\n\t\tsmoothlyUserInput: EventEmitter,\n\t\tsmoothlyKeydown: EventEmitter.optional(),\n\t\tsmoothlyInputForm: EventEmitter.optional(),\n\t\tparent: Editable.type.optional(),\n\t})\n\texport const is = type.is\n\n\texport function formRemove(self: Input, name?: string) {\n\t\tif (self.parent instanceof SmoothlyForm)\n\t\t\tself.parent.removeInput(name ?? self.name)\n\t}\n\texport function formAdd(self: Input) {\n\t\tself.smoothlyInputLoad.emit(parent => (self.parent = parent))\n\t}\n\texport function formRename(self: Input, oldName?: string) {\n\t\tif (oldName)\n\t\t\tformRemove(self, oldName)\n\t\tformAdd(self)\n\t}\n\n\t/* For adding clear, edit, reset that is inside input etc. - should be called on smoothlyInputLoad */\n\texport function registerSubAction(self: Input & Editable, event: CustomEvent<(parent: Editable) => void>) {\n\t\tif (!(event.target && \"name\" in event.target && event.target.name === self.name)) {\n\t\t\tevent.stopPropagation()\n\t\t\tevent.detail(self)\n\t\t}\n\t}\n}\n","smoothly-form {\n\tdisplay: block;\n\tposition: relative;\n}\nsmoothly-form > form {\n\tposition: relative;\n}\nsmoothly-form > form > fieldset {\n\tdisplay: flex;\n\tflex-flow: row wrap;\n\tmargin-inline-start: unset;\n\tmargin-inline-end: unset;\n\tpadding-block-start: unset;\n\tpadding-inline-start: unset;\n\tpadding-inline-end: unset;\n\tpadding-block-end: unset;\n\tmin-inline-size: unset;\n\tborder-width: unset;\n\tborder-style: unset;\n\tborder-color: unset;\n\tborder-image: unset;\n}\nsmoothly-form > form > fieldset > * {\n\tflex-grow: 1;\n\tmin-width: min(100%, var(--smoothly-form-input-min-width, 14rem));\n\tflex-basis: 40%;\n}\n\nsmoothly-form[looks=\"line\"] > form > fieldset,\nsmoothly-form[looks=\"border\"] > form > fieldset,\nsmoothly-form[looks=\"transparent\"] > form > fieldset {\n\trow-gap: var(--smoothly-form-row-gap, 2rem);\n\tcolumn-gap: var(--smoothly-form-column-gap, 2rem);\n}\nsmoothly-form[looks=\"grid\"] > form > fieldset {\n\tpadding: 1px;\n\tgap: 1px;\n}\n\nsmoothly-form > form > div:not(:empty) {\n\tdisplay: flex;\n\tjustify-content: end;\n\tgap: 1em;\n\tmargin-top: 1.5rem;\n}\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tWatch,\n} from \"@stencil/core\"\nimport { http } from \"cloudly-http\"\nimport { isly } from \"isly\"\nimport { SmoothlyFormCustomEvent } from \"../../components\"\nimport { Key } from \"../../components/input/Key\"\nimport { Color, Data, Notice, Submit } from \"../../model\"\nimport { Clearable } from \"../input/Clearable\"\nimport { Editable } from \"../input/Editable\"\nimport { Input } from \"../input/Input\"\nimport { Looks } from \"../input/Looks\"\nimport { Submittable } from \"../input/Submittable\"\n\n@Component({\n\ttag: \"smoothly-form\",\n\tstyleUrl: \"style.css\",\n})\nexport class SmoothlyForm implements ComponentWillLoad, Clearable, Submittable, Editable {\n\t@Element() element: HTMLSmoothlyFormElement\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ mutable: true }) value: Readonly<Data> = {}\n\t@Prop() action?: string\n\t@Prop() validator?: isly.Type<any>\n\t@Prop() type?: \"update\" | \"change\" | \"fetch\" | \"create\" = this.action ? \"create\" : undefined\n\t@Prop({ mutable: true }) readonly = false\n\t@Prop({ reflect: true, attribute: \"looks\" }) looks?: Looks\n\t@Prop({ reflect: true }) name?: string\n\t@Prop() prevent = true\n\t@Prop({ mutable: true }) processing?: Promise<boolean>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\t@Event() smoothlyFormInput: EventEmitter<Data>\n\t@Event() smoothlyFormSubmit: EventEmitter<Submit>\n\t@Event() smoothlyFormReset: EventEmitter<void>\n\t@Event() smoothlyFormEdit: EventEmitter<boolean>\n\t@Event() smoothlyFormClear: EventEmitter<void>\n\t@Event() notice: EventEmitter<Notice>\n\tisDifferentFromInitial = false\n\tprivate contentType: \"json\" | \"form-data\" = \"json\"\n\tprivate inputs = new Map<string, Input.Element>()\n\tprivate readonlyAtLoad = this.readonly\n\tprivate observer = Editable.Observer.create(this)\n\n\tcomponentWillLoad(): void {\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t}\n\t@Method()\n\tasync removeInput(name: string) {\n\t\tif (this.element.isConnected) {\n\t\t\tthis.value = Data.remove(this.value, name)\n\t\t\tthis.inputs.delete(name)\n\t\t\tthis.smoothlyFormInput.emit(Data.convertArrays(this.value))\n\t\t}\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\t@Watch(\"value\")\n\tasync watchValue() {\n\t\tthis.isDifferentFromInitial = [...this.inputs.values()].some(input =>\n\t\t\tEditable.type.is(input) ? input.isDifferentFromInitial : true\n\t\t)\n\t\tif (this.validator) {\n\t\t\tconst flaws = this.validator\n\t\t\t\t?.flaw(Data.convertArrays(this.value))\n\t\t\t\t.flaws?.reduce((r: Record<string, isly.Flaw>, f) => (f.property ? { ...r, [f.property]: f } : r), {})\n\t\t\tfor (const [property, input] of this.inputs.entries()) {\n\t\t\t\tthis.validate(flaws, property, input)\n\t\t\t}\n\t\t}\n\t\tthis.observer.publish()\n\t}\n\tvalidate(flaws: Record<string, isly.Flaw> | undefined, property: string, input: Input.Element) {\n\t\tif (property.includes(\".\")) {\n\t\t\tconst [key, ...rest] = property.split(\".\")\n\t\t\tconst nestedFlaws = flaws?.[key]?.flaws ?? []\n\t\t\tthis.validate(\n\t\t\t\tnestedFlaws.reduce((r: Record<string, isly.Flaw>, f) => (f.property ? { ...r, [f.property]: f } : r), {}),\n\t\t\t\trest.join(\".\"),\n\t\t\t\tinput\n\t\t\t)\n\t\t} else {\n\t\t\tconst flaw = flaws?.[property]\n\t\t\tinput && (input.invalid = !!flaw)\n\t\t}\n\t}\n\t@Watch(\"readonly\")\n\twatchReadonly() {\n\t\tthis.observer.publish()\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks?: Looks, color?: Color) => void>) {\n\t\tevent.stopPropagation()\n\t\tevent.detail(this.looks, this.color)\n\t}\n\t@Listen(\"smoothlyInput\")\n\tasync smoothlyInputHandler(event: CustomEvent<Record<string, any>>): Promise<void> {\n\t\tthis.value = Data.merge(this.value, event.detail)\n\t\tthis.smoothlyFormInput.emit(Data.convertArrays(this.value))\n\t}\n\t@Listen(\"smoothlyKeydown\")\n\tasync smoothlyKeydownHandler(event: CustomEvent<Key>): Promise<void> {\n\t\tif (event.detail.key == \"Enter\" && this.inputs.has(event.detail.name)) {\n\t\t\tevent.stopPropagation()\n\t\t\tawait this.submit()\n\t\t}\n\t}\n\t@Listen(\"smoothlyFormSubmit\", { target: \"window\" })\n\twindowSubmitHandler(event: SmoothlyFormCustomEvent<Submit>): void {\n\t\tevent.target == this.element && event.detail.result(false)\n\t}\n\t@Listen(\"smoothlyFormSubmit\")\n\tsubmitHandler(event: SmoothlyFormCustomEvent<Submit>): void {\n\t\tthis.action && event.stopPropagation()\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tasync smoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyForm) => void>): Promise<void> {\n\t\tevent.stopPropagation()\n\t\tevent.detail(this)\n\t\tconst inputComponent = event.target\n\t\tif (Input.Element.is(inputComponent)) {\n\t\t\tif (await inputComponent.binary?.())\n\t\t\t\tthis.contentType = \"form-data\"\n\t\t\tconst inputValue = await inputComponent.getValue() // Needs to await value separately to avoid race condition\n\t\t\tthis.value = Data.merge(this.value, { [inputComponent.name]: inputValue })\n\t\t\tthis.smoothlyFormInput.emit(Data.convertArrays(this.value))\n\t\t\tthis.inputs.set(inputComponent.name, inputComponent)\n\t\t}\n\t}\n\t@Listen(\"smoothlyFormDisable\")\n\tasync smoothlyFormDisableHandler(event: CustomEvent): Promise<void> {\n\t\tevent.stopPropagation()\n\t\tevent.detail(this.readonly)\n\t}\n\t@Method()\n\tasync submit(remove?: boolean): Promise<void> {\n\t\tthis.processing = new Promise(resolve => {\n\t\t\tthis.smoothlyFormSubmit.emit({\n\t\t\t\tvalue: Data.convertArrays(this.value),\n\t\t\t\tresult: resolve,\n\t\t\t\ttype: remove == true ? \"remove\" : this.type,\n\t\t\t})\n\t\t\tif (this.action) {\n\t\t\t\tconst action = this.action\n\t\t\t\tthis.notice.emit(\n\t\t\t\t\tNotice.execute(\"Submitting form\", async () => {\n\t\t\t\t\t\tconst method = remove\n\t\t\t\t\t\t\t? \"DELETE\"\n\t\t\t\t\t\t\t: !this.type || this.type == \"create\"\n\t\t\t\t\t\t\t? \"POST\"\n\t\t\t\t\t\t\t: this.type == \"change\"\n\t\t\t\t\t\t\t? \"PUT\"\n\t\t\t\t\t\t\t: this.type == \"update\"\n\t\t\t\t\t\t\t? \"PATCH\"\n\t\t\t\t\t\t\t: \"GET\"\n\t\t\t\t\t\tconst response = await http\n\t\t\t\t\t\t\t.fetch(\n\t\t\t\t\t\t\t\thttp.Request.create(\n\t\t\t\t\t\t\t\t\tmethod == \"GET\"\n\t\t\t\t\t\t\t\t\t\t? { method, url: `${action}?${http.Search.stringify(this.value)}` }\n\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\tmethod,\n\t\t\t\t\t\t\t\t\t\t\t\turl: action,\n\t\t\t\t\t\t\t\t\t\t\t\t...(this.value && {\n\t\t\t\t\t\t\t\t\t\t\t\t\theader: { contentType: this.contentType ? \"multipart/form-data\" : \"application/json\" },\n\t\t\t\t\t\t\t\t\t\t\t\t\tbody: this.value,\n\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.catch(() => undefined)\n\t\t\t\t\t\tconst result =\n\t\t\t\t\t\t\t!response || response?.status < 200 || response.status >= 300\n\t\t\t\t\t\t\t\t? ([false, \"Failed to submit form.\"] as const)\n\t\t\t\t\t\t\t\t: ([true, \"Form successfully submitted.\"] as const)\n\t\t\t\t\t\tresolve(result[0])\n\t\t\t\t\t\treturn [...result]\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t\tif (await this.processing) {\n\t\t\tthis.type == \"create\" && (await this.clear())\n\t\t\tawait this.setInitialValue()\n\t\t\tthis.readonlyAtLoad && (await this.edit(!this.readonlyAtLoad))\n\t\t}\n\t\tthis.processing = undefined\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tawait Promise.all([...this.inputs.values()].map(async input => Clearable.is(input) && input.clear()))\n\t\tthis.smoothlyFormClear.emit()\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tawait Promise.all(\n\t\t\t[...this.inputs.values()].map(async input => Editable.Element.type.is(input) && input.edit(editable))\n\t\t)\n\t\tthis.readonly = !editable\n\t\tthis.smoothlyFormEdit.emit(editable)\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tawait Promise.all([...this.inputs.values()].map(input => Editable.Element.type.is(input) && input.reset()))\n\t\tthis.isDifferentFromInitial = [...this.inputs.values()].some(input =>\n\t\t\tEditable.type.is(input) ? input.isDifferentFromInitial : true\n\t\t)\n\t\tthis.smoothlyFormReset.emit()\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tawait Promise.all(\n\t\t\t[...this.inputs.values()].map(input => Editable.Element.type.is(input) && input.setInitialValue())\n\t\t)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-spinner overlay hidden={!this.processing} />\n\t\t\t\t<form onSubmit={!this.prevent ? undefined : e => e.preventDefault()} name={this.name}>\n\t\t\t\t\t<fieldset>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</fieldset>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<slot name=\"clear\" />\n\t\t\t\t\t\t<slot name=\"edit\" />\n\t\t\t\t\t\t<slot name=\"reset\" />\n\t\t\t\t\t\t<slot name=\"delete\" />\n\t\t\t\t\t\t<slot name=\"submit\" />\n\t\t\t\t\t</div>\n\t\t\t\t</form>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\tmargin-top: 2em;\n\tmargin-bottom: 10em;\n}\n\n:host>div {\n\tmargin: auto;\n\twidth: 1200px;\n\tmax-width: calc(100% - 0.5rem);\n}\n","import { Component, h, Host, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-form-demo\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyFormDemo {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div>\n\t\t\t\t\t<smoothly-form-demo-all />\n\t\t\t\t\t<smoothly-form-demo-pet />\n\t\t\t\t\t<smoothly-form-demo-card />\n\t\t\t\t\t<smoothly-form-demo-login />\n\t\t\t\t\t<smoothly-form-demo-prices />\n\t\t\t\t\t<smoothly-form-demo-typed />\n\t\t\t\t\t<smoothly-form-demo-transparent />\n\t\t\t\t\t<smoothly-form-demo-date />\n\t\t\t\t\t<smoothly-form-demo-schedule />\n\t\t\t\t\t<smoothly-form-demo-date-range />\n\t\t\t\t\t<smoothly-form-demo-controlled />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Component, h, Host, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-form-demo-all\",\n\tscoped: true,\n})\nexport class SmoothlyFormDemoAll {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>All inputs</h2>\n\t\t\t\t<smoothly-form\n\t\t\t\t\tlooks=\"grid\"\n\t\t\t\t\ttype=\"create\"\n\t\t\t\t\treadonly\n\t\t\t\t\taction=\"https://api.toiletapi.com/upload/6b12fd2f-e896-46f9-b38f-25cf42cee4b4\"\n\t\t\t\t\tonSmoothlyFormSubmit={e => {\n\t\t\t\t\t\tObject.entries(e.detail.value).forEach(([key, value]) => console.log(key, value))\n\t\t\t\t\t}}>\n\t\t\t\t\t<smoothly-input readonly name=\"First Name\" value=\"John\">\n\t\t\t\t\t\tFirst name\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input showLabel={false} name=\"Last name\" value=\"Doe\">\n\t\t\t\t\t\tLast name\n\t\t\t\t\t\t<smoothly-input-clear size=\"icon\" slot=\"end\" />\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"phone\" name=\"Phone\" value={\"777888999\"}>\n\t\t\t\t\t\tPhone\n\t\t\t\t\t\t<smoothly-input-reset size=\"icon\" slot=\"end\" />\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input-radio clearable name=\"radioFirstInput\">\n\t\t\t\t\t\t<label slot=\"label\">Clearable</label>\n\t\t\t\t\t\t<smoothly-input-radio-item value={\"first\"}>Label 1</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-radio-item selected value={\"second\"}>\n\t\t\t\t\t\t\tLabel 2\n\t\t\t\t\t\t</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-radio-item value={\"third\"}>Label 3</smoothly-input-radio-item>\n\t\t\t\t\t</smoothly-input-radio>\n\t\t\t\t\t<smoothly-input-color name=\"color\">Color</smoothly-input-color>\n\t\t\t\t\t<smoothly-input-select multiple menuHeight=\"7.5items\" placeholder=\"Select...\" name=\"select-month\">\n\t\t\t\t\t\t<label slot=\"label\">Month multiple select</label>\n\t\t\t\t\t\t<smoothly-item value=\"1\">January</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"2\">February</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"3\">March</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"4\">April</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"5\">May</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"6\">June</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"7\">July</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"8\">August</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"9\">September</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"10\">October</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"11\">November</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"12\">December</smoothly-item>\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<smoothly-input-select name=\"select-icon\" clearable={false} showSelected={false}>\n\t\t\t\t\t\t<smoothly-item value=\"folder\" selected>\n\t\t\t\t\t\t\t<smoothly-icon size=\"small\" name=\"folder-outline\" />\n\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"camera\">\n\t\t\t\t\t\t\t<smoothly-icon size=\"small\" name=\"camera-outline\" />\n\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<smoothly-input-checkbox name=\"checkbox\">Check the box</smoothly-input-checkbox>\n\t\t\t\t\t<smoothly-input-checkbox name=\"checkbox2\" checked>\n\t\t\t\t\t\tCheck the box 2\n\t\t\t\t\t</smoothly-input-checkbox>\n\t\t\t\t\t<smoothly-input-range step={1} name=\"range3\" value={20} label=\"Range\" />\n\t\t\t\t\t<smoothly-input name=\"pets.0.name\">First Pet's Name</smoothly-input>\n\t\t\t\t\t<smoothly-input-range name=\"pets.0.age\" max={100} step={1} label=\"First Pet's Age\" />\n\t\t\t\t\t<smoothly-input name=\"pets.1.name\">Second Pet's Name</smoothly-input>\n\t\t\t\t\t<smoothly-input-range name=\"pets.1.age\" max={100} step={1} label=\"Second Pet's Age\" />\n\t\t\t\t\t<smoothly-input name=\"pets.2.name\">Third Pet's Name</smoothly-input>\n\t\t\t\t\t<smoothly-input-range name=\"pets.2.age\" max={100} step={1} label=\"Third Pet's Age\" />\n\t\t\t\t\t<smoothly-input-file name={\"profile\"} placeholder={\"Click or drag your profile picture here...\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Profile</span>\n\t\t\t\t\t\t<smoothly-icon slot={\"button\"} name={\"person-circle-outline\"} size={\"tiny\"} fill={\"default\"} />\n\t\t\t\t\t</smoothly-input-file>\n\t\t\t\t\t<smoothly-input type=\"duration\" name=\"duration\" value={{}}>\n\t\t\t\t\t\tDuration\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input-clear fill=\"default\" type=\"form\" color=\"warning\" slot=\"clear\" size=\"icon\" shape=\"rounded\" />\n\t\t\t\t\t<smoothly-input-edit fill=\"default\" type=\"form\" color=\"tertiary\" slot=\"edit\" size=\"icon\" shape=\"rounded\" />\n\t\t\t\t\t<smoothly-input-reset fill=\"default\" type=\"form\" color=\"warning\" slot=\"reset\" size=\"icon\" shape=\"rounded\" />\n\t\t\t\t\t<smoothly-input-submit delete slot=\"delete\" color=\"danger\" size=\"icon\" shape=\"rounded\" />\n\t\t\t\t\t<smoothly-input-submit fill=\"default\" color=\"success\" slot=\"submit\" size=\"icon\" shape=\"rounded\" />\n\t\t\t\t</smoothly-form>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Component, h, Host, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-form-demo-card\",\n\tscoped: true,\n})\nexport class SmoothlyFormDemoCard {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Card</h2>\n\t\t\t\t<smoothly-form looks=\"grid\" onSmoothlyFormSubmit={(e: CustomEvent) => alert(JSON.stringify(e.detail))}>\n\t\t\t\t\t<smoothly-input type=\"card-number\" name=\"card\">\n\t\t\t\t\t\tCard #\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input-submit size=\"icon\" slot=\"submit\" color=\"success\" fill=\"solid\" />\n\t\t\t\t\t<smoothly-input type=\"card-expires\" name=\"expires\">\n\t\t\t\t\t\tExpires\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"card-csc\" name=\"csc\">\n\t\t\t\t\t\tCVV/CVC\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"text\" name=\"name.first\">\n\t\t\t\t\t\tFirst Name\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"text\" name=\"name.last\">\n\t\t\t\t\t\tLast Name\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t</smoothly-form>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Component, h, Host, State, VNode, Watch } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { SmoothlyFormCustomEvent } from \"../../../../components\"\nimport { Data } from \"../../../../model\"\n\n@Component({\n\ttag: \"smoothly-form-demo-controlled\",\n\tscoped: true,\n})\nexport class SmoothlyFormDemoControlled {\n\t@State() name = \"Initial name\"\n\t@State() currency: isoly.Currency = \"EUR\"\n\t@State() date: isoly.Date = isoly.Date.now()\n\tprivate currencies: isoly.Currency[] = [\"GBP\", \"SEK\", \"EUR\", \"USD\"]\n\n\t@Watch(\"name\")\n\tnameChanged(current: string, previous: string): void {\n\t\tconsole.log(`updated name from '${previous}' to '${current}'`)\n\t}\n\n\tasync submitHandler(\n\t\tevent: SmoothlyFormCustomEvent<{ result: (result: boolean) => void; value: Data }>\n\t): Promise<void> {\n\t\tevent.stopPropagation()\n\t\tconsole.log(\"Received event. Processing...\", event.detail)\n\t\tif (!(typeof event.detail.value.name == \"string\")) {\n\t\t\tconsole.error(\"Bad input. Resolving false.\")\n\t\t} else if (!(typeof event.detail.value.date == \"string\"))\n\t\t\tconsole.error(\"Bad input. Resolving false.\")\n\t\telse if (!isoly.Currency.is(event.detail.value.currency))\n\t\t\tconsole.error(\"Bad input. Resolving false.\")\n\t\telse {\n\t\t\tawait new Promise(resolve => window.setTimeout(resolve, 1_000))\n\t\t\tthis.name = event.detail.value.name\n\t\t\tthis.date = event.detail.value.date\n\t\t\tthis.currency = event.detail.value.currency\n\t\t\tconsole.log(\"Finished processing successfully. Resolving true.\")\n\t\t\tevent.detail.result(true)\n\t\t}\n\t\tevent.detail.result(false)\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Controlled</h2>\n\t\t\t\t<smoothly-form readonly looks={\"grid\"} onSmoothlyFormSubmit={e => this.submitHandler(e)}>\n\t\t\t\t\t<smoothly-input type={\"text\"} name={\"name\"} value={this.name}>\n\t\t\t\t\t\tName\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input-select name={\"currency\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Currency</span>\n\t\t\t\t\t\t{this.currencies.map(currency => (\n\t\t\t\t\t\t\t<smoothly-item selected={currency == this.currency} value={currency}>\n\t\t\t\t\t\t\t\t{currency}\n\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<smoothly-input>Dummy</smoothly-input>\n\t\t\t\t\t<smoothly-input-month name={\"date\"} value={this.date} next previous>\n\t\t\t\t\t\t<span slot={\"year-label\"}>Year</span>\n\t\t\t\t\t\t<span slot={\"month-label\"}>Month</span>\n\t\t\t\t\t</smoothly-input-month>\n\t\t\t\t\t<smoothly-input-edit slot={\"edit\"} size={\"icon\"} color={\"primary\"} fill={\"default\"} />\n\t\t\t\t\t<smoothly-input-reset slot={\"reset\"} size={\"icon\"} color={\"warning\"} fill={\"default\"} />\n\t\t\t\t\t<smoothly-input-submit slot={\"submit\"} size={\"icon\"} color={\"success\"} />\n\t\t\t\t</smoothly-form>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n","import { Component, Event, EventEmitter, h, Host, VNode } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { isly } from \"isly\"\nimport { Notice, Submit } from \"../../../../model\"\n\n@Component({\n\ttag: \"smoothly-form-demo-date\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyFormDemoDate {\n\t@Event() notice: EventEmitter<Notice>\n\tprivate validator = isly.object<{ date: isoly.Date }>({\n\t\tdate: isly.fromIs(\"isoly.Date\", isoly.Date.is),\n\t})\n\tasync submitHandler(event: CustomEvent<Submit>): Promise<void> {\n\t\tevent.stopPropagation()\n\t\tif (!this.validator.is(event.detail.value)) {\n\t\t\tconsole.error(`Type is incomplete.`)\n\t\t\tthis.notice.emit(Notice.failed(`Type is incomplete.`))\n\t\t} else {\n\t\t\tthis.notice.emit(Notice.succeeded(`Type is complete!`))\n\t\t\tevent.detail.result(true)\n\t\t}\n\t\tevent.detail.result(false)\n\t}\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Date input</h2>\n\t\t\t\t<smoothly-form\n\t\t\t\t\tlooks={\"border\"}\n\t\t\t\t\ttype={\"create\"}\n\t\t\t\t\tvalidator={this.validator}\n\t\t\t\t\tonSmoothlyFormSubmit={e => this.submitHandler(e)}>\n\t\t\t\t\t<smoothly-input-date name={\"date\"}>{\"Date\"}</smoothly-input-date>\n\t\t\t\t\t<smoothly-input-submit slot={\"submit\"}>\n\t\t\t\t\t\t<smoothly-icon name={\"checkmark-outline\"} />\n\t\t\t\t\t</smoothly-input-submit>\n\t\t\t\t</smoothly-form>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n","import { Component, Event, EventEmitter, h, Host, VNode } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { isly } from \"isly\"\nimport { Notice, Submit } from \"../../../../model\"\n\n@Component({\n\ttag: \"smoothly-form-demo-date-range\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyFormDemoDateRange {\n\t@Event() notice: EventEmitter<Notice>\n\tprivate validator = isly.object<{ range: isoly.DateRange }>({\n\t\trange: isly.fromIs(\"isoly.DateRange\", isoly.DateRange.is),\n\t})\n\tasync submitHandler(event: CustomEvent<Submit>): Promise<void> {\n\t\tevent.stopPropagation()\n\t\tif (!this.validator.is(event.detail.value)) {\n\t\t\tconsole.error(`Type is incomplete.`)\n\t\t\tthis.notice.emit(Notice.failed(`Type is incomplete.`))\n\t\t} else {\n\t\t\tthis.notice.emit(Notice.succeeded(`Type is complete!`))\n\t\t\tevent.detail.result(true)\n\t\t}\n\t\tevent.detail.result(false)\n\t}\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Date-range input</h2>\n\t\t\t\t<smoothly-form\n\t\t\t\t\tlooks={\"border\"}\n\t\t\t\t\ttype={\"create\"}\n\t\t\t\t\tvalidator={this.validator}\n\t\t\t\t\tonSmoothlyFormSubmit={e => this.submitHandler(e)}>\n\t\t\t\t\t<smoothly-input-date-range name={\"range\"}>{\"Range\"}</smoothly-input-date-range>\n\t\t\t\t\t<smoothly-input-submit slot={\"submit\"}>\n\t\t\t\t\t\t<smoothly-icon name={\"checkmark-outline\"} />\n\t\t\t\t\t</smoothly-input-submit>\n\t\t\t\t</smoothly-form>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Component, h, Host, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-form-demo-login\",\n\tscoped: true,\n})\nexport class SmoothlyFormDemoLogin {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Login</h2>\n\t\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t\t<smoothly-input type=\"text\" name=\"username\">\n\t\t\t\t\t\tUsername\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"password\" name=\"password\">\n\t\t\t\t\t\tPassword\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input-reset slot=\"reset\" type=\"form\" size=\"icon\" color=\"warning\" />\n\t\t\t\t\t<smoothly-input-submit slot=\"submit\" />\n\t\t\t\t</smoothly-form>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","\n:host {\n\tdisplay: grid;\n\tgrid-template-columns: 2fr 1fr;\n\tgrid-template-rows: auto auto;\n\tgrid-column-gap: 2rem;\n}\n\n:host smoothly-input-checkbox[name=\"hasOwner\"],\n:host > smoothly-form smoothly-tabs {\n\tflex-basis: 100%;\n}\n","import { Component, Fragment, h, Host, State, VNode } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { RGB } from \"../../../../model/Color/RGB\"\n\n@Component({\n\ttag: \"smoothly-form-demo-pet\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyFormDemoPet {\n\t@State() hasOwner = false\n\t@State() owner: {\n\t\tfirstName?: string\n\t\tlastName?: string\n\t\tbirthday?: string\n\t\townedRange?: Partial<isoly.DateRange>\n\t\theight?: number\n\t\tfavoriteHat?: string\n\t\tfavoriteColor?: RGB\n\t\tfavoritePizza?: string\n\t\thasPet?: boolean\n\t} = {}\n\t@State() value: any\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Pet</h2>\n\t\t\t\t<h3>Value</h3>\n\t\t\t\t<smoothly-form\n\t\t\t\t\tlooks=\"border\"\n\t\t\t\t\tonSmoothlyFormSubmit={(e: CustomEvent) => alert(JSON.stringify(e.detail))}\n\t\t\t\t\tonSmoothlyFormInput={e => (this.value = { ...e.detail })}>\n\t\t\t\t\t<smoothly-input type=\"text\" name=\"name.first\" value=\"Johnny\">\n\t\t\t\t\t\tName\n\t\t\t\t\t\t<smoothly-input-reset slot=\"end\" />\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"integer\" name=\"age\">\n\t\t\t\t\t\tAge (Years)\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input-checkbox\n\t\t\t\t\t\tname=\"hasOwner\"\n\t\t\t\t\t\tonSmoothlyInputLoad={e => e.stopPropagation()}\n\t\t\t\t\t\tonSmoothlyInput={e => {\n\t\t\t\t\t\t\tthis.hasOwner = e.detail.hasOwner as boolean\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\tHas Owner\n\t\t\t\t\t\t<smoothly-input-reset slot=\"end\" />\n\t\t\t\t\t</smoothly-input-checkbox>\n\t\t\t\t\t{this.hasOwner && (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<smoothly-input\n\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\tname=\"owner.firstName\"\n\t\t\t\t\t\t\t\tvalue={this.owner.firstName}\n\t\t\t\t\t\t\t\tonSmoothlyInput={e => (this.owner = { ...this.owner, firstName: e.detail[\"owner.firstName\"] })}>\n\t\t\t\t\t\t\t\tOwner First Name\n\t\t\t\t\t\t\t\t<smoothly-input-reset slot=\"end\" />\n\t\t\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t\t\t<smoothly-input\n\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\tname=\"owner.lastName\"\n\t\t\t\t\t\t\t\tvalue={this.owner.lastName}\n\t\t\t\t\t\t\t\tonSmoothlyInput={e => (this.owner = { ...this.owner, lastName: e.detail[\"owner.lastName\"] })}>\n\t\t\t\t\t\t\t\tOwner Last Name\n\t\t\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t\t\t<smoothly-input-file name=\"owner.picture\">\n\t\t\t\t\t\t\t\t<span slot=\"label\">Owner picture</span>\n\t\t\t\t\t\t\t</smoothly-input-file>\n\t\t\t\t\t\t\t<smoothly-input-date\n\t\t\t\t\t\t\t\tname=\"owner.birthday\"\n\t\t\t\t\t\t\t\tvalue={this.owner.birthday}\n\t\t\t\t\t\t\t\tonSmoothlyInput={e => (this.owner = { ...this.owner, birthday: e.detail[\"owner.birthday\"] })}>\n\t\t\t\t\t\t\t\tOwner birthday\n\t\t\t\t\t\t\t\t<smoothly-input-reset slot=\"end\" />\n\t\t\t\t\t\t\t</smoothly-input-date>\n\t\t\t\t\t\t\t<smoothly-input-date-range\n\t\t\t\t\t\t\t\tname=\"owner.ownedRange\"\n\t\t\t\t\t\t\t\tstart={this.owner.ownedRange?.start}\n\t\t\t\t\t\t\t\tend={this.owner.ownedRange?.end}\n\t\t\t\t\t\t\t\tonSmoothlyInput={e => (this.owner = { ...this.owner, ownedRange: e.detail[\"owner.ownedRange\"] })}>\n\t\t\t\t\t\t\t\tOwner ownedRange\n\t\t\t\t\t\t\t\t<smoothly-input-reset slot=\"end\" />\n\t\t\t\t\t\t\t</smoothly-input-date-range>\n\t\t\t\t\t\t\t<smoothly-input-range\n\t\t\t\t\t\t\t\tname=\"owner.height\"\n\t\t\t\t\t\t\t\tstep={1}\n\t\t\t\t\t\t\t\tmax={250}\n\t\t\t\t\t\t\t\tvalue={this.owner.height}\n\t\t\t\t\t\t\t\tonSmoothlyInput={e => (this.owner = { ...this.owner, height: e.detail[\"owner.height\"] })}>\n\t\t\t\t\t\t\t\tOwner's Height\n\t\t\t\t\t\t\t\t<smoothly-input-reset slot=\"end\" />\n\t\t\t\t\t\t\t</smoothly-input-range>\n\t\t\t\t\t\t\t<smoothly-input-select name=\"owner.favoriteHat\">\n\t\t\t\t\t\t\t\t<span slot=\"label\">Owner's Favorite Hat</span>\n\t\t\t\t\t\t\t\t{[\"🎩 top hat\", \"🧢 cap\", \"👒 sun hat\", \"❌ none\"].map((value, index) => (\n\t\t\t\t\t\t\t\t\t<smoothly-item value={value} key={index} selected={this.owner.favoriteHat == value}>\n\t\t\t\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t<smoothly-input-reset slot=\"end\" />\n\t\t\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t\t\t<smoothly-input-color\n\t\t\t\t\t\t\t\tname=\"owner.favoriteColor\"\n\t\t\t\t\t\t\t\tvalue={this.owner.favoriteColor ? RGB.toHex(this.owner.favoriteColor) : undefined}\n\t\t\t\t\t\t\t\tonSmoothlyInput={e => (this.owner = { ...this.owner, favoriteColor: e.detail[\"owner.favoriteColor\"] })}>\n\t\t\t\t\t\t\t\tOwner's Favorite Color\n\t\t\t\t\t\t\t\t<smoothly-input-reset slot=\"end\" />\n\t\t\t\t\t\t\t</smoothly-input-color>\n\t\t\t\t\t\t\t<smoothly-input-radio\n\t\t\t\t\t\t\t\tname=\"owner.favoritePizza\"\n\t\t\t\t\t\t\t\tvalue={this.owner.favoritePizza}\n\t\t\t\t\t\t\t\tonSmoothlyInput={e =>\n\t\t\t\t\t\t\t\t\t(this.owner = { ...this.owner, favoritePizza: e.detail[\"owner.favoritePizza\"] as string })\n\t\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t\t<span slot=\"label\">Owner's Favorite Pizza</span>\n\t\t\t\t\t\t\t\t{[\"vesuvio\", \"capricciosa\", \"quattro formaggi\"].map((value, index) => (\n\t\t\t\t\t\t\t\t\t<smoothly-input-radio-item value={value} key={index}>\n\t\t\t\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t\t\t\t</smoothly-input-radio-item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</smoothly-input-radio>\n\t\t\t\t\t\t\t<smoothly-input-checkbox\n\t\t\t\t\t\t\t\tname=\"owner.hasPet\"\n\t\t\t\t\t\t\t\tchecked={this.owner.hasPet}\n\t\t\t\t\t\t\t\tonSmoothlyInput={e => (this.owner = { ...this.owner, hasPet: e.detail[\"owner.hasPet\"] as boolean })}>\n\t\t\t\t\t\t\t\tHas Pet\n\t\t\t\t\t\t\t</smoothly-input-checkbox>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t)}\n\t\t\t\t\t<smoothly-tabs>\n\t\t\t\t\t\t<smoothly-tab label=\"Dog\" name=\"dog\">\n\t\t\t\t\t\t\t<smoothly-input type={\"text\"} name=\"dog.breed\">\n\t\t\t\t\t\t\t\tBreed\n\t\t\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t\t\t<smoothly-input-file name=\"dog.picture\">\n\t\t\t\t\t\t\t\t<span slot=\"label\">Dog picture</span>\n\t\t\t\t\t\t\t</smoothly-input-file>\n\t\t\t\t\t\t\t<smoothly-input-date-time name=\"dog.lastWalk\">Time of last walk</smoothly-input-date-time>\n\t\t\t\t\t\t\t<smoothly-input-date name=\"dog.birthday\">Dog birthday</smoothly-input-date>\n\t\t\t\t\t\t\t<smoothly-input-date-range name=\"dog.dateRange\">Dog date range</smoothly-input-date-range>\n\t\t\t\t\t\t\t<smoothly-input-select name=\"dog.favoriteHat\">\n\t\t\t\t\t\t\t\t<span slot=\"label\">Dog's Favorite Hat</span>\n\t\t\t\t\t\t\t\t{[\"🎩 top hat\", \"🧢 cap\", \"👒 sun hat\", \"❌ none\"].map((value, index) => (\n\t\t\t\t\t\t\t\t\t<smoothly-item value={value} key={index}>\n\t\t\t\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t\t\t<smoothly-input-color name=\"dog.favoriteColor\">Dog's Favorite Color</smoothly-input-color>\n\t\t\t\t\t\t\t<smoothly-input-radio name=\"dog.favoritePizza\">\n\t\t\t\t\t\t\t\t<span slot=\"label\">Dog's Favorite Pizza</span>\n\t\t\t\t\t\t\t\t{[\"vesuvio\", \"capricciosa\", \"quattro formaggi\"].map((value, index) => (\n\t\t\t\t\t\t\t\t\t<smoothly-input-radio-item value={value} key={index}>\n\t\t\t\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t\t\t\t</smoothly-input-radio-item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</smoothly-input-radio>\n\t\t\t\t\t\t\t<smoothly-input-checkbox name=\"dog.hasPet\">Has Pet</smoothly-input-checkbox>\n\t\t\t\t\t\t</smoothly-tab>\n\t\t\t\t\t\t<smoothly-tab label=\"Cat\" name=\"cat\" open>\n\t\t\t\t\t\t\t<smoothly-input name={\"cat.favoriteFood\"}>Favorite Food</smoothly-input>\n\t\t\t\t\t\t</smoothly-tab>\n\t\t\t\t\t\t<smoothly-tab label=\"Parrot\" name=\"parrot\">\n\t\t\t\t\t\t\t<smoothly-input type=\"price\" name=\"parrot.price\" currency=\"EUR\">\n\t\t\t\t\t\t\t\tSummary Price\n\t\t\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t\t\t<smoothly-input-file name=\"parrot.picture\">\n\t\t\t\t\t\t\t\t<span slot=\"label\">Summary picture</span>\n\t\t\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t\t\t</smoothly-input-file>\n\t\t\t\t\t\t\t<smoothly-input-date name=\"parrot.birthday\">Summary birthday</smoothly-input-date>\n\t\t\t\t\t\t\t<smoothly-input-date-range name=\"parrot.ownedRange\" start=\"2020-01-01\" end=\"2020-01-15\">\n\t\t\t\t\t\t\t\tSummary ownedRange\n\t\t\t\t\t\t\t\t<smoothly-input-reset slot=\"end\" />\n\t\t\t\t\t\t\t</smoothly-input-date-range>\n\t\t\t\t\t\t\t<smoothly-input-range name=\"parrot.height\" label={\"Height\"}>\n\t\t\t\t\t\t\t\t<smoothly-input-reset slot=\"end\" />\n\t\t\t\t\t\t\t</smoothly-input-range>\n\t\t\t\t\t\t\t<smoothly-input-select name=\"parrot.favoriteHat\">\n\t\t\t\t\t\t\t\t<span slot=\"label\">Summary's Favorite Hat</span>\n\t\t\t\t\t\t\t\t{[\"🎩 top hat\", \"🧢 cap\", \"👒 sun hat\", \"❌ none\"].map((value, index) => (\n\t\t\t\t\t\t\t\t\t<smoothly-item value={value} key={index}>\n\t\t\t\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t\t\t<smoothly-input-month name=\"parrot.month\">\n\t\t\t\t\t\t\t\t<span slot={\"month-label\"}>Summary month</span>\n\t\t\t\t\t\t\t</smoothly-input-month>\n\t\t\t\t\t\t\t<smoothly-input-color name=\"parrot.color\">Summary Color</smoothly-input-color>\n\t\t\t\t\t\t\t<smoothly-input-radio name=\"parrot.favoritePizza\">\n\t\t\t\t\t\t\t\t<span slot=\"label\">Summary's Favorite Pizza</span>\n\t\t\t\t\t\t\t\t{[\"vesuvio\", \"capricciosa\", \"quattro formaggi\"].map((value, index) => (\n\t\t\t\t\t\t\t\t\t<smoothly-input-radio-item value={value} key={index}>\n\t\t\t\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t\t\t\t</smoothly-input-radio-item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</smoothly-input-radio>\n\t\t\t\t\t\t\t<smoothly-input-checkbox name=\"parrot.hasPet\">Has Pet</smoothly-input-checkbox>\n\t\t\t\t\t\t</smoothly-tab>\n\t\t\t\t\t</smoothly-tabs>\n\t\t\t\t\t<smoothly-input-submit size=\"icon\" slot=\"submit\" color=\"success\" fill=\"solid\" />\n\t\t\t\t</smoothly-form>\n\t\t\t\t<smoothly-display type=\"json\" value={this.value} />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Component, h, Host, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-form-demo-prices\",\n\tscoped: true,\n})\nexport class SmoothlyFormDemoPrices {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Prices</h2>\n\t\t\t\t<smoothly-form looks=\"line\">\n\t\t\t\t\t<smoothly-input type=\"price\" name=\"no\">\n\t\t\t\t\t\tNo currency\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"price\" name=\"crowns\" currency=\"SEK\" toInteger>\n\t\t\t\t\t\tSEK (toInteger)\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"price\" name=\"usDollar\" currency=\"USD\">\n\t\t\t\t\t\tUSD\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"price\" name=\"pounds\" currency=\"GBP\">\n\t\t\t\t\t\tGBP\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"price\" name=\"peso\" currency=\"UYW\">\n\t\t\t\t\t\tUYW\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"price\" name=\"iceland\" currency=\"ISK\">\n\t\t\t\t\t\tISK\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"price\" name=\"Palladium\" currency=\"XPD\">\n\t\t\t\t\t\t{\"XPD (Palladium)\"}\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input-reset slot=\"reset\" fill=\"default\" type=\"form\" color=\"warning\" />\n\t\t\t\t\t<smoothly-input-submit slot=\"submit\" />\n\t\t\t\t</smoothly-form>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Component, h, Host, VNode } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { isly } from \"isly\"\n\ntype ScheduledEvent = {\n\tdate: isoly.Date\n\tamount: number\n}\nnamespace ScheduledEvent {\n\texport const type = isly.object<ScheduledEvent>({\n\t\tdate: isly.fromIs(\"isoly.Date\", isoly.Date.is),\n\t\tamount: isly.number(),\n\t})\n}\n\ntype TimeTable = { schedule: ScheduledEvent[] }\nnamespace TimeTable {\n\texport const type = isly.object<TimeTable>({ schedule: ScheduledEvent.type.array() })\n}\n\n// This demo demonstrate that the form can handle arrays in the validator\n@Component({\n\ttag: \"smoothly-form-demo-schedule\",\n\tscoped: true,\n})\nexport class SmoothlyFormDemoPrices {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Schedule</h2>\n\t\t\t\t<smoothly-form looks=\"line\" validator={TimeTable.type}>\n\t\t\t\t\t<smoothly-input-date name=\"schedule.0.date\">Date</smoothly-input-date>\n\t\t\t\t\t<smoothly-input name=\"schedule.0.amount\" type=\"price\">\n\t\t\t\t\t\tAmount\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input-date name=\"schedule.1.date\">Date</smoothly-input-date>\n\t\t\t\t\t<smoothly-input name=\"schedule.1.amount\" type=\"price\">\n\t\t\t\t\t\tAmount\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input-date name=\"schedule.2.date\">Date</smoothly-input-date>\n\t\t\t\t\t<smoothly-input name=\"schedule.2.amount\" type=\"price\">\n\t\t\t\t\t\tAmount\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input-reset slot=\"reset\" fill=\"default\" type=\"form\" color=\"warning\" />\n\t\t\t\t\t<smoothly-input-submit slot=\"submit\" />\n\t\t\t\t</smoothly-form>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Component, h, Host, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-form-demo-transparent\",\n\tscoped: true,\n})\nexport class SmoothlyFormDemoTransparent {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Transparent</h2>\n\t\t\t\t<smoothly-form looks={\"transparent\"} onSmoothlyFormSubmit={e => console.log(e.detail.value)}>\n\t\t\t\t\t<smoothly-input-file name={\"file\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>File</span>\n\t\t\t\t\t\t<smoothly-icon slot={\"button\"} name={\"folder-open-outline\"} size={\"small\"} />\n\t\t\t\t\t</smoothly-input-file>\n\t\t\t\t\t<smoothly-input type={\"duration\"} looks={\"transparent\"} placeholder={\"h:mm\"}>\n\t\t\t\t\t\tInput\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input-date>Date</smoothly-input-date>\n\t\t\t\t\t<smoothly-input-date-range>Date Range</smoothly-input-date-range>\n\t\t\t\t\t<smoothly-input-select name={\"transport\"}>\n\t\t\t\t\t\t<smoothly-item value={\"plane\"}>\n\t\t\t\t\t\t\t<smoothly-icon name={\"airplane-outline\"} />\n\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value={\"car\"}>\n\t\t\t\t\t\t\t<smoothly-icon name={\"car-outline\"} />\n\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value={\"bus\"} selected>\n\t\t\t\t\t\t\t<smoothly-icon name={\"bus-outline\"} />\n\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<smoothly-input-submit icon={\"checkbox-outline\"} />\n\t\t\t\t</smoothly-form>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { isoly } from \"isoly\"\nimport { isly } from \"isly\"\n\nexport interface Contact {\n\tname: { first: string; middle?: string; last: string }\n\tage: number\n\tcountry: isoly.CountryCode.Alpha2\n\tbirthday: isoly.Date\n}\nexport namespace Contact {\n\texport const type = isly.object<Contact>({\n\t\tname: isly.object<Contact[\"name\"]>({ first: isly.string(), middle: isly.string().optional(), last: isly.string() }),\n\t\tage: isly.number(age => 18 <= age && age <= 120),\n\t\tcountry: isly.fromIs(\"CountryCode\", isoly.CountryCode.Alpha2.is),\n\t\tbirthday: isly.fromIs(\"Date\", isoly.Date.is),\n\t})\n}\n","\n","import { Component, h, Host, VNode } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { Contact } from \"./Contact\"\n\n@Component({\n\ttag: \"smoothly-form-demo-typed\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyFormDemoTyped {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Typed Contact</h2>\n\t\t\t\t<smoothly-form validator={Contact.type}>\n\t\t\t\t\t<smoothly-input name=\"name.first\">First Name</smoothly-input>\n\t\t\t\t\t<smoothly-input name=\"name.middle\">Middle Name (optional)</smoothly-input>\n\t\t\t\t\t<smoothly-input name=\"name.last\">Last Name</smoothly-input>\n\t\t\t\t\t<smoothly-input name=\"age\" type=\"integer\">\n\t\t\t\t\t\tAge (18-120)\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input-select name=\"country\">\n\t\t\t\t\t\t<span slot=\"label\">Country</span>\n\t\t\t\t\t\t{isoly.CountryCode.Alpha2.values.map(country => (\n\t\t\t\t\t\t\t<smoothly-item value={country}>{isoly.CountryCode.Name.en.from(country)}</smoothly-item>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<smoothly-input-date name=\"birthday\">Date of birth</smoothly-input-date>\n\t\t\t\t\t<smoothly-input-reset slot={\"reset\"} type={\"form\"} size={\"icon\"} color={\"warning\"} />\n\t\t\t\t\t<smoothly-input-submit slot={\"submit\"} size={\"icon\"} color={\"success\"} />\n\t\t\t\t</smoothly-form>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n\twidth: 100%;\n\theight: 100%;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host > iframe {\n\tborder: none;\n\tpadding: none;\n\tmargin: none;\n}\n","import { Component, Element, Event, EventEmitter, Method, Prop } from \"@stencil/core\"\nimport { Message, Trigger } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-frame\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyFrame {\n\t@Prop() url: string\n\t@Prop({ reflect: true }) name: string\n\t@Event() trigger: EventEmitter<Trigger>\n\t@Event() message2: EventEmitter<Message<any>>\n\t@Element() element?: HTMLElement\n\tget contentWindow(): Window | undefined {\n\t\tconst iframe =\n\t\t\tthis.element && this.element.firstElementChild ? (this.element.firstElementChild as HTMLIFrameElement) : undefined\n\t\treturn (iframe && iframe.contentWindow) || undefined\n\t}\n\t@Prop()\n\torigin: string | undefined\n\n\tget defaultOrigin(): string {\n\t\tconst match = this.url.match(/^(([a-z]+\\+)*[a-z]+:\\/\\/)?[^/^\\n]+/)\n\t\treturn match ? match[0] : \"*\"\n\t}\n\tcomponentDidLoad() {\n\t\tif (this.contentWindow)\n\t\t\tMessage.listen(\n\t\t\t\tthis.origin ?? this.defaultOrigin,\n\t\t\t\t(destination: string, content: any) => {\n\t\t\t\t\tif (destination == this.name)\n\t\t\t\t\t\tif (Trigger.is(content))\n\t\t\t\t\t\t\tthis.trigger.emit(content)\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthis.message2.emit({ destination, content })\n\t\t\t\t},\n\t\t\t\twindow\n\t\t\t)\n\t}\n\tsend(message2: Message<any>): void\n\tsend(destination: string, content: Trigger | any): void\n\t@Method()\n\tasync send(message2: string | Message<any>, content?: Trigger | any): Promise<void> {\n\t\tif (typeof message2 == \"string\")\n\t\t\tMessage.send((this.origin ?? this.defaultOrigin) + \"#\" + message2, content, this.contentWindow)\n\t\telse if (Message.is(message2) && this.contentWindow)\n\t\t\tMessage.send(\n\t\t\t\t{\n\t\t\t\t\tdestination: (this.origin ?? this.defaultOrigin) + \"#\" + message2.destination,\n\t\t\t\t\tcontent: message2.destination,\n\t\t\t\t},\n\t\t\t\tthis.contentWindow\n\t\t\t)\n\t}\n\n\trender() {\n\t\treturn []\n\t}\n}\n",":host[fill] {\n\tbackground: none;\n}\n:host {\n\tdisplay: flex;\n\tflex-shrink: 0;\n\talign-items: center;\n\tjustify-content: center;\n\tbox-sizing: content-box;\n}\n:host[rotate] {\n\t--rotate: rotate(var(--rotation, 0deg));\n\ttransform: var(--rotate);\n}\n:host[flip=x] {\n\t--flip: scaleX(-1);\n\ttransform: var(--flip);\n}\n:host[flip=y] {\n\t--flip: scaleY(-1);\n\ttransform: var(--flip);\n}\n:host[rotate][flip] {\n\ttransform:var(--rotate)var(--flip);\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host[size=tiny] {\n\t--smoothly-icon-size: 1.2rem;\n}\n:host[size=small] {\n\t--smoothly-icon-size: 1.4rem;\n}\n:host[size=medium] {\n\t--smoothly-icon-size: 1.8rem;\n}\n:host[size=large] {\n\t--smoothly-icon-size: 2.8rem;\n}\n:host[size=xlarge] {\n\t--smoothly-icon-size: 4rem;\n}\n:host {\n\twidth: var(--smoothly-icon-size, 1.8rem);\n\theight: var(--smoothly-icon-size, 1.8rem);\n}\n:host::slotted(svg) {\n\t/* this is needed for svg to work on safari */\n\twidth: 100%;\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\"\nimport { Color, Fill } from \"../../model\"\nimport { Icon } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-icon\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyIcon {\n\t@Element() element: HTMLElement\n\t@Prop({ reflect: true }) color: Color\n\t@Prop({ reflect: true }) fill: Fill = \"solid\"\n\t@Prop({ reflect: true }) name: Icon | \"empty\" = \"empty\"\n\t@Prop({ reflect: true }) size?: \"tiny\" | \"small\" | \"medium\" | \"large\" | \"xlarge\"\n\t@Prop({ reflect: true }) rotate?: number\n\t@Prop({ reflect: true }) flip?: \"x\" | \"y\"\n\t@Prop() tooltip?: string\n\t@State() latestPromise: Promise<string | undefined>\n\n\tasync componentWillLoad() {\n\t\tawait this.nameChanged()\n\t}\n\t@Watch(\"tooltip\")\n\t@Watch(\"name\")\n\tasync nameChanged() {\n\t\tif (this.name == \"empty\") {\n\t\t\tthis.updateSvg()\n\t\t\treturn\n\t\t}\n\n\t\tconst promise = (this.latestPromise = Icon.load(this.name))\n\t\tconst result = await promise\n\t\tif (promise != this.latestPromise)\n\t\t\treturn\n\n\t\tif (result) {\n\t\t\tconst svgElement = this.sanitizeSvg(result)\n\t\t\tthis.updateSvg(svgElement)\n\t\t}\n\t}\n\n\tprivate sanitizeSvg(svg: string): SVGElement | undefined {\n\t\tconst parser = new DOMParser()\n\t\tconst document = parser.parseFromString(svg, \"image/svg+xml\")\n\t\tconst svgElement = document.querySelector(\"svg\")\n\n\t\tif (svgElement) {\n\t\t\tsvgElement.setAttribute(\"role\", \"img\")\n\t\t\tsvgElement.removeAttribute(\"width\")\n\t\t\tsvgElement.removeAttribute(\"height\")\n\t\t}\n\t\treturn svgElement ?? undefined\n\t}\n\tupdateSvg(svg?: SVGElement) {\n\t\tsvg\n\t\t\t? this.element.replaceChildren(svg)\n\t\t\t: (this.element.innerHTML = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n\t\t\t\t\t<title>Empty</title>\n\t\t\t\t</svg>`)\n\t}\n\n\trender() {\n\t\treturn <Host title={this.tooltip} style={{ [\"--rotation\"]: `${this.rotate ?? 0}deg` }} />\n\t}\n}\n",":host {\n\tdisplay: block;\n\twidth: clamp(200px, 100%, 1200px);\n\tmargin: auto;\n}\n:host([hidden]) {\n\tdisplay: none;\n}\n:host > div {\n\tdisplay: flex;\n\tflex-flow: row wrap;\n}\n\n:host > div > smoothly-icon {\n\tpadding: 1rem;\n\tposition: relative;\n}\n\n:host > div > smoothly-icon:hover {\n\tscale: 1.5;\n}\n\n:host > div > smoothly-icon:hover::after {\n\tcontent: attr(data-name);\n\tposition: absolute;\n\twhite-space: nowrap;\n\tbottom: 100%;\n\tbackground: rgb(var(--smoothly-default-contrast));\n\tcolor: rgb(var(--smoothly-default-color));\n\tpadding: 0.25rem 1rem;\n\tz-index: 1;\n\tpointer-events: none;\n}\n","import { Component, Event, EventEmitter, h, Host, State } from \"@stencil/core\"\nimport { Color, Fill, Icon, Notice } from \"../../../model\"\n@Component({\n\ttag: \"smoothly-icon-demo\",\n\tstyleUrl: \"./style.css\",\n\tscoped: true,\n})\nexport class SmoothlyIconDemo {\n\tpage = 0\n\n\t@State() display: { filter?: string; variant?: \"outline\" | \"sharp\" } = {}\n\t@State() props: {\n\t\tcolor?: Color\n\t\tfill?: Fill\n\t\tflip?: \"x\" | \"y\"\n\t\tsize?: \"tiny\" | \"small\" | \"medium\" | \"large\" | \"xlarge\"\n\t\trotate?: number\n\t} = {}\n\t@Event() notice: EventEmitter<Notice>\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Filter and Variants</h2>\n\t\t\t\t<smoothly-form onSmoothlyFormInput={e => (this.display = e.detail)}>\n\t\t\t\t\t<smoothly-input name=\"filter\">Filter</smoothly-input>\n\t\t\t\t\t<smoothly-input-select name=\"variant\">\n\t\t\t\t\t\t<span slot=\"label\">Variant</span>\n\t\t\t\t\t\t<smoothly-item value={\"outline\"}>outline</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value={\"sharp\"}>sharp</smoothly-item>\n\t\t\t\t\t\t<smoothly-input-clear slot={\"end\"} />\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t</smoothly-form>\n\t\t\t\t<h2>Props</h2>\n\t\t\t\t<smoothly-form onSmoothlyFormInput={e => (this.props = e.detail)}>\n\t\t\t\t\t<smoothly-input-select name={\"color\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Color</span>\n\t\t\t\t\t\t{Color.values.map(color => (\n\t\t\t\t\t\t\t<smoothly-item value={color} color={color}>\n\t\t\t\t\t\t\t\t{color}\n\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<smoothly-input-clear slot={\"end\"} />\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<smoothly-input-select name={\"fill\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Fill</span>\n\t\t\t\t\t\t{Fill.values.map(fill => (\n\t\t\t\t\t\t\t<smoothly-item value={fill}>{fill}</smoothly-item>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<smoothly-input-clear slot={\"end\"} />\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<smoothly-input-select name=\"flip\">\n\t\t\t\t\t\t<span slot={\"label\"}>Flip</span>\n\t\t\t\t\t\t<smoothly-item value={\"x\"}>x</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value={\"y\"}>y</smoothly-item>\n\t\t\t\t\t\t<smoothly-input-clear slot={\"end\"} />\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<smoothly-input-select name={\"size\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Size</span>\n\t\t\t\t\t\t<smoothly-item value={\"tiny\"}>tiny</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value={\"small\"}>small</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value={\"medium\"}>medium</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value={\"large\"}>large</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value={\"xlarge\"}>xlarge</smoothly-item>\n\t\t\t\t\t\t<smoothly-input-clear slot={\"end\"} />\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<smoothly-input-range name=\"rotate\" step={1} min={-180} max={180} value={0}>\n\t\t\t\t\t\tRotate\n\t\t\t\t\t\t<smoothly-input-clear slot={\"end\"} />\n\t\t\t\t\t</smoothly-input-range>\n\t\t\t\t</smoothly-form>\n\t\t\t\t<h1>Icons</h1>\n\t\t\t\t<div class=\"icons\">\n\t\t\t\t\t{[\n\t\t\t\t\t\t...Icon.Name.values\n\t\t\t\t\t\t\t.filter(name => !this.display.filter || name.includes(this.display.filter))\n\t\t\t\t\t\t\t.map((name): Icon => (this.display.variant ? `${name}-${this.display.variant}` : name)),\n\t\t\t\t\t\t...Icon.Logo.values.filter(name => !this.display.filter || name.includes(this.display.filter)),\n\t\t\t\t\t].map(name => (\n\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\ttooltip={name}\n\t\t\t\t\t\t\tdata-name={name}\n\t\t\t\t\t\t\tcolor={this.props.color}\n\t\t\t\t\t\t\tfill={this.props.fill}\n\t\t\t\t\t\t\tflip={this.props.flip}\n\t\t\t\t\t\t\tsize={this.props.size}\n\t\t\t\t\t\t\trotate={this.props.rotate}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tnavigator.clipboard.writeText(name)\n\t\t\t\t\t\t\t\tthis.notice.emit(Notice.succeeded(`Copied \"${name}\"`))\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","export namespace Deep {\n\texport function equal(a: any, b: any): boolean {\n\t\tif (a === b)\n\t\t\treturn true\n\t\tif (typeof a == \"object\" && typeof b == \"object\") {\n\t\t\tconst keys = Object.keys(a)\n\t\t\tif (keys.length == Object.keys(b).length && keys.every(key => equal(a[key], b[key])))\n\t\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\texport function notEqual(a: any, b: any): boolean {\n\t\treturn !equal(a, b)\n\t}\n}\n","export namespace Adjacent {\n\texport function getWordBreakIndex(str: string, index: number, direction: \"backward\" | \"forward\"): number {\n\t\tconst wordRegex = /([^.-@\\s]+)/gi\n\t\treturn direction == \"backward\"\n\t\t\t? getBackwardWordBreakIndex(str, index, wordRegex)\n\t\t\t: getForwardWordBreakIndex(str, index, wordRegex)\n\t}\n\n\tfunction getBackwardWordBreakIndex(str: string, index: number, wordRegex: RegExp): number {\n\t\tlet result = 0\n\t\tlet execArray: RegExpExecArray | null\n\t\twhile ((execArray = wordRegex.exec(str)) != null) {\n\t\t\tif (wordRegex.lastIndex - execArray[0].length < index)\n\t\t\t\tresult = wordRegex.lastIndex - execArray[0].length\n\t\t\telse\n\t\t\t\tbreak\n\t\t}\n\t\treturn result\n\t}\n\n\tfunction getForwardWordBreakIndex(str: string, index: number, wordRegex: RegExp): number {\n\t\tlet result = 0\n\t\twhile (wordRegex.exec(str) != null) {\n\t\t\tresult = wordRegex.lastIndex\n\t\t\tif (wordRegex.lastIndex > index)\n\t\t\t\tbreak\n\t\t}\n\t\twordRegex.lastIndex <= index && (result = str.length)\n\t\treturn result\n\t}\n}\n","import { isoly } from \"isoly\"\nimport { tidily } from \"tidily\"\nimport { Adjacent } from \"./Adjacent\"\n\ntype Formatter = tidily.Formatter & tidily.Converter<any>\ntype Handler<E extends Event> = (event: E, unformatted: tidily.State, formatted: tidily.State) => tidily.State\n\nexport class InputStateHandler {\n\tconstructor(private formatter: Formatter, private type: tidily.Type) {}\n\tstatic create(type: \"price\", priceOptions: { currency?: isoly.Currency; toInteger?: boolean }): InputStateHandler\n\tstatic create(type: \"integer\", integerOptions: { min?: number; max?: number; pad?: number }): InputStateHandler\n\tstatic create(type: tidily.Type, locale?: isoly.Locale): InputStateHandler\n\tstatic create(type: tidily.Type, extra?: any): InputStateHandler {\n\t\tlet result: (tidily.Formatter & tidily.Converter<any>) | undefined\n\t\tswitch (type) {\n\t\t\tcase \"price\":\n\t\t\t\tresult = tidily.get(\"price\", extra)\n\t\t\t\tbreak\n\t\t\tcase \"integer\":\n\t\t\t\tresult = tidily.get(\"integer\", extra)\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tresult = tidily.get(type, extra)\n\t\t\t\tbreak\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\treturn new InputStateHandler(result || tidily.get(\"text\")!, type)\n\t}\n\n\tpublic onKeyDown(\n\t\tevent: KeyboardEvent,\n\t\tstate: Readonly<tidily.State> & tidily.Settings\n\t): Readonly<tidily.State> & tidily.Settings {\n\t\tlet result: Readonly<tidily.State> & tidily.Settings = state\n\t\tconst handler = this.keydownHandlers[event.key]\n\t\tif (handler) {\n\t\t\tconst input = event.target as HTMLInputElement\n\t\t\tstate.selection.start = input.selectionStart ?? state.selection.start\n\t\t\tstate.selection.end = input.selectionEnd ?? state.selection.end\n\t\t\tstate.selection.direction = input.selectionDirection ?? state.selection.direction\n\t\t\tconst unformatted = handler(event, this.unformatState(state), state)\n\t\t\tconst formatted = this.partialFormatState(unformatted)\n\t\t\tif (event.defaultPrevented) {\n\t\t\t\tinput.selectionStart = formatted.selection.start\n\t\t\t\tinput.selectionEnd = formatted.selection.end\n\t\t\t\tinput.selectionDirection = formatted.selection.direction ?? null\n\t\t\t}\n\t\t\tresult = formatted\n\t\t}\n\t\treturn result\n\t}\n\tkeydownHandlers: { [key: string]: Handler<KeyboardEvent> | undefined } = {\n\t\tArrowLeft: (event, state) => (event.ctrlKey || event.metaKey ? state : this.moveCursor(event, state)),\n\t\tArrowRight: (event, state) => (event.ctrlKey || event.metaKey ? state : this.moveCursor(event, state)),\n\t}\n\n\tmoveCursor(event: KeyboardEvent, state: tidily.State): tidily.State {\n\t\tevent.preventDefault()\n\t\tlet cursor = tidily.Selection.getCursor(state.selection)\n\t\tlet stalk = tidily.Selection.getStalker(state.selection)\n\t\tcursor = Math.min(Math.max(cursor + (event.key == \"ArrowLeft\" ? -1 : 1), 0), state.value.length)\n\t\tstalk = event.shiftKey ? stalk : cursor\n\t\tstate.selection.direction = stalk < cursor ? \"forward\" : stalk > cursor ? \"backward\" : \"none\"\n\t\tstate.selection.start = Math.min(stalk, cursor)\n\t\tstate.selection.end = Math.max(stalk, cursor)\n\t\treturn state\n\t}\n\n\tpublic onFocus(event: FocusEvent, state: tidily.State) {\n\t\tconst result = this.partialFormatState(this.unformatState(state))\n\t\tconst input = event.target as HTMLInputElement\n\t\tinput.value = result.value\n\t\treturn result\n\t}\n\n\tpublic onBlur(event: FocusEvent, state: tidily.State): Readonly<tidily.State> & tidily.Settings {\n\t\tconst result = this.createFormattedState(state)\n\t\tconst input = event.target as HTMLInputElement\n\t\tinput.value = result.value\n\t\treturn result\n\t}\n\n\tpublic onInputEvent(event: InputEvent, state: tidily.State): Readonly<tidily.State> & tidily.Settings {\n\t\tconst input = event.target as HTMLInputElement\n\t\tstate.selection.start = input.selectionStart ?? state.selection.start\n\t\tstate.selection.end = input.selectionEnd ?? state.selection.end\n\t\tstate.selection.direction = input.selectionDirection ?? state.selection.direction\n\t\tconst result =\n\t\t\tevent.type == \"beforeinput\" || event.type == \"input\"\n\t\t\t\t? this.eventHandlers[event.type][event.inputType]?.(event, this.unformatState(state), state) ?? state\n\t\t\t\t: state\n\t\tconst formatted = this.partialFormatState(result)\n\t\tif (event.defaultPrevented) {\n\t\t\tinput.value = formatted.value\n\t\t\tinput.selectionStart = formatted.selection.start\n\t\t\tinput.selectionEnd = formatted.selection.end\n\t\t\tinput.selectionDirection = formatted.selection.direction ?? null\n\t\t}\n\t\treturn formatted\n\t}\n\tprivate eventHandlers: Record<\"beforeinput\" | \"input\", { [inputType: string]: Handler<InputEvent> | undefined }> = {\n\t\tbeforeinput: {\n\t\t\tinsertText: (event, state) => this.insert(event, state),\n\t\t\tinsertFromPaste: (event, state) => this.insert(event, state),\n\t\t\tinsertFromDrop: (event, state) => this.insert(event, state),\n\t\t\tdeleteContentBackward: (event, state) => {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tif (state.selection.start == state.selection.end)\n\t\t\t\t\tthis.select(state, state.selection.start - 1, state.selection.end)\n\t\t\t\tthis.erase(state)\n\t\t\t\treturn state\n\t\t\t},\n\t\t\tdeleteContentForward: (event, state) => {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tif (state.selection.start == state.selection.end)\n\t\t\t\t\tthis.select(state, state.selection.start, state.selection.end + 1)\n\t\t\t\tthis.erase(state)\n\t\t\t\treturn state\n\t\t\t},\n\t\t\tdeleteWordBackward: (event, unformatted, formattedState) => {\n\t\t\t\tlet result = unformatted\n\t\t\t\tif (this.type != \"password\") {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tresult = this.deleteWord(formattedState, \"backward\")\n\t\t\t\t}\n\t\t\t\treturn result\n\t\t\t},\n\t\t\tdeleteWordForward: (event, unformatted, formattedState) => {\n\t\t\t\tlet result = unformatted\n\t\t\t\tif (this.type != \"password\") {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tresult = this.deleteWord(formattedState, \"forward\")\n\t\t\t\t}\n\t\t\t\treturn result\n\t\t\t},\n\t\t\tdeleteByCut: (_, state) => {\n\t\t\t\tthis.erase(state)\n\t\t\t\treturn state\n\t\t\t},\n\t\t\t// historyUndo - TODO\n\t\t\t// historyRedo - TODO\n\t\t\t// insertLineBreak - TODO\n\t\t},\n\t\tinput: {\n\t\t\tinsertReplacementText: (event, state) => ({ ...state, value: (event.target as HTMLInputElement).value }),\n\t\t\tinsertCompositionText: (event, state) => ({ ...state, value: (event.target as HTMLInputElement).value }),\n\t\t\tdeleteWordBackward: (event, state) =>\n\t\t\t\tthis.type == \"password\" ? { ...state, value: (event.target as HTMLInputElement).value } : state,\n\t\t\tdeleteWordForward: (event, state) =>\n\t\t\t\tthis.type == \"password\" ? { ...state, value: (event.target as HTMLInputElement).value } : state,\n\t\t\t// Chrome will dispatch an input event without inputType when auto-filling\n\t\t\tundefined: (event, state) => ({ ...state, value: (event.target as HTMLInputElement).value }),\n\t\t},\n\t}\n\n\tprivate insert(event: InputEvent, unformatted: tidily.State): tidily.State {\n\t\tevent.preventDefault()\n\t\tif (typeof event.data == \"string\")\n\t\t\tfor (const c of event.data)\n\t\t\t\tthis.formatter.allowed(c, unformatted) && this.replace(unformatted, c.replace(/(\\r|\\n|\\t)/g, \"\"))\n\t\treturn unformatted\n\t}\n\tprivate deleteWord(formattedState: tidily.State, direction: \"backward\" | \"forward\"): tidily.State {\n\t\tconst cursorPosition = tidily.Selection.getCursor(formattedState.selection)\n\t\tconst adjacentIndex = Adjacent.getWordBreakIndex(formattedState.value, cursorPosition, direction)\n\t\tconst result = this.unformatState({\n\t\t\t...formattedState,\n\t\t\tselection: {\n\t\t\t\tstart: Math.min(cursorPosition, adjacentIndex),\n\t\t\t\tend: Math.max(cursorPosition, adjacentIndex),\n\t\t\t\tdirection: \"none\",\n\t\t\t},\n\t\t})\n\t\tconst value = result.value.substring(0, result.selection.start) + result.value.substring(result.selection.end)\n\t\tresult.value = value\n\t\tresult.selection.end = result.selection.start\n\t\treturn result\n\t}\n\n\tprivate select(state: tidily.State, from: number, to: number, direction?: tidily.Direction): void {\n\t\tstate.selection.start = from\n\t\tstate.selection.end = to\n\t\tdirection && (state.selection.direction = direction)\n\t}\n\tprivate erase(state: tidily.State): void {\n\t\tthis.replace(state, \"\")\n\t}\n\tprivate replace(state: tidily.State, insertString: string): void {\n\t\tstate.value =\n\t\t\tstate.value.substring(0, state.selection.start) + insertString + state.value.substring(state.selection.end)\n\t\tstate.selection.start = state.selection.start + insertString.length\n\t\tstate.selection.end = state.selection.start\n\t}\n\n\tprivate unformatState(formattedState: tidily.State): tidily.State {\n\t\treturn tidily.State.copy(this.formatter.unformat(tidily.StateEditor.copy(formattedState)))\n\t}\n\tprivate partialFormatState(unformattedState: tidily.State): Readonly<tidily.State> & tidily.Settings {\n\t\treturn this.formatter.partialFormat(tidily.StateEditor.copy(unformattedState))\n\t}\n\tprivate createFormattedState(state: tidily.State): Readonly<tidily.State> & tidily.Settings {\n\t\treturn this.formatter.format(tidily.StateEditor.copy(this.formatter.unformat(tidily.StateEditor.copy(state))))\n\t}\n\tprivate toString(value: any): string {\n\t\treturn this.formatter.toString(value)\n\t}\n\tpublic initialState(value: any, inputElement?: HTMLInputElement): Readonly<tidily.State> & tidily.Settings {\n\t\tconst stringValue = this.toString(value) || \"\"\n\t\tconst start = stringValue.length\n\t\tconst state = this.createFormattedState({\n\t\t\tvalue: stringValue,\n\t\t\tselection: { start, end: start, direction: \"none\" },\n\t\t})\n\t\tif (inputElement)\n\t\t\tinputElement.value = state.value\n\t\treturn state\n\t}\n\tpublic setValue(\n\t\tinputElement: HTMLInputElement,\n\t\tformattedState: Readonly<tidily.State> & tidily.Settings,\n\t\tvalue: any\n\t): Readonly<tidily.State> & tidily.Settings {\n\t\tconst result = {\n\t\t\t...formattedState,\n\t\t\tvalue: this.createFormattedState({ value: this.formatter.toString(value), selection: formattedState.selection })\n\t\t\t\t.value,\n\t\t}\n\t\tinputElement.value = result.value\n\t\treturn result\n\t}\n\tpublic getValue(formattedState: tidily.State): any {\n\t\treturn this.formatter.fromString(this.unformatState(formattedState).value)\n\t}\n\tpublic setSelection(\n\t\tinputElement: HTMLInputElement,\n\t\tformattedState: Readonly<tidily.State> & tidily.Settings,\n\t\tstart: number,\n\t\tend: number\n\t) {\n\t\tinputElement.focus()\n\t\tinputElement.selectionStart = start\n\t\tinputElement.selectionEnd = end\n\t\tthis.select(formattedState, start, end)\n\t\treturn formattedState\n\t}\n}\n","import { isly } from \"isly\"\n\nexport interface Key {\n\tname: string\n\tkey: string\n\tshift: boolean\n\tctrl: boolean\n\talt: boolean\n\tmeta: boolean\n}\n\nexport namespace Key {\n\texport const type = isly.object<Key>({\n\t\tname: isly.string(),\n\t\tkey: isly.string(),\n\t\tshift: isly.boolean(),\n\t\tctrl: isly.boolean(),\n\t\talt: isly.boolean(),\n\t\tmeta: isly.boolean(),\n\t})\n\texport const is = type.is\n\n\texport function create(name: string, event: KeyboardEvent): Key {\n\t\treturn {\n\t\t\tname,\n\t\t\tkey: event.key,\n\t\t\tshift: event.shiftKey,\n\t\t\tctrl: event.ctrlKey,\n\t\t\talt: event.altKey,\n\t\t\tmeta: event.metaKey,\n\t\t}\n\t}\n}\n","@import \"./shared.css\";\n\n:host {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-weight: var(--smoothly-font-weight);\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tcolor: rgb(var(--smoothly-input-foreground));\n}\n\n:host[hidden] {\n\tdisplay: none;\n}\n\n:host>.smoothly-input-container {\n\tposition: relative;\n\tflex-grow: 1;\n\theight: 100%;\n}\n\n:host>.smoothly-input-container>label {\n\tleft: var(--input-padding-side);\n}\n\n:host:not([show-label])>div>input {\n\tpadding: 0 var(--input-padding-side);\n}\n\n:host>.smoothly-input-container>div.guide {\n\tposition: absolute;\n box-sizing: border-box;\n align-content: center;\n\theight: 100%;\n\tpadding: \n\t\tvar(--input-value-padding-top) \n\t\tvar(--input-padding-side) \n\t\tvar(--input-value-padding-bottom) \n\t\tvar(--input-padding-side);\n}\n:host>.smoothly-input-container>div.guide>div.value {\n\tdisplay: inline;\n\tpointer-events: none;\n\topacity: 0;\n}\n:host>.smoothly-input-container>div.guide>div.remainder {\n\tdisplay: inline;\n\tpointer-events: none;\n\topacity: 0.5;\n}\n\n:host>.smoothly-input-container>input {\n\tpadding: \n\t\tvar(--input-value-padding-top) \n\t\tvar(--input-padding-side) \n\t\tvar(--input-value-padding-bottom) \n\t\tvar(--input-padding-side);\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\tborder: 0;\n\tz-index: 1;\n\tposition: relative;\n\tfont-size: 1rem;\n\tfont-family: var(--smoothly-font-family);\n}\n:host([disabled])>.smoothly-input-container>input {\n\tcursor: not-allowed;\n}\n\n:host>.smoothly-invalid {\n\tdisplay: none;\n\tz-index: 2;\n\tpadding: 0.5rem;\n}\n:host[invalid]>.smoothly-invalid {\n\tdisplay: flex;\n}\n\n:host>div>label {\n\tz-index: 1;\n\tpointer-events: none;\n}\n\n:host>div>input:focus {\n\toutline: none;\n}\n\n:host>div>input:-webkit-autofill,\n:host>div>input:-webkit-autofill:hover,\n:host>div>input:-webkit-autofill:focus,\n:host>div>input:-webkit-autofill:active {\n\tbox-shadow: 0 0 0 40em rgb(var(--smoothly-input-background)) inset;\n\t-webkit-box-shadow: 0 0 0 40em rgb(var(--smoothly-input-background)) inset;\n}\n\n:host>div>input:-webkit-autofill,\n:host>div>input:-webkit-autofill+label {\n\t-webkit-text-fill-color: rgb(var(--smoothly-input-foreground));\n}\n:host>span.copyable {\n\tposition: relative;\n}\n:host>span.copyable>smoothly-icon {\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: 0.5rem;\n\n}\n:host>span.copyable:hover small,\n:host>span.copyable:focus small {\n\tdisplay: block;\n}\n:host>span.copyable>small {\n\tdisplay: none;\n\twidth: max-content;\n\tborder-radius: 0.25rem;\n\tpadding: 0.2rem 0.3rem;\n\tposition: absolute;\n\tright: -0.5rem;\n\ttop: -2rem;\n\tbackground-color: rgb(var(--smoothly-default-contrast));\n\tcolor: rgb(var(--smoothly-default-tint));\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { tidily } from \"tidily\"\nimport { Color } from \"../../model\"\nimport { getLocale } from \"../../model/getLocale\"\nimport { Clearable } from \"./Clearable\"\nimport { Deep } from \"./Deep\"\nimport { Editable } from \"./Editable\"\nimport { Input } from \"./Input\"\nimport { InputStateHandler } from \"./InputStateHandler\"\nimport { Key } from \"./Key\"\nimport { Looks } from \"./Looks\"\n\n@Component({\n\ttag: \"smoothly-input\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInput implements Clearable, Input, Editable {\n\t@Element() element: HTMLSmoothlyInputElement\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks?: Looks\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ mutable: true }) value: any\n\t@Prop({ reflect: true }) type: tidily.Type = \"text\"\n\t@Prop({ reflect: true }) required = false\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop() autocomplete?: Exclude<tidily.Settings[\"autocomplete\"], undefined>\n\t@Prop({ reflect: true }) placeholder: string | undefined\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop({ mutable: true, reflect: true }) readonly = false\n\t@Prop() toInteger?: boolean\n\t@Prop({ reflect: true }) currency?: isoly.Currency\n\t@Prop() min?: number\n\t@Prop() max?: number\n\t@Prop() pad?: number\n\t@Prop({ reflect: true }) invalid?: boolean = false\n\t@Prop({ reflect: true }) errorMessage?: string\n\t@Prop({ reflect: true }) copyable?: boolean\n\t@State() initialValue?: any\n\t@State() state: Readonly<tidily.State> & Readonly<tidily.Settings>\n\t@State() copied = false\n\tisDifferentFromInitial = false\n\tparent: Editable | undefined\n\tprivate stateHandler: InputStateHandler\n\tprivate inputElement: HTMLInputElement | undefined\n\tprivate uneditable = this.readonly\n\tprivate observer = Editable.Observer.create(this)\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\t@Event() smoothlyKeydown: EventEmitter<Key>\n\t@Event() smoothlyBlur: EventEmitter<void>\n\t@Event() smoothlyChange: EventEmitter<Record<string, any>>\n\t@Event() smoothlyInput: EventEmitter<Record<string, any>>\n\t@Event() smoothlyUserInput: EventEmitter<Input.UserInput>\n\n\t@Method()\n\tasync getValue(): Promise<any | undefined> {\n\t\treturn this.stateHandler.getValue(this.state)\n\t}\n\t@Method()\n\tasync setValue(value: any): Promise<void> {\n\t\tif (this.inputElement)\n\t\t\tthis.state = this.stateHandler.setValue(this.inputElement, this.state, value)\n\t}\n\t@Method()\n\tasync setFocus(): Promise<void> {\n\t\tthis.inputElement?.focus()\n\t}\n\t@Method()\n\tasync setSelection(start: number, end: number): Promise<void> {\n\t\tif (this.inputElement)\n\t\t\tthis.state = this.stateHandler.setSelection(\n\t\t\t\tthis.inputElement,\n\t\t\t\tthis.state,\n\t\t\t\tstart,\n\t\t\t\tend < 0 ? this.inputElement.value.length + end + 1 : end\n\t\t\t)\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\t@Watch(\"name\")\n\tnameChange(_: string | undefined, oldName: string | undefined) {\n\t\tInput.formRename(this, oldName)\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tif (!this.uneditable && this.inputElement) {\n\t\t\tthis.state = this.stateHandler.setValue(this.inputElement, this.state, undefined)\n\t\t}\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\t!this.uneditable && (this.readonly = !editable)\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tif (!this.uneditable && this.inputElement) {\n\t\t\tthis.state = this.stateHandler.setValue(this.inputElement, this.state, this.initialValue)\n\t\t}\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.isDifferentFromInitial = false\n\t\tthis.initialValue = this.value\n\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t}\n\t@Method()\n\tasync setCustomInitialValue(value: any): Promise<void> {\n\t\tthis.initialValue = value\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tasync smoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInput) => void>): Promise<void> {\n\t\tInput.registerSubAction(this, event)\n\t}\n\t@Watch(\"currency\")\n\t@Watch(\"type\")\n\ttypeChange(): void {\n\t\tswitch (this.type) {\n\t\t\tcase \"price\":\n\t\t\t\tthis.stateHandler = InputStateHandler.create(\"price\", { currency: this.currency, toInteger: this.toInteger })\n\t\t\t\tbreak\n\t\t\tcase \"integer\":\n\t\t\t\tthis.stateHandler = InputStateHandler.create(\"integer\", { min: this.min, max: this.max, pad: this.pad })\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tthis.stateHandler = InputStateHandler.create(this.type, getLocale())\n\t\t\t\tbreak\n\t\t}\n\t\tthis.state = this.stateHandler.initialState(this.value ?? this.state?.value, this.inputElement)\n\t}\n\t@Watch(\"state\")\n\tstateChange() {\n\t\tconst value = this.stateHandler.getValue(this.state)\n\t\tthis.isDifferentFromInitial = Deep.notEqual(this.initialValue, value)\n\t\tthis.smoothlyInput.emit({ [this.name]: value })\n\t\tthis.observer.publish()\n\t}\n\t@Watch(\"value\")\n\tvalueChange(value: any) {\n\t\tconst lastValue = this.stateHandler.getValue(this.state)\n\t\tif (Deep.notEqual(lastValue, value) && this.inputElement) {\n\t\t\tthis.state = this.stateHandler.setValue(this.inputElement, this.state, value)\n\t\t\tthis.smoothlyInput.emit({ [this.name]: this.stateHandler.getValue(this.state) })\n\t\t}\n\t}\n\t@Watch(\"disabled\")\n\t@Watch(\"readonly\")\n\treadonlyChange() {\n\t\tthis.observer.publish()\n\t}\n\tcomponentWillLoad() {\n\t\tthis.initialValue = this.value\n\t\tthis.typeChange()\n\t\tthis.smoothlyInputLooks.emit(\n\t\t\t(looks, color) => ((this.looks = this.looks ?? looks), !this.color && (this.color = color))\n\t\t)\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.observer.publish()\n\t}\n\tcomponentDidLoad() {\n\t\tif (this.inputElement)\n\t\t\tthis.inputElement.value = this.state.value\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected)\n\t\t\tawait this.unregister()\n\t}\n\t@Listen(\"input\")\n\t@Listen(\"beforeinput\")\n\tonEvent(event: InputEvent) {\n\t\tthis.state = this.stateHandler.onInputEvent(event, this.state)\n\t\tif (event.type == \"input\" || event.defaultPrevented)\n\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: this.stateHandler.getValue(this.state) })\n\t}\n\tcopyText(value?: string) {\n\t\tif (value) {\n\t\t\tnavigator.clipboard.writeText(value)\n\t\t\tthis.copied = true\n\t\t}\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={{ \"has-value\": this.state?.value != undefined && this.state?.value != \"\" }}\n\t\t\t\tonclick={() => this.inputElement?.focus()}>\n\t\t\t\t<slot name=\"start\" />\n\t\t\t\t<div class=\"smoothly-input-container\">\n\t\t\t\t\t<div class={\"guide\"}>\n\t\t\t\t\t\t<div class={\"value\"}>{this.state?.value}</div>\n\t\t\t\t\t\t<div class={\"remainder\"}>{this.state?.remainder}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<input\n\t\t\t\t\t\tref={(el: HTMLInputElement) => (this.inputElement = el)}\n\t\t\t\t\t\tcolor={this.color}\n\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\ttype={this.state?.type}\n\t\t\t\t\t\tinputmode={this.state?.inputmode}\n\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\tautocomplete={this.autocomplete ?? this.state?.autocomplete}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\treadOnly={this.readonly}\n\t\t\t\t\t\tpattern={this.state?.pattern && this.state?.pattern.source}\n\t\t\t\t\t\tonKeyDown={async event => {\n\t\t\t\t\t\t\tthis.state = this.stateHandler.onKeyDown(event, this.state)\n\t\t\t\t\t\t\tif (!this.readonly && !this.disabled)\n\t\t\t\t\t\t\t\tthis.smoothlyKeydown.emit(Key.create(this.name, event))\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonFocus={event => !this.readonly && (this.state = this.stateHandler.onFocus(event, this.state))}\n\t\t\t\t\t\tonBlur={event => {\n\t\t\t\t\t\t\tif (!this.readonly) {\n\t\t\t\t\t\t\t\tconst lastValue = this.stateHandler.getValue(this.state)\n\t\t\t\t\t\t\t\tthis.state = this.stateHandler.onBlur(event, this.state)\n\t\t\t\t\t\t\t\tthis.smoothlyBlur.emit()\n\t\t\t\t\t\t\t\tthis.smoothlyInput.emit({ [this.name]: this.stateHandler.getValue(this.state) })\n\t\t\t\t\t\t\t\tif (Deep.notEqual(lastValue, this.stateHandler.getValue(this.state))) {\n\t\t\t\t\t\t\t\t\tthis.smoothlyChange.emit({ [this.name]: this.stateHandler.getValue(this.state) })\n\t\t\t\t\t\t\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: this.stateHandler.getValue(this.state) })\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<label class={\"label float-on-focus\"} htmlFor={this.name}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t\t{this.copyable && this.value && (\n\t\t\t\t\t<span class=\"copyable\">\n\t\t\t\t\t\t<small>{this.copied ? \"Copied!\" : \"Copy\"}</small>\n\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\tname=\"copy-outline\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tonClick={() => this.copyText(this.value)}\n\t\t\t\t\t\t\tonMouseLeave={() => (this.copied = false)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t\t<smoothly-icon class=\"smoothly-invalid\" name=\"alert-circle\" size=\"small\" tooltip={this.errorMessage} />\n\t\t\t\t<slot name=\"end\" />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../shared.css\";\n\n:host {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-direction: row;\n\tposition: relative;\n\tgap: .5rem;\n\tpadding-inline: var(--input-padding-side);\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tbox-sizing: border-box;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tcolor: rgb(var(--smoothly-input-foreground));\n}\n:host:has(>.smoothly-checkbox-end-slot:not(:empty)) {\n\tpadding-right: 0;\n}\n\n:host>input {\n\t-webkit-appearance: none;\n\t-moz-appearance: none;\n\tappearance: none;\n\theight: 1.25rem;\n\twidth: 1.25rem;\n\tborder-radius: 0.25rem;\n\tborder: 1px solid rgb(var(--smoothly-input-foreground));\n\tcolor: rgb(var(--smoothly-input-foreground));\n\tdisplay: block;\n}\n:host([checked][looks=transparent])>input, /* Override shared.css transparent styling */\n:host([checked])>input {\n\tbackground-color: rgb(var(--smoothly-input-foreground));\n}\n\n:host:not([readonly]):not([disabled])>input,\n:host:not([readonly]):not([disabled])>label {\n\tcursor: pointer;\n}\n:host>label:empty {\n\tdisplay: none;\n}\n\n:host([disabled]),\n:host([disabled])>* {\n\tcursor: not-allowed;\n}\n\n:host>smoothly-icon {\n\tposition: absolute;\n\tz-index: 1;\n\tpointer-events: none;\n\t--smoothly-color-contrast: var(--smoothly-input-background);\n\t/* outline: 2px solid blue; */\n}\n\n:host[looks=\"transparent\"] {\n\tbackground-color: transparent;\n}\n/* overwrite shared.css styling */\n:host[looks=\"transparent\"]:not([readonly]):focus-within {\n\toutline-color: transparent;\n}\n\n:host>.smoothly-checkbox-end-slot {\n\tmargin-left: auto;;\n}\n:host>.smoothly-checkbox-end-slot:empty {\n\tdisplay: none;\n}\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tWatch,\n} from \"@stencil/core\"\nimport { Color, Data } from \"../../../model\"\nimport { Clearable } from \"../Clearable\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-checkbox\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputCheckbox implements Input, Clearable, Editable, ComponentWillLoad {\n\t@Element() element: HTMLSmoothlyInputCheckboxElement\n\tisDifferentFromInitial = false\n\tparent: Editable | undefined\n\tprivate initialValue?: any\n\tprivate observer = Editable.Observer.create(this)\n\tprivate id: string\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ reflect: true, mutable: true }) readonly = false\n\t@Prop({ reflect: true }) disabled: boolean\n\t@Prop({ mutable: true, reflect: true }) checked = false\n\t@Prop() value?: Record<\"true\" | \"false\", any>\n\t@Prop({ reflect: true, mutable: true }) looks?: Looks\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyInput: EventEmitter<Data>\n\t@Event() smoothlyUserInput: EventEmitter<Input.UserInput>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\tcomponentWillLoad(): void | Promise<void> {\n\t\tthis.initialValue = this.checked\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.smoothlyInputLooks.emit(\n\t\t\t(looks, color) => ((this.looks = this.looks ?? looks), !this.color && (this.color = color))\n\t\t)\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\tthis.observer.publish()\n\t\tthis.id = \"id-\" + Math.random().toString(36).substring(2, 11)\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected)\n\t\t\tawait this.unregister()\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tasync smoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInputCheckbox) => void>): Promise<void> {\n\t\tInput.registerSubAction(this, event)\n\t}\n\t@Watch(\"name\")\n\tnameChange(_: string | undefined, oldName: string | undefined) {\n\t\tInput.formRename(this, oldName)\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<boolean> {\n\t\treturn this.value ? this.value[`${!!this.checked}`] : this.checked\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\t!this.disabled && !this.readonly && (this.checked = false)\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tthis.checked = this.initialValue\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.initialValue = this.checked\n\t\tthis.isDifferentFromInitial = false\n\t}\n\t@Watch(\"disabled\")\n\t@Watch(\"readonly\")\n\tasync handleDisabledChange(): Promise<void> {\n\t\tthis.observer.publish()\n\t}\n\n\t@Watch(\"checked\")\n\tasync elementCheck(_: boolean | undefined, before: boolean | undefined) {\n\t\tthis.isDifferentFromInitial = !!this.initialValue != !!this.checked\n\t\tconst changed = !!this.checked != !!before\n\t\tif (changed) {\n\t\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t\t\tthis.observer.publish()\n\t\t}\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\tid={this.id}\n\t\t\t\t\tchecked={this.checked}\n\t\t\t\t\tdisabled={this.disabled || this.readonly}\n\t\t\t\t\tonChange={async e => {\n\t\t\t\t\t\tthis.checked = (e.target as HTMLInputElement).checked\n\t\t\t\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: await this.getValue() })\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t{this.checked && <smoothly-icon name=\"checkmark-sharp\" size=\"tiny\" />}\n\t\t\t\t<label htmlFor={this.id}>\n\t\t\t\t\t<slot />\n\t\t\t\t</label>\n\t\t\t\t<span class=\"smoothly-checkbox-end-slot\">\n\t\t\t\t\t<slot name=\"end\" />\n\t\t\t\t</span>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../../button/style.css\";\n\n:host {\n\tdisplay: flex;\n}\n\n:host(:not([display])) {\n\tdisplay: none;\n}\n\n:host([type=\"input\"])::slotted(smoothly-button>button) {\n\tcursor: pointer;\n\tfilter: opacity(60%);\n\t--smoothly-button-foreground: var(--smoothly-input-foreground);\n\tbackground-color: transparent;\n}\n\n:host::slotted(smoothly-button>button > * > * + smoothly-icon) {\n\tdisplay: none;\n}\n\n:host([disabled]) {\n\tcursor: not-allowed\n}\n\n:host([type=\"input\"]):hover ::slotted(smoothly-icon) {\n\tcursor: pointer;\n\tfilter: opacity(100%);\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop } from \"@stencil/core\"\nimport { Color, Fill } from \"../../../model\"\nimport { SmoothlyForm } from \"../../form\"\nimport { Clearable } from \"../Clearable\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\n\n@Component({\n\ttag: \"smoothly-input-clear\",\n\tstyleUrl: \"./style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputClear {\n\t@Element() element: HTMLSmoothlyInputClearElement\n\t@Prop() color?: Color\n\t@Prop({ reflect: true }) expand?: \"block\" | \"full\"\n\t@Prop({ reflect: true }) fill?: Fill = \"clear\"\n\t@Prop({ reflect: true, mutable: true }) disabled = false\n\t@Prop({ reflect: true }) size: \"small\" | \"large\" | \"icon\" | \"flexible\" = \"icon\"\n\t@Prop({ reflect: true }) shape?: \"rounded\"\n\t@Prop({ reflect: true, mutable: true }) display = true\n\t@Prop({ reflect: true }) type: \"form\" | \"input\" = \"input\"\n\t@Prop() tooltip = \"Clear\"\n\tprivate parent?: Clearable | (Clearable & Editable)\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\n\tasync componentWillLoad() {\n\t\tthis.smoothlyInputLoad.emit(parent => {\n\t\t\tif (Clearable.is(parent)) {\n\t\t\t\tthis.parent = parent\n\t\t\t\tif (Editable.Element.is(parent)) {\n\t\t\t\t\tparent.listen(async p => {\n\t\t\t\t\t\tif (Input.is(p)) {\n\t\t\t\t\t\t\tconst defined = typeof p.defined == \"boolean\" ? p.defined : Boolean(await p.getValue())\n\t\t\t\t\t\t\tthis.display = defined && !p.readonly && !p.disabled\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (p instanceof SmoothlyForm) {\n\t\t\t\t\t\t\tthis.disabled = p.readonly || Object.values(p.value).filter(val => val).length < 1\n\t\t\t\t\t\t\tthis.display = !p.readonly\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\t@Listen(\"click\")\n\tclickHandler() {\n\t\tthis.parent?.clear()\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host title={this.tooltip}>\n\t\t\t\t<smoothly-button\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\ttype={\"button\"}\n\t\t\t\t\tshape={this.shape}\n\t\t\t\t\texpand={this.expand}\n\t\t\t\t\tcolor={this.color}\n\t\t\t\t\tfill={this.fill ?? (this.type == \"input\" ? \"clear\" : undefined)}>\n\t\t\t\t\t<slot />\n\t\t\t\t\t<smoothly-icon name=\"close\" size=\"tiny\" />\n\t\t\t\t</smoothly-button>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../shared.css\";\n\n:host {\n\tdisplay: flex;\n\tposition: relative;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\talign-items: center;\n\tjustify-content: center;\n}\n:host>smoothly-input {\n\twidth: 100%;\n\t--input-min-height: calc(var(--input-min-height) - 2px);\n\t--smoothly-input-border-focus: none;\n}\n:host div.color-sample {\n\theight: 2em;\n\twidth: 3em;\n\tmargin-right: 0.5rem;\n\tbackground-color: var(--hexCode);\n\toutline: 1px solid rgb(var(--smoothly-input-border));\n\tborder-radius: 3px;\n}\n:host smoothly-icon[name=options-outline] {\n\tpadding-right: var(--input-padding-side);\n}\n:host[readonly] smoothly-icon[name=options-outline],\n:host[disabled] smoothly-icon[name=options-outline] {\n\tdisplay: none;\n}\n:host:not([readonly]):not([disabled]) smoothly-icon[name=options-outline] {\n\tcursor: pointer;\n}\n:host>div.rgb-sliders {\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tposition: absolute;\n\tpadding: 1em 1em 1em 0;\n\ttop: calc(var(--element-height) + .8em);\n\tleft: 0;\n\tbox-sizing: border-box;\n\tz-index: 20;\n\tborder: 1px solid rgb(var(--smoothly-input-border));\n}\n:host>div.rgb-sliders::before {\n\tcontent: \"\";\n\ttransform: translate(2em, -0.55em) rotate(45deg);\n\twidth: 1em;\n\theight: 1em;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tborder-top: 1px solid rgb(var(--smoothly-input-border));\n\tborder-left: 1px solid rgb(var(--smoothly-input-border));\n\tposition: absolute;\n\tz-index: 100;\n\ttop: 0em\n}\n:host>div.rgb-sliders>smoothly-toggle-switch {\n\tmargin-left: auto;\n\tmargin-right: 1em;\n\tmargin-bottom: 1em;\n}\ndiv.rgb-sliders smoothly-input-range {\n\tpadding: .5em 0\n}\ndiv.rgb-sliders smoothly-input-range label {\n\twidth: 4em;\n}\n\n/* -------------RGB SLIDERS------------------- */\n\n/* --------------------R------------------- */\ndiv.rgb-sliders smoothly-input-range>div>input[name=r]::-webkit-slider-runnable-track {\n\tbackground: linear-gradient(to left, rgb(255, var(--rgb-g), var(--rgb-b)), rgb(0, var(--rgb-g), var(--rgb-b)))\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=r]::-moz-range-track {\n\tbackground: linear-gradient(to left, rgb(255, var(--rgb-g), var(--rgb-b)), rgb(0, var(--rgb-g), var(--rgb-b)))\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=r]::-moz-range-thumb {\n\tbackground-color: red;\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=r]::-webkit-slider-thumb {\n\tbackground-color: red;\n}\n\n/* --------------------G------------------- */\ndiv.rgb-sliders smoothly-input-range>div>input[name=g]::-webkit-slider-runnable-track {\n\tbackground: linear-gradient(to left, rgb(var(--rgb-r), 255, var(--rgb-b)), rgb(var(--rgb-r), 0, var(--rgb-b)))\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=g]::-moz-range-track {\n\tbackground: linear-gradient(to left, rgb(var(--rgb-r), 255, var(--rgb-b)), rgb(var(--rgb-r), 0, var(--rgb-b)))\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=g]::-moz-range-thumb {\n\tbackground-color: green;\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=g]::-webkit-slider-thumb {\n\tbackground-color: green;\n}\n\n/* --------------------B------------------- */\ndiv.rgb-sliders smoothly-input-range>div>input[name=b]::-webkit-slider-runnable-track {\n\tbackground: linear-gradient(to left, rgb(var(--rgb-r), var(--rgb-g), 255), rgb(var(--rgb-r), var(--rgb-g), 0))\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=b]::-moz-range-track {\n\tbackground: linear-gradient(to left, rgb(var(--rgb-r), var(--rgb-g), 255), rgb(var(--rgb-r), var(--rgb-g), 0))\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=b]::-moz-range-thumb { \n\tbackground-color: blue;\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=b]::-webkit-slider-thumb {\n\tbackground-color: blue;\n}\n\n/* -------------HSL SLIDERS------------------- */\n\n/* --------------------H------------------- */\ndiv.rgb-sliders smoothly-input-range>div>input[name=h]::-webkit-slider-runnable-track {\n\tbackground: linear-gradient(to right in hsl longer hue, red, red)\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=h]::-moz-range-track {\n\tbackground: linear-gradient(to right in hsl longer hue, red, red)\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=h]::-webkit-slider-thumb {\n\tbackground-color: hsl(var(--hsl-h), 100%, 50%)\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=h]::-moz-range-thumb {\n\tbackground-color: hsl(var(--hsl-h), 100%, 50%)\n}\n\n\n/* --------------------S------------------- */\ndiv.rgb-sliders smoothly-input-range>div>input[name=s]::-webkit-slider-runnable-track { \n\tbackground: linear-gradient(to right, hsl(var(--hsl-h), 0%, 50%), hsl(var(--hsl-h), 100%, 50%)); \n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=s]::-moz-range-track {\n\tbackground: linear-gradient(to right, hsl(var(--hsl-h), 0%, 50%), hsl(var(--hsl-h), 100%, 50%)); \n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=s]::-moz-range-thumb {\n\tbackground-color: hsl(var(--hsl-h), var(--hsl-s), 50%)\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=s]::-webkit-slider-thumb {\n\tbackground-color: hsl(var(--hsl-h), var(--hsl-s), 50%)\n}\n\n/* --------------------L------------------- */\ndiv.rgb-sliders smoothly-input-range>div>input[name=l]::-moz-range-track {\n\tbackground: linear-gradient(to right, black, white)\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=l]::-webkit-slider-runnable-track {\n\tbackground: linear-gradient(to right, black, white)\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=l]::-moz-range-thumb {\n\tbackground-color: #777;\n}\ndiv.rgb-sliders smoothly-input-range>div>input[name=l]::-webkit-slider-thumb {\n\tbackground-color: #777;\n}\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tState,\n\tVNode,\n\tWatch,\n} from \"@stencil/core\"\nimport { Color, Data } from \"../../../model\"\nimport { HSL } from \"../../../model/Color/HSL\"\nimport { RGB } from \"../../../model/Color/RGB\"\nimport { Clearable } from \"../Clearable\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-color\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputColor implements Input, Clearable, Editable, ComponentWillLoad {\n\tparent: Editable | undefined\n\tisDifferentFromInitial = false\n\tprivate observer = Editable.Observer.create(this)\n\tprivate rgb: RGB = { r: undefined, g: undefined, b: undefined }\n\tprivate hsl: HSL = { h: undefined, s: undefined, l: undefined }\n\tprivate initialValue: string | undefined\n\t@Prop({ mutable: true }) value: string | undefined = undefined\n\t@Prop({ mutable: true, reflect: true }) looks?: Looks\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) readonly = false\n\t@Prop({ reflect: true }) disabled?: boolean\n\t@Prop() output: \"rgb\" | \"hex\" = \"rgb\"\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ reflect: true }) showLabel = true\n\t@Element() element: HTMLSmoothlyInputColorElement\n\t@State() open = false\n\t@State() sliderMode: \"rgb\" | \"hsl\" = \"rgb\"\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyInput: EventEmitter<Record<string, any>>\n\t@Event() smoothlyUserInput: EventEmitter<Input.UserInput>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\tasync componentWillLoad(): Promise<void> {\n\t\tthis.value && this.setInitialValue()\n\t\tthis.value && (this.rgb = Color.Hex.toRGB(this.value))\n\t\tthis.smoothlyInputLooks.emit((looks, color) => ((this.looks = this.looks ?? looks), (this.color = color)))\n\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks: Looks) => void>): void {\n\t\tif (event.target != this.element)\n\t\t\tevent.stopPropagation()\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tsmoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInputColor) => void>): void {\n\t\tInput.registerSubAction(this, event)\n\t}\n\t@Listen(\"click\", { target: \"window\" })\n\tonWindowClick(event: Event): void {\n\t\t!event.composedPath().includes(this.element) && this.open && (this.open = !this.open)\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected)\n\t\t\tawait this.unregister()\n\t}\n\t@Watch(\"name\")\n\tnameChange(_: string | undefined, oldName: string | undefined) {\n\t\tInput.formRename(this, oldName)\n\t}\n\t@Watch(\"disabled\")\n\t@Watch(\"readonly\")\n\twatchingReadonly(): void {\n\t\tthis.observer.publish()\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<RGB | string | undefined> {\n\t\treturn this.output === \"rgb\"\n\t\t\t? {\n\t\t\t\t\tr: this.rgb.r === undefined ? undefined : Math.round(this.rgb.r),\n\t\t\t\t\tg: this.rgb.g === undefined ? undefined : Math.round(this.rgb.g),\n\t\t\t\t\tb: this.rgb.b === undefined ? undefined : Math.round(this.rgb.b),\n\t\t\t }\n\t\t\t: this.value\n\t\t\t? this.value\n\t\t\t: undefined\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tthis.rgb = { r: undefined, g: undefined, b: undefined }\n\t\tthis.hsl = { h: undefined, s: undefined, l: undefined }\n\t\tthis.value = undefined\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tthis.readonly = !editable\n\t\tthis.open = false\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tthis.value = this.initialValue\n\t\tthis.open = false\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.initialValue = this.value\n\t\tthis.open = false\n\t}\n\t@Watch(\"value\")\n\tasync valueChanged(): Promise<void> {\n\t\tthis.isDifferentFromInitial = this.initialValue !== this.value\n\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t\tthis.observer.publish()\n\t}\n\thandleSwitchMode(event: CustomEvent): void {\n\t\tevent.stopPropagation()\n\t\tthis.sliderMode = event.detail ? \"hsl\" : \"rgb\"\n\t\tif (this.sliderMode === \"rgb\") {\n\t\t\tthis.value && (this.rgb = Color.Hex.toRGB(this.value))\n\t\t} else {\n\t\t\tthis.value && (this.hsl = Color.RGB.toHSL(Color.Hex.toRGB(this.value)))\n\t\t}\n\t}\n\tasync hexInputHandler(value: string): Promise<void> {\n\t\tif (value !== this.value) {\n\t\t\tif (value && Color.Hex.type.is(value)) {\n\t\t\t\tif (this.sliderMode === \"hsl\" || this.rgb.r === undefined) {\n\t\t\t\t\tthis.rgb = Color.Hex.toRGB(value)\n\t\t\t\t}\n\t\t\t\tif (this.sliderMode === \"rgb\" || this.hsl.h === undefined) {\n\t\t\t\t\tthis.hsl = Color.RGB.toHSL(Color.Hex.toRGB(value))\n\t\t\t\t}\n\t\t\t} else if (!value || !Color.Hex.type.is(value)) {\n\t\t\t\tthis.rgb = { r: undefined, g: undefined, b: undefined }\n\t\t\t\tthis.hsl = { h: undefined, s: undefined, l: undefined }\n\t\t\t}\n\t\t\tthis.value = value\n\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: await this.getValue() })\n\t\t}\n\t}\n\tsliderInputHandler(event: CustomEvent<Data>): void {\n\t\tevent.stopPropagation()\n\t\tconst color = Object.keys(event.detail)[0]\n\t\tlet temporaryColor = this.sliderMode === \"rgb\" ? this.rgb : this.hsl\n\t\ttype ColorType = HSL | RGB\n\t\tif (!(event.detail[color] === undefined)) {\n\t\t\tfor (const key of Object.keys(temporaryColor))\n\t\t\t\tif (key === color)\n\t\t\t\t\ttemporaryColor = {\n\t\t\t\t\t\t...temporaryColor,\n\t\t\t\t\t\t[key]: key === \"s\" || key === \"l\" ? +(event.detail[color] ?? 0) * 100 : event.detail[color],\n\t\t\t\t\t}\n\t\t\t\telse if (temporaryColor[key as keyof ColorType] === undefined)\n\t\t\t\t\ttemporaryColor = { ...temporaryColor, [key]: 0 }\n\t\t\tif (this.sliderMode === \"rgb\") {\n\t\t\t\tthis.rgb = { ...temporaryColor } as RGB\n\t\t\t\tthis.hsl = Color.RGB.toHSL(this.rgb)\n\t\t\t\tthis.hexInputHandler(Color.RGB.toHex(this.rgb))\n\t\t\t} else {\n\t\t\t\tthis.hsl = { ...temporaryColor } as HSL\n\t\t\t\tthis.rgb = Color.HSL.toRGB(this.hsl)\n\t\t\t\tthis.hexInputHandler(Color.RGB.toHex(Color.HSL.toRGB(this.hsl)))\n\t\t\t}\n\t\t}\n\t}\n\topenDropdown(): void {\n\t\tthis.open = !this.open\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tstyle={{\n\t\t\t\t\t\"--hexCode\": this.value,\n\t\t\t\t\t\"--rgb-r\": `${Math.round(this.rgb.r ?? 0)}`,\n\t\t\t\t\t\"--rgb-g\": `${Math.round(this.rgb.g ?? 0)}`,\n\t\t\t\t\t\"--rgb-b\": `${Math.round(this.rgb.b ?? 0)}`,\n\t\t\t\t\t\"--hsl-h\": `${Math.round(this.hsl.h ?? 0)}`,\n\t\t\t\t\t\"--hsl-s\": `${Math.round(this.hsl.s ?? 0)}%`,\n\t\t\t\t\t\"--hsl-l\": `${Math.round(this.hsl.l ?? 0)}%`,\n\t\t\t\t\t\"--element-height\": `${this.element.clientHeight}px`,\n\t\t\t\t}}>\n\t\t\t\t<smoothly-input\n\t\t\t\t\tvalue={this.value}\n\t\t\t\t\tcolor={this.color}\n\t\t\t\t\tlooks={undefined}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\ttype={\"hex-color\"}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\tshowLabel={this.showLabel}\n\t\t\t\t\tonSmoothlyInput={event => (event?.stopPropagation(), this.hexInputHandler(event.detail[this.name]))}>\n\t\t\t\t\t<slot />\n\t\t\t\t</smoothly-input>\n\t\t\t\t<div class=\"color-sample\" />\n\t\t\t\t<smoothly-icon\n\t\t\t\t\tcolor={this.color}\n\t\t\t\t\tname=\"options-outline\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tonClick={() => !this.readonly && !this.disabled && this.openDropdown()}\n\t\t\t\t/>\n\t\t\t\t<div>\n\t\t\t\t\t{/* Extra div needed otherwise stencil sets hidden on the slot for no apparent reason */}\n\t\t\t\t\t<slot name=\"end\" />\n\t\t\t\t</div>\n\t\t\t\t{this.open && !this.readonly && !this.disabled && (\n\t\t\t\t\t<div class=\"rgb-sliders\">\n\t\t\t\t\t\t<smoothly-toggle-switch\n\t\t\t\t\t\t\ttitle={`${this.sliderMode === \"rgb\" ? \"To HSL\" : \"To RGB\"}`}\n\t\t\t\t\t\t\tonSmoothlyToggleSwitchChange={event => this.handleSwitchMode(event)}\n\t\t\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\t\t\tcheckmark={false}\n\t\t\t\t\t\t\tselected={this.sliderMode === \"hsl\"}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{Object.entries(this.rgb).map(([key, value]) => (\n\t\t\t\t\t\t\t<smoothly-input-range\n\t\t\t\t\t\t\t\tstyle={this.sliderMode != \"rgb\" ? { display: \"none\" } : {}}\n\t\t\t\t\t\t\t\tname={key}\n\t\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\t\tmax={255}\n\t\t\t\t\t\t\t\tcolor={undefined}\n\t\t\t\t\t\t\t\ttype={\"text\"}\n\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\tstep={1}\n\t\t\t\t\t\t\t\toutputSide=\"right\"\n\t\t\t\t\t\t\t\tonSmoothlyInput={event => this.sliderInputHandler(event)}\n\t\t\t\t\t\t\t\tonSmoothlyUserInput={event => event.stopPropagation()}\n\t\t\t\t\t\t\t\tlabel={key.toUpperCase()}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{Object.entries(this.hsl).map(([key, value]) => (\n\t\t\t\t\t\t\t<smoothly-input-range\n\t\t\t\t\t\t\t\tstyle={this.sliderMode != \"hsl\" ? { display: \"none\" } : {}}\n\t\t\t\t\t\t\t\tname={key}\n\t\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\t\tmax={key === \"h\" ? 359 : 1}\n\t\t\t\t\t\t\t\tcolor={undefined}\n\t\t\t\t\t\t\t\ttype={key === \"s\" || key === \"l\" ? \"percent\" : \"text\"}\n\t\t\t\t\t\t\t\tvalue={(key === \"s\" || key === \"l\") && value ? value / 100 : value}\n\t\t\t\t\t\t\t\tstep={key === \"s\" || key === \"l\" ? 0.01 : 1}\n\t\t\t\t\t\t\t\toutputSide=\"right\"\n\t\t\t\t\t\t\t\tonSmoothlyInput={event => this.sliderInputHandler(event)}\n\t\t\t\t\t\t\t\tonSmoothlyUserInput={event => event.stopPropagation()}\n\t\t\t\t\t\t\t\tlabel={key.toUpperCase()}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Component, h, Host } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-input-color-demo\",\n\tstyles: \"style.css\",\n})\nexport class SmoothlyInputColorDemo {\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Color</h2>\n\t\t\t\t<smoothly-input-color name=\"color\">Choose color</smoothly-input-color>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../shared.css\";\n\n:host {\n\tdisplay: flex;\n\tposition: relative;\n\tmax-width: 100vw;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tbox-sizing: border-box;\n\tmin-height: var(--input-min-height);\n}\n:host .smoothly-date-placeholder {\n\tdisplay: none;\n}\n:host:not([always-show-guide]):not(:focus-within):not(.has-text) .smoothly-date-placeholder {\n\topacity: 0.5;\n\tdisplay: block;\n}\n\n:host:not([always-show-guide]):not(:focus-within):not(.has-text) smoothly-date-text {\n\tvisibility: hidden;\n}\n\n:host>.label {\n\tleft: var(--input-padding-side);\n}\n:host[show-label] > .smoothly-date-placeholder,\n:host[show-label] > smoothly-date-text {\n\tmargin-inline: var(--input-padding-side);\n\tmargin-block: var(--input-value-padding-top) var(--input-value-padding-bottom);\n}\n:host:not([show-label]) > .smoothly-date-placeholder,\n:host:not([show-label]) > smoothly-date-text {\n\tmargin-inline: var(--input-padding-side) auto;\n\tmargin-block: auto;\n}\n:host:not([readonly]) {\n\tcursor: pointer;\n}\n\n:host[disabled] {\n\tcursor: not-allowed;\n}\n\n:host>smoothly-calendar {\n\tposition: absolute;\n\tz-index: 20;\n\ttop: 4rem;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tmin-width: 18rem;\n\tmax-width: 22rem;\n}\n\n:host>smoothly-calendar::before {\n\tcontent: \"\";\n\tposition: absolute;\n\tleft: 2rem;\n\ttop: -0.55rem;\n\tz-index: 9;\n\ttransform: rotate(45deg);\n\twidth: 1rem;\n\theight: 1rem;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tborder-top: 1px solid rgb(var(--smoothly-input-border));\n\tborder-left: 1px solid rgb(var(--smoothly-input-border));\n}\n\n:host>.smoothly-icons {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tmargin-left: auto;\n}\n:host>.smoothly-icons>.smoothly-invalid {\n\tdisplay: none;\n\tpadding: 0.5rem;\n}\n:host[invalid]>.smoothly-icons>.smoothly-invalid {\n\tdisplay: flex;\n}\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tState,\n\tWatch,\n} from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { Color } from \"../../../model\"\nimport { Clearable } from \"../Clearable\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-date\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputDate implements ComponentWillLoad, Clearable, Input, Editable {\n\tprivate dateTextElement?: HTMLSmoothlyDateTextElement\n\tprivate iconsElement?: HTMLElement\n\tprivate calendarElement?: HTMLSmoothlyCalendarElement\n\t@Element() element: HTMLElement\n\t@Prop({ reflect: true }) locale?: isoly.Locale\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks?: Looks\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ reflect: true, mutable: true }) readonly = false\n\t@Prop({ reflect: true }) disabled?: boolean\n\t@Prop({ reflect: true }) invalid?: boolean = false\n\t@Prop({ reflect: true }) errorMessage?: string\n\t@Prop({ reflect: true }) placeholder?: string\n\t@Prop({ reflect: true }) alwaysShowGuide = false\n\tparent: Editable | undefined\n\tchanged = false\n\tisDifferentFromInitial = false\n\tprivate hasFocus = false\n\tprivate initialValue?: isoly.Date\n\tprivate observer = Editable.Observer.create(this)\n\t@Prop({ mutable: true }) value?: isoly.Date\n\t@Prop({ mutable: true }) open: boolean\n\t@Prop({ mutable: true }) max: isoly.Date\n\t@Prop({ mutable: true }) min: isoly.Date\n\t@Prop({ reflect: true }) showLabel = true\n\t@State() hasText = false\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyValueChange: EventEmitter<isoly.Date>\n\t@Event() smoothlyInput: EventEmitter<Record<string, any>>\n\t@Event() smoothlyUserInput: EventEmitter<Input.UserInput>\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\n\tcomponentWillLoad(): void {\n\t\tthis.setInitialValue()\n\t\tthis.smoothlyInputLooks.emit(\n\t\t\t(looks, color) => ((this.looks = this.looks ?? looks), !this.color && (this.color = color))\n\t\t)\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.observer.publish()\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected)\n\t\t\tawait this.unregister()\n\t}\n\t@Watch(\"name\")\n\tnameChange(_: string | undefined, oldName: string | undefined) {\n\t\tInput.formRename(this, oldName)\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<isoly.Date | undefined> {\n\t\treturn this.value\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tthis.value = undefined\n\t}\n\t@Watch(\"value\")\n\tonValueChange(value: isoly.Date) {\n\t\tif (!this.hasFocus) {\n\t\t\tthis.dateTextElement?.setValue(value)\n\t\t}\n\t\tthis.isDifferentFromInitial = this.initialValue != this.value\n\t\tthis.smoothlyValueChange.emit(value)\n\t\tthis.smoothlyInput.emit({ [this.name]: value })\n\t\tthis.observer.publish()\n\t}\n\t@Watch(\"disabled\")\n\t@Watch(\"readonly\")\n\twatchingReadonly(): void {\n\t\tthis.observer.publish()\n\t}\n\t@Listen(\"smoothlyInput\")\n\tsmoothlyInputHandler(event: CustomEvent<Record<string, any>>) {\n\t\tif (event.target != this.element)\n\t\t\tevent.stopPropagation()\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks: Looks) => void>) {\n\t\tif (event.target != this.element)\n\t\t\tevent.stopPropagation()\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tsmoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInputDate) => void>): void {\n\t\tInput.registerSubAction(this, event)\n\t}\n\t@Listen(\"click\", { target: \"window\" })\n\tonWindowClick(event: Event): void {\n\t\t!event.composedPath().includes(this.element) && this.open && (this.open = !this.open)\n\t}\n\tonClick(event: MouseEvent): void {\n\t\tconst includesTextElement = !!this.dateTextElement && event.composedPath().includes(this.dateTextElement)\n\t\tconst includesCalendar = !!this.calendarElement && event.composedPath().includes(this.calendarElement)\n\t\tconst includesIconsElement = !!this.iconsElement && event.composedPath().includes(this.iconsElement)\n\t\tif (!this.readonly && !this.disabled && !includesTextElement && !includesCalendar && !includesIconsElement)\n\t\t\tthis.dateTextElement?.select()\n\t\tif (!this.readonly && !this.disabled && !includesCalendar && !includesIconsElement)\n\t\t\tthis.open = !this.open || includesTextElement\n\t}\n\tonUserChangedValue(event: CustomEvent<isoly.Date | undefined>) {\n\t\tevent.stopPropagation()\n\t\tconst newValue = event.detail ?? undefined // normalize null to undefined\n\t\tif (this.value != newValue) {\n\t\t\tthis.value = newValue\n\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: this.value })\n\t\t}\n\t}\n\t@Method()\n\tasync edit(editable: boolean) {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync reset() {\n\t\tthis.value = this.initialValue\n\t}\n\t@Method()\n\tasync setInitialValue() {\n\t\tthis.initialValue = this.value\n\t\tthis.isDifferentFromInitial = false\n\t}\n\t@Listen(\"smoothlyDateSet\")\n\tdateSetHandler(event: CustomEvent<isoly.Date>) {\n\t\tthis.open = false\n\t\tevent.stopPropagation()\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\ttabindex={this.disabled ? undefined : 0}\n\t\t\t\tclass={{ \"has-value\": !!this.value, \"has-text\": this.hasText, \"floating-label\": this.alwaysShowGuide }}\n\t\t\t\tonClick={(e: MouseEvent) => this.onClick(e)}>\n\t\t\t\t<slot name=\"start\" />\n\t\t\t\t<label class={\"label float-on-focus\"}>\n\t\t\t\t\t<slot />\n\t\t\t\t</label>\n\t\t\t\t{this.placeholder && <span class=\"smoothly-date-placeholder\">{this.placeholder}</span>}\n\t\t\t\t<smoothly-date-text\n\t\t\t\t\tref={el => (this.dateTextElement = el)}\n\t\t\t\t\tlocale={this.locale}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\tshowLabel={this.showLabel}\n\t\t\t\t\tvalue={this.value}\n\t\t\t\t\tonSmoothlyDateTextHasText={e => (e.stopPropagation(), (this.hasText = e.detail))}\n\t\t\t\t\tonSmoothlyDateTextFocusChange={e => (e.stopPropagation(), (this.hasFocus = e.detail))}\n\t\t\t\t\tonSmoothlyDateHasPartialDate={e => (e.stopPropagation(), this.calendarElement?.jumpTo(e.detail))}\n\t\t\t\t\tonSmoothlyDateTextChange={e => (e.stopPropagation(), this.onUserChangedValue(e))}\n\t\t\t\t\tonSmoothlyDateTextDone={e => (e.stopPropagation(), (this.open = false), this.dateTextElement?.deselect())}\n\t\t\t\t/>\n\t\t\t\t<span class=\"smoothly-icons\" ref={el => (this.iconsElement = el)}>\n\t\t\t\t\t<smoothly-icon class=\"smoothly-invalid\" name=\"alert-circle\" size=\"small\" tooltip={this.errorMessage} />\n\t\t\t\t\t<slot name={\"end\"} />\n\t\t\t\t</span>\n\t\t\t\t{this.open && !this.readonly && (\n\t\t\t\t\t<smoothly-calendar\n\t\t\t\t\t\tref={el => (this.calendarElement = el)}\n\t\t\t\t\t\tdoubleInput={false}\n\t\t\t\t\t\tvalue={this.value}\n\t\t\t\t\t\tonSmoothlyDateSet={e => (e.stopPropagation(), this.onUserChangedValue(e))}\n\t\t\t\t\t\tmax={this.max}\n\t\t\t\t\t\tmin={this.min}>\n\t\t\t\t\t\t<div slot={\"year-label\"}>\n\t\t\t\t\t\t\t<slot name={\"year-label\"} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div slot={\"month-label\"}>\n\t\t\t\t\t\t\t<slot name={\"month-label\"} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</smoothly-calendar>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));\n\tmax-width: min(42rem, 100%);\n\tmargin: auto;\n\tflex-direction: column;\n\tgap: 0.5rem;\n}\n\n:host :not(smoothly-input-date):not(smoothly-input-date-range) {\n\tgrid-column: 1 / -1;\n}\n","import { Component, Fragment, h, Host, State } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\n\n@Component({\n\ttag: \"smoothly-input-date-demo\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputDateDemo {\n\t@State() date?: isoly.Date\n\t@State() alwaysShowGuide = false\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div>\n\t\t\t\t\t<h2>Date input</h2>\n\t\t\t\t\t<p>Different locales formatting the same date</p>\n\t\t\t\t\t<smoothly-button\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\tonClick={() => (this.date = this.date ? isoly.Date.next(this.date) : isoly.Date.now())}>\n\t\t\t\t\t\tSet date\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-input-checkbox\n\t\t\t\t\t\tlooks=\"transparent\"\n\t\t\t\t\t\tonSmoothlyUserInput={e => {\n\t\t\t\t\t\t\tthis.alwaysShowGuide = e.detail.value\n\t\t\t\t\t\t\tconsole.log(this.alwaysShowGuide)\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\tAlways Show Guide\n\t\t\t\t\t</smoothly-input-checkbox>\n\t\t\t\t</div>\n\t\t\t\t{([\"en-US\", \"en-GB\", \"de-DE\", \"se-SE\"] as isoly.Locale[]).map(locale => (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t<smoothly-input-date\n\t\t\t\t\t\t\tlocale={locale}\n\t\t\t\t\t\t\tname={locale}\n\t\t\t\t\t\t\tlooks=\"border\"\n\t\t\t\t\t\t\tvalue={this.date}\n\t\t\t\t\t\t\talwaysShowGuide={this.alwaysShowGuide}>\n\t\t\t\t\t\t\t{locale}\n\t\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t\t</smoothly-input-date>\n\t\t\t\t\t\t<smoothly-input-date-range\n\t\t\t\t\t\t\tlocale={locale}\n\t\t\t\t\t\t\tname={locale + \"-range\"}\n\t\t\t\t\t\t\tlooks=\"border\"\n\t\t\t\t\t\t\tstart={this.date}\n\t\t\t\t\t\t\tend={this.date ? isoly.Date.next(this.date) : undefined}\n\t\t\t\t\t\t\talwaysShowGuide={this.alwaysShowGuide}>\n\t\t\t\t\t\t\t{locale} Range\n\t\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t\t</smoothly-input-date-range>\n\t\t\t\t\t</Fragment>\n\t\t\t\t))}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../../shared.css\";\n\n:host {\n\tposition: relative;\n\tdisplay: flex;\n\tbackground-color: rgb(var(--smoothly-input-background));\n}\n\n:host [slot=start] {\n\talign-self: center;\n}\n\n:host .label {\n\tleft: var(--input-padding-side);\n}\n\n:host .smoothly-date-range-separator {\n\twhite-space: pre;\n}\n\n:host .smoothly-date-range-placeholder {\n\tmargin-inline: var(--input-padding-side);\n\tdisplay: none;\n}\n\n:host:not([always-show-guide]):not(:focus-within):not(.has-text) {\n\t& .smoothly-date-range-placeholder {\n\t\tdisplay: block;\n\t\topacity: 0.5;\n\t}\n\n\t& smoothly-date-text,\n\t& .smoothly-date-range-separator {\n\t\tvisibility: hidden;\n\t}\n}\n\n:host smoothly-date-text.start-date-text {\n\tmargin-inline: var(--input-padding-side) 0;\n}\n\n:host smoothly-date-text.end-date-text {\n\tmargin-inline: 0 var(--input-padding-side);\n}\n\n:host[show-label] .smoothly-date-range-placeholder,\n:host[show-label] smoothly-date-text,\n:host[show-label] .smoothly-date-range-separator {\n\tmargin-block: var(--input-value-padding-top) var(--input-value-padding-bottom);\n}\n\n:host:not([show-label]) .smoothly-date-range-placeholder,\n:host:not([show-label]) smoothly-date-text,\n:host:not([show-label]) .smoothly-date-range-separator {\n\tmargin-block: auto;\n}\n\n:host:not([readonly]) {\n\tcursor: pointer;\n}\n\n:host[disabled] {\n\tcursor: not-allowed;\n}\n\n:host > smoothly-calendar {\n\tposition: absolute;\n\tz-index: 20;\n\ttop: 4rem;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tmax-width: 22rem;\n\tmin-width: 18rem;\n}\n\n:host > smoothly-calendar::before {\n\tcontent: \"\";\n\tposition: absolute;\n\ttop: -0.55rem;\n\tleft: 3rem;\n\tz-index: 9;\n\ttransform: rotate(45deg);\n\twidth: 1rem;\n\theight: 1rem;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tborder-top: 1px solid rgb(var(--smoothly-input-border));\n\tborder-left: 1px solid rgb(var(--smoothly-input-border));\n}\n\n:host > .smoothly-date-range-input-part {\n\tdisplay: flex;\n\twidth: 100%;\n\tbackground-color: var(--smoothly-input-background);\n\tborder-radius: 0.25rem;\n\tcursor: pointer;\n}\n\n:host > span.smoothly-icons {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n}\n\n:host > .smoothly-icons > .smoothly-invalid {\n\tdisplay: none;\n\tpadding: 0.5rem;\n}\n\n:host[invalid] > .smoothly-icons > .smoothly-invalid {\n\tdisplay: flex;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { Clearable } from \"../../Clearable\"\nimport { Editable } from \"../../Editable\"\nimport { Input } from \"../../Input\"\nimport { Looks } from \"../../Looks\"\nimport { Color } from \"./../../../../model\"\n\n@Component({\n\ttag: \"smoothly-input-date-range\",\n\tstyleUrl: \"style.scss\",\n\tscoped: true,\n})\nexport class SmoothlyInputDateRange implements Clearable, Input, Editable {\n\tprivate startTextElement?: HTMLSmoothlyDateTextElement\n\tprivate endTextElement?: HTMLSmoothlyDateTextElement\n\tprivate calendarElement?: HTMLSmoothlyCalendarElement\n\t@Element() element: HTMLElement\n\t@Prop({ reflect: true }) locale?: isoly.Locale\n\t@Prop({ reflect: true }) name: string = \"dateRange\"\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks?: Looks\n\t@Prop({ reflect: true, mutable: true }) readonly = false\n\t@Prop({ reflect: true }) disabled?: boolean\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop({ mutable: true }) start: isoly.Date | undefined\n\t@Prop({ mutable: true }) end: isoly.Date | undefined\n\t@Prop({ reflect: true }) placeholder: string\n\t@Prop({ reflect: true }) alwaysShowGuide = false\n\t@Prop({ reflect: true }) invalid?: boolean = false\n\t@Prop({ reflect: true }) errorMessage?: string\n\t@Prop() max?: isoly.Date\n\t@Prop() min?: isoly.Date\n\tparent: Editable | undefined\n\tisDifferentFromInitial = false\n\tprivate hasFocus = false\n\tprivate observer = Editable.Observer.create(this)\n\tprivate initialStart?: isoly.Date\n\tprivate initialEnd?: isoly.Date\n\t@State() open: boolean\n\t@State() startHasText = false\n\t@State() endHasText = false\n\t@Event() smoothlyInput: EventEmitter<{ [name: string]: Partial<isoly.DateRange> | undefined }>\n\t@Event() smoothlyUserInput: EventEmitter<Input.UserInput<Partial<isoly.DateRange> | undefined>>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\n\tasync componentWillLoad() {\n\t\tthis.setInitialValue()\n\t\tthis.smoothlyInputLooks.emit(\n\t\t\t(looks, color) => ((this.looks = this.looks ?? looks), !this.color && (this.color = color))\n\t\t)\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.observer.publish()\n\t}\n\t@Watch(\"start\")\n\tstartChanged(_: isoly.Date | undefined, oldValue: isoly.Date | undefined) {\n\t\tthis.updateValue(oldValue, this.end)\n\t}\n\t@Watch(\"end\")\n\tendChanged(_: isoly.Date | undefined, oldValue: isoly.Date | undefined) {\n\t\tthis.updateValue(this.start, oldValue)\n\t}\n\n\tasync updateValue(oldStart: isoly.Date | undefined, oldEnd: isoly.Date | undefined) {\n\t\tif (oldStart != this.start || oldEnd != this.end) {\n\t\t\tthis.isDifferentFromInitial = this.initialStart != this.start || this.initialEnd != this.end\n\t\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t\t\tthis.observer.publish()\n\t\t}\n\t\tif (!this.hasFocus) {\n\t\t\tthis.startTextElement?.setValue(this.start)\n\t\t\tthis.endTextElement?.setValue(this.end)\n\t\t}\n\t}\n\t@Watch(\"disabled\")\n\t@Watch(\"readonly\")\n\twatchingReadonly(): void {\n\t\tthis.observer.publish()\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tsmoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInputDateRange) => void>): void {\n\t\tInput.registerSubAction(this, event)\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks: Looks) => void>) {\n\t\tif (event.target != this.element)\n\t\t\tevent.stopPropagation()\n\t}\n\t@Listen(\"click\", { target: \"window\" })\n\tonWindowClick(event: Event): void {\n\t\t!event.composedPath().includes(this.element) && this.open && (this.open = !this.open)\n\t}\n\tonClick(event: MouseEvent): void {\n\t\tconst includesStartTextElement = !!this.startTextElement && event.composedPath().includes(this.startTextElement)\n\t\tconst includesEndTextElement = !!this.endTextElement && event.composedPath().includes(this.endTextElement)\n\t\tconst includesTextElement = includesStartTextElement || includesEndTextElement\n\t\tif (!includesTextElement && !this.readonly && !this.disabled)\n\t\t\tthis.start && !this.end ? this.endTextElement?.select() : this.startTextElement?.select()\n\t\tif (!this.readonly && !this.disabled)\n\t\t\tthis.open = !this.open || includesTextElement\n\t}\n\tasync onSmoothlyDateTextChange(event: CustomEvent<isoly.Date | undefined>, startOrEnd: \"start\" | \"end\") {\n\t\tevent.stopPropagation()\n\t\tconst newValue = event.detail ?? undefined\n\t\tconst start = startOrEnd == \"start\" ? newValue : this.start\n\t\tconst end = startOrEnd == \"end\" ? newValue : this.end\n\t\tif (isoly.Date.is(start) && isoly.Date.is(end) && start > end) {\n\t\t\t// Swap values\n\t\t\tthis.start = end\n\t\t\tthis.end = start\n\t\t\tthis.startTextElement?.setValue(this.start)\n\t\t\tthis.endTextElement?.setValue(this.end)\n\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: await this.getValue() })\n\t\t} else if (this[startOrEnd] != newValue) {\n\t\t\tthis[startOrEnd] = newValue\n\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: await this.getValue() })\n\t\t}\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected)\n\t\t\tawait this.unregister()\n\t}\n\t@Watch(\"name\")\n\tnameChange(_: string | undefined, oldName: string | undefined) {\n\t\tInput.formRename(this, oldName)\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<Partial<isoly.DateRange> | undefined> {\n\t\treturn this.start || this.end ? { start: this.start, end: this.end } : undefined\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\t@Method()\n\tasync edit(editable: boolean) {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync reset() {\n\t\tthis.start = this.initialStart\n\t\tthis.end = this.initialEnd\n\t}\n\t@Method()\n\tasync setInitialValue() {\n\t\tthis.initialStart = this.start\n\t\tthis.initialEnd = this.end\n\t\tthis.isDifferentFromInitial = false\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tthis.start = undefined\n\t\tthis.end = undefined\n\t\tthis.smoothlyInput.emit({ [this.name]: undefined })\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\ttabindex={this.disabled ? undefined : 0}\n\t\t\t\tclass={{\n\t\t\t\t\t\"has-value\": !!(this.start || this.end),\n\t\t\t\t\t\"has-text\": !!(this.startHasText || this.endHasText),\n\t\t\t\t\t\"floating-label\": this.alwaysShowGuide,\n\t\t\t\t}}>\n\t\t\t\t<span class=\"smoothly-date-range-input-part\" onClick={(e: MouseEvent) => this.onClick(e)}>\n\t\t\t\t\t<slot name=\"start\" />\n\t\t\t\t\t<label class={\"label float-on-focus\"}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</label>\n\t\t\t\t\t{this.placeholder && <span class=\"smoothly-date-range-placeholder\">{this.placeholder}</span>}\n\t\t\t\t\t<smoothly-date-text\n\t\t\t\t\t\tref={el => (this.startTextElement = el)}\n\t\t\t\t\t\tclass=\"start-date-text\"\n\t\t\t\t\t\tlocale={this.locale}\n\t\t\t\t\t\tonSmoothlyDateTextHasText={e => (e.stopPropagation(), (this.startHasText = e.detail))}\n\t\t\t\t\t\tonSmoothlyDateTextFocusChange={e => (e.stopPropagation(), (this.hasFocus = e.detail))}\n\t\t\t\t\t\tonSmoothlyDateHasPartialDate={e => (e.stopPropagation(), this.calendarElement?.jumpTo(e.detail))}\n\t\t\t\t\t\tonSmoothlyDateTextChange={e => (e.stopPropagation(), this.onSmoothlyDateTextChange(e, \"start\"))}\n\t\t\t\t\t\tonSmoothlyDateTextNext={e => (e.stopPropagation(), this.endTextElement?.select())}\n\t\t\t\t\t\tonSmoothlyDateTextDone={e => (\n\t\t\t\t\t\t\te.stopPropagation(),\n\t\t\t\t\t\t\tthis.end ? (this.startTextElement?.deselect(), (this.open = false)) : this.endTextElement?.select()\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tvalue={this.start}\n\t\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tshowLabel={this.showLabel}\n\t\t\t\t\t/>\n\t\t\t\t\t<span class=\"smoothly-date-range-separator\"> – </span>\n\t\t\t\t\t<smoothly-date-text\n\t\t\t\t\t\tref={el => (this.endTextElement = el)}\n\t\t\t\t\t\tclass=\"end-date-text\"\n\t\t\t\t\t\tlocale={this.locale}\n\t\t\t\t\t\tonSmoothlyDateTextHasText={e => (e.stopPropagation(), (this.endHasText = e.detail))}\n\t\t\t\t\t\tonSmoothlyDateTextFocusChange={e => (e.stopPropagation(), (this.hasFocus = e.detail))}\n\t\t\t\t\t\tonSmoothlyDateHasPartialDate={e => (e.stopPropagation(), this.calendarElement?.jumpTo(e.detail))}\n\t\t\t\t\t\tonSmoothlyDateTextChange={e => (e.stopPropagation(), this.onSmoothlyDateTextChange(e, \"end\"))}\n\t\t\t\t\t\tonSmoothlyDateTextPrevious={e => (e.stopPropagation(), this.startTextElement?.select(\"end\"))}\n\t\t\t\t\t\tonSmoothlyDateTextNext={e => e.stopPropagation()}\n\t\t\t\t\t\tonSmoothlyDateTextDone={e => (e.stopPropagation(), this.endTextElement?.deselect(), (this.open = false))}\n\t\t\t\t\t\tvalue={this.end}\n\t\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tshowLabel={this.showLabel}\n\t\t\t\t\t/>\n\t\t\t\t</span>\n\t\t\t\t<span class={\"smoothly-icons\"}>\n\t\t\t\t\t<smoothly-icon class=\"smoothly-invalid\" name=\"alert-circle\" size=\"small\" tooltip={this.errorMessage} />\n\t\t\t\t\t<slot name={\"end\"} />\n\t\t\t\t</span>\n\t\t\t\t{this.open && (\n\t\t\t\t\t<smoothly-calendar\n\t\t\t\t\t\tref={el => (this.calendarElement = el)}\n\t\t\t\t\t\tdoubleInput\n\t\t\t\t\t\tonSmoothlyDateSet={e => e.stopPropagation()}\n\t\t\t\t\t\tonSmoothlyDateRangeSet={e => {\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\t\tthis.start = e.detail.start\n\t\t\t\t\t\t\tthis.end = e.detail.end\n\t\t\t\t\t\t\tthis.smoothlyInput.emit({ [this.name]: e.detail })\n\t\t\t\t\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: e.detail })\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={this.start}\n\t\t\t\t\t\tstart={this.start}\n\t\t\t\t\t\tend={this.end}\n\t\t\t\t\t\tmax={this.max}\n\t\t\t\t\t\tmin={this.min}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../../shared.css\";\n\n:host {\n\tdisplay: flex;\n\tposition: relative;\n\tmax-width: 100vw;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tbox-sizing: border-box;\n\tmin-height: var(--input-min-height);\n}\n\n:host>smoothly-input {\n\t--input-min-height: calc(var(--input-min-height) - 2px);\n\t--smoothly-input-border-focus: none;\n}\n\n:host:not([readonly])>smoothly-input>div>input {\n\tcursor: pointer;\n}\n\n:host[disabled],\n:host[disabled]>smoothly-input>div>input {\n\tcursor: not-allowed;\n}\n\n:host[looks=transparent] smoothly-input {\n\toutline: none;\n}\n\n:host>smoothly-calendar {\n\tposition: absolute;\n\tz-index: 20;\n\ttop: 4rem;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tmin-width: 18rem;\n\tmax-width: 22rem;\n}\n\n:host>smoothly-calendar::before {\n\tcontent: \"\";\n\tbox-sizing: border-box;\n\tposition: absolute;\n\ttop: -0.55rem;\n\tleft: 2rem;\n\tz-index: 9;\n\ttransform: rotate(45deg);\n\twidth: 1rem;\n\theight: 1rem;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tborder-top: 1px solid rgb(var(--smoothly-input-border));\n\tborder-left: 1px solid rgb(var(--smoothly-input-border));\n}\n\n:host>span.icons {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n}\n:host>smoothly-input[name=\"date\"] {\n\twidth: 12rem;\n}\n:host>smoothly-input[name=\"hour\"] {\n\twidth: 4rem;\n}\n:host>smoothly-input[name=\"minute\"] {\n\tmin-width: 4rem;\n\tflex-grow: 1;\n}\n:host>span.colon {\n\tpadding: \n\t\tvar(--input-value-padding-top) \n\t\tvar(--input-padding-side) \n\t\tvar(--input-value-padding-bottom) \n\t\tvar(--input-padding-side);\n}\n:host>.icons>.smoothly-invalid {\n\tdisplay: none;\n\tz-index: 2;\n\tcursor: pointer;\n\tpadding: 0.5rem;\n}\n:host[invalid]>.icons>.smoothly-invalid {\n\tdisplay: flex;\n}\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tState,\n\tWatch,\n} from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { Color } from \"../../../../model\"\nimport { Clearable } from \"../../Clearable\"\nimport { Editable } from \"../../Editable\"\nimport { Input } from \"../../Input\"\nimport { Looks } from \"../../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-date-time\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputDateTime implements ComponentWillLoad, Clearable, Input, Editable {\n\t@Element() element: HTMLElement\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks?: Looks\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ reflect: true, mutable: true }) readonly = false\n\t@Prop({ reflect: true }) disabled?: boolean\n\t@Prop({ reflect: true }) invalid?: boolean = false\n\t@Prop({ reflect: true }) errorMessage?: string\n\tparent: Editable | undefined\n\tisDifferentFromInitial = false\n\tprivate initialValue?: isoly.DateTime\n\tprivate observer = Editable.Observer.create(this)\n\t@Prop({ mutable: true }) value?: isoly.DateTime\n\t@Prop({ mutable: true }) open: boolean\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop() min?: isoly.DateTime\n\t@Prop() max?: isoly.DateTime\n\t@State() date?: isoly.Date\n\t@State() hour?: number\n\t@State() minute?: number\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyValueChange: EventEmitter<isoly.DateTime>\n\t@Event() smoothlyInput: EventEmitter<Record<string, any>>\n\t@Event() smoothlyUserInput: EventEmitter<Input.UserInput>\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\n\tcomponentWillLoad(): void {\n\t\tthis.setInitialValue()\n\t\tthis.smoothlyInputLooks.emit(\n\t\t\t(looks, color) => ((this.looks = this.looks ?? looks), !this.color && (this.color = color))\n\t\t)\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.observer.publish()\n\t\tthis.valueChange(this.value)\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected)\n\t\t\tawait this.unregister()\n\t}\n\t@Watch(\"name\")\n\tnameChange(_: string | undefined, oldName: string | undefined) {\n\t\tInput.formRename(this, oldName)\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<isoly.DateTime | undefined> {\n\t\tconst value =\n\t\t\tthis.date && typeof this.hour == \"number\" && typeof this.minute == \"number\"\n\t\t\t\t? `${this.date}T${`${this.hour}`.padStart(2, \"0\")}:${`${this.minute}`.padStart(2, \"0\")}:00.000Z`\n\t\t\t\t: undefined\n\t\treturn isoly.DateTime.is(value) ? value : undefined\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tthis.value = undefined\n\t\tthis.date = undefined\n\t\tthis.hour = undefined\n\t\tthis.minute = undefined\n\t}\n\n\t@Watch(\"date\")\n\t@Watch(\"hour\")\n\t@Watch(\"minute\")\n\tasync handleChange() {\n\t\tconst value = await this.getValue()\n\t\tthis.smoothlyValueChange.emit(value)\n\t\tthis.smoothlyInput.emit({ [this.name]: value })\n\t\tthis.observer.publish()\n\t}\n\n\t@Watch(\"value\")\n\tvalueChange(value?: isoly.DateTime) {\n\t\tif (isoly.DateTime.is(value)) {\n\t\t\tthis.date = isoly.DateTime.getDate(value)\n\t\t\tthis.hour = isoly.DateTime.getHour(value)\n\t\t\tthis.minute = isoly.DateTime.getMinute(value)\n\t\t}\n\t\tthis.smoothlyValueChange.emit(value)\n\t\tthis.smoothlyInput.emit({ [this.name]: value })\n\t\tthis.observer.publish()\n\t}\n\t@Watch(\"disabled\")\n\t@Watch(\"readonly\")\n\twatchingReadonly(): void {\n\t\tthis.observer.publish()\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks: Looks) => void>) {\n\t\tif (event.target != this.element)\n\t\t\tevent.stopPropagation()\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tsmoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInputDateTime) => void>): void {\n\t\tInput.registerSubAction(this, event)\n\t}\n\t@Listen(\"click\", { target: \"window\" })\n\tonWindowClick(event: Event): void {\n\t\t!event.composedPath().includes(this.element) && this.open && (this.open = !this.open)\n\t}\n\t@Method()\n\tasync edit(editable: boolean) {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync reset() {\n\t\tif (isoly.DateTime.is(this.initialValue)) {\n\t\t\tthis.date = isoly.DateTime.getDate(this.initialValue)\n\t\t\tthis.hour = isoly.DateTime.getHour(this.initialValue)\n\t\t\tthis.minute = isoly.DateTime.getMinute(this.initialValue)\n\t\t} else {\n\t\t\tthis.date = undefined\n\t\t\tthis.hour = undefined\n\t\t\tthis.minute = undefined\n\t\t}\n\t}\n\t@Method()\n\tasync setInitialValue() {\n\t\tthis.initialValue = await this.getValue()\n\t\tthis.isDifferentFromInitial = false\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-input\n\t\t\t\t\tcolor={this.color}\n\t\t\t\t\tlooks={this.looks == \"transparent\" ? this.looks : undefined}\n\t\t\t\t\tname={\"date\"}\n\t\t\t\t\tonFocus={() => !this.readonly && !this.disabled && (this.open = !this.open)}\n\t\t\t\t\tonClick={() => !this.readonly && !this.disabled && (this.open = !this.open)}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\ttype=\"date\"\n\t\t\t\t\tvalue={this.date}\n\t\t\t\t\tshowLabel={this.showLabel}\n\t\t\t\t\tonSmoothlyInputLoad={e => e.stopPropagation()}\n\t\t\t\t\tonSmoothlyInput={async e => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\tthis.date = e.detail.date\n\t\t\t\t\t}}\n\t\t\t\t\tonSmoothlyUserInput={async e => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: await this.getValue() })\n\t\t\t\t\t}}>\n\t\t\t\t\t<slot />\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input\n\t\t\t\t\tname=\"hour\"\n\t\t\t\t\ttype=\"integer\"\n\t\t\t\t\tmax={23}\n\t\t\t\t\tpad={2}\n\t\t\t\t\tvalue={this.hour}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\tplaceholder=\"hh\"\n\t\t\t\t\tonSmoothlyInputLoad={e => e.stopPropagation()}\n\t\t\t\t\tonSmoothlyInput={async e => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\tthis.hour = e.detail.hour\n\t\t\t\t\t}}\n\t\t\t\t\tonSmoothlyUserInput={async e => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: await this.getValue() })\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<span class=\"colon\">:</span>\n\t\t\t\t<smoothly-input\n\t\t\t\t\tname=\"minute\"\n\t\t\t\t\ttype=\"integer\"\n\t\t\t\t\tmax={59}\n\t\t\t\t\tpad={2}\n\t\t\t\t\tvalue={this.minute}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\tplaceholder=\"mm\"\n\t\t\t\t\tonSmoothlyInputLoad={e => e.stopPropagation()}\n\t\t\t\t\tonSmoothlyInput={async e => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\tthis.minute = e.detail.minute\n\t\t\t\t\t}}\n\t\t\t\t\tonSmoothlyUserInput={async e => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: await this.getValue() })\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<span class=\"icons\">\n\t\t\t\t\t<smoothly-icon class=\"smoothly-invalid\" name=\"alert-circle\" size=\"small\" tooltip={this.errorMessage} />\n\t\t\t\t\t<slot name={\"end\"} />\n\t\t\t\t</span>\n\t\t\t\t{this.open && !this.readonly && (\n\t\t\t\t\t<smoothly-calendar\n\t\t\t\t\t\tdoubleInput={false}\n\t\t\t\t\t\tvalue={this.value ? isoly.DateTime.getDate(this.value) : undefined}\n\t\t\t\t\t\tmin={this.min ? isoly.DateTime.getDate(this.min) : undefined}\n\t\t\t\t\t\tmax={this.max ? isoly.DateTime.getDate(this.max) : undefined}\n\t\t\t\t\t\tonSmoothlyDateSet={async e => {\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\tthis.date = e.detail\n\t\t\t\t\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: await this.getValue() })\n\t\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\t<div slot={\"year-label\"}>\n\t\t\t\t\t\t\t<slot name={\"year-label\"} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div slot={\"month-label\"}>\n\t\t\t\t\t\t\t<slot name={\"month-label\"} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</smoothly-calendar>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-top: 2em;\n\tmargin-bottom: 10rem;\n}\n\n:host .select-div-row {\n\tdisplay: flex;\n}\n\n:host .select-div-row smoothly-input {\n flex: 1;\n}\n\nsmoothly-input-demo-standard {\n\tmargin-bottom: 2rem;\n}\n\ndiv.inputs {\n\tmax-width: min(calc(100% - 2rem), 56rem);\n\tmargin: auto;\n}\n\ndiv.inputs>h2:not(:first-child) {\n\tpadding-top: 3em;\n\tmargin-top: 3em;\n\tborder-top: 1px solid black;\n}\n\n.checkbox-group {\n\tdisplay: flex;\n\tgap: 1.5em;\n\talign-items: center;\n\tbackground-color: rgb(var(--smoothly-input-background));\n}\n\n.select-div {\n\tdisplay: flex;\n\t/* justify-content: space-between; */\n\tgap: 1em;\n\tflex-wrap: wrap;\n}\n\n.select-div>* {\n\tflex-grow: 1;\n\tmin-width: min(100%, var(--smoothly-form-input-min-width, 18rem));\n\tflex-basis: 40%;\n}\n","import { Component, Event, EventEmitter, h, Host, State } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\n\n@Component({\n\ttag: \"smoothly-input-demo\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputDemo {\n\t@State() duration: isoly.TimeSpan = { hours: 8 }\n\t@State() alphanumeric: string = \"!@##\"\n\tprivate numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]\n\t@Event() smoothlyUrlUpdate: EventEmitter<{ path: string; query?: string }>\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-input-demo-standard />\n\t\t\t\t<smoothly-input-date-demo />\n\t\t\t\t<smoothly-input-demo-user-input />\n\t\t\t\t<div class=\"inputs\">\n\t\t\t\t\t<h2>Calendar</h2>\n\t\t\t\t\t<smoothly-input-date name=\"some-date\">Calendar</smoothly-input-date>\n\t\t\t\t\t<smoothly-input-date-time name=\"someDateTime\" value={isoly.DateTime.now()}>\n\t\t\t\t\t\tDateTime\n\t\t\t\t\t</smoothly-input-date-time>\n\t\t\t\t\t<h2>Date Range</h2>\n\t\t\t\t\t<smoothly-input-date-range\n\t\t\t\t\t\tname=\"testing\"\n\t\t\t\t\t\tstart={isoly.Date.now()}\n\t\t\t\t\t\tend={isoly.Date.nextMonth(isoly.Date.now())}\n\t\t\t\t\t\tmin=\"2021-10-01\"\n\t\t\t\t\t\tmax=\"2025-01-31\"\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-input-date-range\n\t\t\t\t\t\tname=\"testing\"\n\t\t\t\t\t\tstart={isoly.Date.now()}\n\t\t\t\t\t\tend={isoly.Date.nextMonth(isoly.Date.now())}\n\t\t\t\t\t\tmin=\"2021-10-10\"\n\t\t\t\t\t\tmax=\"2024-12-30\">\n\t\t\t\t\t\t<smoothly-input-reset slot=\"end\" size=\"icon\" />\n\t\t\t\t\t</smoothly-input-date-range>\n\t\t\t\t\t<smoothly-input-date-range\n\t\t\t\t\t\tlooks=\"grid\"\n\t\t\t\t\t\tstart={isoly.Date.now()}\n\t\t\t\t\t\tend={isoly.Date.nextMonth(isoly.Date.now())}\n\t\t\t\t\t\tmin=\"2021-10-10\"\n\t\t\t\t\t\tmax=\"2025-12-30\"\n\t\t\t\t\t\tshowLabel={false}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\"--smoothly-input-border-radius\": \"0.5rem\",\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" size=\"icon\" />\n\t\t\t\t\t</smoothly-input-date-range>\n\t\t\t\t\t<h2>Date</h2>\n\t\t\t\t\t<smoothly-input-date>Date</smoothly-input-date>\n\t\t\t\t\t<smoothly-input-date showLabel={false} value=\"2021-10-28\" max=\"2021-12-30\" min=\"2021-10-10\">\n\t\t\t\t\t\tDate\n\t\t\t\t\t</smoothly-input-date>\n\t\t\t\t\t<smoothly-input-date value=\"2021-10-28\">\n\t\t\t\t\t\tDate\n\t\t\t\t\t\t<smoothly-input-reset slot=\"end\" size=\"icon\" />\n\t\t\t\t\t</smoothly-input-date>\n\t\t\t\t\t<smoothly-input-date value=\"2021-10-28\">\n\t\t\t\t\t\tDate\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" size=\"icon\" />\n\t\t\t\t\t</smoothly-input-date>\n\t\t\t\t\t<h2>Select</h2>\n\t\t\t\t\t<div class=\"select-div\">\n\t\t\t\t\t\t<smoothly-input-select name=\"select-dessert\" looks=\"border\">\n\t\t\t\t\t\t\t<label slot=\"label\">Select with clear button</label>\n\t\t\t\t\t\t\t<smoothly-item value=\"1\">Ice cream</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"2\">Sponge cake</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"3\" disabled>\n\t\t\t\t\t\t\t\tDisabled Item\n\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"4\">Cookie</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"5\">Croissant</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"6\">Chocolate fondue</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-input-clear size=\"icon\" slot=\"end\" />\n\t\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t\t<smoothly-input-select multiple name=\"select-dessert-multiple\" looks=\"border\">\n\t\t\t\t\t\t\t<label slot=\"label\">Select multiple with reset button</label>\n\t\t\t\t\t\t\t<smoothly-item value=\"ice cream\">Ice cream</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"sponge cake\">Sponge cake</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item selected value=\"cookie\">\n\t\t\t\t\t\t\t\tCookie\n\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"croissant\">Croissant</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item selected value=\"chocolate fondue\">\n\t\t\t\t\t\t\t\tChocolate fondue\n\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-input-reset size=\"icon\" slot=\"end\" />\n\t\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t\t<smoothly-input-select name=\"spirit-animals\" looks=\"border\" mutable>\n\t\t\t\t\t\t\t<label slot=\"label\">Select or add new options</label>\n\t\t\t\t\t\t\t<smoothly-item value=\"manatee\">Manatee</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item selected value=\"cthulu\">\n\t\t\t\t\t\t\t\tCthulu\n\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t\t<smoothly-input-select name=\"select-icon\" clearable={false} showSelected={false}>\n\t\t\t\t\t\t\t<smoothly-item value=\"folder\" selected>\n\t\t\t\t\t\t\t\t<smoothly-icon size=\"small\" name=\"folder-outline\" />\n\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"camera\">\n\t\t\t\t\t\t\t\t<smoothly-icon size=\"small\" name=\"camera-outline\" />\n\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t\t<smoothly-input-select ordered menuHeight=\"7.5items\" placeholder=\"Select...\" name=\"select-month\">\n\t\t\t\t\t\t\t<label slot=\"label\">Alphabet ordered select</label>\n\t\t\t\t\t\t\t{Array.from({ length: 26 })\n\t\t\t\t\t\t\t\t.map((_, i) => String.fromCharCode(i + 65))\n\t\t\t\t\t\t\t\t.map(char => (\n\t\t\t\t\t\t\t\t\t<smoothly-item value={char} selected={char == \"H\"}>\n\t\t\t\t\t\t\t\t\t\t{char}\n\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t\t<smoothly-input-select multiple menuHeight=\"7.5items\" placeholder=\"Select...\" name=\"select-month\">\n\t\t\t\t\t\t\t<label slot=\"label\">Month multiple select</label>\n\t\t\t\t\t\t\t<smoothly-item value=\"1\">January</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"2\">February</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"3\">March</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"4\">April</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"5\">May</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"6\">June</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"7\">July</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"8\">August</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"9\">September</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"10\">October</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"11\">November</smoothly-item>\n\t\t\t\t\t\t\t<smoothly-item value=\"12\">December</smoothly-item>\n\t\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t\t<div class=\"select-div-row\">\n\t\t\t\t\t\t\t<smoothly-input-select name=\"select-icon\" clearable={false} showSelected={false}>\n\t\t\t\t\t\t\t\t<smoothly-item value=\"folder\" selected>\n\t\t\t\t\t\t\t\t\t<smoothly-icon size=\"small\" name=\"folder-outline\" />\n\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t<smoothly-item value=\"camera\">\n\t\t\t\t\t\t\t\t\t<smoothly-icon size=\"small\" name=\"camera-outline\" />\n\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t<smoothly-item value=\"boat\">\n\t\t\t\t\t\t\t\t\t<smoothly-icon size=\"small\" name=\"boat-outline\" />\n\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t\t\t<smoothly-input-select name=\"select-number\" clearable={false}>\n\t\t\t\t\t\t\t\t{this.numbers.map(number => (\n\t\t\t\t\t\t\t\t\t<smoothly-item value=\"number\" selected={number === 3}>\n\t\t\t\t\t\t\t\t\t\t{number}\n\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t\t\t<smoothly-input name=\"name\" value=\"Sten Qvist\">\n\t\t\t\t\t\t\t\tName\n\t\t\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<h2>Duration</h2>\n\t\t\t\t\t<smoothly-input\n\t\t\t\t\t\tname=\"duration\"\n\t\t\t\t\t\ttype=\"duration\"\n\t\t\t\t\t\tplaceholder=\"hh:mm\"\n\t\t\t\t\t\tvalue={this.duration}\n\t\t\t\t\t\tonSmoothlyInput={e => (this.duration = e.detail.duration)}>\n\t\t\t\t\t\tDuration\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input\n\t\t\t\t\t\tname=\"duration\"\n\t\t\t\t\t\ttype=\"duration\"\n\t\t\t\t\t\tvalue={this.duration}\n\t\t\t\t\t\tplaceholder=\"-hh:mm\"\n\t\t\t\t\t\tonSmoothlyInput={e => {\n\t\t\t\t\t\t\tconst duration = e.detail.duration\n\t\t\t\t\t\t\tthis.duration = duration\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\tDuration\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<h2>Integer with Min/Max</h2>\n\t\t\t\t\t<smoothly-input name=\"days\" type=\"integer\" min={0} max={365}>\n\t\t\t\t\t\tDays per year (0-365)\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input name=\"hour\" type=\"integer\" min={0} max={23}>\n\t\t\t\t\t\tHours per day (0-23)\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input name=\"minute\" type=\"integer\" min={0} max={59}>\n\t\t\t\t\t\tMinutes per hour (0-59)\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input name=\"minute\" type=\"integer\" min={18} max={120}>\n\t\t\t\t\t\tAge (18-120)\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<h2>Invalid text with warning icon and tooltip</h2>\n\n\t\t\t\t\t<smoothly-input\n\t\t\t\t\t\tcopyable\n\t\t\t\t\t\tname=\"alphanumeric\"\n\t\t\t\t\t\tinvalid={!/^[a-zA-Z0-9]+$/.test(this.alphanumeric)}\n\t\t\t\t\t\terrorMessage={\"Only alphanumeric allowed\"}\n\t\t\t\t\t\tvalue={this.alphanumeric}\n\t\t\t\t\t\tonSmoothlyInput={e => (this.alphanumeric = e.detail.alphanumeric)}>\n\t\t\t\t\t\tAlphanumeric\n\t\t\t\t\t</smoothly-input>\n\n\t\t\t\t\t<h2>Identifiers</h2>\n\t\t\t\t\t<smoothly-input type=\"identifier-code\">Code</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"identifier-attribute\">Attribute</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"identifier-snake\">Snake</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"identifier-pascal\">Pascal</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"identifier-camel\">Camel</smoothly-input>\n\t\t\t\t\t<h2>Input Alternatives</h2>\n\t\t\t\t\t<smoothly-input type=\"text\" name=\"name.last\">\n\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\" />\n\t\t\t\t\t\tFirst Name\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"text\" name=\"name.first\">\n\t\t\t\t\t\tLast Name\n\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"end\" />\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input type=\"text\" name=\"name.first\" placeholder=\"Smith\">\n\t\t\t\t\t\tLast Name\n\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"end\" />\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-input placeholder=\"test\" />\n\t\t\t\t\t<smoothly-input-submit slot=\"submit\" fill=\"solid\" onSubmit={(e: Event) => alert(e)} color=\"success\" />\n\t\t\t\t\t<h4>Smoothly checkboxes</h4>\n\t\t\t\t\t<div class=\"checkbox-group\">\n\t\t\t\t\t\t<smoothly-input-checkbox disabled name=\"first-checkbox\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\" size=\"tiny\" />\n\t\t\t\t\t\t\tFirst\n\t\t\t\t\t\t</smoothly-input-checkbox>\n\t\t\t\t\t\t<smoothly-input-checkbox name=\"second-checkbox\" checked>\n\t\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\" size=\"tiny\" />\n\t\t\t\t\t\t\tsecond\n\t\t\t\t\t\t\t<smoothly-input-clear size=\"icon\" slot=\"end\" />\n\t\t\t\t\t\t</smoothly-input-checkbox>\n\t\t\t\t\t\t<smoothly-input-checkbox name=\"third-checkbox\">3rd</smoothly-input-checkbox>\n\t\t\t\t\t</div>\n\t\t\t\t\t<h4>Smoothly Radio Buttons</h4>\n\t\t\t\t\t<smoothly-input-radio clearable name=\"radioFirstInput\">\n\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\" />\n\t\t\t\t\t\t<label slot=\"label\">Clearable</label>\n\t\t\t\t\t\t<smoothly-input-radio-item value={\"first\"}>Label 1</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-radio-item selected value={\"second\"}>\n\t\t\t\t\t\t\tLabel 2\n\t\t\t\t\t\t</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-radio-item value={\"third\"}>Label 3</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-clear size=\"icon\" slot=\"end\" />\n\t\t\t\t\t</smoothly-input-radio>\n\t\t\t\t\t<smoothly-input-radio name=\"radioSecondInput\">\n\t\t\t\t\t\t<label slot=\"label\">Not clearable</label>\n\t\t\t\t\t\t<smoothly-input-radio-item value={\"first\"}>Label 1</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-radio-item value={\"second\"}>Label 2</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-radio-item value={\"third\"}>Label 3</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-radio-item value={\"fourth\"}>Label 4</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-radio-item value={\"fifth\"}>Label 5</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-radio-item value={\"sixth\"}>Label 6</smoothly-input-radio-item>\n\t\t\t\t\t</smoothly-input-radio>\n\t\t\t\t\t<smoothly-input-range-demo />\n\t\t\t\t\t<smoothly-input-color-demo />\n\t\t\t\t\t<smoothly-input-price-demo />\n\t\t\t\t\t<smoothly-back-to-top />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tmax-width: min(calc(100% - 0.5rem), 48rem);\n\tmargin: auto;\n}\n\n:host h2,\n:host p {\n\tmargin: .5rem 0;\n}\n:host > .description {\n\t--smoothly-form-input-min-width: 18rem;\n}\n:host smoothly-input-range[name=borderRadius] {\n\tflex-basis: 100%;\n}\ndiv.input-wrapper {\n\tdisplay: grid;\n\tmargin-top: 1rem;\n\tgrid-template-columns: 1fr 9rem;\n\tgap: 1rem;\n\tposition: relative;\n\tjustify-content: space-around;\n}\ndiv.input-wrapper > [name] {\n\tgrid-column: 1 / 2;\n}\ndiv.input-wrapper > .width {\n\twidth: 100%;\n\ttext-align: center;\n\tborder-bottom: 1px dashed black;\n}\ndiv.input-wrapper > .height {\n\talign-content: center;\n\tgrid-column: 2 / 3;\n\tborder-left: 1px dashed black;\n\tpadding-left: 1rem;\n\tcontent: \"hello\";\n}\ndiv.input-wrapper > .left-padding {\n\twidth: 0.5rem;\n\tgrid-column: 1 / 2;\n\twhite-space: nowrap;\n\toverflow: visible;\n\tposition: relative;\n\tcursor: default;\n}\ndiv.input-wrapper > .left-padding::before {\n\tcontent: \"\";\n\tposition: absolute;\n\twidth: 100%;\n\ttop: 1.5rem;\n\tbottom: -1rem;\n\tborder: 1px dashed black;\n\tz-index: 2;\n}\ndiv.input-wrapper > .left-padding:hover::before { \n\tbottom: -100vh;\n}\n","import { Component, Element, h, Host, State } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { Color } from \"../../../../model\"\nimport { Looks } from \"../../Looks\"\n\ntype Options = {\n\tcolor?: Color\n\tlooks?: Looks\n\tborderRadius?: number\n\treadonly?: boolean\n\tdisabled?: boolean\n\tinvalid?: boolean\n\terrorMessage?: string\n\tshowLabel?: boolean\n\tplaceholder?: string\n\talwaysShowGuide?: boolean\n}\n\n@Component({\n\ttag: \"smoothly-input-demo-standard\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputDemoStandard {\n\t@Element() element: HTMLElement\n\t@State() duration: isoly.TimeSpan = { hours: 8 }\n\t@State() options: Options = {}\n\n\tconnectedCallback() {\n\t\tthis.updateInputHeightText()\n\t}\n\tcomponentDidRender() {\n\t\tthis.updateInputHeightText()\n\t}\n\n\tupdateInputHeightText() {\n\t\tconst rootFontSize = Number(getComputedStyle(document.documentElement).fontSize.replace(\"px\", \"\"))\n\t\tthis.element.querySelectorAll(\".height\").forEach((el: HTMLDivElement) => {\n\t\t\tconst height = el.clientHeight\n\t\t\tel.innerHTML = `<b>${height / rootFontSize}rem</b> (${height}pixels)`\n\t\t})\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div class=\"description\">\n\t\t\t\t\t<h2>Input Standard</h2>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tHeight of input should be <code>3rem</code> including border. This is should result in a 48 pixel height at\n\t\t\t\t\t\t100% zoom, assuming a root font-size of 16 pixels.\n\t\t\t\t\t</p>\n\t\t\t\t\t<smoothly-form looks={\"grid\"} onSmoothlyFormInput={(e: CustomEvent<Options>) => (this.options = e.detail)}>\n\t\t\t\t\t\t<smoothly-input-select name=\"color\">\n\t\t\t\t\t\t\t<span slot=\"label\">Color</span>\n\t\t\t\t\t\t\t{Color.values.map(c => (\n\t\t\t\t\t\t\t\t<smoothly-item value={c}>\n\t\t\t\t\t\t\t\t\t<span color={c}>{c}</span>\n\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t\t<smoothly-input-select name=\"looks\">\n\t\t\t\t\t\t\t<span slot=\"label\">Looks</span>\n\t\t\t\t\t\t\t{Looks.values.map(l => (\n\t\t\t\t\t\t\t\t<smoothly-item value={l}>{l}</smoothly-item>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t\t<smoothly-input-range label={\"Border Radius (rem)\"} name={\"borderRadius\"} min={0} max={2} step={0.25} />\n\t\t\t\t\t\t<smoothly-input-checkbox name=\"readonly\">Readonly</smoothly-input-checkbox>\n\t\t\t\t\t\t<smoothly-input-checkbox name=\"disabled\">Disabled</smoothly-input-checkbox>\n\t\t\t\t\t\t<smoothly-input-checkbox name=\"invalid\">Invalid</smoothly-input-checkbox>\n\t\t\t\t\t\t<smoothly-input name=\"errorMessage\" value=\"This is not a valid value\">\n\t\t\t\t\t\t\tError Message\n\t\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t\t<smoothly-input-checkbox name=\"showLabel\" checked>\n\t\t\t\t\t\t\tShow Label\n\t\t\t\t\t\t</smoothly-input-checkbox>\n\t\t\t\t\t\t<smoothly-input name=\"placeholder\">Placeholder</smoothly-input>\n\t\t\t\t\t\t<smoothly-input-checkbox name=\"alwaysShowGuide\">\n\t\t\t\t\t\t\tAlways Show Guide (for date inputs)\n\t\t\t\t\t\t</smoothly-input-checkbox>\n\t\t\t\t\t</smoothly-form>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"input-wrapper\" style={{ \"--smoothly-input-border-radius\": `${this.options.borderRadius}rem` }}>\n\t\t\t\t\t<div class=\"width\">width: 100%</div>\n\t\t\t\t\t<div class=\"left-padding\">padding-left: 0.5rem</div>\n\t\t\t\t\t<smoothly-input\n\t\t\t\t\t\tname=\"text\"\n\t\t\t\t\t\tcolor={this.options.color}\n\t\t\t\t\t\tlooks={this.options.looks}\n\t\t\t\t\t\treadonly={this.options.readonly}\n\t\t\t\t\t\tdisabled={this.options.disabled}\n\t\t\t\t\t\tinvalid={this.options.invalid}\n\t\t\t\t\t\terrorMessage={this.options.errorMessage}\n\t\t\t\t\t\tshowLabel={this.options.showLabel}\n\t\t\t\t\t\tplaceholder={this.options.placeholder}>\n\t\t\t\t\t\t{this.options.showLabel && <span>Text</span>}\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<div class=\"height\" />\n\n\t\t\t\t\t<smoothly-input-select\n\t\t\t\t\t\tname=\"month\"\n\t\t\t\t\t\tcolor={this.options.color}\n\t\t\t\t\t\tlooks={this.options.looks}\n\t\t\t\t\t\treadonly={this.options.readonly}\n\t\t\t\t\t\tdisabled={this.options.disabled}\n\t\t\t\t\t\tinvalid={this.options.invalid}\n\t\t\t\t\t\terrorMessage={this.options.errorMessage}\n\t\t\t\t\t\tplaceholder={this.options.placeholder}>\n\t\t\t\t\t\t{this.options.showLabel && <label slot=\"label\">Select</label>}\n\t\t\t\t\t\t<smoothly-item value=\"1\">January</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"2\">February</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"3\">March</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"4\">April</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"5\">May</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"6\">June</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"7\">July</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"8\">August</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"9\">September</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"10\">October</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"11\">November</smoothly-item>\n\t\t\t\t\t\t<smoothly-item value=\"12\">December</smoothly-item>\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t</smoothly-input-select>\n\t\t\t\t\t<div class=\"height\" />\n\n\t\t\t\t\t<smoothly-input-checkbox\n\t\t\t\t\t\tname={\"checkbox\"}\n\t\t\t\t\t\tchecked\n\t\t\t\t\t\tcolor={this.options.color}\n\t\t\t\t\t\tlooks={this.options.looks}\n\t\t\t\t\t\treadonly={this.options.readonly}\n\t\t\t\t\t\tdisabled={this.options.disabled}>\n\t\t\t\t\t\tCheck\n\t\t\t\t\t\t<smoothly-input-reset slot=\"end\" />\n\t\t\t\t\t</smoothly-input-checkbox>\n\t\t\t\t\t<div class=\"height\" />\n\n\t\t\t\t\t<smoothly-input-radio\n\t\t\t\t\t\tname={\"radio\"}\n\t\t\t\t\t\tclearable\n\t\t\t\t\t\tcolor={this.options.color}\n\t\t\t\t\t\tlooks={this.options.looks}\n\t\t\t\t\t\treadonly={this.options.readonly}\n\t\t\t\t\t\tdisabled={this.options.disabled}\n\t\t\t\t\t\tshowLabel={this.options.showLabel}>\n\t\t\t\t\t\t{this.options.showLabel && <label slot=\"label\">Radio</label>}\n\t\t\t\t\t\t<smoothly-input-radio-item value={\"first\"}>Label 1</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-radio-item selected value={\"second\"}>\n\t\t\t\t\t\t\tLabel 2\n\t\t\t\t\t\t</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-radio-item value={\"third\"}>Label 3</smoothly-input-radio-item>\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t</smoothly-input-radio>\n\t\t\t\t\t<div class=\"height\" />\n\n\t\t\t\t\t<smoothly-input-file\n\t\t\t\t\t\tname={\"file\"}\n\t\t\t\t\t\tcolor={this.options.color}\n\t\t\t\t\t\tlooks={this.options.looks}\n\t\t\t\t\t\treadonly={this.options.readonly}\n\t\t\t\t\t\tdisabled={this.options.disabled}\n\t\t\t\t\t\t// TODO - invalid\n\t\t\t\t\t\t// TODO - errorMessage\n\t\t\t\t\t\tshowLabel={this.options.showLabel}\n\t\t\t\t\t\tplaceholder={this.options.placeholder}>\n\t\t\t\t\t\t{this.options.showLabel && <span slot={\"label\"}>File</span>}\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t</smoothly-input-file>\n\t\t\t\t\t<div class=\"height\" />\n\n\t\t\t\t\t<smoothly-input-range\n\t\t\t\t\t\tname={\"range\"}\n\t\t\t\t\t\tcolor={this.options.color}\n\t\t\t\t\t\tlooks={this.options.looks}\n\t\t\t\t\t\treadonly={this.options.readonly}\n\t\t\t\t\t\tdisabled={this.options.disabled}\n\t\t\t\t\t\t// TODO - invalid\n\t\t\t\t\t\t// TODO - errorMessage\n\t\t\t\t\t\tlabel={this.options.showLabel ? \"Range\" : undefined}\n\t\t\t\t\t\t// TODO - disabled\n\t\t\t\t\t\t// TODO - placeholder\n\t\t\t\t\t>\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t</smoothly-input-range>\n\t\t\t\t\t<div class=\"height\" />\n\n\t\t\t\t\t<smoothly-input-color\n\t\t\t\t\t\tname={\"color\"}\n\t\t\t\t\t\tcolor={this.options.color}\n\t\t\t\t\t\tlooks={this.options.looks}\n\t\t\t\t\t\treadonly={this.options.readonly}\n\t\t\t\t\t\tdisabled={this.options.disabled}\n\t\t\t\t\t\t// TODO - invalid\n\t\t\t\t\t\t// TODO - errorMessage\n\t\t\t\t\t\tshowLabel={this.options.showLabel}\n\t\t\t\t\t\t// TODO - placeholder\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.options.showLabel && <span>Color</span>}\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t</smoothly-input-color>\n\t\t\t\t\t<div class=\"height\" />\n\n\t\t\t\t\t<smoothly-input-date\n\t\t\t\t\t\tname={\"date\"}\n\t\t\t\t\t\tcolor={this.options.color}\n\t\t\t\t\t\tlooks={this.options.looks}\n\t\t\t\t\t\treadonly={this.options.readonly}\n\t\t\t\t\t\tdisabled={this.options.disabled}\n\t\t\t\t\t\tinvalid={this.options.invalid}\n\t\t\t\t\t\terrorMessage={this.options.errorMessage}\n\t\t\t\t\t\tshowLabel={this.options.showLabel}\n\t\t\t\t\t\tplaceholder={this.options.placeholder}\n\t\t\t\t\t\talwaysShowGuide={this.options.alwaysShowGuide}>\n\t\t\t\t\t\t{this.options.showLabel && <span>Date</span>}\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t</smoothly-input-date>\n\t\t\t\t\t<div class=\"height\" />\n\n\t\t\t\t\t<smoothly-input-date-time\n\t\t\t\t\t\tname={\"dateTime\"}\n\t\t\t\t\t\tcolor={this.options.color}\n\t\t\t\t\t\tlooks={this.options.looks}\n\t\t\t\t\t\treadonly={this.options.readonly}\n\t\t\t\t\t\tdisabled={this.options.disabled}\n\t\t\t\t\t\tinvalid={this.options.invalid}\n\t\t\t\t\t\terrorMessage={this.options.errorMessage}\n\t\t\t\t\t\tshowLabel={this.options.showLabel}\n\t\t\t\t\t\t// TODO - placeholder\n\t\t\t\t\t>\n\t\t\t\t\t\tDateTime\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t</smoothly-input-date-time>\n\t\t\t\t\t<div class=\"height\" />\n\n\t\t\t\t\t<smoothly-input-date-range\n\t\t\t\t\t\tname={\"dateRange\"}\n\t\t\t\t\t\tcolor={this.options.color}\n\t\t\t\t\t\tlooks={this.options.looks}\n\t\t\t\t\t\treadonly={this.options.readonly}\n\t\t\t\t\t\tdisabled={this.options.disabled}\n\t\t\t\t\t\tinvalid={this.options.invalid}\n\t\t\t\t\t\terrorMessage={this.options.errorMessage}\n\t\t\t\t\t\tplaceholder={this.options.placeholder}\n\t\t\t\t\t\talwaysShowGuide={this.options.alwaysShowGuide}\n\t\t\t\t\t\tshowLabel={this.options.showLabel}>\n\t\t\t\t\t\t{this.options.showLabel && <span>Date Range</span>}\n\t\t\t\t\t\t<smoothly-input-clear slot=\"end\" />\n\t\t\t\t\t</smoothly-input-date-range>\n\t\t\t\t\t<div class=\"height\" />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tmax-width: min(100%, 56rem);\n\tmargin-inline: auto;\n\tdisplay: grid;\n\tgrid-template-columns: 12rem 1fr;\n\tgap: 1rem;\n}\n:host > div {\n\tgrid-column: 1 / -1;\n}\n\n\n/* Mobile */\n@media (max-width: 48rem) {\n\t:host {\n\t\tgrid-template-columns: 1fr;\n\t}\n}\n","import { Component, h, Host, State } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\n\n@Component({\n\ttag: \"smoothly-input-demo-user-input\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputDemoUserInput {\n\tprivate readonly values = [\"zero\", \"one\", \"two\", \"three\", \"four\", \"five\"]\n\t@State() textIndex?: number\n\t@State() selectIndex?: number\n\t@State() checkboxChecked: boolean\n\t@State() radioIndex?: number\n\t@State() rangeValue?: number\n\tprivate readonly colors = [\"#ff0000\", \"#00ff00\", \"#0000ff\", \"#ffff00\", \"#00ffff\", \"#ff00ff\"]\n\t@State() colorIndex?: number\n\t@State() dateValue?: isoly.Date\n\t@State() datetimeValue?: isoly.DateTime\n\t@State() dateRangeValue?: isoly.DateRange\n\n\tincrement(index?: number): number {\n\t\treturn index === undefined ? 0 : (index + 1) % this.values.length\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div>\n\t\t\t\t\t<h2>User Input Event</h2>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tThese inputs demonstrate how user input is handled. The <code>smoothlyUserInput</code> event fires only when\n\t\t\t\t\t\tthe user interacts with an input, not when its value is changed programmatically (such as by clicking the\n\t\t\t\t\t\tbuttons above).\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\tCheck the console to see the details of each <code>smoothlyUserInput</code> event.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t<smoothly-button color=\"tertiary\" onClick={() => (this.textIndex = this.increment(this.textIndex))}>\n\t\t\t\t\tChange text\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-input\n\t\t\t\t\tlooks=\"border\"\n\t\t\t\t\tname=\"demo-user-input-text\"\n\t\t\t\t\tvalue={this.textIndex === undefined ? \"\" : this.values[this.textIndex]}\n\t\t\t\t\tonSmoothlyUserInput={e => console.debug(e.type, e.detail.name, e.detail.value)}>\n\t\t\t\t\tText input\n\t\t\t\t</smoothly-input>\n\n\t\t\t\t<smoothly-button onClick={() => (this.selectIndex = this.increment(this.selectIndex))} color=\"tertiary\">\n\t\t\t\t\tNext select item\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-input-select\n\t\t\t\t\tlooks=\"border\"\n\t\t\t\t\tname=\"demo-user-input-select\"\n\t\t\t\t\tonSmoothlyUserInput={e => console.debug(e.type, e.detail.name, e.detail.value)}>\n\t\t\t\t\t<span slot=\"label\">Select input</span>\n\t\t\t\t\t{this.values.map((value, index) => (\n\t\t\t\t\t\t<smoothly-item value={index} selected={index == this.selectIndex}>\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t))}\n\t\t\t\t</smoothly-input-select>\n\n\t\t\t\t<smoothly-button color=\"tertiary\" onClick={() => (this.checkboxChecked = !this.checkboxChecked)}>\n\t\t\t\t\tToggle checkbox\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-input-checkbox\n\t\t\t\t\tlooks=\"border\"\n\t\t\t\t\tname=\"demo-user-input-checkbox\"\n\t\t\t\t\tchecked={this.checkboxChecked}\n\t\t\t\t\tonSmoothlyUserInput={e => console.debug(e.type, e.detail.name, e.detail.value)}>\n\t\t\t\t\tCheckbox input\n\t\t\t\t</smoothly-input-checkbox>\n\n\t\t\t\t<smoothly-button color=\"tertiary\" onClick={() => (this.radioIndex = this.increment(this.radioIndex))}>\n\t\t\t\t\tNext radio item\n\t\t\t\t</smoothly-button>\n\t\t\t\t{/* Bug: radio has bugs when changing programmatically - TODO: consider changing to using a regular radio input as underlying controls */}\n\t\t\t\t<smoothly-input-radio\n\t\t\t\t\tlooks=\"border\"\n\t\t\t\t\tname=\"demo-user-input-radio\"\n\t\t\t\t\tonSmoothlyUserInput={e => console.debug(e.type, e.detail.name, e.detail.value)}>\n\t\t\t\t\t<span slot=\"label\">Radio input</span>\n\t\t\t\t\t{this.values.map((value, index) => (\n\t\t\t\t\t\t<smoothly-input-radio-item value={value} selected={index == this.radioIndex}>\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</smoothly-input-radio-item>\n\t\t\t\t\t))}\n\t\t\t\t</smoothly-input-radio>\n\n\t\t\t\t{/* Not sure how to test smoothly-input-file */}\n\n\t\t\t\t<smoothly-button color=\"tertiary\" onClick={() => (this.rangeValue = this.increment(this.rangeValue))}>\n\t\t\t\t\tNext range value\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-input-range\n\t\t\t\t\tlooks=\"border\"\n\t\t\t\t\tname=\"demo-user-input-range\"\n\t\t\t\t\tstep={1}\n\t\t\t\t\tmin={0}\n\t\t\t\t\tmax={this.values.length}\n\t\t\t\t\tvalue={this.rangeValue}\n\t\t\t\t\tlabel={\"Range Input\"}\n\t\t\t\t\tonSmoothlyUserInput={e => console.debug(e.type, e.detail.name, e.detail.value)}\n\t\t\t\t/>\n\n\t\t\t\t<smoothly-button color=\"tertiary\" onClick={() => (this.colorIndex = this.increment(this.colorIndex))}>\n\t\t\t\t\tNext color\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-input-color\n\t\t\t\t\tlooks=\"border\"\n\t\t\t\t\tname=\"demo-user-input-color\"\n\t\t\t\t\tvalue={typeof this.colorIndex == \"number\" ? this.colors[this.colorIndex] : undefined}\n\t\t\t\t\tonSmoothlyUserInput={e => console.debug(e.type, e.detail.name, e.detail.value)}>\n\t\t\t\t\tColor input\n\t\t\t\t</smoothly-input-color>\n\n\t\t\t\t<smoothly-button\n\t\t\t\t\tcolor=\"tertiary\"\n\t\t\t\t\tonClick={() => (this.dateValue = this.dateValue ? isoly.Date.next(this.dateValue) : isoly.Date.now())}>\n\t\t\t\t\tNext day\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-input-date\n\t\t\t\t\tlooks=\"border\"\n\t\t\t\t\tname=\"demo-user-input-date\"\n\t\t\t\t\tvalue={this.dateValue}\n\t\t\t\t\tonSmoothlyUserInput={e => console.debug(e.type, e.detail.name, e.detail.value)}>\n\t\t\t\t\tDate input\n\t\t\t\t</smoothly-input-date>\n\n\t\t\t\t<smoothly-button\n\t\t\t\t\tcolor=\"tertiary\"\n\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t(this.datetimeValue = this.datetimeValue\n\t\t\t\t\t\t\t? isoly.DateTime.nextDay(this.datetimeValue)\n\t\t\t\t\t\t\t: isoly.DateTime.now())\n\t\t\t\t\t}>\n\t\t\t\t\tNext date time\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-input-date-time\n\t\t\t\t\tlooks=\"border\"\n\t\t\t\t\tname=\"demo-user-input-datetime\"\n\t\t\t\t\tvalue={this.datetimeValue}\n\t\t\t\t\tonSmoothlyUserInput={e => console.debug(e.type, e.detail.name, e.detail.value)}>\n\t\t\t\t\tDate time input\n\t\t\t\t</smoothly-input-date-time>\n\n\t\t\t\t<smoothly-button\n\t\t\t\t\tcolor=\"tertiary\"\n\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t(this.dateRangeValue = this.dateRangeValue\n\t\t\t\t\t\t\t? { start: isoly.Date.next(this.dateRangeValue.start), end: isoly.Date.next(this.dateRangeValue.end) }\n\t\t\t\t\t\t\t: { start: isoly.Date.now(), end: isoly.Date.next(isoly.Date.now(), 10) })\n\t\t\t\t\t}>\n\t\t\t\t\tNext date range\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-input-date-range\n\t\t\t\t\tlooks=\"border\"\n\t\t\t\t\tname=\"demo-user-input-daterange\"\n\t\t\t\t\tstart={this.dateRangeValue?.start}\n\t\t\t\t\tend={this.dateRangeValue?.end}\n\t\t\t\t\tonSmoothlyUserInput={e => console.debug(e.type, e.detail.name, e.detail.value)}>\n\t\t\t\t\tDate range input\n\t\t\t\t</smoothly-input-date-range>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../../button/style.css\";\n\n:host(:not([display])) {\n\tdisplay: none;\n}\n\n:host([editable]){\n\topacity: 0.5;\n}\n\n:host([type=\"input\"])::slotted(smoothly-button>button) {\n\tcursor: pointer;\n\tfilter: opacity(60%);\n\t--smoothly-button-foreground: var(--smoothly-input-foreground);\n\tbackground-color: transparent;\n}\n\n:host smoothly-icon.default {\n\ttransform: translate(.1em, -.1em);\n}\n\n:host::slotted(button > * > * + smoothly-icon) {\n\tdisplay: none;\n}\n","import { Component, ComponentWillLoad, Event, EventEmitter, h, Host, Listen, Prop, VNode } from \"@stencil/core\"\nimport { Color, Fill } from \"../../../model\"\nimport { Editable } from \"../Editable\"\n\n@Component({\n\ttag: \"smoothly-input-edit\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputEdit implements ComponentWillLoad {\n\tprivate parent?: Editable\n\t@Prop() color?: Color = \"tertiary\"\n\t@Prop({ reflect: true }) expand?: \"block\" | \"full\"\n\t@Prop({ reflect: true }) fill?: Fill\n\t@Prop({ reflect: true, mutable: true }) disabled = false\n\t@Prop({ reflect: true, mutable: true }) display = true\n\t@Prop({ reflect: true }) shape?: \"rounded\"\n\t@Prop({ reflect: true }) type: \"form\" | \"input\" = \"input\"\n\t@Prop({ reflect: true }) size: \"flexible\" | \"small\" | \"large\" | \"icon\"\n\t@Prop() tooltip = \"Edit\"\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\tcomponentWillLoad(): void {\n\t\tthis.smoothlyInputLoad.emit(parent => {\n\t\t\tif (Editable.type.is(parent)) {\n\t\t\t\tthis.parent = parent\n\t\t\t\tparent.listen(async p => {\n\t\t\t\t\tthis.display = p.readonly\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n\t@Listen(\"click\")\n\tclickHandler() {\n\t\tthis.parent?.edit(true)\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host title={this.tooltip}>\n\t\t\t\t<smoothly-button\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\ttype={\"button\"}\n\t\t\t\t\tshape={this.shape}\n\t\t\t\t\texpand={this.expand}\n\t\t\t\t\tcolor={this.color}\n\t\t\t\t\tfill={this.fill ?? (this.type == \"input\" ? \"clear\" : undefined)}>\n\t\t\t\t\t<slot />\n\t\t\t\t\t<smoothly-icon class=\"default\" name=\"create-outline\" size=\"tiny\" />\n\t\t\t\t</smoothly-button>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../shared.css\";\n\n:host {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tflex-wrap: wrap;\n\toverflow: hidden;\n\tposition: relative;\n\twidth: 100%;\n\tpadding-left: var(--input-padding-side);\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tbox-sizing: border-box;\n}\n\n:host>div>div.drag-overlay {\n\tposition: absolute;\n\tinset: 0;\n\tbackground-color: rgb(var(--smoothly-input-hover-background), 0.6);\n\tborder-radius: var(--smoothly-input-border-radius);\n\tborder: 0.25rem dashed rgb(var(--smoothly-input-hover-foreground));\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n}\n:host>div>div.drag-overlay>smoothly-icon {\n\tcolor: rgb(var(--smoothly-input-hover-foreground));\n}\n\n:host:not(.dragging)>div>div.drag-overlay {\n\tdisplay: none;\n}\n\n:host>div.input>input {\n\toverflow: hidden;\n\theight: 0;\n\twidth: 0;\n\tpadding: 0;\n}\n\n:host:not([show-label])>div.input {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-bottom: 0.2rem;\n}\n\n:host:not([show-label])>smoothly-button:not(:empty) {\n\tmargin-right: 1ch;\n}\n\n:host([show-label]) > div.input {\n\tdisplay: flex;\n\tpadding-block: var(--input-value-padding-top) var(--input-value-padding-bottom);\n\theight: 100%;\n\tbox-sizing: border-box;\n\tflex-grow: 1;\n}\n\n:host>div>smoothly-button {\n\t--smoothly-button-height: 1.4rem;\n\tmargin: 0;\n\tborder: none;\n}\n\n:host>label {\n\tleft: var(--input-padding-side);\n}\n\n:host:not([readonly]),\n:host:not([readonly]) * {\n\tcursor: pointer;\n}\n\n:host[disabled],\n:host[disabled] * {\n\tcursor: not-allowed;\n}\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tState,\n\tVNode,\n\tWatch,\n} from \"@stencil/core\"\nimport { Color } from \"../../../model\"\nimport { Clearable } from \"../Clearable\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-file\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputFile implements ComponentWillLoad, Input, Clearable, Editable {\n\t@Element() element: HTMLSmoothlyInputFileElement\n\t@Prop({ reflect: true, mutable: true }) readonly = false\n\t@Prop({ reflect: true }) disabled?: boolean\n\t@Prop() accept?: string\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks?: Looks\n\t@Prop({ reflect: true }) camera: \"front\" | \"back\"\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop({ mutable: true }) value?: File\n\t@Prop({ mutable: true, reflect: true }) placeholder: string | undefined\n\t@State() dragging = false\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyInput: EventEmitter<Record<string, any>>\n\t@Event() smoothlyUserInput: EventEmitter<Input.UserInput>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\tparent: Editable | undefined\n\tisDifferentFromInitial = false\n\tprivate observer = Editable.Observer.create(this)\n\tprivate transfer: DataTransfer = new DataTransfer()\n\tprivate input?: HTMLInputElement\n\tprivate initialValue: SmoothlyInputFile[\"value\"]\n\n\tprivate get files(): FileList {\n\t\tthis.transfer.items.clear()\n\t\tthis.value && this.transfer.items.add(this.value)\n\t\treturn this.transfer.files\n\t}\n\n\tasync componentWillLoad(): Promise<void> {\n\t\tthis.smoothlyInputLooks.emit(\n\t\t\t(looks, color) => ((this.looks = this.looks ?? looks), !this.color && (this.color = color))\n\t\t)\n\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.observer.publish()\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected)\n\t\t\tawait this.unregister()\n\t}\n\t@Watch(\"name\")\n\tnameChange(_: string | undefined, oldName: string | undefined) {\n\t\tInput.formRename(this, oldName)\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<File | undefined> {\n\t\treturn this.value\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tthis.value = undefined\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tsmoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInputFile) => void>): void {\n\t\tInput.registerSubAction(this, event)\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tthis.value = this.initialValue\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.initialValue = this.value\n\t\tthis.valueChanged()\n\t}\n\t@Method()\n\tasync binary(): Promise<boolean> {\n\t\treturn true\n\t}\n\n\t@Watch(\"value\")\n\tasync valueChanged(): Promise<void> {\n\t\tthis.isDifferentFromInitial = this.initialValue !== this.value\n\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t\tthis.observer.publish()\n\t}\n\n\tinputHandler(event: Event): void {\n\t\tevent.stopPropagation()\n\t\tif (this.input?.files?.length) {\n\t\t\tthis.value = this.input?.files[0]\n\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: this.value })\n\t\t}\n\t}\n\tdropHandler(event: DragEvent): void {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t\tthis.dragging = false\n\t\tif (event.dataTransfer?.files.length) {\n\t\t\tthis.value = event.dataTransfer.files[0]\n\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: this.value })\n\t\t}\n\t}\n\tclickHandler(event: MouseEvent): void {\n\t\tif (!this.readonly && !this.disabled && !event.composedPath().find(target => target == this.input)) {\n\t\t\tthis.input?.click()\n\t\t}\n\t}\n\tdragOverHandler(event: DragEvent): void {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\tdragEnterHandler(event: DragEvent): void {\n\t\tevent.preventDefault()\n\t\t!this.readonly && !this.disabled && (this.dragging = true)\n\t}\n\tdragLeaveHandler(event: DragEvent): void {\n\t\tevent.stopPropagation()\n\t\tthis.dragging = false\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={{ dragging: this.dragging, \"has-value\": !!this.value }}\n\t\t\t\ttabindex={this.disabled ? undefined : 0}\n\t\t\t\tonClick={(e: MouseEvent) => this.clickHandler(e)}\n\t\t\t\tonDragOver={(e: DragEvent) => this.dragOverHandler(e)}\n\t\t\t\tonDragEnter={(e: DragEvent) => this.dragEnterHandler(e)}>\n\t\t\t\t<label>\n\t\t\t\t\t<slot name={\"label\"} />\n\t\t\t\t</label>\n\t\t\t\t<div class=\"input\">\n\t\t\t\t\t<smoothly-button disabled={this.disabled} type={\"button\"} color={this.color} fill={\"clear\"} size=\"flexible\">\n\t\t\t\t\t\t<slot name={\"button\"} />\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<span>{this.value?.name ?? this.placeholder}</span>\n\t\t\t\t\t<div class={\"drag-overlay\"} onDrop={e => this.dropHandler(e)} onDragLeave={e => this.dragLeaveHandler(e)}>\n\t\t\t\t\t\t<smoothly-icon name={\"document-attach-outline\"} />\n\t\t\t\t\t</div>\n\t\t\t\t\t<input\n\t\t\t\t\t\tref={element => (this.input = element)}\n\t\t\t\t\t\ttype={\"file\"}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tcapture={this.camera == \"back\" ? \"environment\" : \"user\"}\n\t\t\t\t\t\taccept={this.accept ?? (!this.camera ? undefined : \"image/jpeg\")}\n\t\t\t\t\t\tfiles={this.files}\n\t\t\t\t\t\tonInput={e => this.inputHandler(e)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<span onClick={(e: MouseEvent) => e.stopPropagation()}>\n\t\t\t\t\t<slot name=\"end\" />\n\t\t\t\t</span>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: space-between;\n\tbackground-color: rgb(var(--smoothly-input-background));\n}\n\n:host:not([in-calendar])>smoothly-input-select {\n\tdisplay: flex;\n\tflex: 1;\n}\n\n:host[looks=line],\n:host[looks=border],\n:host[looks=transparent] {\n\tgap: 2em;\n}\n\n:host:not([previous])>smoothly-icon:first-of-type,\n:host:not([next])>smoothly-icon:last-of-type {\n\tdisplay: none;\n}\n:host>smoothly-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tcursor: pointer;\n}\n:host>smoothly-icon.disabled {\n\topacity: 0.5;\n\tcursor: not-allowed;\n}\n\n\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tState,\n\tVNode,\n\tWatch,\n} from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { Data } from \"../../../model\"\nimport { Color } from \"../../../model\"\nimport * as generate from \"../../calendar/generate\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-month\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputMonth implements ComponentWillLoad, Input, Editable {\n\tisDifferentFromInitial: boolean\n\tparent: Editable | undefined\n\t@Element() element: HTMLSmoothlyInputMonthElement\n\t@Prop({ reflect: true, mutable: true }) readonly: boolean\n\t@Prop({ reflect: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks?: Looks\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ mutable: true }) value?: isoly.Date = isoly.Date.now()\n\t@Prop({ mutable: true }) max?: isoly.Date\n\t@Prop({ mutable: true }) min?: isoly.Date\n\t@Prop({ reflect: true }) next = false\n\t@Prop({ reflect: true }) previous = false\n\t@Prop({ reflect: true }) inCalendar = false\n\t@Prop({ reflect: true }) showLabel = true\n\t@State() allowPreviousMonth = true\n\t@State() allowNextMonth = true\n\t@Event() smoothlyInput: EventEmitter<Data>\n\t@Event() smoothlyUserInput: EventEmitter<Input.UserInput>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\tprivate year?: HTMLSmoothlyInputSelectElement\n\tprivate month?: HTMLSmoothlyInputSelectElement\n\tprivate observer = Editable.Observer.create(this)\n\n\tcomponentWillLoad(): void {\n\t\tthis.smoothlyInputLooks.emit(looks => (this.looks = this.looks ?? looks))\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.valueChanged()\n\t}\n\t@Watch(\"value\")\n\tvalueChanged(): void {\n\t\tthis.smoothlyInput.emit({ [this.name]: this.value })\n\t}\n\tprivate adjustMonth(delta: number): void {\n\t\tif (!this.readonly) {\n\t\t\tconst date = isoly.Date.parse(this.value ?? isoly.Date.now())\n\t\t\tdate.setMonth(date.getMonth() + delta)\n\t\t\tthis.value = isoly.Date.create(date)\n\t\t}\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected)\n\t\t\tawait this.unregister()\n\t}\n\t@Watch(\"value\")\n\t@Watch(\"min\")\n\tsetAllowPreviousMonth() {\n\t\tconst previousMonth = isoly.Date.previousMonth(this.value ?? isoly.Date.now()).substring(0, 7)\n\t\tconst minMonth = this.min?.substring(0, 7)\n\t\tthis.allowPreviousMonth = !minMonth || previousMonth >= minMonth\n\t}\n\t@Watch(\"value\")\n\t@Watch(\"max\")\n\tsetAllowNextMonth() {\n\t\tconst nextMonth = isoly.Date.nextMonth(this.value ?? isoly.Date.now()).substring(0, 7)\n\t\tconst maxMonth = this.max?.substring(0, 7)\n\t\tthis.allowNextMonth = !maxMonth || nextMonth <= maxMonth\n\t}\n\t@Watch(\"name\")\n\tnameChange(_: string | undefined, oldName: string | undefined) {\n\t\tInput.formRename(this, oldName)\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<isoly.Date | undefined> {\n\t\treturn this.value\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tthis.year?.clear()\n\t\tthis.month?.clear()\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tthis.year?.reset()\n\t\tthis.month?.reset()\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.year?.setInitialValue()\n\t\tthis.month?.setInitialValue()\n\t}\n\tinputHandler(event: CustomEvent<Record<string, any>>): void {\n\t\tif (event.target != this.element) {\n\t\t\tevent.stopPropagation()\n\t\t\tconst year = event.detail[`${this.name}-year`]\n\t\t\tconst month = event.detail[`${this.name}-month`]\n\t\t\tif (month && isoly.Date.is(month))\n\t\t\t\tthis.value = isoly.Date.firstOfMonth(month)\n\t\t\telse if (year && isoly.Date.is(year))\n\t\t\t\tthis.value = isoly.Date.firstOfMonth(year)\n\t\t}\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks?: Looks, color?: Color) => void>): void {\n\t\tif (event.target != this.element) {\n\t\t\tevent.stopPropagation()\n\t\t\tevent.detail(this.looks, this.color)\n\t\t}\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tasync smoothlyInputLoadHandler(event: CustomEvent<(parent: Editable) => void>): Promise<void> {\n\t\tif (event.target != this.element)\n\t\t\tevent.stopPropagation()\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-icon\n\t\t\t\t\tname={\"caret-back-outline\"}\n\t\t\t\t\tsize={\"tiny\"}\n\t\t\t\t\tcolor={this.color}\n\t\t\t\t\tfill={\"default\"}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\tdisabled: this.readonly || !this.allowPreviousMonth,\n\t\t\t\t\t}}\n\t\t\t\t\tonClick={() => this.allowPreviousMonth && this.adjustMonth(-1)}\n\t\t\t\t/>\n\t\t\t\t<smoothly-input-select\n\t\t\t\t\tref={e => (this.year = e)}\n\t\t\t\t\tname={`${this.name}-year`}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tmenuHeight=\"5.5items\"\n\t\t\t\t\trequired\n\t\t\t\t\tordered\n\t\t\t\t\tinCalendar={this.inCalendar}\n\t\t\t\t\tshowLabel={this.showLabel}\n\t\t\t\t\tonSmoothlyInput={e => this.inputHandler(e)}\n\t\t\t\t\tonSmoothlyUserInput={e => {\n\t\t\t\t\t\tconst month = e.detail.value\n\t\t\t\t\t\tif (month && isoly.Date.is(month)) {\n\t\t\t\t\t\t\tconst value = isoly.Date.firstOfMonth(month)\n\t\t\t\t\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value })\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tsearchDisabled>\n\t\t\t\t\t<div slot={\"label\"}>\n\t\t\t\t\t\t<slot name={\"year-label\"} />\n\t\t\t\t\t</div>\n\t\t\t\t\t{generate.years(this.value ?? isoly.Date.now(), this.min, this.max).map(year => (\n\t\t\t\t\t\t<smoothly-item key={year.date} value={year.date} selected={year.selected || this.value == year.date}>\n\t\t\t\t\t\t\t{year.name}\n\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t))}\n\t\t\t\t</smoothly-input-select>\n\t\t\t\t<smoothly-input-select\n\t\t\t\t\tref={e => (this.month = e)}\n\t\t\t\t\tname={`${this.name}-month`}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tcolor={this.color}\n\t\t\t\t\tlooks={this.looks}\n\t\t\t\t\tmenuHeight=\"5.5items\"\n\t\t\t\t\trequired\n\t\t\t\t\tordered\n\t\t\t\t\tinCalendar={this.inCalendar}\n\t\t\t\t\tshowLabel={this.showLabel}\n\t\t\t\t\tonSmoothlyInput={e => this.inputHandler(e)}\n\t\t\t\t\tonSmoothlyUserInput={e => {\n\t\t\t\t\t\tconst year = e.detail.value\n\t\t\t\t\t\tif (year && isoly.Date.is(year)) {\n\t\t\t\t\t\t\tconst value = isoly.Date.firstOfMonth(year)\n\t\t\t\t\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value })\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tsearchDisabled>\n\t\t\t\t\t<div slot={\"label\"}>\n\t\t\t\t\t\t<slot name={\"month-label\"} />\n\t\t\t\t\t</div>\n\t\t\t\t\t{generate.months(this.value ?? isoly.Date.now()).map(month => (\n\t\t\t\t\t\t<smoothly-item key={month.date} value={month.date} selected={month.selected || this.value == month.date}>\n\t\t\t\t\t\t\t{month.name}\n\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t))}\n\t\t\t\t</smoothly-input-select>\n\t\t\t\t<smoothly-icon\n\t\t\t\t\tname={\"caret-forward-outline\"}\n\t\t\t\t\tsize={\"tiny\"}\n\t\t\t\t\tcolor={this.color}\n\t\t\t\t\tfill={\"default\"}\n\t\t\t\t\tclass={{ disabled: this.readonly || !this.allowNextMonth }}\n\t\t\t\t\tonClick={() => this.allowNextMonth && this.adjustMonth(1)}\n\t\t\t\t/>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n","import { Component, h, Host, State, VNode } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\n\n@Component({\n\ttag: \"smoothly-input-price-demo\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputPriceDemo {\n\t@State() currencies: isoly.Currency[] = [\"EUR\", \"USD\", \"GBP\"]\n\t@State() currency?: isoly.Currency = \"USD\"\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>State demo on smoothly-input</h2>\n\t\t\t\t<p>This demo/test the internal state of the smoothly-input component.</p>\n\t\t\t\t<p>The currency of the price should update when switching between the currencies.</p>\n\t\t\t\t<smoothly-input-radio\n\t\t\t\t\tname={\"currency\"}\n\t\t\t\t\tonSmoothlyInput={e => (this.currency = isoly.Currency.is(e.detail.currency) ? e.detail.currency : undefined)}>\n\t\t\t\t\t{this.currencies.map(currency => (\n\t\t\t\t\t\t<smoothly-input-radio-item key={currency} selected={currency == this.currency} value={currency}>\n\t\t\t\t\t\t\t{currency}\n\t\t\t\t\t\t</smoothly-input-radio-item>\n\t\t\t\t\t))}\n\t\t\t\t</smoothly-input-radio>\n\t\t\t\t<smoothly-input type={\"price\"} currency={this.currency}>\n\t\t\t\t\tprice\n\t\t\t\t</smoothly-input>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../shared.css\";\n\n:host {\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-left: var(--input-padding-side);\n\tbox-sizing: border-box;\n}\n:host[show-label]>div {\n\tposition: relative;\n\tpadding-block: var(--input-value-padding-top) var(--input-value-padding-bottom);\n}\n:host>div,\n:host>div>div.options {\n\tdisplay: flex;\n\tgap: 1.5rem;\n}\n:host[direction=column]>div>div.options {\n\tflex-direction: column;\n}\n:host::slotted([slot=end]) {\n\tmargin-right: 0;\n\tmargin-left: auto;\n}\n\n:host[disabled] smoothly-input-radio-item * {\n\tcursor: not-allowed;\n}\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tVNode,\n\tWatch,\n} from \"@stencil/core\"\nimport { Color, Data } from \"../../../model\"\nimport { Clearable } from \"../Clearable\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\nimport { RadioItemSelect } from \"./RadioItemSelect\"\n\n@Component({\n\ttag: \"smoothly-input-radio\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputRadio implements Input, Clearable, Editable, ComponentWillLoad {\n\t@Element() element: HTMLSmoothlyInputRadioElement\n\tparent: Editable | undefined\n\tisDifferentFromInitial = false\n\tprivate active?: RadioItemSelect\n\tprivate valueReceivedOnLoad = false\n\tprivate observer = Editable.Observer.create(this)\n\tinitialValue?: RadioItemSelect\n\t@Prop({ mutable: true }) value: any = undefined\n\t@Prop({ mutable: true, reflect: true }) looks?: Looks\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true }) direction?: \"row\" | \"column\"\n\t@Prop() clearable?: boolean\n\t@Prop({ mutable: true, reflect: true }) readonly = false\n\t@Prop({ reflect: true }) disabled?: boolean\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ reflect: true }) showLabel = true\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyInput: EventEmitter<Data>\n\t@Event() smoothlyUserInput: EventEmitter<Input.UserInput>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\tcomponentWillLoad(): void | Promise<void> {\n\t\tthis.smoothlyInputLooks.emit((looks, color) => ((this.looks = this.looks ?? looks), (this.color = color)))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.observer.publish()\n\t}\n\tcomponentDidLoad(): void | Promise<void> {\n\t\t!this.valueReceivedOnLoad && this.smoothlyInput.emit({ [this.name]: this.value })\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\tthis.initialValue = this.active\n\t}\n\t@Listen(\"smoothlyRadioItemRegister\")\n\thandleRegister(event: CustomEvent<(parent: SmoothlyInputRadio) => void>) {\n\t\tevent.stopPropagation()\n\t\tevent.detail(this)\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tsmoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInputRadio) => void>): void {\n\t\tInput.registerSubAction(this, event)\n\t}\n\t@Listen(\"smoothlyRadioItemSelect\")\n\tsmoothlyRadioInputHandler(event: CustomEvent<RadioItemSelect>): void {\n\t\tevent.stopPropagation()\n\t\tif ((!this.readonly && !this.disabled) || !this.valueReceivedOnLoad) {\n\t\t\tif (this.clearable && this.active?.value === event.detail.value)\n\t\t\t\tthis.clear()\n\t\t\telse if (this.active?.value !== event.detail.value) {\n\t\t\t\tthis.active?.select(false)\n\t\t\t\tthis.active = event.detail\n\t\t\t\tthis.value = this.active.value\n\t\t\t\tthis.active.select(true)\n\t\t\t}\n\t\t}\n\t\tif (event.detail.userInitiated)\n\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: this.value })\n\t\t!this.valueReceivedOnLoad && (this.valueReceivedOnLoad = !this.valueReceivedOnLoad)\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected)\n\t\t\tawait this.unregister()\n\t}\n\t@Watch(\"name\")\n\tnameChange(_: string | undefined, oldName: string | undefined) {\n\t\tInput.formRename(this, oldName)\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<any | undefined> {\n\t\treturn this.value\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tif (this.clearable) {\n\t\t\tthis.active?.select(false)\n\t\t\tthis.active = undefined\n\t\t\tthis.value = undefined\n\t\t}\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tthis.active?.select(false)\n\t\tthis.active = this.initialValue\n\t\tthis.value = this.initialValue?.value\n\t\tthis.active?.select(true)\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.initialValue = this.active\n\t\tthis.valueChanged()\n\t}\n\t@Watch(\"value\")\n\tasync valueChanged(): Promise<void> {\n\t\tthis.valueReceivedOnLoad && (this.isDifferentFromInitial = this.initialValue?.value !== this.value)\n\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t\tthis.observer.publish()\n\t}\n\t@Watch(\"disabled\")\n\t@Watch(\"readonly\")\n\twatchingReadonly(): void {\n\t\tthis.observer.publish()\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host class=\"floating-label\">\n\t\t\t\t<slot name=\"start\" />\n\t\t\t\t<div>\n\t\t\t\t\t<slot name=\"label\" />\n\t\t\t\t\t<div class=\"options\">\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<slot name=\"end\" />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\talign-items: center;\n\tposition: relative;\n}\nsmoothly-input-radio:not([disabled]):not([readonly]) :host>* {\n\tcursor: pointer;\n}\nsmoothly-input-radio[disabled] :host>* {\n\tcursor: not-allowed;\n}\n\n:host>input:focus-visible+smoothly-icon {\n\toutline: 2px solid rgb(var(--smoothly-primary-color));\n\tborder-radius: 1px;\n}\n:host>smoothly-icon {\n\t--smoothly-color-contrast: var(--smoothly-input-foreground);\n}\nsmoothly-input-radio:not([disabled]):not([readonly]) :host>smoothly-icon[name=checkmark-circle] {\n\t--smoothly-color-contrast: var(--smoothly-success-color);\n}\n\n:host>input {\n\topacity: 0;\n\tz-index: 1;\n\twidth: 1.5em;\n\theight: 1.5em;\n\tposition: absolute;\n\ttransform: translateX(50%);\n}\n\n:host>label {\n\tpadding: 0 .3em;\n\twhite-space: nowrap;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State, VNode } from \"@stencil/core\"\nimport { Input } from \"../../Input\"\nimport { Looks } from \"../../Looks\"\nimport { SmoothlyInputRadio } from \"../index\"\nimport { RadioItemSelect } from \"../RadioItemSelect\"\n\n@Component({\n\ttag: \"smoothly-input-radio-item\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputRadioItem {\n\t@Element() element: HTMLInputElement\n\t@Prop({ mutable: true }) value: any\n\t@Prop({ mutable: true, reflect: true }) selected = false\n\t@Prop({ mutable: true, reflect: true }) looks?: Looks\n\t@Prop({ mutable: true }) name: string\n\t@State() disabled?: boolean\n\t@Event() smoothlyRadioItemSelect: EventEmitter<RadioItemSelect>\n\t@Event() smoothlyRadioItemRegister: EventEmitter<(parent: SmoothlyInputRadio) => void>\n\tcomponentWillLoad(): void | Promise<void> {\n\t\tthis.smoothlyRadioItemRegister.emit(parent => {\n\t\t\tthis.name = parent.name\n\t\t\tparent.listen(async p => {\n\t\t\t\tif (Input.is(p))\n\t\t\t\t\tthis.disabled = p.disabled\n\t\t\t})\n\t\t})\n\t\tthis.selected && this.inputHandler(false)\n\t}\n\tinputHandler(userInitiated: boolean): void {\n\t\tthis.smoothlyRadioItemSelect.emit({\n\t\t\tvalue: this.value,\n\t\t\tselected: this.selected,\n\t\t\tselect: s => (this.selected = s),\n\t\t\tuserInitiated,\n\t\t})\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host onClick={() => this.inputHandler(true)}>\n\t\t\t\t<input name={this.name} type=\"radio\" checked={this.selected} disabled={this.disabled} />\n\t\t\t\t<smoothly-icon name={this.selected ? \"checkmark-circle\" : \"ellipse-outline\"} size=\"small\" tooltip=\"Select\" />\n\t\t\t\t<label>\n\t\t\t\t\t<slot />\n\t\t\t\t</label>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../shared.css\";\n\n* {\n\tbox-sizing: border-box;\n}\n:host {\n\tposition: relative;\n\twidth: 100%;\n\tjustify-content: center;\n\talign-items: center;\n\tdisplay: flex;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tbox-sizing: border-box;\n}\n:host>div:not([slot]) {\n\tposition: relative;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\twidth: 100%;\n\tpadding-right: var(--input-padding-side);\n}\n:host>div>smoothly-input {\n\twidth: 12em;\n\t--input-min-height: calc(3rem - 2px);\n\t--smoothly-input-border-focus: none;\n}\n:host>div>smoothly-input label {\n\twhite-space: nowrap;\n}\n:host.output-side-right>div {\n\tpadding: 0;\n}\n:host.output-side-right>div>smoothly-input {\n\ttext-align: center;\n\tmargin-left: var(--input-padding-side);\n\tborder: none;\n\tbox-sizing: border-box;\n\twidth: 5em;\n\torder: 3;\n\tmargin: 0;\n}\n:host.output-side-right>div>smoothly-display,\n:host:not(.output-side-right)>div>label {\n\tdisplay: none;\n}\n:host.output-side-right>div>smoothly-input input {\n\tpadding: 0;\n\ttext-align: center;\n}\n:host.output-side-right>div>smoothly-input label {\n\twidth: 100%;\n}\n:host.output-side-right>div>label {\n\tposition: static;\n\tfont-size: inherit;\n\ttext-align: center;\n\tmargin: 0 var(--input-padding-side);\n}\n\n/*--------------------Reset browserspecific CSS------------------ */\n:host>div>input[type=range] {\n\t-webkit-appearance: none;\n\t/* Hides the slider so that custom slider can be made */\n\twidth: 100%;\n\t/* Specific width is required for Firefox. */\n\tbackground: transparent;\n\t/* Otherwise white in Chrome */\n\theight: 1.5em;\n\tpadding: 0 .4em;\n}\n\n/*--------------------THUMB------------------ */\n/* WebKit/Blink */\n:host>div>input[type=range]::-webkit-slider-thumb {\n\t-webkit-appearance: none;\n\theight: 0.8em;\n\twidth: 0.8em;\n\tborder-radius: 100%;\n\tmargin-top: -.25em;\n\tborder: none;\n\t/* You need to specify a margin in Chrome, but in Firefox and IE it is automatic */\n}\n:host:not([disabled]):not([readonly])>div>input[type=range]::-webkit-slider-thumb {\n\tbackground-color: rgb(var(--smoothly-primary-color));\n\tcursor: pointer;\n}\n\n/* Firefox */\n:host>div>input[type=range]::-moz-range-thumb {\n\theight: 0.8em;\n\twidth: 0.8em;\n\tborder-radius: 100%;\n\tborder: none;\n\tbackground-color: rgb(var(--smoothly-input-foreground));\n}\n:host:not([disabled]):not([readonly])>div>input[type=range]::-moz-range-thumb {\n\tbackground-color: rgb(var(--smoothly-primary-color));\n\tcursor: pointer;\n}\n\n/*--------------------SLIDER TRACK------------------ */\n:host>div>input[type=range]::-webkit-slider-runnable-track {\n\theight: .3rem;\n\tborder-radius: 20px;\n\tbackground-color: rgb(var(--smoothly-input-foreground));\n}\n:host:not([disabled]):not([readonly])>div>input[type=range]::-webkit-slider-runnable-track {\n\tbackground-color: rgb(var(--smoothly-primary-color));\n\tcursor: pointer;\n}\n\n:host>div>input[type=range]::-moz-range-track {\n\twidth: 100%;\n\theight: .3rem;\n\tborder-radius: 20px;\n\tbackground-color: rgb(var(--smoothly-input-foreground));\n}\n:host:not([disabled]):not([readonly])>div>input[type=range]::-moz-range-track {\n\tbackground-color: rgb(var(--smoothly-primary-color));\n\tcursor: pointer;\n}\n\n:host:not([value]):not([disabled]):not([readonly])>div>input[type=range]::-webkit-slider-runnable-track {\n\tbackground-color: rgb(var(--smoothly-primary-tint));\n}\n\n:host:not([value]):not([disabled]):not([readonly])>div>input[type=range]::-moz-range-track {\n\tbackground-color: rgb(var(--smoothly-primary-tint));\n}\n\n:host[disabled]>div>input[type=range]::-webkit-slider-thumb,\n:host[disabled]>div>input[type=range]::-moz-range-thumb,\n:host[disabled]>div>input[type=range]::-webkit-slider-runnable-track,\n:host[disabled]>div>input[type=range]::-moz-range-track,\n:host[disabled],\n:host[disabled] * {\n\tcursor: not-allowed\n}\n\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tState,\n\tVNode,\n\tWatch,\n} from \"@stencil/core\"\nimport { tidily } from \"tidily\"\nimport { Color } from \"../../../model\"\nimport { Clearable } from \"../Clearable\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-range\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputRange implements Input, Clearable, Editable, ComponentWillLoad {\n\tparent: Editable | undefined\n\tisDifferentFromInitial = false\n\tprivate observer = Editable.Observer.create(this)\n\tprivate input?: HTMLSmoothlyInputElement\n\tprivate initialValue: number | undefined = undefined\n\t@Element() element: HTMLSmoothlyInputRangeElement\n\t@Prop({ mutable: true }) value: number | undefined = undefined\n\t@Prop({ reflect: true, mutable: true }) looks?: Looks\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ mutable: true }) defined = false\n\t@Prop({ reflect: true, mutable: true }) readonly = false\n\t@Prop({ reflect: true }) disabled?: boolean\n\t@Prop() type: Extract<tidily.Type, \"text\" | \"percent\"> = \"text\"\n\t@Prop() min = 0\n\t@Prop() max = 100\n\t@Prop({ reflect: true }) name = \"range\"\n\t@Prop() step?: number\n\t@Prop() outputSide: \"right\" | \"left\" = \"left\"\n\t@Prop() label: string\n\t@State() showInput = false\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyInput: EventEmitter<Record<string, any>>\n\t@Event() smoothlyUserInput: EventEmitter<Input.UserInput>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\tcomponentWillLoad(): void | Promise<void> {\n\t\tthis.smoothlyInputLooks.emit((looks, color) => ((this.looks = this.looks ?? looks), (this.color = color)))\n\t\tthis.smoothlyInput.emit({ [this.name]: this.value })\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.value && (this.initialValue = this.value)\n\t\tthis.valueChanged()\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tsmoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInputRange) => void>) {\n\t\tInput.registerSubAction(this, event)\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks: Looks) => void>): void {\n\t\tif (event.target != this.element)\n\t\t\tevent.stopPropagation()\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected)\n\t\t\tawait this.unregister()\n\t}\n\t@Watch(\"name\")\n\tnameChange(_: string | undefined, oldName: string | undefined) {\n\t\tInput.formRename(this, oldName)\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<number | undefined> {\n\t\treturn this.value\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tthis.value = undefined\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tthis.value = this.initialValue\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.initialValue = this.value\n\t\tthis.isDifferentFromInitial = false\n\t\tthis.valueChanged()\n\t}\n\t@Watch(\"value\")\n\tvalueChanged(): void {\n\t\tconst decimals = !this.step ? undefined : this.step.toString().split(\".\")[1]?.length ?? 0\n\t\tthis.value = Number.isNaN(this.value) || this.value == undefined ? undefined : +this.value.toFixed(decimals)\n\t\tthis.isDifferentFromInitial = this.initialValue != this.value\n\t\tthis.defined = typeof this.value == \"number\"\n\t\tthis.observer.publish()\n\t\tthis.smoothlyInput.emit({ [this.name]: this.value })\n\t}\n\t@Watch(\"disabled\")\n\t@Watch(\"readonly\")\n\twatchingReadonly(): void {\n\t\tthis.observer.publish()\n\t}\n\tsetValue(value: number | undefined): void {\n\t\tif (value == undefined)\n\t\t\tthis.value = undefined\n\t\telse if (value < this.min)\n\t\t\tthis.value = this.min\n\t\telse if (value > this.max)\n\t\t\tthis.value = this.max\n\t\telse\n\t\t\tthis.value = value\n\t\tthis.input && (this.input.value = this.type == \"text\" ? this.value?.toString() : this.value)\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={{\n\t\t\t\t\t\"output-side-right\": this.outputSide === \"right\",\n\t\t\t\t\t\"show-label\": this.outputSide === \"left\" && !!this.label,\n\t\t\t\t}}>\n\t\t\t\t<slot name=\"start\" />\n\t\t\t\t<div>\n\t\t\t\t\t<label htmlFor={this.name}>{this.label}</label>\n\t\t\t\t\t<smoothly-input\n\t\t\t\t\t\tref={e => (this.input = e)}\n\t\t\t\t\t\tlooks={undefined}\n\t\t\t\t\t\tcolor={this.color}\n\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\tshowLabel={this.outputSide === \"left\" && !!this.label}\n\t\t\t\t\t\ttype={this.type}\n\t\t\t\t\t\tonSmoothlyInputLoad={async e => (\n\t\t\t\t\t\t\te.stopPropagation(),\n\t\t\t\t\t\t\tthis.setValue(Input.Element.is(e.target) ? Number(await e.target.getValue()) : undefined)\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonSmoothlyBlur={e => e.stopPropagation()}\n\t\t\t\t\t\tonSmoothlyInput={async e => {\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\tthis.setValue(Input.Element.is(e.target) ? Number(await e.target.getValue()) : undefined)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={this.type == \"percent\" ? this.value : this.value?.toString()}\n\t\t\t\t\t\tplaceholder={this.outputSide === \"right\" ? \"-\" : undefined}\n\t\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\t\tdisabled={this.disabled}>\n\t\t\t\t\t\t{this.label}\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-display label={(this.type == \"percent\" ? this.min * 100 : this.min).toString()} />\n\t\t\t\t\t<input\n\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\tpart=\"range\"\n\t\t\t\t\t\ttype=\"range\"\n\t\t\t\t\t\tmin={this.min}\n\t\t\t\t\t\tmax={this.max}\n\t\t\t\t\t\tstep={this.step ?? \"any\"}\n\t\t\t\t\t\tdisabled={this.readonly || this.disabled}\n\t\t\t\t\t\tonInput={event => {\n\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t\tthis.setValue((event.target as HTMLInputElement).valueAsNumber)\n\t\t\t\t\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: this.value })\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={this.value ?? this.min}\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-display label={(this.type == \"percent\" ? this.max * 100 : this.max).toString()} />\n\t\t\t\t</div>\n\t\t\t\t<slot name=\"end\" />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Component, h, Host } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-input-range-demo\",\n})\nexport class SmoothlyInputRangeDemo {\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Range</h2>\n\t\t\t\t<h3>Phone Number</h3>\n\t\t\t\t<smoothly-input-range min={700000000} max={799999999} step={1} label={\"Phone Number\"} />\n\t\t\t\t<h3>Stars out of ten</h3>\n\t\t\t\t<smoothly-input-range max={10} step={1} label={\"Stars\"} />\n\t\t\t\t<h3>Percent</h3>\n\t\t\t\t<smoothly-input-range type=\"percent\" max={1} step={0.01} label={\"Percent\"} />\n\t\t\t\t<h3>With icon at start and clear button</h3>\n\t\t\t\t<smoothly-input-range step={1} name=\"range2\" label=\"Select\">\n\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\" />\n\t\t\t\t\t<smoothly-input-clear size=\"icon\" slot=\"end\" />\n\t\t\t\t</smoothly-input-range>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../../button/style.css\";\n\n:host(:not([display])) {\n\tdisplay: none;\n}\n\n:host([type=\"input\"])::slotted(smoothly-button>button) {\n\tcursor: pointer;\n\tfilter: opacity(60%);\n\t--smoothly-button-foreground: var(--smoothly-input-foreground);\n\tbackground-color: transparent;\n}\n\n:host::slotted(smoothly-button>button > * > * + smoothly-icon) {\n\tdisplay: none;\n}\n\n:host([disabled]) {\n\tcursor: not-allowed\n}\n\n:host([type=\"input\"]):hover ::slotted(smoothly-icon) {\n\tcursor: pointer;\n\tfilter: opacity(100%);\n}\n","import { Component, Event, EventEmitter, h, Host, Listen, Prop } from \"@stencil/core\"\nimport { Color, Fill } from \"../../../model\"\nimport { SmoothlyForm } from \"../../form\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\n\n@Component({\n\ttag: \"smoothly-input-reset\",\n\tstyleUrl: \"./style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputReset {\n\treadonlyAtLoad: boolean\n\t@Prop() color?: Color\n\t@Prop({ reflect: true }) expand?: \"block\" | \"full\"\n\t@Prop({ reflect: true }) fill?: Fill\n\t@Prop({ reflect: true, mutable: true }) disabled = false\n\t@Prop({ reflect: true }) size: \"flexible\" | \"small\" | \"large\" | \"icon\" = \"icon\"\n\t@Prop({ reflect: true }) shape?: \"rounded\"\n\t@Prop({ reflect: true, mutable: true }) display = true\n\t@Prop({ reflect: true }) type: \"form\" | \"input\" = \"input\"\n\t@Prop() tooltip = \"Reset\"\n\tprivate parent?: Editable.Element\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\n\tasync componentWillLoad() {\n\t\tthis.smoothlyInputLoad.emit(parent => {\n\t\t\tif (Editable.Element.type.is(parent)) {\n\t\t\t\tthis.parent = parent\n\t\t\t\tthis.readonlyAtLoad = parent.readonly\n\t\t\t\tparent.listen(async p => {\n\t\t\t\t\tif (Input.is(p)) {\n\t\t\t\t\t\tconst defined = typeof p.defined == \"boolean\" ? p.defined : Boolean(await p.getValue())\n\t\t\t\t\t\tthis.display = p.readonly || !defined ? false : p.isDifferentFromInitial\n\t\t\t\t\t}\n\t\t\t\t\tif (p instanceof SmoothlyForm) {\n\t\t\t\t\t\tthis.display = !p.readonly\n\t\t\t\t\t\tthis.disabled = !this.readonlyAtLoad && !p.isDifferentFromInitial\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n\t@Listen(\"click\")\n\tclickHandler(event: MouseEvent) {\n\t\tevent.stopPropagation()\n\t\tthis.parent?.reset()\n\t\tthis.parent instanceof SmoothlyForm && this.readonlyAtLoad && this.parent?.edit(false)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host title={this.tooltip}>\n\t\t\t\t<smoothly-button\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\ttype={\"button\"}\n\t\t\t\t\tshape={this.shape}\n\t\t\t\t\texpand={this.expand}\n\t\t\t\t\tcolor={this.color}\n\t\t\t\t\tfill={this.fill ?? (this.type == \"input\" ? \"clear\" : undefined)}\n\t\t\t\t\tonClick={event => this.clickHandler(event)}>\n\t\t\t\t\t<slot />\n\t\t\t\t\t<smoothly-icon flip=\"x\" name=\"refresh-outline\" size=\"tiny\" />\n\t\t\t\t</smoothly-button>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { isly } from \"isly\"\n\nexport interface Item extends Item.Element {}\n\nexport namespace Item {\n\texport interface Element {\n\t\tvalue: any\n\t\tselected?: boolean\n\t\tdeselectable: boolean\n\t\tfilter: (filter: string) => Promise<void>\n\t}\n\texport namespace Element {\n\t\texport const type = isly.object<Element>({\n\t\t\tvalue: isly.any(),\n\t\t\tdeselectable: isly.boolean(),\n\t\t\tselected: isly.boolean().optional(),\n\t\t\tfilter: isly.function(),\n\t\t})\n\t\texport const is = type.is\n\t}\n\texport const type = Element.type.extend<Item>({})\n\texport const is = type.is\n}\n","@import \"../shared.css\";\n\n:host {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tflex-direction: row;\n\tposition: relative;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tcolor: rgb(var(--smoothly-input-foreground));\n\tfill: rgb(var(--smoothly-input-foreground));\n\tstroke: rgb(var(--smoothly-input-foreground));\n\tpadding-left: var(--input-padding-side);\n}\n\n:host.open {\n\tborder-radius: var(--smoothly-input-border-radius) var(--smoothly-input-border-radius) 0 0;\n}\n\n:host.icon {\n\twidth: fit-content;\n\tflex-direction: column;\n}\n\n:host>div.select-display {\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tpadding: var(--input-value-padding-top) .8rem var(--input-value-padding-bottom) 0;\n\toverflow: hidden;\n\twidth: 100%;\n\twhite-space: nowrap;\n\tgap: 1rem;\n\ttext-overflow: ellipsis;\n}\n:host:not([readonly]):not([disabled])>div.select-display {\n\tcursor: pointer;\n}\n\n:host:not(:has([slot=label]))>div.select-display,\n:host:not([show-label])>div.select-display {\n\tpadding: .6rem .8rem .6rem 0;\n\talign-items: center;\n}\n\n:host>div.select-display smoothly-icon {\n\tcolor: rgb(var(--smoothly-input-foreground));\n\tfill: rgb(var(--smoothly-input-foreground));\n\tstroke: rgb(var(--smoothly-input-foreground));\n}\n\n:host>div.icons {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n}\n\n:host:hover>div.icons::slotted(smoothly-icon) {\n\tfilter: opacity(100%);\n}\n\n:host>div.icons>smoothly-icon[name=caret-down-outline],\n:host>div.icons>smoothly-icon[name=caret-forward-outline] {\n\topacity: .7;\n\theight: 100%;\n\tpadding-inline: var(--input-padding-side);\n}\n:host:not([readonly]):not([disabled])>div.icons>smoothly-icon[name=caret-down-outline],\n:host:not([readonly]):not([disabled])>div.icons>smoothly-icon[name=caret-forward-outline] {\n\tcursor: pointer;\n}\n\n:host[invalid]>div>smoothly-icon.smoothly-invalid {\n\tdisplay: block;\n\tpadding: 0.5rem;\n}\n\n:host>div>smoothly-icon.smoothly-invalid {\n\tdisplay: none\n}\n\n:host .label {\n\tleft: .5rem;\n}\n\n:host.has-value:has([slot=label]:not(:empty))>div.select-display,\n:host:not(.has-value)[placeholder]>div.select-display {\n\toverflow: hidden;\n\twidth: 100%;\n}\n\n:host>.options {\n\tdisplay: flex;\n\tflex-direction: column;\n\tposition: absolute;\n\ttop: var(--element-height);\n\tz-index: 20;\n\tmax-height: var(--menu-height, unset);\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tleft: 0;\n\tright: 0;\n\tborder-radius: 0 0 var(--smoothly-input-border-radius) var(--smoothly-input-border-radius);\n\tmin-width: fit-content;\n\tborder: rgb(var(--smoothly-input-border, var(--smoothly-color-contrast))) solid 1px;\n\tborder-top: rgba(var(--smoothly-input-border, var(--smoothly-color-contrast)), .4) solid 1px;\n}\n:host[looks=\"grid\"]>div.options,\n:host[looks=border]>div.options,\n:host[looks=\"transparent\"]>div.options {\n\tleft: -1px;\n\tright: -1px;\n}\n:host[multiple]>div.options>smoothly-item::before {\n\tcontent: \"\";\n\tdisplay: inline-block;\n\twidth: 1rem;\n\theight: 1rem;\n\tmargin-right: 0.5rem;\n\tborder: 1px solid rgb(var(--smoothly-input-foreground));\n\tborder-radius: 0.15rem;\n\tvertical-align: middle;\n}\n:host[multiple]>div.options>smoothly-item[selected]::after {\n\tcontent: \"✔\";\n\tposition: absolute;\n\tleft: 0.65rem; \n\tcolor: rgb(var(--smoothly-item-selected-foreground))\n}\n:host[multiple]>div.options>smoothly-item[selected]::before {\n\tborder: 1px solid rgb(var(--smoothly-item-selected-foreground));\n}\n:host[multiple]>div.options>smoothly-item[selected]::after {\n\tcolor: rgb(var(--smoothly-item-selected-foreground));\n}\n:host[multiple]>div.options>smoothly-item:hover::before {\n\tborder: 1px solid rgb(var(--smoothly-item-hover-foreground));\n}\n:host[multiple]>div.options>smoothly-item:hover::after {\n\tcolor: rgb(var(--smoothly-item-hover-foreground));\n}\n:host>div.options::slotted(smoothly-item),\n:host>div.options::slotted(div.search-preview) {\n\tpadding: .7rem .7rem .7rem .25rem;\n}\n\n:host>div.options::slotted(div.search-preview) {\n\tdisplay: flex;\n\tposition: sticky;\n\ttop: 0;\n\tgap: 1rem;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tcolor: rgb(var(--smoothly-color-contrast));\n\tfill: rgb(var(--smoothly-color-contrast));\n\tstroke: rgb(var(--smoothly-color-contrast));\n}\n:host>div.options::slotted(div.search-preview)::before {\n\t/* Hack to not make the search-preview have opacity without showing what is underneath */\n\tcontent: \"\";\n\tposition: absolute;\n\tinset: 0;\n\tbackground-color: rgba(var(--smoothly-primary-tint), 0.5);\n\tz-index: -1;\n}\n\n:host>div.options>div.search-preview>smoothly-icon[name=\"backspace-outline\"] {\n\tmargin-left: auto;\n\tmargin-right: 0;\n}\n\n:host>div.options.hidden {\n\tdisplay: none;\n}\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tState,\n\tVNode,\n\tWatch,\n} from \"@stencil/core\"\nimport { Color, Data } from \"../../../model\"\nimport { Item } from \"../../item/Item\"\nimport { Clearable } from \"../Clearable\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-select\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputSelect implements Input, Editable, Clearable, ComponentWillLoad {\n\tparent: Editable | undefined\n\tisDifferentFromInitial = false\n\tprivate initialValue: HTMLSmoothlyItemElement[] = []\n\tprivate initialValueHandled = false\n\tprivate observer = Editable.Observer.create(this)\n\tprivate displaySelectedElement?: HTMLElement\n\tprivate iconsDiv?: HTMLElement\n\tprivate toggle?: HTMLElement\n\tprivate optionsDiv?: HTMLDivElement\n\tprivate items: HTMLSmoothlyItemElement[] = []\n\tprivate itemHeight: number | undefined\n\t@Element() element: HTMLSmoothlyInputSelectElement\n\t@Prop({ reflect: true }) invalid?: boolean = false\n\t@Prop({ reflect: true }) errorMessage?: string\n\t@Prop({ reflect: true }) name = \"selected\"\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks?: Looks\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop({ reflect: true, mutable: true }) showSelected?: boolean = true\n\t@Prop({ reflect: true, mutable: true }) readonly = false\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop({ reflect: true }) inCalendar = false\n\t@Prop({ reflect: true }) ordered?: boolean\n\t@Prop({ reflect: true }) multiple = false\n\t@Prop() clearable = true\n\t@Prop({ mutable: true }) defined = false\n\t@Prop({ reflect: true }) placeholder?: string | any\n\t@Prop() menuHeight?: `${number}${\"items\" | \"rem\" | \"px\" | \"vh\"}`\n\t@Prop() required = false\n\t@Prop() searchDisabled = false\n\t@Prop() mutable = false\n\tprivate lastOpen = false\n\t@State() open = false\n\t@State() selected: HTMLSmoothlyItemElement[] = []\n\t@State() filter = \"\"\n\t@State() addedItems: HTMLSmoothlyItemElement[] = []\n\t@Event() smoothlyInput: EventEmitter<Data>\n\t@Event() smoothlyUserInput: EventEmitter<Input.UserInput>\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\t@Event() smoothlyItemSelect: EventEmitter<HTMLSmoothlyItemElement>\n\n\tcomponentWillLoad(): void | Promise<void> {\n\t\tthis.smoothlyInputLooks.emit(\n\t\t\t(looks, color) => ((this.looks = this.looks ?? looks), !this.color && (this.color = color))\n\t\t)\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.observer.publish()\n\t}\n\tcomponentDidLoad(): void | Promise<void> {\n\t\tthis.selected && !this.initialValueHandled && (this.initialValue = [...this.selected])\n\t\tthis.initialValueHandled = true\n\t\tthis.onSelectedChange()\n\t}\n\tcomponentDidRender(): void | Promise<void> {\n\t\tthis.itemHeight === undefined && (this.itemHeight = this.items.find(item => item.clientHeight > 0)?.clientHeight)\n\t\tif (this.menuHeight && this.itemHeight) {\n\t\t\tthis.element?.style.setProperty(\n\t\t\t\t\"--menu-height\",\n\t\t\t\t!this.menuHeight.endsWith(\"items\") || this.items.length == 0\n\t\t\t\t\t? this.menuHeight\n\t\t\t\t\t: `${this.itemHeight * +(this.menuHeight.match(/^(\\d+(\\.\\d+)?|\\.\\d+)/g)?.[0] ?? \"10\")}px`\n\t\t\t)\n\t\t}\n\t\tthis.element?.style.setProperty(\"--element-height\", `${this.element.clientHeight}px`)\n\n\t\tif (this.ordered && !this.multiple && this.open && !this.lastOpen) {\n\t\t\tthis.scrollToSelected()\n\t\t}\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected)\n\t\t\tawait this.unregister()\n\t}\n\t@Watch(\"name\")\n\tnameChange(_: string | undefined, oldName: string | undefined) {\n\t\tInput.formRename(this, oldName)\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<any | any[] | undefined> {\n\t\treturn !this.multiple && this.selected[0]\n\t\t\t? this.selected[0].value\n\t\t\t: this.multiple && this.selected.length > 0\n\t\t\t? this.selected.map(item => item.value)\n\t\t\t: undefined\n\t}\n\t@Method()\n\tasync getItems(): Promise<HTMLSmoothlyItemElement[]> {\n\t\treturn this.items\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tthis.selected.forEach(item => (item.selected = item.hidden = false))\n\t\tthis.initialValue.forEach(item => (item.selected = true))\n\t\tthis.selected = [...this.initialValue]\n\t\tthis.displaySelected()\n\t\tthis.isDifferentFromInitial = false\n\t\tthis.open && this.handleShowOptions()\n\t}\n\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tif (this.clearable) {\n\t\t\tthis.selected.forEach(item => (item.selected = item.hidden = false))\n\t\t\tthis.selected = []\n\t\t\tif (this.displaySelectedElement) {\n\t\t\t\tthis.displaySelectedElement.innerHTML = this.placeholder ?? \"\"\n\t\t\t}\n\t\t}\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.isDifferentFromInitial = false\n\t\tthis.initialValue = [...this.selected]\n\t}\n\t@Watch(\"selected\")\n\tasync onSelectedChange() {\n\t\tthis.initialValueHandled && (this.isDifferentFromInitial = !this.areValuesEqual(this.selected, this.initialValue))\n\t\tthis.defined = this.selected.length > 0\n\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t\tthis.observer.publish()\n\t}\n\t@Watch(\"required\")\n\tonRequiredChange(): void {\n\t\tthis.items.forEach(item => (item.deselectable = !this.required))\n\t}\n\t@Watch(\"filter\")\n\tasync onFilterChange(value: string): Promise<void> {\n\t\tvalue = value.toLowerCase()\n\t\tawait Promise.all(this.items.map(item => item.filter(value)))\n\t}\n\t@Watch(\"disabled\")\n\t@Watch(\"readonly\")\n\twatchingReadonly(): void {\n\t\tthis.observer.publish()\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tasync smoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInputSelect) => void>): Promise<void> {\n\t\tif (\n\t\t\tevent.target &&\n\t\t\t((\"name\" in event.target && event.target.name !== this.name) ||\n\t\t\t\t(event.composedPath().some(e => e == this.iconsDiv) && !event.composedPath().some(e => e == this.toggle)))\n\t\t) {\n\t\t\tevent.stopPropagation()\n\t\t} else if (Item.Element.is(event.target)) {\n\t\t\tevent.stopPropagation()\n\t\t\tevent.target.deselectable = !this.required\n\t\t\tthis.items.push(event.target as HTMLSmoothlyItemElement)\n\t\t}\n\t\tInput.registerSubAction(this, event)\n\t\tthis.displaySelected()\n\t}\n\t@Listen(\"click\", { target: \"window\" })\n\tonWindowClick(event: Event): void {\n\t\t!event.composedPath().includes(this.element) && this.open && this.handleShowOptions()\n\t}\n\t@Listen(\"smoothlyItemDOMChange\")\n\tonItemDomChange(e: CustomEvent) {\n\t\te.stopPropagation()\n\t\tconst item = e.target as HTMLSmoothlyItemElement\n\t\tif (item.selected)\n\t\t\tthis.displaySelected()\n\t}\n\t@Listen(\"smoothlyItemSelect\")\n\tasync onItemSelect(event: CustomEvent<{ userInitiated: boolean; item: HTMLSmoothlyItemElement }>): Promise<void> {\n\t\tevent.stopPropagation()\n\t\tconst item = event.detail.item\n\t\tif (this.multiple) {\n\t\t\tthis.selected = item.selected ? [...this.selected, item] : this.selected.filter(item => item.selected)\n\t\t} else if (item.selected || !this.items.some(e => e.selected)) {\n\t\t\tthis.selected[0] && (this.selected[0].hidden = this.selected[0].selected = false)\n\t\t\tthis.selected = !item.selected ? this.selected.filter(item => item.selected) : [item]\n\t\t\t!this.showSelected && item.selected && (item.hidden = true)\n\t\t}\n\t\tthis.displaySelected()\n\t\tif (event.detail.userInitiated)\n\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: await this.getValue() })\n\t}\n\t@Watch(\"open\")\n\tonClosed(open: boolean, before: boolean): void {\n\t\tthis.lastOpen = before\n\t\tif (!open) {\n\t\t\tconst markedItem = this.items.find(item => item.marked)\n\t\t\tif (markedItem) {\n\t\t\t\tmarkedItem.marked = false\n\t\t\t}\n\t\t}\n\t}\n\thandleShowOptions(event?: Event): void {\n\t\tconst wasButtonClicked =\n\t\t\tevent?.composedPath().some(e => e == this.iconsDiv) && !event.composedPath().some(e => e == this.toggle)\n\t\tconst clickedItem = event\n\t\t\t?.composedPath()\n\t\t\t.find((el): el is HTMLSmoothlyItemElement => \"tagName\" in el && el.tagName == \"SMOOTHLY-ITEM\")\n\t\t!this.readonly &&\n\t\t\t!this.disabled &&\n\t\t\t!(clickedItem && this.items.includes(clickedItem) && this.multiple) &&\n\t\t\t!wasButtonClicked &&\n\t\t\t(this.open = !this.open)\n\t\tthis.filter = \"\"\n\t}\n\tareValuesEqual(selected: HTMLSmoothlyItemElement[], initialValue: HTMLSmoothlyItemElement[]): boolean {\n\t\treturn selected.length === initialValue.length && initialValue.every(value => selected.includes(value))\n\t}\n\tdisplaySelected(): void {\n\t\tconst displayString: string = this.selected.map(option => `<div>${option.innerHTML}</div>`).join(\"\")\n\t\tthis.displaySelectedElement &&\n\t\t\t(this.displaySelectedElement.innerHTML = this.selected.length > 0 ? displayString : this.placeholder ?? \"\")\n\t}\n\t@Listen(\"keydown\")\n\tonKeyDown(event: KeyboardEvent) {\n\t\tif (!this.searchDisabled) {\n\t\t\tevent.stopPropagation()\n\t\t\tconst visibleItems = this.items.some(item => item.getAttribute(\"hidden\") === null)\n\t\t\tif (event.key != \"Tab\" && !event.ctrlKey && !event.metaKey)\n\t\t\t\tevent.preventDefault()\n\t\t\tif (this.open) {\n\t\t\t\tswitch (event.key) {\n\t\t\t\t\tcase \"ArrowUp\":\n\t\t\t\t\t\tvisibleItems && this.move(-1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"ArrowDown\":\n\t\t\t\t\t\tvisibleItems && this.move(1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Escape\":\n\t\t\t\t\t\tif (this.filter == \"\")\n\t\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Backspace\":\n\t\t\t\t\t\tthis.filter = event.ctrlKey ? \"\" : this.filter.slice(0, -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Enter\":\n\t\t\t\t\t\tconst result = this.items.find(item => item.marked)\n\t\t\t\t\t\tif (result?.value)\n\t\t\t\t\t\t\tresult.selected = !result.selected\n\t\t\t\t\t\tif (!this.multiple) {\n\t\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Tab\":\n\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif (event.key.length == 1)\n\t\t\t\t\t\t\tthis.filter += event.key\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (event.key) {\n\t\t\t\t\tcase \"Enter\":\n\t\t\t\t\tcase \" \":\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"ArrowDown\":\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tthis.move(1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"ArrowUp\":\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tthis.move(-1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Tab\":\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tif (event.key.length == 1)\n\t\t\t\t\t\t\tthis.filter += event.key\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tprivate scrollToSelected() {\n\t\tconst selectedItem = this.items.find(item => item.selected)\n\t\tif (selectedItem) {\n\t\t\tthis.items.map(item => (item.marked = false))\n\t\t\tselectedItem.marked = true\n\t\t\tthis.scrollTo(selectedItem, \"instant\")\n\t\t}\n\t}\n\tprivate move(direction: -1 | 1): void {\n\t\tconst selectableItems = this.items.filter(item => !item.hidden && !item.disabled)\n\t\tlet markedIndex = selectableItems.findIndex(item => item.marked)\n\t\tif (markedIndex == -1)\n\t\t\tmarkedIndex = 0\n\t\telse {\n\t\t\tselectableItems[markedIndex].marked = false\n\t\t\tmarkedIndex = (markedIndex + direction + selectableItems.length) % selectableItems.length\n\t\t}\n\t\tselectableItems[markedIndex].marked = true\n\t\tthis.scrollTo(selectableItems[markedIndex], \"smooth\")\n\t}\n\tprivate scrollTo(item: HTMLSmoothlyItemElement, behavior?: \"instant\" | \"smooth\") {\n\t\tthis.optionsDiv?.scrollTo({\n\t\t\ttop: item.offsetTop + item.offsetHeight / 2 - (this.optionsDiv?.clientHeight ?? 0) / 2,\n\t\t\tbehavior,\n\t\t})\n\t}\n\tprivate addItem() {\n\t\tthis.addedItems = this.addedItems.concat(\n\t\t\t<smoothly-item value={this.filter} selected>\n\t\t\t\t{this.filter}\n\t\t\t</smoothly-item>\n\t\t)\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\ttabIndex={this.disabled ? undefined : 0}\n\t\t\t\tclass={{ \"has-value\": this.selected.length !== 0, open: this.open }}\n\t\t\t\tonClick={(event: Event) => this.handleShowOptions(event)}>\n\t\t\t\t<div class=\"select-display\" ref={element => (this.displaySelectedElement = element)}>\n\t\t\t\t\t{this.placeholder}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"icons\" ref={element => (this.iconsDiv = element)}>\n\t\t\t\t\t<smoothly-icon class=\"smoothly-invalid\" name=\"alert-circle\" size=\"small\" tooltip={this.errorMessage} />\n\t\t\t\t\t<slot name=\"end\" />\n\t\t\t\t\t{this.looks == \"border\" && !this.readonly && (\n\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\tref={element => (this.toggle = element)}\n\t\t\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\t\t\tname={this.open ? \"caret-down-outline\" : \"caret-forward-outline\"}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<slot name=\"label\" />\n\t\t\t\t<div class={{ hidden: !this.open, options: true }} ref={(el: HTMLDivElement) => (this.optionsDiv = el)}>\n\t\t\t\t\t{this.filter.length > 0 && (\n\t\t\t\t\t\t<div class=\"search-preview\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"search-outline\" size=\"small\" />\n\t\t\t\t\t\t\t{this.filter}\n\t\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\t\tname=\"backspace-outline\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tonClick={e => {\n\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\t\t\t\t\tthis.element.focus()\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{this.mutable && (\n\t\t\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\t\t\tname=\"add\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={e => {\n\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\tthis.addItem()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<slot />\n\t\t\t\t\t{this.addedItems}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../../button/style.css\"; \n\n:host {\n\tdisplay: flex;\n}\n\n:host(:not([display])) {\n\tdisplay: none;\n}\n\n:host::slotted(smoothly-button button > * > * + smoothly-icon),\n:host::slotted(smoothly-button-confirm button > * > * + smoothly-icon) {\n\tdisplay: none;\n}\n\n:host([disabled]) {\n\tcursor: not-allowed\n}\n","import { Component, ComponentWillLoad, Event, EventEmitter, h, Host, Prop, VNode } from \"@stencil/core\"\nimport { isly } from \"isly\"\nimport { Color, Data, Fill, Icon } from \"../../../model\"\nimport { Editable } from \"../Editable\"\nimport { Submittable } from \"../Submittable\"\n\n@Component({\n\ttag: \"smoothly-input-submit\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputSubmit implements ComponentWillLoad {\n\tprivate parent?: Submittable & Editable\n\t@Prop({ reflect: true }) delete = false\n\t@Prop() color?: Color\n\t@Prop() icon: Icon | false = \"checkmark-outline\"\n\t@Prop({ reflect: true }) expand?: \"block\" | \"full\"\n\t@Prop({ reflect: true }) fill?: Fill\n\t@Prop({ reflect: true, mutable: true }) disabled = false\n\t@Prop({ reflect: true, mutable: true }) display = false\n\t@Prop({ reflect: true }) shape?: \"rounded\"\n\t@Prop({ reflect: true }) size: \"flexible\" | \"small\" | \"large\" | \"icon\" = \"icon\"\n\t@Prop() tooltip = this.delete ? \"Remove\" : \"Submit\"\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\tcomponentWillLoad(): void {\n\t\tthis.smoothlyInputLoad.emit(parent => {\n\t\t\tif (Submittable.is(parent) && Editable.type.is(parent)) {\n\t\t\t\tthis.parent = parent\n\t\t\t\tparent.listen(async p => {\n\t\t\t\t\tthis.display = !p.readonly\n\t\t\t\t\tthis.disabled =\n\t\t\t\t\t\t!this.delete &&\n\t\t\t\t\t\t(p.readonly ||\n\t\t\t\t\t\t\t(\"validator\" in p && p.validator instanceof isly.Type && !p.validator?.is(Data.convertArrays(p.value))) ||\n\t\t\t\t\t\t\t!p.isDifferentFromInitial)\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n\tclickHandler() {\n\t\tthis.parent?.submit(this.delete)\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host title={this.tooltip}>\n\t\t\t\t{this.delete == true ? (\n\t\t\t\t\t<smoothly-button-confirm\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\tshape={this.shape}\n\t\t\t\t\t\texpand={this.expand}\n\t\t\t\t\t\tcolor={this.color ?? \"danger\"}\n\t\t\t\t\t\tfill={this.fill}\n\t\t\t\t\t\tonSmoothlyConfirm={() => this.clickHandler()}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t<smoothly-icon name=\"trash-outline\" fill=\"solid\" size=\"tiny\" />\n\t\t\t\t\t</smoothly-button-confirm>\n\t\t\t\t) : (\n\t\t\t\t\t<smoothly-button\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\ttype={\"button\"}\n\t\t\t\t\t\tshape={this.shape}\n\t\t\t\t\t\texpand={this.expand}\n\t\t\t\t\t\tcolor={this.color ?? \"success\"}\n\t\t\t\t\t\tfill={this.fill}\n\t\t\t\t\t\tonClick={() => this.clickHandler()}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t{this.icon && <smoothly-icon name={this.icon} fill=\"solid\" size=\"tiny\" />}\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host([selected]) {\n\tbackground-color: rgb(var(--smoothly-item-selected-background));\n\tcolor: rgb(var(--smoothly-item-selected-foreground));\n\tborder-left: .3em solid rgb(var(--smoothly-item-selected-border));\n}\n\n:host([disabled]),\n:host([disabled])::slotted(*) {\n\tbackground-color: rgb(var(--smoothly-item-disabled-background));\n\tcolor: rgb(var(--smoothly-item-disabled-foreground));\n\topacity: var(--smoothly-item-disabled-opacity);\n\tcursor: not-allowed;\n}\n\n:host {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: 0.5em;\n\tcursor: pointer;\n\tborder-left: .3em solid transparent;\n\tcolor: rgb(var(--smoothly-item-foreground));\n\tfill: rgb(var(--smoothly-item-foreground));\n\tstroke: rgb(var(--smoothly-item-foreground));\n\tbox-sizing: border-box;\n\tmin-height: 3rem;\n}\n\n:host::slotted(*) {\n\tcolor: rgb(var(--smoothly-item-foreground));\n\tfill: rgb(var(--smoothly-item-foreground));\n\tstroke: rgb(var(--smoothly-item-foreground));\n}\n\n:host:not([disabled])[marked],\n:host:not([disabled]):hover,\n:host:not([disabled])[marked]::slotted(*),\n:host:not([disabled]):hover::slotted(*) {\n\tbackground-color: rgb(var(--smoothly-item-hover-background));\n\tcolor: rgb(var(--smoothly-item-hover-foreground));\n\tfill: rgb(var(--smoothly-item-hover-foreground));\n\tstroke: rgb(var(--smoothly-item-hover-foreground));\n}\n","import {\n\tComponent,\n\tComponentDidLoad,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tVNode,\n\tWatch,\n} from \"@stencil/core\"\nimport { Editable } from \"../input/Editable\"\nimport { Item } from \"./Item\"\n\n@Component({\n\ttag: \"smoothly-item\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyItem implements Item, ComponentWillLoad, ComponentDidLoad {\n\tprivate mutationObserver: MutationObserver\n\tprivate userInitiated = false\n\t@Element() element: HTMLSmoothlyItemElement\n\t@Prop() value: any\n\t@Prop({ reflect: true, mutable: true }) selected: boolean = false\n\t@Prop({ reflect: true, mutable: true }) marked: boolean\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop() deselectable = true\n\t@Event() smoothlyItemSelect: EventEmitter<{ userInitiated: boolean; item: HTMLSmoothlyItemElement }>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyItemDOMChange: EventEmitter<void>\n\n\t@Listen(\"click\")\n\tclickHandler(): void {\n\t\tif (!this.disabled && (!this.selected || this.deselectable)) {\n\t\t\tthis.userInitiated = true\n\t\t\tthis.selected = !this.selected\n\t\t}\n\t}\n\t@Watch(\"selected\")\n\tselectedWatcher(): void {\n\t\tthis.smoothlyItemSelect.emit({ userInitiated: this.userInitiated, item: this.element })\n\t\tthis.userInitiated = false\n\t}\n\tcomponentWillLoad(): void {\n\t\tthis.smoothlyInputLoad.emit(() => {})\n\t}\n\tcomponentDidLoad(): void {\n\t\tthis.mutationObserver = new MutationObserver(() => this.smoothlyItemDOMChange.emit())\n\t\tthis.mutationObserver.observe(this.element, { childList: true, subtree: true, characterData: true })\n\n\t\tif (this.selected && !this.disabled)\n\t\t\tthis.smoothlyItemSelect.emit({ userInitiated: false, item: this.element })\n\t}\n\t@Method()\n\tasync filter(filter: string): Promise<void> {\n\t\tconst value = typeof this.value === \"string\" ? this.value : JSON.stringify(this.value ?? \"\")\n\t\tthis.element.hidden = filter\n\t\t\t? !(value.includes(filter) || this.element.innerText.toLowerCase().includes(filter))\n\t\t\t: false\n\t}\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host tabIndex={-1}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tposition: relative;\n\twidth: max-content;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tpadding: 0.15em 0.6em;\n\tborder-radius: 2em;\n\tcolor: rgb(var(--smoothly-default-contrast));\n\tbackground-color: hsl(var(--hue), 85%, 70%);\n}\n\n:host([shape=rectangle]) {\n\tborder-radius: 0.3em;\n}\n","import { Component, h, Host, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-label\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyLabel {\n\t@Prop() hue?: number\n\t@Prop() description?: string\n\t@Prop({ reflect: true }) shape: \"rectangle\" | \"rounded\"\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\ttitle={this.description}\n\t\t\t\tstyle={{\n\t\t\t\t\t\"--hue\": this.hue?.toString(),\n\t\t\t\t}}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n","import { Component, FunctionalComponent, h, Host, Prop, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-lazy\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyLazy {\n\t@Prop({ mutable: true }) show = false\n\t@Prop() content?: VNode | FunctionalComponent\n\n\tloadMoreHandler(event: CustomEvent<string>): void {\n\t\tevent.stopPropagation()\n\t\tthis.show = true\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<slot name=\"before\" />\n\t\t\t\t<smoothly-load-more onSmoothlyLoadMore={e => this.loadMoreHandler(e)} />\n\t\t\t\t{this.show && (typeof this.content == \"function\" ? <this.content /> : this.content)}\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State, VNode } from \"@stencil/core\"\nimport { Scrollable } from \"../../model/Scrollable\"\n\n@Component({\n\ttag: \"smoothly-load-more\",\n\tscoped: true,\n})\nexport class LoadMore {\n\tprivate observer: IntersectionObserver\n\tprivate scrollableParent?: HTMLElement\n\t@Element() element: HTMLSmoothlyLoadMoreElement\n\t@Prop() triggerMode: \"scroll\" | \"intersection\" = \"intersection\"\n\t@Prop() name = \"\"\n\t@Prop() multiple = false\n\t@State() inView: boolean\n\t@Event() smoothlyLoadMore: EventEmitter<string>\n\n\tcheckInView() {\n\t\tif (this.inView)\n\t\t\tthis.smoothlyLoadMore.emit(this.name)\n\t}\n\n\tconnectedCallback() {\n\t\tthis.observer = new IntersectionObserver((entries, observer) => this.observationHandler(observer, entries))\n\t\tthis.observer.observe(this.element)\n\t\tif (this.triggerMode == \"scroll\") {\n\t\t\tthis.inView && this.smoothlyLoadMore.emit(this.name)\n\t\t\tif (this.multiple || (!this.multiple && !this.inView)) {\n\t\t\t\tthis.scrollableParent = Scrollable.findParent(this.element)\n\t\t\t\tthis.scrollableParent?.addEventListener(\"scroll\", this.checkInView.bind(this), { once: !this.multiple })\n\t\t\t}\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.scrollableParent?.removeEventListener(\"scroll\", this.checkInView.bind(this))\n\t\tthis.observer.disconnect()\n\t}\n\n\tobservationHandler(observer: IntersectionObserver, entries: IntersectionObserverEntry[]): void {\n\t\tthis.inView = (entries.find(entry => entry.target == this.element)?.intersectionRatio ?? 0) > 0\n\t\tif (this.inView) {\n\t\t\tthis.smoothlyLoadMore.emit(this.name)\n\t\t\t!this.multiple && (observer.unobserve(this.element), observer.disconnect())\n\t\t}\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn <Host />\n\t}\n}\n",":host {\n\tposition: fixed;\n\tdisplay: flex;\n\tjustify-content: center;\n\ttop: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\tbackground-color: rgba(var(--smoothly-modal-backdrop));\n\tcolor: rgb(var(--smoothly-modal-foreground));\n\tz-index: 20;\n}\n:host:not([open]),\n:host[hidden] {\n\tdisplay: none;\n}\n:host[align=center] {\n\talign-items: center;\n}\n:host[align=top]>div.modal{\n\tmargin-top: calc((100dvh - var(--smoothly-modal-max-height)) / 2);\n}\n\n:host>div.modal {\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 2rem;\n\tgap: 1.5rem;\n\twidth: var(--smoothly-modal-width, 40rem);\n\tmax-width: calc(100dvw - 1rem);\n\theight: fit-content;\n\tmax-height: min(var(--smoothly-modal-max-height), 100dvh);\n\tbackground: rgb(var(--smoothly-modal-background, var(--smoothly-color)));\n\tborder: 1px solid rgb(var(--smoothly-modal-border));\n\tborder-radius: var(--smoothly-modal-border-radius);\n\tbox-shadow: var(--smoothly-modal-shadow);\n\tbox-sizing: border-box;\n}\n:host > div.modal > div.header:empty,\n:host > div.modal > div.actions:empty {\n\tdisplay: none;\n}\n:host > div.modal > div.header {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n}\n:host > div.modal > *,\n:host > div.modal > div.header > * {\n\tmargin-block: 0;\n}\n:host > div.modal > *:not(.header):not(.actions) {\n\toverflow-y: auto;\n}\n:host > div.modal > div.header:not(:has([slot=\"header\"])) {\n\tjustify-content: end;\n}\n:host > div.modal > div.header > smoothly-icon:not([slot=\"header\"]) {\n\tcursor: pointer;\n\topacity: 0.7;\n\tcolor: rgb(var(--smoothly-default-contrast));\n}\n:host > div.modal > div.header > smoothly-icon:not([slot=\"header\"]):hover {\n\topacity: 1;\n}\n:host > div.modal > div.actions {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tgap: 1rem;\n\tflex-wrap: wrap;\n}\n\n","import { Component, Event, EventEmitter, h, Host, Method, Prop, Watch } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-modal\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyModal {\n\t@Prop({ mutable: true, reflect: true }) open = false\n\t@Prop({ reflect: true }) closable = false\n\t@Prop({ reflect: true }) align: \"top\" | \"center\" = \"center\"\n\t@Event() smoothlyModalChange: EventEmitter<boolean>\n\n\t@Watch(\"open\")\n\topenChanged() {\n\t\tthis.smoothlyModalChange.emit(this.open)\n\t}\n\t@Method()\n\tasync closeModal() {\n\t\tthis.open = false\n\t}\n\t@Method()\n\tasync openModal() {\n\t\tthis.open = true\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\trole=\"alertdialog\"\n\t\t\t\tonClick={(e: any) => {\n\t\t\t\t\tthis.closable && !e.composedPath().some((el: any) => el.classList?.contains(\"modal\")) && this.closeModal()\n\t\t\t\t}}>\n\t\t\t\t<div class=\"modal\">\n\t\t\t\t\t<div class=\"header\">\n\t\t\t\t\t\t<slot name=\"header\" />\n\t\t\t\t\t\t{this.closable && <smoothly-icon name=\"close-outline\" fill=\"solid\" onClick={() => this.closeModal()} />}\n\t\t\t\t\t</div>\n\t\t\t\t\t<slot />\n\t\t\t\t\t<div class=\"actions\">\n\t\t\t\t\t\t<slot name=\"actions\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n\tposition: relative;\n\tmin-width: min(calc(100% - 1rem), 30rem);\n\tmin-height: 3rem;\n\tborder-radius: 5px;\n\tmargin: 0.5rem;\n}\n:host > span.icon > smoothly-icon,\n:host > span.clean {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-self: center;\n}\n:host > span {\n\tmargin-inline: 1rem 2rem;\n}\n:host > span.icon {\n\tdisplay: flex;\n\twidth: 100%;\n\tjustify-content: center;\n}\n:host > span.icon > p {\n\tpadding-right: 1em;\n}\n:host > span > p {\n\ttext-align: left;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host > span.icon > smoothly-icon {\n\tmargin: 0 0.5rem;\n}\n:host > smoothly-trigger {\n\t--smoothly-icon-size: 1.6rem;\n\tposition: absolute;\n\tright: 0;\n}\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { Component, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from \"@stencil/core\"\nimport { Color, Notice, Trigger } from \"../../model\"\nimport { Icon } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-notification\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class Notification {\n\t@Prop() notice: Notice\n\t@Prop() closable = true\n\t@Prop() icon: boolean\n\t@State() tick = {}\n\t@Event() remove: EventEmitter<Notice>\n\tprivate listener: Notice.Listener = notice => {\n\t\tif (notice.state == \"closed\")\n\t\t\tthis.remove.emit(notice)\n\t\telse\n\t\t\tthis.tick = {}\n\t}\n\tprivate get properties(): [Color, Icon | undefined] {\n\t\tlet result: [Color, Icon | undefined]\n\t\tswitch (this.notice.state) {\n\t\t\tcase \"delayed\":\n\t\t\tcase \"warning\":\n\t\t\t\tresult = [\"warning\", \"warning-outline\"]\n\t\t\t\tbreak\n\t\t\tcase \"success\":\n\t\t\t\tresult = [\"success\", \"checkmark-circle\"]\n\t\t\t\tbreak\n\t\t\tcase \"executing\":\n\t\t\t\tresult = [\"light\", \"hourglass-outline\"]\n\t\t\t\tbreak\n\t\t\tcase \"failed\":\n\t\t\t\tresult = [\"danger\", \"alert-circle\"]\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tresult = [\"light\", undefined]\n\t\t\t\tbreak\n\t\t}\n\t\treturn result\n\t}\n\n\t@Listen(\"trigger\")\n\tonTrigger(event: CustomEvent<Trigger>) {\n\t\tif (event.detail.name == \"close\") {\n\t\t\tevent.stopPropagation()\n\t\t\tthis.notice.close()\n\t\t}\n\t}\n\n\t@Watch(\"notice\")\n\tonUpdatedNotice(newValue: Notice, oldValue?: Notice) {\n\t\tif (oldValue)\n\t\t\toldValue.unlisten(this.listener)\n\t\tnewValue.listen(this.listener)\n\t}\n\tcomponentDidLoad() {\n\t\tthis.onUpdatedNotice(this.notice)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host color={this.properties[0]} fill=\"solid\">\n\t\t\t\t{this.closable && (\n\t\t\t\t\t<smoothly-trigger fill=\"clear\" name=\"close\">\n\t\t\t\t\t\t<smoothly-icon name=\"close-circle-outline\" />\n\t\t\t\t\t</smoothly-trigger>\n\t\t\t\t)}\n\t\t\t\t<span class={this.icon ? \"icon\" : \"clean\"}>\n\t\t\t\t\t{this.icon && <smoothly-icon name={this.properties[1]} />}\n\t\t\t\t\t<p>{this.notice.message}</p>\n\t\t\t\t</span>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host > .smoothly-notifier-wrapper {\n\tpointer-events: none;\n\tdisplay: flex;\n\tflex-wrap: wrap-reverse;\n\talign-content: stretch;\n\tposition: fixed;\n\tbottom: 3rem;\n\tleft: 0;\n\ttext-align: center;\n\tz-index: 100;\n}\n\n:host > .smoothly-notifier-wrapper > smoothly-notification {\n\tpointer-events: all;\n}\n","import { Component, h, Host, Listen, Prop, State } from \"@stencil/core\"\nimport { Notice } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-notifier\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class Notifier {\n\t@Prop() icon = false\n\t@State() notices: Notice[] = []\n\n\t@Listen(\"notice\")\n\tonNotice(event: CustomEvent<Notice>) {\n\t\tthis.notices = [...this.notices, event.detail]\n\t}\n\t@Listen(\"remove\")\n\tonRemove(event: CustomEvent<Notice>) {\n\t\tthis.notices = [...this.notices.filter(n => n != event.detail)]\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<slot />\n\t\t\t\t<div class=\"smoothly-notifier-wrapper\">\n\t\t\t\t\t{this.notices.map(n => (\n\t\t\t\t\t\t<smoothly-notification notice={n} icon={this.icon} />\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host[hidden] {\n\tdisplay: none;\n}\n\n:host {\n\tcursor: wait;\n\t--spinner-time: 1.4s;\n\t--spinner-color: var(--smoothly-color-contrast);\n\t--spinner-background: var(--smoothly-color);\n\t--spinner-background-opacity: var(--smoothly-semitransparent, 0.8);\n\tdisplay: block;\n\tstroke: rgb(var(--spinner-color));\n\tbackground-color: rgba(var(--spinner-background), var(--spinner-background-opacity));\n}\n\n:host:not([overlay]) {\n\twidth: var(--spinner-size);\n\theight: var(--spinner-size);\n}\n\n:host[overlay] {\n\tposition: absolute;\n\tinset: 0;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: 4;\n\tbackground-color: rgba(var(--spinner-background), var(--spinner-background-opacity));\n}\n\n:host[color]:not([overlay]),\n:host[color][overlay] {\n\tbackground-color: rgba(var(--spinner-background), var(--spinner-background-opacity));\n\tstroke: rgb(var(--spinner-color));\n}\n\n:host[overlay]>svg {\n\tposition: absolute;\n\twidth: var(--spinner-size);\n\tleft: calc(50% - var(--spinner-size) / 2);\n\ttop: calc(50% - var(--spinner-size) / 2);\n}\n\n:host>svg {\n\tanimation: SPIN-SVG var(--spinner-time) linear infinite;\n}\n\n:host>svg>circle {\n\ttransform-origin: center;\n\tanimation: SPIN-CIRCLE var(--spinner-time) ease-in-out infinite;\n\tstroke-dasharray: 187;\n\tstroke-dashoffset: 0;\n}\n\n@keyframes SPIN-SVG {\n\t0% {\n\t\ttransform: rotate(0deg);\n\t}\n\n\t100% {\n\t\ttransform: rotate(270deg);\n\t}\n}\n\n@keyframes SPIN-CIRCLE {\n\t0% {\n\t\tstroke-dashoffset: 187;\n\t}\n\n\t50% {\n\t\tstroke-dashoffset: 46.75;\n\t\ttransform: rotate(135deg);\n\t}\n\n\t100% {\n\t\tstroke-dashoffset: 187;\n\t\ttransform: rotate(450deg);\n\t}\n}\n","import { Component, h, Host, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-spinner\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlySpinner {\n\t@Prop({ reflect: true }) size: \"small\" | \"icon\" | \"medium\" | \"large\" = \"large\"\n\t@Prop({ reflect: true }) overlay: boolean\n\n\trender() {\n\t\tconst strokeWidth = this.size == \"large\" ? 6 : this.size == \"medium\" ? 8 : this.size == \"icon\" ? 8 : 12\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tstyle={{\n\t\t\t\t\t\"--spinner-size\":\n\t\t\t\t\t\tthis.size == \"large\" ? \"5em\" : this.size == \"medium\" ? \"3em\" : this.size == \"icon\" ? \"1.8em\" : \"1.2em\",\n\t\t\t\t}}>\n\t\t\t\t<svg class=\"spinner\" viewBox={`0 0 ${60 + strokeWidth} ${60 + strokeWidth}`} xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<circle\n\t\t\t\t\t\tclass=\"path\"\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\tstroke-width={strokeWidth}\n\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\tcx={`${30 + strokeWidth / 2}`}\n\t\t\t\t\t\tcy={`${30 + strokeWidth / 2}`}\n\t\t\t\t\t\tr=\"30\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n\n:host>details>summary {\n\tdisplay: flex;\n\tcolumn-gap: 0.25rem;\n\twidth: fit-content;\n\tlist-style: none;\n\talign-items: center;\n\tcursor: pointer;\n}\n\n:host>details>summary>smoothly-icon {\n\ttransition: transform 0.2s, opacity 0.1s;\n\topacity: 0.3;\n}\n\n:host>details>summary:hover>smoothly-icon {\n\topacity: 1;\n}\n\n:host>details[open]>summary>smoothly-icon {\n\ttransform: rotate(90deg);\n}\n\n:host>details::slotted([slot=content]) {\n\tmargin-left: var(--smoothly-summary-content-indent, 1.5rem);\n}\n\n@media (prefers-reduced-motion) { \n\t:host>details>summary>smoothly-icon {\n\t\ttransition: none;\n\t}\n}\n","import { Component, Event, EventEmitter, h, Prop } from \"@stencil/core\"\n@Component({\n\ttag: \"smoothly-summary\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlySummary {\n\t@Prop({ mutable: true, reflect: true }) open = false\n\t@Event() smoothlySummaryOpen: EventEmitter<boolean>\n\n\tasync toggleHandler(event: Event) {\n\t\tif (event.target instanceof HTMLDetailsElement) {\n\t\t\tthis.open = event.target.open\n\t\t\tthis.smoothlySummaryOpen.emit(this.open)\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<details onToggle={e => this.toggleHandler(e)} open={this.open}>\n\t\t\t\t<summary>\n\t\t\t\t\t<smoothly-icon name=\"caret-forward\" fill=\"solid\" size=\"tiny\" />\n\t\t\t\t\t<slot name=\"summary\" />\n\t\t\t\t</summary>\n\t\t\t\t<slot name=\"content\" />\n\t\t\t</details>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: contents;\n\t--smoothly-tab-line-width: 2px;\n\t--smoothly-tab-line-width-active: 5px;\n}\n:host > div:first-child {\n\tgrid-column: span 1;\n\tbackground-color: transparent;\n\tborder-bottom-color: rgb(var(--smoothly-default-shade));\n\tborder-bottom-width: var(--smoothly-tab-line-width);\n\tborder-bottom-style: solid;\n}\n:host([disabled]) > div:first-child {\n\tcolor: rgba(var(--smoothly-default-contrast), 0.6);\n}\n:host([disabled]) > div:first-child > label {\n\tcursor: not-allowed;\n}\n:host > div:first-child > label {\n\tdisplay: flex;\n\tjustify-content: center;\n\tpadding: 0.5rem 1rem;\n\twidth: fit-content;\n\tborder-radius: 0.5rem 0.5rem 0 0;\n margin: auto;\n\tcursor: pointer;\n\tposition: relative;\n}\n:host:not([disabled]) > div:first-child > label:hover {\n\tbackground-color: rgb(var(--smoothly-tab-hover-background, var(--smoothly-default-shade)));\n}\n:host([open]) > div:first-child > label {\n\t\n\tfont-weight: bold;\n}\n:host([open]) > div:first-child > label::before {\n\tcontent: '';\n\tposition: absolute;\n\theight: var(--smoothly-tab-line-width-active);\n\tbackground-color: rgb(var(--smoothly-tab-active-line, var(--smoothly-primary-color)));\n\tinset-inline: 0;\n\tbottom: calc(-1 * var(--smoothly-tab-line-width));\n}\n:host > div:first-child > label[data-smoothly-tooltip]:hover::after {\n\tcontent: attr(data-smoothly-tooltip);\n\tfont-size: 0.9rem;\n\tposition: absolute;\n\ttop: calc(100% + 0.25rem);\n\tpadding: 0.5rem 0.75rem;\n\tborder-radius: 0.5rem;\n\tbackground-color: rgb(var(--smoothly-medium-color));\n\tcolor: rgb(var(--smoothly-medium-contrast));\n\twhite-space: nowrap;\n\tz-index: 1;\n}\n\n:host > div:nth-child(2) {\n\tgrid-row: 2 / 3;\n\tgrid-column: 1 / -1;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, Watch } from \"@stencil/core\"\nimport { Input } from \"../../input/Input\"\nimport { SmoothlyTabs } from \"..\"\n\n@Component({\n\ttag: \"smoothly-tab\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTab {\n\tprivate inputs: Record<string, Input.Element> = {}\n\tprivate smoothlyTabs?: SmoothlyTabs\n\t@Element() element: HTMLSmoothlyTabElement\n\t@Prop() label: string\n\t@Prop() name: string\n\t@Prop() tooltip: string\n\t@Prop({ mutable: true, reflect: true }) open: boolean\n\t@Prop({ reflect: true }) disabled: boolean\n\t@Event() smoothlyTabOpen: EventEmitter<string>\n\t@Event() smoothlyTabLoad: EventEmitter<(smoothlyTabs: SmoothlyTabs) => void>\n\n\t@Watch(\"open\")\n\tasync openHandler() {\n\t\tif (this.open)\n\t\t\tthis.smoothlyTabOpen.emit(this.name)\n\t\tthis.open\n\t\t\t? await Promise.all(Object.values(this.inputs).map(input => input.register()))\n\t\t\t: await Promise.all(Object.values(this.inputs).map(input => input.unregister()))\n\t}\n\tconnectedCallback() {\n\t\tthis.smoothlyTabLoad.emit((smoothlyTabs: SmoothlyTabs) => {\n\t\t\tthis.smoothlyTabs?.removeTab(this.element)\n\t\t\tthis.smoothlyTabs = smoothlyTabs\n\t\t})\n\t}\n\tdisconnectedCallback() {\n\t\tthis.smoothlyTabs?.removeTab(this.element)\n\t}\n\tasync componentDidLoad() {\n\t\tawait this.openHandler()\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\t@Listen(\"smoothlyInput\")\n\tonInputLoad(event: CustomEvent) {\n\t\tif (Input.Element.is(event.target)) {\n\t\t\tthis.inputs[event.target.name] = event.target\n\t\t\tif (!this.open)\n\t\t\t\tevent.stopPropagation()\n\t\t}\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div onClick={() => !this.disabled && (this.open = true)}>\n\t\t\t\t\t<label data-smoothly-tooltip={this.tooltip}>{this.label}</label>\n\t\t\t\t</div>\n\t\t\t\t<div hidden={!this.open}>\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(var(--columns), auto);\n\tcolor: rgb(var(--smoothly-table-foreground));\n\tstroke: rgb(var(--smoothly-table-foreground));\n\tfill: rgb(var(--smoothly-table-foreground));\n}\n","import { Component, h, Host, Listen, Prop, VNode } from \"@stencil/core\"\nimport { SmoothlyTableExpandableCellCustomEvent } from \"../../components\"\n\n@Component({\n\ttag: \"smoothly-table\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTable {\n\t@Prop() columns = 1\n\n\t@Listen(\"smoothlyTableExpandableRowChange\")\n\tsmoothlyTableExpandableRowChange(event: SmoothlyTableExpandableCellCustomEvent<boolean>): void {\n\t\tevent.stopPropagation()\n\t}\n\n\t@Listen(\"smoothlyTableExpandableCellChange\")\n\tsmoothlyTableExpandableCellChange(event: SmoothlyTableExpandableCellCustomEvent<boolean>): void {\n\t\tevent.stopPropagation()\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host style={{ \"--columns\": this.columns.toString() }}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tgrid-column: 1 / -1;\n\tdisplay: grid;\n\tgrid-template-columns: subgrid;\n\tcolor: rgb(var(--smoothly-table-foreground));\n\tbackground-color: rgb(var(--smoothly-table-background));\n}\n","import { Component, h, Host, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-body\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableBody {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tgrid-column: span var(--smoothly-table-cell-span, 1);\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-inline: var(--smoothly-table-cell-padding-inline, 1.1rem);\n\tmin-height: var(--smoothly-table-cell-min-height, 2.75rem);\n\twhite-space: nowrap;\n}\n","import { Component, h, Host, Prop, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-cell\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableCell {\n\t@Prop({ reflect: true }) span?: number = 1\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host class=\"smoothly-table-cell\" style={{ \"--smoothly-table-cell-span\": this.span?.toString(10) }}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: grid;\n\tgap: 5rem;\n\tbox-sizing: border-box;\n\tmax-width: 80rem;\n\twidth: 100%;\n\tmargin: auto;\n\tpadding: 2rem;\n}\n","import { Component, h, Host, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-demo\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableDemo {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-table-demo-filler-row />\n\t\t\t\t<smoothly-table-demo-group />\n\t\t\t\t<smoothly-table-demo-colspan />\n\t\t\t\t<smoothly-table-demo-simple />\n\t\t\t\t<smoothly-table-demo-nested-no-cell />\n\t\t\t\t<smoothly-table-demo-filtered />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n:host smoothly-display {\n\tdisplay: inline;\n}\n","import { Component, h, Host, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-demo-colspan\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableDemoColspan {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-table columns={3}>\n\t\t\t\t\t<smoothly-table-head>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-cell>Date</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>Skip</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>Total</smoothly-table-cell>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t</smoothly-table-head>\n\t\t\t\t\t<smoothly-table-body>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-cell span={2}>\n\t\t\t\t\t\t\t\t<smoothly-display type={\"date\"} value={\"2024-01-01\"} />\n\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} value={120} currency={\"EUR\"} />\n\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-expandable-cell span={2}>\n\t\t\t\t\t\t\t\t<smoothly-display type={\"date\"} value={\"2024-01-02\"} />\n\t\t\t\t\t\t\t\t<smoothly-lazy\n\t\t\t\t\t\t\t\t\tslot={\"detail\"}\n\t\t\t\t\t\t\t\t\tcontent={<smoothly-display type={\"date-time\"} value={\"2024-01-02T13:37:00.000Z\"} />}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} value={220} currency={\"EUR\"} />\n\t\t\t\t\t\t\t\t<smoothly-lazy\n\t\t\t\t\t\t\t\t\tslot={\"detail\"}\n\t\t\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} value={120} currency={\"EUR\"} />\n\t\t\t\t\t\t\t\t\t\t\t{\" + \"}\n\t\t\t\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} value={100} currency={\"EUR\"} />\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-display type={\"date\"} value={\"2024-01-02\"} />\n\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>Not Skipped</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} value={320} currency={\"EUR\"} />\n\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t</smoothly-table-body>\n\t\t\t\t</smoothly-table>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n:host>smoothly-display {\n\tfont-size: 2em;\n}\n:host>* {\n\tmargin-bottom: 2rem;\n}\n","import { Component, h, Host, State, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-demo-filler-row\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableDemoFillerRow {\n\t@State() cats?: Cat[] = []\n\n\tasync componentDidLoad(): Promise<void> {\n\t\twindow.setTimeout(() => {\n\t\t\tthis.cats = undefined\n\t\t}, 3000)\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-display type=\"text\" value=\"Filler row\" />\n\t\t\t\t<smoothly-table color=\"primary\" columns={4}>\n\t\t\t\t\t<smoothly-table-head>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-cell>Breed</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>Country</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>Coat</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>Origin</smoothly-table-cell>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t</smoothly-table-head>\n\t\t\t\t\t<smoothly-table-body>\n\t\t\t\t\t\t{this.cats === undefined ? (\n\t\t\t\t\t\t\t<smoothly-table-filler-row>No data to display</smoothly-table-filler-row>\n\t\t\t\t\t\t) : this.cats.length === 0 ? (\n\t\t\t\t\t\t\t<smoothly-table-filler-row>\n\t\t\t\t\t\t\t\t<smoothly-spinner style={{ margin: \"auto\" }} color=\"default\" size=\"small\" />\n\t\t\t\t\t\t\t</smoothly-table-filler-row>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tthis.cats.map(a => (\n\t\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{a.breed}</div>\n\t\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{a.country}</div>\n\t\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{a.coat}</div>\n\t\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{a.origin}</div>\n\t\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t)}\n\t\t\t\t\t</smoothly-table-body>\n\t\t\t\t</smoothly-table>\n\t\t\t</Host>\n\t\t)\n\t}\n}\nexport interface Cat {\n\tbreed: string\n\tcountry: string\n\torigin: string\n\tcoat: string\n\tpattern: string\n}\n","import { h } from \"@stencil/core\"\n\nexport class Selector<T> {\n\t#selected?: T[]\n\tget selected(): T[] {\n\t\treturn (this.#selected ??= Object.values(this.data))\n\t}\n\tprivate constructor(private readonly key: keyof T, private data: Readonly<Record<string, T>> = {}) {}\n\thandle(data: Record<string, T>): Selector<T> {\n\t\treturn new Selector(\n\t\t\tthis.key,\n\t\t\t\"check-all\" in data\n\t\t\t\t? data[\"check-all\"] ?? {}\n\t\t\t\t: Object.fromEntries(Object.entries({ ...this.data, ...data }).filter(([_, value]) => value != undefined))\n\t\t)\n\t}\n\trender(item: T | T[]): HTMLSmoothlyCheckboxElement {\n\t\treturn Array.isArray(item) ? (\n\t\t\t<smoothly-checkbox\n\t\t\t\tname=\"check-all\"\n\t\t\t\tvalue={Object.fromEntries(item.map(i => [i[this.key], i]))}\n\t\t\t\tintermediate={this.selected.length > 0 && this.selected.length < item.length}\n\t\t\t\tchecked={this.selected.length == item.length ? true : this.selected.length == 0 && false}\n\t\t\t/>\n\t\t) : (\n\t\t\t<smoothly-checkbox\n\t\t\t\tname={item[this.key]?.toString()}\n\t\t\t\tvalue={item}\n\t\t\t\tchecked={!!this.data[item[this.key]?.toString() ?? \"\"]}\n\t\t\t/>\n\t\t)\n\t}\n\tstatic create<T>(key: keyof T): Selector<T> {\n\t\treturn new Selector(key)\n\t}\n}\n",":host {\n\tdisplay: grid;\n\tgrid-template-columns: auto auto;\n\tgrid-template-areas:\n\t\t\"header filter\"\n\t\t\"main main\";\n\tmargin-bottom: 50em;\n}\n\n:host>smoothly-display {\n\tfont-size: 2em;\n\tgrid-area: header;\n}\n\n:host>smoothly-filter {\n\tmargin-left: auto;\n\tgrid-area: filter;\n\theight: fit-content;\n}\n\n:host>* {\n\tmargin-bottom: 2rem;\n\tgrid-area: main;\n}\n\n:host>smoothly-table {\n\tgrid-template-columns: min-content repeat(calc(var(--columns) - 1), auto);\n}\n\nsmoothly-table>smoothly-table-row>smoothly-table-cell:nth-of-type(2),\n:host>smoothly-table>smoothly-table-head>smoothly-table-row>smoothly-table-cell:nth-of-type(4) {\n\tjustify-content: end;\n}\n","import { Component, ComponentWillLoad, h, Host, Listen, State } from \"@stencil/core\"\nimport { selectively } from \"selectively\"\nimport { http } from \"cloudly-http\"\nimport { Selector } from \"../../Selector\"\nimport { Cat } from \"./Root\"\n\n@Component({\n\ttag: \"smoothly-table-demo-filtered\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class TableDemoFiltered implements ComponentWillLoad {\n\t@State() criteria: selectively.Criteria = {}\n\t@State() cats?: Cat[] | false\n\t@State() selector: Selector<Cat> = Selector.create(\"breed\")\n\t@Listen(\"smoothlyFilter\")\n\tonFilterUpdate(event: CustomEvent<selectively.Criteria>) {\n\t\tevent.stopPropagation()\n\t\tthis.criteria = event.detail\n\t}\n\t@Listen(\"smoothlyInput\")\n\tsmoothlyInputHandler(event: CustomEvent<Record<string, any>>) {\n\t\tevent.stopPropagation()\n\t\tthis.selector = this.selector.handle(event.detail)\n\t}\n\n\tasync componentWillLoad(): Promise<void> {\n\t\tconst response = await http.fetch(\"https://catfact.ninja/breeds?limit=15\")\n\t\tthis.cats =\n\t\t\tresponse.status == 200 &&\n\t\t\t(await response.body).data.map((cat: any) => ({\n\t\t\t\t...cat,\n\t\t\t\tprice: [...cat.breed].reduce((r, c) => r + c.charCodeAt(0), 0),\n\t\t\t\tnested: { ...cat, names: names[cat.country] ?? [] },\n\t\t\t\tnames: names[cat.country] ?? [],\n\t\t\t}))\n\t}\n\n\trender() {\n\t\tconst cats = this.cats && selectively.filter(this.criteria, this.cats)\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-display type=\"text\" value=\"Filtered\" />\n\t\t\t\t<smoothly-filter>\n\t\t\t\t\t<smoothly-filter-toggle\n\t\t\t\t\t\tproperties={{ [\"nested.pattern\"]: \"Ticked\", breed: \"\" }}\n\t\t\t\t\t\ticon=\"add\"\n\t\t\t\t\t\ttooltip=\"Nested Ticked\"\n\t\t\t\t\t\tslot=\"bar\"\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-filter-toggle\n\t\t\t\t\t\tproperties={{ pattern: \"Ticked\", breed: \"\" }}\n\t\t\t\t\t\ticon=\"paw\"\n\t\t\t\t\t\ttooltip=\"Ticked cats\"\n\t\t\t\t\t\tslot=\"bar\"\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-filter-toggle\n\t\t\t\t\t\tproperties={{ breed: \"Bombay\", pattern: \"Solid\" }}\n\t\t\t\t\t\ticon=\"radio-button-on\"\n\t\t\t\t\t\ttooltip=\"Solid bombay cats\"\n\t\t\t\t\t\tslot=\"bar\"\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-filter-toggle\n\t\t\t\t\t\tproperties={{ pattern: \"Colorpoint\" }}\n\t\t\t\t\t\tnot\n\t\t\t\t\t\tactive\n\t\t\t\t\t\ticon=\"alert\"\n\t\t\t\t\t\ttooltip=\"Colored cats\"\n\t\t\t\t\t\tslot=\"bar\"\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-filter-select menuHeight=\"5items\" label=\"coat\" property=\"nested.coat\" slot=\"bar\" multiple={false}>\n\t\t\t\t\t\t{this.cats &&\n\t\t\t\t\t\t\tObject.values(\n\t\t\t\t\t\t\t\tthis.cats.reduce<Record<string, Cat>>(\n\t\t\t\t\t\t\t\t\t(r, cat) => (cat.nested ? { ...r, [cat.nested.coat]: cat } : r),\n\t\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t).map(\n\t\t\t\t\t\t\t\tcat =>\n\t\t\t\t\t\t\t\t\tcat.nested?.coat && (\n\t\t\t\t\t\t\t\t\t\t<smoothly-item slot=\"items\" value={cat.nested.coat}>\n\t\t\t\t\t\t\t\t\t\t\t{cat.nested.coat}\n\t\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t</smoothly-filter-select>\n\t\t\t\t\t<div slot=\"detail\">\n\t\t\t\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t\t\t\t<smoothly-filter-select menuHeight=\"5items\" label=\"coat\" property=\"nested.coat\" multiple>\n\t\t\t\t\t\t\t\t{this.cats &&\n\t\t\t\t\t\t\t\t\tObject.values(\n\t\t\t\t\t\t\t\t\t\tthis.cats.reduce<Record<string, Cat>>(\n\t\t\t\t\t\t\t\t\t\t\t(r, cat) => (cat.nested ? { ...r, [cat.nested.coat]: cat } : r),\n\t\t\t\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t).map(\n\t\t\t\t\t\t\t\t\t\tcat =>\n\t\t\t\t\t\t\t\t\t\t\tcat.nested?.coat && (\n\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-item slot=\"items\" value={cat.nested.coat}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{cat.nested.coat}\n\t\t\t\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</smoothly-filter-select>\n\t\t\t\t\t\t\t<smoothly-filter-select menuHeight=\"5items\" label=\"breed\" property=\"breed\" multiple={false}>\n\t\t\t\t\t\t\t\t{this.cats &&\n\t\t\t\t\t\t\t\t\tObject.values(\n\t\t\t\t\t\t\t\t\t\tthis.cats.reduce<Record<string, Cat>>((r, cat) => (cat.breed ? { ...r, [cat.breed]: cat } : r), {})\n\t\t\t\t\t\t\t\t\t).map(\n\t\t\t\t\t\t\t\t\t\tcat =>\n\t\t\t\t\t\t\t\t\t\t\tcat.breed && (\n\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-item slot=\"items\" value={cat.breed}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{cat.breed}\n\t\t\t\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</smoothly-filter-select>\n\t\t\t\t\t\t\t<smoothly-filter-select\n\t\t\t\t\t\t\t\tmenuHeight=\"5items\"\n\t\t\t\t\t\t\t\tlabel=\"names\"\n\t\t\t\t\t\t\t\tproperty=\"nested.names\"\n\t\t\t\t\t\t\t\tmultiple={true}\n\t\t\t\t\t\t\t\ttype=\"array\">\n\t\t\t\t\t\t\t\t{Object.keys(\n\t\t\t\t\t\t\t\t\tObject.values(names)\n\t\t\t\t\t\t\t\t\t\t.flat()\n\t\t\t\t\t\t\t\t\t\t.reduce((r, name) => ({ ...r, [name]: true }), {})\n\t\t\t\t\t\t\t\t).flatMap(name => (\n\t\t\t\t\t\t\t\t\t<smoothly-item slot=\"items\" value={name}>\n\t\t\t\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</smoothly-filter-select>\n\t\t\t\t\t\t\t<smoothly-filter-input label=\"Coat\" property=\"coat\" />\n\t\t\t\t\t\t\t<smoothly-filter-input label=\"Nested Coat\" property=\"nested.coat\" />\n\t\t\t\t\t\t</smoothly-form>\n\t\t\t\t\t</div>\n\t\t\t\t</smoothly-filter>\n\t\t\t\t{!cats ? (\n\t\t\t\t\t\"Failed to load data.\"\n\t\t\t\t) : (\n\t\t\t\t\t<smoothly-table columns={4}>\n\t\t\t\t\t\t<smoothly-table-head>\n\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>{this.selector.render(cats)}</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>Breed</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>Coat</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>Price</smoothly-table-cell>\n\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t</smoothly-table-head>\n\t\t\t\t\t\t{cats.map(cat => (\n\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>{this.selector.render(cat)}</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t{cat.breed}\n\t\t\t\t\t\t\t\t\t<div slot=\"detail\">Country: {cat.country}</div>\n\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t{cat.coat}\n\t\t\t\t\t\t\t\t\t<div slot=\"detail\">Pattern: {cat.pattern}</div>\n\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type=\"price\" value={cat.price} currency=\"SEK\" />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<smoothly-table-foot>\n\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell span={3}>\n\t\t\t\t\t\t\t\t\t<smoothly-display\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tvalue={`Selected: ${\n\t\t\t\t\t\t\t\t\t\t\tthis.selector.selected.length != 0 ? this.selector.selected.length : cats ? cats.length : \"?\"\n\t\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t</smoothly-table-foot>\n\t\t\t\t\t</smoothly-table>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n}\nconst names: Record<string, string[]> = {\n\t\"United States\": [\"bill\", \"bob\", \"brad\", \"joe\", \"molly\"],\n\tAustralia: [\"nigel\", \"bruce\", \"sheila\", \"brad\", \"shane\"],\n\t\"United Kingdom\": [\"nigel\", \"james\", \"molly\", \"shane\", \"bob\"],\n\tGreece: [\"dionysius\", \"demetrius\", \"polikarpos\"],\n}\n",":host {\n\tdisplay: block;\n}\n:host smoothly-display {\n\tdisplay: inline;\n}\n:host fake-cell-wrapper.span-2 {\n\tgrid-column: span 2;\n}\n:host>smoothly-display {\n\tdisplay: inherit;\n\tfont-size: 2em;\n}\n:host>* {\n\tmargin-bottom: 2rem;\n}\n/* Apply these styles to your element that is \n * wrapping one of these table components\n*/\n:host fake-group-wrapper,\n:host fake-row-wrapper,\n:host fake-expandable-row-wrapper {\n\tgrid-column: 1 / -1;\n\tdisplay: grid;\n\tgrid-template-columns: subgrid;\n}\n:host fake-cell-wrapper {\n\t/* ↓ This is the column span. only needed if span != 1 */\n\tgrid-column: span 1;\n\t/* it can be any display that is not contents */\n\tdisplay: block;\n}\n:host fake-expandable-cell-wrapper {\n\tdisplay: contents;\n}\n","import { Component, Fragment, h, Host, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-demo-group\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableDemoGroup {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-display type=\"text\" value=\"Group\" />\n\t\t\t\t<smoothly-table color=\"primary\" columns={2}>\n\t\t\t\t\t<smoothly-table-head>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-cell>Date</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>Total</smoothly-table-cell>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t</smoothly-table-head>\n\t\t\t\t\t<smoothly-table-body>\n\t\t\t\t\t\t<smoothly-table-row-group align>\n\t\t\t\t\t\t\t<smoothly-display slot={\"start\"} type=\"date\" value={\"2024-01-01\"} />\n\t\t\t\t\t\t\t<smoothly-display slot={\"end\"} type={\"price\"} currency={\"EUR\"} value={510} />\n\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"date-time\"} value={\"2024-01-01T01:37:00.000Z\"} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} currency={\"EUR\"} value={250} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-lazy slot={\"detail\"} content={<Fragment>Details of 2024-01-01T01:37:00.000Z</Fragment>} />\n\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"date-time\"} value={\"2024-01-01T13:37:00.000Z\"} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} currency={\"EUR\"} value={260} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-lazy slot={\"detail\"} content={<Fragment>Details of 2024-01-01T13:37:00.000Z</Fragment>} />\n\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t</smoothly-table-row-group>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-display type={\"date\"} value={\"2024-01-02\"} />\n\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} currency={\"EUR\"} value={130} />\n\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t<smoothly-table-row-group>\n\t\t\t\t\t\t\t<smoothly-display slot={\"start\"} type={\"date\"} value={\"2024-01-03\"} />\n\t\t\t\t\t\t\t<smoothly-display slot={\"end\"} type={\"price\"} currency={\"EUR\"} value={720} />\n\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"date-time\"} value={\"2024-01-03T01:37:00.000Z\"} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} currency={\"EUR\"} value={320} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-lazy slot={\"detail\"} content={<Fragment>Details of 2024-01-03T01:37:00.000Z</Fragment>} />\n\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"date-time\"} value={\"2024-01-03T13:37:00.000Z\"} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} currency={\"EUR\"} value={400} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-lazy slot={\"detail\"} content={<Fragment>Details of 2024-01-03T13:37:00.000Z</Fragment>} />\n\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t</smoothly-table-row-group>\n\t\t\t\t\t\t<smoothly-table-row-group>\n\t\t\t\t\t\t\t<smoothly-display slot={\"start\"} type={\"date\"} value={\"2024-01-04\"} />\n\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"date-time\"} value={\"2024-01-04T01:37:00.000Z\"} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} currency={\"EUR\"} value={320} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-lazy slot={\"detail\"} content={<Fragment>Details of 2024-01-04T01:37:00.000Z</Fragment>} />\n\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"date-time\"} value={\"2024-01-04T13:37:00.000Z\"} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} currency={\"EUR\"} value={400} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-lazy slot={\"detail\"} content={<Fragment>Details of 2024-01-04T13:37:00.000Z</Fragment>} />\n\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t</smoothly-table-row-group>\n\t\t\t\t\t\t<smoothly-table-row-group>\n\t\t\t\t\t\t\t<smoothly-display slot={\"end\"} type={\"price\"} currency={\"EUR\"} value={720} />\n\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"date-time\"} value={\"2024-01-05T01:37:00.000Z\"} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} currency={\"EUR\"} value={320} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-lazy slot={\"detail\"} content={<Fragment>Details of 2024-01-05T01:37:00.000Z</Fragment>} />\n\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"date-time\"} value={\"2024-01-05T13:37:00.000Z\"} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} currency={\"EUR\"} value={400} />\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-lazy slot={\"detail\"} content={<Fragment>Details of 2024-01-05T13:37:00.000Z</Fragment>} />\n\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t</smoothly-table-row-group>\n\t\t\t\t\t\t<fake-group-wrapper>\n\t\t\t\t\t\t\t<smoothly-table-row-group>\n\t\t\t\t\t\t\t\t<smoothly-display slot={\"start\"} type={\"date\"} value={\"2024-01-06\"} />\n\t\t\t\t\t\t\t\t<smoothly-display slot={\"end\"} type={\"price\"} currency={\"EUR\"} value={720} />\n\t\t\t\t\t\t\t\t<fake-row-wrapper>\n\t\t\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t\t\t<fake-cell-wrapper>\n\t\t\t\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-display type={\"date\"} value={\"2024-01-02\"} />\n\t\t\t\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t\t</fake-cell-wrapper>\n\t\t\t\t\t\t\t\t\t\t<fake-expandable-cell-wrapper>\n\t\t\t\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} currency={\"EUR\"} value={130} />\n\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-lazy\n\t\t\t\t\t\t\t\t\t\t\t\t\tslot={\"detail\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} value={100} currency={\"EUR\"} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\" + \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-display type={\"price\"} value={30} currency={\"EUR\"} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t\t</fake-expandable-cell-wrapper>\n\t\t\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t\t</fake-row-wrapper>\n\t\t\t\t\t\t\t\t<fake-expandable-row-wrapper>\n\t\t\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t\t\t<fake-cell-wrapper class=\"span-2\">\n\t\t\t\t\t\t\t\t\t\t\t<smoothly-table-cell span={2}>\n\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-display type={\"date\"} value={\"2024-01-07\"} />\n\t\t\t\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t\t</fake-cell-wrapper>\n\t\t\t\t\t\t\t\t\t\t<smoothly-lazy\n\t\t\t\t\t\t\t\t\t\t\tslot={\"detail\"}\n\t\t\t\t\t\t\t\t\t\t\tcontent={<smoothly-display type={\"date-time\"} value={\"2024-01-07T13:37:00.000Z\"} />}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t</fake-expandable-row-wrapper>\n\t\t\t\t\t\t\t</smoothly-table-row-group>\n\t\t\t\t\t\t</fake-group-wrapper>\n\t\t\t\t\t\t<smoothly-table-row-group>\n\t\t\t\t\t\t\t<smoothly-display slot={\"start\"} type={\"date\"} value={\"2024-01-08\"} />\n\t\t\t\t\t\t\t<smoothly-display slot={\"end\"} type={\"price\"} currency={\"EUR\"} value={720} />\n\t\t\t\t\t\t</smoothly-table-row-group>\n\t\t\t\t\t</smoothly-table-body>\n\t\t\t\t</smoothly-table>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","export const data = [\n\t{\n\t\tid: \"667d329f9f4934ecdc4bf9eb\",\n\t\tbalance: 1450.03,\n\t\tage: 35,\n\t\teyeColor: \"blue\",\n\t\tname: \"Glenda Ballard\",\n\t\tgender: \"female\",\n\t\tcompany: \"ZENTIA\",\n\t\tregistered: \"2022-06-13T12:39:15.908\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Manning Hunter\",\n\t\t\t\tage: 30,\n\t\t\t\tbalance: 1922.25,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Mcmillan Oliver\",\n\t\t\t\tage: 32,\n\t\t\t\tbalance: 2440.53,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Graham Garza\",\n\t\t\t\tage: 33,\n\t\t\t\tbalance: 3712.59,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Gabrielle Neal\",\n\t\t\t\tage: 36,\n\t\t\t\tbalance: 2519.25,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Dotson Duncan\",\n\t\t\t\tage: 29,\n\t\t\t\tbalance: 3274.11,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f4e07097167ef92a2\",\n\t\tbalance: 2488.91,\n\t\tage: 21,\n\t\teyeColor: \"blue\",\n\t\tname: \"Delaney Haley\",\n\t\tgender: \"male\",\n\t\tcompany: \"COMTOURS\",\n\t\tregistered: \"2018-05-11T08:58:36.197\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Elsa Cochran\",\n\t\t\t\tage: 28,\n\t\t\t\tbalance: 2009.45,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Willis Acevedo\",\n\t\t\t\tage: 33,\n\t\t\t\tbalance: 2198.01,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Slater Fowler\",\n\t\t\t\tage: 34,\n\t\t\t\tbalance: 2888.16,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Ashley Wilkerson\",\n\t\t\t\tage: 22,\n\t\t\t\tbalance: 1863.65,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Ola Lynch\",\n\t\t\t\tage: 23,\n\t\t\t\tbalance: 3649.29,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f14a0aeea0d70d5e7\",\n\t\tbalance: 1660.91,\n\t\tage: 36,\n\t\teyeColor: \"brown\",\n\t\tname: \"Riddle Reilly\",\n\t\tgender: \"male\",\n\t\tcompany: \"OPTIQUE\",\n\t\tregistered: \"2016-09-15T09:46:07.962\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Hazel Steele\",\n\t\t\t\tage: 33,\n\t\t\t\tbalance: 3129.64,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Golden Chapman\",\n\t\t\t\tage: 40,\n\t\t\t\tbalance: 2491,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Solomon Lopez\",\n\t\t\t\tage: 26,\n\t\t\t\tbalance: 1382.71,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Castro Booth\",\n\t\t\t\tage: 23,\n\t\t\t\tbalance: 1991.6,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Hernandez Bartlett\",\n\t\t\t\tage: 25,\n\t\t\t\tbalance: 2842.85,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 5,\n\t\t\t\tname: \"Lindsay Wagner\",\n\t\t\t\tage: 20,\n\t\t\t\tbalance: 3636.6,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f953aaaba19bea98b\",\n\t\tbalance: 1381.34,\n\t\tage: 24,\n\t\teyeColor: \"brown\",\n\t\tname: \"Diana Burns\",\n\t\tgender: \"female\",\n\t\tcompany: \"CODACT\",\n\t\tregistered: \"2023-06-02T09:07:46.478\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Tamika Merritt\",\n\t\t\t\tage: 25,\n\t\t\t\tbalance: 2401.06,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Ballard Buckner\",\n\t\t\t\tage: 36,\n\t\t\t\tbalance: 1986.13,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Stokes Ramirez\",\n\t\t\t\tage: 25,\n\t\t\t\tbalance: 3521.75,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Wood Aguirre\",\n\t\t\t\tage: 36,\n\t\t\t\tbalance: 1186.13,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Sophia Bowen\",\n\t\t\t\tage: 25,\n\t\t\t\tbalance: 2750.95,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 5,\n\t\t\t\tname: \"Wilkinson Gordon\",\n\t\t\t\tage: 34,\n\t\t\t\tbalance: 3864.91,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f6a753976e21e23b5\",\n\t\tbalance: 3054.74,\n\t\tage: 22,\n\t\teyeColor: \"brown\",\n\t\tname: \"Jackson Burnett\",\n\t\tgender: \"male\",\n\t\tcompany: \"COMCUR\",\n\t\tregistered: \"2019-06-05T09:17:31.312\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Atkinson Alston\",\n\t\t\t\tage: 37,\n\t\t\t\tbalance: 1025.72,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Delia Ford\",\n\t\t\t\tage: 34,\n\t\t\t\tbalance: 3061.87,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Marylou Hanson\",\n\t\t\t\tage: 33,\n\t\t\t\tbalance: 3255.77,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Kelly Ray\",\n\t\t\t\tage: 32,\n\t\t\t\tbalance: 3671.73,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Valdez Weeks\",\n\t\t\t\tage: 38,\n\t\t\t\tbalance: 3911.29,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 5,\n\t\t\t\tname: \"Hayes Crawford\",\n\t\t\t\tage: 20,\n\t\t\t\tbalance: 3194.97,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329fc4805cafac37861e\",\n\t\tbalance: 1173.94,\n\t\tage: 20,\n\t\teyeColor: \"green\",\n\t\tname: \"Stephenson Mcleod\",\n\t\tgender: \"male\",\n\t\tcompany: \"POLARAX\",\n\t\tregistered: \"2015-12-10T07:36:10.267\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Kristine Newton\",\n\t\t\t\tage: 26,\n\t\t\t\tbalance: 2713.9,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Craft Patel\",\n\t\t\t\tage: 40,\n\t\t\t\tbalance: 3822.36,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Cochran French\",\n\t\t\t\tage: 30,\n\t\t\t\tbalance: 1535.91,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Bowen Vinson\",\n\t\t\t\tage: 29,\n\t\t\t\tbalance: 2787.01,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Adrian Ewing\",\n\t\t\t\tage: 21,\n\t\t\t\tbalance: 2319.14,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 5,\n\t\t\t\tname: \"Jimmie Mathews\",\n\t\t\t\tage: 31,\n\t\t\t\tbalance: 2869.09,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 6,\n\t\t\t\tname: \"Dixon Daugherty\",\n\t\t\t\tage: 24,\n\t\t\t\tbalance: 1496.25,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f76318162fe27b208\",\n\t\tbalance: 2977.01,\n\t\tage: 24,\n\t\teyeColor: \"blue\",\n\t\tname: \"Claudette Christensen\",\n\t\tgender: \"female\",\n\t\tcompany: \"PIVITOL\",\n\t\tregistered: \"2021-08-08T07:08:00.936\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Parker Lamb\",\n\t\t\t\tage: 36,\n\t\t\t\tbalance: 3409.27,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Kennedy Bryan\",\n\t\t\t\tage: 34,\n\t\t\t\tbalance: 3904.27,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Johanna Barton\",\n\t\t\t\tage: 20,\n\t\t\t\tbalance: 3613.79,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Vazquez Melendez\",\n\t\t\t\tage: 26,\n\t\t\t\tbalance: 3692.31,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Mendoza Wooten\",\n\t\t\t\tage: 31,\n\t\t\t\tbalance: 2175.64,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 5,\n\t\t\t\tname: \"Kelli Hicks\",\n\t\t\t\tage: 21,\n\t\t\t\tbalance: 1326.46,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 6,\n\t\t\t\tname: \"Jill Sanchez\",\n\t\t\t\tage: 36,\n\t\t\t\tbalance: 3214.36,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329ff80a953b7f0a73d2\",\n\t\tbalance: 1993.09,\n\t\tage: 20,\n\t\teyeColor: \"green\",\n\t\tname: \"Buckley Gutierrez\",\n\t\tgender: \"male\",\n\t\tcompany: \"HOUSEDOWN\",\n\t\tregistered: \"2015-04-02T04:53:42.985\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Leanne Pennington\",\n\t\t\t\tage: 37,\n\t\t\t\tbalance: 3111.48,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Juarez Hoover\",\n\t\t\t\tage: 29,\n\t\t\t\tbalance: 2000.62,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Navarro Mccormick\",\n\t\t\t\tage: 22,\n\t\t\t\tbalance: 3083.93,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Berry Curry\",\n\t\t\t\tage: 31,\n\t\t\t\tbalance: 3181.41,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Josefa Howard\",\n\t\t\t\tage: 30,\n\t\t\t\tbalance: 3744.56,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f4f53eb59f0512361\",\n\t\tbalance: 2374.56,\n\t\tage: 34,\n\t\teyeColor: \"brown\",\n\t\tname: \"Sallie Mccoy\",\n\t\tgender: \"female\",\n\t\tcompany: \"REALYSIS\",\n\t\tregistered: \"2018-05-11T05:26:36.604\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Martina Kirby\",\n\t\t\t\tage: 22,\n\t\t\t\tbalance: 1278.07,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Macias Lyons\",\n\t\t\t\tage: 20,\n\t\t\t\tbalance: 2991.44,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Alta Chaney\",\n\t\t\t\tage: 26,\n\t\t\t\tbalance: 1032.71,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"White Manning\",\n\t\t\t\tage: 39,\n\t\t\t\tbalance: 3103.16,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Mason Rosa\",\n\t\t\t\tage: 31,\n\t\t\t\tbalance: 1384.77,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 5,\n\t\t\t\tname: \"Meghan Martin\",\n\t\t\t\tage: 27,\n\t\t\t\tbalance: 1982.09,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f8a6cf9319bfdbd30\",\n\t\tbalance: 3220.94,\n\t\tage: 23,\n\t\teyeColor: \"blue\",\n\t\tname: \"Huff Hull\",\n\t\tgender: \"male\",\n\t\tcompany: \"GADTRON\",\n\t\tregistered: \"2023-02-14T01:58:56.938\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Rochelle Maldonado\",\n\t\t\t\tage: 28,\n\t\t\t\tbalance: 1548.77,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Diann Conrad\",\n\t\t\t\tage: 32,\n\t\t\t\tbalance: 1721.33,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Hope Jarvis\",\n\t\t\t\tage: 38,\n\t\t\t\tbalance: 1265.24,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Dixie Huffman\",\n\t\t\t\tage: 31,\n\t\t\t\tbalance: 3764.23,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Erickson Porter\",\n\t\t\t\tage: 27,\n\t\t\t\tbalance: 2958.59,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 5,\n\t\t\t\tname: \"Christensen Thomas\",\n\t\t\t\tage: 21,\n\t\t\t\tbalance: 1233.2,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f1415ecb1efb216cc\",\n\t\tbalance: 2907.83,\n\t\tage: 26,\n\t\teyeColor: \"brown\",\n\t\tname: \"Hancock Eaton\",\n\t\tgender: \"male\",\n\t\tcompany: \"POLARIUM\",\n\t\tregistered: \"2018-02-25T01:03:11.860\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Flynn Gilmore\",\n\t\t\t\tage: 27,\n\t\t\t\tbalance: 2582.57,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Kline Hickman\",\n\t\t\t\tage: 31,\n\t\t\t\tbalance: 3853.99,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Hatfield Owens\",\n\t\t\t\tage: 40,\n\t\t\t\tbalance: 2016.57,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Michael Carson\",\n\t\t\t\tage: 31,\n\t\t\t\tbalance: 1293.03,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Strickland Lowery\",\n\t\t\t\tage: 23,\n\t\t\t\tbalance: 1367.06,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 5,\n\t\t\t\tname: \"Georgia Chavez\",\n\t\t\t\tage: 37,\n\t\t\t\tbalance: 2957.48,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 6,\n\t\t\t\tname: \"Alma Berry\",\n\t\t\t\tage: 26,\n\t\t\t\tbalance: 2357.01,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f722eb89c82b56dec\",\n\t\tbalance: 1602.02,\n\t\tage: 35,\n\t\teyeColor: \"brown\",\n\t\tname: \"Lorrie Mcpherson\",\n\t\tgender: \"female\",\n\t\tcompany: \"PYRAMIA\",\n\t\tregistered: \"2018-12-07T05:18:34.223\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Bridgett Everett\",\n\t\t\t\tage: 37,\n\t\t\t\tbalance: 1438.53,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Carlene Farley\",\n\t\t\t\tage: 25,\n\t\t\t\tbalance: 1410.54,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Phoebe Mendez\",\n\t\t\t\tage: 24,\n\t\t\t\tbalance: 1979.36,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Louella Cox\",\n\t\t\t\tage: 36,\n\t\t\t\tbalance: 3430.55,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Velez Pugh\",\n\t\t\t\tage: 30,\n\t\t\t\tbalance: 3436.5,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329ff853efe8c4e0a454\",\n\t\tbalance: 2654.19,\n\t\tage: 36,\n\t\teyeColor: \"brown\",\n\t\tname: \"Luann Jennings\",\n\t\tgender: \"female\",\n\t\tcompany: \"NAXDIS\",\n\t\tregistered: \"2014-02-18T04:25:50.302\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Walton Gentry\",\n\t\t\t\tage: 26,\n\t\t\t\tbalance: 1328.43,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Lucy Koch\",\n\t\t\t\tage: 23,\n\t\t\t\tbalance: 2134.54,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Toni Meyers\",\n\t\t\t\tage: 31,\n\t\t\t\tbalance: 2572.29,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Vicki Frost\",\n\t\t\t\tage: 39,\n\t\t\t\tbalance: 3299.36,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Meadows Baker\",\n\t\t\t\tage: 21,\n\t\t\t\tbalance: 2323.75,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f84f3bfbfcc763674\",\n\t\tbalance: 2528.48,\n\t\tage: 28,\n\t\teyeColor: \"brown\",\n\t\tname: \"Michelle Carey\",\n\t\tgender: \"female\",\n\t\tcompany: \"IDEGO\",\n\t\tregistered: \"2016-10-01T04:25:07.187\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Roman Sanders\",\n\t\t\t\tage: 40,\n\t\t\t\tbalance: 3551.16,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Amanda Herman\",\n\t\t\t\tage: 22,\n\t\t\t\tbalance: 3928.02,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Kay Montgomery\",\n\t\t\t\tage: 26,\n\t\t\t\tbalance: 3241.16,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Valentine Wilder\",\n\t\t\t\tage: 23,\n\t\t\t\tbalance: 1413.31,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Brigitte Nixon\",\n\t\t\t\tage: 32,\n\t\t\t\tbalance: 3113.39,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f4359ec766055a765\",\n\t\tbalance: 3732.65,\n\t\tage: 30,\n\t\teyeColor: \"brown\",\n\t\tname: \"Beach Maddox\",\n\t\tgender: \"male\",\n\t\tcompany: \"GEEKETRON\",\n\t\tregistered: \"2021-03-24T11:55:31.135\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Candy Gibbs\",\n\t\t\t\tage: 20,\n\t\t\t\tbalance: 2602.28,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Alissa Rosario\",\n\t\t\t\tage: 36,\n\t\t\t\tbalance: 1958.84,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Imelda Harmon\",\n\t\t\t\tage: 23,\n\t\t\t\tbalance: 3817.79,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Addie Serrano\",\n\t\t\t\tage: 35,\n\t\t\t\tbalance: 3154.77,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Jordan Shields\",\n\t\t\t\tage: 26,\n\t\t\t\tbalance: 3566.08,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f9ef3817d307e2583\",\n\t\tbalance: 2151.52,\n\t\tage: 32,\n\t\teyeColor: \"brown\",\n\t\tname: \"Whitney Hood\",\n\t\tgender: \"male\",\n\t\tcompany: \"EVENTAGE\",\n\t\tregistered: \"2021-06-17T12:11:56.473\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Noel Walsh\",\n\t\t\t\tage: 29,\n\t\t\t\tbalance: 2790.49,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Barlow Rodriquez\",\n\t\t\t\tage: 35,\n\t\t\t\tbalance: 1664.23,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Nash Keith\",\n\t\t\t\tage: 23,\n\t\t\t\tbalance: 2285.17,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Chavez Webster\",\n\t\t\t\tage: 23,\n\t\t\t\tbalance: 3381.55,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Herminia Chen\",\n\t\t\t\tage: 24,\n\t\t\t\tbalance: 1064.96,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 5,\n\t\t\t\tname: \"Susana Glass\",\n\t\t\t\tage: 22,\n\t\t\t\tbalance: 2749.35,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f9bd581700cac2dbc\",\n\t\tbalance: 2209.77,\n\t\tage: 40,\n\t\teyeColor: \"blue\",\n\t\tname: \"Tasha Mosley\",\n\t\tgender: \"female\",\n\t\tcompany: \"QUIZKA\",\n\t\tregistered: \"2014-05-11T11:44:55.071\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Larsen Wall\",\n\t\t\t\tage: 22,\n\t\t\t\tbalance: 1523.28,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Holmes Hopkins\",\n\t\t\t\tage: 35,\n\t\t\t\tbalance: 1112.68,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Giles Espinoza\",\n\t\t\t\tage: 21,\n\t\t\t\tbalance: 2550.95,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Aimee Rosales\",\n\t\t\t\tage: 26,\n\t\t\t\tbalance: 2195.06,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Karin Little\",\n\t\t\t\tage: 28,\n\t\t\t\tbalance: 2896.23,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 5,\n\t\t\t\tname: \"Angelita Mcfadden\",\n\t\t\t\tage: 25,\n\t\t\t\tbalance: 1051.15,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f6e2dbb2002be4b9e\",\n\t\tbalance: 3298.23,\n\t\tage: 31,\n\t\teyeColor: \"brown\",\n\t\tname: \"Schneider Walker\",\n\t\tgender: \"male\",\n\t\tcompany: \"BLEENDOT\",\n\t\tregistered: \"2020-02-11T08:57:29.025\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Helena William\",\n\t\t\t\tage: 34,\n\t\t\t\tbalance: 2579.69,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Silva Ware\",\n\t\t\t\tage: 30,\n\t\t\t\tbalance: 2683.79,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Enid Oconnor\",\n\t\t\t\tage: 22,\n\t\t\t\tbalance: 1816.46,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Knowles Goff\",\n\t\t\t\tage: 24,\n\t\t\t\tbalance: 1675.75,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Carolina Greer\",\n\t\t\t\tage: 29,\n\t\t\t\tbalance: 3337.27,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f8c548510c5d4f5ce\",\n\t\tbalance: 2823.51,\n\t\tage: 35,\n\t\teyeColor: \"green\",\n\t\tname: \"Mayo Shepard\",\n\t\tgender: \"male\",\n\t\tcompany: \"KIOSK\",\n\t\tregistered: \"2024-02-24T12:45:57.463\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Olga Hester\",\n\t\t\t\tage: 21,\n\t\t\t\tbalance: 3878.21,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Rogers Sampson\",\n\t\t\t\tage: 23,\n\t\t\t\tbalance: 2669.62,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Myra Johnson\",\n\t\t\t\tage: 27,\n\t\t\t\tbalance: 3489.32,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Mcfadden Phillips\",\n\t\t\t\tage: 20,\n\t\t\t\tbalance: 2758.8,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Park Moody\",\n\t\t\t\tage: 23,\n\t\t\t\tbalance: 3519.08,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: \"667d329f6574ada6f090fd54\",\n\t\tbalance: 2631.69,\n\t\tage: 40,\n\t\teyeColor: \"blue\",\n\t\tname: \"Avis Carlson\",\n\t\tgender: \"female\",\n\t\tcompany: \"LINGOAGE\",\n\t\tregistered: \"2016-08-08T08:59:54.752\",\n\t\tfriends: [\n\t\t\t{\n\t\t\t\tid: 0,\n\t\t\t\tname: \"Mcdonald Dyer\",\n\t\t\t\tage: 25,\n\t\t\t\tbalance: 2262.39,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\tname: \"Irene Baldwin\",\n\t\t\t\tage: 29,\n\t\t\t\tbalance: 1291.1,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\tname: \"Rollins Anderson\",\n\t\t\t\tage: 26,\n\t\t\t\tbalance: 1437.04,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\tname: \"Juliana Larson\",\n\t\t\t\tage: 29,\n\t\t\t\tbalance: 3492.22,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 4,\n\t\t\t\tname: \"Michele Gardner\",\n\t\t\t\tage: 20,\n\t\t\t\tbalance: 2003.15,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 5,\n\t\t\t\tname: \"Vang Cardenas\",\n\t\t\t\tage: 31,\n\t\t\t\tbalance: 1855.52,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 6,\n\t\t\t\tname: \"Puckett Hubbard\",\n\t\t\t\tage: 21,\n\t\t\t\tbalance: 1659.92,\n\t\t\t},\n\t\t],\n\t},\n]\n",":host {\n\tdisplay: block;\n}\n:host>smoothly-display {\n\tfont-size: 2em;\n}\n:host>* {\n\tmargin-bottom: 2rem;\n}\n:host smoothly-table-expandable-row {\n\tposition: relative;\n}\n","import { Component, h, Host, State, VNode } from \"@stencil/core\"\nimport { data } from \"./data\"\n\n@Component({\n\ttag: \"smoothly-table-demo-nested-no-cell\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableDemoNestedNoCell {\n\t// Simulate loading state\n\t@State() loadingIndex?: number\n\t@State() loadedRows: number[] = []\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-display type=\"text\" value=\"Nested\" />\n\t\t\t\t<smoothly-table color=\"primary\" columns={8}>\n\t\t\t\t\t<smoothly-table-head>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">Id</div>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">Registered</div>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">Name</div>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">Age</div>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">Balance</div>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">EyeColor</div>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">Gender</div>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">Company</div>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t</smoothly-table-head>\n\t\t\t\t\t<smoothly-table-body>\n\t\t\t\t\t\t{data.map((entry, index) => (\n\t\t\t\t\t\t\t<smoothly-table-expandable-row\n\t\t\t\t\t\t\t\tonSmoothlyTableExpandableRowChange={event => {\n\t\t\t\t\t\t\t\t\tif (event.detail) {\n\t\t\t\t\t\t\t\t\t\tthis.loadingIndex = index\n\t\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\t\tthis.loadingIndex = undefined\n\t\t\t\t\t\t\t\t\t\t\tthis.loadedRows = [...this.loadedRows, index]\n\t\t\t\t\t\t\t\t\t\t}, 1500)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t{this.loadingIndex === index && <smoothly-spinner overlay size=\"small\" />}\n\t\t\t\t\t\t\t\t{this.loadedRows.includes(index) && (\n\t\t\t\t\t\t\t\t\t<smoothly-table-demo-nested-no-cell-inner color=\"secondary\" data={entry.friends} slot={\"detail\"} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{entry.id}</div>\n\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{entry.registered}</div>\n\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{entry.name}</div>\n\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{entry.age}</div>\n\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{entry.balance}</div>\n\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{entry.eyeColor}</div>\n\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{entry.gender}</div>\n\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{entry.company}</div>\n\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</smoothly-table-body>\n\t\t\t\t\t<smoothly-table-foot>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">Footer Cell</div>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">Footer Cell</div>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t</smoothly-table-foot>\n\t\t\t\t</smoothly-table>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n\tmargin: 1em auto;\n\twidth: 60%;\n}\n","import { Component, h, Host, Prop, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-demo-nested-no-cell-inner\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableDemoNestedNoCellInner {\n\t@Prop() data?: {\n\t\tid: number\n\t\tname: string\n\t\tage: number\n\t\tbalance: number\n\t}[]\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-table columns={4}>\n\t\t\t\t\t<smoothly-table-head>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">Id</div>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">Name</div>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">Age</div>\n\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">Balance</div>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t</smoothly-table-head>\n\t\t\t\t\t<smoothly-table-body>\n\t\t\t\t\t\t{this.data?.map(entry => (\n\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{entry.id}</div>\n\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{entry.name}</div>\n\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{entry.age}</div>\n\t\t\t\t\t\t\t\t<div class=\"smoothly-table-cell\">{entry.balance}</div>\n\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</smoothly-table-body>\n\t\t\t\t</smoothly-table>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n:host>smoothly-display {\n\tfont-size: 2em;\n}\n:host>* {\n\tmargin-bottom: 2rem;\n}\n","import { Component, h, Host, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-demo-simple\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableDemoSimple {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-display type=\"text\" value=\"Simple\" />\n\t\t\t\t<smoothly-table color=\"primary\" columns={2}>\n\t\t\t\t\t<smoothly-table-head>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-cell>Breed</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>Coat</smoothly-table-cell>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t</smoothly-table-head>\n\t\t\t\t\t<smoothly-table-body>\n\t\t\t\t\t\t{cats.map(cat => (\n\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t{cat.breed}\n\t\t\t\t\t\t\t\t\t<div slot=\"detail\">\n\t\t\t\t\t\t\t\t\t\tCountry:\n\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t{cat.country}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t{cat.coat}\n\t\t\t\t\t\t\t\t\t<div slot=\"detail\">Pattern: {cat.pattern}</div>\n\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-cell>Cell5</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\tExpandable Cell\n\t\t\t\t\t\t\t\t<div slot={\"detail\"}>Content of the expandable cell</div>\n\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\tExpandable Cell 1<div slot={\"detail\"}>Content of the expandable cell 1</div>\n\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\tExpandable Cell 2<div slot={\"detail\"}>Content of the expandable cell 2</div>\n\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t</smoothly-table-body>\n\t\t\t\t\t<smoothly-table-foot>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-cell>Footer Cell</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>Footer Cell</smoothly-table-cell>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t</smoothly-table-foot>\n\t\t\t\t</smoothly-table>\n\t\t\t</Host>\n\t\t)\n\t}\n}\nexport interface Cat {\n\tbreed: string\n\tcountry: string\n\torigin: string\n\tcoat: string\n\tpattern: string\n}\nconst cats: Cat[] = [\n\t{\n\t\tbreed: \"Abyssinian\",\n\t\tcountry: \"Ethiopia\",\n\t\torigin: \"Natural/Standard\",\n\t\tcoat: \"Short\",\n\t\tpattern: \"Ticked\",\n\t},\n\t{\n\t\tbreed: \"Aegean\",\n\t\tcountry: \"Greece\",\n\t\torigin: \"Natural/Standard\",\n\t\tcoat: \"Semi-long\",\n\t\tpattern: \"Bi- or tri-colored\",\n\t},\n\t{\n\t\tbreed: \"American Curl\",\n\t\tcountry: \"United States\",\n\t\torigin: \"Mutation\",\n\t\tcoat: \"Short/Long\",\n\t\tpattern: \"All\",\n\t},\n\t{\n\t\tbreed: \"American Bobtail\",\n\t\tcountry: \"United States\",\n\t\torigin: \"Mutation\",\n\t\tcoat: \"Short/Long\",\n\t\tpattern: \"All\",\n\t},\n\t{\n\t\tbreed: \"American Shorthair\",\n\t\tcountry: \"United States\",\n\t\torigin: \"Natural\",\n\t\tcoat: \"Short\",\n\t\tpattern: \"All but colorpoint\",\n\t},\n\t{\n\t\tbreed: \"American Wirehair\",\n\t\tcountry: \"United States\",\n\t\torigin: \"Mutation\",\n\t\tcoat: \"Rex\",\n\t\tpattern: \"All but colorpoint\",\n\t},\n\t{\n\t\tbreed: \"Arabian Mau\",\n\t\tcountry: \"Arabian Peninsula\",\n\t\torigin: \"Natural\",\n\t\tcoat: \"Short\",\n\t\tpattern: \"\",\n\t},\n\t{\n\t\tbreed: \"Australian Mist\",\n\t\tcountry: \"Australia\",\n\t\torigin: \"Crossbreed\",\n\t\tcoat: \"Short\",\n\t\tpattern: \"Spotted and Classic tabby\",\n\t},\n\t{\n\t\tbreed: \"Asian\",\n\t\tcountry: \"developed in the United Kingdom (founding stock from Asia)\",\n\t\torigin: \"\",\n\t\tcoat: \"Short\",\n\t\tpattern: \"Evenly solid\",\n\t},\n\t{\n\t\tbreed: \"Asian Semi-longhair\",\n\t\tcountry: \"United Kingdom\",\n\t\torigin: \"Crossbreed\",\n\t\tcoat: \"Semi-long\",\n\t\tpattern: \"Solid\",\n\t},\n]\n","@import \"../arrow.scss\";\n\n:host {\n\tdisplay: contents;\n}\n\n:host > div.content {\n\tgrid-column: span var(--smoothly-table-cell-span, 1);\n\tdisplay: flex;\n\tpadding-inline: var(--smoothly-table-cell-padding-inline, 1.1rem);\n\tmin-height: var(--smoothly-table-cell-min-height, 2.75rem);\n\tbox-sizing: border-box;\n\talign-items: center;\n\twhite-space: nowrap;\n\t@include arrow;\n\n\t&:hover {\n\t\t@include arrow-hover;\n\t\tbackground-color: rgb(var(--smoothly-table-hover-background));\n\t\tcolor: rgb(var(--smoothly-table-hover-foreground));\n\t\tstroke: rgb(var(--smoothly-table-hover-foreground));\n\t\tfill: rgb(var(--smoothly-table-hover-foreground));\n\t}\n}\n\n:host[open] > div.content {\n\t@include arrow-open;\n}\n\n:host > div:first-child {\n\tcursor: pointer;\n}\n\n:host > div.smoothly-table-detail {\n\tgrid-column: 1 / -1;\n\tgrid-row: 2;\n\tposition: relative;\n\tpadding-block: var(--smoothly-table-detail-padding-block, 0.5rem);\n\tpadding-inline: var(--smoothly-table-detail-padding-inline, 1.1rem);\n}\n\n:host[open] > div.content {\n\tbox-shadow: 1px 1px 1px -1px rgb(var(--smoothly-table-border)) inset,\n\t\t-3px -1px 1px -3px rgb(var(--smoothly-table-border)) inset;\n}\n\n:host[open] > div {\n\tbackground-color: rgb(var(--smoothly-table-expanded-background));\n\tcolor: rgb(var(--smoothly-table-expanded-foreground));\n\tstroke: rgb(var(--smoothly-table-expanded-foreground));\n\tfill: rgb(var(--smoothly-table-expanded-foreground));\n}\n\n:host:not([open]) > div.smoothly-table-detail {\n\tdisplay: none;\n}\n\n:host > div.smoothly-table-detail::before {\n\tcontent: \"\";\n\tposition: absolute;\n\tdisplay: flex;\n\tbox-sizing: border-box;\n\ttop: 0;\n\tbottom: 0;\n\tleft: -1em;\n\twidth: 1em;\n\tbackground-color: rgb(var(--smoothly-table-expanded-background));\n\tborder-left: 0.3em solid rgb(var(--smoothly-table-detail-border, var(--smoothly-table-border)));\n\tbox-shadow: 2px 0px 0px 0px rgb(var(--smoothly-table-expanded-background)),\n\t\t0px 0px 1px 0px rgb(var(--smoothly-table-border));\n}\n\n:host > div.smoothly-table-detail::after {\n\tcontent: \"\";\n\tposition: absolute;\n\tdisplay: flex;\n\ttop: 0;\n\tbottom: 0;\n\tright: -1em;\n\twidth: 1em;\n\tbackground-color: rgb(var(--smoothly-table-expanded-background));\n\tbox-shadow: -2px 0px 0px 0px rgb(var(--smoothly-table-expanded-background)),\n\t\t0px 0px 1px 0px rgb(var(--smoothly-table-border));\n}\n","import { Component, Event, EventEmitter, h, Host, Method, Prop, VNode, Watch } from \"@stencil/core\"\n@Component({\n\ttag: \"smoothly-table-expandable-cell\",\n\tstyleUrl: \"style.scss\",\n\tscoped: true,\n})\nexport class SmoothlyTableExpandableCell {\n\tprivate detailElement?: HTMLDivElement\n\t@Prop({ reflect: true }) span?: number = 1\n\t@Prop({ mutable: true, reflect: true }) open = false\n\t@Event() smoothlyTableExpandableCellChange: EventEmitter<boolean>\n\t@Event() smoothlyTableExpandableCellRegister: EventEmitter<void>\n\tcomponentWillLoad(): void {\n\t\tthis.smoothlyTableExpandableCellRegister.emit()\n\t}\n\t@Method()\n\tasync close(): Promise<void> {\n\t\tthis.open = false\n\t}\n\tclickHandler(event: MouseEvent): void {\n\t\tconst clickedOnDetail = this.detailElement && event.composedPath().includes(this.detailElement)\n\t\tif (!clickedOnDetail) {\n\t\t\tconst selection = window.getSelection()?.toString().trim()\n\t\t\tif ((selection?.length ?? 0) == 0)\n\t\t\t\tthis.open = !this.open\n\t\t}\n\t}\n\t@Watch(\"open\")\n\topenChange() {\n\t\tthis.smoothlyTableExpandableCellChange.emit(this.open)\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tstyle={{ \"--smoothly-table-cell-span\": this.span?.toString(10) }}\n\t\t\t\tonClick={(e: MouseEvent) => this.clickHandler(e)}>\n\t\t\t\t<div class={\"content\"}>\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t\t<div class={\"smoothly-table-detail\"} ref={(el: HTMLDivElement) => (this.detailElement = el)}>\n\t\t\t\t\t<slot name={\"detail\"} />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../arrow.scss\";\n\n:host {\n\tgrid-column: 1 / -1;\n\tdisplay: grid;\n\tgrid-template-columns: subgrid;\n\tgrid-template-rows: auto 0fr;\n\tbox-shadow: 0px 1px 1px -1px rgb(var(--smoothly-table-border));\n}\n\n:host::slotted(.smoothly-table-cell) {\n\tgrid: subgrid;\n\tcursor: pointer;\n\tgrid-column: span var(--smoothly-table-cell-span, 1);\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-inline: var(--smoothly-table-cell-padding-inline, 1.1rem);\n\tmin-height: var(--smoothly-table-cell-min-height, 2.75rem);\n\twhite-space: nowrap;\n}\n\n:host:has(>.smoothly-table-cell:hover) {\n\tbackground-color: rgb(var(--smoothly-table-hover-background));\n\tcolor: rgb(var(--smoothly-table-hover-foreground));\n}\n\n:host[open] {\n\tbackground-color: rgb(var(--smoothly-table-expanded-background));\n\tcolor: rgb(var(--smoothly-table-expanded-foreground));\n\tgrid-template-rows: auto 1fr;\n\tbox-shadow: 0px 1px 1px -1px rgb(var(--smoothly-table-border)),\n\t\t0px 0px 1px rgb(var(--smoothly-table-border)) inset;\n\tgrid-template-rows: 0fr 1fr;\n}\n\n:host(:not([open])) > div.smoothly-table-detail {\n\tdisplay: none;\n}\n\n:host > div.smoothly-table-detail {\n\tgrid-column: 1 / -1;\n\tcursor: default;\n\tposition: relative;\n\toverflow: hidden;\n\tbackground-color: rgb(var(--smoothly-table-expanded-background));\n\tcolor: rgb(var(--smoothly-table-expanded-foreground));\n}\n\n:host > .smoothly-table-cell:first-of-type {\n\t@include arrow;\n}\n\n:host:has(>.smoothly-table-cell:hover) > .smoothly-table-cell:first-of-type {\n\t@include arrow-hover;\n}\n\n:host[open] > .smoothly-table-cell:first-of-type {\n\t@include arrow-open;\n}\n\n:host[open] > div.smoothly-table-detail {\n\toverflow: visible;\n\tpadding-block: var(--smoothly-table-detail-padding-block, 0.5rem);\n\tpadding-inline: var(--smoothly-table-detail-padding-inline, 1.1rem);\n}\n\n:host > div.smoothly-table-detail::before {\n\tcontent: \"\";\n\tposition: absolute;\n\tdisplay: flex;\n\tbox-sizing: border-box;\n\ttop: 0;\n\tbottom: 0;\n\tleft: -1em;\n\twidth: 1em;\n\tbackground-color: rgb(var(--smoothly-table-expanded-background));\n\tborder-left: 0.3em solid rgb(var(--smoothly-table-detail-border, var(--smoothly-table-border)));\n\tbox-shadow: 2px 0px 0px 0px rgb(var(--smoothly-table-expanded-background)),\n\t\t0px 0px 1px 0px rgb(var(--smoothly-table-border));\n}\n\n:host > div.smoothly-table-detail::after {\n\tcontent: \"\";\n\tposition: absolute;\n\tdisplay: flex;\n\ttop: 0;\n\tbottom: 0;\n\tright: -1em;\n\twidth: 1em;\n\tbackground-color: rgb(var(--smoothly-table-expanded-background));\n\tbox-shadow: -2px 0px 0px 0px rgb(var(--smoothly-table-expanded-background)),\n\t\t0px 0px 1px 0px rgb(var(--smoothly-table-border));\n}\n","import { Component, Event, EventEmitter, h, Host, Prop, VNode, Watch } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-expandable-row\",\n\tstyleUrl: \"style.scss\",\n\tscoped: true,\n})\nexport class SmoothlyTableExpandableRow {\n\tprivate div?: HTMLDivElement\n\t@Prop({ mutable: true, reflect: true }) open = false\n\t@Event() smoothlyTableExpandableRowChange: EventEmitter<boolean>\n\n\tclickHandler(event: MouseEvent): void {\n\t\tconst clickedOnDetail = this.div && event.composedPath().includes(this.div)\n\t\tif (!clickedOnDetail) {\n\t\t\tconst selection = window.getSelection()?.toString().trim()\n\t\t\tif ((selection?.length ?? 0) == 0)\n\t\t\t\tthis.open = !this.open\n\t\t}\n\t}\n\t@Watch(\"open\")\n\topenChange() {\n\t\tthis.smoothlyTableExpandableRowChange.emit(this.open)\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host onClick={(e: MouseEvent) => this.clickHandler(e)}>\n\t\t\t\t<slot />\n\t\t\t\t<div class={\"smoothly-table-detail\"} ref={e => (this.div = e)}>\n\t\t\t\t\t<slot name=\"detail\" />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tgrid-column: 1 / -1;\n}\n","import { Component, h, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-filler-row\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableFillerRow {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<smoothly-table-row>\n\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t<slot />\n\t\t\t\t</smoothly-table-cell>\n\t\t\t</smoothly-table-row>\n\t\t)\n\t}\n}\n",":host {\n\tgrid-column: 1 / -1;\n\tdisplay: grid;\n\tgrid-template-columns: subgrid;\n\tposition: sticky;\n\tz-index: 1;\n\tbottom: 0;\n\tbackground-color: rgb(var(--smoothly-table-footer-background));\n\tcolor: rgb(var(--smoothly-table-footer-foreground));\n\tstroke: rgb(var(--smoothly-table-footer-foreground));\n\tfill: rgb(var(--smoothly-table-footer-foreground));\n}\n","import { Component, h, Host, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-foot\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableFoot {\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tgrid-column: 1 / -1;\n\tdisplay: grid;\n\tgrid-template-columns: subgrid;\n\ttop: var(--top);\n\tposition: sticky;\n\tz-index: var(--z-index);\n\t--smoothly-color: var(--smoothly-table-header-background);\n\t--smoothly-color-contrast: var(--smoothly-table-header-foreground);\n\tbackground-color: rgb(var(--smoothly-table-header-background));\n\tcolor: rgb(var(--smoothly-table-header-foreground));\n\tstroke: rgb(var(--smoothly-table-header-foreground));\n\tfill: rgb(var(--smoothly-table-header-foreground));\n\tfont-weight: bold;\n\ttransition: box-shadow 0.3s ease;\n}\n\n:host.scrolled {\n\tbox-shadow: var(--smoothly-table-header-shadow);\n}\n","import { Component, Element, h, Host, State, VNode } from \"@stencil/core\"\nimport { Scrollable } from \"../../../model\"\n\n@Component({\n\ttag: \"smoothly-table-head\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableHead {\n\t@Element() element: HTMLSmoothlyTableHeadElement\n\t@State() scrolled?: boolean\n\t@State() depth = 0\n\tprivate scrollParent?: HTMLElement\n\tprivate onScroll = (event: Event) => {\n\t\tif (event.target instanceof HTMLElement) {\n\t\t\tthis.scrollParent = event.target\n\t\t\tconst parentRect = this.scrollParent.getBoundingClientRect()\n\t\t\tconst elementRect = this.element.getBoundingClientRect()\n\t\t\tthis.scrolled = parentRect.top == elementRect.top\n\t\t}\n\t}\n\tgetTopOffset() {\n\t\tlet depth = 0\n\t\tlet currentElement: HTMLElement | null = this.element\n\t\twhile (currentElement) {\n\t\t\tif (currentElement.tagName.toLowerCase() === \"smoothly-table\") {\n\t\t\t\tconst head = currentElement.querySelector(\"smoothly-table-head\") as HTMLSmoothlyTableHeadElement\n\t\t\t\tif (head !== this.element) {\n\t\t\t\t\tconst rows = Array.from(\n\t\t\t\t\t\thead.querySelectorAll(\"smoothly-table-row\") as NodeListOf<HTMLSmoothlyTableHeadElement>\n\t\t\t\t\t)\n\t\t\t\t\tdepth += rows.length\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurrentElement = currentElement.parentElement as HTMLSmoothlyTableHeadElement\n\t\t}\n\t\tthis.depth = depth\n\t}\n\tconnectedCallback() {\n\t\tthis.scrollParent = Scrollable.findParent(this.element)\n\t\tthis.scrollParent?.addEventListener(\"scroll\", this.onScroll)\n\t\tthis.getTopOffset()\n\t}\n\tdisconnectedCallback() {\n\t\tthis.scrollParent?.removeEventListener(\"scroll\", this.onScroll)\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={{ scrolled: !!this.scrolled }}\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--top\": `calc(${this.depth} * var(--smoothly-table-cell-min-height))`,\n\t\t\t\t\t\t\"--z-index\": `${10 - this.depth}`,\n\t\t\t\t\t} as any\n\t\t\t\t}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tgrid-column: 1 / -1;\n\tdisplay: grid;\n\tgrid-template-columns: subgrid;\n\tbox-sizing: border-box;\n\tbox-shadow: 0px 1px 1px -1px rgb(var(--smoothly-table-border));\n}\n\n:host .smoothly-table-cell,\n:host::slotted(.smoothly-table-cell) {\n\tdisplay: flex;\n\tgrid-column: span var(--smoothly-table-cell-span, 1);\n\talign-items: center;\n\tpadding-inline: var(--smoothly-table-cell-padding-inline, 1.1rem);\n\tmin-height: var(--smoothly-table-cell-min-height, 2.75rem);\n\twhite-space: nowrap;\n}\n\n:host:has(smoothly-table-expandable-cell) {\n\tgrid-template-rows: auto 0fr 0fr;\n}\n\n:host:has(smoothly-table-expandable-cell[open]) {\n\tgrid-template-rows: auto 1fr 0fr;\n}\n\n","import { Component, h, Host, Listen, VNode } from \"@stencil/core\"\nimport { SmoothlyTableExpandableCellCustomEvent } from \"../../../components\"\n\n@Component({\n\ttag: \"smoothly-table-row\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableRow {\n\tprivate expandableCells = new Set<HTMLSmoothlyTableExpandableCellElement>()\n\t@Listen(\"smoothlyTableExpandableCellRegister\")\n\tsmoothlyTableExpandableCellRegisterHandler(event: SmoothlyTableExpandableCellCustomEvent<void>): void {\n\t\tevent.stopPropagation()\n\t\tthis.expandableCells.add(event.target)\n\t}\n\t@Listen(\"smoothlyTableExpandableCellChange\")\n\tsmoothlyTableExpandableCellChangeHandler(event: SmoothlyTableExpandableCellCustomEvent<boolean>): void {\n\t\tif (event.detail)\n\t\t\tfor (const cell of this.expandableCells)\n\t\t\t\tevent.target != cell && cell.close()\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"../expandable/arrow.scss\";\n\n:host {\n\tgrid-column: 1 / -1;\n\tdisplay: grid;\n\tgrid-template-columns: subgrid;\n\tmargin-top: 1px;\n}\n\n:host > div:first-child {\n\tgrid-column: 1 / -1;\n\tdisplay: grid;\n\tposition: relative;\n\tcursor: pointer;\n\tpadding-inline: var(--smoothly-table-cell-padding-inline, 1.1rem);\n\tmin-height: var(--smoothly-table-cell-min-height, 2.75rem);\n\tbackground-color: rgb(var(--smoothly-default-tint));\n\tborder-bottom: 1px solid rgb(var(--smoothly-default-shade));\n\t@include arrow;\n}\n\n:host > div:first-child:hover {\n\t@include arrow-hover;\n\tcolor: rgb(var(--smoothly-table-hover-foreground));\n\tbackground-color: rgb(var(--smoothly-table-hover-background));\n}\n\n:host[open] > div:first-child {\n\t@include arrow-open;\n}\n\n:host > div:last-child {\n\tgrid-column: 1 / -1;\n\tdisplay: grid;\n\tgrid-template-columns: subgrid;\n}\n\n:host[align] > div:first-child {\n\tgrid-template-columns: subgrid;\n}\n\n:host[align] > div:first-child > div {\n\tdisplay: contents;\n}\n\n:host[align] > div:first-child > div > * {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-inline: var(--smoothly-table-cell-padding-inline, 1.1rem);\n\tmin-height: var(--smoothly-table-cell-min-height, 2.75rem);\n}\n\n:host:not([align]) > div:first-child {\n\tgrid-column: 1 / -1;\n\tdisplay: grid;\n\talign-items: center;\n\tgrid-template-columns: repeat(2, auto);\n\tjustify-content: space-between;\n}\n\n:host:not([align]) > div:first-child > div:first-child {\n\tjustify-self: start;\n\tdisplay: flex;\n\tgap: 1rem;\n}\n\n:host:not([align]) > div:first-child > div:last-child {\n\tjustify-self: end;\n\tdisplay: flex;\n\tgap: 1rem;\n}\n\n:host:not([open]) {\n\tgrid-template-rows: auto 0fr;\n}\n\n:host:not([open]) > div:last-child {\n\tgrid-row: 2;\n\toverflow: hidden;\n}\n","import { Component, Event, EventEmitter, h, Host, Prop, VNode } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-row-group\",\n\tstyleUrl: \"style.scss\",\n\tscoped: true,\n})\nexport class SmoothlyTableRowGroup {\n\t@Prop({ reflect: true }) align = false\n\t@Prop({ reflect: true, mutable: true }) open = false\n\t@Event() smoothlyTableRowGroupChange: EventEmitter<boolean>\n\n\tclickHandler(): void {\n\t\tconst selection = window.getSelection()?.toString().trim()\n\t\tif ((selection?.length ?? 0) == 0) {\n\t\t\tthis.open = !this.open\n\t\t\tthis.smoothlyTableRowGroupChange.emit(this.open)\n\t\t}\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div onClick={() => this.clickHandler()}>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<slot name={\"start\"} />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<slot name={\"end\"} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(var(--tabs), auto);\n\tgrid-template-rows: auto auto;\n}\n:host.hide-tabs::slotted(smoothly-tab>div:first-child) {\n\tdisplay: none;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-tabs\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTabs {\n\t@Element() element: HTMLSmoothlyTabsElement\n\t@Prop({ reflect: true }) tabs: \"always\" | \"multiple\" = \"always\"\n\t@Prop() numberOfTabs: number\n\t@State() tabElements: HTMLSmoothlyTabElement[] = []\n\t@State() selectedElement: HTMLSmoothlyTabElement\n\t@Event() smoothlyTabOpen: EventEmitter<string>\n\n\t@Method()\n\tasync removeTab(tab: HTMLSmoothlyTabElement) {\n\t\tif (this.element.isConnected) {\n\t\t\tthis.tabElements = this.tabElements.filter(element => element !== tab)\n\t\t\tif (tab.open) {\n\t\t\t\tconst firstOpenableTab = this.tabElements.find(element => !element.disabled)\n\t\t\t\tfirstOpenableTab && (firstOpenableTab.open = true)\n\t\t\t}\n\t\t}\n\t}\n\n\t@Listen(\"smoothlyTabLoad\")\n\tonInputLoad(event: CustomEvent<(smoothlyTabs: SmoothlyTabs) => void>) {\n\t\tevent.stopPropagation()\n\t\tif (\n\t\t\tthis.isSmoothlyTabElement(event.target) &&\n\t\t\tevent.target.parentElement == this.element &&\n\t\t\t!this.tabElements.includes(event.target)\n\t\t) {\n\t\t\tevent.detail(this)\n\t\t\tthis.tabElements = [...this.tabElements, event.target]\n\t\t}\n\t}\n\n\tprivate isSmoothlyTabElement(element: any): element is HTMLSmoothlyTabElement {\n\t\treturn element?.tagName == \"SMOOTHLY-TAB\"\n\t}\n\n\t@Listen(\"smoothlyTabOpen\")\n\topenChanged(event: CustomEvent) {\n\t\tconst target = event.target\n\t\tif (this.isSmoothlyTabElement(target)) {\n\t\t\tevent.stopPropagation()\n\t\t\tthis.selectedElement = target\n\t\t\tthis.smoothlyTabOpen.emit(event.detail)\n\t\t}\n\t}\n\t@Watch(\"selectedElement\")\n\tonSelectedChange(value: HTMLSmoothlyTabElement, old: HTMLSmoothlyTabElement) {\n\t\tif (old)\n\t\t\told.open = false\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={{ \"hide-tabs\": this.tabs == \"multiple\" && this.tabElements.length == 1 }}\n\t\t\t\tstyle={{ \"--tabs\": `${this.numberOfTabs ?? this.tabElements.length}` }}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host > * {\n\tmargin: auto;\n\tmax-width: 1200px;\n\twidth: 100%;\n\tmargin-block: 5rem;\n}\n:host code {\n\tcolor: rgb(var(--smoothly-medium-contrast));\n\tbackground-color: rgb(var(--smoothly-medium-color));\n\tpadding-inline: 0.25rem;\n\tborder-radius: 0.25rem;\n}\n","import { Component, h, Host, State } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-tabs-demo\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTabsDemo {\n\t@State() extraTab1: boolean\n\t@State() extraTab2: boolean\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div>\n\t\t\t\t\t<smoothly-button color=\"primary\" onClick={() => (this.extraTab1 = !this.extraTab1)}>\n\t\t\t\t\t\t{this.extraTab1 ? \"Remove\" : \"Add\"} tab\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t</div>\n\t\t\t\t<smoothly-tabs tabs=\"multiple\">\n\t\t\t\t\t<smoothly-tab label=\"Single Tab\" open>\n\t\t\t\t\t\t<strong>Single Tab content here.</strong> If only one tab is available setting <code>tabs</code> to{\" \"}\n\t\t\t\t\t\t<code>\"multiple\"</code> will hide the tab navigation and display the single tab's content directly.\n\t\t\t\t\t</smoothly-tab>\n\t\t\t\t\t{this.extraTab1 && (\n\t\t\t\t\t\t<smoothly-tab label=\"Extra tab\">\n\t\t\t\t\t\t\tWhen there are more then one tab, the tab navigation will show.\n\t\t\t\t\t\t</smoothly-tab>\n\t\t\t\t\t)}\n\t\t\t\t</smoothly-tabs>\n\n\t\t\t\t<div>\n\t\t\t\t\t<smoothly-button color=\"primary\" onClick={() => (this.extraTab2 = !this.extraTab2)}>\n\t\t\t\t\t\t{this.extraTab2 ? \"Remove\" : \"Add\"} tab\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t</div>\n\t\t\t\t<smoothly-tabs>\n\t\t\t\t\t<smoothly-tab label=\"Disabled tab\" tooltip=\"Tooltip for test3\" disabled>\n\t\t\t\t\t\tthis is a test message again!\n\t\t\t\t\t</smoothly-tab>\n\t\t\t\t\t<smoothly-tab label=\"test1\" tooltip=\"Tooltip for test1\" open>\n\t\t\t\t\t\tHello world!\n\t\t\t\t\t</smoothly-tab>\n\t\t\t\t\t<smoothly-tab label=\"test2\">this is a test message!</smoothly-tab>\n\t\t\t\t\t{this.extraTab2 && <smoothly-tab label=\"test-extra\">this is a test message!</smoothly-tab>}\n\t\t\t\t</smoothly-tabs>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n}\n:host > :first-child {\n\tmargin-top: 0.2rem;\n}\n","import { Component, h, Host, Prop } from \"@stencil/core\"\nimport { Color } from \"../../../model\"\n\n@Component({\n\ttag: \"smoothly-theme-color\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyThemeColor {\n\t@Prop() color: Color\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t{this.color}\n\t\t\t\t{([\"tint\", \"color\", \"shade\"] as const).map(variant => (\n\t\t\t\t\t<smoothly-theme-color-variant title={`${this.color} ${variant}`} color={this.color} variant={variant} />\n\t\t\t\t))}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\twidth: 3em;\n\theight: 3em;\n\tfont-weight: 900;\n}\n\n:host[color][variant=color] {\n\tbackground: rgb(var(--smoothly-color));\n}\n:host[color][variant=tint] {\n\tbackground: rgb(var(--smoothly-color-tint));\n}\n:host[color][variant=shade] {\n\tbackground: rgb(var(--smoothly-color-shade));\n}\n","import { Component, Prop } from \"@stencil/core\"\nimport { Color } from \"../../../../model\"\n\n@Component({\n\ttag: \"smoothly-theme-color-variant\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyThemeColorVariant {\n\t@Prop({ reflect: true }) color: Color\n\t@Prop({ reflect: true }) variant: \"shade\" | \"tint\" | \"color\" = \"color\"\n\trender() {\n\t\treturn \"Aa\"\n\t}\n}\n",":host {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(3, 1fr);\n\trow-gap: 1rem;\n\tcolumn-gap: 0.5rem;\n\twidth: fit-content;\n}\n","import { Component, h } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-theme-colors\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyThemeColors {\n\trender() {\n\t\treturn (\n\t\t\t[\n\t\t\t\t\"primary\",\n\t\t\t\t\"secondary\",\n\t\t\t\t\"tertiary\",\n\t\t\t\t\"success\",\n\t\t\t\t\"warning\",\n\t\t\t\t\"danger\",\n\t\t\t\t\"light\",\n\t\t\t\t\"medium\",\n\t\t\t\t\"dark\",\n\t\t\t\t\"default\",\n\t\t\t] as const\n\t\t).map(color => <smoothly-theme-color color={color} />)\n\t}\n}\n",":host {\n\tmax-width: min(calc(100% - 2rem), 56rem);\n\tmargin: auto;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2em;\n\tmargin-top: 2em;\n}\n\n:host>smoothly-theme-picker {\n\twidth: 20em;\n}\n\n:host>div {\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: space-between;\n\tgap: 1rem;\n}\n","import { Component, h, Host } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-theme-demo\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyThemeDemo {\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h2>Theme</h2>\n\t\t\t\t<smoothly-theme-picker>\n\t\t\t\t\t<smoothly-item selected value=\"assets/style/smoothly.css\">\n\t\t\t\t\t\tSmoothly\n\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"https://app.issuefab.com/assets/style/index.css\">Issuefab</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"https://app.proquse.com/assets/style/index.css\">Proquse</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"https://app.weekmeter.com/assets/style/index.css\">Weekmeter</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"https://dash.pax2pay.app/p2pdash.css\">Pax2Pay Dashboard</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"https://ui.pax2pay.app/assets/style/pax2pay.css\">Pax2Pay Portal</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"https://theme.payfunc.com/intergiro/index.css\">Intergiro Monitor</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"https://theme.payfunc.com/light/index.css\">Payfunc Light</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"https://theme.payfunc.com/dark/index.css\">Payfunc Dark</smoothly-item>\n\t\t\t\t</smoothly-theme-picker>\n\t\t\t\t<div>\n\t\t\t\t\t<smoothly-theme-colors />\n\t\t\t\t\t<smoothly-theme-guide />\n\t\t\t\t</div>\n\t\t\t\t<smoothly-button type=\"link\" link=\"/redirect\">\n\t\t\t\t\tTo redirect\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button type=\"link\" link=\"/redirect\">\n\t\t\t\t\tTo /redirect\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button type=\"link\" link={new URL(\"/redirect\", window.location.origin).href}>\n\t\t\t\t\tTo new URL(\"redirect\")\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button type=\"link\" link=\"redirect/nested\">\n\t\t\t\t\tTo redirect nested\n\t\t\t\t</smoothly-button>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tmax-width: 50ch;\n}\n","import { Component, h } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-theme-guide\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyThemeColors {\n\trender() {\n\t\treturn [\n\t\t\t<smoothly-display>\n\t\t\t\tTint is used as background to highlight, for example hovering an item in the select menu.\n\t\t\t</smoothly-display>,\n\t\t\t<br />,\n\t\t\t<smoothly-display>\n\t\t\t\tColor is used as a normal background or as a background to show that something is selected, for example a\n\t\t\t\tselected item in the select menu.\n\t\t\t</smoothly-display>,\n\t\t\t<br />,\n\t\t\t<smoothly-display>\n\t\t\t\tShade is used as border and for symbols in buttons. It works as a semi-low contrast against color and tint.\n\t\t\t</smoothly-display>,\n\t\t\t<br />,\n\t\t\t<smoothly-display>\n\t\t\t\tOne can use the {\"<smoothly-color>\"} component to switch between what color set is used.{\" \"}\n\t\t\t</smoothly-display>,\n\t\t\t<br />,\n\t\t]\n\t}\n}\n","","import { Component, h, Host, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-theme-picker\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyThemePicker {\n\t@Prop() element = \"smoothly-css\"\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-input-select\n\t\t\t\t\tname=\"theme\"\n\t\t\t\t\tlooks=\"border\"\n\t\t\t\t\tonSmoothlyInput={e => {\n\t\t\t\t\t\tconst element = document.querySelector(`#${this.element}`)\n\t\t\t\t\t\tif (element instanceof HTMLLinkElement && typeof e.detail.theme == \"string\")\n\t\t\t\t\t\t\telement.href = e.detail.theme\n\t\t\t\t\t}}>\n\t\t\t\t\t<label slot=\"label\">Select theme</label>\n\t\t\t\t\t<slot />\n\t\t\t\t</smoothly-input-select>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n:host > button {\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-inline: 0;\n\tcursor: pointer;\n\tborder: none;\n\tborder-radius: 3em;\n\tbackground-color: rgb(var(--smoothly-color));\n}\n:host > button:hover {\n\tbackground-color: rgb(var(--smoothly-color-tint));\n}\n:host > button > smoothly-icon {\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\talign-items: center;\n\tfill: rgb(var(--smoothly-color-contrast));\n\tstroke: rgb(var(--smoothly-color-contrast));\n\ttransition: 100ms ease-in-out;\n}\n:host([selected][checkmark]) > button > smoothly-icon{\n\tfill: rgb(var(--smoothly-success-contrast));\n\tstroke: rgb(var(--smoothly-success-contrast));\n}\n:host([selected][checkmark]) > button {\n\tbackground-color: rgb(var(--smoothly-success-color));\n}\n:host([selected][checkmark]) > button:hover{\n\tbackground-color: rgb(var(--smoothly-success-tint));\n}\n:host([selected]) > button > smoothly-icon {\n\ttransform: translateX(100%);\n}\n:host([size=tiny]) {\n\t--height: 1.25rem;\n}\n:host([size=small]) {\n\t--height: 1.5rem;\n}\n:host([size=default]) {\n\t--height: 2rem;\n}\n:host([size=large]) {\n\t--height: 2.5rem;\n}\n:host {\n\theight: var(--height);\n\twidth: calc(var(--height) * 2);\n}\n:host > button > smoothly-icon {\n\t--smoothly-icon-size: var(--height);\n}\n","import { Component, Event, EventEmitter, h, Host, Prop } from \"@stencil/core\"\nimport { Color, Fill } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-toggle-switch\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyToggleSwitch {\n\t@Prop({ reflect: true }) checkmark = true\n\t@Prop({ mutable: true, reflect: true }) selected = false\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop({ reflect: true }) size: \"tiny\" | \"small\" | \"default\" | \"large\" = \"default\"\n\t@Prop({ reflect: true }) color: Color = \"medium\"\n\t@Prop({ reflect: true }) fill: Fill = \"clear\"\n\t@Event() smoothlyToggleSwitchChange: EventEmitter<boolean>\n\n\thandleClick() {\n\t\tthis.selected = !this.selected\n\t\tthis.smoothlyToggleSwitchChange.emit(this.selected)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<button type=\"button\" disabled={this.disabled} onClick={() => this.handleClick()}>\n\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\tcolor={this.color}\n\t\t\t\t\t\tname={!this.checkmark ? \"ellipse\" : this.selected ? \"checkmark-circle\" : \"close-circle\"}\n\t\t\t\t\t\tfill=\"clear\"\n\t\t\t\t\t\tclass={{ selected: this.selected }}\n\t\t\t\t\t/>\n\t\t\t\t</button>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host>div {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(5, max-content);\n\tgap: 1em;\n}\n\n:host>div>span>p {\n\tmargin: 0;\n}\n","import { Component, h, Host } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-toggle-switch-demo\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyToggleSwitchDemo {\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<h4>Toggle switches</h4>\n\t\t\t\t<div>\n\t\t\t\t\t<p>Checkmark</p>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<p>Tiny</p>\n\t\t\t\t\t\t<smoothly-toggle-switch disabled={false} size=\"tiny\" />\n\t\t\t\t\t</span>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<p>Small</p>\n\t\t\t\t\t\t<smoothly-toggle-switch disabled={false} size=\"small\" />\n\t\t\t\t\t</span>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<p>Standard</p>\n\t\t\t\t\t\t<smoothly-toggle-switch disabled={false} />\n\t\t\t\t\t</span>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<p>Large</p>\n\t\t\t\t\t\t<smoothly-toggle-switch disabled={false} size=\"large\" />\n\t\t\t\t\t</span>\n\t\t\t\t\t<p>Colors checkmark</p>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<p>Danger</p>\n\t\t\t\t\t\t<smoothly-toggle-switch color=\"danger\" disabled={false} size=\"small\" />\n\t\t\t\t\t</span>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<p>Primary color</p>\n\t\t\t\t\t\t<smoothly-toggle-switch color=\"primary\" disabled={false} size=\"small\" />\n\t\t\t\t\t</span>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<p>Secondary color</p>\n\t\t\t\t\t\t<smoothly-toggle-switch color=\"secondary\" disabled={false} size=\"small\" />\n\t\t\t\t\t</span>\n\t\t\t\t\t<p></p>\n\t\t\t\t\t<p>Colors no checkmark</p>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<p>Danger</p>\n\t\t\t\t\t\t<smoothly-toggle-switch checkmark={false} color=\"danger\" disabled={false} size=\"small\" />\n\t\t\t\t\t</span>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<p>Primary color</p>\n\t\t\t\t\t\t<smoothly-toggle-switch checkmark={false} color=\"primary\" disabled={false} size=\"small\" />\n\t\t\t\t\t</span>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<p>Secondary color</p>\n\t\t\t\t\t\t<smoothly-toggle-switch checkmark={false} color=\"secondary\" disabled={false} size=\"small\" />\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n\tborder-style: solid;\n\tborder-width: 1px;\n\tborder-radius: 3px;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host[disabled] {\n\topacity: 0.5;\n}\n:host > button {\n\tborder-color: transparent;\n\tbackground-color: transparent;\n\tpadding: 0.2em 0.3em;\n\tfont-size: 110%;\n\tfont-weight: 400;\n}\n:host:not([disabled]):hover,\n:host:not([disabled]):focus,\n:host:not([disabled]):active {\n\tborder-color: var(--smoothly-trigger-border);\n}\n:host[expand=full] > button,\n:host[expand=block] > button {\n\twidth: 100%;\n}\n:host[expand=full] {\n\tborder-left: none;\n\tborder-right: none;\n}\n","import { Component, Event, EventEmitter, h, Listen, Prop } from \"@stencil/core\"\nimport { Color, Fill, Trigger } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-trigger\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTrigger {\n\t@Prop({ reflect: true }) color: Color | undefined\n\t@Prop({ reflect: true }) fill: Fill\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop({ reflect: true }) type: \"link\" | \"button\" = \"button\"\n\t@Prop() name: string\n\t@Prop() value?: any\n\t@Event() trigger: EventEmitter<Trigger>\n\n\t@Listen(\"click\")\n\tonClick(e: UIEvent) {\n\t\tthis.trigger.emit({ name: this.name, value: this.value })\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\t}\n\trender() {\n\t\tlet result: HTMLElement\n\t\tswitch (this.type) {\n\t\t\tcase \"link\":\n\t\t\t\tresult = this.disabled ? (\n\t\t\t\t\t<slot />\n\t\t\t\t) : (\n\t\t\t\t\t<a onClick={e => this.onClick(e)}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</a>\n\t\t\t\t)\n\t\t\t\tbreak\n\t\t\tcase \"button\":\n\t\t\t\tresult = (\n\t\t\t\t\t<button disabled={this.disabled} name={this.name}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</button>\n\t\t\t\t)\n\t\t\t\tbreak\n\t\t}\n\t\treturn result\n\t}\n}\n"],"version":3}