godown 3.0.0-canary.1 → 3.0.0-canary.10

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 (301) hide show
  1. package/README.md +37 -8
  2. package/components/alert.d.ts +5 -3
  3. package/components/alert.d.ts.map +1 -1
  4. package/components/alert.js +24 -14
  5. package/components/alert.js.map +1 -1
  6. package/components/avatar.d.ts +5 -1
  7. package/components/avatar.d.ts.map +1 -1
  8. package/components/avatar.js +7 -3
  9. package/components/avatar.js.map +1 -1
  10. package/components/breath.d.ts +2 -1
  11. package/components/breath.d.ts.map +1 -1
  12. package/components/breath.js +5 -4
  13. package/components/breath.js.map +1 -1
  14. package/components/button.d.ts +16 -9
  15. package/components/button.d.ts.map +1 -1
  16. package/components/button.js +22 -20
  17. package/components/button.js.map +1 -1
  18. package/components/card.d.ts +1 -2
  19. package/components/card.d.ts.map +1 -1
  20. package/components/card.js +5 -11
  21. package/components/card.js.map +1 -1
  22. package/components/carousel.d.ts +6 -5
  23. package/components/carousel.d.ts.map +1 -1
  24. package/components/carousel.js +3 -2
  25. package/components/carousel.js.map +1 -1
  26. package/components/details.d.ts +5 -2
  27. package/components/details.d.ts.map +1 -1
  28. package/components/details.js +5 -2
  29. package/components/details.js.map +1 -1
  30. package/components/dialog.d.ts +8 -4
  31. package/components/dialog.d.ts.map +1 -1
  32. package/components/dialog.js +17 -12
  33. package/components/dialog.js.map +1 -1
  34. package/components/divider.d.ts +1 -1
  35. package/components/divider.js +1 -1
  36. package/components/divider.js.map +1 -1
  37. package/components/dragbox.d.ts +7 -7
  38. package/components/dragbox.d.ts.map +1 -1
  39. package/components/dragbox.js +1 -1
  40. package/components/dragbox.js.map +1 -1
  41. package/components/flex.d.ts +2 -1
  42. package/components/flex.d.ts.map +1 -1
  43. package/components/flex.js +8 -0
  44. package/components/flex.js.map +1 -1
  45. package/components/form.d.ts +0 -2
  46. package/components/form.d.ts.map +1 -1
  47. package/components/form.js +0 -2
  48. package/components/form.js.map +1 -1
  49. package/components/grid.d.ts +8 -3
  50. package/components/grid.d.ts.map +1 -1
  51. package/components/grid.js +1 -0
  52. package/components/grid.js.map +1 -1
  53. package/components/input.d.ts +2 -3
  54. package/components/input.d.ts.map +1 -1
  55. package/components/input.js +3 -6
  56. package/components/input.js.map +1 -1
  57. package/components/layout.d.ts +3 -6
  58. package/components/layout.d.ts.map +1 -1
  59. package/components/layout.js +21 -10
  60. package/components/layout.js.map +1 -1
  61. package/components/link.d.ts +3 -1
  62. package/components/link.d.ts.map +1 -1
  63. package/components/link.js +3 -1
  64. package/components/link.js.map +1 -1
  65. package/components/progress.d.ts +2 -11
  66. package/components/progress.d.ts.map +1 -1
  67. package/components/progress.js +6 -15
  68. package/components/progress.js.map +1 -1
  69. package/components/range.d.ts +43 -17
  70. package/components/range.d.ts.map +1 -1
  71. package/components/range.js +132 -58
  72. package/components/range.js.map +1 -1
  73. package/components/rotate.d.ts +1 -1
  74. package/components/rotate.d.ts.map +1 -1
  75. package/components/rotate.js +1 -1
  76. package/components/rotate.js.map +1 -1
  77. package/components/router.d.ts +6 -8
  78. package/components/router.d.ts.map +1 -1
  79. package/components/router.js +10 -10
  80. package/components/router.js.map +1 -1
  81. package/components/select.d.ts +4 -8
  82. package/components/select.d.ts.map +1 -1
  83. package/components/select.js +42 -41
  84. package/components/select.js.map +1 -1
  85. package/components/skeleton.d.ts.map +1 -1
  86. package/components/skeleton.js +3 -4
  87. package/components/skeleton.js.map +1 -1
  88. package/components/split.d.ts +18 -1
  89. package/components/split.d.ts.map +1 -1
  90. package/components/split.js +52 -19
  91. package/components/split.js.map +1 -1
  92. package/components/switch.d.ts +4 -4
  93. package/components/switch.d.ts.map +1 -1
  94. package/components/switch.js +6 -6
  95. package/components/switch.js.map +1 -1
  96. package/components/text.js +3 -3
  97. package/components/text.js.map +1 -1
  98. package/components/time.d.ts +4 -20
  99. package/components/time.d.ts.map +1 -1
  100. package/components/time.js +5 -66
  101. package/components/time.js.map +1 -1
  102. package/components/tooltip.d.ts +11 -1
  103. package/components/tooltip.d.ts.map +1 -1
  104. package/components/tooltip.js +23 -5
  105. package/components/tooltip.js.map +1 -1
  106. package/components/typewriter.d.ts +2 -2
  107. package/components/typewriter.d.ts.map +1 -1
  108. package/components/typewriter.js +2 -2
  109. package/components/typewriter.js.map +1 -1
  110. package/core/global-style.d.ts.map +1 -1
  111. package/core/global-style.js +8 -1
  112. package/core/global-style.js.map +1 -1
  113. package/core/super-anchor.js +1 -1
  114. package/core/super-anchor.js.map +1 -1
  115. package/core/super-input.d.ts +2 -3
  116. package/core/super-input.d.ts.map +1 -1
  117. package/core/super-input.js +3 -6
  118. package/core/super-input.js.map +1 -1
  119. package/core/super-openable.js.map +1 -1
  120. package/custom-elements.json +1 -1
  121. package/dev/components/alert.d.ts +5 -3
  122. package/dev/components/alert.d.ts.map +1 -1
  123. package/dev/components/alert.js +35 -24
  124. package/dev/components/alert.js.map +1 -1
  125. package/dev/components/avatar.d.ts +5 -1
  126. package/dev/components/avatar.d.ts.map +1 -1
  127. package/dev/components/avatar.js +7 -6
  128. package/dev/components/avatar.js.map +1 -1
  129. package/dev/components/breath.d.ts +2 -1
  130. package/dev/components/breath.d.ts.map +1 -1
  131. package/dev/components/breath.js +3 -1
  132. package/dev/components/breath.js.map +1 -1
  133. package/dev/components/button.d.ts +16 -9
  134. package/dev/components/button.d.ts.map +1 -1
  135. package/dev/components/button.js +29 -25
  136. package/dev/components/button.js.map +1 -1
  137. package/dev/components/card.d.ts +1 -2
  138. package/dev/components/card.d.ts.map +1 -1
  139. package/dev/components/card.js +21 -29
  140. package/dev/components/card.js.map +1 -1
  141. package/dev/components/carousel.d.ts +6 -5
  142. package/dev/components/carousel.d.ts.map +1 -1
  143. package/dev/components/carousel.js +9 -7
  144. package/dev/components/carousel.js.map +1 -1
  145. package/dev/components/details.d.ts +5 -2
  146. package/dev/components/details.d.ts.map +1 -1
  147. package/dev/components/details.js +4 -1
  148. package/dev/components/details.js.map +1 -1
  149. package/dev/components/dialog.d.ts +8 -4
  150. package/dev/components/dialog.d.ts.map +1 -1
  151. package/dev/components/dialog.js +23 -18
  152. package/dev/components/dialog.js.map +1 -1
  153. package/dev/components/divider.d.ts +1 -1
  154. package/dev/components/divider.js +1 -1
  155. package/dev/components/dragbox.d.ts +7 -7
  156. package/dev/components/dragbox.d.ts.map +1 -1
  157. package/dev/components/dragbox.js.map +1 -1
  158. package/dev/components/flex.d.ts +2 -1
  159. package/dev/components/flex.d.ts.map +1 -1
  160. package/dev/components/flex.js +8 -0
  161. package/dev/components/flex.js.map +1 -1
  162. package/dev/components/form.d.ts +0 -2
  163. package/dev/components/form.d.ts.map +1 -1
  164. package/dev/components/form.js +0 -2
  165. package/dev/components/form.js.map +1 -1
  166. package/dev/components/grid.d.ts +8 -3
  167. package/dev/components/grid.d.ts.map +1 -1
  168. package/dev/components/grid.js +1 -0
  169. package/dev/components/grid.js.map +1 -1
  170. package/dev/components/input.d.ts +2 -3
  171. package/dev/components/input.d.ts.map +1 -1
  172. package/dev/components/input.js +1 -20
  173. package/dev/components/input.js.map +1 -1
  174. package/dev/components/layout.d.ts +3 -6
  175. package/dev/components/layout.d.ts.map +1 -1
  176. package/dev/components/layout.js +23 -10
  177. package/dev/components/layout.js.map +1 -1
  178. package/dev/components/link.d.ts +3 -1
  179. package/dev/components/link.d.ts.map +1 -1
  180. package/dev/components/link.js +3 -1
  181. package/dev/components/link.js.map +1 -1
  182. package/dev/components/progress.d.ts +2 -11
  183. package/dev/components/progress.d.ts.map +1 -1
  184. package/dev/components/progress.js +7 -16
  185. package/dev/components/progress.js.map +1 -1
  186. package/dev/components/range.d.ts +43 -17
  187. package/dev/components/range.d.ts.map +1 -1
  188. package/dev/components/range.js +157 -99
  189. package/dev/components/range.js.map +1 -1
  190. package/dev/components/rotate.d.ts +1 -1
  191. package/dev/components/rotate.d.ts.map +1 -1
  192. package/dev/components/rotate.js +1 -1
  193. package/dev/components/rotate.js.map +1 -1
  194. package/dev/components/router.d.ts +6 -8
  195. package/dev/components/router.d.ts.map +1 -1
  196. package/dev/components/router.js +10 -10
  197. package/dev/components/router.js.map +1 -1
  198. package/dev/components/select.d.ts +4 -8
  199. package/dev/components/select.d.ts.map +1 -1
  200. package/dev/components/select.js +46 -44
  201. package/dev/components/select.js.map +1 -1
  202. package/dev/components/skeleton.d.ts.map +1 -1
  203. package/dev/components/skeleton.js +2 -3
  204. package/dev/components/skeleton.js.map +1 -1
  205. package/dev/components/split.d.ts +18 -1
  206. package/dev/components/split.d.ts.map +1 -1
  207. package/dev/components/split.js +55 -22
  208. package/dev/components/split.js.map +1 -1
  209. package/dev/components/switch.d.ts +4 -4
  210. package/dev/components/switch.d.ts.map +1 -1
  211. package/dev/components/switch.js +12 -13
  212. package/dev/components/switch.js.map +1 -1
  213. package/dev/components/text.js +3 -3
  214. package/dev/components/time.d.ts +4 -20
  215. package/dev/components/time.d.ts.map +1 -1
  216. package/dev/components/time.js +5 -66
  217. package/dev/components/time.js.map +1 -1
  218. package/dev/components/tooltip.d.ts +11 -1
  219. package/dev/components/tooltip.d.ts.map +1 -1
  220. package/dev/components/tooltip.js +39 -16
  221. package/dev/components/tooltip.js.map +1 -1
  222. package/dev/components/typewriter.d.ts +2 -2
  223. package/dev/components/typewriter.d.ts.map +1 -1
  224. package/dev/components/typewriter.js +0 -1
  225. package/dev/components/typewriter.js.map +1 -1
  226. package/dev/core/global-style.d.ts.map +1 -1
  227. package/dev/core/global-style.js +8 -9
  228. package/dev/core/global-style.js.map +1 -1
  229. package/dev/core/super-input.d.ts +2 -3
  230. package/dev/core/super-input.d.ts.map +1 -1
  231. package/dev/core/super-input.js +21 -20
  232. package/dev/core/super-input.js.map +1 -1
  233. package/dev/range.d.ts +1 -1
  234. package/dev/range.d.ts.map +1 -1
  235. package/index.js +13 -13
  236. package/package.json +9 -7
  237. package/range.d.ts +1 -1
  238. package/range.d.ts.map +1 -1
  239. package/src/alert.ts +11 -0
  240. package/src/avatar.ts +11 -0
  241. package/src/breath.ts +13 -0
  242. package/src/button.ts +11 -0
  243. package/src/card.ts +11 -0
  244. package/src/carousel.ts +11 -0
  245. package/src/components/alert.ts +282 -0
  246. package/src/components/avatar.ts +95 -0
  247. package/src/components/breath.ts +153 -0
  248. package/src/components/button.ts +286 -0
  249. package/src/components/card.ts +80 -0
  250. package/src/components/carousel.ts +169 -0
  251. package/src/components/details.ts +116 -0
  252. package/src/components/dialog.ts +165 -0
  253. package/src/components/divider.ts +44 -0
  254. package/src/components/dragbox.ts +127 -0
  255. package/src/components/flex.ts +70 -0
  256. package/src/components/form.ts +82 -0
  257. package/src/components/grid.ts +75 -0
  258. package/src/components/input.ts +72 -0
  259. package/src/components/layout.ts +82 -0
  260. package/src/components/link.ts +38 -0
  261. package/src/components/progress.ts +95 -0
  262. package/src/components/range.ts +404 -0
  263. package/src/components/rotate.ts +92 -0
  264. package/src/components/router.ts +273 -0
  265. package/src/components/select.ts +268 -0
  266. package/src/components/skeleton.ts +118 -0
  267. package/src/components/split.ts +221 -0
  268. package/src/components/switch.ts +180 -0
  269. package/src/components/text.ts +95 -0
  270. package/src/components/time.ts +81 -0
  271. package/src/components/tooltip.ts +138 -0
  272. package/src/components/typewriter.ts +154 -0
  273. package/src/core/global-style.ts +86 -0
  274. package/src/core/super-anchor.ts +52 -0
  275. package/src/core/super-input.ts +230 -0
  276. package/src/core/super-openable.ts +51 -0
  277. package/src/details.ts +11 -0
  278. package/src/dialog.ts +11 -0
  279. package/src/divider.ts +11 -0
  280. package/src/dragbox.ts +11 -0
  281. package/src/flex.ts +11 -0
  282. package/src/form.ts +11 -0
  283. package/src/grid.ts +11 -0
  284. package/src/index.ts +28 -0
  285. package/src/input.ts +13 -0
  286. package/src/layout.ts +12 -0
  287. package/src/link.ts +13 -0
  288. package/src/progress.ts +12 -0
  289. package/src/range.ts +13 -0
  290. package/src/rotate.ts +13 -0
  291. package/src/router.ts +12 -0
  292. package/src/select.ts +13 -0
  293. package/src/skeleton.ts +13 -0
  294. package/src/split.ts +13 -0
  295. package/src/switch.ts +13 -0
  296. package/src/text.ts +13 -0
  297. package/src/time.ts +13 -0
  298. package/src/tooltip.ts +13 -0
  299. package/src/typewriter.ts +11 -0
  300. package/vscode.html-custom-data.json +1 -1
  301. package/web-types.json +1 -1
