godown 3.4.0 → 3.5.1

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 (330) hide show
  1. package/build/godown+lit.iife.js +2 -2
  2. package/build/godown+lit.iife.js.map +1 -1
  3. package/build/godown+lit.js +2 -2
  4. package/build/godown+lit.js.map +1 -1
  5. package/build/godown+lit.umd.js +2 -2
  6. package/build/godown+lit.umd.js.map +1 -1
  7. package/build/godown.iife.js +5 -5
  8. package/build/godown.js +4 -4
  9. package/build/godown.js.map +1 -1
  10. package/build/godown.umd.js +5 -5
  11. package/build/godown.umd.js.map +1 -1
  12. package/components/avatar.d.ts.map +1 -1
  13. package/components/avatar.js +1 -1
  14. package/components/avatar.js.map +1 -1
  15. package/components/badge.js +1 -1
  16. package/components/badge.js.map +1 -1
  17. package/components/button.js +1 -1
  18. package/components/button.js.map +1 -1
  19. package/components/card.js +1 -1
  20. package/components/card.js.map +1 -1
  21. package/components/details.js +1 -1
  22. package/components/details.js.map +1 -1
  23. package/components/dialog.js +1 -1
  24. package/components/dialog.js.map +1 -1
  25. package/components/divider.d.ts.map +1 -1
  26. package/components/divider.js +1 -1
  27. package/components/divider.js.map +1 -1
  28. package/components/range.d.ts +7 -6
  29. package/components/range.d.ts.map +1 -1
  30. package/components/range.js.map +1 -1
  31. package/components/split.js +1 -1
  32. package/components/split.js.map +1 -1
  33. package/components/switch.d.ts +5 -13
  34. package/components/switch.d.ts.map +1 -1
  35. package/components/switch.js +1 -1
  36. package/components/switch.js.map +1 -1
  37. package/core/global-style.js +1 -1
  38. package/core/super-input.d.ts +2 -2
  39. package/core/super-input.d.ts.map +1 -1
  40. package/core/super-input.js +1 -1
  41. package/core/super-input.js.map +1 -1
  42. package/core/super-openable.d.ts +0 -1
  43. package/core/super-openable.d.ts.map +1 -1
  44. package/core/super-openable.js +1 -1
  45. package/core/super-openable.js.map +1 -1
  46. package/custom-elements.json +1 -1
  47. package/package.json +6 -18
  48. package/src/components/avatar.ts +2 -1
  49. package/src/components/button.ts +2 -3
  50. package/src/components/card.ts +4 -0
  51. package/src/components/details.ts +1 -1
  52. package/src/components/dialog.ts +4 -6
  53. package/src/components/divider.ts +2 -1
  54. package/src/components/range.ts +13 -11
  55. package/src/components/split.ts +2 -1
  56. package/src/components/switch.ts +43 -60
  57. package/src/core/global-style.ts +2 -2
  58. package/src/core/super-input.ts +13 -8
  59. package/src/core/super-openable.ts +0 -4
  60. package/tsconfig.json +33 -0
  61. package/vscode.html-custom-data.json +1 -1
  62. package/web-types.json +1 -1
  63. package/dev/alert.d.ts +0 -9
  64. package/dev/alert.d.ts.map +0 -1
  65. package/dev/alert.js +0 -5
  66. package/dev/alert.js.map +0 -1
  67. package/dev/avatar.d.ts +0 -9
  68. package/dev/avatar.d.ts.map +0 -1
  69. package/dev/avatar.js +0 -5
  70. package/dev/avatar.js.map +0 -1
  71. package/dev/badge.d.ts +0 -9
  72. package/dev/badge.d.ts.map +0 -1
  73. package/dev/badge.js +0 -5
  74. package/dev/badge.js.map +0 -1
  75. package/dev/breath.d.ts +0 -9
  76. package/dev/breath.d.ts.map +0 -1
  77. package/dev/breath.js +0 -5
  78. package/dev/breath.js.map +0 -1
  79. package/dev/button.d.ts +0 -9
  80. package/dev/button.d.ts.map +0 -1
  81. package/dev/button.js +0 -5
  82. package/dev/button.js.map +0 -1
  83. package/dev/card.d.ts +0 -9
  84. package/dev/card.d.ts.map +0 -1
  85. package/dev/card.js +0 -5
  86. package/dev/card.js.map +0 -1
  87. package/dev/carousel.d.ts +0 -9
  88. package/dev/carousel.d.ts.map +0 -1
  89. package/dev/carousel.js +0 -5
  90. package/dev/carousel.js.map +0 -1
  91. package/dev/components/alert.d.ts +0 -55
  92. package/dev/components/alert.d.ts.map +0 -1
  93. package/dev/components/alert.js +0 -236
  94. package/dev/components/alert.js.map +0 -1
  95. package/dev/components/avatar.d.ts +0 -33
  96. package/dev/components/avatar.d.ts.map +0 -1
  97. package/dev/components/avatar.js +0 -118
  98. package/dev/components/avatar.js.map +0 -1
  99. package/dev/components/badge.d.ts +0 -31
  100. package/dev/components/badge.d.ts.map +0 -1
  101. package/dev/components/badge.js +0 -122
  102. package/dev/components/badge.js.map +0 -1
  103. package/dev/components/breath.d.ts +0 -36
  104. package/dev/components/breath.d.ts.map +0 -1
  105. package/dev/components/breath.js +0 -135
  106. package/dev/components/breath.js.map +0 -1
  107. package/dev/components/button.d.ts +0 -60
  108. package/dev/components/button.d.ts.map +0 -1
  109. package/dev/components/button.js +0 -288
  110. package/dev/components/button.js.map +0 -1
  111. package/dev/components/card.d.ts +0 -27
  112. package/dev/components/card.d.ts.map +0 -1
  113. package/dev/components/card.js +0 -83
  114. package/dev/components/card.js.map +0 -1
  115. package/dev/components/carousel.d.ts +0 -39
  116. package/dev/components/carousel.d.ts.map +0 -1
  117. package/dev/components/carousel.js +0 -184
  118. package/dev/components/carousel.js.map +0 -1
  119. package/dev/components/details.d.ts +0 -24
  120. package/dev/components/details.d.ts.map +0 -1
  121. package/dev/components/details.js +0 -124
  122. package/dev/components/details.js.map +0 -1
  123. package/dev/components/dialog.d.ts +0 -43
  124. package/dev/components/dialog.d.ts.map +0 -1
  125. package/dev/components/dialog.js +0 -154
  126. package/dev/components/dialog.js.map +0 -1
  127. package/dev/components/divider.d.ts +0 -17
  128. package/dev/components/divider.d.ts.map +0 -1
  129. package/dev/components/divider.js +0 -63
  130. package/dev/components/divider.js.map +0 -1
  131. package/dev/components/dragbox.d.ts +0 -42
  132. package/dev/components/dragbox.d.ts.map +0 -1
  133. package/dev/components/dragbox.js +0 -126
  134. package/dev/components/dragbox.js.map +0 -1
  135. package/dev/components/flex.d.ts +0 -34
  136. package/dev/components/flex.d.ts.map +0 -1
  137. package/dev/components/flex.js +0 -73
  138. package/dev/components/flex.js.map +0 -1
  139. package/dev/components/form.d.ts +0 -24
  140. package/dev/components/form.d.ts.map +0 -1
  141. package/dev/components/form.js +0 -76
  142. package/dev/components/form.js.map +0 -1
  143. package/dev/components/grid.d.ts +0 -38
  144. package/dev/components/grid.d.ts.map +0 -1
  145. package/dev/components/grid.js +0 -67
  146. package/dev/components/grid.js.map +0 -1
  147. package/dev/components/heading.d.ts +0 -31
  148. package/dev/components/heading.d.ts.map +0 -1
  149. package/dev/components/heading.js +0 -127
  150. package/dev/components/heading.js.map +0 -1
  151. package/dev/components/input.d.ts +0 -23
  152. package/dev/components/input.d.ts.map +0 -1
  153. package/dev/components/input.js +0 -99
  154. package/dev/components/input.js.map +0 -1
  155. package/dev/components/layout.d.ts +0 -28
  156. package/dev/components/layout.d.ts.map +0 -1
  157. package/dev/components/layout.js +0 -96
  158. package/dev/components/layout.js.map +0 -1
  159. package/dev/components/link.d.ts +0 -54
  160. package/dev/components/link.d.ts.map +0 -1
  161. package/dev/components/link.js +0 -110
  162. package/dev/components/link.js.map +0 -1
  163. package/dev/components/progress.d.ts +0 -16
  164. package/dev/components/progress.d.ts.map +0 -1
  165. package/dev/components/progress.js +0 -101
  166. package/dev/components/progress.js.map +0 -1
  167. package/dev/components/range.d.ts +0 -121
  168. package/dev/components/range.d.ts.map +0 -1
  169. package/dev/components/range.js +0 -391
  170. package/dev/components/range.js.map +0 -1
  171. package/dev/components/rotate.d.ts +0 -30
  172. package/dev/components/rotate.d.ts.map +0 -1
  173. package/dev/components/rotate.js +0 -93
  174. package/dev/components/rotate.js.map +0 -1
  175. package/dev/components/router.d.ts +0 -116
  176. package/dev/components/router.d.ts.map +0 -1
  177. package/dev/components/router.js +0 -240
  178. package/dev/components/router.js.map +0 -1
  179. package/dev/components/select.d.ts +0 -53
  180. package/dev/components/select.d.ts.map +0 -1
  181. package/dev/components/select.js +0 -269
  182. package/dev/components/select.js.map +0 -1
  183. package/dev/components/skeleton.d.ts +0 -28
  184. package/dev/components/skeleton.d.ts.map +0 -1
  185. package/dev/components/skeleton.js +0 -122
  186. package/dev/components/skeleton.js.map +0 -1
  187. package/dev/components/split.d.ts +0 -56
  188. package/dev/components/split.d.ts.map +0 -1
  189. package/dev/components/split.js +0 -219
  190. package/dev/components/split.js.map +0 -1
  191. package/dev/components/switch.d.ts +0 -40
  192. package/dev/components/switch.d.ts.map +0 -1
  193. package/dev/components/switch.js +0 -166
  194. package/dev/components/switch.js.map +0 -1
  195. package/dev/components/text.d.ts +0 -21
  196. package/dev/components/text.d.ts.map +0 -1
  197. package/dev/components/text.js +0 -96
  198. package/dev/components/text.js.map +0 -1
  199. package/dev/components/time.d.ts +0 -36
  200. package/dev/components/time.d.ts.map +0 -1
  201. package/dev/components/time.js +0 -75
  202. package/dev/components/time.js.map +0 -1
  203. package/dev/components/tooltip.d.ts +0 -51
  204. package/dev/components/tooltip.d.ts.map +0 -1
  205. package/dev/components/tooltip.js +0 -140
  206. package/dev/components/tooltip.js.map +0 -1
  207. package/dev/components/typewriter.d.ts +0 -49
  208. package/dev/components/typewriter.d.ts.map +0 -1
  209. package/dev/components/typewriter.js +0 -149
  210. package/dev/components/typewriter.js.map +0 -1
  211. package/dev/core/direction.d.ts +0 -27
  212. package/dev/core/direction.d.ts.map +0 -1
  213. package/dev/core/direction.js +0 -56
  214. package/dev/core/direction.js.map +0 -1
  215. package/dev/core/global-style.d.ts +0 -20
  216. package/dev/core/global-style.d.ts.map +0 -1
  217. package/dev/core/global-style.js +0 -82
  218. package/dev/core/global-style.js.map +0 -1
  219. package/dev/core/outline.d.ts +0 -20
  220. package/dev/core/outline.d.ts.map +0 -1
  221. package/dev/core/outline.js +0 -44
  222. package/dev/core/outline.js.map +0 -1
  223. package/dev/core/super-anchor.d.ts +0 -18
  224. package/dev/core/super-anchor.d.ts.map +0 -1
  225. package/dev/core/super-anchor.js +0 -60
  226. package/dev/core/super-anchor.js.map +0 -1
  227. package/dev/core/super-input.d.ts +0 -43
  228. package/dev/core/super-input.d.ts.map +0 -1
  229. package/dev/core/super-input.js +0 -197
  230. package/dev/core/super-input.js.map +0 -1
  231. package/dev/core/super-openable.d.ts +0 -16
  232. package/dev/core/super-openable.d.ts.map +0 -1
  233. package/dev/core/super-openable.js +0 -36
  234. package/dev/core/super-openable.js.map +0 -1
  235. package/dev/details.d.ts +0 -9
  236. package/dev/details.d.ts.map +0 -1
  237. package/dev/details.js +0 -5
  238. package/dev/details.js.map +0 -1
  239. package/dev/dialog.d.ts +0 -9
  240. package/dev/dialog.d.ts.map +0 -1
  241. package/dev/dialog.js +0 -5
  242. package/dev/dialog.js.map +0 -1
  243. package/dev/divider.d.ts +0 -9
  244. package/dev/divider.d.ts.map +0 -1
  245. package/dev/divider.js +0 -5
  246. package/dev/divider.js.map +0 -1
  247. package/dev/dragbox.d.ts +0 -9
  248. package/dev/dragbox.d.ts.map +0 -1
  249. package/dev/dragbox.js +0 -5
  250. package/dev/dragbox.js.map +0 -1
  251. package/dev/flex.d.ts +0 -9
  252. package/dev/flex.d.ts.map +0 -1
  253. package/dev/flex.js +0 -5
  254. package/dev/flex.js.map +0 -1
  255. package/dev/form.d.ts +0 -9
  256. package/dev/form.d.ts.map +0 -1
  257. package/dev/form.js +0 -5
  258. package/dev/form.js.map +0 -1
  259. package/dev/grid.d.ts +0 -9
  260. package/dev/grid.d.ts.map +0 -1
  261. package/dev/grid.js +0 -5
  262. package/dev/grid.js.map +0 -1
  263. package/dev/heading.d.ts +0 -9
  264. package/dev/heading.d.ts.map +0 -1
  265. package/dev/heading.js +0 -5
  266. package/dev/heading.js.map +0 -1
  267. package/dev/index.d.ts +0 -31
  268. package/dev/index.d.ts.map +0 -1
  269. package/dev/index.js +0 -31
  270. package/dev/index.js.map +0 -1
  271. package/dev/input.d.ts +0 -9
  272. package/dev/input.d.ts.map +0 -1
  273. package/dev/input.js +0 -5
  274. package/dev/input.js.map +0 -1
  275. package/dev/layout.d.ts +0 -9
  276. package/dev/layout.d.ts.map +0 -1
  277. package/dev/layout.js +0 -5
  278. package/dev/layout.js.map +0 -1
  279. package/dev/link.d.ts +0 -9
  280. package/dev/link.d.ts.map +0 -1
  281. package/dev/link.js +0 -5
  282. package/dev/link.js.map +0 -1
  283. package/dev/progress.d.ts +0 -9
  284. package/dev/progress.d.ts.map +0 -1
  285. package/dev/progress.js +0 -5
  286. package/dev/progress.js.map +0 -1
  287. package/dev/range.d.ts +0 -9
  288. package/dev/range.d.ts.map +0 -1
  289. package/dev/range.js +0 -5
  290. package/dev/range.js.map +0 -1
  291. package/dev/rotate.d.ts +0 -9
  292. package/dev/rotate.d.ts.map +0 -1
  293. package/dev/rotate.js +0 -5
  294. package/dev/rotate.js.map +0 -1
  295. package/dev/router.d.ts +0 -9
  296. package/dev/router.d.ts.map +0 -1
  297. package/dev/router.js +0 -5
  298. package/dev/router.js.map +0 -1
  299. package/dev/select.d.ts +0 -9
  300. package/dev/select.d.ts.map +0 -1
  301. package/dev/select.js +0 -5
  302. package/dev/select.js.map +0 -1
  303. package/dev/skeleton.d.ts +0 -9
  304. package/dev/skeleton.d.ts.map +0 -1
  305. package/dev/skeleton.js +0 -5
  306. package/dev/skeleton.js.map +0 -1
  307. package/dev/split.d.ts +0 -9
  308. package/dev/split.d.ts.map +0 -1
  309. package/dev/split.js +0 -5
  310. package/dev/split.js.map +0 -1
  311. package/dev/switch.d.ts +0 -9
  312. package/dev/switch.d.ts.map +0 -1
  313. package/dev/switch.js +0 -5
  314. package/dev/switch.js.map +0 -1
  315. package/dev/text.d.ts +0 -9
  316. package/dev/text.d.ts.map +0 -1
  317. package/dev/text.js +0 -5
  318. package/dev/text.js.map +0 -1
  319. package/dev/time.d.ts +0 -9
  320. package/dev/time.d.ts.map +0 -1
  321. package/dev/time.js +0 -5
  322. package/dev/time.js.map +0 -1
  323. package/dev/tooltip.d.ts +0 -9
  324. package/dev/tooltip.d.ts.map +0 -1
  325. package/dev/tooltip.js +0 -5
  326. package/dev/tooltip.js.map +0 -1
  327. package/dev/typewriter.d.ts +0 -9
  328. package/dev/typewriter.d.ts.map +0 -1
  329. package/dev/typewriter.js +0 -5
  330. package/dev/typewriter.js.map +0 -1
