smoothly 1.0.0-alpha.99 → 1.0.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 (456) hide show
  1. package/dist/cjs/Data-50d47740.js +589 -0
  2. package/dist/cjs/Data-50d47740.js.map +1 -0
  3. package/dist/cjs/Observers-6450f075.js +25 -0
  4. package/dist/cjs/Observers-6450f075.js.map +1 -0
  5. package/dist/cjs/TimeZone-016ac7b0.js +6181 -0
  6. package/dist/cjs/TimeZone-016ac7b0.js.map +1 -0
  7. package/dist/cjs/{getLanguage-7e53766b.js → getLanguage-49a534df.js} +1 -5993
  8. package/dist/cjs/getLanguage-49a534df.js.map +1 -0
  9. package/dist/cjs/{index-6ae370b4.js → index-43af753b.js} +1 -4
  10. package/dist/cjs/index-43af753b.js.map +1 -0
  11. package/dist/cjs/index.cjs.js +3 -14
  12. package/dist/cjs/index.cjs.js.map +1 -1
  13. package/dist/cjs/loader.cjs.js +4 -3
  14. package/dist/cjs/loader.cjs.js.map +1 -1
  15. package/dist/cjs/smoothly-accordion-item.cjs.entry.js +61 -0
  16. package/dist/cjs/smoothly-accordion-item.cjs.entry.js.map +1 -0
  17. package/dist/cjs/smoothly-accordion.cjs.entry.js +58 -0
  18. package/dist/cjs/smoothly-accordion.cjs.entry.js.map +1 -0
  19. package/dist/cjs/smoothly-address-display.cjs.entry.js +1 -1
  20. package/dist/cjs/smoothly-address.cjs.entry.js +1 -1
  21. package/dist/cjs/smoothly-addresses.cjs.entry.js +1 -1
  22. package/dist/cjs/smoothly-app_80.cjs.entry.js +11148 -0
  23. package/dist/cjs/smoothly-app_80.cjs.entry.js.map +1 -0
  24. package/dist/cjs/smoothly-checkbox.cjs.entry.js +102 -0
  25. package/dist/cjs/smoothly-checkbox.cjs.entry.js.map +1 -0
  26. package/dist/cjs/smoothly-color.cjs.entry.js +1 -1
  27. package/dist/cjs/smoothly-country.cjs.entry.js +56 -55
  28. package/dist/cjs/smoothly-country.cjs.entry.js.map +1 -1
  29. package/dist/cjs/smoothly-display-date-time.cjs.entry.js +1 -1
  30. package/dist/cjs/smoothly-google-font.cjs.entry.js +1 -1
  31. package/dist/cjs/smoothly-reorder.cjs.entry.js +4 -4
  32. package/dist/cjs/smoothly-reorder.cjs.entry.js.map +1 -1
  33. package/dist/cjs/smoothly-trigger-sink.cjs.entry.js +2 -2
  34. package/dist/cjs/smoothly-trigger-source.cjs.entry.js +2 -2
  35. package/dist/cjs/smoothly.cjs.js +4 -3
  36. package/dist/cjs/smoothly.cjs.js.map +1 -1
  37. package/dist/collection/collection-manifest.json +24 -7
  38. package/dist/collection/components/Button.js +16 -2
  39. package/dist/collection/components/Button.js.map +1 -1
  40. package/dist/collection/components/app/index.js +53 -1
  41. package/dist/collection/components/app/index.js.map +1 -1
  42. package/dist/collection/components/app/room/index.js +45 -2
  43. package/dist/collection/components/app/room/index.js.map +1 -1
  44. package/dist/collection/components/app/room/style.css +23 -9
  45. package/dist/collection/components/app/style.css +57 -32
  46. package/dist/collection/components/app-demo/index.js +1 -2
  47. package/dist/collection/components/app-demo/index.js.map +1 -1
  48. package/dist/collection/components/burger/index.js +9 -9
  49. package/dist/collection/components/burger/index.js.map +1 -1
  50. package/dist/collection/components/button/index.js +9 -22
  51. package/dist/collection/components/button/index.js.map +1 -1
  52. package/dist/collection/components/button/style.css +23 -20
  53. package/dist/collection/components/button-demo/index.js +3 -1
  54. package/dist/collection/components/button-demo/index.js.map +1 -1
  55. package/dist/collection/components/button-demo/style.css +1 -0
  56. package/dist/collection/components/calendar/generate.js +1 -1
  57. package/dist/collection/components/calendar/generate.js.map +1 -1
  58. package/dist/collection/components/calendar/index.js +16 -16
  59. package/dist/collection/components/calendar/index.js.map +1 -1
  60. package/dist/collection/components/checkbox/index.js +60 -29
  61. package/dist/collection/components/checkbox/index.js.map +1 -1
  62. package/dist/collection/components/checkbox/style.css +39 -42
  63. package/dist/collection/components/confirm/index.js +261 -0
  64. package/dist/collection/components/confirm/index.js.map +1 -0
  65. package/dist/collection/components/confirm/style.css +15 -0
  66. package/dist/collection/components/display/index.js +4 -1
  67. package/dist/collection/components/display/index.js.map +1 -1
  68. package/dist/collection/components/display-demo/index.js +16 -1
  69. package/dist/collection/components/display-demo/index.js.map +1 -1
  70. package/dist/collection/components/filter/Filter.js +17 -0
  71. package/dist/collection/components/filter/Filter.js.map +1 -0
  72. package/dist/collection/components/filter/field/index.js +105 -0
  73. package/dist/collection/components/filter/field/index.js.map +1 -0
  74. package/dist/collection/components/filter/field/style.css +4 -0
  75. package/dist/collection/components/filter/index.js +55 -132
  76. package/dist/collection/components/filter/index.js.map +1 -1
  77. package/dist/collection/components/filter/input/index.js +84 -301
  78. package/dist/collection/components/filter/input/index.js.map +1 -1
  79. package/dist/collection/components/filter/picker/index.js +229 -0
  80. package/dist/collection/components/filter/picker/index.js.map +1 -0
  81. package/dist/collection/components/filter/picker/style.css +8 -0
  82. package/dist/collection/components/filter/style.css +56 -71
  83. package/dist/collection/components/filter/toggle/index.js +248 -0
  84. package/dist/collection/components/filter/toggle/index.js.map +1 -0
  85. package/dist/collection/components/filter/toggle/style.css +8 -0
  86. package/dist/collection/components/form/index.js +234 -66
  87. package/dist/collection/components/form/index.js.map +1 -1
  88. package/dist/collection/components/form/style.css +3 -1
  89. package/dist/collection/components/icon/index.js +60 -32
  90. package/dist/collection/components/icon/index.js.map +1 -1
  91. package/dist/collection/components/icon/style.css +15 -0
  92. package/dist/collection/components/icon-demo/index.js +3 -1
  93. package/dist/collection/components/icon-demo/index.js.map +1 -1
  94. package/dist/collection/components/icon-demo/style.css +5 -6
  95. package/dist/collection/components/input/Editable.js +19 -0
  96. package/dist/collection/components/input/Editable.js.map +1 -0
  97. package/dist/collection/components/input/Input.js +22 -1
  98. package/dist/collection/components/input/Input.js.map +1 -1
  99. package/dist/collection/components/input/Looks.js +7 -1
  100. package/dist/collection/components/input/Looks.js.map +1 -1
  101. package/dist/collection/components/input/Submittable.js.map +1 -1
  102. package/dist/collection/components/input/checkbox/index.js +382 -0
  103. package/dist/collection/components/input/checkbox/index.js.map +1 -0
  104. package/dist/collection/components/input/checkbox/style.css +75 -0
  105. package/dist/collection/components/input/clear/index.js +12 -7
  106. package/dist/collection/components/input/clear/index.js.map +1 -1
  107. package/dist/collection/components/input/clear/style.css +23 -20
  108. package/dist/collection/components/input/color/index.js +226 -0
  109. package/dist/collection/components/input/color/index.js.map +1 -0
  110. package/dist/collection/components/input/color/style.css +15 -0
  111. package/dist/collection/components/input/date/index.js +8 -8
  112. package/dist/collection/components/input/date/index.js.map +1 -1
  113. package/dist/collection/components/input/date/range/index.js +13 -17
  114. package/dist/collection/components/input/date/range/index.js.map +1 -1
  115. package/dist/collection/components/input/date/range/style.css +25 -0
  116. package/dist/collection/components/input/date/style.css +25 -0
  117. package/dist/collection/components/input/demo/index.js +28 -72
  118. package/dist/collection/components/input/demo/index.js.map +1 -1
  119. package/dist/collection/components/input/demo/style.css +15 -0
  120. package/dist/collection/components/input/edit/index.js +249 -0
  121. package/dist/collection/components/input/edit/index.js.map +1 -0
  122. package/dist/collection/components/input/edit/style.css +238 -0
  123. package/dist/collection/components/input/file/index.js +3 -3
  124. package/dist/collection/components/input/file/index.js.map +1 -1
  125. package/dist/collection/components/input/file/style.css +22 -0
  126. package/dist/collection/components/input/index.js +245 -110
  127. package/dist/collection/components/input/index.js.map +1 -1
  128. package/dist/collection/components/input/month/index.js +5 -5
  129. package/dist/collection/components/input/month/index.js.map +1 -1
  130. package/dist/collection/components/input/radio/Selected.js +11 -0
  131. package/dist/collection/components/input/radio/Selected.js.map +1 -0
  132. package/dist/collection/components/input/radio/index.js +426 -0
  133. package/dist/collection/components/input/radio/index.js.map +1 -0
  134. package/dist/collection/components/{radio-button → input/radio/item}/index.js +60 -72
  135. package/dist/collection/components/input/radio/item/index.js.map +1 -0
  136. package/dist/collection/components/input/radio/item/style.css +28 -0
  137. package/dist/collection/components/input/radio/style.css +66 -0
  138. package/dist/collection/components/input/range/index.js +440 -0
  139. package/dist/collection/components/input/range/index.js.map +1 -0
  140. package/dist/collection/components/input/range/style.css +154 -0
  141. package/dist/collection/components/input/reset/index.js +260 -0
  142. package/dist/collection/components/input/reset/index.js.map +1 -0
  143. package/dist/collection/components/input/reset/style.css +255 -0
  144. package/dist/collection/components/input/select/index.js +443 -95
  145. package/dist/collection/components/input/select/index.js.map +1 -1
  146. package/dist/collection/components/input/select/style.css +111 -23
  147. package/dist/collection/components/input/style.css +24 -2
  148. package/dist/collection/components/input/submit/index.js +269 -0
  149. package/dist/collection/components/input/submit/index.js.map +1 -0
  150. package/dist/collection/components/input/submit/style.css +11 -0
  151. package/dist/collection/components/item/Item.js +11 -0
  152. package/dist/collection/components/item/Item.js.map +1 -0
  153. package/dist/collection/components/item/index.js +69 -29
  154. package/dist/collection/components/item/index.js.map +1 -1
  155. package/dist/collection/components/item/style.css +1 -3
  156. package/dist/collection/components/label/index.js +81 -0
  157. package/dist/collection/components/label/index.js.map +1 -0
  158. package/dist/collection/components/label/style.css +15 -0
  159. package/dist/collection/components/lazy/index.js +73 -0
  160. package/dist/collection/components/lazy/index.js.map +1 -0
  161. package/dist/collection/components/{radio → load-more}/index.js +35 -46
  162. package/dist/collection/components/load-more/index.js.map +1 -0
  163. package/dist/collection/components/load-more/style.css +5 -0
  164. package/dist/collection/components/notification/index.js.map +1 -1
  165. package/dist/collection/components/picker/demo/index.js +17 -15
  166. package/dist/collection/components/picker/demo/index.js.map +1 -1
  167. package/dist/collection/components/picker/demo/style.css +24 -1
  168. package/dist/collection/components/picker/index.js +172 -7
  169. package/dist/collection/components/picker/index.js.map +1 -1
  170. package/dist/collection/components/picker/menu/index.js +74 -3
  171. package/dist/collection/components/picker/menu/index.js.map +1 -1
  172. package/dist/collection/components/picker/menu/style.css +16 -6
  173. package/dist/collection/components/picker/option/index.js +51 -3
  174. package/dist/collection/components/picker/option/index.js.map +1 -1
  175. package/dist/collection/components/picker/option/style.css +9 -4
  176. package/dist/collection/components/picker/style.css +28 -3
  177. package/dist/collection/components/popup/index.js +5 -5
  178. package/dist/collection/components/popup/index.js.map +1 -1
  179. package/dist/collection/components/popup/style.css +4 -4
  180. package/dist/collection/components/submit/index.js +0 -15
  181. package/dist/collection/components/submit/index.js.map +1 -1
  182. package/dist/collection/components/submit/style.css +23 -20
  183. package/dist/collection/components/summary/index.js +2 -3
  184. package/dist/collection/components/summary/index.js.map +1 -1
  185. package/dist/collection/components/summary/style.css +25 -16
  186. package/dist/collection/components/table/cell/style.css +3 -3
  187. package/dist/collection/components/table/demo/filtered/Root.js.map +1 -1
  188. package/dist/collection/components/table/demo/filtered/index.js +30 -15
  189. package/dist/collection/components/table/demo/filtered/index.js.map +1 -1
  190. package/dist/collection/components/table/demo/filtered/style.css +9 -0
  191. package/dist/collection/components/table/demo/index.js +2 -14
  192. package/dist/collection/components/table/demo/index.js.map +1 -1
  193. package/dist/collection/components/table/demo/style.css +5 -0
  194. package/dist/collection/components/table/demo/testing/data.js.map +1 -0
  195. package/dist/collection/components/table/demo/testing/index.js +28 -0
  196. package/dist/collection/components/table/demo/testing/index.js.map +1 -0
  197. package/dist/collection/components/table/demo/testing/style.css +32 -0
  198. package/dist/collection/components/table/expandable/cell/index.js +1 -20
  199. package/dist/collection/components/table/expandable/cell/index.js.map +1 -1
  200. package/dist/collection/components/table/expandable/cell/style.css +13 -13
  201. package/dist/collection/components/table/expandable/row/index.js +1 -20
  202. package/dist/collection/components/table/expandable/row/index.js.map +1 -1
  203. package/dist/collection/components/table/expandable/row/style.css +11 -11
  204. package/dist/collection/components/table/footer/index.js +19 -0
  205. package/dist/collection/components/table/footer/index.js.map +1 -0
  206. package/dist/collection/components/table/footer/style.css +10 -0
  207. package/dist/collection/components/table/header/style.css +2 -3
  208. package/dist/collection/components/table/index.js +24 -1
  209. package/dist/collection/components/table/index.js.map +1 -1
  210. package/dist/collection/components/theme/color/index.js +48 -0
  211. package/dist/collection/components/theme/color/index.js.map +1 -0
  212. package/dist/collection/components/theme/color/style.css +8 -0
  213. package/dist/collection/components/theme/color/variant/index.js +66 -0
  214. package/dist/collection/components/theme/color/variant/index.js.map +1 -0
  215. package/dist/collection/components/theme/color/variant/style.css +18 -0
  216. package/dist/collection/components/theme/colors/index.js +30 -0
  217. package/dist/collection/components/theme/colors/index.js.map +1 -0
  218. package/dist/collection/components/theme/colors/style.css +7 -0
  219. package/dist/collection/components/theme/picker/index.js +48 -0
  220. package/dist/collection/components/theme/picker/index.js.map +1 -0
  221. package/dist/collection/components/theme/picker/style.css +0 -0
  222. package/dist/collection/components/toggle-switch/index.js +69 -17
  223. package/dist/collection/components/toggle-switch/index.js.map +1 -1
  224. package/dist/collection/components/toggle-switch/style.css +19 -12
  225. package/dist/collection/global/Observers.js +22 -0
  226. package/dist/collection/global/Observers.js.map +1 -0
  227. package/dist/collection/global/index.js +5 -0
  228. package/dist/collection/global/index.js.map +1 -0
  229. package/dist/collection/model/Color.js +18 -1
  230. package/dist/collection/model/Color.js.map +1 -1
  231. package/dist/collection/model/Data.js +8 -1
  232. package/dist/collection/model/Data.js.map +1 -1
  233. package/dist/collection/model/Icon.js +23 -0
  234. package/dist/collection/model/Icon.js.map +1 -0
  235. package/dist/collection/model/Listenable.js +16 -3
  236. package/dist/collection/model/Listenable.js.map +1 -1
  237. package/dist/collection/model/Option.js.map +1 -1
  238. package/dist/collection/model/index.js +2 -1
  239. package/dist/collection/model/index.js.map +1 -1
  240. package/dist/collection/smoothly.js +1 -1
  241. package/dist/collection/smoothly.js.map +1 -1
  242. package/dist/custom-elements/index.d.ts +120 -24
  243. package/dist/custom-elements/index.js +15445 -33845
  244. package/dist/custom-elements/index.js.map +1 -1
  245. package/dist/esm/Data-c8093b5a.js +579 -0
  246. package/dist/esm/Data-c8093b5a.js.map +1 -0
  247. package/dist/esm/Observers-5f08e828.js +25 -0
  248. package/dist/esm/Observers-5f08e828.js.map +1 -0
  249. package/dist/esm/TimeZone-c8df4905.js +6181 -0
  250. package/dist/esm/TimeZone-c8df4905.js.map +1 -0
  251. package/dist/esm/{getLanguage-9c833eef.js → getLanguage-1e9ec036.js} +2 -5994
  252. package/dist/esm/getLanguage-1e9ec036.js.map +1 -0
  253. package/dist/esm/{index-c196715a.js → index-258984d3.js} +2 -4
  254. package/dist/esm/index-258984d3.js.map +1 -0
  255. package/dist/esm/index.js +3 -14
  256. package/dist/esm/index.js.map +1 -1
  257. package/dist/esm/loader.js +5 -4
  258. package/dist/esm/loader.js.map +1 -1
  259. package/dist/esm/smoothly-accordion-item.entry.js +57 -0
  260. package/dist/esm/smoothly-accordion-item.entry.js.map +1 -0
  261. package/dist/esm/smoothly-accordion.entry.js +54 -0
  262. package/dist/esm/smoothly-accordion.entry.js.map +1 -0
  263. package/dist/esm/smoothly-address-display.entry.js +1 -1
  264. package/dist/esm/smoothly-address.entry.js +1 -1
  265. package/dist/esm/smoothly-addresses.entry.js +1 -1
  266. package/dist/esm/smoothly-app_80.entry.js +11065 -0
  267. package/dist/esm/smoothly-app_80.entry.js.map +1 -0
  268. package/dist/esm/smoothly-checkbox.entry.js +98 -0
  269. package/dist/esm/smoothly-checkbox.entry.js.map +1 -0
  270. package/dist/esm/smoothly-color.entry.js +1 -1
  271. package/dist/esm/smoothly-country.entry.js +10 -9
  272. package/dist/esm/smoothly-country.entry.js.map +1 -1
  273. package/dist/esm/smoothly-display-date-time.entry.js +1 -1
  274. package/dist/esm/smoothly-google-font.entry.js +1 -1
  275. package/dist/esm/smoothly-reorder.entry.js +2 -2
  276. package/dist/esm/smoothly-reorder.entry.js.map +1 -1
  277. package/dist/esm/smoothly-trigger-sink.entry.js +2 -2
  278. package/dist/esm/smoothly-trigger-source.entry.js +2 -2
  279. package/dist/esm/smoothly.js +5 -4
  280. package/dist/esm/smoothly.js.map +1 -1
  281. package/dist/smoothly/index.esm.js +1 -1
  282. package/dist/smoothly/index.esm.js.map +1 -1
  283. package/dist/smoothly/{p-663ccbd0.entry.js → p-12182a73.entry.js} +2 -2
  284. package/dist/smoothly/p-21905b32.entry.js +2 -0
  285. package/dist/smoothly/p-21905b32.entry.js.map +1 -0
  286. package/dist/smoothly/p-2e986022.js +2 -0
  287. package/dist/smoothly/p-2e986022.js.map +1 -0
  288. package/dist/smoothly/p-303520d1.entry.js +2 -0
  289. package/dist/smoothly/p-303520d1.entry.js.map +1 -0
  290. package/dist/smoothly/p-312ef066.js +2 -0
  291. package/dist/smoothly/p-312ef066.js.map +1 -0
  292. package/dist/smoothly/{p-9992c8c4.entry.js → p-47151a53.entry.js} +2 -2
  293. package/dist/smoothly/{p-d0b8061e.js → p-5e387578.js} +3 -3
  294. package/dist/smoothly/p-5e387578.js.map +1 -0
  295. package/dist/smoothly/{p-b82ef190.entry.js → p-635c813e.entry.js} +2 -2
  296. package/dist/smoothly/{p-dbd1afa9.entry.js → p-6aebb818.entry.js} +2 -2
  297. package/dist/smoothly/p-6e9aca2e.entry.js +2 -0
  298. package/dist/smoothly/p-6e9aca2e.entry.js.map +1 -0
  299. package/dist/smoothly/{p-c4ffc15d.entry.js → p-7a69b43f.entry.js} +2 -2
  300. package/dist/smoothly/{p-4d743f07.entry.js → p-7bf147bf.entry.js} +2 -2
  301. package/dist/smoothly/p-823e02b0.entry.js +2 -0
  302. package/dist/smoothly/p-823e02b0.entry.js.map +1 -0
  303. package/dist/smoothly/p-b3eac6af.entry.js +2 -0
  304. package/dist/smoothly/{p-4ff439dd.entry.js.map → p-b3eac6af.entry.js.map} +1 -1
  305. package/dist/smoothly/{p-f96e41aa.entry.js → p-cb493516.entry.js} +2 -2
  306. package/dist/smoothly/p-ede93d69.js +2 -0
  307. package/dist/smoothly/p-ede93d69.js.map +1 -0
  308. package/dist/smoothly/{p-ce4e6f44.entry.js → p-eef1c80b.entry.js} +2 -2
  309. package/dist/smoothly/p-f125610c.entry.js +2 -0
  310. package/dist/smoothly/p-f125610c.entry.js.map +1 -0
  311. package/dist/smoothly/p-fa664317.js +2 -0
  312. package/dist/smoothly/p-fa664317.js.map +1 -0
  313. package/dist/smoothly/smoothly.esm.js +1 -1
  314. package/dist/smoothly/smoothly.esm.js.map +1 -1
  315. package/dist/types/components/Button.d.ts +1 -2
  316. package/dist/types/components/app/index.d.ts +3 -0
  317. package/dist/types/components/app/room/index.d.ts +4 -2
  318. package/dist/types/components/app-demo/index.d.ts +1 -0
  319. package/dist/types/components/burger/index.d.ts +2 -2
  320. package/dist/types/components/button/index.d.ts +2 -2
  321. package/dist/types/components/calendar/index.d.ts +5 -5
  322. package/dist/types/components/checkbox/index.d.ts +4 -2
  323. package/dist/types/components/confirm/index.d.ts +19 -0
  324. package/dist/types/components/filter/Filter.d.ts +21 -0
  325. package/dist/types/components/filter/field/index.d.ts +10 -0
  326. package/dist/types/components/filter/index.d.ts +13 -12
  327. package/dist/types/components/filter/input/index.d.ts +17 -23
  328. package/dist/types/components/filter/picker/index.d.ts +25 -0
  329. package/dist/types/components/filter/toggle/index.d.ts +22 -0
  330. package/dist/types/components/form/index.d.ts +22 -15
  331. package/dist/types/components/icon/index.d.ts +4 -6
  332. package/dist/types/components/input/Editable.d.ts +21 -0
  333. package/dist/types/components/input/Input.d.ts +19 -7
  334. package/dist/types/components/input/Looks.d.ts +7 -1
  335. package/dist/types/components/input/Submittable.d.ts +1 -1
  336. package/dist/types/components/input/checkbox/index.d.ts +30 -0
  337. package/dist/types/components/input/color/index.d.ts +24 -0
  338. package/dist/types/components/input/date/index.d.ts +1 -1
  339. package/dist/types/components/input/date/range/index.d.ts +2 -2
  340. package/dist/types/components/input/demo/index.d.ts +3 -6
  341. package/dist/types/components/input/edit/index.d.ts +18 -0
  342. package/dist/types/components/input/index.d.ts +30 -21
  343. package/dist/types/components/input/month/index.d.ts +1 -1
  344. package/dist/types/components/input/radio/Selected.d.ts +10 -0
  345. package/dist/types/components/input/radio/index.d.ts +36 -0
  346. package/dist/types/components/input/radio/item/index.d.ts +15 -0
  347. package/dist/types/components/input/range/index.d.ts +33 -0
  348. package/dist/types/components/input/reset/index.d.ts +19 -0
  349. package/dist/types/components/input/select/index.d.ts +41 -18
  350. package/dist/types/components/input/submit/index.d.ts +19 -0
  351. package/dist/types/components/item/Item.d.ts +10 -0
  352. package/dist/types/components/item/index.d.ts +8 -5
  353. package/dist/types/components/label/index.d.ts +6 -0
  354. package/dist/types/components/lazy/index.d.ts +7 -0
  355. package/dist/types/components/load-more/index.d.ts +11 -0
  356. package/dist/types/components/picker/demo/index.d.ts +7 -2
  357. package/dist/types/components/picker/index.d.ts +20 -6
  358. package/dist/types/components/picker/menu/index.d.ts +8 -0
  359. package/dist/types/components/picker/option/index.d.ts +2 -0
  360. package/dist/types/components/popup/index.d.ts +1 -1
  361. package/dist/types/components/submit/index.d.ts +0 -1
  362. package/dist/types/components/table/demo/filtered/Root.d.ts +2 -0
  363. package/dist/types/components/table/demo/filtered/index.d.ts +6 -6
  364. package/dist/types/components/table/demo/index.d.ts +1 -1
  365. package/dist/types/components/table/expandable/cell/index.d.ts +0 -1
  366. package/dist/types/components/table/expandable/row/index.d.ts +0 -1
  367. package/dist/types/components/table/footer/index.d.ts +3 -0
  368. package/dist/types/components/table/index.d.ts +2 -0
  369. package/dist/types/components/theme/color/index.d.ts +5 -0
  370. package/dist/types/components/theme/color/variant/index.d.ts +6 -0
  371. package/dist/types/components/theme/colors/index.d.ts +3 -0
  372. package/dist/types/components/theme/picker/index.d.ts +4 -0
  373. package/dist/types/components/toggle-switch/index.d.ts +7 -2
  374. package/dist/types/components.d.ts +658 -182
  375. package/dist/types/global/Observers.d.ts +8 -0
  376. package/dist/types/global/index.d.ts +4 -0
  377. package/dist/types/model/Color.d.ts +7 -1
  378. package/dist/types/model/Data.d.ts +4 -0
  379. package/dist/types/model/Icon.d.ts +8 -0
  380. package/dist/types/model/Listenable.d.ts +10 -1
  381. package/dist/types/model/Option.d.ts +2 -0
  382. package/dist/types/model/index.d.ts +1 -1
  383. package/dist/types/smoothly.d.ts +1 -1
  384. package/package.json +7 -11
  385. package/dist/cjs/Data-afbe461d.js +0 -807
  386. package/dist/cjs/Data-afbe461d.js.map +0 -1
  387. package/dist/cjs/getLanguage-7e53766b.js.map +0 -1
  388. package/dist/cjs/index-6ae370b4.js.map +0 -1
  389. package/dist/cjs/smoothly-accordion_66.cjs.entry.js +0 -29732
  390. package/dist/cjs/smoothly-accordion_66.cjs.entry.js.map +0 -1
  391. package/dist/cjs/smoothly-radio-group.cjs.entry.js +0 -22
  392. package/dist/cjs/smoothly-radio-group.cjs.entry.js.map +0 -1
  393. package/dist/collection/components/filter/Clearable.js +0 -8
  394. package/dist/collection/components/filter/Clearable.js.map +0 -1
  395. package/dist/collection/components/icon/Icon.js +0 -2
  396. package/dist/collection/components/icon/Icon.js.map +0 -1
  397. package/dist/collection/components/input/Changeable.js +0 -8
  398. package/dist/collection/components/input/Changeable.js.map +0 -1
  399. package/dist/collection/components/radio/index.js.map +0 -1
  400. package/dist/collection/components/radio/style.css +0 -31
  401. package/dist/collection/components/radio-button/Selected.js +0 -2
  402. package/dist/collection/components/radio-button/Selected.js.map +0 -1
  403. package/dist/collection/components/radio-button/index.js.map +0 -1
  404. package/dist/collection/components/radio-button/item/index.js +0 -117
  405. package/dist/collection/components/radio-button/item/index.js.map +0 -1
  406. package/dist/collection/components/radio-button/item/style.css +0 -85
  407. package/dist/collection/components/radio-group/index.js +0 -43
  408. package/dist/collection/components/radio-group/index.js.map +0 -1
  409. package/dist/collection/components/radio-group/style.css +0 -36
  410. package/dist/collection/components/table/testing/data.js.map +0 -1
  411. package/dist/collection/components/table/testing/index.js +0 -28
  412. package/dist/collection/components/table/testing/index.js.map +0 -1
  413. package/dist/collection/components/table/testing/style.css +0 -8
  414. package/dist/collection/model/ClientIdentifier.js +0 -13
  415. package/dist/collection/model/ClientIdentifier.js.map +0 -1
  416. package/dist/esm/Data-77d2bdbe.js +0 -803
  417. package/dist/esm/Data-77d2bdbe.js.map +0 -1
  418. package/dist/esm/getLanguage-9c833eef.js.map +0 -1
  419. package/dist/esm/index-c196715a.js.map +0 -1
  420. package/dist/esm/smoothly-accordion_66.entry.js +0 -29663
  421. package/dist/esm/smoothly-accordion_66.entry.js.map +0 -1
  422. package/dist/esm/smoothly-radio-group.entry.js +0 -18
  423. package/dist/esm/smoothly-radio-group.entry.js.map +0 -1
  424. package/dist/smoothly/p-1b714a63.js +0 -2
  425. package/dist/smoothly/p-1b714a63.js.map +0 -1
  426. package/dist/smoothly/p-1efa3261.entry.js +0 -2
  427. package/dist/smoothly/p-1efa3261.entry.js.map +0 -1
  428. package/dist/smoothly/p-4ff439dd.entry.js +0 -2
  429. package/dist/smoothly/p-74a3586c.js +0 -2
  430. package/dist/smoothly/p-74a3586c.js.map +0 -1
  431. package/dist/smoothly/p-8a45ae84.entry.js +0 -2
  432. package/dist/smoothly/p-8a45ae84.entry.js.map +0 -1
  433. package/dist/smoothly/p-90b340b4.entry.js +0 -2
  434. package/dist/smoothly/p-90b340b4.entry.js.map +0 -1
  435. package/dist/smoothly/p-d0b8061e.js.map +0 -1
  436. package/dist/types/components/filter/Clearable.d.ts +0 -6
  437. package/dist/types/components/icon/Icon.d.ts +0 -4
  438. package/dist/types/components/input/Changeable.d.ts +0 -7
  439. package/dist/types/components/radio/index.d.ts +0 -13
  440. package/dist/types/components/radio-button/Selected.d.ts +0 -5
  441. package/dist/types/components/radio-button/index.d.ts +0 -13
  442. package/dist/types/components/radio-button/item/index.d.ts +0 -12
  443. package/dist/types/components/radio-group/index.d.ts +0 -4
  444. package/dist/types/model/ClientIdentifier.d.ts +0 -5
  445. /package/dist/collection/components/{radio-button → lazy}/style.css +0 -0
  446. /package/dist/collection/components/table/{testing → demo/testing}/data.js +0 -0
  447. /package/dist/smoothly/{p-663ccbd0.entry.js.map → p-12182a73.entry.js.map} +0 -0
  448. /package/dist/smoothly/{p-9992c8c4.entry.js.map → p-47151a53.entry.js.map} +0 -0
  449. /package/dist/smoothly/{p-b82ef190.entry.js.map → p-635c813e.entry.js.map} +0 -0
  450. /package/dist/smoothly/{p-dbd1afa9.entry.js.map → p-6aebb818.entry.js.map} +0 -0
  451. /package/dist/smoothly/{p-c4ffc15d.entry.js.map → p-7a69b43f.entry.js.map} +0 -0
  452. /package/dist/smoothly/{p-4d743f07.entry.js.map → p-7bf147bf.entry.js.map} +0 -0
  453. /package/dist/smoothly/{p-f96e41aa.entry.js.map → p-cb493516.entry.js.map} +0 -0
  454. /package/dist/smoothly/{p-ce4e6f44.entry.js.map → p-eef1c80b.entry.js.map} +0 -0
  455. /package/dist/types/components/table/{testing → demo/testing}/data.d.ts +0 -0
  456. /package/dist/types/components/table/{testing → demo/testing}/index.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/picker/menu/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from \"@stencil/core\"\nimport { Notice, Option } from \"../../../model\"\nimport { Looks } from \"../../input/Looks\"\nimport { Slot } from \"../slot-elements\"\n\nfunction* chain<T>(...iterables: Iterable<T>[]): Iterable<T> {\n\tfor (const iterable of iterables)\n\t\tyield* iterable\n}\n\nfunction restore<T extends Option>(target: T | undefined, source: Option): T | undefined {\n\ttarget?.set.selected((target.selected = source.selected))\n\ttarget?.set.readonly((target.readonly = source.readonly))\n\ttarget?.set.visible((target.visible = source.visible))\n\ttarget?.set.value((target.value = source.value))\n\ttarget?.set.search((target.search = source.search))\n\treturn target\n}\n\nfunction restoreListener(ref: HTMLElement | undefined, option: Option) {\n\tref?.addEventListener(\"smoothlyPickerOptionLoad\", (e: CustomEvent<Option>) => restore(e.detail, option))\n}\nexport interface Controls {\n\tremember: () => void\n\trestore: () => void\n}\n@Component({\n\ttag: \"smoothly-picker-menu\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyPickerMenu {\n\t@Element() element: HTMLSmoothlyPickerMenuElement\n\t@Prop() looks: Looks\n\t@Prop({ reflect: true }) multiple = false\n\t@Prop({ reflect: true }) mutable = false\n\t@Prop({ reflect: true }) readonly = false\n\t@Prop() validator?: (value: string) => boolean | { result: boolean; notice: Notice }\n\t@State() backend = new Map<any, Option & { clone: Node }>() // value -> Option\n\t@State() options = new Map<any, Option>() // value -> Option\n\t@State() created = new Map<any, Option.Created>()\n\t@State() search = \"\"\n\t@State() valid = false\n\t@State() display: Node[]\n\t@Event() notice: EventEmitter<Notice>\n\t@Event() smoothlyPickerMenuLoaded: EventEmitter<Controls>\n\tprivate memory?: { backend: SmoothlyPickerMenu[\"backend\"]; options: SmoothlyPickerMenu[\"options\"] }\n\tprivate listElement?: HTMLElement\n\tprivate searchElement?: HTMLElement\n\n\tcomponentDidLoad() {\n\t\tthis.smoothlyPickerMenuLoaded.emit({\n\t\t\tremember: () => {\n\t\t\t\tthis.memory = {\n\t\t\t\t\tbackend: new Map(Array.from(this.backend.entries(), ([value, option]) => [value, { ...option }])),\n\t\t\t\t\toptions: new Map(Array.from(this.options.entries(), ([value, option]) => [value, { ...option }])),\n\t\t\t\t}\n\t\t\t},\n\t\t\trestore: () => {\n\t\t\t\tif (this.memory) {\n\t\t\t\t\tfor (const option of this.options.values()) {\n\t\t\t\t\t\tconst memory = this.memory.options.get(option.value)\n\t\t\t\t\t\tif (memory != undefined)\n\t\t\t\t\t\t\trestore(option, memory)\n\t\t\t\t\t\telse if (this.created.get(option.value))\n\t\t\t\t\t\t\toption.set.selected((option.selected = false))\n\t\t\t\t\t}\n\t\t\t\t\tfor (const option of this.backend.values()) {\n\t\t\t\t\t\tconst memory = this.memory.backend.get(option.value)\n\t\t\t\t\t\tif (memory != undefined)\n\t\t\t\t\t\t\trestore(option, memory)\n\t\t\t\t\t\telse if (this.created.get(option.value))\n\t\t\t\t\t\t\toption.set.selected((option.selected = false))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\t}\n\n\t@Watch(\"readonly\")\n\treadonlyChanged() {\n\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\toption.element, option.set.readonly(this.readonly)\n\t}\n\t@Listen(\"smoothlyPickerOptionLoad\")\n\toptionLoadHandler(event: CustomEvent<Option.Load>) {\n\t\tif (!this.listElement || !event.composedPath().includes(this.listElement)) {\n\t\t\tevent.stopPropagation()\n\t\t\tevent.detail.set.readonly(this.readonly)\n\n\t\t\tconst current = this.options.get(event.detail.value)\n\t\t\tif (current)\n\t\t\t\tevent.detail.set.selected(current.element.selected)\n\t\t}\n\t}\n\t@Listen(\"smoothlyPickerOptionLoaded\")\n\toptionLoadedHandler(event: CustomEvent<Option>) {\n\t\tif (!this.listElement || !event.composedPath().includes(this.listElement)) {\n\t\t\tevent.stopPropagation()\n\t\t\tconst current = restore(this.backend.get(event.detail.value), event.detail)\n\t\t\tthis.backend = new Map(\n\t\t\t\tthis.backend\n\t\t\t\t\t.set(event.detail.value, {\n\t\t\t\t\t\t...event.detail,\n\t\t\t\t\t\tclone: current?.clone ?? event.detail.element.cloneNode(true),\n\t\t\t\t\t})\n\t\t\t\t\t.entries()\n\t\t\t)\n\t\t} else\n\t\t\tthis.options.set(event.detail.value, event.detail)\n\t}\n\t@Listen(\"smoothlyPickerOptionChange\")\n\toptionChangeHandler(event: CustomEvent<Option>) {\n\t\tif (!this.listElement || !event.composedPath().includes(this.listElement)) {\n\t\t\tevent.stopPropagation()\n\t\t\tthis.options.get(event.detail.value)?.set.selected(event.detail.selected)\n\t\t} else {\n\t\t\tconst current = this.backend.get(event.detail.value)\n\t\t\tif (current?.element.parentElement)\n\t\t\t\tcurrent?.set.selected(event.detail.selected)\n\t\t}\n\n\t\tif (!this.readonly && !this.multiple && event.detail.selected)\n\t\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\t\tif (option.value != event.detail.value)\n\t\t\t\t\toption.set.selected(false)\n\t}\n\tinputHandler(event: CustomEvent<Record<string, any>>) {\n\t\tevent.stopPropagation()\n\t\tthis.search = event.detail.search\n\t\tif (!this.search) {\n\t\t\tthis.valid = false\n\t\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\t\toption.set.visible(true)\n\t\t} else {\n\t\t\tthis.valid = !Array.from(this.options.values()).find(option => option.value == this.search)\n\t\t\tconst search = this.search.toLocaleLowerCase()\n\t\t\tfor (const option of chain(this.options.values(), this.backend.values())) {\n\t\t\t\tconst value = option.value.toString().toLocaleLowerCase().includes(search)\n\t\t\t\tconst searches = option.search.some(value => value.includes(search))\n\t\t\t\tconst result = value || searches\n\t\t\t\toption.set.visible(result)\n\t\t\t}\n\t\t}\n\t}\n\taddHandler() {\n\t\tconst validation = !this.validator ? true : this.validator(this.search)\n\t\tif (this.mutable) {\n\t\t\tif (typeof validation == \"object\" ? validation.result : validation) {\n\t\t\t\tif (!this.multiple)\n\t\t\t\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\t\t\t\toption.set.selected(false)\n\t\t\t\tthis.created = new Map(this.created.set(this.search, { value: this.search, selected: true }).entries())\n\t\t\t\tthis.search = \"\"\n\t\t\t\tthis.searchElement?.focus()\n\t\t\t\tthis.valid = false\n\t\t\t}\n\t\t\tif (typeof validation == \"object\")\n\t\t\t\tthis.notice.emit(validation.notice)\n\t\t}\n\t}\n\tkeyDownHandler(event: KeyboardEvent) {\n\t\tif (event.key == \"Enter\") {\n\t\t\tevent.preventDefault()\n\t\t\tthis.addHandler()\n\t\t}\n\t}\n\t@Listen(\"smoothlySlotEmpty\")\n\temptyDisplayHandler(event: CustomEvent<Slot>) {\n\t\tevent.stopPropagation()\n\t\tevent.detail.set.nodes(this.display)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host class={{ valid: this.valid }}>\n\t\t\t\t<smoothly-slotted-elements class={\"hide\"} onSmoothlySlottedChange={e => (this.display = e.detail)}>\n\t\t\t\t\t<slot name=\"display\" />\n\t\t\t\t</smoothly-slotted-elements>\n\t\t\t\t<div class={\"hide\"}>\n\t\t\t\t\t<slot />\n\t\t\t\t\t{Array.from(this.created.values(), option => (\n\t\t\t\t\t\t<smoothly-picker-option key={option.value} value={option.value} selected={option.selected}>\n\t\t\t\t\t\t\t{option.value}\n\t\t\t\t\t\t\t<smoothly-slot-elements slot=\"display\" nodes={this.display} />\n\t\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t\t<div class={\"controls\"}>\n\t\t\t\t\t<smoothly-input\n\t\t\t\t\t\tref={e => (this.searchElement = e)}\n\t\t\t\t\t\tname=\"search\"\n\t\t\t\t\t\tvalue={this.search}\n\t\t\t\t\t\tlooks={this.looks}\n\t\t\t\t\t\tonKeyDown={e => this.keyDownHandler(e)}\n\t\t\t\t\t\tonSmoothlyInput={e => this.inputHandler(e)}\n\t\t\t\t\t\tonSmoothlyChange={e => e.stopPropagation()}\n\t\t\t\t\t\tonSmoothlyBlur={e => e.stopPropagation()}>\n\t\t\t\t\t\t<slot name=\"search\" />\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t{this.mutable && !this.readonly ? (\n\t\t\t\t\t\t<button onClick={() => this.addHandler()} disabled={!this.valid} type={\"button\"}>\n\t\t\t\t\t\t\t<smoothly-icon name=\"add-outline\" />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t) : null}\n\t\t\t\t</div>\n\t\t\t\t<div class={\"list\"} ref={e => (this.listElement = e)}>\n\t\t\t\t\t{Array.from(this.backend.values()).map(option => (\n\t\t\t\t\t\t<smoothly-slot-elements ref={e => restoreListener(e, option)} clone={false} nodes={option.clone} />\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/picker/menu/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from \"@stencil/core\"\nimport global from \"../../../global/index\"\nimport { Notice, Option } from \"../../../model\"\nimport { Looks } from \"../../input/Looks\"\nimport { Slot } from \"../slot-elements\"\n\nconst Observers = global().Observers\n\nfunction* chain<T>(...iterables: Iterable<T>[]): Iterable<T> {\n\tfor (const iterable of iterables)\n\t\tyield* iterable\n}\n\nfunction restore<T extends Option>(target: T | undefined, source: Option): T | undefined {\n\ttarget?.set.selected((target.selected = source.selected))\n\ttarget?.set.readonly((target.readonly = source.readonly))\n\ttarget?.set.visible((target.visible = source.visible))\n\ttarget?.set.value((target.value = source.value))\n\ttarget?.set.search((target.search = source.search))\n\treturn target\n}\nfunction restoreListener(ref: HTMLElement | undefined, option: Option) {\n\tref?.addEventListener(\"smoothlyPickerOptionLoad\", (e: CustomEvent<Option>) => restore(e.detail, option))\n}\nexport interface Controls {\n\tremember: () => void\n\trestore: () => void\n\tclear: () => void\n}\n@Component({\n\ttag: \"smoothly-picker-menu\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyPickerMenu {\n\t@Element() element: HTMLSmoothlyPickerMenuElement\n\t@Prop() looks: Looks\n\t@Prop({ reflect: true }) open = false\n\t@Prop({ reflect: true }) multiple = false\n\t@Prop({ reflect: true }) mutable = false\n\t@Prop({ reflect: true }) readonly = false\n\t@Prop() validator?: (value: string) => boolean | { result: boolean; notice: Notice }\n\t@State() backend = new Map<any, Option & { clone: Node }>() // value -> Option\n\t@State() options = new Map<any, Option>() // value -> Option\n\t@State() created = new Map<any, Option.Created>()\n\t@State() search = \"\"\n\t@State() valid = false\n\t@State() display: Node[]\n\t@State() flip = false\n\t@State() flipChecked = false\n\t@Event() notice: EventEmitter<Notice>\n\t@Event() smoothlyPickerMenuLoaded: EventEmitter<Controls>\n\tprivate memory?: { backend: SmoothlyPickerMenu[\"backend\"]; options: SmoothlyPickerMenu[\"options\"] }\n\tprivate listElement?: HTMLElement\n\tprivate searchElement?: HTMLElement\n\n\tcomponentWillLoad() {\n\t\tif (!Observers.has(this.element)) {\n\t\t\tconst threshold = 0.4\n\t\t\tObservers.set(\n\t\t\t\tthis.element,\n\t\t\t\tnew IntersectionObserver(\n\t\t\t\t\tentries =>\n\t\t\t\t\t\t(entries.find(entry => entry.target == this.element)?.intersectionRatio ?? 0) < threshold &&\n\t\t\t\t\t\t!this.flipChecked &&\n\t\t\t\t\t\t((this.flip = !this.flip), (this.flipChecked = true)),\n\t\t\t\t\t{ threshold }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t}\n\tcomponentDidLoad() {\n\t\tthis.smoothlyPickerMenuLoaded.emit({\n\t\t\tremember: () => {\n\t\t\t\tthis.memory = {\n\t\t\t\t\tbackend: new Map(Array.from(this.backend.entries(), ([value, option]) => [value, { ...option }])),\n\t\t\t\t\toptions: new Map(Array.from(this.options.entries(), ([value, option]) => [value, { ...option }])),\n\t\t\t\t}\n\t\t\t},\n\t\t\trestore: () => {\n\t\t\t\tif (this.memory) {\n\t\t\t\t\tfor (const option of this.options.values()) {\n\t\t\t\t\t\tconst memory = this.memory.options.get(option.value)\n\t\t\t\t\t\tif (memory != undefined)\n\t\t\t\t\t\t\trestore(option, memory)\n\t\t\t\t\t\telse if (this.created.get(option.value))\n\t\t\t\t\t\t\toption.set.selected((option.selected = false))\n\t\t\t\t\t}\n\t\t\t\t\tfor (const option of this.backend.values()) {\n\t\t\t\t\t\tconst memory = this.memory.backend.get(option.value)\n\t\t\t\t\t\tif (memory != undefined)\n\t\t\t\t\t\t\trestore(option, memory)\n\t\t\t\t\t\telse if (this.created.get(option.value))\n\t\t\t\t\t\t\toption.set.selected((option.selected = false))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tclear: () => {\n\t\t\t\tconst backend = Array.from(this.backend.entries())\n\t\t\t\tbackend.filter(([key]) => this.created.has(key)).forEach(([, option]) => option.set.selected(false))\n\t\t\t\tthis.backend = new Map(backend.filter(([key]) => !this.created.has(key)))\n\t\t\t\tthis.options = new Map(Array.from(this.options.entries()).filter(([key]) => !this.created.has(key)))\n\t\t\t\tthis.created = new Map()\n\t\t\t},\n\t\t})\n\t}\n\tdisconnectedCallback() {\n\t\tif (!this.element.parentElement) {\n\t\t\tObservers.get(this.element)?.disconnect()\n\t\t\tObservers.remove(this.element)\n\t\t}\n\t}\n\t@Watch(\"open\")\n\topenChange() {\n\t\tconst observer = Observers.get(this.element)\n\t\tif (this.open)\n\t\t\tobserver?.observe(this.element)\n\t\telse\n\t\t\tobserver?.unobserve(this.element)\n\t}\n\n\t@Watch(\"readonly\")\n\treadonlyChanged() {\n\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\toption.element, option.set.readonly(this.readonly)\n\t}\n\t@Listen(\"scroll\", { target: \"window\" })\n\tscrollHandler() {\n\t\tthis.flipChecked = false\n\t}\n\t@Listen(\"smoothlyPickerOptionLoad\")\n\toptionLoadHandler(event: CustomEvent<Option.Load>) {\n\t\tif (!this.listElement || !event.composedPath().includes(this.listElement)) {\n\t\t\tevent.stopPropagation()\n\t\t\tevent.detail.set.readonly(this.readonly)\n\n\t\t\tconst current = this.options.get(event.detail.value)\n\t\t\tif (current)\n\t\t\t\tevent.detail.set.selected(current.element.selected)\n\t\t}\n\t}\n\t@Listen(\"smoothlyPickerOptionLoaded\")\n\toptionLoadedHandler(event: CustomEvent<Option>) {\n\t\tif (!this.listElement || !event.composedPath().includes(this.listElement)) {\n\t\t\tevent.stopPropagation()\n\t\t\tconst current = restore(this.backend.get(event.detail.value), event.detail)\n\t\t\tthis.backend = new Map(\n\t\t\t\tthis.backend\n\t\t\t\t\t.set(event.detail.value, {\n\t\t\t\t\t\t...event.detail,\n\t\t\t\t\t\tclone: current?.clone ?? event.detail.element.cloneNode(true),\n\t\t\t\t\t})\n\t\t\t\t\t.entries()\n\t\t\t)\n\t\t} else\n\t\t\tthis.options.set(event.detail.value, event.detail)\n\t}\n\t@Listen(\"smoothlyPickerOptionChange\")\n\toptionChangeHandler(event: CustomEvent<Option>) {\n\t\tif (!this.listElement || !event.composedPath().includes(this.listElement)) {\n\t\t\tevent.stopPropagation()\n\t\t\tthis.options.get(event.detail.value)?.set.selected(event.detail.selected)\n\t\t} else {\n\t\t\tconst current = this.backend.get(event.detail.value)\n\t\t\tif (current?.element.parentElement)\n\t\t\t\tcurrent?.set.selected(event.detail.selected)\n\t\t}\n\n\t\tif (!this.readonly && !this.multiple && event.detail.selected)\n\t\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\t\tif (option.value != event.detail.value)\n\t\t\t\t\toption.set.selected(false)\n\t}\n\tinputHandler(event: CustomEvent<Record<string, any>>) {\n\t\tevent.stopPropagation()\n\t\tthis.search = event.detail.search\n\t\tif (!this.search) {\n\t\t\tthis.valid = false\n\t\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\t\toption.set.visible(true)\n\t\t} else {\n\t\t\tthis.valid = !Array.from(this.options.values()).find(option => option.value == this.search)\n\t\t\tconst search = this.search.toLocaleLowerCase()\n\t\t\tfor (const option of chain(this.options.values(), this.backend.values())) {\n\t\t\t\tconst value = option.value.toString().toLocaleLowerCase().includes(search)\n\t\t\t\tconst searches = option.search.some(value => value.includes(search))\n\t\t\t\tconst result = value || searches\n\t\t\t\toption.set.visible(result)\n\t\t\t}\n\t\t}\n\t}\n\taddHandler() {\n\t\tconst validation = !this.validator ? true : this.validator(this.search)\n\t\tif (this.mutable) {\n\t\t\tif (typeof validation == \"object\" ? validation.result : validation) {\n\t\t\t\tif (!this.multiple)\n\t\t\t\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\t\t\t\toption.set.selected(false)\n\t\t\t\tthis.created = new Map(this.created.set(this.search, { value: this.search, selected: true }).entries())\n\t\t\t\tthis.search = \"\"\n\t\t\t\tthis.searchElement?.focus()\n\t\t\t\tthis.valid = false\n\t\t\t}\n\t\t\tif (typeof validation == \"object\")\n\t\t\t\tthis.notice.emit(validation.notice)\n\t\t}\n\t}\n\tkeyDownHandler(event: KeyboardEvent) {\n\t\tif (event.key == \"Enter\") {\n\t\t\tevent.preventDefault()\n\t\t\tthis.addHandler()\n\t\t}\n\t}\n\t@Listen(\"smoothlySlotEmpty\")\n\temptyDisplayHandler(event: CustomEvent<Slot>) {\n\t\tevent.stopPropagation()\n\t\tevent.detail.set.nodes(this.display)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host class={{ valid: this.valid, flip: this.flip }}>\n\t\t\t\t<smoothly-slotted-elements class={\"hide\"} onSmoothlySlottedChange={e => (this.display = e.detail)}>\n\t\t\t\t\t<slot name=\"display\" />\n\t\t\t\t</smoothly-slotted-elements>\n\t\t\t\t<div class={\"hide\"}>\n\t\t\t\t\t<slot />\n\t\t\t\t\t{Array.from(this.created.values(), option => (\n\t\t\t\t\t\t<smoothly-picker-option key={option.value} value={option.value} selected={option.selected}>\n\t\t\t\t\t\t\t{option.value}\n\t\t\t\t\t\t\t<smoothly-slot-elements slot=\"display\" nodes={this.display} />\n\t\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t\t<div class={\"controls\"}>\n\t\t\t\t\t<smoothly-input\n\t\t\t\t\t\tref={e => (this.searchElement = e)}\n\t\t\t\t\t\tname=\"search\"\n\t\t\t\t\t\tvalue={this.search}\n\t\t\t\t\t\tlooks={this.looks}\n\t\t\t\t\t\tonKeyDown={e => this.keyDownHandler(e)}\n\t\t\t\t\t\tonSmoothlyInput={e => this.inputHandler(e)}\n\t\t\t\t\t\tonSmoothlyChange={e => e.stopPropagation()}\n\t\t\t\t\t\tonSmoothlyBlur={e => e.stopPropagation()}\n\t\t\t\t\t\tonSmoothlyInputLoad={e => e.stopPropagation()}>\n\t\t\t\t\t\t<slot name=\"search\" />\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t{this.mutable && !this.readonly ? (\n\t\t\t\t\t\t<button onClick={() => this.addHandler()} disabled={!this.valid} type={\"button\"}>\n\t\t\t\t\t\t\t<smoothly-icon name=\"add-outline\" />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t) : null}\n\t\t\t\t</div>\n\t\t\t\t<div class={\"list\"} ref={e => (this.listElement = e)}>\n\t\t\t\t\t{Array.from(this.backend.values())\n\t\t\t\t\t\t.sort((a, b) => a.position - b.position)\n\t\t\t\t\t\t.map(option => (\n\t\t\t\t\t\t\t<smoothly-slot-elements ref={e => restoreListener(e, option)} clone={false} nodes={option.clone} />\n\t\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