package/index.js CHANGED
@@ -26,6 +26,19 @@ import './text.js';
26
26
  import './time.js';
27
27
  import './tooltip.js';
28
28
  import './typewriter.js';
29
+ export { default as Alert } from './components/alert.js';
30
+ export { default as Avatar } from './components/avatar.js';
31
+ export { default as Breath } from './components/breath.js';
32
+ export { default as Button } from './components/button.js';
33
+ export { default as Card } from './components/card.js';
34
+ export { default as Carousel } from './components/carousel.js';
35
+ export { default as Details } from './components/details.js';
36
+ export { default as Dialog } from './components/dialog.js';
37
+ export { default as Divider } from './components/divider.js';
38
+ export { default as Dragbox } from './components/dragbox.js';
39
+ export { default as Flex } from './components/flex.js';
40
+ export { default as Form } from './components/form.js';
41
+ export { default as Grid } from './components/grid.js';
29
42
  export { default as Input } from './components/input.js';
30
43
  export { default as Layout } from './components/layout.js';
31
44
  export { default as Link } from './components/link.js';
@@ -41,17 +54,4 @@ export { default as Text } from './components/text.js';
41
54
  export { default as Time } from './components/time.js';
42
55
  export { default as Tooltip } from './components/tooltip.js';
43
56
  export { default as Typewriter } from './components/typewriter.js';
