godown 2.7.4 → 2.7.6

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 (463) hide show
  1. package/README.md +18 -45
  2. package/{.deps.d.ts → _deps.d.ts} +1 -2
  3. package/{.deps.d.ts.map → _deps.d.ts.map} +1 -1
  4. package/{.deps.js → _deps.js} +1 -2
  5. package/_deps.js.map +1 -0
  6. package/alert.d.ts +8 -1
  7. package/alert.d.ts.map +1 -1
  8. package/alert.js +4 -1
  9. package/alert.js.map +1 -1
  10. package/avatar-group.d.ts +8 -1
  11. package/avatar-group.d.ts.map +1 -1
  12. package/avatar-group.js +4 -1
  13. package/avatar-group.js.map +1 -1
  14. package/avatar.d.ts +8 -1
  15. package/avatar.d.ts.map +1 -1
  16. package/avatar.js +4 -1
  17. package/avatar.js.map +1 -1
  18. package/button.d.ts +8 -1
  19. package/button.d.ts.map +1 -1
  20. package/button.js +4 -1
  21. package/button.js.map +1 -1
  22. package/card.d.ts +8 -1
  23. package/card.d.ts.map +1 -1
  24. package/card.js +4 -1
  25. package/card.js.map +1 -1
  26. package/carousel.d.ts +8 -1
  27. package/carousel.d.ts.map +1 -1
  28. package/carousel.js +4 -1
  29. package/carousel.js.map +1 -1
  30. package/components.json +194 -0
  31. package/conf.d.ts +6 -75
  32. package/conf.d.ts.map +1 -1
  33. package/conf.js +8 -34
  34. package/conf.js.map +1 -1
  35. package/decorators/godown.d.ts +4 -0
  36. package/decorators/godown.d.ts.map +1 -0
  37. package/decorators/godown.js +9 -0
  38. package/decorators/godown.js.map +1 -0
  39. package/decorators/part.d.ts +7 -0
  40. package/decorators/part.d.ts.map +1 -0
  41. package/decorators/part.js +8 -0
  42. package/decorators/part.js.map +1 -0
  43. package/decorators/styles.d.ts +3 -0
  44. package/decorators/styles.d.ts.map +1 -0
  45. package/decorators/styles.js +8 -0
  46. package/decorators/styles.js.map +1 -0
  47. package/details.d.ts +8 -1
  48. package/details.d.ts.map +1 -1
  49. package/details.js +4 -1
  50. package/details.js.map +1 -1
  51. package/dialog.d.ts +8 -1
  52. package/dialog.d.ts.map +1 -1
  53. package/dialog.js +4 -1
  54. package/dialog.js.map +1 -1
  55. package/divider.d.ts +8 -1
  56. package/divider.d.ts.map +1 -1
  57. package/divider.js +4 -1
  58. package/divider.js.map +1 -1
  59. package/dragbox.d.ts +8 -1
  60. package/dragbox.d.ts.map +1 -1
  61. package/dragbox.js +4 -1
  62. package/dragbox.js.map +1 -1
  63. package/flex-flow.d.ts +8 -1
  64. package/flex-flow.d.ts.map +1 -1
  65. package/flex-flow.js +4 -1
  66. package/flex-flow.js.map +1 -1
  67. package/form.d.ts +8 -1
  68. package/form.d.ts.map +1 -1
  69. package/form.js +4 -1
  70. package/form.js.map +1 -1
  71. package/grid-flow.d.ts +9 -0
  72. package/grid-flow.d.ts.map +1 -0
  73. package/grid-flow.js +5 -0
  74. package/grid-flow.js.map +1 -0
  75. package/index.d.ts +32 -3
  76. package/index.d.ts.map +1 -1
  77. package/index.js +32 -3
  78. package/index.js.map +1 -1
  79. package/input.d.ts +8 -1
  80. package/input.d.ts.map +1 -1
  81. package/input.js +4 -1
  82. package/input.js.map +1 -1
  83. package/label-input.d.ts +8 -1
  84. package/label-input.d.ts.map +1 -1
  85. package/label-input.js +4 -1
  86. package/label-input.js.map +1 -1
  87. package/layout.d.ts +9 -0
  88. package/layout.d.ts.map +1 -0
  89. package/layout.js +5 -0
  90. package/layout.js.map +1 -0
  91. package/lib/css.d.ts +13 -0
  92. package/lib/css.d.ts.map +1 -0
  93. package/lib/css.js +29 -0
  94. package/lib/css.js.map +1 -0
  95. package/lib/directives.d.ts +16 -20
  96. package/lib/directives.d.ts.map +1 -1
  97. package/lib/directives.js +33 -31
  98. package/lib/directives.js.map +1 -1
  99. package/lib/event-coll.d.ts +13 -0
  100. package/lib/event-coll.d.ts.map +1 -0
  101. package/lib/event-coll.js +45 -0
  102. package/lib/event-coll.js.map +1 -0
  103. package/lib/{templates.d.ts → icons.d.ts} +1 -17
  104. package/lib/icons.d.ts.map +1 -0
  105. package/lib/icons.js +73 -0
  106. package/lib/icons.js.map +1 -0
  107. package/lib/jsx.d.ts +4 -0
  108. package/lib/jsx.d.ts.map +1 -0
  109. package/lib/jsx.js +52 -0
  110. package/lib/jsx.js.map +1 -0
  111. package/lib/route-tree.d.ts +5 -5
  112. package/lib/route-tree.js +5 -5
  113. package/lib/route-tree.js.map +1 -1
  114. package/lib/utils.d.ts +6 -46
  115. package/lib/utils.d.ts.map +1 -1
  116. package/lib/utils.js +25 -110
  117. package/lib/utils.js.map +1 -1
  118. package/link.d.ts +9 -0
  119. package/link.d.ts.map +1 -0
  120. package/link.js +5 -0
  121. package/link.js.map +1 -0
  122. package/overbreath.d.ts +8 -1
  123. package/overbreath.d.ts.map +1 -1
  124. package/overbreath.js +4 -1
  125. package/overbreath.js.map +1 -1
  126. package/package.json +20 -25
  127. package/progress.d.ts +8 -1
  128. package/progress.d.ts.map +1 -1
  129. package/progress.js +4 -1
  130. package/progress.js.map +1 -1
  131. package/proto/godown-config.d.ts +41 -0
  132. package/proto/godown-config.d.ts.map +1 -0
  133. package/proto/godown-config.js +27 -0
  134. package/proto/godown-config.js.map +1 -0
  135. package/{godown-element.d.ts → proto/godown-element.d.ts} +48 -16
  136. package/proto/godown-element.d.ts.map +1 -0
  137. package/{godown-element.js → proto/godown-element.js} +82 -26
  138. package/proto/godown-element.js.map +1 -0
  139. package/proto/super-a.d.ts +30 -0
  140. package/proto/super-a.d.ts.map +1 -0
  141. package/proto/super-a.js +141 -0
  142. package/proto/super-a.js.map +1 -0
  143. package/proto/super-input.d.ts +44 -0
  144. package/proto/super-input.d.ts.map +1 -0
  145. package/proto/super-input.js +119 -0
  146. package/proto/super-input.js.map +1 -0
  147. package/proto/super-openable.d.ts +23 -0
  148. package/proto/super-openable.d.ts.map +1 -0
  149. package/proto/super-openable.js +43 -0
  150. package/proto/super-openable.js.map +1 -0
  151. package/range-input.d.ts +9 -0
  152. package/range-input.d.ts.map +1 -0
  153. package/range-input.js +5 -0
  154. package/range-input.js.map +1 -0
  155. package/react/create.d.ts.map +1 -1
  156. package/react/create.js +4 -1
  157. package/react/create.js.map +1 -1
  158. package/react/index.d.ts +64 -34
  159. package/react/index.d.ts.map +1 -1
  160. package/react/index.js +78 -51
  161. package/react/index.js.map +1 -1
  162. package/rotate.d.ts +9 -0
  163. package/rotate.d.ts.map +1 -0
  164. package/rotate.js +5 -0
  165. package/rotate.js.map +1 -0
  166. package/router-link.d.ts +9 -0
  167. package/router-link.d.ts.map +1 -0
  168. package/router-link.js +5 -0
  169. package/router-link.js.map +1 -0
  170. package/router.d.ts +8 -1
  171. package/router.d.ts.map +1 -1
  172. package/router.js +4 -1
  173. package/router.js.map +1 -1
  174. package/search-input.d.ts +8 -1
  175. package/search-input.d.ts.map +1 -1
  176. package/search-input.js +4 -1
  177. package/search-input.js.map +1 -1
  178. package/select-input.d.ts +8 -1
  179. package/select-input.d.ts.map +1 -1
  180. package/select-input.js +4 -1
  181. package/select-input.js.map +1 -1
  182. package/skeleton.d.ts +8 -1
  183. package/skeleton.d.ts.map +1 -1
  184. package/skeleton.js +4 -1
  185. package/skeleton.js.map +1 -1
  186. package/split-input.d.ts +8 -1
  187. package/split-input.d.ts.map +1 -1
  188. package/split-input.js +4 -1
  189. package/split-input.js.map +1 -1
  190. package/styles/colors/presets.d.ts +13 -0
  191. package/styles/colors/presets.d.ts.map +1 -0
  192. package/styles/colors/presets.js +6 -0
  193. package/styles/colors/presets.js.map +1 -0
  194. package/styles/colors/presetsRGB.d.ts +16 -0
  195. package/styles/colors/presetsRGB.d.ts.map +1 -0
  196. package/styles/colors/presetsRGB.js +134 -0
  197. package/styles/colors/presetsRGB.js.map +1 -0
  198. package/styles/global.d.ts +18 -0
  199. package/styles/global.d.ts.map +1 -0
  200. package/styles/global.js +78 -0
  201. package/styles/global.js.map +1 -0
  202. package/styles/inputStyle.d.ts +3 -0
  203. package/styles/inputStyle.d.ts.map +1 -0
  204. package/styles/inputStyle.js +59 -0
  205. package/styles/inputStyle.js.map +1 -0
  206. package/switch-input.d.ts +8 -1
  207. package/switch-input.d.ts.map +1 -1
  208. package/switch-input.js +4 -1
  209. package/switch-input.js.map +1 -1
  210. package/text.d.ts +8 -1
  211. package/text.d.ts.map +1 -1
  212. package/text.js +4 -1
  213. package/text.js.map +1 -1
  214. package/time.d.ts +8 -1
  215. package/time.d.ts.map +1 -1
  216. package/time.js +4 -1
  217. package/time.js.map +1 -1
  218. package/tooltip.d.ts +8 -1
  219. package/tooltip.d.ts.map +1 -1
  220. package/tooltip.js +4 -1
  221. package/tooltip.js.map +1 -1
  222. package/typewriter.d.ts +8 -1
  223. package/typewriter.d.ts.map +1 -1
  224. package/typewriter.js +4 -1
  225. package/typewriter.js.map +1 -1
  226. package/web-components/alert/alert.d.ts +2 -10
  227. package/web-components/alert/alert.d.ts.map +1 -1
  228. package/web-components/alert/alert.js +93 -91
  229. package/web-components/alert/alert.js.map +1 -1
  230. package/web-components/avatar/avatar-group.d.ts +21 -0
  231. package/web-components/avatar/avatar-group.d.ts.map +1 -0
  232. package/web-components/avatar/avatar-group.js +86 -0
  233. package/web-components/avatar/avatar-group.js.map +1 -0
  234. package/web-components/avatar/avatar.d.ts +5 -18
  235. package/web-components/avatar/avatar.d.ts.map +1 -1
  236. package/web-components/avatar/avatar.js +70 -85
  237. package/web-components/avatar/avatar.js.map +1 -1
  238. package/web-components/button/button.d.ts +10 -43
  239. package/web-components/button/button.d.ts.map +1 -1
  240. package/web-components/button/button.js +183 -226
  241. package/web-components/button/button.js.map +1 -1
  242. package/web-components/card/card.d.ts +2 -27
  243. package/web-components/card/card.d.ts.map +1 -1
  244. package/web-components/card/card.js +57 -132
  245. package/web-components/card/card.js.map +1 -1
  246. package/web-components/carousel/carousel.d.ts +5 -16
  247. package/web-components/carousel/carousel.d.ts.map +1 -1
  248. package/web-components/carousel/carousel.js +102 -106
  249. package/web-components/carousel/carousel.js.map +1 -1
  250. package/web-components/details/details.d.ts +4 -15
  251. package/web-components/details/details.d.ts.map +1 -1
  252. package/web-components/details/details.js +91 -97
  253. package/web-components/details/details.js.map +1 -1
  254. package/web-components/dialog/dialog.d.ts +6 -17
  255. package/web-components/dialog/dialog.d.ts.map +1 -1
  256. package/web-components/dialog/dialog.js +87 -137
  257. package/web-components/dialog/dialog.js.map +1 -1
  258. package/web-components/divider/divider.d.ts +13 -0
  259. package/web-components/divider/divider.d.ts.map +1 -0
  260. package/web-components/divider/divider.js +95 -0
  261. package/web-components/divider/divider.js.map +1 -0
  262. package/web-components/form/form.d.ts +15 -22
  263. package/web-components/form/form.d.ts.map +1 -1
  264. package/web-components/form/form.js +47 -117
  265. package/web-components/form/form.js.map +1 -1
  266. package/web-components/input/input.d.ts +5 -18
  267. package/web-components/input/input.d.ts.map +1 -1
  268. package/web-components/input/input.js +74 -169
  269. package/web-components/input/input.js.map +1 -1
  270. package/web-components/input/label-input.d.ts +5 -19
  271. package/web-components/input/label-input.d.ts.map +1 -1
  272. package/web-components/input/label-input.js +74 -141
  273. package/web-components/input/label-input.js.map +1 -1
  274. package/web-components/input/range-input.d.ts +53 -0
  275. package/web-components/input/range-input.d.ts.map +1 -0
  276. package/web-components/input/range-input.js +316 -0
  277. package/web-components/input/range-input.js.map +1 -0
  278. package/web-components/input/search-input.d.ts +4 -12
  279. package/web-components/input/search-input.d.ts.map +1 -1
  280. package/web-components/input/search-input.js +118 -113
  281. package/web-components/input/search-input.js.map +1 -1
  282. package/web-components/input/select-input.d.ts +17 -32
  283. package/web-components/input/select-input.d.ts.map +1 -1
  284. package/web-components/input/select-input.js +154 -286
  285. package/web-components/input/select-input.js.map +1 -1
  286. package/web-components/input/split-input.d.ts +8 -15
  287. package/web-components/input/split-input.d.ts.map +1 -1
  288. package/web-components/input/split-input.js +82 -72
  289. package/web-components/input/split-input.js.map +1 -1
  290. package/web-components/input/switch-input.d.ts +8 -17
  291. package/web-components/input/switch-input.d.ts.map +1 -1
  292. package/web-components/input/switch-input.js +122 -158
  293. package/web-components/input/switch-input.js.map +1 -1
  294. package/web-components/layout/flex-flow.d.ts +11 -19
  295. package/web-components/layout/flex-flow.d.ts.map +1 -1
  296. package/web-components/layout/flex-flow.js +57 -35
  297. package/web-components/layout/flex-flow.js.map +1 -1
  298. package/web-components/layout/grid-flow.d.ts +14 -0
  299. package/web-components/layout/grid-flow.d.ts.map +1 -0
  300. package/web-components/layout/grid-flow.js +56 -0
  301. package/web-components/layout/grid-flow.js.map +1 -0
  302. package/web-components/layout/layout.d.ts +18 -0
  303. package/web-components/layout/layout.d.ts.map +1 -0
  304. package/web-components/layout/layout.js +76 -0
  305. package/web-components/layout/layout.js.map +1 -0
  306. package/web-components/link/link.d.ts +10 -0
  307. package/web-components/link/link.d.ts.map +1 -0
  308. package/web-components/link/link.js +17 -0
  309. package/web-components/link/link.js.map +1 -0
  310. package/web-components/link/router-link.d.ts +19 -0
  311. package/web-components/link/router-link.d.ts.map +1 -0
  312. package/web-components/link/router-link.js +60 -0
  313. package/web-components/link/router-link.js.map +1 -0
  314. package/web-components/progress/progress.d.ts +2 -12
  315. package/web-components/progress/progress.d.ts.map +1 -1
  316. package/web-components/progress/progress.js +52 -48
  317. package/web-components/progress/progress.js.map +1 -1
  318. package/web-components/router/router.d.ts +15 -21
  319. package/web-components/router/router.d.ts.map +1 -1
  320. package/web-components/router/router.js +35 -37
  321. package/web-components/router/router.js.map +1 -1
  322. package/web-components/skeleton/skeleton.d.ts +5 -12
  323. package/web-components/skeleton/skeleton.d.ts.map +1 -1
  324. package/web-components/skeleton/skeleton.js +90 -98
  325. package/web-components/skeleton/skeleton.js.map +1 -1
  326. package/web-components/text/overbreath.d.ts +15 -20
  327. package/web-components/text/overbreath.d.ts.map +1 -1
  328. package/web-components/text/overbreath.js +108 -202
  329. package/web-components/text/overbreath.js.map +1 -1
  330. package/web-components/text/text.d.ts +5 -18
  331. package/web-components/text/text.d.ts.map +1 -1
  332. package/web-components/text/text.js +70 -80
  333. package/web-components/text/text.js.map +1 -1
  334. package/web-components/text/time.d.ts +5 -14
  335. package/web-components/text/time.d.ts.map +1 -1
  336. package/web-components/text/time.js +32 -31
  337. package/web-components/text/time.js.map +1 -1
  338. package/web-components/text/typewriter.d.ts +3 -11
  339. package/web-components/text/typewriter.d.ts.map +1 -1
  340. package/web-components/text/typewriter.js +42 -40
  341. package/web-components/text/typewriter.js.map +1 -1
  342. package/web-components/tooltip/tooltip.d.ts +21 -17
  343. package/web-components/tooltip/tooltip.d.ts.map +1 -1
  344. package/web-components/tooltip/tooltip.js +98 -60
  345. package/web-components/tooltip/tooltip.js.map +1 -1
  346. package/web-components/wrapper/dragbox.d.ts +5 -10
  347. package/web-components/wrapper/dragbox.d.ts.map +1 -1
  348. package/web-components/wrapper/dragbox.js +40 -31
  349. package/web-components/wrapper/dragbox.js.map +1 -1
  350. package/web-components/wrapper/rotate.d.ts +30 -0
  351. package/web-components/wrapper/rotate.d.ts.map +1 -0
  352. package/web-components/wrapper/rotate.js +92 -0
  353. package/web-components/wrapper/rotate.js.map +1 -0
  354. package/.deps.js.map +0 -1
  355. package/a.d.ts +0 -2
  356. package/a.d.ts.map +0 -1
  357. package/a.js +0 -2
  358. package/a.js.map +0 -1
  359. package/clip.d.ts +0 -2
  360. package/clip.d.ts.map +0 -1
  361. package/clip.js +0 -2
  362. package/clip.js.map +0 -1
  363. package/decorators/define.d.ts +0 -7
  364. package/decorators/define.d.ts.map +0 -1
  365. package/decorators/define.js +0 -11
  366. package/decorators/define.js.map +0 -1
  367. package/details-group.d.ts +0 -2
  368. package/details-group.d.ts.map +0 -1
  369. package/details-group.js +0 -2
  370. package/details-group.js.map +0 -1
  371. package/godown-element.d.ts.map +0 -1
  372. package/godown-element.js.map +0 -1
  373. package/lib/event-collection.d.ts +0 -14
  374. package/lib/event-collection.d.ts.map +0 -1
  375. package/lib/event-collection.js +0 -71
  376. package/lib/event-collection.js.map +0 -1
  377. package/lib/templates.d.ts.map +0 -1
  378. package/lib/templates.js +0 -76
  379. package/lib/templates.js.map +0 -1
  380. package/naming.d.ts +0 -91
  381. package/naming.d.ts.map +0 -1
  382. package/naming.js +0 -67
  383. package/naming.js.map +0 -1
  384. package/nav-layout.d.ts +0 -2
  385. package/nav-layout.d.ts.map +0 -1
  386. package/nav-layout.js +0 -2
  387. package/nav-layout.js.map +0 -1
  388. package/open-offset.d.ts +0 -2
  389. package/open-offset.d.ts.map +0 -1
  390. package/open-offset.js +0 -2
  391. package/open-offset.js.map +0 -1
  392. package/router-a.d.ts +0 -2
  393. package/router-a.d.ts.map +0 -1
  394. package/router-a.js +0 -2
  395. package/router-a.js.map +0 -1
  396. package/supers/anchor.d.ts +0 -26
  397. package/supers/anchor.d.ts.map +0 -1
  398. package/supers/anchor.js +0 -124
  399. package/supers/anchor.js.map +0 -1
  400. package/supers/input.d.ts +0 -28
  401. package/supers/input.d.ts.map +0 -1
  402. package/supers/input.js +0 -117
  403. package/supers/input.js.map +0 -1
  404. package/supers/openable.d.ts +0 -38
  405. package/supers/openable.d.ts.map +0 -1
  406. package/supers/openable.js +0 -77
  407. package/supers/openable.js.map +0 -1
  408. package/supers/root.d.ts +0 -18
  409. package/supers/root.d.ts.map +0 -1
  410. package/supers/root.js +0 -76
  411. package/supers/root.js.map +0 -1
  412. package/tabs.d.ts +0 -2
  413. package/tabs.d.ts.map +0 -1
  414. package/tabs.js +0 -2
  415. package/tabs.js.map +0 -1
  416. package/web-components/a/a.d.ts +0 -16
  417. package/web-components/a/a.d.ts.map +0 -1
  418. package/web-components/a/a.js +0 -17
  419. package/web-components/a/a.js.map +0 -1
  420. package/web-components/group/avatar-group.d.ts +0 -29
  421. package/web-components/group/avatar-group.d.ts.map +0 -1
  422. package/web-components/group/avatar-group.js +0 -88
  423. package/web-components/group/avatar-group.js.map +0 -1
  424. package/web-components/group/details-group.d.ts +0 -28
  425. package/web-components/group/details-group.d.ts.map +0 -1
  426. package/web-components/group/details-group.js +0 -59
  427. package/web-components/group/details-group.js.map +0 -1
  428. package/web-components/index.d.ts +0 -35
  429. package/web-components/index.d.ts.map +0 -1
  430. package/web-components/index.js +0 -35
  431. package/web-components/index.js.map +0 -1
  432. package/web-components/layout/divider.d.ts +0 -22
  433. package/web-components/layout/divider.d.ts.map +0 -1
  434. package/web-components/layout/divider.js +0 -85
  435. package/web-components/layout/divider.js.map +0 -1
  436. package/web-components/layout/nav-layout.d.ts +0 -38
  437. package/web-components/layout/nav-layout.d.ts.map +0 -1
  438. package/web-components/layout/nav-layout.js +0 -69
  439. package/web-components/layout/nav-layout.js.map +0 -1
  440. package/web-components/offset/open-offset.d.ts +0 -27
  441. package/web-components/offset/open-offset.d.ts.map +0 -1
  442. package/web-components/offset/open-offset.js +0 -130
  443. package/web-components/offset/open-offset.js.map +0 -1
  444. package/web-components/router/router-a.d.ts +0 -25
  445. package/web-components/router/router-a.d.ts.map +0 -1
  446. package/web-components/router/router-a.js +0 -70
  447. package/web-components/router/router-a.js.map +0 -1
  448. package/web-components/tabs/tabs.d.ts +0 -52
  449. package/web-components/tabs/tabs.d.ts.map +0 -1
  450. package/web-components/tabs/tabs.js +0 -165
  451. package/web-components/tabs/tabs.js.map +0 -1
  452. package/web-components/text/clip.d.ts +0 -22
  453. package/web-components/text/clip.d.ts.map +0 -1
  454. package/web-components/text/clip.js +0 -45
  455. package/web-components/text/clip.js.map +0 -1
  456. package/web-components/wrapper/wrapper.d.ts +0 -27
  457. package/web-components/wrapper/wrapper.d.ts.map +0 -1
  458. package/web-components/wrapper/wrapper.js +0 -95
  459. package/web-components/wrapper/wrapper.js.map +0 -1
  460. package/wrapper.d.ts +0 -2
  461. package/wrapper.d.ts.map +0 -1
  462. package/wrapper.js +0 -2
  463. package/wrapper.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/avatar/avatar.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, ifDefined, property } from \"../../.deps.js\";\nimport { define } from \"../../decorators/define.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport GodownAnchor from \"../../supers/anchor.js\";\nimport { createScope } from \"../../supers/root.js\";\n\nconst defineName = \"avatar\";\nconst cssvarScope = createScope(defineName);\n\n/**\n * {@linkcode Avatar} renders the avatar or name and has a href.\n */\n@define(defineName)\nexport class Avatar extends GodownAnchor {\n /**\n * Image src.\n */\n @property() src: string | undefined | null = \"\";\n /**\n * Default image src.\n */\n @property() def: string = undefined;\n /**\n * Link href.\n */\n @property() href = undefined;\n /**\n * If the image is not available, the {@linkcode Avatar.avaName} will be displayed.\n */\n @property() name = \"\";\n /**\n * If there is a value, the {@linkcode Avatar.avaMore} will be displayed.\n */\n @property({ type: Number }) more = 0;\n\n static styles = [\n css`\n :host {\n ${cssvarScope}--ava: 1.5em;\n display: inline-flex;\n align-items: center;\n }\n\n * {\n border-radius: inherit;\n }\n\n img {\n width: 100%;\n height: 100%;\n }\n\n a {\n height: var(${cssvarScope}--ava);\n width: var(${cssvarScope}--ava);\n color: inherit;\n display: flex;\n position: relative;\n align-items: inherit;\n }\n\n span {\n position: absolute;\n width: 100%;\n text-align: center;\n }\n\n slot[name=\"mask\"] {\n position: absolute;\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n }\n `,\n ];\n\n protected render(): HTMLTemplate {\n return html`\n <a href=\"${ifDefined(this.href)}\"> ${this.renderAva()} ${htmlSlot(\"mask\")} </a>\n ${htmlSlot()}\n `;\n }\n\n private renderAva(): HTMLTemplate {\n if (this.more) {\n return html`<span>${this.avaMore()}</span>`;\n }\n if (this.src) {\n return html`<img src=\"${this.src}\" @error=${this.imgOnError} alt=\"\" />`;\n }\n if (this.name) {\n return html`<span>${this.avaName()}</span>`;\n }\n return htmlSlot(\"avatar\");\n }\n\n avaMore(): string | number {\n if (this.more < 0) {\n return \"+\";\n }\n return (this.more > 99 ? \"99\" : this.more) + \"+\";\n }\n\n avaName(): string {\n const name = this.name.slice(0, 2);\n return name[0].toUpperCase() + name.slice(1);\n }\n\n imgOnError(e: ErrorEvent) {\n if (this.def) {\n (e.target as HTMLImageElement).src = this.def;\n } else {\n this.src = undefined;\n }\n }\n}\n\nexport default Avatar;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"avatar-a\": Avatar;\n \"g-avatar\": Avatar;\n }\n}\n"]}
