godown 3.0.0-canary.10 → 3.0.0-canary.12

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 (390) hide show
  1. package/README.md +3 -3
  2. package/alert.d.ts +1 -0
  3. package/alert.d.ts.map +1 -1
  4. package/avatar.d.ts +1 -0
  5. package/avatar.d.ts.map +1 -1
  6. package/button.d.ts +1 -0
  7. package/button.d.ts.map +1 -1
  8. package/card.d.ts +1 -0
  9. package/card.d.ts.map +1 -1
  10. package/carousel.d.ts +1 -0
  11. package/carousel.d.ts.map +1 -1
  12. package/components/alert.d.ts +2 -1
  13. package/components/alert.d.ts.map +1 -1
  14. package/components/alert.js +6 -8
  15. package/components/alert.js.map +1 -1
  16. package/components/avatar.d.ts +2 -1
  17. package/components/avatar.d.ts.map +1 -1
  18. package/components/avatar.js +8 -5
  19. package/components/avatar.js.map +1 -1
  20. package/components/breath.d.ts +3 -2
  21. package/components/breath.d.ts.map +1 -1
  22. package/components/breath.js +6 -5
  23. package/components/breath.js.map +1 -1
  24. package/components/button.d.ts +5 -3
  25. package/components/button.d.ts.map +1 -1
  26. package/components/button.js +20 -3
  27. package/components/button.js.map +1 -1
  28. package/components/card.d.ts +2 -1
  29. package/components/card.d.ts.map +1 -1
  30. package/components/card.js +5 -4
  31. package/components/card.js.map +1 -1
  32. package/components/carousel.d.ts +3 -1
  33. package/components/carousel.d.ts.map +1 -1
  34. package/components/carousel.js +17 -11
  35. package/components/carousel.js.map +1 -1
  36. package/components/details.d.ts +2 -1
  37. package/components/details.d.ts.map +1 -1
  38. package/components/details.js +3 -2
  39. package/components/details.js.map +1 -1
  40. package/components/dialog.d.ts +2 -2
  41. package/components/dialog.d.ts.map +1 -1
  42. package/components/dialog.js +5 -3
  43. package/components/dialog.js.map +1 -1
  44. package/components/divider.d.ts +2 -3
  45. package/components/divider.d.ts.map +1 -1
  46. package/components/divider.js +5 -6
  47. package/components/divider.js.map +1 -1
  48. package/components/dragbox.d.ts +2 -1
  49. package/components/dragbox.d.ts.map +1 -1
  50. package/components/dragbox.js +4 -2
  51. package/components/dragbox.js.map +1 -1
  52. package/components/flex.d.ts +2 -1
  53. package/components/flex.d.ts.map +1 -1
  54. package/components/flex.js +5 -4
  55. package/components/flex.js.map +1 -1
  56. package/components/form.d.ts +2 -1
  57. package/components/form.d.ts.map +1 -1
  58. package/components/form.js.map +1 -1
  59. package/components/grid.d.ts +2 -1
  60. package/components/grid.d.ts.map +1 -1
  61. package/components/grid.js +5 -4
  62. package/components/grid.js.map +1 -1
  63. package/components/input.d.ts +2 -1
  64. package/components/input.d.ts.map +1 -1
  65. package/components/input.js +3 -2
  66. package/components/input.js.map +1 -1
  67. package/components/layout.d.ts +2 -1
  68. package/components/layout.d.ts.map +1 -1
  69. package/components/layout.js +6 -6
  70. package/components/layout.js.map +1 -1
  71. package/components/link.d.ts +4 -0
  72. package/components/link.d.ts.map +1 -1
  73. package/components/link.js +10 -1
  74. package/components/link.js.map +1 -1
  75. package/components/progress.d.ts +2 -1
  76. package/components/progress.d.ts.map +1 -1
  77. package/components/progress.js +5 -4
  78. package/components/progress.js.map +1 -1
  79. package/components/range.d.ts +3 -2
  80. package/components/range.d.ts.map +1 -1
  81. package/components/range.js +8 -7
  82. package/components/range.js.map +1 -1
  83. package/components/rotate.d.ts +2 -1
  84. package/components/rotate.d.ts.map +1 -1
  85. package/components/rotate.js +1 -1
  86. package/components/rotate.js.map +1 -1
  87. package/components/router.d.ts +9 -9
  88. package/components/router.d.ts.map +1 -1
  89. package/components/router.js.map +1 -1
  90. package/components/select.d.ts +2 -1
  91. package/components/select.d.ts.map +1 -1
  92. package/components/select.js +11 -5
  93. package/components/select.js.map +1 -1
  94. package/components/skeleton.d.ts +2 -1
  95. package/components/skeleton.d.ts.map +1 -1
  96. package/components/skeleton.js +5 -4
  97. package/components/skeleton.js.map +1 -1
  98. package/components/split.d.ts +2 -1
  99. package/components/split.d.ts.map +1 -1
  100. package/components/split.js +4 -3
  101. package/components/split.js.map +1 -1
  102. package/components/switch.d.ts +2 -1
  103. package/components/switch.d.ts.map +1 -1
  104. package/components/switch.js +4 -3
  105. package/components/switch.js.map +1 -1
  106. package/components/text.d.ts +2 -1
  107. package/components/text.d.ts.map +1 -1
  108. package/components/text.js +9 -6
  109. package/components/text.js.map +1 -1
  110. package/components/time.d.ts +2 -2
  111. package/components/time.d.ts.map +1 -1
  112. package/components/time.js +3 -2
  113. package/components/time.js.map +1 -1
  114. package/components/tooltip.d.ts +2 -1
  115. package/components/tooltip.d.ts.map +1 -1
  116. package/components/tooltip.js +4 -3
  117. package/components/tooltip.js.map +1 -1
  118. package/components/typewriter.d.ts +2 -2
  119. package/components/typewriter.d.ts.map +1 -1
  120. package/components/typewriter.js +4 -5
  121. package/components/typewriter.js.map +1 -1
  122. package/core/global-style.d.ts.map +1 -1
  123. package/core/global-style.js +1 -1
  124. package/core/global-style.js.map +1 -1
  125. package/core/super-anchor.d.ts +2 -1
  126. package/core/super-anchor.d.ts.map +1 -1
  127. package/core/super-anchor.js +4 -3
  128. package/core/super-anchor.js.map +1 -1
  129. package/core/super-input.d.ts +3 -2
  130. package/core/super-input.d.ts.map +1 -1
  131. package/core/super-input.js +10 -4
  132. package/core/super-input.js.map +1 -1
  133. package/core/super-openable.d.ts.map +1 -1
  134. package/core/super-openable.js +1 -1
  135. package/core/super-openable.js.map +1 -1
  136. package/custom-elements.json +1 -1
  137. package/details.d.ts +1 -0
  138. package/details.d.ts.map +1 -1
  139. package/dev/alert.d.ts +1 -0
  140. package/dev/alert.d.ts.map +1 -1
  141. package/dev/alert.js +1 -0
  142. package/dev/alert.js.map +1 -1
  143. package/dev/avatar.d.ts +1 -0
  144. package/dev/avatar.d.ts.map +1 -1
  145. package/dev/avatar.js +1 -0
  146. package/dev/avatar.js.map +1 -1
  147. package/dev/button.d.ts +1 -0
  148. package/dev/button.d.ts.map +1 -1
  149. package/dev/button.js +1 -0
  150. package/dev/button.js.map +1 -1
  151. package/dev/card.d.ts +1 -0
  152. package/dev/card.d.ts.map +1 -1
  153. package/dev/card.js +1 -0
  154. package/dev/card.js.map +1 -1
  155. package/dev/carousel.d.ts +1 -0
  156. package/dev/carousel.d.ts.map +1 -1
  157. package/dev/carousel.js +1 -0
  158. package/dev/carousel.js.map +1 -1
  159. package/dev/components/alert.d.ts +2 -1
  160. package/dev/components/alert.d.ts.map +1 -1
  161. package/dev/components/alert.js +12 -10
  162. package/dev/components/alert.js.map +1 -1
  163. package/dev/components/avatar.d.ts +2 -1
  164. package/dev/components/avatar.d.ts.map +1 -1
  165. package/dev/components/avatar.js +21 -7
  166. package/dev/components/avatar.js.map +1 -1
  167. package/dev/components/breath.d.ts +3 -2
  168. package/dev/components/breath.d.ts.map +1 -1
  169. package/dev/components/breath.js +17 -5
  170. package/dev/components/breath.js.map +1 -1
  171. package/dev/components/button.d.ts +5 -3
  172. package/dev/components/button.d.ts.map +1 -1
  173. package/dev/components/button.js +23 -2
  174. package/dev/components/button.js.map +1 -1
  175. package/dev/components/card.d.ts +2 -1
  176. package/dev/components/card.d.ts.map +1 -1
  177. package/dev/components/card.js +8 -5
  178. package/dev/components/card.js.map +1 -1
  179. package/dev/components/carousel.d.ts +3 -1
  180. package/dev/components/carousel.d.ts.map +1 -1
  181. package/dev/components/carousel.js +27 -13
  182. package/dev/components/carousel.js.map +1 -1
  183. package/dev/components/details.d.ts +2 -1
  184. package/dev/components/details.d.ts.map +1 -1
  185. package/dev/components/details.js +8 -3
  186. package/dev/components/details.js.map +1 -1
  187. package/dev/components/dialog.d.ts +2 -2
  188. package/dev/components/dialog.d.ts.map +1 -1
  189. package/dev/components/dialog.js +12 -10
  190. package/dev/components/dialog.js.map +1 -1
  191. package/dev/components/divider.d.ts +2 -3
  192. package/dev/components/divider.d.ts.map +1 -1
  193. package/dev/components/divider.js +19 -7
  194. package/dev/components/divider.js.map +1 -1
  195. package/dev/components/dragbox.d.ts +2 -1
  196. package/dev/components/dragbox.d.ts.map +1 -1
  197. package/dev/components/dragbox.js +9 -1
  198. package/dev/components/dragbox.js.map +1 -1
  199. package/dev/components/flex.d.ts +2 -1
  200. package/dev/components/flex.d.ts.map +1 -1
  201. package/dev/components/flex.js +16 -4
  202. package/dev/components/flex.js.map +1 -1
  203. package/dev/components/form.d.ts +2 -1
  204. package/dev/components/form.d.ts.map +1 -1
  205. package/dev/components/form.js.map +1 -1
  206. package/dev/components/grid.d.ts +2 -1
  207. package/dev/components/grid.d.ts.map +1 -1
  208. package/dev/components/grid.js +16 -4
  209. package/dev/components/grid.js.map +1 -1
  210. package/dev/components/input.d.ts +2 -1
  211. package/dev/components/input.d.ts.map +1 -1
  212. package/dev/components/input.js +2 -1
  213. package/dev/components/input.js.map +1 -1
  214. package/dev/components/layout.d.ts +2 -1
  215. package/dev/components/layout.d.ts.map +1 -1
  216. package/dev/components/layout.js +13 -6
  217. package/dev/components/layout.js.map +1 -1
  218. package/dev/components/link.d.ts +4 -0
  219. package/dev/components/link.d.ts.map +1 -1
  220. package/dev/components/link.js +10 -1
  221. package/dev/components/link.js.map +1 -1
  222. package/dev/components/progress.d.ts +2 -1
  223. package/dev/components/progress.d.ts.map +1 -1
  224. package/dev/components/progress.js +7 -2
  225. package/dev/components/progress.js.map +1 -1
  226. package/dev/components/range.d.ts +3 -2
  227. package/dev/components/range.d.ts.map +1 -1
  228. package/dev/components/range.js +27 -22
  229. package/dev/components/range.js.map +1 -1
  230. package/dev/components/rotate.d.ts +2 -1
  231. package/dev/components/rotate.d.ts.map +1 -1
  232. package/dev/components/rotate.js +1 -1
  233. package/dev/components/rotate.js.map +1 -1
  234. package/dev/components/router.d.ts +9 -9
  235. package/dev/components/router.d.ts.map +1 -1
  236. package/dev/components/router.js.map +1 -1
  237. package/dev/components/select.d.ts +2 -1
  238. package/dev/components/select.d.ts.map +1 -1
  239. package/dev/components/select.js +18 -7
  240. package/dev/components/select.js.map +1 -1
  241. package/dev/components/skeleton.d.ts +2 -1
  242. package/dev/components/skeleton.d.ts.map +1 -1
  243. package/dev/components/skeleton.js +4 -3
  244. package/dev/components/skeleton.js.map +1 -1
  245. package/dev/components/split.d.ts +2 -1
  246. package/dev/components/split.d.ts.map +1 -1
  247. package/dev/components/split.js +15 -11
  248. package/dev/components/split.js.map +1 -1
  249. package/dev/components/switch.d.ts +2 -1
  250. package/dev/components/switch.d.ts.map +1 -1
  251. package/dev/components/switch.js +15 -14
  252. package/dev/components/switch.js.map +1 -1
  253. package/dev/components/text.d.ts +2 -1
  254. package/dev/components/text.d.ts.map +1 -1
  255. package/dev/components/text.js +8 -4
  256. package/dev/components/text.js.map +1 -1
  257. package/dev/components/time.d.ts +2 -2
  258. package/dev/components/time.d.ts.map +1 -1
  259. package/dev/components/time.js +5 -2
  260. package/dev/components/time.js.map +1 -1
  261. package/dev/components/tooltip.d.ts +2 -1
  262. package/dev/components/tooltip.d.ts.map +1 -1
  263. package/dev/components/tooltip.js +24 -12
  264. package/dev/components/tooltip.js.map +1 -1
  265. package/dev/components/typewriter.d.ts +2 -2
  266. package/dev/components/typewriter.d.ts.map +1 -1
  267. package/dev/components/typewriter.js +11 -4
  268. package/dev/components/typewriter.js.map +1 -1
  269. package/dev/core/global-style.d.ts.map +1 -1
  270. package/dev/core/global-style.js +10 -1
  271. package/dev/core/global-style.js.map +1 -1
  272. package/dev/core/super-anchor.d.ts +2 -1
  273. package/dev/core/super-anchor.d.ts.map +1 -1
  274. package/dev/core/super-anchor.js +8 -5
  275. package/dev/core/super-anchor.js.map +1 -1
  276. package/dev/core/super-input.d.ts +3 -2
  277. package/dev/core/super-input.d.ts.map +1 -1
  278. package/dev/core/super-input.js +13 -5
  279. package/dev/core/super-input.js.map +1 -1
  280. package/dev/core/super-openable.d.ts.map +1 -1
  281. package/dev/core/super-openable.js +1 -1
  282. package/dev/core/super-openable.js.map +1 -1
  283. package/dev/details.d.ts +1 -0
  284. package/dev/details.d.ts.map +1 -1
  285. package/dev/details.js +1 -0
  286. package/dev/details.js.map +1 -1
  287. package/dev/dialog.d.ts +1 -0
  288. package/dev/dialog.d.ts.map +1 -1
  289. package/dev/dialog.js +1 -0
  290. package/dev/dialog.js.map +1 -1
  291. package/dev/divider.d.ts +1 -0
  292. package/dev/divider.d.ts.map +1 -1
  293. package/dev/divider.js +1 -0
  294. package/dev/divider.js.map +1 -1
  295. package/dev/dragbox.d.ts +1 -0
  296. package/dev/dragbox.d.ts.map +1 -1
  297. package/dev/dragbox.js +1 -0
  298. package/dev/dragbox.js.map +1 -1
  299. package/dev/flex.d.ts +1 -0
  300. package/dev/flex.d.ts.map +1 -1
  301. package/dev/flex.js +1 -0
  302. package/dev/flex.js.map +1 -1
  303. package/dev/form.d.ts +1 -0
  304. package/dev/form.d.ts.map +1 -1
  305. package/dev/form.js +1 -0
  306. package/dev/form.js.map +1 -1
  307. package/dev/grid.d.ts +1 -0
  308. package/dev/grid.d.ts.map +1 -1
  309. package/dev/grid.js +1 -0
  310. package/dev/grid.js.map +1 -1
  311. package/dev/layout.d.ts.map +1 -1
  312. package/dev/progress.d.ts.map +1 -1
  313. package/dev/router.d.ts.map +1 -1
  314. package/dev/split.d.ts +1 -1
  315. package/dev/split.d.ts.map +1 -1
  316. package/dev/typewriter.d.ts +1 -0
  317. package/dev/typewriter.d.ts.map +1 -1
  318. package/dev/typewriter.js +1 -0
  319. package/dev/typewriter.js.map +1 -1
  320. package/dialog.d.ts +1 -0
  321. package/dialog.d.ts.map +1 -1
  322. package/divider.d.ts +1 -0
  323. package/divider.d.ts.map +1 -1
  324. package/dragbox.d.ts +1 -0
  325. package/dragbox.d.ts.map +1 -1
  326. package/flex.d.ts +1 -0
  327. package/flex.d.ts.map +1 -1
  328. package/form.d.ts +1 -0
  329. package/form.d.ts.map +1 -1
  330. package/grid.d.ts +1 -0
  331. package/grid.d.ts.map +1 -1
  332. package/layout.d.ts.map +1 -1
  333. package/package.json +9 -5
  334. package/progress.d.ts.map +1 -1
  335. package/router.d.ts.map +1 -1
  336. package/split.d.ts +1 -1
  337. package/split.d.ts.map +1 -1
  338. package/src/alert.ts +2 -0
  339. package/src/avatar.ts +2 -0
  340. package/src/button.ts +2 -0
  341. package/src/card.ts +2 -0
  342. package/src/carousel.ts +2 -0
  343. package/src/components/alert.ts +18 -16
  344. package/src/components/avatar.ts +25 -11
  345. package/src/components/breath.ts +22 -10
  346. package/src/components/button.ts +21 -15
  347. package/src/components/card.ts +9 -6
  348. package/src/components/carousel.ts +36 -21
  349. package/src/components/details.ts +10 -5
  350. package/src/components/dialog.ts +19 -18
  351. package/src/components/divider.ts +19 -7
  352. package/src/components/dragbox.ts +16 -9
  353. package/src/components/flex.ts +17 -5
  354. package/src/components/form.ts +4 -4
  355. package/src/components/grid.ts +17 -5
  356. package/src/components/input.ts +5 -4
  357. package/src/components/layout.ts +15 -8
  358. package/src/components/link.ts +10 -2
  359. package/src/components/progress.ts +9 -4
  360. package/src/components/range.ts +44 -45
  361. package/src/components/rotate.ts +9 -6
  362. package/src/components/router.ts +27 -19
  363. package/src/components/select.ts +31 -20
  364. package/src/components/skeleton.ts +6 -5
  365. package/src/components/split.ts +23 -19
  366. package/src/components/switch.ts +20 -19
  367. package/src/components/text.ts +7 -9
  368. package/src/components/time.ts +12 -9
  369. package/src/components/tooltip.ts +26 -14
  370. package/src/components/typewriter.ts +19 -14
  371. package/src/core/global-style.ts +23 -4
  372. package/src/core/super-anchor.ts +11 -8
  373. package/src/core/super-input.ts +23 -21
  374. package/src/core/super-openable.ts +5 -5
  375. package/src/details.ts +2 -0
  376. package/src/dialog.ts +2 -0
  377. package/src/divider.ts +2 -0
  378. package/src/dragbox.ts +2 -0
  379. package/src/flex.ts +2 -0
  380. package/src/form.ts +2 -0
  381. package/src/grid.ts +2 -0
  382. package/src/layout.ts +1 -0
  383. package/src/progress.ts +1 -0
  384. package/src/router.ts +1 -0
  385. package/src/split.ts +1 -1
  386. package/src/typewriter.ts +2 -0
  387. package/typewriter.d.ts +1 -0
  388. package/typewriter.d.ts.map +1 -1
  389. package/vscode.html-custom-data.json +1 -1
  390. package/web-types.json +1 -1