44
- export { default as Alert } from './components/alert.js';
45
- export { default as Avatar } from './components/avatar.js';
46
- export { default as Breath } from './components/breath.js';
47
- export { default as Button } from './components/button.js';
48
- export { default as Card } from './components/card.js';
49
- export { default as Carousel } from './components/carousel.js';
50
- export { default as Details } from './components/details.js';
51
- export { default as Dialog } from './components/dialog.js';
52
- export { default as Divider } from './components/divider.js';
53
- export { default as Dragbox } from './components/dragbox.js';
54
- export { default as Flex } from './components/flex.js';
55
- export { default as Form } from './components/form.js';
56
- export { default as Grid } from './components/grid.js';
57
57
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "godown",
3
- "version": "3.0.0-canary.1",
3
+ "version": "3.0.0-canary.10",
4
4
  "description": "Simple, stylized, semantic web components",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -18,17 +18,18 @@
18
18
  "repository": {
19
19
  "type": "git",
20
20
  "url": "https://github.com/startracex/godown.git",
21
- "directory": "packages/components"
21
+ "directory": "packages/godown"
22
22
  },
23
23
  "keywords": [],
24
24
  "author": "startracex",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
+ "fmtime": "^0.0.3",
27
28
  "lit": "^3.0.0",
28
29
  "tslib": "^2.7.0",