1
+ {"version":3,"file":"avatar.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/avatar/avatar.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,SAAS,GAAG,QAAQ,CAAC;AAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;AAExC;;GAEG;AA+CI,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,YAAY;IAAjC;;QAKL;;WAEG;QACS,YAAO,GAAW,SAAS,CAAC;QACxC;;WAEG;QACS,SAAI,GAAG,SAAS,CAAC;QAC7B;;WAEG;QACS,SAAI,GAAG,EAAE,CAAC;IA2BxB,CAAC;IAzBW,MAAM;QACd,OAAO,IAAI,CAAA,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IAC3G,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAA,0BAA0B,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,UAAU,SAAS,IAAI,CAAC,IAAI,MAAM,CAAC;QACnG,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,IAAI,CAAA,qBAAqB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;QACzD,CAAC;QACD,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,CAAa;QACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC,CAAC,MAA2B,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACvB,CAAC;IACH,CAAC;CACF,CAAA;AAvCa;IAAX,QAAQ,EAAE;mCAAgC;AAI/B;IAAX,QAAQ,EAAE;uCAA6B;AAI5B;IAAX,QAAQ,EAAE;oCAAkB;AAIjB;IAAX,QAAQ,EAAE;oCAAW;AAhBX,MAAM;IA9ClB,MAAM,CAAC,SAAS,CAAC;IACjB,MAAM,CAAC;QACN,GAAG,CAAA;;UAEK,QAAQ;;;;;;;;;;;;;;;;qBAgBG,QAAQ;sBACP,QAAQ;;;;;;;;;;;;;;;;;;;;;;;GAuB3B;KACF,CAAC;GACW,MAAM,CA2ClB;;AAED,eAAe,MAAM,CAAC;AAEtB,mBAAmB;AACnB,sCAAsC;AACtC,gCAAgC;AAChC,MAAM;AACN,IAAI","sourcesContent":["import { css, html, ifDefined, property } from \"../../_deps.js\";\nimport { godown } from \"../../decorators/godown.js\";\nimport { styles } from \"../../decorators/styles.js\";\nimport { htmlSlot } from \"../../lib/directives.js\";\nimport GodownAnchor from \"../../proto/super-a.js\";\nimport { createScope } from \"../../styles/global.js\";\n\nconst protoName = \"avatar\";\nconst cssScope = createScope(protoName);\n\n/**\n * {@linkcode Avatar} renders the avatar or name and has a href.\n */\n@godown(protoName)\n@styles([\n css`\n :host {\n --${cssScope}--avatar-size: 2.4em;\n display: inline-block;\n }\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n a {\n display: block;\n color: inherit;\n overflow: hidden;\n position: relative;\n border-radius: inherit;\n width: var(--${cssScope}--avatar-size);\n height: var(--${cssScope}--avatar-size);\n }\n\n span {\n position: absolute;\n width: 100%;\n }\n\n a,\n [part=\"name\"] {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n [part=\"mask\"] {\n position: absolute;\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n }\n `,\n])\nexport class Avatar extends GodownAnchor {\n /**\n * Image src.\n */\n @property() src: string | undefined | null;\n /**\n * Default image src.\n */\n @property() default: string = undefined;\n /**\n * Link href.\n */\n @property() href = undefined;\n /**\n * If the image is not available, the {@linkcode Avatar.format} will be displayed.\n */\n @property() name = \"\";\n\n protected render() {\n return html`<a part=\"root\" href=\"${ifDefined(this.href)}\"> ${this.renderAva()} ${htmlSlot(\"mask\")}</a> `;\n }\n\n private renderAva() {\n if (this.src) {\n return html`<img part=\"image\" src=\"${this.src}\" @error=${this.imgOnError} alt=\"${this.name}\" />`;\n }\n if (this.name) {\n return html`<span part=\"name\">${this.format()}</span>`;\n }\n return htmlSlot();\n }\n\n format(): string {\n return this.name;\n }\n\n imgOnError(e: ErrorEvent) {\n if (this.default) {\n (e.target as HTMLImageElement).src = this.default;\n } else {\n this.src = undefined;\n }\n }\n}\n\nexport default Avatar;\n\n// declare global {\n// interface HTMLElementTagNameMap {\n// [\"godown-avatar\"]: Avatar\n// }\n// }\n"]}
@@ -1,15 +1,5 @@
1
- import { type HTMLTemplate } from "../../lib/templates.js";
2
- import { GodownElement } from "../../supers/root.js";
3
- declare const colors: {
4
- black: string[];
5
- gary: string[];
6
- white: string[];
7
- red: string[];
8
- green: string[];
9
- blue: string[];
10
- yellow: string[];
11
- };
12
- type Colors = keyof typeof colors;
1
+ import { GodownElement } from "../../proto/godown-element.js";
2
+ declare const colors: Record<"teal" | "blue" | "green" | "red" | "purple" | "orange" | "yellow" | "pink" | "black" | "gray" | "white", string>;
13
3
  /**
14
4
  * {@linkcode Button}.
15
5
  *
@@ -31,47 +21,24 @@ export declare class Button extends GodownElement {
31
21
  /**
32
22
  * Enables rounded corners to appear capsule shaped.
33
23
  */