@@ -1,7 +1,8 @@
1
1
  import { godown } from "@godown/element/decorators/godown.js";
2
2
  import { styles } from "@godown/element/decorators/styles.js";
3
+ import { attr } from "@godown/element/directives/attr.js";
3
4
  import { isNil } from "@godown/element/tools/lib.js";
4
- import { css, html } from "lit";
5
+ import { css, html, type TemplateResult } from "lit";
5
6
  import { property } from "lit/decorators.js";
6
7
 
7
8
  import { cssGlobalVars, GlobalStyle } from "../core/global-style.js";
@@ -18,12 +19,16 @@ const protoName = "progress";
18
19
  :host {
19
20
  width: 100%;
20
21
  height: 0.5em;
21
- display: inline-block;
22
22
  border-radius: 0.25em;
23
23
  background: var(${cssGlobalVars.passive});
24
24
  color: var(${cssGlobalVars.active});
25
25
  }
26
26
 
27
+ :host,
28
+ [part=root] {
29
+ display: block;
30
+ }
31
+
27
32
  [part=root] {
28
33
  height: inherit;
29
34
  z-index: 1;
@@ -66,14 +71,14 @@ class Progress extends GlobalStyle {
66
71
  @property({ type: Number })
67
72
  value: number;
68
73
 
69
- protected render() {
74
+ protected render(): TemplateResult<1> {
70
75
  let width = 20;
71
76
  let className: string;
72
77
  if (!isNil(this.value)) {
73
78
  width = this.parsePercent(this.value);
74
79
  className = "static";
75
80
  }
76
- return html`<div part="root" class="${className}">
81
+ return html`<div part="root" ${attr(this.observedRecord)} class="${className}">
77
82
  <i part="value" style="width:${width}%;"></i>
78
83
  </div>`;
79
84
  }
@@ -1,10 +1,11 @@
1
1
  import { godown } from "@godown/element/decorators/godown.js";
2
2
  import { part } from "@godown/element/decorators/part.js";
3
3
  import { styles } from "@godown/element/decorators/styles.js";
4
+ import { attr } from "@godown/element/directives/attr.js";
4
5
  import { classList } from "@godown/element/directives/class-list.js";
5
6
  import { joinProperties } from "@godown/element/tools/css.js";
6
7
  import { isNil } from "@godown/element/tools/lib.js";
7
- import { css, html } from "lit";
8
+ import { css, html, type TemplateResult } from "lit";
8
9
  import { property, queryAll, state } from "lit/decorators.js";
9
10
 
10
11
  import { cssGlobalVars, scopePrefix } from "../core/global-style.js";
@@ -26,33 +27,37 @@ const cssScope = scopePrefix(protoName);
26
27
  @styles(
27
28
  css`
28
29
  :host {
29
- ${cssScope}-handle-active: var(${cssGlobalVars._colors.blue[7]});
30
- ${cssScope}-track-width: .5em;
30
+ ${cssScope}--handle-active: var(${cssGlobalVars.active});
31
+ ${cssScope}--track-width: .5em;
32
+ ${cssScope}--length: var(${cssGlobalVars.input}-width);
31
33
  background: var(${cssGlobalVars.input}-background);
32
- width: var(${cssGlobalVars.input}-width);
33
- display: inline-block;
34
- margin: 0.25em 0;
34
+ width: var(${cssScope}--length);
35
+ display: block;
36
+ }
37
+
38
+ :host([contents]) [part=root] {
39
+ width: inherit;
35
40
  }
36
41
 
37
42
  :host([vertical]) {
38
- height: var(${cssGlobalVars.input}-width);
43
+ height: var(${cssScope}--length);
39
44
  width: fit-content;
40
45
  }
41
46
 
42
47
  :host(:not([disabled])) .last-focus {
43
48
  z-index: 1;
44
- ${cssScope}-handle-scale:1.05;
45
- background: var(${cssScope}-handle-active);
49
+ ${cssScope}--handle-scale:1.05;
50
+ background: var(${cssScope}--handle-active);
46
51
  }
47
52
 
48
53
  [part=root] {
49
- min-height:inherit;
54
+ min-height: inherit;
50
55
  position: relative;
51
56
  border-radius: inherit;
52
57
  width: 100%;
53
58
  --from: 0%;
54
59
  --to: 50%;
55
- height: var(${cssScope}-track-width);
60
+ height: var(${cssScope}--track-width);
56
61
  }
57
62
 
58
63
  [part=track] {
@@ -79,22 +84,22 @@ const cssScope = scopePrefix(protoName);
79
84
  border: 0.1em solid;
80
85
  border-radius: 50%;
81
86
  transform-origin: 0% 25%;
82
- transform: scale(var(${cssScope}-handle-scale, 1)) translate(-50%, -25%);
87
+ transform: scale(var(${cssScope}--handle-scale, 1)) translate(-50%, -25%);
83
88
  background: var(${cssGlobalVars.active});
84
89
  border-color: var(${cssGlobalVars.input}-control);
85
90
  }
86
91
  `,
87
92
  css`
88
- .vertical {
89
- height: 100%;
90
- width: var(${cssScope}-track-width);
93
+ [vertical] {
94
+ height: inherit;
95
+ width: var(${cssScope}--track-width);
91
96
  }
92
97
 
93
- .vertical i {
98
+ [vertical] i {
94
99
  transform: translate(-25%, -50%);
95
100
  }
96
101
 
97
- .vertical [part=track] {
102
+ [vertical] [part=track] {
98
103
  width: 100%;
99
104
  height: max(calc(var(--to) - var(--from)), calc(var(--from) - var(--to)));
100
105
  top: min(var(--from), var(--to));
@@ -107,7 +112,7 @@ const cssScope = scopePrefix(protoName);
107
112
  top: 0;
108
113
  }
109
114
 
110
- .vertical [part=handle] {
115
+ [vertical] [part=handle] {
111
116
  top: var(--handle);
112
117
  left: 0;
113
118
  }
@@ -136,7 +141,7 @@ class Range extends SuperInput {
136
141
  * Display vertically.
137
142
  */
138
143
  @property({ type: Boolean, reflect: true })
139
- vertical: boolean;
144
+ vertical = false;
140
145
 
141
146
  /**
142
147
  * Value, or each of values, will render a handle.
@@ -164,7 +169,7 @@ class Range extends SuperInput {
164
169
  /**
165
170
  * Returns true when the second number is greater than the first number.
166
171
  */
167
- get reverse() {
172
+ get reverse(): boolean {
168
173
  return this.range ? this.value[0] > this.value[1] : false;
169
174
  }
170
175
 
@@ -196,7 +201,7 @@ class Range extends SuperInput {
196
201
  return rangeValue;
197
202
  }
198
203
 
199
- protected render() {
204
+ protected render(): TemplateResult<1> {
200
205
  const rangeValue = this.padValue(2);
201
206
  const from = Math.min(...rangeValue);
202
207
  const to = Math.max(...rangeValue);
@@ -204,13 +209,7 @@ class Range extends SuperInput {
204
209
 
205
210
  return html`<div
206
211
  part="root"
207
- class="${
208
- classList({
209
- vertical: this.vertical,
210
- range: this.range,
211
- reverse: this.reverse,
212
- })
213
- }"
212
+ ${attr(this.observedRecord)}
214
213
  @mousedown="${this.disabled ? null : this._handleMousedownRoot}"
215
214
  style="${
216
215
  joinProperties({
@@ -234,7 +233,7 @@ class Range extends SuperInput {
234
233
  </div>`;
235
234
  }
236
235
 
237
- protected renderHandle(index: number) {
236
+ protected renderHandle(index: number): TemplateResult<1> {
238
237
  const { range } = this;
239
238
  const end = !range || index === (this.value as number[]).length - 1;
240
239
  return html`<i
@@ -253,7 +252,7 @@ class Range extends SuperInput {
253
252
 
254
253
  private _keydownEvent: EventListenerOrEventListenerObject;
255
254
 
256
- focusHandle(index: number) {
255
+ focusHandle(index: number): void {
257
256
  this.lastFocus = index;
258
257
  const handleItem = this._handles.item(index);
259
258
  handleItem?.focus();
@@ -262,7 +261,7 @@ class Range extends SuperInput {
262
261
  }
263
262
  }
264
263
 
265
- blurHandle() {
264
+ blurHandle(): void {
266
265
  this.lastFocus = undefined;
267
266
  this._keydownEvent = this.events.remove(document, "keydown", this._keydownEvent);
268
267
  }
@@ -271,7 +270,7 @@ class Range extends SuperInput {
271
270
  if (!this.range) {
272
271
  index = 0;
273
272
  }
274
- return (e: KeyboardEvent) => {
273
+ return (e: KeyboardEvent): void => {
275
274
  if (e.key === "ArrowLeft" || e.key === "ArrowDown") {
276
275
  e.preventDefault();
277
276
  this.createSetValue(index)(old => old - this.step);
@@ -283,20 +282,20 @@ class Range extends SuperInput {
283
282
  }
284
283
 
285
284
  createMouseDown(index: number) {
286
- return (e: MouseEvent) => {
285
+ return (e: MouseEvent): void => {
287
286
  this.focusHandle(index);
288
287
  this.createMousedownListener(this.createSetValue(index))(e);
289
288
  };
290
289
  }
291
290
 
292
- protected _handleMousedownEnd(e: MouseEvent) {
291
+ protected _handleMousedownEnd(e: MouseEvent): void {
293
292
  this.lastFocus = 0;
294
293
  this.createMousedownListener(this.setEnd)(e);
295
294
  this.focusHandle(0);
296
295
  }
297
296
 
298
297
  createSetValue(index: number) {
299
- return (numberOrModifier: number | ((value: number) => number)) => {
298
+ return (numberOrModifier: number | ((value: number) => number)): void => {
300
299
  const number = typeof numberOrModifier === "number"
301
300
  ? this.normalizeValue(numberOrModifier)
302
301
  : numberOrModifier(this.rangeValue[index]);
@@ -309,14 +308,14 @@ class Range extends SuperInput {
309
308
  };
310
309
  }
311
310
 
312
- setEnd(value: number) {
311
+ setEnd(value: number): void {
313
312
  this.createSetValue((this.value as any)?.length - 1 || 0)(value);
314
313
  }
315
314
 
316
315
  /**
317
316
  * Compute value from event.
318
317
  */
319
- protected _computeValue(e: MouseEvent) {
318
+ protected _computeValue(e: MouseEvent): number {
320
319
  const rect = this._root.getBoundingClientRect();
321
320
  const div = this.vertical ? (e.clientY - rect.top) / rect.height : (e.clientX - rect.left) / rect.width;
322
321
  const value = Math.round((div * (this.max - this.min)) / this.step) * this.step;
@@ -326,13 +325,13 @@ class Range extends SuperInput {
326
325
  /**
327
326
  * Ensure that the values do not exceed the range of max and min.
328
327
  */
329
- protected normalizeValue(value: number) {
328
+ protected normalizeValue(value: number): number {
330
329
  if (value > this.max) { value -= this.step; }
331
330
  else if (value < this.min) { value += this.step; }
332
331
  return value;
333
332
  }
334
333
 
335
- protected _handleMousedownRoot(e: MouseEvent) {
334
+ protected _handleMousedownRoot(e: MouseEvent): void {
336
335
  const value = this._computeValue(e);
337
336
  const index = this.range
338
337
  ? this.rangeValue.reduce((acc, item, index) => {
@@ -349,7 +348,7 @@ class Range extends SuperInput {
349
348
  }
350
349
 
351
350
  protected createMousedownListener(mouseMoveCallback: (arg0: number) => void) {
352
- return (e: MouseEvent) => {
351
+ return (e: MouseEvent): void => {
353
352
  e.preventDefault();
354
353
  e.stopPropagation();
355
354
  const move = this.createMousemoveListener(mouseMoveCallback);
@@ -363,7 +362,7 @@ class Range extends SuperInput {
363
362
  }
364
363
 
365
364
  protected createMousemoveListener(callback: (arg0: number) => void) {
366
- return (e: MouseEvent) => {
365
+ return (e: MouseEvent): void => {
367
366
  const value = this._computeValue(e);
368
367
  if (value > this.max || value < this.min) {
369
368
  return;
@@ -372,7 +371,7 @@ class Range extends SuperInput {
372
371
  };
373
372
  }
374
373
 
375
- protected _connectedInit() {
374
+ protected _connectedInit(): void {
376
375
  const gap = this.max - this.min;
377
376
  this.step ||= gap / 100;
378
377
  if (isNil(this.value)) {
@@ -385,15 +384,15 @@ class Range extends SuperInput {
385
384
  this.default ??= this.value;
386
385
  }
387
386
 
388
- reset() {
387
+ reset(): void {
389
388
  this.value = this.default;
390
389
  }
391
390
 
392
- sort() {
391
+ sort(): number | number[] {
393
392
  return this.value = this.toSorted();
394
393
  }
395
394
 
396
- toSorted() {
395
+ toSorted(): number | number[] {
397
396
  if (this.range) {
398
397
  return [...this.value as number[]].sort((a, b) => a - b);
399
398
  }
@@ -2,7 +2,7 @@ import { godown } from "@godown/element/decorators/godown.js";
2
2
  import { part } from "@godown/element/decorators/part.js";
3
3
  import { styles } from "@godown/element/decorators/styles.js";
4
4
  import { htmlSlot } from "@godown/element/directives/html-slot.js";
5
- import { css, html } from "lit";
5
+ import { css, html, type TemplateResult } from "lit";
6
6
 
7
7
  import { GlobalStyle, scopePrefix } from "../core/global-style.js";
8
8
 
@@ -42,7 +42,7 @@ const cssScope = scopePrefix(protoName);
42
42
  margin: calc(-1 * var(${cssScope}--offset));
43
43
  }
44
44
 
45
- [part=slot]{
45
+ [part=slot] {
46
46
  z-index: 2;
47
47
  }
48
48
  `,
@@ -51,19 +51,19 @@ class Rotate extends GlobalStyle {
51
51
  @part("root")
52
52
  protected _root: HTMLElement;
53
53
 
54
- protected render() {
54
+ protected render(): TemplateResult<1> {
55
55
  return html`<div part="root">
56
56
  <div part="slot" @mousemove="${this._handleRotate}">${htmlSlot()}</div>
57
57
  <i @mouseleave="${this.reset}"></i>
58
58
  </div>`;
59
59
  }
60
60
 
61
- reset() {
61
+ reset(): void {
62
62
  this._root.style.removeProperty("transform");
63
63
  this._root.style.removeProperty("transition");
64
64
  }
65
65
 
66
- protected _handleRotate(e: MouseEvent) {
66
+ protected _handleRotate(e: MouseEvent): void {
67
67
  const { rotateX, rotateY } = this._computeOffset(e);
68
68
  this._root.style.setProperty("transform", `rotateX(${rotateX}rad) rotateY(${rotateY}rad)`);
69
69
  this._root.style.setProperty("transition", "0s");
@@ -77,7 +77,10 @@ class Rotate extends GlobalStyle {
77
77
  * @param e Mouse move event.
78
78
  * @returns rotateX, rotateY
79
79
  */
80
- _computeOffset(e: MouseEvent) {
80
+ _computeOffset(e: MouseEvent): {
81
+ rotateX: number;
82
+ rotateY: number;
83
+ } {
81
84
  const { left, top, width, height } = this._root.getBoundingClientRect();
82
85
  const { clientX, clientY } = e;
83
86
  const offsetX = clientX - left;
@@ -33,8 +33,8 @@ const protoName = "router";
33
33
  */
34
34
  @godown(protoName)
35
35
  @styles(css`:host{display:contents;}`)
36
- class Router<C = unknown> extends GlobalStyle {
37
- static routerInstances = new Set<Router>();
36
+ class Router extends GlobalStyle {
37
+ static routerInstances: Set<Router> = new Set<Router>();
38
38
 
39
39
  private __fieldRouteTree: RouteTree = new RouteTree();
40
40
  private __slottedRouteTree: RouteTree = new RouteTree();
@@ -43,7 +43,7 @@ class Router<C = unknown> extends GlobalStyle {
43
43
  & Record<string, any>
44
44
  & {
45
45
  path: string;
46
- component?: C;
46
+ component?: unknown;
47
47
  }
48
48
  )[];
49
49
 
@@ -51,7 +51,7 @@ class Router<C = unknown> extends GlobalStyle {
51
51
  * Render result.
52
52
  */
53
53
  @state()
54
- component: C | TemplateResult = null;
54
+ component: unknown | TemplateResult = null;
55
55
 
56
56
  /**
57
57
  * Dynamic parameters record.
@@ -107,15 +107,18 @@ class Router<C = unknown> extends GlobalStyle {
107
107
  this.collectFieldRoutes(value);
108
108
  }
109
109
 
110
- get routes() {
110
+ get routes(): (Record<string, any> & {
111
+ path: string;
112
+ component?: unknown;
113
+ })[] {
111
114
  return this.__routes;
112
115
  }
113
116
 
114
- clear() {
117
+ clear(): void {
115
118
  this.__cacheRecord.clear();
116
119
  }
117
120
 
118
- protected render() {
121
+ protected render(): unknown {
119
122
  this.params = {};
120
123
  if (this.cache) {
121
124
  const cached = this.__cacheRecord.get(this.pathname);
@@ -137,7 +140,7 @@ class Router<C = unknown> extends GlobalStyle {
137
140
  return this.component ?? this.default ?? null;
138
141
  }
139
142
 
140
- connectedCallback() {
143
+ connectedCallback(): void {
141
144
  super.connectedCallback();
142
145
  Router.routerInstances.add(this);
143
146
  this.pathname ??= location.pathname;
@@ -153,12 +156,17 @@ class Router<C = unknown> extends GlobalStyle {
153
156
  }
154
157
  }
155
158
 
156
- disconnectedCallback() {
159
+ disconnectedCallback(): void {
157
160
  super.disconnectedCallback();
158
161
  Router.routerInstances.delete(this);
159
162
  }
160
163
 
161
- useRouter() {
164
+ useRouter(): {
165
+ pathname: string;
166
+ params: Record<string, string>;
167
+ path: string;
168
+ component: unknown;
169
+ } {
162
170
  return {
163
171
  pathname: this.pathname,
164
172
  params: this.params,
@@ -174,10 +182,10 @@ class Router<C = unknown> extends GlobalStyle {
174
182
  pathname: string;
175
183
  params: Record<string, string>;
176
184
  path: string;
177
- component: C | TemplateResult;
185
+ component: unknown | TemplateResult;
178
186
  }, first: boolean) => void = null;
179
187
 
180
- protected updated(changedProperties: PropertyValueMap<this>) {
188
+ protected updated(changedProperties: PropertyValueMap<this>): void {
181
189
  const shouldDispatch = changedProperties.has("pathname") || changedProperties.has("path");
182
190
  if (shouldDispatch) {
183
191
  const ur = this.useRouter();
@@ -193,7 +201,7 @@ class Router<C = unknown> extends GlobalStyle {
193
201
  /**
194
202
  * Get component from {@linkcode routes} by query.
195
203
  */
196
- fieldComponent(query?: string) {
204
+ fieldComponent(query?: string): unknown {
197
205
  query ||= this.useWhich(this.pathname);
198
206
  this.path = query;
199
207
 
@@ -212,7 +220,7 @@ class Router<C = unknown> extends GlobalStyle {
212
220
  /**
213
221
  * Get component from slotted elements by query.
214
222
  */
215
- slottedComponent(usedRouteTemplate?: string) {
223
+ slottedComponent(usedRouteTemplate?: string): TemplateResult<1> {
216
224
  const slottedPaths = this._slottedNames;
217
225
  usedRouteTemplate ||= this.__slottedRouteTree.useWhich(this.pathname);
218
226
  this.path = usedRouteTemplate;
@@ -232,7 +240,7 @@ class Router<C = unknown> extends GlobalStyle {
232
240
  /**
233
241
  * Reset the route tree, clear cache, collect routes from child elements.
234
242
  */
235
- collectSlottedRoutes() {
243
+ collectSlottedRoutes(): void {
236
244
  this.__slottedRouteTree = new RouteTree();
237
245
  this.clear();
238
246
  this._slottedNames.forEach(slotName => {
@@ -243,7 +251,7 @@ class Router<C = unknown> extends GlobalStyle {
243
251
  /**
244
252
  * Reset the route tree, clear cache, collect routes from value.
245
253
  */
246
- collectFieldRoutes(value: typeof this.routes) {
254
+ collectFieldRoutes(value: typeof this.routes): void {
247
255
  this.__fieldRouteTree = new RouteTree();
248
256
  this.clear();
249
257
  value.forEach(({ path }) => {
@@ -251,15 +259,15 @@ class Router<C = unknown> extends GlobalStyle {
251
259
  });
252
260
  }
253
261
 
254
- useWhich(path: string) {
262
+ useWhich(path: string): string {
255
263
  return this.__fieldRouteTree.useWhich(this.baseURL + path);
256
264
  }
257
265
 
258
- parseParams(routeTemplate: string, path: string) {
266
+ parseParams(routeTemplate: string, path: string): Record<string, string> {
259
267
  return this.__fieldRouteTree.parseParams(path, routeTemplate);
260
268
  }
261
269
 
262
- static updateAll() {
270
+ static updateAll(): void {
263
271
  this.routerInstances.forEach((i) => {
264
272
  i.handlePopstate();
265
273
  });
@@ -2,9 +2,10 @@ import { HandlerEvent } from "@godown/element";
2
2
  import { godown } from "@godown/element/decorators/godown.js";
3
3
  import { part } from "@godown/element/decorators/part.js";
4
4
  import { styles } from "@godown/element/decorators/styles.js";
5
+ import { attr } from "@godown/element/directives/attr.js";
5
6
  import { htmlSlot } from "@godown/element/directives/html-slot.js";
6
7
  import svgCaretDown from "@godown/f7-icon/icons/chevron-down.js";
7
- import { css, html, nothing } from "lit";
8
+ import { css, html, nothing, type TemplateResult } from "lit";
8
9
  import { property, state } from "lit/decorators.js";
9
10
  import { ifDefined } from "lit/directives/if-defined.js";
10
11
 
@@ -57,15 +58,20 @@ const protoName = "select";
57
58
  [part=content] {
58
59
  position: absolute;
59
60
  width: 100%;
61
+ visibility: hidden;
60
62
  }
61
63
 
62
- [direction=bottom] {
64
+ [direction=bottom] [part=content] {
63
65
  top: 100%;
64
66
  }
65
67
 
66
- [direction=top] {
68
+ [direction=top] [part=content] {
67
69
  bottom: 100%;
68
70
  }
71
+
72
+ [visible] [part=content] {
73
+ visibility: visible
74
+ }
69
75
  `,
70
76
  )
71
77
  class Select extends Input {
@@ -85,10 +91,10 @@ class Select extends Input {
85
91
  direction: "top" | "bottom" | undefined;
86
92
 
87
93
  @property({ type: Boolean })
88
- multiple: boolean;
94
+ multiple = false;
89
95
 
90
96
  @property({ type: Boolean })
91
- visible: boolean;
97
+ visible = false;
92
98
 
93
99
  @state()
94
100
  protected autoDirection: "top" | "bottom" = "bottom";
@@ -98,8 +104,13 @@ class Select extends Input {
98
104
  protected defaultChecked: HTMLElement[];
99
105
  private _store: { value: string; text: string; }[] = [];
100
106
 
101
- protected render() {
102
- return html`<div part="root" class="input-field">
107
+ protected render(): TemplateResult<1> {
108
+ return html`<div part="root" ${
109
+ attr({
110
+ ...this.observedRecord,
111
+ direction: this.direction || this.autoDirection,
112
+ })
113
+ } class="input-field">
103
114
  ${[
104
115
  this._renderPrefix(),
105
116
  html`<input
@@ -117,16 +128,16 @@ class Select extends Input {
117
128
  @input="${this._handleInput}"
118
129
  >`,
119
130
  html`<label for="${this.makeId}" part="suffix">
120
- <i part="space"></i><i part="icon">${svgCaretDown()}</i><i part="space"></i>
131
+ <i part="icon">${svgCaretDown()}</i>
132
+ </label>`,
133
+ html`<label for="${this.makeId}" part="content">
134
+ ${htmlSlot()}
121
135
  </label>`,
122
- html`<label for="${this.makeId}" part="content"
123
- style="visibility:${this.visible ? "visible" : "hidden"}"
124
- direction="${this.direction || this.autoDirection}">${htmlSlot()}</label>`,
125
136
  ]}
126
137
  </div>`;
127
138
  }
128
139
 
129
- protected _handleFocus() {
140
+ protected _handleFocus(): void {
130
141
  if (!this.direction) {
131
142
  const { top, bottom } = this.getBoundingClientRect();
132
143
  if (window.innerHeight - bottom < this._content.clientHeight && top > this._content.clientHeight) {
@@ -138,7 +149,7 @@ class Select extends Input {
138
149
  this.visible = true;
139
150
  }
140
151
 
141
- protected firstUpdated() {
152
+ protected firstUpdated(): void {
142
153
  this.events.add(this._content, "click", (e: HandlerEvent) => {
143
154
  e.preventDefault();
144
155
  e.stopPropagation();
@@ -164,7 +175,7 @@ class Select extends Input {
164
175
  });
165
176
  }
166
177
 
167
- protected _connectedInit() {
178
+ protected _connectedInit(): void {
168
179
  if (!this.value) {
169
180
  const checked = [...this.querySelectorAll<HTMLElement>("[checked]")];
170
181
  const list = this.multiple
@@ -193,7 +204,7 @@ class Select extends Input {
193
204
  this.defaultChecked.forEach(element => updateChecked(element, 1));
194
205
  }
195
206
 
196
- select(value: string, text?: string) {
207
+ select(value: string, text?: string): 0 | 1 {
197
208
  text ||= value;
198
209
  let operation: 0 | 1 = 0;
199
210
  if (this.multiple) {
@@ -221,7 +232,7 @@ class Select extends Input {
221
232
  return operation;
222
233
  }
223
234
 
224
- filter(query?: string) {
235
+ filter(query?: string): void {
225
236
  query = query?.trim();
226
237
  [...this.children].forEach((element: HTMLElement) => {
227
238
  this.filterCallback(
@@ -235,11 +246,11 @@ class Select extends Input {
235
246
  }
236
247
 
237
248
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
238
- filterCallback(element: HTMLElement, match: boolean, query: string) {
249
+ filterCallback(element: HTMLElement, match: boolean, query: string): void {
239
250
  element.style.display = match ? "" : "none";
240
251
  }
241
252
 
242
- protected _handleInput(e: HandlerEvent<HTMLInputElement>) {
253
+ protected _handleInput(e: HandlerEvent<HTMLInputElement>): void {
243
254
  e.stopPropagation();
244
255
  if (this.compositing) {
245
256
  return;
@@ -249,12 +260,12 @@ class Select extends Input {
249
260
  this.dispatchEvent(new CustomEvent("input", { detail: this.namevalue() }));
250
261
  }
251
262
 
252
- focus(options?: FocusOptions) {
263
+ focus(options?: FocusOptions): void {
253
264
  this._input.focus(options);
254
265
  this.visible = true;
255
266
  }
256
267
 
257
- blur() {
268
+ blur(): void {
258
269
  this._input.blur();
259
270
  this.visible = false;
260
271
  super.blur();