godown 3.0.0-canary.9 → 3.0.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 (510) hide show
  1. package/README.md +38 -9
  2. package/alert.d.ts +1 -0
  3. package/alert.d.ts.map +1 -1
  4. package/alert.js +1 -5
  5. package/alert.js.map +1 -1
  6. package/avatar.d.ts +1 -0
  7. package/avatar.d.ts.map +1 -1
  8. package/avatar.js +1 -5
  9. package/avatar.js.map +1 -1
  10. package/badge.d.ts +9 -0
  11. package/badge.d.ts.map +1 -0
  12. package/badge.js +2 -0
  13. package/badge.js.map +1 -0
  14. package/breath.js +1 -5
  15. package/breath.js.map +1 -1
  16. package/build/godown+lit.iife.js +59 -0
  17. package/build/godown+lit.iife.js.map +1 -0
  18. package/build/godown+lit.js +59 -0
  19. package/build/godown+lit.js.map +1 -0
  20. package/build/godown+lit.umd.js +59 -0
  21. package/build/godown+lit.umd.js.map +1 -0
  22. package/build/godown.iife.js +47 -0
  23. package/build/godown.js +48 -0
  24. package/build/godown.js.map +1 -0
  25. package/build/godown.umd.js +48 -0
  26. package/build/godown.umd.js.map +1 -0
  27. package/button.d.ts +1 -0
  28. package/button.d.ts.map +1 -1
  29. package/button.js +1 -5
  30. package/button.js.map +1 -1
  31. package/card.d.ts +1 -0
  32. package/card.d.ts.map +1 -1
  33. package/card.js +1 -5
  34. package/card.js.map +1 -1
  35. package/carousel.d.ts +1 -0
  36. package/carousel.d.ts.map +1 -1
  37. package/carousel.js +1 -5
  38. package/carousel.js.map +1 -1
  39. package/components/alert.d.ts +4 -1
  40. package/components/alert.d.ts.map +1 -1
  41. package/components/alert.js +1 -176
  42. package/components/alert.js.map +1 -1
  43. package/components/avatar.d.ts +7 -2
  44. package/components/avatar.d.ts.map +1 -1
  45. package/components/avatar.js +1 -62
  46. package/components/avatar.js.map +1 -1
  47. package/components/badge.d.ts +23 -0
  48. package/components/badge.d.ts.map +1 -0
  49. package/components/badge.js +2 -0
  50. package/components/badge.js.map +1 -0
  51. package/components/breath.d.ts +6 -4
  52. package/components/breath.d.ts.map +1 -1
  53. package/components/breath.js +1 -80
  54. package/components/breath.js.map +1 -1
  55. package/components/button.d.ts +8 -5
  56. package/components/button.d.ts.map +1 -1
  57. package/components/button.js +1 -168
  58. package/components/button.js.map +1 -1
  59. package/components/card.d.ts +3 -1
  60. package/components/card.d.ts.map +1 -1
  61. package/components/card.js +1 -48
  62. package/components/card.js.map +1 -1
  63. package/components/carousel.d.ts +5 -1
  64. package/components/carousel.d.ts.map +1 -1
  65. package/components/carousel.js +1 -113
  66. package/components/carousel.js.map +1 -1
  67. package/components/details.d.ts +4 -3
  68. package/components/details.d.ts.map +1 -1
  69. package/components/details.js +1 -52
  70. package/components/details.js.map +1 -1
  71. package/components/dialog.d.ts +4 -2
  72. package/components/dialog.d.ts.map +1 -1
  73. package/components/dialog.js +1 -96
  74. package/components/dialog.js.map +1 -1
  75. package/components/divider.d.ts +3 -3
  76. package/components/divider.d.ts.map +1 -1
  77. package/components/divider.js +1 -36
  78. package/components/divider.js.map +1 -1
  79. package/components/dragbox.d.ts +4 -2
  80. package/components/dragbox.d.ts.map +1 -1
  81. package/components/dragbox.js +1 -109
  82. package/components/dragbox.js.map +1 -1
  83. package/components/flex.d.ts +3 -1
  84. package/components/flex.d.ts.map +1 -1
  85. package/components/flex.js +1 -62
  86. package/components/flex.js.map +1 -1
  87. package/components/form.d.ts +3 -1
  88. package/components/form.d.ts.map +1 -1
  89. package/components/form.js +1 -75
  90. package/components/form.js.map +1 -1
  91. package/components/grid.d.ts +3 -1
  92. package/components/grid.d.ts.map +1 -1
  93. package/components/grid.js +1 -56
  94. package/components/grid.js.map +1 -1
  95. package/components/heading.d.ts +29 -0
  96. package/components/heading.d.ts.map +1 -0
  97. package/components/heading.js +2 -0
  98. package/components/heading.js.map +1 -0
  99. package/components/input.d.ts +5 -1
  100. package/components/input.d.ts.map +1 -1
  101. package/components/input.js +1 -50
  102. package/components/input.js.map +1 -1
  103. package/components/layout.d.ts +6 -4
  104. package/components/layout.d.ts.map +1 -1
  105. package/components/layout.js +1 -58
  106. package/components/layout.js.map +1 -1
  107. package/components/link.d.ts +5 -0
  108. package/components/link.d.ts.map +1 -1
  109. package/components/link.js +1 -44
  110. package/components/link.js.map +1 -1
  111. package/components/progress.d.ts +3 -1
  112. package/components/progress.d.ts.map +1 -1
  113. package/components/progress.js +1 -58
  114. package/components/progress.js.map +1 -1
  115. package/components/range.d.ts +10 -4
  116. package/components/range.d.ts.map +1 -1
  117. package/components/range.js +1 -266
  118. package/components/range.js.map +1 -1
  119. package/components/rotate.d.ts +3 -1
  120. package/components/rotate.d.ts.map +1 -1
  121. package/components/rotate.js +1 -56
  122. package/components/rotate.js.map +1 -1
  123. package/components/router.d.ts +27 -34
  124. package/components/router.d.ts.map +1 -1
  125. package/components/router.js +1 -250
  126. package/components/router.js.map +1 -1
  127. package/components/select.d.ts +7 -2
  128. package/components/select.d.ts.map +1 -1
  129. package/components/select.js +1 -211
  130. package/components/select.js.map +1 -1
  131. package/components/skeleton.d.ts +3 -1
  132. package/components/skeleton.d.ts.map +1 -1
  133. package/components/skeleton.js +1 -54
  134. package/components/skeleton.js.map +1 -1
  135. package/components/split.d.ts +8 -2
  136. package/components/split.d.ts.map +1 -1
  137. package/components/split.js +1 -153
  138. package/components/split.js.map +1 -1
  139. package/components/switch.d.ts +5 -2
  140. package/components/switch.d.ts.map +1 -1
  141. package/components/switch.js +1 -92
  142. package/components/switch.js.map +1 -1
  143. package/components/text.d.ts +3 -1
  144. package/components/text.d.ts.map +1 -1
  145. package/components/text.js +1 -43
  146. package/components/text.js.map +1 -1
  147. package/components/time.d.ts +4 -2
  148. package/components/time.d.ts.map +1 -1
  149. package/components/time.js +1 -77
  150. package/components/time.js.map +1 -1
  151. package/components/tooltip.d.ts +4 -2
  152. package/components/tooltip.d.ts.map +1 -1
  153. package/components/tooltip.js +1 -80
  154. package/components/tooltip.js.map +1 -1
  155. package/components/typewriter.d.ts +6 -12
  156. package/components/typewriter.d.ts.map +1 -1
  157. package/components/typewriter.js +1 -129
  158. package/components/typewriter.js.map +1 -1
  159. package/core/global-style.d.ts +2 -2
  160. package/core/global-style.d.ts.map +1 -1
  161. package/core/global-style.js +1 -52
  162. package/core/global-style.js.map +1 -1
  163. package/core/super-anchor.d.ts +2 -1
  164. package/core/super-anchor.d.ts.map +1 -1
  165. package/core/super-anchor.js +1 -38
  166. package/core/super-anchor.js.map +1 -1
  167. package/core/super-input.d.ts +4 -3
  168. package/core/super-input.d.ts.map +1 -1
  169. package/core/super-input.js +1 -111
  170. package/core/super-input.js.map +1 -1
  171. package/core/super-openable.d.ts +1 -1
  172. package/core/super-openable.d.ts.map +1 -1
  173. package/core/super-openable.js +1 -37
  174. package/core/super-openable.js.map +1 -1
  175. package/custom-elements.json +1 -1
  176. package/details.d.ts +1 -0
  177. package/details.d.ts.map +1 -1
  178. package/details.js +1 -5
  179. package/details.js.map +1 -1
  180. package/dev/alert.d.ts +1 -0
  181. package/dev/alert.d.ts.map +1 -1
  182. package/dev/alert.js +1 -0
  183. package/dev/alert.js.map +1 -1
  184. package/dev/avatar.d.ts +1 -0
  185. package/dev/avatar.d.ts.map +1 -1
  186. package/dev/avatar.js +1 -0
  187. package/dev/avatar.js.map +1 -1
  188. package/dev/badge.d.ts +9 -0
  189. package/dev/badge.d.ts.map +1 -0
  190. package/dev/badge.js +5 -0
  191. package/dev/badge.js.map +1 -0
  192. package/dev/button.d.ts +1 -0
  193. package/dev/button.d.ts.map +1 -1
  194. package/dev/button.js +1 -0
  195. package/dev/button.js.map +1 -1
  196. package/dev/card.d.ts +1 -0
  197. package/dev/card.d.ts.map +1 -1
  198. package/dev/card.js +1 -0
  199. package/dev/card.js.map +1 -1
  200. package/dev/carousel.d.ts +1 -0
  201. package/dev/carousel.d.ts.map +1 -1
  202. package/dev/carousel.js +1 -0
  203. package/dev/carousel.js.map +1 -1
  204. package/dev/components/alert.d.ts +4 -1
  205. package/dev/components/alert.d.ts.map +1 -1
  206. package/dev/components/alert.js +87 -77
  207. package/dev/components/alert.js.map +1 -1
  208. package/dev/components/avatar.d.ts +7 -2
  209. package/dev/components/avatar.d.ts.map +1 -1
  210. package/dev/components/avatar.js +60 -32
  211. package/dev/components/avatar.js.map +1 -1
  212. package/dev/components/badge.d.ts +23 -0
  213. package/dev/components/badge.d.ts.map +1 -0
  214. package/dev/components/badge.js +114 -0
  215. package/dev/components/badge.js.map +1 -0
  216. package/dev/components/breath.d.ts +6 -4
  217. package/dev/components/breath.d.ts.map +1 -1
  218. package/dev/components/breath.js +40 -31
  219. package/dev/components/breath.js.map +1 -1
  220. package/dev/components/button.d.ts +8 -5
  221. package/dev/components/button.d.ts.map +1 -1
  222. package/dev/components/button.js +38 -21
  223. package/dev/components/button.js.map +1 -1
  224. package/dev/components/card.d.ts +3 -1
  225. package/dev/components/card.d.ts.map +1 -1
  226. package/dev/components/card.js +43 -41
  227. package/dev/components/card.js.map +1 -1
  228. package/dev/components/carousel.d.ts +5 -1
  229. package/dev/components/carousel.d.ts.map +1 -1
  230. package/dev/components/carousel.js +81 -55
  231. package/dev/components/carousel.js.map +1 -1
  232. package/dev/components/details.d.ts +4 -3
  233. package/dev/components/details.d.ts.map +1 -1
  234. package/dev/components/details.js +76 -70
  235. package/dev/components/details.js.map +1 -1
  236. package/dev/components/dialog.d.ts +4 -2
  237. package/dev/components/dialog.d.ts.map +1 -1
  238. package/dev/components/dialog.js +65 -60
  239. package/dev/components/dialog.js.map +1 -1
  240. package/dev/components/divider.d.ts +3 -3
  241. package/dev/components/divider.d.ts.map +1 -1
  242. package/dev/components/divider.js +27 -10
  243. package/dev/components/divider.js.map +1 -1
  244. package/dev/components/dragbox.d.ts +4 -2
  245. package/dev/components/dragbox.d.ts.map +1 -1
  246. package/dev/components/dragbox.js +22 -13
  247. package/dev/components/dragbox.js.map +1 -1
  248. package/dev/components/flex.d.ts +3 -1
  249. package/dev/components/flex.d.ts.map +1 -1
  250. package/dev/components/flex.js +22 -9
  251. package/dev/components/flex.js.map +1 -1
  252. package/dev/components/form.d.ts +3 -1
  253. package/dev/components/form.d.ts.map +1 -1
  254. package/dev/components/form.js +6 -7
  255. package/dev/components/form.js.map +1 -1
  256. package/dev/components/grid.d.ts +3 -1
  257. package/dev/components/grid.d.ts.map +1 -1
  258. package/dev/components/grid.js +22 -10
  259. package/dev/components/grid.js.map +1 -1
  260. package/dev/components/heading.d.ts +29 -0
  261. package/dev/components/heading.d.ts.map +1 -0
  262. package/dev/components/heading.js +125 -0
  263. package/dev/components/heading.js.map +1 -0
  264. package/dev/components/input.d.ts +5 -1
  265. package/dev/components/input.d.ts.map +1 -1
  266. package/dev/components/input.js +36 -28
  267. package/dev/components/input.js.map +1 -1
  268. package/dev/components/layout.d.ts +6 -4
  269. package/dev/components/layout.d.ts.map +1 -1
  270. package/dev/components/layout.js +53 -39
  271. package/dev/components/layout.js.map +1 -1
  272. package/dev/components/link.d.ts +5 -0
  273. package/dev/components/link.d.ts.map +1 -1
  274. package/dev/components/link.js +13 -3
  275. package/dev/components/link.js.map +1 -1
  276. package/dev/components/progress.d.ts +3 -1
  277. package/dev/components/progress.d.ts.map +1 -1
  278. package/dev/components/progress.js +20 -8
  279. package/dev/components/progress.js.map +1 -1
  280. package/dev/components/range.d.ts +10 -4
  281. package/dev/components/range.d.ts.map +1 -1
  282. package/dev/components/range.js +69 -64
  283. package/dev/components/range.js.map +1 -1
  284. package/dev/components/rotate.d.ts +3 -1
  285. package/dev/components/rotate.d.ts.map +1 -1
  286. package/dev/components/rotate.js +14 -9
  287. package/dev/components/rotate.js.map +1 -1
  288. package/dev/components/router.d.ts +27 -34
  289. package/dev/components/router.d.ts.map +1 -1
  290. package/dev/components/router.js +25 -38
  291. package/dev/components/router.js.map +1 -1
  292. package/dev/components/select.d.ts +7 -2
  293. package/dev/components/select.d.ts.map +1 -1
  294. package/dev/components/select.js +79 -58
  295. package/dev/components/select.js.map +1 -1
  296. package/dev/components/skeleton.d.ts +3 -1
  297. package/dev/components/skeleton.d.ts.map +1 -1
  298. package/dev/components/skeleton.js +67 -63
  299. package/dev/components/skeleton.js.map +1 -1
  300. package/dev/components/split.d.ts +8 -2
  301. package/dev/components/split.d.ts.map +1 -1
  302. package/dev/components/split.js +67 -51
  303. package/dev/components/split.js.map +1 -1
  304. package/dev/components/switch.d.ts +5 -2
  305. package/dev/components/switch.d.ts.map +1 -1
  306. package/dev/components/switch.js +91 -85
  307. package/dev/components/switch.js.map +1 -1
  308. package/dev/components/text.d.ts +3 -1
  309. package/dev/components/text.d.ts.map +1 -1
  310. package/dev/components/text.js +56 -53
  311. package/dev/components/text.js.map +1 -1
  312. package/dev/components/time.d.ts +4 -2
  313. package/dev/components/time.d.ts.map +1 -1
  314. package/dev/components/time.js +19 -6
  315. package/dev/components/time.js.map +1 -1
  316. package/dev/components/tooltip.d.ts +4 -2
  317. package/dev/components/tooltip.d.ts.map +1 -1
  318. package/dev/components/tooltip.js +45 -27
  319. package/dev/components/tooltip.js.map +1 -1
  320. package/dev/components/typewriter.d.ts +6 -12
  321. package/dev/components/typewriter.d.ts.map +1 -1
  322. package/dev/components/typewriter.js +48 -54
  323. package/dev/components/typewriter.js.map +1 -1
  324. package/dev/core/global-style.d.ts +2 -2
  325. package/dev/core/global-style.d.ts.map +1 -1
  326. package/dev/core/global-style.js +19 -14
  327. package/dev/core/global-style.js.map +1 -1
  328. package/dev/core/super-anchor.d.ts +2 -1
  329. package/dev/core/super-anchor.d.ts.map +1 -1
  330. package/dev/core/super-anchor.js +15 -12
  331. package/dev/core/super-anchor.js.map +1 -1
  332. package/dev/core/super-input.d.ts +4 -3
  333. package/dev/core/super-input.d.ts.map +1 -1
  334. package/dev/core/super-input.js +64 -42
  335. package/dev/core/super-input.js.map +1 -1
  336. package/dev/core/super-openable.d.ts +1 -1
  337. package/dev/core/super-openable.d.ts.map +1 -1
  338. package/dev/core/super-openable.js +1 -2
  339. package/dev/core/super-openable.js.map +1 -1
  340. package/dev/details.d.ts +1 -0
  341. package/dev/details.d.ts.map +1 -1
  342. package/dev/details.js +1 -0
  343. package/dev/details.js.map +1 -1
  344. package/dev/dialog.d.ts +1 -0
  345. package/dev/dialog.d.ts.map +1 -1
  346. package/dev/dialog.js +1 -0
  347. package/dev/dialog.js.map +1 -1
  348. package/dev/divider.d.ts +1 -0
  349. package/dev/divider.d.ts.map +1 -1
  350. package/dev/divider.js +1 -0
  351. package/dev/divider.js.map +1 -1
  352. package/dev/dragbox.d.ts +1 -0
  353. package/dev/dragbox.d.ts.map +1 -1
  354. package/dev/dragbox.js +1 -0
  355. package/dev/dragbox.js.map +1 -1
  356. package/dev/flex.d.ts +1 -0
  357. package/dev/flex.d.ts.map +1 -1
  358. package/dev/flex.js +1 -0
  359. package/dev/flex.js.map +1 -1
  360. package/dev/form.d.ts +1 -0
  361. package/dev/form.d.ts.map +1 -1
  362. package/dev/form.js +1 -0
  363. package/dev/form.js.map +1 -1
  364. package/dev/grid.d.ts +1 -0
  365. package/dev/grid.d.ts.map +1 -1
  366. package/dev/grid.js +1 -0
  367. package/dev/grid.js.map +1 -1
  368. package/dev/heading.d.ts +9 -0
  369. package/dev/heading.d.ts.map +1 -0
  370. package/dev/heading.js +5 -0
  371. package/dev/heading.js.map +1 -0
  372. package/dev/index.d.ts +2 -0
  373. package/dev/index.d.ts.map +1 -1
  374. package/dev/index.js +2 -0
  375. package/dev/index.js.map +1 -1
  376. package/dev/layout.d.ts.map +1 -1
  377. package/dev/progress.d.ts.map +1 -1
  378. package/dev/router.d.ts.map +1 -1
  379. package/dev/split.d.ts +1 -1
  380. package/dev/split.d.ts.map +1 -1
  381. package/dev/typewriter.d.ts +1 -0
  382. package/dev/typewriter.d.ts.map +1 -1
  383. package/dev/typewriter.js +1 -0
  384. package/dev/typewriter.js.map +1 -1
  385. package/dialog.d.ts +1 -0
  386. package/dialog.d.ts.map +1 -1
  387. package/dialog.js +1 -5
  388. package/dialog.js.map +1 -1
  389. package/divider.d.ts +1 -0
  390. package/divider.d.ts.map +1 -1
  391. package/divider.js +1 -5
  392. package/divider.js.map +1 -1
  393. package/dragbox.d.ts +1 -0
  394. package/dragbox.d.ts.map +1 -1
  395. package/dragbox.js +1 -5
  396. package/dragbox.js.map +1 -1
  397. package/flex.d.ts +1 -0
  398. package/flex.d.ts.map +1 -1
  399. package/flex.js +1 -5
  400. package/flex.js.map +1 -1
  401. package/form.d.ts +1 -0
  402. package/form.d.ts.map +1 -1
  403. package/form.js +1 -5
  404. package/form.js.map +1 -1
  405. package/grid.d.ts +1 -0
  406. package/grid.d.ts.map +1 -1
  407. package/grid.js +1 -5
  408. package/grid.js.map +1 -1
  409. package/heading.d.ts +9 -0
  410. package/heading.d.ts.map +1 -0
  411. package/heading.js +2 -0
  412. package/heading.js.map +1 -0
  413. package/index.d.ts +2 -0
  414. package/index.d.ts.map +1 -1
  415. package/index.js +1 -56
  416. package/index.js.map +1 -1
  417. package/input.js +1 -5
  418. package/input.js.map +1 -1
  419. package/layout.d.ts.map +1 -1
  420. package/layout.js +1 -5
  421. package/layout.js.map +1 -1
  422. package/link.js +1 -5
  423. package/link.js.map +1 -1
  424. package/package.json +13 -8
  425. package/progress.d.ts.map +1 -1
  426. package/progress.js +1 -5
  427. package/progress.js.map +1 -1
  428. package/range.js +1 -5
  429. package/range.js.map +1 -1
  430. package/rotate.js +1 -5
  431. package/rotate.js.map +1 -1
  432. package/router.d.ts.map +1 -1
  433. package/router.js +1 -5
  434. package/router.js.map +1 -1
  435. package/select.js +1 -5
  436. package/select.js.map +1 -1
  437. package/skeleton.js +1 -5
  438. package/skeleton.js.map +1 -1
  439. package/split.d.ts +1 -1
  440. package/split.d.ts.map +1 -1
  441. package/split.js +1 -5
  442. package/split.js.map +1 -1
  443. package/src/alert.ts +2 -0
  444. package/src/avatar.ts +2 -0
  445. package/src/badge.ts +13 -0
  446. package/src/button.ts +2 -0
  447. package/src/card.ts +2 -0
  448. package/src/carousel.ts +2 -0
  449. package/src/components/alert.ts +92 -86
  450. package/src/components/avatar.ts +65 -39
  451. package/src/components/badge.ts +110 -0
  452. package/src/components/breath.ts +47 -38
  453. package/src/components/button.ts +38 -36
  454. package/src/components/card.ts +45 -46
  455. package/src/components/carousel.ts +91 -66
  456. package/src/components/details.ts +79 -75
  457. package/src/components/dialog.ts +74 -73
  458. package/src/components/divider.ts +28 -13
  459. package/src/components/dragbox.ts +30 -25
  460. package/src/components/flex.ts +35 -22
  461. package/src/components/form.ts +12 -15
  462. package/src/components/grid.ts +35 -23
  463. package/src/components/heading.ts +123 -0
  464. package/src/components/input.ts +43 -37
  465. package/src/components/layout.ts +52 -44
  466. package/src/components/link.ts +13 -4
  467. package/src/components/progress.ts +22 -10
  468. package/src/components/range.ts +107 -108
  469. package/src/components/rotate.ts +24 -18
  470. package/src/components/router.ts +64 -67
  471. package/src/components/select.ts +94 -78
  472. package/src/components/skeleton.ts +70 -68
  473. package/src/components/split.ts +81 -67
  474. package/src/components/switch.ts +97 -93
  475. package/src/components/text.ts +55 -58
  476. package/src/components/time.ts +26 -13
  477. package/src/components/tooltip.ts +44 -32
  478. package/src/components/typewriter.ts +54 -61
  479. package/src/core/global-style.ts +34 -21
  480. package/src/core/super-anchor.ts +17 -14
  481. package/src/core/super-input.ts +76 -63
  482. package/src/core/super-openable.ts +8 -14
  483. package/src/details.ts +2 -0
  484. package/src/dialog.ts +2 -0
  485. package/src/divider.ts +2 -0
  486. package/src/dragbox.ts +2 -0
  487. package/src/flex.ts +2 -0
  488. package/src/form.ts +2 -0
  489. package/src/grid.ts +2 -0
  490. package/src/heading.ts +13 -0
  491. package/src/index.ts +2 -0
  492. package/src/layout.ts +1 -0
  493. package/src/progress.ts +1 -0
  494. package/src/router.ts +1 -0
  495. package/src/split.ts +1 -1
  496. package/src/typewriter.ts +2 -0
  497. package/switch.js +1 -5
  498. package/switch.js.map +1 -1
  499. package/text.js +1 -5
  500. package/text.js.map +1 -1
  501. package/time.js +1 -5
  502. package/time.js.map +1 -1
  503. package/tooltip.js +1 -5
  504. package/tooltip.js.map +1 -1
  505. package/typewriter.d.ts +1 -0
  506. package/typewriter.d.ts.map +1 -1
  507. package/typewriter.js +1 -5
  508. package/typewriter.js.map +1 -1
  509. package/vscode.html-custom-data.json +1 -1
  510. package/web-types.json +1 -1