34
- radius: boolean;
24
+ round: boolean;
35
25
  /**
36
26
  * The primary color.
37
27
  */
38
- color: "none" | Colors;
28
+ color: "none" | keyof typeof colors;
39
29
  /**
40
30
  * Text inside.
41
31
  */
42
32
  text: string;
43
- _b: HTMLElement;
44
- _div: HTMLButtonElement;
45
- static styles: import("lit").CSSResult[];
46
- protected render(): HTMLTemplate;
33
+ _modalRoot: HTMLElement;
34
+ _root: HTMLElement;
35
+ protected render(): import("lit").TemplateResult<1>;
47
36
  focus(): void;
48
37
  blur(): void;
49
- protected firstUpdated(): void;
50
- protected _handleModal(e: MouseEvent): void;
38
+ firstUpdated(): void;
51
39
  protected _handelClick(e: MouseEvent): void;
52
- /**
53
- * Get the color to render, default is this.color.
54
- *
55
- * @returns New color.
56
- *
57
- * Colors can be set for different states.
58
- *
59
- * The matching selector is `[color=COLOR]`.
60
- *
61
- * @example
62
- * ```ts
63
- * button.adoptStyles("[color=COLOR1]{...}")
64
- * button.adoptStyles("[color=COLOR2]{...}")
65
- * button.nextColor = () => state ? COLOR1 : COLOR2
66
- * ```
67
- */
68
- nextColor(): Colors | string;
40
+ protected _handleModal(e: MouseEvent): void;
41
+ nextColor(): "teal" | "blue" | "green" | "red" | "purple" | "orange" | "yellow" | "pink" | "none" | "black" | "gray" | "white";
69
42
  }