29
- "@godown/element": "^0.0.0",
30
- "@godown/colors": "^0.0.0",
31
- "@godown/f7-icon": "^0.0.0"
30
+ "@godown/colors": "^0.0.1",
31
+ "@godown/element": "^0.0.3",
32
+ "@godown/f7-icon": "^0.0.3"
32
33
  },
33
34
  "publishConfig": {
34
35
  "access": "public"
@@ -37,7 +38,8 @@
37
38
  "**/*.{js,d.ts}+(|.map)",
38
39
  "custom-elements.json",
39
40
  "web-types.json",
40
- "vscode.{css,html}-custom-data.json"
41
+ "vscode.{css,html}-custom-data.json",
42
+ "src"
41
43
  ],
42
44
  "custom-elements": "./custom-elements.json",
43
45
  "customElements": "./custom-elements.json",
@@ -49,7 +51,7 @@
49
51
  "build": "tsc && tsx build.ts",
50
52
  "build:ts": "tsc",
51
53
  "fmt": "dprint fmt",
52
- "lint": "eslint --fix",
54
+ "lint": "eslint . --fix",
53
55
  "manifest": "tsx manifest.ts"
54
56
  }
55
57
  }
package/range.d.ts CHANGED
@@ -3,7 +3,7 @@ export default Range;
3
3
  export * from "./components/range.js";