@@ -4,31 +4,41 @@
4
4
  gap: 0.5rem;
5
5
  position: absolute;
6
6
  z-index: 4;
7
- top: 100%;
8
7
  left: -1px;
9
8
  right: -1px;
9
+ min-width: max-content;
10
10
  background-color: rgb(var(--background-color, var(--smoothly-color-shade)));
11
11
  padding: 0.5rem;
12
12
  border: rgb(var(--text-color, var(--smoothly-color-contrast))) solid 1px;
13
13
  }
14
- .list {
14
+ :host:not(.flip) {
15
+ top: 100%;
16
+ }
17
+ :host.flip {
18
+ bottom: 100%;
19
+ }
20
+ :host:not([open]) {
21
+ display: none;
22
+ }
23
+ :host .list {
15
24
  display: grid;
16
25
  grid-template-columns: auto 1fr auto;
17
26
  align-items: center;
18
27
  row-gap: 0.5ch;
19
- overflow: auto;
28
+ overflow-y: auto;
20
29
  max-height: calc(1.75rem * 10 + 0.5ch * 9);
21
30
  padding-right: 0.5rem;
31
+ padding-bottom: 0.25rem;
22
32
  }
23
- .hide {
33
+ :host .hide {
24
34
  display: none;
25
35
  }
26
- .controls {
36
+ :host .controls {
27
37
  display: grid;
28
38
  grid-template-columns: 1fr auto;
29
39
  gap: 0.5rem;
30
40
  transition: grid-template-columns 200ms linear;
31
41
  }
32
- .controls > button:disabled {
42
+ :host .controls > button:disabled {
33
43
  opacity: 0.3;
34
44
  }
@@ -17,18 +17,25 @@ export class SmoothlyPickerOption {
17
17
  this.visible = true;
18
18
  this.value = undefined;
19
19
  this.search = [];
20
+ this.position = -1;
21
+ this.required = false;
20
22
  this.readonly = false;
21
23
  this.slotted = [];
22
24
  }
23
25
  get option() {
26
+ var _a;
24
27
  return {
25
28
  element: this.element,
26
29
  selected: this.selected,
27
30
  readonly: this.readonly,
31
+ required: this.required,
28
32
  visible: this.visible,
29
33
  search: this.search,
30
34
  value: this.value,
31
35
  slotted: this.slotted,
36
+ position: this.position >= 0 || !((_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement)
37
+ ? this.position
38
+ : Array.from(this.element.parentElement.parentElement.children).indexOf(this.element.parentElement),
32
39
  set: {
33
40
  selected: selected => (this.selected = selected),
34
41
  readonly: readonly => (this.readonly = readonly),
@@ -43,6 +50,8 @@ export class SmoothlyPickerOption {
43
50
  this.smoothlyPickerOptionChange.emit(this.option);
44
51
  }
45
52
  componentWillLoad() {
53
+ if (this.required)
54
+ this.selected = true;
46
55
  this.smoothlyPickerOptionLoad.emit(((_a) => {
47
56
  var { slotted } = _a, option = __rest(_a, ["slotted"]);
48
57
  return option;
@@ -56,11 +65,11 @@ export class SmoothlyPickerOption {
56
65
  this.slotted = event.detail;
57
66
  }
58
67
  async clickHandler() {
59
- if (!this.readonly)
68
+ if (!this.readonly && !this.required)
60
69
  this.selected = !this.selected;
61
70
  }
62
71
  render() {
63
- return (h(Host, { class: { visible: this.visible }, onClick: () => this.clickHandler() }, h("div", { class: "display" }, h("slot", { name: "display" })), h("div", { class: "content" }, h("smoothly-slotted-elements", { onSmoothlySlottedChange: e => this.slottedChangeHandler(e), clone: true }, h("slot", null)), h("slot", { name: "label" })), h("button", { type: "button" }, h("smoothly-icon", { name: this.selected ? "checkbox-outline" : "square-outline" }))));
72
+ return (h(Host, { class: { visible: this.visible }, onClick: () => this.clickHandler() }, h("div", { part: "display", class: "display" }, h("slot", { name: "display" })), h("div", { part: "content", class: "content" }, h("smoothly-slotted-elements", { onSmoothlySlottedChange: e => this.slottedChangeHandler(e), clone: true }, h("slot", null)), h("slot", { name: "label" })), h("button", { type: "button" }, h("smoothly-icon", { name: this.selected ? "checkbox-outline" : "square-outline" }))));
64
73
  }
65
74
  static get is() { return "smoothly-picker-option"; }
66
75
  static get encapsulation() { return "shadow"; }
@@ -144,6 +153,42 @@ export class SmoothlyPickerOption {
144
153
  "text": ""
145
154
  },
146
155
  "defaultValue": "[]"
156
+ },
157
+ "position": {
158
+ "type": "number",
159
+ "mutable": false,
160
+ "complexType": {
161
+ "original": "number",
162
+ "resolved": "number",
163
+ "references": {}
164
+ },
165
+ "required": false,
166
+ "optional": false,
167
+ "docs": {
168
+ "tags": [],
169
+ "text": ""
170
+ },
171
+ "attribute": "position",
172
+ "reflect": true,
173
+ "defaultValue": "-1"
174
+ },
175
+ "required": {
176
+ "type": "boolean",
177
+ "mutable": false,
178
+ "complexType": {
179
+ "original": "boolean",
180
+ "resolved": "boolean",
181
+ "references": {}
182
+ },
183
+ "required": false,
184
+ "optional": false,
185
+ "docs": {
186
+ "tags": [],
187
+ "text": ""
188
+ },
189
+ "attribute": "required",
190
+ "reflect": true,
191
+ "defaultValue": "false"
147
192
  }
148
193
  };
149
194
  }
@@ -166,7 +211,7 @@ export class SmoothlyPickerOption {
166
211
  },
167
212
  "complexType": {
168
213
  "original": "Option.Load",
169
- "resolved": "{ value: any; selected: boolean; readonly: boolean; element: HTMLSmoothlyPickerOptionElement; search: string[]; visible: boolean; set: { selected: (selected: boolean) => void; visible: (visible: boolean) => void; readonly: (readonly: boolean) => void; search: (search: string[]) => void; value: (value: any) => void; }; }",
214
+ "resolved": "{ value: any; selected: boolean; required: boolean; readonly: boolean; element: HTMLSmoothlyPickerOptionElement; search: string[]; visible: boolean; position: number; set: { selected: (selected: boolean) => void; visible: (visible: boolean) => void; readonly: (readonly: boolean) => void; search: (search: string[]) => void; value: (value: any) => void; }; }",
170
215
  "references": {
171
216
  "Option": {
172
217
  "location": "import",
@@ -239,6 +284,9 @@ export class SmoothlyPickerOption {
239
284
  static get elementRef() { return "element"; }
240
285
  static get watchers() {
241
286
  return [{
287
+ "propName": "position",
288
+ "methodName": "emitChange"
289
+ }, {
242
290
  "propName": "selected",
243
291
  "methodName": "emitChange"
244
292
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/picker/option/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { Option } from \"../../../model\"\n@Component({\n\ttag: \"smoothly-picker-option\",\n\tstyleUrl: \"style.css\",\n\tshadow: true,\n})\nexport class SmoothlyPickerOption {\n\t@Element() element: HTMLSmoothlyPickerOptionElement\n\t@Prop({ mutable: true, reflect: true }) selected = false\n\t@Prop({ mutable: true, reflect: true }) visible = true\n\t@Prop({ mutable: true }) value: any\n\t@Prop({ mutable: true }) search: string[] = []\n\t@State() readonly = false\n\t@State() slotted: Node[] = []\n\t@Event() smoothlyPickerOptionLoad: EventEmitter<Option.Load>\n\t@Event() smoothlyPickerOptionLoaded: EventEmitter<Option>\n\t@Event() smoothlyPickerOptionChange: EventEmitter<Option>\n\tget option(): Option {\n\t\treturn {\n\t\t\telement: this.element,\n\t\t\tselected: this.selected,\n\t\t\treadonly: this.readonly,\n\t\t\tvisible: this.visible,\n\t\t\tsearch: this.search,\n\t\t\tvalue: this.value,\n\t\t\tslotted: this.slotted,\n\t\t\tset: {\n\t\t\t\tselected: selected => (this.selected = selected),\n\t\t\t\treadonly: readonly => (this.readonly = readonly),\n\t\t\t\tvisible: visible => (this.visible = visible),\n\t\t\t\tsearch: search => (this.search = search),\n\t\t\t\tvalue: value => (this.value = value),\n\t\t\t},\n\t\t}\n\t}\n\t@Watch(\"selected\")\n\t@Watch(\"slotted\")\n\temitChange() {\n\t\tif (this.element.parentElement)\n\t\t\tthis.smoothlyPickerOptionChange.emit(this.option)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.smoothlyPickerOptionLoad.emit((({ slotted, ...option }) => option)(this.option))\n\t}\n\tcomponentDidLoad() {\n\t\tthis.smoothlyPickerOptionLoaded.emit(this.option)\n\t}\n\tslottedChangeHandler(event: CustomEvent<Node[]>) {\n\t\tevent.stopPropagation()\n\t\tthis.slotted = event.detail\n\t}\n\t@Method()\n\tasync clickHandler() {\n\t\tif (!this.readonly)\n\t\t\tthis.selected = !this.selected\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={{ visible: this.visible }} onClick={() => this.clickHandler()}>\n\t\t\t\t<div class={\"display\"}>\n\t\t\t\t\t<slot name=\"display\" />\n\t\t\t\t</div>\n\t\t\t\t<div class={\"content\"}>\n\t\t\t\t\t<smoothly-slotted-elements onSmoothlySlottedChange={e => this.slottedChangeHandler(e)} clone>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</smoothly-slotted-elements>\n\t\t\t\t\t<slot name={\"label\"} />\n\t\t\t\t</div>\n\t\t\t\t<button type={\"button\"}>\n\t\t\t\t\t<smoothly-icon name={this.selected ? \"checkbox-outline\" : \"square-outline\"} />\n\t\t\t\t</button>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/picker/option/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { Option } from \"../../../model\"\n@Component({\n\ttag: \"smoothly-picker-option\",\n\tstyleUrl: \"style.css\",\n\tshadow: true,\n})\nexport class SmoothlyPickerOption {\n\t@Element() element: HTMLSmoothlyPickerOptionElement\n\t@Prop({ mutable: true, reflect: true }) selected = false\n\t@Prop({ mutable: true, reflect: true }) visible = true\n\t@Prop({ mutable: true }) value: any\n\t@Prop({ mutable: true }) search: string[] = []\n\t@Prop({ reflect: true }) position = -1\n\t@Prop({ reflect: true }) required = false\n\t@State() readonly = false\n\t@State() slotted: Node[] = []\n\t@Event() smoothlyPickerOptionLoad: EventEmitter<Option.Load>\n\t@Event() smoothlyPickerOptionLoaded: EventEmitter<Option>\n\t@Event() smoothlyPickerOptionChange: EventEmitter<Option>\n\n\tget option(): Option {\n\t\treturn {\n\t\t\telement: this.element,\n\t\t\tselected: this.selected,\n\t\t\treadonly: this.readonly,\n\t\t\trequired: this.required,\n\t\t\tvisible: this.visible,\n\t\t\tsearch: this.search,\n\t\t\tvalue: this.value,\n\t\t\tslotted: this.slotted,\n\t\t\tposition:\n\t\t\t\tthis.position >= 0 || !this.element.parentElement?.parentElement\n\t\t\t\t\t? this.position\n\t\t\t\t\t: Array.from(this.element.parentElement.parentElement.children).indexOf(this.element.parentElement),\n\t\t\tset: {\n\t\t\t\tselected: selected => (this.selected = selected),\n\t\t\t\treadonly: readonly => (this.readonly = readonly),\n\t\t\t\tvisible: visible => (this.visible = visible),\n\t\t\t\tsearch: search => (this.search = search),\n\t\t\t\tvalue: value => (this.value = value),\n\t\t\t},\n\t\t}\n\t}\n\t@Watch(\"position\")\n\t@Watch(\"selected\")\n\t@Watch(\"slotted\")\n\temitChange() {\n\t\tif (this.element.parentElement)\n\t\t\tthis.smoothlyPickerOptionChange.emit(this.option)\n\t}\n\n\tcomponentWillLoad() {\n\t\tif (this.required)\n\t\t\tthis.selected = true\n\t\tthis.smoothlyPickerOptionLoad.emit((({ slotted, ...option }) => option)(this.option))\n\t}\n\tcomponentDidLoad() {\n\t\tthis.smoothlyPickerOptionLoaded.emit(this.option)\n\t}\n\tslottedChangeHandler(event: CustomEvent<Node[]>) {\n\t\tevent.stopPropagation()\n\t\tthis.slotted = event.detail\n\t}\n\t@Method()\n\tasync clickHandler() {\n\t\tif (!this.readonly && !this.required)\n\t\t\tthis.selected = !this.selected\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={{ visible: this.visible }} onClick={() => this.clickHandler()}>\n\t\t\t\t<div part=\"display\" class={\"display\"}>\n\t\t\t\t\t<slot name=\"display\" />\n\t\t\t\t</div>\n\t\t\t\t<div part=\"content\" class={\"content\"}>\n\t\t\t\t\t<smoothly-slotted-elements onSmoothlySlottedChange={e => this.slottedChangeHandler(e)} clone>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</smoothly-slotted-elements>\n\t\t\t\t\t<slot name={\"label\"} />\n\t\t\t\t</div>\n\t\t\t\t<button type={\"button\"}>\n\t\t\t\t\t<smoothly-icon name={this.selected ? \"checkbox-outline\" : \"square-outline\"} />\n\t\t\t\t</button>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
@@ -8,18 +8,23 @@
8
8
  cursor: pointer;
9
9
  padding: 0.25ch 0.5rem
10
10
  }
11
- .display {
11
+ :host .display {
12
12
  padding-left: 0;
13
13
  }
14
- button {
14
+ :host button {
15
15
  color: unset;
16
16
  background-color: inherit;
17
17
  border: none;
18
18
  padding-right: 0;
19
19
  }
20
- .content {
20
+ :host .content {
21
21
  display: flex;
22
22
  column-gap: 1rem;
23
- flex-wrap: wrap;
24
23
  justify-content: space-between;
25
24
  }
25
+ :host([required]) > * {
26
+ cursor: default;
27
+ }
28
+ :host([required]) button {
29
+ opacity: 0.65;
30
+ }
@@ -5,25 +5,48 @@
5
5
  :host[looks="border"] {
6
6
  border: rgb(var(--text-color, var(--smoothly-color-contrast))) solid 1px;
7
7
  }
8
+ :host[looks="border"][readonly]{
9
+ border: rgba(var(--text-color, var(--smoothly-color-contrast)), .1) solid 1px;
10
+ }
8
11
  :host[looks="line"]::slotted(smoothly-picker-menu smoothly-input),
9
12
  :host[looks="line"] {
10
13
  border-bottom: rgb(var(--text-color, var(--smoothly-color-contrast))) solid 1px;
11
14
  }
15
+ :host[looks="line"][readonly]{
16
+ border-bottom: rgba(var(--text-color, var(--smoothly-color-contrast)), .1) solid 1px;
17
+ }
12
18
  :host[looks="grid"]::slotted(smoothly-picker-menu smoothly-input),
13
19
  :host[looks="grid"] {
14
20
  border: rgba(var(--text-color, var(--smoothly-color-contrast)), .5) solid .5px;
15
21
  }
22
+ :host[looks="grid"][readonly]{
23
+ border: rgba(var(--text-color, var(--smoothly-color-contrast)), .2) solid .5px;
24
+ }
25
+ :host[looks="transparent"] {
26
+ border: none;
27
+ }
28
+ :host[looks="transparent"]:not(:focus-within) {
29
+ background-color: transparent;
30
+ }
31
+ :host[looks="transparent"]:not(:focus-within) input {
32
+ background: transparent;
33
+ }
34
+ :host[looks="transparent"]:focus-within {
35
+ outline: 1px solid rgb(var(--smoothly-color-contrast));
36
+
37
+ }
16
38
 
17
39
 
18
40
  :host {
19
41
  display: flex;
20
42
  position: relative;
21
43
  width: max-content;
22
- padding: 1.2em 0.7em 0.2em 0.8em;
44
+ padding: 1em 0.7em 0.2em 0.8em;
23
45
  background-color: rgb(var(--background-color, var(--smoothly-color-shade)));
24
46
  }
25
- :host:not([open]) smoothly-picker-menu {
26
- display: none;
47
+ :host div.element {
48
+ display: flex;
49
+ background-color: inherit;
27
50
  }
28
51
  smoothly-slot-elements {
29
52
  white-space: nowrap;
@@ -45,6 +68,8 @@ smoothly-slot-elements {
45
68
  bottom: 0;
46
69
  right: 0;
47
70
  width: 2ch;
71
+ }
72
+ :host:not([looks=transparent]) .selected::after {
48
73
  background: linear-gradient(90deg, rgba(var(--background-color, var(--smoothly-color-shade)), 0) 0%, rgba(var(--background-color, var(--smoothly-color-shade)), 1) 100%);
49
74
  }
50
75
  .selected * {
@@ -8,20 +8,20 @@ export class SmoothlyPopup {
8
8
  onClick() {
9
9
  var _a, _b, _c, _d, _e, _f;
10
10
  if (this.visible == false) {
11
- (_a = this.aside) === null || _a === void 0 ? void 0 : _a.style.setProperty("display", "block");
11
+ (_a = this.popupElement) === null || _a === void 0 ? void 0 : _a.style.setProperty("display", "block");
12
12
  this.cssVariables =
13
- ((_c = (_b = this.aside) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().right) !== null && _c !== void 0 ? _c : 0) >= window.innerWidth
13
+ ((_c = (_b = this.popupElement) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().right) !== null && _c !== void 0 ? _c : 0) >= window.innerWidth
14
14
  ? { "--right": "0.1em" }
15
- : ((_e = (_d = this.aside) === null || _d === void 0 ? void 0 : _d.getBoundingClientRect().left) !== null && _e !== void 0 ? _e : 0) < 0
15
+ : ((_e = (_d = this.popupElement) === null || _d === void 0 ? void 0 : _d.getBoundingClientRect().left) !== null && _e !== void 0 ? _e : 0) < 0
16
16
  ? { "--left": "0.1em" }
17
17
  : this.cssVariables;
18
- (_f = this.aside) === null || _f === void 0 ? void 0 : _f.style.removeProperty("display");
18
+ (_f = this.popupElement) === null || _f === void 0 ? void 0 : _f.style.removeProperty("display");
19
19
  }
20
20
  this.visible = !this.visible;
21
21
  this.popup.emit(this.visible);
22
22
  }
23
23
  render() {
24
- return (h(Host, { style: Object.assign({}, this.cssVariables) }, h("content", { class: "pointer", onClick: () => this.onClick() }, h("slot", null)), h("div", { class: "background", onClick: () => this.onClick() }), h("div", { class: "arrow", onClick: () => this.onClick() }), h("aside", { ref: el => (this.aside = el) }, h("slot", { name: "popup" }))));
24
+ return (h(Host, { style: Object.assign({}, this.cssVariables) }, h("div", { class: "pointer", onClick: () => this.onClick() }, h("slot", null)), h("div", { class: "background", onClick: () => this.onClick() }), h("div", { class: "arrow", onClick: () => this.onClick() }), h("div", { class: "popup", ref: el => (this.popupElement = el) }, h("slot", { name: "popup" }))));
25
25
  }
26
26
  static get is() { return "smoothly-popup"; }
27
27
  static get encapsulation() { return "scoped"; }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/popup/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAOpF,MAAM,OAAO,aAAa;;mBACyB,KAAK;qBACY,MAAM;wBACN,EAAE,QAAQ,EAAE,OAAO,EAAE;;EAIhF,OAAO;;IACd,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE;MAC1B,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;MACjD,IAAI,CAAC,YAAY;QAChB,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,qBAAqB,GAAG,KAAK,mCAAI,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU;UACpE,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE;UACxB,CAAC,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,qBAAqB,GAAG,IAAI,mCAAI,CAAC,CAAC,GAAG,CAAC;YACrD,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE;YACvB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA;MACrB,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;KAC3C;IACD,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAA;IAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;EAC9B,CAAC;EACD,MAAM;IACL,OAAO,CACN,EAAC,IAAI,IAAC,KAAK,oBAAO,IAAI,CAAC,YAAY;MAClC,eAAS,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;QACrD,eAAa,CACJ;MACV,WAAK,KAAK,EAAC,YAAY,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAQ;MAC7D,WAAK,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAQ;MACxD,aAAO,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAClC,YAAM,IAAI,EAAC,OAAO,GAAQ,CACnB,CACF,CACP,CAAA;EACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { Component, Event, EventEmitter, h, Host, Prop, State } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-popup\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyPopup {\n\t@Prop({ mutable: true, reflect: true }) visible = false\n\t@Prop({ mutable: true, reflect: true }) direction: \"up\" | \"down\" = \"down\"\n\t@State() cssVariables: { \"--left\"?: string; \"--right\"?: string } = { \"--left\": \"0.1em\" }\n\t@Event() popup: EventEmitter<boolean>\n\tprivate aside: HTMLElement | undefined\n\n\tprivate onClick() {\n\t\tif (this.visible == false) {\n\t\t\tthis.aside?.style.setProperty(\"display\", \"block\")\n\t\t\tthis.cssVariables =\n\t\t\t\t(this.aside?.getBoundingClientRect().right ?? 0) >= window.innerWidth\n\t\t\t\t\t? { \"--right\": \"0.1em\" }\n\t\t\t\t\t: (this.aside?.getBoundingClientRect().left ?? 0) < 0\n\t\t\t\t\t? { \"--left\": \"0.1em\" }\n\t\t\t\t\t: this.cssVariables\n\t\t\tthis.aside?.style.removeProperty(\"display\")\n\t\t}\n\t\tthis.visible = !this.visible\n\t\tthis.popup.emit(this.visible)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host style={{ ...this.cssVariables }}>\n\t\t\t\t<content class=\"pointer\" onClick={() => this.onClick()}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</content>\n\t\t\t\t<div class=\"background\" onClick={() => this.onClick()}></div>\n\t\t\t\t<div class=\"arrow\" onClick={() => this.onClick()}></div>\n\t\t\t\t<aside ref={el => (this.aside = el)}>\n\t\t\t\t\t<slot name=\"popup\"></slot>\n\t\t\t\t</aside>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/popup/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAOpF,MAAM,OAAO,aAAa;;mBACyB,KAAK;qBACY,MAAM;wBACN,EAAE,QAAQ,EAAE,OAAO,EAAE;;EAIhF,OAAO;;IACd,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE;MAC1B,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;MACxD,IAAI,CAAC,YAAY;QAChB,CAAC,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,qBAAqB,GAAG,KAAK,mCAAI,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU;UAC3E,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE;UACxB,CAAC,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,qBAAqB,GAAG,IAAI,mCAAI,CAAC,CAAC,GAAG,CAAC;YAC5D,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE;YACvB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA;MACrB,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;KAClD;IACD,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAA;IAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;EAC9B,CAAC;EACD,MAAM;IACL,OAAO,CACN,EAAC,IAAI,IAAC,KAAK,oBAAO,IAAI,CAAC,YAAY;MAClC,WAAK,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;QACjD,eAAa,CACR;MACN,WAAK,KAAK,EAAC,YAAY,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAQ;MAC7D,WAAK,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAQ;MACxD,WAAK,KAAK,EAAC,OAAO,EAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACrD,YAAM,IAAI,EAAC,OAAO,GAAQ,CACrB,CACA,CACP,CAAA;EACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { Component, Event, EventEmitter, h, Host, Prop, State } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-popup\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyPopup {\n\t@Prop({ mutable: true, reflect: true }) visible = false\n\t@Prop({ mutable: true, reflect: true }) direction: \"up\" | \"down\" = \"down\"\n\t@State() cssVariables: { \"--left\"?: string; \"--right\"?: string } = { \"--left\": \"0.1em\" }\n\t@Event() popup: EventEmitter<boolean>\n\tprivate popupElement: HTMLElement | undefined\n\n\tprivate onClick() {\n\t\tif (this.visible == false) {\n\t\t\tthis.popupElement?.style.setProperty(\"display\", \"block\")\n\t\t\tthis.cssVariables =\n\t\t\t\t(this.popupElement?.getBoundingClientRect().right ?? 0) >= window.innerWidth\n\t\t\t\t\t? { \"--right\": \"0.1em\" }\n\t\t\t\t\t: (this.popupElement?.getBoundingClientRect().left ?? 0) < 0\n\t\t\t\t\t? { \"--left\": \"0.1em\" }\n\t\t\t\t\t: this.cssVariables\n\t\t\tthis.popupElement?.style.removeProperty(\"display\")\n\t\t}\n\t\tthis.visible = !this.visible\n\t\tthis.popup.emit(this.visible)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host style={{ ...this.cssVariables }}>\n\t\t\t\t<div class=\"pointer\" onClick={() => this.onClick()}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"background\" onClick={() => this.onClick()}></div>\n\t\t\t\t<div class=\"arrow\" onClick={() => this.onClick()}></div>\n\t\t\t\t<div class=\"popup\" ref={el => (this.popupElement = el)}>\n\t\t\t\t\t<slot name=\"popup\"></slot>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
@@ -5,10 +5,10 @@
5
5
  :host[hidden] {
6
6
  display: none;
7
7
  }
8
- :host:not([visible]) aside {
8
+ :host:not([visible]) .popup {
9
9
  display: none;
10
10
  }
11
- :host aside {
11
+ :host .popup {
12
12
  display: inline;
13
13
  position: absolute;
14
14
  padding: 0.3em;
@@ -21,11 +21,11 @@
21
21
  border-radius: 0.6em;
22
22
  z-index: 3;
23
23
  }
24
- :host[direction=down] aside {
24
+ :host[direction=down] .popup {
25
25
  top: 2.2em;
26
26
  box-shadow: 6px 5px 9px -9px black, 5px 6px 9px -9px black;
27
27
  }
28
- :host[direction=up] aside {
28
+ :host[direction=up] .popup {
29
29
  bottom: 2.2em;
30
30
  box-shadow: -6px -5px 9px -9px black, -5px -6px 9px -9px black;
31
31
  }
@@ -194,21 +194,6 @@ export class SmoothlySubmit {
194
194
  }
195
195
  static get events() {
196
196
  return [{
197
- "method": "smoothlySubmit",
198
- "name": "smoothlySubmit",
199
- "bubbles": true,
200
- "cancelable": true,
201
- "composed": true,
202
- "docs": {
203
- "tags": [],
204
- "text": ""
205
- },
206
- "complexType": {
207
- "original": "any",
208
- "resolved": "any",
209
- "references": {}
210
- }
211
- }, {
212
197
  "method": "smoothlyInputLoad",
213
198
  "name": "smoothlyInputLoad",
214
199
  "bubbles": true,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/submit/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAOlD,MAAM,OAAO,cAAc;;iBACe,SAAS;;;oBAGd,KAAK;gBACU,QAAQ;;;mBAGzC,IAAI;;EAKtB,KAAK,CAAC,iBAAiB;IACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;MACpC,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;OACpB;IACF,CAAC,CAAC,CAAA;EACH,CAAC;EAGD,YAAY;;IACX,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,EAAE,CAAA;EACtB,CAAC;EAED,MAAM;IACL,OAAO,CACN,EAAC,MAAM,IAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI;MAC/C,eAAQ,CACA,CACT,CAAA;EACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["import { Component, Event, EventEmitter, h, Listen, Prop } from \"@stencil/core\"\nimport { Color, Fill } from \"../../model\"\nimport { Button } from \"../Button\"\nimport { Submittable } from \"../input/Submittable\"\n\n@Component({\n\ttag: \"smoothly-submit\",\n\tstyleUrl: \"./style.css\",\n\tscoped: true,\n})\nexport class SmoothlySubmit {\n\t@Prop({ reflect: true }) color?: Color = \"success\"\n\t@Prop({ reflect: true }) expand?: \"block\" | \"full\"\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({ reflect: true }) size: \"flexible\" | \"small\" | \"large\" | \"icon\"\n\t@Prop({ reflect: true }) shape?: \"rounded\"\n\t@Prop() prevent = true\n\t@Event() smoothlySubmit: EventEmitter\n\tprivate parent?: Submittable\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: HTMLElement) => void>\n\n\tasync componentWillLoad() {\n\t\tthis.smoothlyInputLoad.emit(parent => {\n\t\t\tif (Submittable.is(parent)) {\n\t\t\t\tthis.parent = parent\n\t\t\t}\n\t\t})\n\t}\n\n\t@Listen(\"click\")\n\tclickHandler() {\n\t\tthis.parent?.submit()\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Button disabled={this.disabled} type={this.type}>\n\t\t\t\t<slot />\n\t\t\t</Button>\n\t\t)\n\t}\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/submit/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAOlD,MAAM,OAAO,cAAc;;iBACe,SAAS;;;oBAGd,KAAK;gBACU,QAAQ;;;mBAGzC,IAAI;;EAItB,KAAK,CAAC,iBAAiB;IACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;MACpC,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;OACpB;IACF,CAAC,CAAC,CAAA;EACH,CAAC;EAGD,YAAY;;IACX,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,EAAE,CAAA;EACtB,CAAC;EAED,MAAM;IACL,OAAO,CACN,EAAC,MAAM,IAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI;MAC/C,eAAQ,CACA,CACT,CAAA;EACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["import { Component, Event, EventEmitter, h, Listen, Prop } from \"@stencil/core\"\nimport { Color, Fill } from \"../../model\"\nimport { Button } from \"../Button\"\nimport { Submittable } from \"../input/Submittable\"\n\n@Component({\n\ttag: \"smoothly-submit\",\n\tstyleUrl: \"./style.css\",\n\tscoped: true,\n})\nexport class SmoothlySubmit {\n\t@Prop({ reflect: true }) color?: Color = \"success\"\n\t@Prop({ reflect: true }) expand?: \"block\" | \"full\"\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({ reflect: true }) size: \"flexible\" | \"small\" | \"large\" | \"icon\"\n\t@Prop({ reflect: true }) shape?: \"rounded\"\n\t@Prop() prevent = true\n\tprivate parent?: Submittable\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: HTMLElement) => void>\n\n\tasync componentWillLoad() {\n\t\tthis.smoothlyInputLoad.emit(parent => {\n\t\t\tif (Submittable.is(parent)) {\n\t\t\t\tthis.parent = parent\n\t\t\t}\n\t\t})\n\t}\n\n\t@Listen(\"click\")\n\tclickHandler() {\n\t\tthis.parent?.submit()\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Button disabled={this.disabled} type={this.type}>\n\t\t\t\t<slot />\n\t\t\t</Button>\n\t\t)\n\t}\n}\n"]}
@@ -71,22 +71,22 @@
71
71
 
72
72
  :host{
73
73
  display: inline-block;
74
- margin: 1em;
75
74
  box-sizing: border-box;
76
75
  border-radius: 0.5rem;
77
76
  border: solid 1px;
78
77
  transition: background 150ms ease-in-out;
78
+ cursor: pointer;
79
79
  }
80
- :host([type=link]){
80
+ :host([type=link]) {
81
81
  display: inline;
82
82
  border: none;
83
83
  }
84
- :host([disabled]){
84
+ :host([disabled]) {
85
85
  opacity: 0.5;
86
86
  pointer-events: none;
87
87
  }
88
88
  a,
89
- button{
89
+ button {
90
90
  font-size: 110%;
91
91
  font-weight: 400;
92
92
  border: none;
@@ -100,17 +100,20 @@ button {
100
100
  height: 100%;
101
101
  width: 100%;
102
102
  border-radius: 0.5rem;
103
- min-width: 8em;
104
103
  align-items: center;
105
104
  }
106
- :host(:not([size=icon])) > button {
105
+ :host(:not([size=icon]):not([size=flexible])) > button {
107
106
  padding: 0.8em;
107
+ min-width: 8em;
108
+ }
109
+ :host(:not([size=icon]):not([size=flexible])):has(smoothly-icon) > button {
110
+ padding: 0.6em;
108
111
  }
109
- :host([size=icon]) > button{
112
+ :host([size=icon]) > button {
110
113
  padding: 0.5em;
111
114
  }
112
115
  :host([shape=rounded]) > button,
113
- :host([shape=rounded]){
116
+ :host([shape=rounded]) {
114
117
  border-radius: 2rem;
115
118
  }
116
119
  :host([type=button]) > a {
@@ -118,13 +121,13 @@ button {
118
121
  text-decoration: inherit;
119
122
  width: calc(100% - 0.6em);
120
123
  }
121
- :host([size=small]) > button{
124
+ :host([size=small]) > button {
122
125
  font-size: 100%;
123
126
  }
124
- :host([size=large]) > button{
127
+ :host([size=large]) > button {
125
128
  font-size: 130%;
126
129
  }
127
- :host(:not([size=icon])){
130
+ :host(:not([size=icon])) {
128
131
  min-width: 8em;
129
132
  }
130
133
  :host([size=flexible]) {
@@ -150,12 +153,12 @@ button {
150
153
  border-radius: 0;
151
154
  }
152
155
  :host([shape=rounded]) > button,
153
- :host([shape=rounded]){
156
+ :host([shape=rounded]) {
154
157
  border-radius: 2rem;
155
158
  }
156
159
  :host(:not([fill=clear]):hover),
157
160
  :host(:not([fill=clear]):focus),
158
- :host(:not([fill=clear]):active){
161
+ :host(:not([fill=clear]):active) {
159
162
  border-color: rgb(var(--smoothly-color-tint)) !important;
160
163
  background: rgb(var(--smoothly-color-tint)) !important;
161
164
  }
@@ -164,19 +167,19 @@ button {
164
167
  :host(:not([fill=clear]):active) > button,
165
168
  :host(:not([fill=clear]):hover) ::slotted(smoothly-icon),
166
169
  :host(:not([fill=clear]):focus) ::slotted(smoothly-icon),
167
- :host(:not([fill=clear]):active) ::slotted(smoothly-icon){
170
+ :host(:not([fill=clear]):active) ::slotted(smoothly-icon) {
168
171
  color: rgb(var(--smoothly-color-contrast)) !important;
169
172
  stroke: rgb(var(--smoothly-color-contrast)) !important;
170
173
  fill: rgb(var(--smoothly-color-contrast)) !important;
171
174
  }
172
175
  :host([fill=clear]:hover) > button,
173
176
  :host([fill=clear]:focus) > button,
174
- :host([fill=clear]:active) > button{
177
+ :host([fill=clear]:active) > button {
175
178
  color: rgb(var(--smoothly-color-tint)) !important;
176
179
  stroke: rgb(var(--smoothly-color-tint)) !important;
177
180
  fill: rgb(var(--smoothly-color-tint)) !important;
178
181
  }
179
- :host([disabled]){
182
+ :host([disabled]) {
180
183
  opacity: 0.5;
181
184
  pointer-events: none;
182
185
  }
@@ -190,13 +193,13 @@ button {
190
193
  border-color: rgb(var(--smoothly-color));
191
194
  }
192
195
  :host([fill=solid]) > button,
193
- :host([fill=default]) > button{
196
+ :host([fill=default]) > button {
194
197
  stroke: rgb(var(--smoothly-color-contrast));
195
198
  fill: rgb(var(--smoothly-color-contrast));
196
199
  color: rgb(var(--smoothly-color-contrast));
197
200
  }
198
201
  :host([fill=outline]) > button,
199
- :host([fill=clear]) > button{
202
+ :host([fill=clear]) > button {
200
203
  stroke: rgb(var(--smoothly-color));
201
204
  fill: rgb(var(--smoothly-color));
202
205
  color: rgb(var(--smoothly-color));
@@ -210,10 +213,10 @@ button {
210
213
  border-color: transparent;
211
214
  }
212
215
  ::slotted(smoothly-icon[slot=start]),
213
- ::slotted(smoothly-icon[slot=end]){
216
+ ::slotted(smoothly-icon[slot=end]) {
214
217
  font-size: 0.65em;
215
218
  }
216
- :host([hidden]){
219
+ :host([hidden]) {
217
220
  display: none;
218
221
  }
219
222
 
@@ -2,7 +2,7 @@ import { h } from "@stencil/core";
2
2
  export class SmoothlySummary {
3
3
  constructor() {
4
4
  this.open = false;
5
- this.color = "primary";
5
+ this.color = undefined;
6
6
  this.fill = "solid";
7
7
  this.size = "tiny";
8
8
  }
@@ -67,8 +67,7 @@ export class SmoothlySummary {
67
67
  "text": ""
68
68
  },
69
69
  "attribute": "color",
70
- "reflect": false,
71
- "defaultValue": "\"primary\""
70
+ "reflect": false
72
71
  },
73
72
  "fill": {
74
73
  "type": "string",