70
43
  export default Button;
71
- declare global {
72
- interface HTMLElementTagNameMap {
73
- "base-button": Button;
74
- "g-button": Button;
75
- }
76
- }
77
44
  //# sourceMappingURL=button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/button/button.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAe,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAalE,QAAA,MAAM,MAAM;;;;;;;;CA2CX,CAAC;AAEF,KAAK,MAAM,GAAG,MAAM,OAAO,MAAM,CAAC;AAElC;;;;GAIG;AACH,qBACa,MAAO,SAAQ,aAAa;IACvC;;OAEG;IACyC,QAAQ,UAAS;IAC7D;;OAEG;IACyC,KAAK,UAAS;IAC1D;;OAEG;IACyC,MAAM,UAAS;IAC3D;;OAEG;IACyC,MAAM,UAAS;IAC3D;;OAEG;IACS,KAAK,EAAE,MAAM,GAAG,MAAM,CAAW;IAC7C;;OAEG;IACS,IAAI,SAAM;IAEV,EAAE,EAAE,WAAW,CAAC;IACd,IAAI,EAAE,iBAAiB,CAAC;IAEtC,MAAM,CAAC,MAAM,4BAoHX;IAEF,SAAS,CAAC,MAAM,IAAI,YAAY;IAShC,KAAK;IAOL,IAAI;IAIJ,SAAS,CAAC,YAAY;IAItB,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU;IAgBpC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU;IAYpC;;;;;;;;;;;;;;;OAeG;IACH,SAAS,IAAI,MAAM,GAAG,MAAM;CAG7B;AAED,eAAe,MAAM,CAAC;AAEtB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB;CACF"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/button/button.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAS9D,QAAA,MAAM,MAAM,0HA4DX,CAAC;AAEF;;;;GAIG;AACH,qBAgGa,MAAO,SAAQ,aAAa;IACvC;;OAEG;IACyC,QAAQ,EAAE,OAAO,CAAC;IAC9D;;OAEG;IACyC,KAAK,EAAE,OAAO,CAAC;IAC3D;;OAEG;IACyC,MAAM,EAAE,OAAO,CAAC;IAC5D;;OAEG;IACyC,KAAK,EAAE,OAAO,CAAC;IAC3D;;OAEG;IAC0B,KAAK,EAAE,MAAM,GAAG,MAAM,OAAO,MAAM,CAAW;IAC3E;;OAEG;IACS,IAAI,EAAE,MAAM,CAAC;IAEL,UAAU,EAAE,WAAW,CAAC;IAC9B,KAAK,EAAE,WAAW,CAAC;IAEjC,SAAS,CAAC,MAAM;IAWhB,KAAK;IAOL,IAAI;IAIJ,YAAY;IAIZ,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU;IASpC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU;IAepC,SAAS;CAGV;AAED,eAAe,MAAM,CAAC"}