@@ -1,12 +1,26 @@
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 { RouteTree } from "@godown/element/tools/route-tree.js";
5
- import { css, type PropertyValueMap, type TemplateResult } from "lit";
1
+ import { RouteTree, godown, htmlSlot, omit, styles } from "@godown/element";
2
+ import { type PropertyValueMap, type TemplateResult, css } from "lit";
6
3
  import { property, state } from "lit/decorators.js";
7
4
 
8
5
  import { GlobalStyle } from "../core/global-style.js";
9
6
 
7
+ interface RouteState {
8
+ pathname: string;
9
+ params: Record<string, string>;
10
+ path: string;
11
+ }
12
+
13
+ interface RouteResult extends RouteState {
14
+ component: unknown;
15
+ }
16
+
17
+ interface RouteItem {
18
+ [key: PropertyKey]: unknown;
19
+ path: string;
20
+ render?: (state?: RouteState) => unknown;
21
+ component?: unknown;
22
+ }
23
+
10
24
  const protoName = "router";
11
25
 
12
26
  /**
@@ -32,50 +46,43 @@ const protoName = "router";
32
46
  * @category navigation
33
47
  */
34
48
  @godown(protoName)
35
- @styles(css`:host{display:contents;}`)
36
- class Router<C = unknown> extends GlobalStyle {
37
- static routerInstances = new Set<Router>();
49
+ @styles(css`
50
+ :host {
51
+ display: contents;
52
+ }
53
+ `)
54
+ class Router extends GlobalStyle {
55
+ static routerInstances: Set<Router> = new Set<Router>();
38
56
 
39
57
  private __fieldRouteTree: RouteTree = new RouteTree();
40
58
  private __slottedRouteTree: RouteTree = new RouteTree();
41
- private __cacheRecord = new Map<string, ReturnType<typeof this.useRouter>>();
42
- private __routes: (
43
- & Record<string, any>
44
- & {
45
- path: string;
46
- component?: C;
47
- }
48
- )[];
59
+ private __cacheRecord = new Map<string, RouteResult>();
60
+ private __routes: RouteItem[];
49
61
 
50
62
  /**
51
63
  * Render result.
52
64
  */
53
65
  @state()
54
- component: C | TemplateResult = null;
66
+ component: unknown | TemplateResult = null;
55
67
 
56
68
  /**
57
69
  * Dynamic parameters record.
58
70
  */
59
- @state()
60
- params: Record<string, string> = {};
71
+ get params(): Record<string, string> {
72
+ return RouteTree.parseParams(this.pathname, this.path);
73
+ }
61
74
 
62
75
  /**
63
76
  * Value of matched path in routes.
64
77
  */
65
78
  @state()
66
- path: string;
79
+ path?: string;
67
80
 
68
81
  /**
69
82
  * Current pathname (equals to location.pathname).
70
83
  */
71
84
  @property()
72
- pathname = "";
73
-
74
- /**
75
- * Path prefix.
76
- */
77
- @property()
78
- baseURL = "";
85
+ pathname: string = location.pathname;
79
86
 
80
87
  /**
81
88
  * Rendered content when there is no match.
@@ -107,16 +114,15 @@ class Router<C = unknown> extends GlobalStyle {
107
114
  this.collectFieldRoutes(value);
108
115
  }
109
116
 
110
- get routes() {
117
+ get routes(): RouteItem[] {
111
118
  return this.__routes;
112
119
  }
113
120
 
114
- clear() {
121
+ clear(): void {
115
122
  this.__cacheRecord.clear();
116
123
  }
117
124
 
118
- protected render() {
119
- this.params = {};
125
+ protected render(): unknown {
120
126
  if (this.cache) {
121
127
  const cached = this.__cacheRecord.get(this.pathname);
122
128
  if (cached) {
@@ -134,13 +140,12 @@ class Router<C = unknown> extends GlobalStyle {
134
140
  default:
135
141
  this.component = this.fieldComponent() ?? this.slottedComponent();
136
142
  }
137
- return this.component ?? this.default ?? null;
143
+ return this.component ?? this.default;
138
144
  }
139
145
 
140
- connectedCallback() {
146
+ connectedCallback(): void {
141
147
  super.connectedCallback();
142
148
  Router.routerInstances.add(this);
143
- this.pathname ??= location.pathname;
144
149
 
145
150
  if (this.type !== "field") {
146
151
  const mutationObserver = new MutationObserver(this.collectSlottedRoutes);
@@ -153,12 +158,12 @@ class Router<C = unknown> extends GlobalStyle {
153
158
  }
154
159
  }
155
160
 
156
- disconnectedCallback() {
161
+ disconnectedCallback(): void {
157
162
  super.disconnectedCallback();
158
163
  Router.routerInstances.delete(this);
159
164
  }
160
165
 
161
- useRouter() {
166
+ useRouter(): RouteResult {
162
167
  return {
163
168
  pathname: this.pathname,
164
169
  params: this.params,
@@ -170,14 +175,9 @@ class Router<C = unknown> extends GlobalStyle {
170
175
  /**
171
176
  * Callback function when the route changes.
172
177
  */
173
- routeChangeCallback: (params: {
174
- pathname: string;
175
- params: Record<string, string>;
176
- path: string;
177
- component: C | TemplateResult;
178
- }, first: boolean) => void = null;
179
-
180
- protected updated(changedProperties: PropertyValueMap<this>) {
178
+ routeChangeCallback: (params: RouteResult, first: boolean) => void = null;
179
+
180
+ protected updated(changedProperties: PropertyValueMap<this>): void {
181
181
  const shouldDispatch = changedProperties.has("pathname") || changedProperties.has("path");
182
182
  if (shouldDispatch) {
183
183
  const ur = this.useRouter();
@@ -193,49 +193,53 @@ class Router<C = unknown> extends GlobalStyle {
193
193
  /**
194
194
  * Get component from {@linkcode routes} by query.
195
195
  */
196
- fieldComponent(query?: string) {
197
- query ||= this.useWhich(this.pathname);
196
+ fieldComponent(query?: string): unknown {
197
+ query ||= this.__fieldRouteTree.search(this.pathname)?.pattern;
198
198
  this.path = query;
199
199
 
200
200
  if (!query) {
201
201
  return null;
202
202
  }
203
203
 
204
- this.params = this.parseParams(this.path, this.pathname);
205
204
  const route = this.routes.find((r) => r.path === query);
206
205
  if (!route) {
207
206
  return null;
208
207
  }
208
+
209
+ if ("render" in route) {
210
+ return route.render?.(omit(this.useRouter(), "component")) || null;
211
+ }
212
+
209
213
  return route.component;
210
214
  }
211
215
 
212
216
  /**
213
217
  * Get component from slotted elements by query.
214
218
  */
215
- slottedComponent(usedRouteTemplate?: string) {
219
+ slottedComponent(query?: string): TemplateResult<1> {
216
220
  const slottedPaths = this._slottedNames;
217
- usedRouteTemplate ||= this.__slottedRouteTree.useWhich(this.pathname);
218
- this.path = usedRouteTemplate;
221
+ query ||= this.__slottedRouteTree.search(this.pathname)?.pattern;
222
+ this.path = query;
219
223
 
220
- if (!usedRouteTemplate) {
224
+ if (!query) {
221
225
  return null;
222
226
  }
223
227
 
224
- this.path = slottedPaths.find((s) => s === usedRouteTemplate);
228
+ this.path = slottedPaths.find((s) => s === query);
225
229
  if (!this.path) {
226
230
  return null;
227
231
  }
228
- this.params = this.parseParams(usedRouteTemplate, this.pathname);
232
+
229
233
  return htmlSlot(this.path);
230
234
  }
231
235
 
232
236
  /**
233
237
  * Reset the route tree, clear cache, collect routes from child elements.
234
238
  */
235
- collectSlottedRoutes() {
239
+ collectSlottedRoutes(): void {
236
240
  this.__slottedRouteTree = new RouteTree();
237
241
  this.clear();
238
- this._slottedNames.forEach(slotName => {
242
+ this._slottedNames.forEach((slotName) => {
239
243
  this.__slottedRouteTree.insert(slotName);
240
244
  });
241
245
  }
@@ -243,7 +247,7 @@ class Router<C = unknown> extends GlobalStyle {
243
247
  /**
244
248
  * Reset the route tree, clear cache, collect routes from value.
245
249
  */
246
- collectFieldRoutes(value: typeof this.routes) {
250
+ collectFieldRoutes(value: typeof this.routes): void {
247
251
  this.__fieldRouteTree = new RouteTree();
248
252
  this.clear();
249
253
  value.forEach(({ path }) => {
@@ -251,23 +255,16 @@ class Router<C = unknown> extends GlobalStyle {
251
255
  });
252
256
  }
253
257
 
254
- useWhich(path: string) {
255
- return this.__fieldRouteTree.useWhich(this.baseURL + path);
256
- }
257
-
258
- parseParams(routeTemplate: string, path: string) {
259
- return this.__fieldRouteTree.parseParams(path, routeTemplate);
260
- }
261
-
262
- static updateAll() {
258
+ static updateAll(): void {
263
259
  this.routerInstances.forEach((i) => {
264
260
  i.handlePopstate();
265
261
  });
266
262
  }
267
263
 
268
- handlePopstate = this.events.add(window, "popstate", () => {
264
+ handlePopstate: () => void = this.events.add(window, "popstate", () => {
269
265
  this.pathname = location.pathname;
270
- }) as () => void;
266
+ });
271
267
  }
272
268
 
273
269
  export default Router;
270
+ export { Router };
@@ -1,12 +1,7 @@
1
- import { HandlerEvent } from "@godown/element";
2
- import { godown } from "@godown/element/decorators/godown.js";
3
- import { part } from "@godown/element/decorators/part.js";
4
- import { styles } from "@godown/element/decorators/styles.js";
5
- import { htmlSlot } from "@godown/element/directives/html-slot.js";
1
+ import { type HandlerEvent, attr, godown, htmlSlot, part, styles } from "@godown/element";
6
2
  import svgCaretDown from "@godown/f7-icon/icons/chevron-down.js";
7
- import { css, html, nothing } from "lit";
3
+ import { type TemplateResult, css, html, nothing } from "lit";
8
4
  import { property, state } from "lit/decorators.js";
9
- import { ifDefined } from "lit/directives/if-defined.js";
10
5
 
11
6
  import Input from "./input.js";
12
7
 
@@ -44,30 +39,36 @@ const protoName = "select";
44
39
  *
45
40
  * Input will filter the element.
46
41
  *
42
+ * @fires input - Fires when the input value changes.
43
+ * @fires change - Fires when the input value changes.
44
+ * @fires select - Fires when select an option.
47
45
  * @slot - Options.
48
46
  * @category input
49
47
  */
50
48
  @godown(protoName)
51
- @styles(
52
- css`
53
- [part="input"] {
54
- text-overflow: ellipsis;
55
- }
49
+ @styles(css`
50
+ [part="input"] {
51
+ text-overflow: ellipsis;
52
+ }
56
53
 
57
- [part="content"] {
58
- position: absolute;
59
- width: 100%;
60
- }
54
+ [part="content"] {
55
+ position: absolute;
56
+ width: 100%;
57
+ visibility: hidden;
58
+ }
61
59
 
62
- [direction="bottom"] {
63
- top: 100%;
64
- }
60
+ [direction="bottom"] [part="content"] {
61
+ top: 100%;
62
+ }
65
63
 
66
- [direction="top"] {
67
- bottom: 100%;
68
- }
69
- `,
70
- )
64
+ [direction="top"] [part="content"] {
65
+ bottom: 100%;
66
+ }
67
+
68
+ [visible] [part="content"] {
69
+ visibility: visible;
70
+ }
71
+ `)
71
72
  class Select extends Input {
72
73
  // @ts-ignore
73
74
  value: string | string[];
@@ -85,10 +86,10 @@ class Select extends Input {
85
86
  direction: "top" | "bottom" | undefined;
86
87
 
87
88
  @property({ type: Boolean })
88
- multiple: boolean;
89
+ multiple = false;
89
90
 
90
91
  @property({ type: Boolean })
91
- visible: boolean;
92
+ visible = false;
92
93
 
93
94
  @state()
94
95
  protected autoDirection: "top" | "bottom" = "bottom";
@@ -96,37 +97,57 @@ class Select extends Input {
96
97
  protected lastChecked: HTMLElement;
97
98
  protected defaultText: string;
98
99
  protected defaultChecked: HTMLElement[];
99
- private _store: { value: string; text: string; }[] = [];
100
+ private _store: { value: string; text: string }[] = [];
100
101
 
101
- protected render() {
102
- return html`<div part="root" class="input-field">
103
- ${[
104
- this._renderPrefix(),
105
- html`<input
106
- part="input"
107
- dir="${ifDefined(this.dir)}"
108
- id="${this.makeId}"
109
- .value="${this.text}"
110
- type="${this.type}"
111
- placeholder="${this.placeholder || nothing}"
112
- ?autofocus="${this.autofocus}"
113
- autocapitalize="${this.autocapitalize || nothing}"
114
- autocomplete="${this.autocomplete || nothing}"
115
- ?disabled="${this.disabled}"
116
- @focus="${this._handleFocus}"
117
- @input="${this._handleInput}"
118
- >`,
119
- html`<label for="${this.makeId}" part="suffix">
120
- <i part="space"></i><i part="icon">${svgCaretDown()}</i><i part="space"></i>
121
- </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
- ]}
126
- </div>`;
102
+ protected render(): TemplateResult<1> {
103
+ return html`
104
+ <div
105
+ part="root"
106
+ ${attr({
107
+ ...this.observedRecord,
108
+ direction: this.direction || this.autoDirection,
109
+ })}
110
+ class="input-field"
111
+ >
112
+ ${[
113
+ this._renderPrefix(),
114
+ html`
115
+ <input
116
+ part="input"
117
+ type="${this.type}"
118
+ .value="${this.text}"
119
+ ?autofocus="${this.autofocus}"
120
+ ?disabled="${this.disabled}"
121
+ autocapitalize="${this.autocapitalize || nothing}"
122
+ autocomplete="${this.autocomplete || nothing}"
123
+ placeholder="${this.placeholder || nothing}"
124
+ id="${this.makeId}"
125
+ @focus="${this._handleFocus}"
126
+ @input="${this._handleInput}"
127
+ />
128
+ `,
129
+ html`
130
+ <label
131
+ for="${this.makeId}"
132
+ part="suffix"
133
+ >
134
+ <i part="icon">${svgCaretDown()}</i>
135
+ </label>
136
+ `,
137
+ html`
138
+ <label
139
+ for="${this.makeId}"
140
+ part="content"
141
+ >
142
+ ${htmlSlot()}
143
+ </label>
144
+ `,
145
+ ]}
146
+ </div>
147
+ `;
127
148
  }
128
149
 
129
- protected _handleFocus() {
150
+ protected _handleFocus(): void {
130
151
  if (!this.direction) {
131
152
  const { top, bottom } = this.getBoundingClientRect();
132
153
  if (window.innerHeight - bottom < this._content.clientHeight && top > this._content.clientHeight) {
@@ -138,7 +159,7 @@ class Select extends Input {
138
159
  this.visible = true;
139
160
  }
140
161
 
141
- protected firstUpdated() {
162
+ protected firstUpdated(): void {
142
163
  this.events.add(this._content, "click", (e: HandlerEvent) => {
143
164
  e.preventDefault();
144
165
  e.stopPropagation();
@@ -164,14 +185,10 @@ class Select extends Input {
164
185
  });
165
186
  }
166
187
 
167
- protected _connectedInit() {
188
+ protected _connectedInit(): void {
168
189
  if (!this.value) {
169
190
  const checked = [...this.querySelectorAll<HTMLElement>("[checked]")];
170
- const list = this.multiple
171
- ? checked
172
- : checked.length
173
- ? [this.lastChecked = checked[0]]
174
- : [];
191
+ const list = this.multiple ? checked : checked.length ? [(this.lastChecked = checked[0])] : [];
175
192
  list.forEach((element: HTMLElement) => {
176
193
  const operation = this.select(this.optionValue(element), element.textContent);
177
194
  updateChecked(element, operation);
@@ -189,23 +206,23 @@ class Select extends Input {
189
206
  reset(): void {
190
207
  this.value = this.default;
191
208
  this.text = this.defaultText;
192
- this.querySelectorAll<HTMLElement>("[checked]").forEach(element => updateChecked(element, 0));
193
- this.defaultChecked.forEach(element => updateChecked(element, 1));
209
+ this.querySelectorAll<HTMLElement>("[checked]").forEach((element) => updateChecked(element, 0));
210
+ this.defaultChecked.forEach((element) => updateChecked(element, 1));
194
211
  }
195
212
 
196
- select(value: string, text?: string) {
213
+ select(value: string, text?: string): 0 | 1 {
197
214
  text ||= value;
198
215
  let operation: 0 | 1 = 0;
199
216
  if (this.multiple) {
200
- const i = this._store.findIndex(s => s.value === value);
217
+ const i = this._store.findIndex((s) => s.value === value);
201
218
  if (i > -1) {
202
219
  this._store.splice(i, 1);
203
220
  } else {
204
221
  this._store.push({ value, text });
205
222
  operation = 1;
206
223
  }
207
- this.value = this._store.map(s => s.value);
208
- this.text = this._store.map(s => s.text).join(", ");
224
+ this.value = this._store.map((s) => s.value);
225
+ this.text = this._store.map((s) => s.text).join(", ");
209
226
  } else {
210
227
  if (this.value === value) {
211
228
  this.value = "";
@@ -216,45 +233,43 @@ class Select extends Input {
216
233
  operation = 1;
217
234
  }
218
235
  }
219
- this.dispatchEvent(new CustomEvent("change", { detail: this.namevalue() }));
236
+ this.dispatchEvent(new CustomEvent("select", { detail: this.value, composed: true }));
220
237
  this.filter();
221
238
  return operation;
222
239
  }
223
240
 
224
- filter(query?: string) {
241
+ filter(query?: string): void {
225
242
  query = query?.trim();
226
243
  [...this.children].forEach((element: HTMLElement) => {
227
244
  this.filterCallback(
228
245
  element,
229
- !query
230
- || contain(this.optionValue(element), query)
231
- || contain(element.textContent, query),
246
+ !query || contain(this.optionValue(element), query) || contain(element.textContent, query),
232
247
  query,
233
248
  );
234
249
  });
235
250
  }
236
251
 
237
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
238
- filterCallback(element: HTMLElement, match: boolean, query: string) {
252
+ filterCallback(element: HTMLElement, match: boolean, query: string): void {
239
253
  element.style.display = match ? "" : "none";
240
254
  }
241
255
 
242
- protected _handleInput(e: HandlerEvent<HTMLInputElement>) {
256
+ protected _handleInput(e: HandlerEvent<HTMLInputElement>): void {
243
257
  e.stopPropagation();
244
258
  if (this.compositing) {
245
259
  return;
246
260
  }
247
261
  const s = this._input.value;
248
262
  this.filter(this.multiple ? betweenAt(this._input.selectionStart, s, ",") : s);
249
- this.dispatchEvent(new CustomEvent("input", { detail: this.namevalue() }));
263
+ this.dispatchEvent(new CustomEvent("input", { detail: this.value, composed: true, bubbles: true }));
264
+ this.dispatchEvent(new CustomEvent("change", { detail: this.value, composed: true }));
250
265
  }
251
266
 
252
- focus(options?: FocusOptions) {
267
+ focus(options?: FocusOptions): void {
253
268
  this._input.focus(options);
254
269
  this.visible = true;
255
270
  }
256
271
 
257
- blur() {
272
+ blur(): void {
258
273
  this._input.blur();
259
274
  this.visible = false;
260
275
  super.blur();
@@ -266,3 +281,4 @@ class Select extends Input {
266
281
  }
267
282
 
268
283
  export default Select;
284
+ export { Select };