package/package.json CHANGED
@@ -1,22 +1,9 @@
1
1
  {
2
2
  "name": "godown",
3
- "version": "3.4.0",
3
+ "version": "3.5.1",
4
4
  "description": "Non Composite Web Components Library",
5
5
  "type": "module",
6
6
  "main": "index.js",
7
- "exports": {
8
- ".": {
9
- "development": "./dev/index.js",
10
- "default": "./index.js"
11
- },
12
- "./*": {
13
- "development": "./dev/*",
14
- "default": "./*"
15
- },
16
- "./build/*": "./build/*",
17
- "./src/*": "./src/*",
18
- "./*.json": "./*.json"
19
- },
20
7
  "repository": {
21
8
  "type": "git",
22
9
  "url": "https://github.com/startracex/godown.git",
@@ -33,8 +20,8 @@
33
20
  "lit": "^3.0.0",
34
21
  "tslib": "^2.7.0",
35
22
  "@godown/colors": "^1.0.0",
36
- "@godown/element": "^1.3.0",
37
- "@godown/f7-icon": "^1.0.3"
23
+ "@godown/element": "^1.3.1",
24
+ "@godown/f7-icon": "^1.0.4"
38
25
  },
39
26
  "publishConfig": {
40
27
  "access": "public"
@@ -44,7 +31,8 @@
44
31
  "custom-elements.json",
45
32
  "web-types.json",
46
33
  "vscode.{css,html}-custom-data.json",
47
- "src"
34
+ "src",
35
+ "tsconfig.json"
48
36
  ],
49
37
  "custom-elements": "./custom-elements.json",
50
38
  "customElements": "./custom-elements.json",
@@ -53,7 +41,7 @@
53
41
  "dev": "tsc --watch",
54
42
  "check-types": "tsc --noEmit",
55
43
  "clean": "tsc --build tsconfig.prod.json --clean",
56
- "build": "tsc && tsx build.ts",
44
+ "build": "tsx build.ts",
57
45
  "build:ts": "tsc",
58
46
  "fmt": "prettier src --write",
59
47
  "lint": "biome lint",
@@ -2,7 +2,7 @@ import { attr, godown, htmlSlot, omit, styles } from "@godown/element";
2
2
  import { type TemplateResult, css, html } from "lit";
3
3
  import { property } from "lit/decorators.js";
4
4
 
5
- import { GlobalStyle, scopePrefix } from "../core/global-style.js";
5
+ import { GlobalStyle, scopePrefix, cssGlobalVars } from "../core/global-style.js";
6
6
 
7
7
  const protoName = "avatar";
8
8
  const cssScope = scopePrefix(protoName);
@@ -22,6 +22,7 @@ const cssScope = scopePrefix(protoName);
22
22
  ${cssScope}--size: 2em;
23
23
  width: var(${cssScope}--size);
24
24
  height: var(${cssScope}--size);
25
+ background: var(${cssGlobalVars.passive});
25
26
  vertical-align: bottom;
26
27
  border-radius: 0.2em;
27
28
  }