@@ -1,62 +1,73 @@
1
1
  import { __decorate } from "tslib";
2
- import { css, html, property, query, unsafeCSS } from "../../.deps.js";
3
- import { define } from "../../decorators/define.js";
4
- import { htmlSlot } from "../../lib/templates.js";
5
- import { constructCSS } from "../../lib/utils.js";
6
- import { createScope, GodownElement } from "../../supers/root.js";
7
- const defineName = "button";
8
- const cssvarScope = createScope(defineName);
9
- const shadow1 = "-2px 2px 5px -2px";
10
- const shadow2 = "2px -2px 5px -2px";
11
- const linearGradient = "linear-gradient";
12
- const fff = "#fff";
13
- const _000 = "#000";
14
- const deg = `var(${cssvarScope}--deg)`;
15
- const vars = ["color", "background", "box-shadow", "ghost-color"];
16
- const colors = {
2
+ import { css, html, property } from "../../_deps.js";
3
+ import { godown } from "../../decorators/godown.js";
4
+ import { part } from "../../decorators/part.js";
5
+ import { styles } from "../../decorators/styles.js";
6
+ import { constructCSSObject } from "../../lib/css.js";
7
+ import { htmlSlot, htmlStyle } from "../../lib/directives.js";
8
+ import { GodownElement } from "../../proto/godown-element.js";
9
+ import { colorValues, createScope } from "../../styles/global.js";
10
+ const protoName = "button";
11
+ const cssScope = createScope(protoName);
12
+ const whiteFont = colorValues.lightgray[0];
13
+ const blackFont = colorValues.darkgray[6];
14
+ const colors = constructCSSObject(["color", "background", "gradients"].map((k) => `--${cssScope}--${k}`), {
17
15
  black: [
18
- fff, //
19
- `${linearGradient}(${deg}, rgb(30 30 30), rgb(65 65 65))`,
20
- `${shadow1} rgb(0 0 0 / 20%), ${shadow2} rgb(99 99 99 / 20%)`,
21
- "rgb(22 20 20)",
16
+ whiteFont, // color
17
+ colorValues.darkgray[7], // background
18
+ colorValues.darkgray[4], // gradients
22
19
  ],
23
- gary: [
24
- fff, //
25
- `${linearGradient}(${deg}, rgb(65 65 65), rgb(100 100 100))`,
26
- `${shadow1} rgb(0 0 0 / 20%), ${shadow2} rgb(99 99 99 / 20%)`,
27
- "rgb(56 56 56)",
20
+ gray: [
21
+ whiteFont, // color
22
+ colorValues.darkgray[1], // background
23
+ colorValues.lightgray[8], // gradients
28
24
  ],
29
25
  white: [
30
- _000, //
31
- `${linearGradient}(${deg}, rgb(225 225 225), rgb(240 240 240))`,
32
- `${shadow1} rgb(255 255 255 / 20%), ${shadow2} rgb(165 165 165 / 20%)`,
33
- "rgb(212 212 212)",
26
+ blackFont, // color
27
+ colorValues.lightgray[3], // background
28
+ colorValues.lightgray[0], // gradients
34
29
  ],
35
- red: [
36
- fff, //
37
- `${linearGradient}(${deg}, rgb(215 57 68), rgb(250 141 106))`,
38
- `${shadow1} rgb(181 35 44 / 20%), ${shadow2} rgb(234 130 174 / 20%)`,
39
- "rgb(214 11 23)",
30
+ blue: [
31
+ whiteFont, // color
32
+ colorValues.blue[6], // background
33
+ colorValues.blue[4], // gradients
40
34
  ],
41
35
  green: [
42
- _000, //
43
- `${linearGradient}(${deg}, rgb(21 206 71), rgb(99 253 122))`,
44
- `${shadow1} rgb(63 179 69 / 20%), ${shadow2} rgb(136 225 142 / 20%)`,
45
- "rgb(60 214 68)",
36
+ whiteFont, // color
37
+ colorValues.green[6], // background
38
+ colorValues.green[4], // gradients
46
39
  ],
47
- blue: [
48
- fff, //
49
- `${linearGradient}(${deg}, rgb(14 143 255), rgb(121 211 255))`,
50
- `${shadow1} rgb(92 182 255 / 20%), ${shadow2} rgb(135 232 222 / 20%)`,
51
- "rgb(42 141 221)",
40
+ red: [
41
+ whiteFont, // color
42
+ colorValues.red[6], // background
43
+ colorValues.red[4], // gradients
44
+ ],
45
+ orange: [
46
+ whiteFont, // color
47
+ colorValues.orange[6], // background
48
+ colorValues.orange[4], // gradients
49
+ ],
50
+ pink: [
51
+ whiteFont, // color
52
+ colorValues.pink[6], // background
53
+ colorValues.pink[4], // gradients
54
+ ],
55
+ purple: [
56
+ whiteFont, // color
57
+ colorValues.purple[6], // background
58
+ colorValues.purple[4], // gradients
52
59
  ],
53
60
  yellow: [
54
- _000, //
55
- `${linearGradient}(${deg}, rgb(255 190 54), rgb(255 249 68))`,
56
- `${shadow1} rgb(214 203 55 / 20%), ${shadow2} rgb(202 203 137 / 20%)`,
57
- "rgb(255 235 59)",
61
+ blackFont, // color
62
+ colorValues.yellow[6], // background
63
+ colorValues.yellow[4], // gradients
58
64
  ],
59
- };
65
+ teal: [
66
+ whiteFont, // color
67
+ colorValues.teal[6], // background
68
+ colorValues.teal[4], //gradients
69
+ ],
70
+ }, () => `:host`);
60
71
  /**
61
72
  * {@linkcode Button}.
62
73
  *
@@ -65,37 +76,19 @@ const colors = {
65
76
  let Button = class Button extends GodownElement {
66
77
  constructor() {
67
78
  super(...arguments);
68
- /**
69
- * Whether to disable this element.
70
- */
71
- this.disabled = false;
72
- /**
73
- * Invert font and background color.
74
- */
75
- this.ghost = false;
76
- /**
77
- * Whether this element is active or not.
78
- */
79
- this.active = false;
80
- /**
81
- * Enables rounded corners to appear capsule shaped.
82
- */
83
- this.radius = false;
84
79
  /**
85
80
  * The primary color.
86
81
  */
87
82
  this.color = "black";
88
- /**
89
- * Text inside.
90
- */
91
- this.text = "";
92
83
  }
93
84
  render() {
85
+ const color = this.nextColor();
94
86
  return html `
95
- <div color="${this.nextColor()}">
96
- <b></b>
97
- <p>${this.text || htmlSlot()}</p>
87
+ <div part="root">
88
+ <span part="modal-root"></span>
89
+ <div part="slot">${this.text || htmlSlot()}</div>
98
90
  </div>
91
+ ${htmlStyle(colors[color])}
99
92
  `;
100
93
  }
101
94
  focus() {
@@ -108,165 +101,34 @@ let Button = class Button extends GodownElement {
108
101
  this.active = false;
109
102
  }
110
103
  firstUpdated() {
111
- this.addEvent(document, "click", this._handelClick.bind(this));
112
- }
113
- _handleModal(e) {
114
- const a = this._div.offsetHeight + 1;
115
- const b = this._div.offsetWidth + 1;
116
- const size = `${Math.sqrt(a * a + b * b) * 2}px`;
117
- const translate = `translate(calc(-50% + ${e.offsetX}px), calc(-50% + ${e.offsetY}px))`;
118
- this._b.style.width = size;
119
- this._b.style.height = size;
120
- this._b.style.transform = translate;
121
- const i = document.createElement("i");
122
- i.style.animationName = "i";
123
- this._b.appendChild(i);
124
- setTimeout(() => {
125
- i.remove();
126
- }, 2000);
104
+ this.addEvent(this, "click", this._handelClick, true);
127
105
  }
128
106
  _handelClick(e) {
129
107
  if (this.disabled) {
108
+ e.stopPropagation();
109
+ e.preventDefault();
130
110
  return;
131
111
  }
132
- if (e.target === this) {
133
- this._handleModal(e);
134
- this.focus();
135
- }
136
- else {
137
- this.blur();
138
- }
112
+ this._handleModal(e);
113
+ }
114
+ _handleModal(e) {
115
+ const modal = document.createElement("i");
116
+ const rect = this.getBoundingClientRect();
117
+ const h = rect.height;
118
+ const w = rect.width;
119
+ const size = `${Math.sqrt(h * h + w * w) * 2}px`;
120
+ modal.style.height = size;
121
+ modal.style.width = size;
122
+ modal.style.left = `${e.clientX - rect.left}px`;
123
+ modal.style.top = `${e.clientY - rect.y}px`;
124
+ modal.style.animationName = "kf";
125
+ this._modalRoot.appendChild(modal);
126
+ modal.addEventListener("animationend", () => modal.remove(), { once: true });
139
127
  }
140
- /**
141
- * Get the color to render, default is this.color.
142
- *
143
- * @returns New color.
144
- *
145
- * Colors can be set for different states.
146
- *
147
- * The matching selector is `[color=COLOR]`.
148
- *
149
- * @example
150
- * ```ts
151
- * button.adoptStyles("[color=COLOR1]{...}")
152
- * button.adoptStyles("[color=COLOR2]{...}")
153
- * button.nextColor = () => state ? COLOR1 : COLOR2
154
- * ```
155
- */
156
128
  nextColor() {
157
129
  return this.color;
158
130
  }
159
131
  };
160
- Button.styles = [
161
- unsafeCSS(constructCSS(vars, colors, (raw) => `[color=${raw}]`, (k, v) => `${cssvarScope}--${k}:${v}`)),
162
- css `
163
- :host {
164
- ${cssvarScope}--padding: .05em .25em;
165
- ${cssvarScope}--deg: 45deg;
166
- ${cssvarScope}--ghost-width: .09em;
167
- ${cssvarScope}--modal-opacity: .15;
168
- ${cssvarScope}--modal-opacity-end: 0;
169
- ${cssvarScope}--modal-animation-duration: 1s;
170
- ${cssvarScope}--focus-scale: .975;
171
- transition: 0.1s;
172
- display: flex;
173
- width: fit-content;
174
- border-radius: 0.25em;
175
- cursor: pointer;
176
- background: none !important;
177
- }
178
-
179
- :host([disabled]) {
180
- cursor: not-allowed;
181
- }
182
-
183
- :host(:active) {
184
- scale: var(${cssvarScope}--focus-scale);
185
- }
186
-
187
- div {
188
- background: var(${cssvarScope}--background);
189
- box-shadow: var(${cssvarScope}--box-shadow);
190
- color: var(${cssvarScope}--color, inherit);
191
- width: 100%;
192
- height: 100%;
193
- position: relative;
194
- overflow: hidden;
195
- border-radius: inherit;
196
- transition-duration: inherit;
197
- transition-property: scale;
198
- pointer-events: none;
199
- box-sizing: border-box;
200
- }
201
-
202
- b {
203
- pointer-events: none;
204
- transform: translate(-50%, -50%);
205
- position: absolute;
206
- visibility: hidden;
207
- }
208
-
209
- p {
210
- padding: var(${cssvarScope}--padding);
211
- margin: 0;
212
- user-select: none;
213
- transition: none;
214
- }
215
-
216
- :host([ghost]) p {
217
- background-image: var(${cssvarScope}--background);
218
- margin: calc(-1 * var(${cssvarScope}--ghost-width));
219
- background-clip: text;
220
- -webkit-background-clip: text;
221
- color: transparent;
222
- }
223
-
224
- :host([ghost]) div {
225
- background: transparent;
226
- border: var(${cssvarScope}--ghost-width) solid var(${cssvarScope}--ghost-color);
227
- }
228
-
229
- :host([radius]) {
230
- border-radius: calc(infinity * 1px);
231
- ${cssvarScope}--padding: .075em .5em;
232
- }
233
- `,
234
- css `
235
- i {
236
- position: absolute;
237
- top: 0;
238
- left: 0;
239
- right: 0;
240
- bottom: 0;
241
- width: 100%;
242
- height: 100%;
243
- pointer-events: none;
244
- border-radius: 50%;
245
- transform: translate(0, 0);
246
- background: currentColor;
247
- opacity: var(${cssvarScope}--modal-opacity-end);
248
- visibility: visible;
249
- animation-duration: min(var(${cssvarScope}--modal-animation-duration), 2s);
250
- }
251
-
252
- :host([ghost]) i {
253
- background: var(${cssvarScope}--ghost-color);
254
- }
255
-
256
- @keyframes i {
257
- 0% {
258
- transform: scale(0);
259
- opacity: var(${cssvarScope}--modal-opacity);
260
- }
261
- 80% {
262
- transform: scale(1);
263
- }
264
- 100% {
265
- opacity: var(${cssvarScope}--modal-opacity-end);
266
- }
267
- }
268
- `,
269
- ];
270
132
  __decorate([
271
133
  property({ type: Boolean, reflect: true })
272
134
  ], Button.prototype, "disabled", void 0);
@@ -278,21 +140,116 @@ __decorate([
278
140
  ], Button.prototype, "active", void 0);
279
141
  __decorate([
280
142
  property({ type: Boolean, reflect: true })
281
- ], Button.prototype, "radius", void 0);
143
+ ], Button.prototype, "round", void 0);
282
144
  __decorate([
283
- property()
145
+ property({ reflect: true })
284
146
  ], Button.prototype, "color", void 0);