4
4
  declare global {
5
5
  interface HTMLElementTagNameMap {
6
- "godown-range-input": Range;
6
+ "godown-range": Range;
7
7
  }
8
8
  }
9
9
  //# sourceMappingURL=range.d.ts.map
package/range.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["src/range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,uBAAuB,CAAC;AAI1C,eAAe,KAAK,CAAC;AAErB,cAAc,uBAAuB,CAAC;AAEtC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,KAAK,CAAC;KAC7B;CACF"}
1
+ {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["src/range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,uBAAuB,CAAC;AAI1C,eAAe,KAAK,CAAC;AAErB,cAAc,uBAAuB,CAAC;AAEtC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,KAAK,CAAC;KACvB;CACF"}
package/src/alert.ts ADDED
@@ -0,0 +1,11 @@
1
+ import Alert from "./components/alert.js";
2
+
3
+ Alert.define();
4
+
5
+ export default Alert;
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "godown-alert": Alert;
10
+ }
11
+ }
package/src/avatar.ts ADDED
@@ -0,0 +1,11 @@
1
+ import Avatar from "./components/avatar.js";
2
+
3
+ Avatar.define();
4
+
5
+ export default Avatar;
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "godown-avatar": Avatar;
10
+ }
11
+ }
package/src/breath.ts ADDED
@@ -0,0 +1,13 @@
1
+ import Breath from "./components/breath.js";
2
+
3
+ Breath.define();
4
+
5
+ export default Breath;
6
+
7
+ export * from "./components/breath.js";
8
+
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ "godown-breath": Breath;
12
+ }
13
+ }
package/src/button.ts ADDED
@@ -0,0 +1,11 @@
1
+ import Button from "./components/button.js";
2
+
3
+ Button.define();
4
+
5
+ export default Button;
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "godown-button": Button;
10
+ }
11
+ }
package/src/card.ts ADDED
@@ -0,0 +1,11 @@
1
+ import Card from "./components/card.js";
2
+
3
+ Card.define();
4
+
5
+ export default Card;
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "godown-card": Card;
10
+ }
11
+ }
@@ -0,0 +1,11 @@
1
+ import Carousel from "./components/carousel.js";
2
+
3
+ Carousel.define();
4
+
5
+ export default Carousel;
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "godown-carousel": Carousel;
10
+ }
11
+ }
@@ -0,0 +1,282 @@
1
+ import { godown } from "@godown/element/decorators/godown.js";
2
+ import { styles } from "@godown/element/decorators/styles.js";
3
+ import { htmlSlot } from "@godown/element/directives/html-slot.js";
4
+ import { htmlStyle } from "@godown/element/directives/html-style.js";
5
+ import { constructCSSObject, toVar } from "@godown/element/tools/css.js";
6
+ import iconCheckAltCircle from "@godown/f7-icon/icons/checkmark-alt-circle.js";
7
+ import iconExclamationCircle from "@godown/f7-icon/icons/exclamationmark-circle.js";
8
+ import iconInfoCircle from "@godown/f7-icon/icons/info-circle.js";
9
+ import iconLightbulb from "@godown/f7-icon/icons/lightbulb.js";
10
+ import iconQuestionCircle from "@godown/f7-icon/icons/question-circle.js";
11
+ import iconSlashCircle from "@godown/f7-icon/icons/slash-circle.js";
12
+ import iconXmark from "@godown/f7-icon/icons/xmark.js";
13
+ import iconXmarkCircle from "@godown/f7-icon/icons/xmark-circle.js";
14
+ import { css, html } from "lit";
15
+ import { property } from "lit/decorators.js";
16
+
17
+ import { cssGlobalVars, GlobalStyle, scopePrefix } from "../core/global-style.js";
18
+
19
+ const protoName = "alert";
20
+ const cssScope = scopePrefix(protoName);
21
+
22
+ const vars = ["color", "background"].map((v) => `${cssScope}--${v}`);
23
+
24
+ const genDark = (key: string) => {
25
+ return [cssGlobalVars._colors[key][5], cssGlobalVars._colors[key][9]];
26
+ };
27
+
28
+ const darkStyles = constructCSSObject(
29
+ vars,
30
+ {
31
+ green: genDark("green"),
32
+ blue: genDark("blue"),
33
+ orange: genDark("orange"),
34
+ red: genDark("red"),
35
+ yellow: genDark("yellow"),
36
+ purple: genDark("purple"),
37
+ teal: genDark("teal"),
38
+ pink: genDark("pink"),
39
+ gray: [cssGlobalVars._colors.lightgray[5], cssGlobalVars._colors.darkgray[5]],
40
+ white: [cssGlobalVars._colors.lightgray[2], cssGlobalVars._colors.darkgray[7]],
41
+ black: [cssGlobalVars._colors.darkgray[8], cssGlobalVars._colors.lightgray[5]],
42
+ },
43
+ () => `:host`,
44
+ (prop) => toVar(prop),
45
+ );
46
+
47
+ const genLight = (key: string) => {
48
+ return [cssGlobalVars._colors[key][6], cssGlobalVars._colors[key][0]];
49
+ };
50
+
51
+ const lightStyles = constructCSSObject(
52
+ vars,
53
+ {
54
+ green: genLight("green"),
55
+ blue: genLight("blue"),
56
+ orange: genLight("orange"),
57
+ red: genLight("red"),
58
+ yellow: genLight("yellow"),
59
+ purple: genLight("purple"),
60
+ teal: genLight("teal"),
61
+ pink: genLight("pink"),
62
+ gray: [cssGlobalVars._colors.darkgray[5], cssGlobalVars._colors.lightgray[7]],
63
+ white: [cssGlobalVars._colors.lightgray[0], cssGlobalVars._colors.darkgray[0]],
64
+ black: [cssGlobalVars._colors.darkgray[7], cssGlobalVars._colors.lightgray[3]],
65
+ },
66
+ () => `:host`,
67
+ (prop) => toVar(prop),
68
+ );
69
+
70
+ const calls = {
71
+ tip: {
72
+ color: "teal",
73
+ icon: iconLightbulb,
74
+ },
75
+ success: {
76
+ color: "green",
77
+ icon: iconCheckAltCircle,
78
+ },
79
+ info: {
80
+ color: "blue",
81
+ icon: iconInfoCircle,
82
+ },
83
+ warning: {
84
+ color: "orange",
85
+ icon: iconExclamationCircle,
86
+ },
87
+ danger: {
88
+ color: "red",
89
+ icon: iconXmarkCircle,
90
+ },
91
+ error: {
92
+ color: "red",
93
+ icon: iconXmarkCircle,
94
+ },
95
+ help: {
96
+ color: "purple",
97
+ icon: iconQuestionCircle,
98
+ },
99
+ deprecated: {
100
+ color: "gray",
101
+ icon: iconSlashCircle,
102
+ },
103
+ };
104
+
105
+ /**
106
+ * {@linkcode Alert} renders a alert.
107
+ *
108
+ * Color defaults to blue.
109
+ *
110
+ * @slot - Alert content.
111
+ * @slot title - Alert title.
112
+ * @slot icon - Alert icon.
113
+ * @category feedback
114
+ */
115
+ @godown(protoName)
116
+ @styles(
117
+ css`
118
+ :host {
119
+ border-radius: var(${cssScope}--border-radius);
120
+ ${cssScope}--border-radius: .25em;
121
+ ${cssScope}--border-width: .075em;
122
+ ${cssScope}--blockquote-width: .2em;
123
+ ${cssScope}--padding: .5em;
124
+ display: block;
125
+ width: 100%;
126
+ }
127
+
128
+ [part=root] {
129
+ --color: var(${cssScope}--color);
130
+ color: var(--color);
131
+ width: 100%;
132
+ transition: 0.25s;
133
+ display: flex;
134
+ justify-content: space-between;
135
+ padding: var(${cssScope}--padding);
136
+ border-radius: inherit;
137
+ border: var(${cssScope}--border-width) solid var(--color);
138
+ background: var(${cssScope}--background);
139
+ }
140
+
141
+ [variant=blockquote] {
142
+ border-radius: 0;
143
+ border-left: var(${cssScope}--blockquote-width) solid var(--color);
144
+ border-bottom: none;
145
+ border-right: none;
146
+ border-top: none;
147
+ background: transparent;
148
+ }
149
+
150
+ [part=content]{
151
+ color: var(--color);
152
+ }
153
+
154
+ [part=root] {
155
+ display: grid;
156
+ align-items: center;
157
+ grid-template-columns: auto 1fr auto;
158
+ grid-template-rows: auto 1fr;
159
+ }
160
+
161
+ [part=title] {
162
+ line-height: 2em;
163
+ }
164
+
165
+ [part=icon] {
166
+ display: inline-grid;
167
+ align-items: center;
168
+ height: 2em;
169
+ }
170
+
171
+ [part=icon] svg {
172
+ margin-right: .5em;
173
+ width: 1.25em;
174
+ height: 1.25em;
175
+ }
176
+
177
+ [part=content] {
178
+ grid-row: span 2 / span 2;
179
+ line-height: 1.5em;
180
+ }
181
+ `,
182
+ )
183
+ class Alert extends GlobalStyle {
184
+ /**
185
+ * If it is a legal value, the icon and preset color will be rendered.
186
+ */
187
+ @property()
188
+ call: "tip" | "success" | "info" | "warning" | "danger" | "error" | "help" | "deprecated";
189
+
190
+ /**
191
+ * The tone of the component.
192
+ * Overrides the color of the call.
193
+ */
194
+ @property()
195
+ color:
196
+ | "white"
197
+ | "black"
198
+ | "gray"
199
+ | "green"
200
+ | "teal"
201
+ | "blue"
202
+ | "red"
203
+ | "purple"
204
+ | "orange"
205
+ | "yellow"
206
+ | "pink"
207
+ | "none" = "blue";
208
+
209
+ /**
210
+ * Close delay, if 0, it will not be closed automatically.
211
+ */
212
+ @property({ type: Number })
213
+ autoclose = 0;
214
+
215
+ /**
216
+ * The title is bold and the icon height is the same as it.
217
+ */
218
+ @property()
219
+ title: string;
220
+
221
+ /**
222
+ * Content, if zero value, will be rendered as an unnamed slot.
223
+ */
224
+ @property()
225
+ content: string;
226
+
227
+ /**
228
+ * Set true to hide the close button.
229
+ *
230
+ * The behavior may change due to the {@linkcode variant} property.
231
+ */
232
+ @property({ type: Boolean })
233
+ hideClose = false;
234
+
235
+ /**
236
+ * Alert variant, if set to `blockquote`, the alert will be rendered as a blockquote.
237
+ *
238
+ * If variant is `"blockquote"`, hide the close button.
239
+ */
240
+ @property()
241
+ variant: "blockquote" | "dark" | "light" = "dark";
242
+
243
+ protected render() {
244
+ const color = calls[this.call]?.color || this.color;
245
+ const icon = this.call ? calls[this.call].icon() : htmlSlot("icon");
246
+ return [
247
+ html`<div part="root" variant="${this.variant}">
248
+ <div part="icon">${icon}</div>
249
+ <div part="content">
250
+ <strong part="title">${this.title || htmlSlot("title")}</strong>
251
+ ${this.content || htmlSlot()}
252
+ </div>
253
+ ${
254
+ !this.hideClose && this.variant !== "blockquote"
255
+ ? html`<div part="close" tabindex=0 @click="${this.close}">${iconXmark()}</div>`
256
+ : ""
257
+ }
258
+ </div>`,
259
+ htmlStyle(this.variant === "light" ? lightStyles[color] : darkStyles[color]),
260
+ ];
261
+ }
262
+
263
+ close() {
264
+ this.remove();
265
+ this.dispatchEvent(new CustomEvent("close", { bubbles: true, composed: true }));
266
+ }
267
+
268
+ protected firstUpdated() {
269
+ if (this.autoclose) {
270
+ setTimeout(() => this.close(), this.autoclose);
271
+ }
272
+ }
273
+
274
+ static alert(root: HTMLElement, option: Partial<Alert>): Alert {
275
+ const ai = new this();
276
+ Object.assign(ai, option);
277
+ root.appendChild(ai);
278
+ return ai;
279
+ }
280
+ }
281
+
282
+ export default Alert;
@@ -0,0 +1,95 @@
1
+ import { godown, styles } from "@godown/element/decorators/index.js";
2
+ import { htmlSlot } from "@godown/element/directives/index.js";
3
+ import { css, html } from "lit";
4
+ import { property } from "lit/decorators.js";
5
+
6
+ import { GlobalStyle, scopePrefix } from "../core/global-style.js";
7
+
8
+ const protoName = "avatar";
9
+ const cssScope = scopePrefix(protoName);
10
+
11
+ /**
12
+ * {@linkcode Avatar} renders a avatar.
13
+ *
14
+ * Renders as an image if it has a src property,
15
+ * otherwise falls back to name or nameless slot.
16
+ *
17
+ * @slot - Display content if no `src` or `name` provided.
18
+ * @category display
19
+ */
20
+ @godown(protoName)
21
+ @styles(
22
+ css`
23
+ :host {
24
+ ${cssScope}--size: 2em;
25
+ width: var(${cssScope}--size);
26
+ height: var(${cssScope}--size);
27
+ display: inline-block;
28
+ vertical-align: bottom;
29
+ }
30
+
31
+ :host([round]){
32
+ border-radius:50%;
33
+ }
34
+
35
+ [part=image] {
36
+ width: 100%;
37
+ height: 100%;
38
+ object-fit: cover;
39
+ }
40
+
41
+ [part=root] {
42
+ overflow: hidden;
43
+ position: relative;
44
+ border-radius: inherit;
45
+ width: 100%;
46
+ height: 100%;
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ }
51
+ `,
52
+ )
53
+ class Avatar extends GlobalStyle {
54
+ /**
55
+ * Image src.
56
+ */
57
+ @property()
58
+ src: string | undefined | null;
59
+
60
+ /**
61
+ * If the image is not available, display name (call {@linkcode Avatar.format}).
62
+ */
63
+ @property()
64
+ name = "";
65
+
66
+ /**
67
+ * Display rounded.
68
+ */
69
+ @property({ type: Boolean })
70
+ round = false;
71
+
72
+ protected render() {
73
+ return html`<div part="root">${this._renderAvatar()}</div>`;
74
+ }
75
+
76
+ private _renderAvatar() {
77
+ if (this.src) {
78
+ return html`<img part="image" src="${this.src}" @error=${this._handleError} alt="${this.name}">`;
79
+ }
80
+ if (this.name) {
81
+ return html`<span part="name">${this.format()}</span>`;
82
+ }
83
+ return htmlSlot();
84
+ }
85
+
86
+ format() {
87
+ return this.name;
88
+ }
89
+
90
+ _handleError() {
91
+ this.src = undefined;
92
+ }
93
+ }
94
+
95
+ export default Avatar;