@@ -95,7 +95,6 @@ const colors: Record<Colors, string> = constructCSSObject(
95
95
  }
96
96
 
97
97
  :host([round]) {
98
- ${cssScope}--padding-x: .75em;
99
98
  border-radius: calc(infinity * 1px);
100
99
  }
101
100
 
@@ -118,8 +117,8 @@ const colors: Record<Colors, string> = constructCSSObject(
118
117
  `,
119
118
  css`
120
119
  :host {
121
- ${cssScope}--padding-x: .5em;
122
- ${cssScope}--padding-y: min(calc(var(${cssScope}--padding-x) / 2), .125em);
120
+ ${cssScope}--padding-x: .8em;
121
+ ${cssScope}--padding-y: calc(var(${cssScope}--padding-x) / 4);
123
122
  ${cssScope}--padding: var(${cssScope}--padding-y) var(${cssScope}--padding-x);
124
123
  ${cssScope}--modal-animation-duration: 1s;
125
124
  ${cssScope}--ghost-width: .08em;
@@ -42,6 +42,10 @@ const cssScope = scopePrefix(protoName);
42
42
  border-style: solid;
43
43
  }
44
44
 
45
+ [part="root"] {
46
+ width: 100%;
47
+ }
48
+
45
49
  [name="footer"] {
46
50
  border-top-width: var(${cssScope}--border-width);
47
51
  }
@@ -98,7 +98,7 @@ class Details extends SuperOpenable {
98
98
  >
99
99
  <dt
100
100
  part="title"
101
- @click="${this._handelClick}"
101
+ @click="${() => this.toggle()}"
102
102
  >
103
103
  <span part="summary">${this.summary || htmlSlot("summary")}</span>
104
104
  <span>
@@ -34,24 +34,22 @@ const cssScope = scopePrefix(protoName);
34
34
  ${cssScope}--opacity-modal: 0.2;
35
35
  background: var(${cssScope}--background);
36
36
  pointer-events: none;
37
- visibility: hidden;
38
37
  position: fixed;
39
38
  z-index: 1;
40
39
  inset: 0;
41
40
  }
42
41
 
43
- :host([open]) {
44
- visibility: visible;
42
+ :host(:not([open])) {
43
+ visibility: hidden;
45
44
  }
46
45
 
47
- :host([open][modal]) [part="modal"] {
46
+ :host([modal]) [part="modal"] {
48
47
  pointer-events: all;
49
- visibility: visible;
50
48
  opacity: var(${cssScope}--opacity-modal);
51
49
  }
52
50
 
53
51
  [part="modal"] {
54
- visibility: hidden;
52
+ visibility: inherit;
55
53
  opacity: 0;
56
54
  width: 100%;
57
55
  height: 100%;
@@ -2,7 +2,7 @@ import { attr, godown, styles } from "@godown/element";
2
2
  import { type TemplateResult, css, html } from "lit";
3
3
  import { property } from "lit/decorators.js";
4
4
 
5
- import { GlobalStyle } from "../core/global-style.js";
5
+ import { cssGlobalVars, GlobalStyle } from "../core/global-style.js";
6
6
 
7
7
  const protoName = "divider";
8
8
 
@@ -19,6 +19,7 @@ const protoName = "divider";
19
19
  margin: auto;
20
20
  display: block;
21
21
  background: currentColor;
22
+ color: var(${cssGlobalVars.passive});
22
23
  }
23
24
 
24
25
  :host([vertical]) {
@@ -8,6 +8,8 @@ import { SuperInput } from "../core/super-input.js";
8
8
  const protoName = "range";
9
9
  const cssScope = scopePrefix(protoName);
10
10
 
11
+ type RangeValue = number | number[];
12
+
11
13
  /**
12
14
  * {@linkcode Range} is similar to `<input type="range">`.
13
15
  *
@@ -116,7 +118,7 @@ const cssScope = scopePrefix(protoName);
116
118
  }
117
119
  `,
118
120
  )
119
- class Range extends SuperInput {
121
+ class Range<V extends RangeValue = RangeValue> extends SuperInput<RangeValue> {
120
122
  /**
121
123
  * Minimum value.
122
124
  */
@@ -147,13 +149,13 @@ class Range extends SuperInput {
147
149
  * Accepts number or array of numbers.
148
150
  */
149
151
  @property({ type: Array })
150
- value: number | number[];
152
+ value: V;
151
153
 
152
154
  /**
153
155
  * The default of `{@linkcode this.value}`.
154
156
  */
155
157
  @property({ type: Array })
156
- default: typeof this.value;
158
+ default: V;
157
159
 
158
160
  @part("root")
159
161
  protected _root: HTMLElement;
@@ -167,8 +169,8 @@ class Range extends SuperInput {
167
169
  protected _ranger: Ranger;
168
170
  private __focusStack: number[] = [];
169
171
 
170
- get range(): boolean {
171
- return Array.isArray(this.value);
172
+ get range(): V extends number ? false : true {
173
+ return Array.isArray(this.value) as any;
172
174
  }
173
175
 
174
176
  /**
@@ -319,12 +321,12 @@ class Range extends SuperInput {
319
321
  protected createSetValue(index: number) {
320
322
  return (value: number): void => {
321
323
  const normalizeValue = this._ranger.normalize(value);
322
- let newValue: number | number[] = normalizeValue;
324
+ let newValue: RangeValue = normalizeValue;
323
325
  if (this.range) {
324
326
  newValue = [...(this.value as number[])];
325
327
  newValue[index] = normalizeValue;
326
328
  }
327
- this.value = newValue;
329
+ this.value = newValue as V;
328
330
  this.dispatchEvent(new CustomEvent("range", { detail: this.value }));
329
331
  };
330
332
  }
@@ -399,7 +401,7 @@ class Range extends SuperInput {
399
401
  if (!isNil(this.default)) {
400
402
  this.value = this.default;
401
403
  } else {
402
- this.value = Math.round(gap / 2 / this.step) * this.step;
404
+ (this.value as number) = Math.round(gap / 2 / this.step) * this.step;
403
405
  }
404
406
  }
405
407
  this.default ??= this.value;
@@ -409,13 +411,13 @@ class Range extends SuperInput {
409
411
  this.value = this.default;
410
412
  }
411
413
 
412
- sort(): number | number[] {
414
+ sort(): V {
413
415
  return (this.value = this.toSorted());
414
416
  }
415
417
 
416
- toSorted(): number | number[] {
418
+ toSorted(): V {
417
419
  if (this.range) {
418
- return [...(this.value as number[])].sort((a, b) => a - b);
420
+ return [...(this.value as number[])].sort((a, b) => a - b) as V;
419
421
  }
420
422
  return this.value;
421
423
  }
@@ -64,7 +64,8 @@ const cssScope = scopePrefix(protoName);
64
64
  z-index: -1;
65
65
  }
66
66
 
67
- .focus {
67
+ .focus,
68
+ [part="input-box"]:active {
68
69
  ${cssGlobalVars.input}-outline-color: var(${cssGlobalVars.active});
69
70
  }
70
71
  `)
@@ -1,6 +1,6 @@
1
1
  import { attr, godown, omit, styles } from "@godown/element";
2
2
  import { type TemplateResult, css, html } from "lit";
3
- import { property, query } from "lit/decorators.js";
3
+ import { property } from "lit/decorators.js";
4
4
 
5
5
  import { cssGlobalVars, scopePrefix } from "../core/global-style.js";
6
6
  import { SuperInput } from "../core/super-input.js";
@@ -27,7 +27,7 @@ const cssScope = scopePrefix(protoName);
27
27
  ${cssScope}-width: 3em;
28
28
  ${cssScope}-height: calc(var(${cssScope}-width) / 2);
29
29
  ${cssScope}-handle-size: 1.25em;
30
- ${cssScope}-handle-space: .125em;
30
+ ${cssScope}-handle-space: calc(var(${cssScope}-width) / 4 - var(${cssScope}-handle-size) / 2);
31
31
  ${cssScope}-transition: .2s ease-in-out;
32
32
  border-radius: calc(var(${cssScope}-height) / 2);
33
33
  background: var(${cssGlobalVars.passive});
@@ -40,63 +40,54 @@ const cssScope = scopePrefix(protoName);
40
40
  background: var(${cssGlobalVars.active});
41
41
  }
42
42
 
43
- [part="root"],
44
- [part="handle"] {
45
- transition: inherit;
46
- }
47
-
48
43
  [part="root"] {
49
- position: relative;
50
44
  height: inherit;
51
- }
52
-
53
- [part="input"] {
54
- opacity: 0;
55
- width: 100%;
56
- height: 100%;
45
+ display: flex;
46
+ align-items: center;
47
+ position: relative;
48
+ transition: inherit;
57
49
  }
58
50
 
59
51
  [part="handle"] {
60
- height: 100%;
61
- display: inline-flex;
52
+ display: flex;
62
53
  align-items: center;
63
54
  justify-content: center;
64
55
  position: absolute;
56
+ transition: inherit;
65
57
  left: 0;
66
- width: 50%;
58
+ top: 50%;
67
59
  pointer-events: none;
60
+ border-radius: 100%;
61
+ background: currentColor;
62
+ --size: var(${cssScope}-handle-size);
63
+ width: var(--size);
64
+ height: var(--size);
65
+ transform: translateY(-50%) translateX(var(${cssScope}-handle-space));
68
66
  }
69
67
 
70
68
  :host([checked]) [part="handle"] {
71
69
  left: 50%;
72
70
  }
73
71
 
74
- [part="handle"] {
75
- --size: var(${cssScope}-handle-size);
76
- border-radius: 100%;
77
- background: currentColor;
78
- width: var(--size);
79
- height: var(--size);
80
- margin: var(${cssScope}-handle-space);
72
+ [part="input"] {
73
+ opacity: 0;
74
+ width: 100%;
75
+ height: 100%;
81
76
  }
82
77
  `)
83
- class Switch extends SuperInput {
78
+ class Switch extends SuperInput<boolean> {
84
79
  /**
85
80
  * @deprecated
86
81
  */
87
82
  round: boolean;
88
83
 
89
- /**
90
- * Whether this element is selected or not.
91
- */
92
- @property({ type: Boolean, reflect: true })
93
- checked = false;
84
+ set checked(v: boolean) {
85
+ this.value = v;
86
+ }
94
87
 
95
- /**
96
- * Disable this element.
97
- */
98
- @property({ type: Boolean, reflect: true })
99
- disabled = false;
88
+ get checked(): boolean {
89
+ return this.value;
90
+ }
100
91
 
101
92
  /**
102
93
  * Default checked state.
@@ -105,13 +96,10 @@ class Switch extends SuperInput {
105
96
  default = false;
106
97
 
107
98
  /**
108
- * Input value.
99
+ * The current value of the switch component. Reflects the "checked" attribute.
109
100
  */
110
- @property()
111
- value = "on";
112
-
113
- @query("input")
114
- protected _input: HTMLInputElement;
101
+ @property({ type: Boolean, attribute: "checked", reflect: true })
102
+ value = false;
115
103
 
116
104
  get observedRecord(): Record<string, any> {
117
105
  return omit(super.observedRecord, "outline-type");
@@ -128,40 +116,35 @@ class Switch extends SuperInput {
128
116
  part="input"
129
117
  type="checkbox"
130
118
  ?disabled="${this.disabled}"
131
- ?checked="${this.checked}"
132
- name="${this.name}"
119
+ ?checked="${this.value}"
133
120
  id="${this.makeId}"
134
121
  @change="${this._handleChange}"
135
122
  />
136
- <span
137
- part="handle"
138
- class="${this.checked}"
139
- ></span>
123
+ <span part="handle"></span>
140
124
  </div>
141
125
  `;
142
126
  }
143
127
 
144
128
  reset(): void {
145
- this.checked = this.default;
146
- this._input.checked = this.checked;
129
+ this.value = this.default;
130
+ this._input.checked = this.value;
147
131
  }
148
132
 
149
133
  protected _connectedInit(): void {
150
- if (this.checked) {
151
- this.default = true;
152
- }
153
- if (this.default === true) {
154
- this.checked = true;
134
+ if (this.default) {
135
+ this.value = true;
136
+ } else {
137
+ if (this.value) {
138
+ this.value = true;
139
+ this.default = true;
140
+ }
155
141
  }
156
142
  }
157
143
 
158
144
  protected _handleChange(): void {
159
- this.checked = this._input.checked;
160
- this.dispatchEvent(new CustomEvent("change", { detail: this.checked, composed: true }));
161
- }
162
-
163
- namevalue(): [string, boolean] {
164
- return [this.name, this.checked];
145
+ const { checked } = this._input;
146
+ this.value = checked;
147
+ this.dispatchCustomEvent("change", this.value);
165
148
  }
166
149
  }
167
150
 
@@ -50,8 +50,8 @@ GlobalStyle.styles = [
50
50
  return `${colorKey}:rgb(${rgb});`;
51
51
  }, presetsRGB).join("") +
52
52
  joinProperties([
53
- [cssGlobalVars.active, `var(${cssGlobalVars._colors.blue[6]})`],
54
- [cssGlobalVars.passive, `var(${cssGlobalVars._colors.darkgray[6]})`],
53
+ [cssGlobalVars.active, `var(${cssGlobalVars._colors.blue[5]})`],
54
+ [cssGlobalVars.passive, `var(${cssGlobalVars._colors.darkgray[5]})`],
55
55
  [
56
56
  cssGlobalVars.clipBackground,
57
57
  `linear-gradient(to bottom, var(${cssGlobalVars._colors.lightgray[0]}), var(${cssGlobalVars._colors.darkgray[5]}))`,
@@ -7,7 +7,6 @@ import { OutlineBuilder, type OutlineType } from "./outline.js";
7
7
 
8
8
  const fieldStyle = css`
9
9
  .input-field {
10
- --space: var(${cssGlobalVars.input}-space);
11
10
  display: flex;
12
11
  position: relative;
13
12
  align-items: center;
@@ -20,13 +19,14 @@ const fieldStyle = css`
20
19
  height: 100%;
21
20
  width: 100%;
22
21
  color: inherit;
23
- padding: 0 var(--space);
22
+ padding: var(${cssGlobalVars.input}-space);
24
23
  }
25
24
 
26
25
  .input-field [part="icon"] {
27
26
  display: flex;
28
27
  align-items: center;
29
28
  justify-content: center;
29
+ color: var(${cssGlobalVars.input}-icon-color);
30
30
  }
31
31
 
32
32
  .input-field [part="prefix"],
@@ -36,11 +36,11 @@ const fieldStyle = css`
36
36
  }
37
37
 
38
38
  .input-field [part="suffix"] [part="icon"] {
39
- padding-inline-end: var(--space);
39
+ padding-inline-end: var(${cssGlobalVars.input}-space);
40
40
  }
41
41
 
42
42
  .input-field [part="prefix"] [part="icon"] {
43
- padding-inline-start: var(--space);
43
+ padding-inline-start: var(${cssGlobalVars.input}-space);
44
44
  }
45
45
  `;
46
46
 
@@ -51,7 +51,8 @@ const inputStyle = css`
51
51
  ${cssGlobalVars.input}-space: 0.2em;
52
52
  ${cssGlobalVars.input}-control: currentColor;
53
53
  ${cssGlobalVars.input}-outline-width: .075em;
54
- ${cssGlobalVars.input}-outline-color: var(${cssGlobalVars.passive});
54
+ ${cssGlobalVars.input}-outline-color: var(${cssGlobalVars._colors.darkgray[4]});
55
+ ${cssGlobalVars.input}-icon-color: var(${cssGlobalVars._colors.darkgray[4]});
55
56
  border-radius: 0.2em;
56
57
  }
57
58
 
@@ -60,6 +61,10 @@ const inputStyle = css`
60
61
  filter: brightness(0.85);
61
62
  }
62
63
 
64
+ :host(:focus-within) {
65
+ ${cssGlobalVars.input}-icon-color: currentColor;
66
+ }
67
+
63
68
  input:disabled {
64
69
  cursor: inherit;
65
70
  }
@@ -78,7 +83,7 @@ const inputStyle = css`
78
83
  }).styleSheet,
79
84
  inputStyle,
80
85
  )
81
- class SuperInput extends GlobalStyle {
86
+ class SuperInput<V = string> extends GlobalStyle {
82
87
  autofocus = false;
83
88
  @property()
84
89
  autocomplete: string | boolean;
@@ -99,7 +104,7 @@ class SuperInput extends GlobalStyle {
99
104
  name: string;
100
105
 
101
106
  @property()
102
- value: any;
107
+ value: V;
103
108
 
104
109
  get observedRecord(): Record<string, any> {
105
110
  return omit(super.observedRecord, "default", "value");
@@ -145,7 +150,7 @@ class SuperInput extends GlobalStyle {
145
150
  if (this.compositing) {
146
151
  return;
147
152
  }
148
- this.value = e.target.value?.trim();
153
+ (this.value as string) = e.target.value?.trim();
149
154
  this.dispatchEvent(
150
155
  new CustomEvent("input", {
151
156
  detail: this.value,
@@ -28,10 +28,6 @@ class SuperOpenable extends GlobalStyle {
28
28
  this.dispatchEvent(new CustomEvent("change", { detail: this.open, composed: true }));
29
29
  }
30
30
  }
31
-
32
- protected _handelClick(_: MouseEvent): void {
33
- this.toggle();
34
- }
35
31
  }
36
32
 
37
33
  export default SuperOpenable;
package/tsconfig.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2021",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "customConditions": [
7
+ "development",
8
+ "import",
9
+ "default"
10
+ ],
11
+ "lib": [
12
+ "DOM",
13
+ "DOM.Iterable",
14
+ "ESNext"
15
+ ],
16
+ "types": [],
17
+ "allowJs": false,
18
+ "skipDefaultLibCheck": true,
19
+ "skipLibCheck": true,
20
+ "declaration": true,
21
+ "declarationMap": true,
22
+ "sourceMap": true,
23
+ "importHelpers": true,
24
+ "noImplicitThis": true,
25
+ "experimentalDecorators": true,
26
+ "useDefineForClassFields": false,
27
+ "isolatedDeclarations": true,
28
+ "outDir": ".",
29
+ "rootDir": "src"
30
+ },
31
+ "include": ["src"],
32
+ "exclude": []
33
+ }