285
147
  __decorate([
286
148
  property()
287
149
  ], Button.prototype, "text", void 0);
288
150
  __decorate([
289
- query("b")
290
- ], Button.prototype, "_b", void 0);
151
+ part("modal-root")
152
+ ], Button.prototype, "_modalRoot", void 0);
291
153
  __decorate([
292
- query("div")
293
- ], Button.prototype, "_div", void 0);
154
+ part("root")
155
+ ], Button.prototype, "_root", void 0);
294
156
  Button = __decorate([
295
- define(defineName)
157
+ godown(protoName),
158
+ styles([
159
+ css `
160
+ :host(:not([disabled]):active) {
161
+ transform: scale(var(--${cssScope}--focus-scale));
162
+ }
163
+
164
+ :host([round]) {
165
+ --${cssScope}--padding-x: .75em;
166
+ border-radius: calc(infinity * 1px);
167
+ }
168
+
169
+ :host([disabled]) {
170
+ cursor: not-allowed;
171
+ filter: brightness(0.85);
172
+ }
173
+
174
+ :host([ghost]) {
175
+ --${cssScope}--modal-background: var(--${cssScope}--ghost-color);
176
+ border-color: var(--${cssScope}--ghost-color);
177
+ border-width: var(--${cssScope}--ghost-width);
178
+ color: var(--${cssScope}--ghost-color);
179
+ background: transparent;
180
+ border-style: solid;
181
+ }
182
+ `,
183
+ css `
184
+ :host {
185
+ --${cssScope}--padding-x: .5em;
186
+ --${cssScope}--padding: .1em var(--${cssScope}--padding-x);
187
+ --${cssScope}--modal-animation-duration: 1s;
188
+ --${cssScope}--ghost-width: .08em;
189
+ --${cssScope}--focus-scale: .97;
190
+ --${cssScope}--deg: 45deg;
191
+ --${cssScope}--ghost-color:var(--${cssScope}--background);
192
+ color: var(--${cssScope}--color, inherit);
193
+ background: linear-gradient(
194
+ var(--${cssScope}--deg),
195
+ var(--${cssScope}--background),
196
+ var(--${cssScope}--gradients, var(--${cssScope}--background))
197
+ );
198
+ border-radius: 0.3em;
199
+ width: -moz-fit-content;
200
+ width: fit-content;
201
+ transition: 0.1s;
202
+ display: block;
203
+ overflow: hidden;
204
+ text-align: center;
205
+ padding: 0 !important;
206
+ cursor: pointer;
207
+ }
208
+
209
+ [part="root"] {
210
+ width: 100%;
211
+ height: 100%;
212
+ overflow: hidden;
213
+ position: relative;
214
+ border-radius: inherit;
215
+ -webkit-user-select: none;
216
+ user-select: none;
217
+ transition: none;
218
+ transition-duration: inherit;
219
+ }
220
+
221
+ [part="slot"] {
222
+ padding: var(--${cssScope}--padding);
223
+ }
224
+
225
+ i {
226
+ position: absolute;
227
+ inset: 0;
228
+ opacity: 0;
229
+ width: 100%;
230
+ height: 100%;
231
+ border-radius: 50%;
232
+ visibility: visible;
233
+ pointer-events: none;
234
+ transform-origin: 0 0;
235
+ background: var(--${cssScope}--modal-background, currentColor);
236
+ animation-duration: var(--${cssScope}--modal-animation-duration);
237
+ }
238
+
239
+ @keyframes kf {
240
+ 0% {
241
+ transform: scale(0) translate(-50%, -50%);
242
+ opacity: var(--${cssScope}--modal-opacity, 0.18);
243
+ }
244
+ 80% {
245
+ transform: scale(1) translate(-50%, -50%);
246
+ }
247
+ to {
248
+ opacity: 0;
249
+ }
250
+ }
251
+ `,
252
+ ])
296
253
  ], Button);
297
254
  export { Button };
298
255
  export default Button;
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/button/button.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, property, query, unsafeCSS } from \"../../.deps.js\";\nimport { define } from \"../../decorators/define.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { constructCSS } from \"../../lib/utils.js\";\nimport { createScope, GodownElement } from \"../../supers/root.js\";\n\nconst defineName = \"button\";\nconst cssvarScope = createScope(defineName);\n\nconst shadow1 = \"-2px 2px 5px -2px\";\nconst shadow2 = \"2px -2px 5px -2px\";\nconst linearGradient = \"linear-gradient\";\nconst fff = \"#fff\";\nconst _000 = \"#000\";\nconst deg = `var(${cssvarScope}--deg)`;\n\nconst vars = [\"color\", \"background\", \"box-shadow\", \"ghost-color\"];\nconst colors = {\n black: [\n fff, //\n `${linearGradient}(${deg}, rgb(30 30 30), rgb(65 65 65))`,\n `${shadow1} rgb(0 0 0 / 20%), ${shadow2} rgb(99 99 99 / 20%)`,\n \"rgb(22 20 20)\",\n ],\n gary: [\n fff, //\n `${linearGradient}(${deg}, rgb(65 65 65), rgb(100 100 100))`,\n `${shadow1} rgb(0 0 0 / 20%), ${shadow2} rgb(99 99 99 / 20%)`,\n \"rgb(56 56 56)\",\n ],\n white: [\n _000, //\n `${linearGradient}(${deg}, rgb(225 225 225), rgb(240 240 240))`,\n `${shadow1} rgb(255 255 255 / 20%), ${shadow2} rgb(165 165 165 / 20%)`,\n \"rgb(212 212 212)\",\n ],\n red: [\n fff, //\n `${linearGradient}(${deg}, rgb(215 57 68), rgb(250 141 106))`,\n `${shadow1} rgb(181 35 44 / 20%), ${shadow2} rgb(234 130 174 / 20%)`,\n \"rgb(214 11 23)\",\n ],\n green: [\n _000, //\n `${linearGradient}(${deg}, rgb(21 206 71), rgb(99 253 122))`,\n `${shadow1} rgb(63 179 69 / 20%), ${shadow2} rgb(136 225 142 / 20%)`,\n \"rgb(60 214 68)\",\n ],\n blue: [\n fff, //\n `${linearGradient}(${deg}, rgb(14 143 255), rgb(121 211 255))`,\n `${shadow1} rgb(92 182 255 / 20%), ${shadow2} rgb(135 232 222 / 20%)`,\n \"rgb(42 141 221)\",\n ],\n yellow: [\n _000, //\n `${linearGradient}(${deg}, rgb(255 190 54), rgb(255 249 68))`,\n `${shadow1} rgb(214 203 55 / 20%), ${shadow2} rgb(202 203 137 / 20%)`,\n \"rgb(255 235 59)\",\n ],\n};\n\ntype Colors = keyof typeof colors;\n\n/**\n * {@linkcode Button}.\n *\n * Inspired by Next-ui.\n */\n@define(defineName)\nexport class Button extends GodownElement {\n /**\n * Whether to disable this element.\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n /**\n * Invert font and background color.\n */\n @property({ type: Boolean, reflect: true }) ghost = false;\n /**\n * Whether this element is active or not.\n */\n @property({ type: Boolean, reflect: true }) active = false;\n /**\n * Enables rounded corners to appear capsule shaped.\n */\n @property({ type: Boolean, reflect: true }) radius = false;\n /**\n * The primary color.\n */\n @property() color: \"none\" | Colors = \"black\";\n /**\n * Text inside.\n */\n @property() text = \"\";\n\n @query(\"b\") _b: HTMLElement;\n @query(\"div\") _div: HTMLButtonElement;\n\n static styles = [\n unsafeCSS(\n constructCSS(\n vars,\n colors,\n (raw) => `[color=${raw}]`,\n (k, v) => `${cssvarScope}--${k}:${v}`,\n ),\n ),\n css`\n :host {\n ${cssvarScope}--padding: .05em .25em;\n ${cssvarScope}--deg: 45deg;\n ${cssvarScope}--ghost-width: .09em;\n ${cssvarScope}--modal-opacity: .15;\n ${cssvarScope}--modal-opacity-end: 0;\n ${cssvarScope}--modal-animation-duration: 1s;\n ${cssvarScope}--focus-scale: .975;\n transition: 0.1s;\n display: flex;\n width: fit-content;\n border-radius: 0.25em;\n cursor: pointer;\n background: none !important;\n }\n\n :host([disabled]) {\n cursor: not-allowed;\n }\n\n :host(:active) {\n scale: var(${cssvarScope}--focus-scale);\n }\n\n div {\n background: var(${cssvarScope}--background);\n box-shadow: var(${cssvarScope}--box-shadow);\n color: var(${cssvarScope}--color, inherit);\n width: 100%;\n height: 100%;\n position: relative;\n overflow: hidden;\n border-radius: inherit;\n transition-duration: inherit;\n transition-property: scale;\n pointer-events: none;\n box-sizing: border-box;\n }\n\n b {\n pointer-events: none;\n transform: translate(-50%, -50%);\n position: absolute;\n visibility: hidden;\n }\n\n p {\n padding: var(${cssvarScope}--padding);\n margin: 0;\n user-select: none;\n transition: none;\n }\n\n :host([ghost]) p {\n background-image: var(${cssvarScope}--background);\n margin: calc(-1 * var(${cssvarScope}--ghost-width));\n background-clip: text;\n -webkit-background-clip: text;\n color: transparent;\n }\n\n :host([ghost]) div {\n background: transparent;\n border: var(${cssvarScope}--ghost-width) solid var(${cssvarScope}--ghost-color);\n }\n\n :host([radius]) {\n border-radius: calc(infinity * 1px);\n ${cssvarScope}--padding: .075em .5em;\n }\n `,\n css`\n i {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n border-radius: 50%;\n transform: translate(0, 0);\n background: currentColor;\n opacity: var(${cssvarScope}--modal-opacity-end);\n visibility: visible;\n animation-duration: min(var(${cssvarScope}--modal-animation-duration), 2s);\n }\n\n :host([ghost]) i {\n background: var(${cssvarScope}--ghost-color);\n }\n\n @keyframes i {\n 0% {\n transform: scale(0);\n opacity: var(${cssvarScope}--modal-opacity);\n }\n 80% {\n transform: scale(1);\n }\n 100% {\n opacity: var(${cssvarScope}--modal-opacity-end);\n }\n }\n `,\n ];\n\n protected render(): HTMLTemplate {\n return html`\n <div color=\"${this.nextColor()}\">\n <b></b>\n <p>${this.text || htmlSlot()}</p>\n </div>\n `;\n }\n\n focus() {\n if (this.disabled) {\n return;\n }\n this.active = true;\n }\n\n blur() {\n this.active = false;\n }\n\n protected firstUpdated() {\n this.addEvent(document, \"click\", this._handelClick.bind(this));\n }\n\n protected _handleModal(e: MouseEvent) {\n const a = this._div.offsetHeight + 1;\n const b = this._div.offsetWidth + 1;\n const size = `${Math.sqrt(a * a + b * b) * 2}px`;\n const translate = `translate(calc(-50% + ${e.offsetX}px), calc(-50% + ${e.offsetY}px))`;\n this._b.style.width = size;\n this._b.style.height = size;\n this._b.style.transform = translate;\n const i = document.createElement(\"i\");\n i.style.animationName = \"i\";\n this._b.appendChild(i);\n setTimeout(() => {\n i.remove();\n }, 2000);\n }\n\n protected _handelClick(e: MouseEvent) {\n if (this.disabled) {\n return;\n }\n if (e.target === this) {\n this._handleModal(e);\n this.focus();\n } else {\n this.blur();\n }\n }\n\n /**\n * Get the color to render, default is this.color.\n *\n * @returns New color.\n *\n * Colors can be set for different states.\n *\n * The matching selector is `[color=COLOR]`.\n *\n * @example\n * ```ts\n * button.adoptStyles(\"[color=COLOR1]{...}\")\n * button.adoptStyles(\"[color=COLOR2]{...}\")\n * button.nextColor = () => state ? COLOR1 : COLOR2\n * ```\n */\n nextColor(): Colors | string {\n return this.color;\n }\n}\n\nexport default Button;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"base-button\": Button;\n \"g-button\": Button;\n }\n}\n"]}
1
+ {"version":3,"file":"button.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/button/button.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, property } from \"../../_deps.js\";\nimport { godown } from \"../../decorators/godown.js\";\nimport { part } from \"../../decorators/part.js\";\nimport { styles } from \"../../decorators/styles.js\";\nimport { constructCSSObject } from \"../../lib/css.js\";\nimport { htmlSlot, htmlStyle } from \"../../lib/directives.js\";\nimport { GodownElement } from \"../../proto/godown-element.js\";\nimport { colorValues, createScope } from \"../../styles/global.js\";\n\nconst protoName = \"button\";\nconst cssScope = createScope(protoName);\n\nconst whiteFont = colorValues.lightgray[0];\nconst blackFont = colorValues.darkgray[6];\n\nconst colors = constructCSSObject(\n [\"color\", \"background\", \"gradients\"].map((k) => `--${cssScope}--${k}`),\n {\n black: [\n whiteFont, // color\n colorValues.darkgray[7], // background\n colorValues.darkgray[4], // gradients\n ],\n gray: [\n whiteFont, // color\n colorValues.darkgray[1], // background\n colorValues.lightgray[8], // gradients\n ],\n white: [\n blackFont, // color\n colorValues.lightgray[3], // background\n colorValues.lightgray[0], // gradients\n ],\n blue: [\n whiteFont, // color\n colorValues.blue[6], // background\n colorValues.blue[4], // gradients\n ],\n green: [\n whiteFont, // color\n colorValues.green[6], // background\n colorValues.green[4], // gradients\n ],\n red: [\n whiteFont, // color\n colorValues.red[6], // background\n colorValues.red[4], // gradients\n ],\n orange: [\n whiteFont, // color\n colorValues.orange[6], // background\n colorValues.orange[4], // gradients\n ],\n pink: [\n whiteFont, // color\n colorValues.pink[6], // background\n colorValues.pink[4], // gradients\n ],\n purple: [\n whiteFont, // color\n colorValues.purple[6], // background\n colorValues.purple[4], // gradients\n ],\n yellow: [\n blackFont, // color\n colorValues.yellow[6], // background\n colorValues.yellow[4], // gradients\n ],\n teal: [\n whiteFont, // color\n colorValues.teal[6], // background\n colorValues.teal[4], //gradients\n ],\n },\n () => `:host`,\n);\n\n/**\n * {@linkcode Button}.\n *\n * Inspired by Next-ui.\n */\n@godown(protoName)\n@styles([\n css`\n :host(:not([disabled]):active) {\n transform: scale(var(--${cssScope}--focus-scale));\n }\n\n :host([round]) {\n --${cssScope}--padding-x: .75em;\n border-radius: calc(infinity * 1px);\n }\n\n :host([disabled]) {\n cursor: not-allowed;\n filter: brightness(0.85);\n }\n\n :host([ghost]) {\n --${cssScope}--modal-background: var(--${cssScope}--ghost-color);\n border-color: var(--${cssScope}--ghost-color);\n border-width: var(--${cssScope}--ghost-width);\n color: var(--${cssScope}--ghost-color);\n background: transparent;\n border-style: solid;\n }\n `,\n css`\n :host {\n --${cssScope}--padding-x: .5em;\n --${cssScope}--padding: .1em var(--${cssScope}--padding-x);\n --${cssScope}--modal-animation-duration: 1s;\n --${cssScope}--ghost-width: .08em;\n --${cssScope}--focus-scale: .97;\n --${cssScope}--deg: 45deg;\n --${cssScope}--ghost-color:var(--${cssScope}--background);\n color: var(--${cssScope}--color, inherit);\n background: linear-gradient(\n var(--${cssScope}--deg),\n var(--${cssScope}--background),\n var(--${cssScope}--gradients, var(--${cssScope}--background))\n );\n border-radius: 0.3em;\n width: -moz-fit-content;\n width: fit-content;\n transition: 0.1s;\n display: block;\n overflow: hidden;\n text-align: center;\n padding: 0 !important;\n cursor: pointer;\n }\n\n [part=\"root\"] {\n width: 100%;\n height: 100%;\n overflow: hidden;\n position: relative;\n border-radius: inherit;\n -webkit-user-select: none;\n user-select: none;\n transition: none;\n transition-duration: inherit;\n }\n\n [part=\"slot\"] {\n padding: var(--${cssScope}--padding);\n }\n\n i {\n position: absolute;\n inset: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n visibility: visible;\n pointer-events: none;\n transform-origin: 0 0;\n background: var(--${cssScope}--modal-background, currentColor);\n animation-duration: var(--${cssScope}--modal-animation-duration);\n }\n\n @keyframes kf {\n 0% {\n transform: scale(0) translate(-50%, -50%);\n opacity: var(--${cssScope}--modal-opacity, 0.18);\n }\n 80% {\n transform: scale(1) translate(-50%, -50%);\n }\n to {\n opacity: 0;\n }\n }\n `,\n])\nexport class Button extends GodownElement {\n /**\n * Whether to disable this element.\n */\n @property({ type: Boolean, reflect: true }) disabled: boolean;\n /**\n * Invert font and background color.\n */\n @property({ type: Boolean, reflect: true }) ghost: boolean;\n /**\n * Whether this element is active or not.\n */\n @property({ type: Boolean, reflect: true }) active: boolean;\n /**\n * Enables rounded corners to appear capsule shaped.\n */\n @property({ type: Boolean, reflect: true }) round: boolean;\n /**\n * The primary color.\n */\n @property({ reflect: true }) color: \"none\" | keyof typeof colors = \"black\";\n /**\n * Text inside.\n */\n @property() text: string;\n\n @part(\"modal-root\") _modalRoot: HTMLElement;\n @part(\"root\") _root: HTMLElement;\n\n protected render() {\n const color = this.nextColor();\n return html`\n <div part=\"root\">\n <span part=\"modal-root\"></span>\n <div part=\"slot\">${this.text || htmlSlot()}</div>\n </div>\n ${htmlStyle(colors[color])}\n `;\n }\n\n focus() {\n if (this.disabled) {\n return;\n }\n this.active = true;\n }\n\n blur() {\n this.active = false;\n }\n\n firstUpdated() {\n this.addEvent(this, \"click\", this._handelClick, true);\n }\n\n protected _handelClick(e: MouseEvent) {\n if (this.disabled) {\n e.stopPropagation();\n e.preventDefault();\n return;\n }\n this._handleModal(e);\n }\n\n protected _handleModal(e: MouseEvent) {\n const modal = document.createElement(\"i\");\n const rect = this.getBoundingClientRect();\n const h = rect.height;\n const w = rect.width;\n const size = `${Math.sqrt(h * h + w * w) * 2}px`;\n modal.style.height = size;\n modal.style.width = size;\n modal.style.left = `${e.clientX - rect.left}px`;\n modal.style.top = `${e.clientY - rect.y}px`;\n modal.style.animationName = \"kf\";\n this._modalRoot.appendChild(modal);\n modal.addEventListener(\"animationend\", () => modal.remove(), { once: true });\n }\n\n nextColor() {\n return this.color;\n }\n}\n\nexport default Button;\n"]}