godown 3.13.2 → 3.13.3

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 (768) hide show
  1. package/build/alert.d.ts.map +1 -0
  2. package/build/alert.js +2 -0
  3. package/build/avatar.d.ts.map +1 -0
  4. package/build/avatar.js +2 -0
  5. package/build/badge.d.ts.map +1 -0
  6. package/build/badge.js +2 -0
  7. package/build/breath.d.ts.map +1 -0
  8. package/build/breath.js +2 -0
  9. package/build/button.d.ts.map +1 -0
  10. package/build/button.js +2 -0
  11. package/build/card.d.ts.map +1 -0
  12. package/build/card.js +2 -0
  13. package/build/carousel.d.ts.map +1 -0
  14. package/build/carousel.js +2 -0
  15. package/build/chip.d.ts.map +1 -0
  16. package/build/chip.js +2 -0
  17. package/build/details.d.ts.map +1 -0
  18. package/build/details.js +2 -0
  19. package/build/dialog.d.ts.map +1 -0
  20. package/build/dialog.js +2 -0
  21. package/build/divider.d.ts.map +1 -0
  22. package/build/divider.js +2 -0
  23. package/build/dragbox.d.ts.map +1 -0
  24. package/build/dragbox.js +2 -0
  25. package/build/flex.d.ts.map +1 -0
  26. package/build/flex.js +2 -0
  27. package/build/form.d.ts.map +1 -0
  28. package/build/form.js +2 -0
  29. package/build/godown.iife.js +16 -15
  30. package/build/godown.iife.js.map +1 -1
  31. package/build/godown.umd.js +16 -15
  32. package/build/godown.umd.js.map +1 -1
  33. package/build/grid.d.ts.map +1 -0
  34. package/build/grid.js +2 -0
  35. package/build/heading.d.ts.map +1 -0
  36. package/build/heading.js +2 -0
  37. package/build/index.d.ts.map +1 -0
  38. package/{index.js → build/index.js} +1 -1
  39. package/build/input.d.ts.map +1 -0
  40. package/build/input.js +2 -0
  41. package/build/internal/global-style.d.ts +23 -0
  42. package/build/internal/global-style.d.ts.map +1 -0
  43. package/build/internal/global-style.js +2 -0
  44. package/build/internal/global-style.js.map +1 -0
  45. package/build/internal/icons/caret-down.d.ts.map +1 -0
  46. package/build/internal/icons/caret-down.js.map +1 -0
  47. package/build/internal/icons/caret-left.d.ts.map +1 -0
  48. package/build/internal/icons/caret-left.js.map +1 -0
  49. package/build/internal/icons/caret-right.d.ts.map +1 -0
  50. package/build/internal/icons/caret-right.js.map +1 -0
  51. package/build/internal/icons/eye-slash.d.ts.map +1 -0
  52. package/build/internal/icons/eye-slash.js.map +1 -0
  53. package/build/internal/popover.d.ts.map +1 -0
  54. package/build/internal/popover.js +2 -0
  55. package/build/internal/popover.js.map +1 -0
  56. package/build/internal/reset-style.d.ts.map +1 -0
  57. package/build/internal/reset-style.js.map +1 -0
  58. package/build/internal/ring.d.ts.map +1 -0
  59. package/build/internal/ring.js +2 -0
  60. package/build/internal/ring.js.map +1 -0
  61. package/build/internal/super-input.d.ts.map +1 -0
  62. package/{internal → build/internal}/super-input.js +2 -2
  63. package/build/internal/super-input.js.map +1 -0
  64. package/build/internal/utils.d.ts.map +1 -0
  65. package/build/internal/utils.js +2 -0
  66. package/build/internal/utils.js.map +1 -0
  67. package/build/layout.d.ts.map +1 -0
  68. package/build/layout.js +2 -0
  69. package/build/link.d.ts.map +1 -0
  70. package/build/link.js +2 -0
  71. package/build/popover.d.ts.map +1 -0
  72. package/build/popover.js +2 -0
  73. package/build/progress.d.ts.map +1 -0
  74. package/build/progress.js +2 -0
  75. package/build/range.d.ts.map +1 -0
  76. package/build/range.js +2 -0
  77. package/build/rotate.d.ts.map +1 -0
  78. package/build/rotate.js +2 -0
  79. package/build/router.d.ts.map +1 -0
  80. package/build/router.js +2 -0
  81. package/build/select.d.ts.map +1 -0
  82. package/build/select.js +2 -0
  83. package/build/skeleton.d.ts.map +1 -0
  84. package/build/skeleton.js +2 -0
  85. package/build/split.d.ts.map +1 -0
  86. package/build/split.js +2 -0
  87. package/build/switch.d.ts.map +1 -0
  88. package/build/switch.js +2 -0
  89. package/build/tabs.d.ts.map +1 -0
  90. package/build/tabs.js +2 -0
  91. package/build/text.d.ts.map +1 -0
  92. package/build/text.js +2 -0
  93. package/build/time.d.ts.map +1 -0
  94. package/build/time.js +2 -0
  95. package/build/tooltip.d.ts.map +1 -0
  96. package/build/tooltip.js +2 -0
  97. package/build/typewriter.d.ts.map +1 -0
  98. package/build/typewriter.js +2 -0
  99. package/build/web-components/alert/component.d.ts.map +1 -0
  100. package/build/web-components/alert/component.js +2 -0
  101. package/build/web-components/alert/component.js.map +1 -0
  102. package/build/web-components/alert/definition.d.ts.map +1 -0
  103. package/build/web-components/alert/definition.js +2 -0
  104. package/build/web-components/alert/definition.js.map +1 -0
  105. package/build/web-components/avatar/component.d.ts.map +1 -0
  106. package/build/web-components/avatar/component.js +2 -0
  107. package/build/web-components/avatar/component.js.map +1 -0
  108. package/build/web-components/avatar/definition.d.ts.map +1 -0
  109. package/build/web-components/avatar/definition.js +2 -0
  110. package/build/web-components/avatar/definition.js.map +1 -0
  111. package/build/web-components/badge/component.d.ts.map +1 -0
  112. package/build/web-components/badge/component.js +3 -0
  113. package/build/web-components/badge/component.js.map +1 -0
  114. package/build/web-components/badge/definition.d.ts.map +1 -0
  115. package/build/web-components/badge/definition.js +2 -0
  116. package/build/web-components/badge/definition.js.map +1 -0
  117. package/{web-components → build/web-components}/breath/component.d.ts +1 -0
  118. package/build/web-components/breath/component.d.ts.map +1 -0
  119. package/build/web-components/breath/component.js +2 -0
  120. package/build/web-components/breath/component.js.map +1 -0
  121. package/build/web-components/breath/definition.d.ts.map +1 -0
  122. package/build/web-components/breath/definition.js +2 -0
  123. package/build/web-components/breath/definition.js.map +1 -0
  124. package/build/web-components/button/component.d.ts.map +1 -0
  125. package/build/web-components/button/component.js +2 -0
  126. package/build/web-components/button/component.js.map +1 -0
  127. package/build/web-components/button/definition.d.ts.map +1 -0
  128. package/build/web-components/button/definition.js +2 -0
  129. package/build/web-components/button/definition.js.map +1 -0
  130. package/build/web-components/card/component.d.ts.map +1 -0
  131. package/build/web-components/card/component.js +2 -0
  132. package/build/web-components/card/component.js.map +1 -0
  133. package/build/web-components/card/definition.d.ts.map +1 -0
  134. package/build/web-components/card/definition.js +2 -0
  135. package/build/web-components/card/definition.js.map +1 -0
  136. package/build/web-components/carousel/component.d.ts.map +1 -0
  137. package/build/web-components/carousel/component.js +3 -0
  138. package/build/web-components/carousel/component.js.map +1 -0
  139. package/build/web-components/carousel/definition.d.ts.map +1 -0
  140. package/build/web-components/carousel/definition.js +2 -0
  141. package/build/web-components/carousel/definition.js.map +1 -0
  142. package/build/web-components/chip/component.d.ts.map +1 -0
  143. package/build/web-components/chip/component.js +2 -0
  144. package/build/web-components/chip/component.js.map +1 -0
  145. package/build/web-components/chip/definition.d.ts.map +1 -0
  146. package/build/web-components/chip/definition.js +2 -0
  147. package/build/web-components/chip/definition.js.map +1 -0
  148. package/build/web-components/details/component.d.ts.map +1 -0
  149. package/build/web-components/details/component.js +2 -0
  150. package/build/web-components/details/component.js.map +1 -0
  151. package/build/web-components/details/definition.d.ts.map +1 -0
  152. package/build/web-components/details/definition.js +2 -0
  153. package/build/web-components/details/definition.js.map +1 -0
  154. package/build/web-components/dialog/component.d.ts.map +1 -0
  155. package/build/web-components/dialog/component.js +2 -0
  156. package/build/web-components/dialog/component.js.map +1 -0
  157. package/build/web-components/dialog/definition.d.ts.map +1 -0
  158. package/build/web-components/dialog/definition.js +2 -0
  159. package/build/web-components/dialog/definition.js.map +1 -0
  160. package/build/web-components/divider/component.d.ts.map +1 -0
  161. package/build/web-components/divider/component.js +2 -0
  162. package/build/web-components/divider/component.js.map +1 -0
  163. package/build/web-components/divider/definition.d.ts.map +1 -0
  164. package/build/web-components/divider/definition.js +2 -0
  165. package/build/web-components/divider/definition.js.map +1 -0
  166. package/build/web-components/dragbox/component.d.ts.map +1 -0
  167. package/build/web-components/dragbox/component.js +3 -0
  168. package/build/web-components/dragbox/component.js.map +1 -0
  169. package/build/web-components/dragbox/definition.d.ts.map +1 -0
  170. package/build/web-components/dragbox/definition.js +2 -0
  171. package/build/web-components/dragbox/definition.js.map +1 -0
  172. package/{web-components → build/web-components}/flex/component.d.ts +1 -0
  173. package/build/web-components/flex/component.d.ts.map +1 -0
  174. package/build/web-components/flex/component.js +3 -0
  175. package/build/web-components/flex/component.js.map +1 -0
  176. package/build/web-components/flex/definition.d.ts.map +1 -0
  177. package/build/web-components/flex/definition.js +2 -0
  178. package/build/web-components/flex/definition.js.map +1 -0
  179. package/build/web-components/form/component.d.ts.map +1 -0
  180. package/build/web-components/form/component.js +3 -0
  181. package/build/web-components/form/component.js.map +1 -0
  182. package/build/web-components/form/definition.d.ts.map +1 -0
  183. package/build/web-components/form/definition.js +2 -0
  184. package/build/web-components/form/definition.js.map +1 -0
  185. package/{web-components → build/web-components}/grid/component.d.ts +1 -0
  186. package/build/web-components/grid/component.d.ts.map +1 -0
  187. package/build/web-components/grid/component.js +3 -0
  188. package/build/web-components/grid/component.js.map +1 -0
  189. package/build/web-components/grid/definition.d.ts.map +1 -0
  190. package/build/web-components/grid/definition.js +2 -0
  191. package/build/web-components/grid/definition.js.map +1 -0
  192. package/build/web-components/heading/component.d.ts.map +1 -0
  193. package/build/web-components/heading/component.js +3 -0
  194. package/build/web-components/heading/component.js.map +1 -0
  195. package/build/web-components/heading/definition.d.ts.map +1 -0
  196. package/build/web-components/heading/definition.js +2 -0
  197. package/build/web-components/heading/definition.js.map +1 -0
  198. package/build/web-components/input/component.d.ts.map +1 -0
  199. package/build/web-components/input/component.js +2 -0
  200. package/build/web-components/input/component.js.map +1 -0
  201. package/build/web-components/input/definition.d.ts.map +1 -0
  202. package/build/web-components/input/definition.js +2 -0
  203. package/build/web-components/input/definition.js.map +1 -0
  204. package/build/web-components/layout/component.d.ts.map +1 -0
  205. package/build/web-components/layout/component.js +3 -0
  206. package/build/web-components/layout/component.js.map +1 -0
  207. package/build/web-components/layout/definition.d.ts.map +1 -0
  208. package/build/web-components/layout/definition.js +2 -0
  209. package/build/web-components/layout/definition.js.map +1 -0
  210. package/build/web-components/link/component.d.ts.map +1 -0
  211. package/build/web-components/link/component.js +3 -0
  212. package/build/web-components/link/component.js.map +1 -0
  213. package/build/web-components/link/definition.d.ts.map +1 -0
  214. package/build/web-components/link/definition.js +2 -0
  215. package/build/web-components/link/definition.js.map +1 -0
  216. package/build/web-components/popover/component.d.ts.map +1 -0
  217. package/build/web-components/popover/component.js +3 -0
  218. package/build/web-components/popover/component.js.map +1 -0
  219. package/build/web-components/popover/definition.d.ts.map +1 -0
  220. package/build/web-components/popover/definition.js +2 -0
  221. package/build/web-components/popover/definition.js.map +1 -0
  222. package/build/web-components/progress/component.d.ts.map +1 -0
  223. package/build/web-components/progress/component.js +2 -0
  224. package/build/web-components/progress/component.js.map +1 -0
  225. package/build/web-components/progress/definition.d.ts.map +1 -0
  226. package/build/web-components/progress/definition.js +2 -0
  227. package/build/web-components/progress/definition.js.map +1 -0
  228. package/{web-components → build/web-components}/range/component.d.ts +1 -1
  229. package/build/web-components/range/component.d.ts.map +1 -0
  230. package/build/web-components/range/component.js +2 -0
  231. package/build/web-components/range/component.js.map +1 -0
  232. package/build/web-components/range/definition.d.ts.map +1 -0
  233. package/build/web-components/range/definition.js +2 -0
  234. package/build/web-components/range/definition.js.map +1 -0
  235. package/build/web-components/rotate/component.d.ts.map +1 -0
  236. package/build/web-components/rotate/component.js +2 -0
  237. package/build/web-components/rotate/component.js.map +1 -0
  238. package/build/web-components/rotate/definition.d.ts.map +1 -0
  239. package/build/web-components/rotate/definition.js +2 -0
  240. package/build/web-components/rotate/definition.js.map +1 -0
  241. package/{web-components → build/web-components}/router/component.d.ts +2 -2
  242. package/build/web-components/router/component.d.ts.map +1 -0
  243. package/build/web-components/router/component.js +3 -0
  244. package/build/web-components/router/component.js.map +1 -0
  245. package/build/web-components/router/definition.d.ts.map +1 -0
  246. package/build/web-components/router/definition.js +2 -0
  247. package/build/web-components/router/definition.js.map +1 -0
  248. package/build/web-components/select/component.d.ts.map +1 -0
  249. package/build/web-components/select/component.js +3 -0
  250. package/build/web-components/select/component.js.map +1 -0
  251. package/build/web-components/select/definition.d.ts.map +1 -0
  252. package/build/web-components/select/definition.js +2 -0
  253. package/build/web-components/select/definition.js.map +1 -0
  254. package/build/web-components/skeleton/component.d.ts.map +1 -0
  255. package/build/web-components/skeleton/component.js +2 -0
  256. package/{web-components/skeleton/component.d.ts.map → build/web-components/skeleton/component.js.map} +1 -1
  257. package/build/web-components/skeleton/definition.d.ts.map +1 -0
  258. package/build/web-components/skeleton/definition.js +2 -0
  259. package/build/web-components/skeleton/definition.js.map +1 -0
  260. package/build/web-components/split/component.d.ts.map +1 -0
  261. package/build/web-components/split/component.js +2 -0
  262. package/build/web-components/split/component.js.map +1 -0
  263. package/build/web-components/split/definition.d.ts.map +1 -0
  264. package/build/web-components/split/definition.js +2 -0
  265. package/build/web-components/split/definition.js.map +1 -0
  266. package/build/web-components/switch/component.d.ts.map +1 -0
  267. package/build/web-components/switch/component.js +2 -0
  268. package/{web-components/switch/component.d.ts.map → build/web-components/switch/component.js.map} +1 -1
  269. package/build/web-components/switch/definition.d.ts.map +1 -0
  270. package/build/web-components/switch/definition.js +2 -0
  271. package/build/web-components/switch/definition.js.map +1 -0
  272. package/build/web-components/tabs/component.d.ts.map +1 -0
  273. package/build/web-components/tabs/component.js +2 -0
  274. package/build/web-components/tabs/component.js.map +1 -0
  275. package/build/web-components/tabs/definition.d.ts.map +1 -0
  276. package/build/web-components/tabs/definition.js +2 -0
  277. package/build/web-components/tabs/definition.js.map +1 -0
  278. package/build/web-components/text/component.d.ts.map +1 -0
  279. package/build/web-components/text/component.js +2 -0
  280. package/build/web-components/text/component.js.map +1 -0
  281. package/build/web-components/text/definition.d.ts.map +1 -0
  282. package/build/web-components/text/definition.js +2 -0
  283. package/build/web-components/text/definition.js.map +1 -0
  284. package/build/web-components/time/component.d.ts.map +1 -0
  285. package/build/web-components/time/component.js +2 -0
  286. package/build/web-components/time/component.js.map +1 -0
  287. package/build/web-components/time/definition.d.ts.map +1 -0
  288. package/build/web-components/time/definition.js +2 -0
  289. package/build/web-components/time/definition.js.map +1 -0
  290. package/build/web-components/tooltip/component.d.ts.map +1 -0
  291. package/build/web-components/tooltip/component.js +2 -0
  292. package/build/web-components/tooltip/component.js.map +1 -0
  293. package/build/web-components/tooltip/definition.d.ts.map +1 -0
  294. package/build/web-components/tooltip/definition.js +2 -0
  295. package/build/web-components/tooltip/definition.js.map +1 -0
  296. package/{web-components → build/web-components}/typewriter/component.d.ts +1 -1
  297. package/build/web-components/typewriter/component.d.ts.map +1 -0
  298. package/build/web-components/typewriter/component.js +2 -0
  299. package/build/web-components/typewriter/component.js.map +1 -0
  300. package/build/web-components/typewriter/definition.d.ts.map +1 -0
  301. package/build/web-components/typewriter/definition.js +2 -0
  302. package/build/web-components/typewriter/definition.js.map +1 -0
  303. package/custom-elements.json +1 -1
  304. package/package.json +25 -19
  305. package/src/internal/global-style.ts +50 -45
  306. package/src/internal/popover.ts +1 -1
  307. package/src/internal/ring.ts +2 -3
  308. package/src/internal/super-input.ts +4 -3
  309. package/src/internal/utils.ts +8 -7
  310. package/src/web-components/avatar/component.ts +2 -1
  311. package/src/web-components/breath/component.ts +8 -5
  312. package/src/web-components/button/component.ts +4 -4
  313. package/src/web-components/carousel/component.ts +3 -3
  314. package/src/web-components/dialog/component.ts +3 -3
  315. package/src/web-components/flex/component.ts +19 -15
  316. package/src/web-components/grid/component.ts +20 -15
  317. package/src/web-components/input/component.ts +3 -3
  318. package/src/web-components/popover/component.ts +6 -5
  319. package/src/web-components/progress/component.ts +2 -1
  320. package/src/web-components/range/component.ts +16 -22
  321. package/src/web-components/rotate/component.ts +3 -2
  322. package/src/web-components/router/component.ts +13 -9
  323. package/src/web-components/select/component.ts +3 -3
  324. package/src/web-components/split/component.ts +2 -1
  325. package/src/web-components/switch/component.ts +2 -1
  326. package/src/web-components/typewriter/component.ts +2 -1
  327. package/tsconfig.json +20 -11
  328. package/vscode.css-custom-data.json +6 -1
  329. package/vscode.html-custom-data.json +204 -1
  330. package/web-types.json +1265 -1
  331. package/alert.d.ts.map +0 -1
  332. package/alert.js +0 -2
  333. package/avatar.d.ts.map +0 -1
  334. package/avatar.js +0 -2
  335. package/badge.d.ts.map +0 -1
  336. package/badge.js +0 -2
  337. package/breath.d.ts.map +0 -1
  338. package/breath.js +0 -2
  339. package/build/godown+lit.iife.js +0 -17
  340. package/build/godown+lit.iife.js.map +0 -1
  341. package/build/godown+lit.js +0 -17
  342. package/build/godown+lit.js.map +0 -1
  343. package/build/godown+lit.umd.js +0 -17
  344. package/build/godown+lit.umd.js.map +0 -1
  345. package/build/godown.js +0 -16
  346. package/build/godown.js.map +0 -1
  347. package/button.d.ts.map +0 -1
  348. package/button.js +0 -2
  349. package/card.d.ts.map +0 -1
  350. package/card.js +0 -2
  351. package/carousel.d.ts.map +0 -1
  352. package/carousel.js +0 -2
  353. package/chip.d.ts.map +0 -1
  354. package/chip.js +0 -2
  355. package/details.d.ts.map +0 -1
  356. package/details.js +0 -2
  357. package/dialog.d.ts.map +0 -1
  358. package/dialog.js +0 -2
  359. package/divider.d.ts.map +0 -1
  360. package/divider.js +0 -2
  361. package/dragbox.d.ts.map +0 -1
  362. package/dragbox.js +0 -2
  363. package/flex.d.ts.map +0 -1
  364. package/flex.js +0 -2
  365. package/form.d.ts.map +0 -1
  366. package/form.js +0 -2
  367. package/grid.d.ts.map +0 -1
  368. package/grid.js +0 -2
  369. package/heading.d.ts.map +0 -1
  370. package/heading.js +0 -2
  371. package/index.d.ts.map +0 -1
  372. package/input.d.ts.map +0 -1
  373. package/input.js +0 -2
  374. package/internal/global-style.d.ts +0 -20
  375. package/internal/global-style.d.ts.map +0 -1
  376. package/internal/global-style.js +0 -2
  377. package/internal/global-style.js.map +0 -1
  378. package/internal/icons/caret-down.d.ts.map +0 -1
  379. package/internal/icons/caret-down.js.map +0 -1
  380. package/internal/icons/caret-left.d.ts.map +0 -1
  381. package/internal/icons/caret-left.js.map +0 -1
  382. package/internal/icons/caret-right.d.ts.map +0 -1
  383. package/internal/icons/caret-right.js.map +0 -1
  384. package/internal/icons/eye-slash.d.ts.map +0 -1
  385. package/internal/icons/eye-slash.js.map +0 -1
  386. package/internal/popover.d.ts.map +0 -1
  387. package/internal/popover.js +0 -2
  388. package/internal/popover.js.map +0 -1
  389. package/internal/reset-style.d.ts.map +0 -1
  390. package/internal/reset-style.js.map +0 -1
  391. package/internal/ring.d.ts.map +0 -1
  392. package/internal/ring.js +0 -2
  393. package/internal/ring.js.map +0 -1
  394. package/internal/super-input.d.ts.map +0 -1
  395. package/internal/super-input.js.map +0 -1
  396. package/internal/utils.d.ts.map +0 -1
  397. package/internal/utils.js +0 -2
  398. package/internal/utils.js.map +0 -1
  399. package/layout.d.ts.map +0 -1
  400. package/layout.js +0 -2
  401. package/link.d.ts.map +0 -1
  402. package/link.js +0 -2
  403. package/popover.d.ts.map +0 -1
  404. package/popover.js +0 -2
  405. package/progress.d.ts.map +0 -1
  406. package/progress.js +0 -2
  407. package/range.d.ts.map +0 -1
  408. package/range.js +0 -2
  409. package/rotate.d.ts.map +0 -1
  410. package/rotate.js +0 -2
  411. package/router.d.ts.map +0 -1
  412. package/router.js +0 -2
  413. package/select.d.ts.map +0 -1
  414. package/select.js +0 -2
  415. package/skeleton.d.ts.map +0 -1
  416. package/skeleton.js +0 -2
  417. package/split.d.ts.map +0 -1
  418. package/split.js +0 -2
  419. package/switch.d.ts.map +0 -1
  420. package/switch.js +0 -2
  421. package/tabs.d.ts.map +0 -1
  422. package/tabs.js +0 -2
  423. package/text.d.ts.map +0 -1
  424. package/text.js +0 -2
  425. package/time.d.ts.map +0 -1
  426. package/time.js +0 -2
  427. package/tooltip.d.ts.map +0 -1
  428. package/tooltip.js +0 -2
  429. package/typewriter.d.ts.map +0 -1
  430. package/typewriter.js +0 -2
  431. package/web-components/alert/component.d.ts.map +0 -1
  432. package/web-components/alert/component.js +0 -2
  433. package/web-components/alert/component.js.map +0 -1
  434. package/web-components/alert/definition.d.ts.map +0 -1
  435. package/web-components/alert/definition.js +0 -2
  436. package/web-components/alert/definition.js.map +0 -1
  437. package/web-components/avatar/component.d.ts.map +0 -1
  438. package/web-components/avatar/component.js +0 -2
  439. package/web-components/avatar/component.js.map +0 -1
  440. package/web-components/avatar/definition.d.ts.map +0 -1
  441. package/web-components/avatar/definition.js +0 -2
  442. package/web-components/avatar/definition.js.map +0 -1
  443. package/web-components/badge/component.d.ts.map +0 -1
  444. package/web-components/badge/component.js +0 -3
  445. package/web-components/badge/component.js.map +0 -1
  446. package/web-components/badge/definition.d.ts.map +0 -1
  447. package/web-components/badge/definition.js +0 -2
  448. package/web-components/badge/definition.js.map +0 -1
  449. package/web-components/breath/component.d.ts.map +0 -1
  450. package/web-components/breath/component.js +0 -2
  451. package/web-components/breath/component.js.map +0 -1
  452. package/web-components/breath/definition.d.ts.map +0 -1
  453. package/web-components/breath/definition.js +0 -2
  454. package/web-components/breath/definition.js.map +0 -1
  455. package/web-components/button/component.d.ts.map +0 -1
  456. package/web-components/button/component.js +0 -2
  457. package/web-components/button/component.js.map +0 -1
  458. package/web-components/button/definition.d.ts.map +0 -1
  459. package/web-components/button/definition.js +0 -2
  460. package/web-components/button/definition.js.map +0 -1
  461. package/web-components/card/component.d.ts.map +0 -1
  462. package/web-components/card/component.js +0 -2
  463. package/web-components/card/component.js.map +0 -1
  464. package/web-components/card/definition.d.ts.map +0 -1
  465. package/web-components/card/definition.js +0 -2
  466. package/web-components/card/definition.js.map +0 -1
  467. package/web-components/carousel/component.d.ts.map +0 -1
  468. package/web-components/carousel/component.js +0 -3
  469. package/web-components/carousel/component.js.map +0 -1
  470. package/web-components/carousel/definition.d.ts.map +0 -1
  471. package/web-components/carousel/definition.js +0 -2
  472. package/web-components/carousel/definition.js.map +0 -1
  473. package/web-components/chip/component.d.ts.map +0 -1
  474. package/web-components/chip/component.js +0 -2
  475. package/web-components/chip/component.js.map +0 -1
  476. package/web-components/chip/definition.d.ts.map +0 -1
  477. package/web-components/chip/definition.js +0 -2
  478. package/web-components/chip/definition.js.map +0 -1
  479. package/web-components/details/component.d.ts.map +0 -1
  480. package/web-components/details/component.js +0 -2
  481. package/web-components/details/component.js.map +0 -1
  482. package/web-components/details/definition.d.ts.map +0 -1
  483. package/web-components/details/definition.js +0 -2
  484. package/web-components/details/definition.js.map +0 -1
  485. package/web-components/dialog/component.d.ts.map +0 -1
  486. package/web-components/dialog/component.js +0 -2
  487. package/web-components/dialog/component.js.map +0 -1
  488. package/web-components/dialog/definition.d.ts.map +0 -1
  489. package/web-components/dialog/definition.js +0 -2
  490. package/web-components/dialog/definition.js.map +0 -1
  491. package/web-components/divider/component.d.ts.map +0 -1
  492. package/web-components/divider/component.js +0 -2
  493. package/web-components/divider/component.js.map +0 -1
  494. package/web-components/divider/definition.d.ts.map +0 -1
  495. package/web-components/divider/definition.js +0 -2
  496. package/web-components/divider/definition.js.map +0 -1
  497. package/web-components/dragbox/component.d.ts.map +0 -1
  498. package/web-components/dragbox/component.js +0 -3
  499. package/web-components/dragbox/component.js.map +0 -1
  500. package/web-components/dragbox/definition.d.ts.map +0 -1
  501. package/web-components/dragbox/definition.js +0 -2
  502. package/web-components/dragbox/definition.js.map +0 -1
  503. package/web-components/flex/component.d.ts.map +0 -1
  504. package/web-components/flex/component.js +0 -3
  505. package/web-components/flex/component.js.map +0 -1
  506. package/web-components/flex/definition.d.ts.map +0 -1
  507. package/web-components/flex/definition.js +0 -2
  508. package/web-components/flex/definition.js.map +0 -1
  509. package/web-components/form/component.d.ts.map +0 -1
  510. package/web-components/form/component.js +0 -3
  511. package/web-components/form/component.js.map +0 -1
  512. package/web-components/form/definition.d.ts.map +0 -1
  513. package/web-components/form/definition.js +0 -2
  514. package/web-components/form/definition.js.map +0 -1
  515. package/web-components/grid/component.d.ts.map +0 -1
  516. package/web-components/grid/component.js +0 -3
  517. package/web-components/grid/component.js.map +0 -1
  518. package/web-components/grid/definition.d.ts.map +0 -1
  519. package/web-components/grid/definition.js +0 -2
  520. package/web-components/grid/definition.js.map +0 -1
  521. package/web-components/heading/component.d.ts.map +0 -1
  522. package/web-components/heading/component.js +0 -3
  523. package/web-components/heading/component.js.map +0 -1
  524. package/web-components/heading/definition.d.ts.map +0 -1
  525. package/web-components/heading/definition.js +0 -2
  526. package/web-components/heading/definition.js.map +0 -1
  527. package/web-components/input/component.d.ts.map +0 -1
  528. package/web-components/input/component.js +0 -2
  529. package/web-components/input/component.js.map +0 -1
  530. package/web-components/input/definition.d.ts.map +0 -1
  531. package/web-components/input/definition.js +0 -2
  532. package/web-components/input/definition.js.map +0 -1
  533. package/web-components/layout/component.d.ts.map +0 -1
  534. package/web-components/layout/component.js +0 -3
  535. package/web-components/layout/component.js.map +0 -1
  536. package/web-components/layout/definition.d.ts.map +0 -1
  537. package/web-components/layout/definition.js +0 -2
  538. package/web-components/layout/definition.js.map +0 -1
  539. package/web-components/link/component.d.ts.map +0 -1
  540. package/web-components/link/component.js +0 -3
  541. package/web-components/link/component.js.map +0 -1
  542. package/web-components/link/definition.d.ts.map +0 -1
  543. package/web-components/link/definition.js +0 -2
  544. package/web-components/link/definition.js.map +0 -1
  545. package/web-components/popover/component.d.ts.map +0 -1
  546. package/web-components/popover/component.js +0 -3
  547. package/web-components/popover/component.js.map +0 -1
  548. package/web-components/popover/definition.d.ts.map +0 -1
  549. package/web-components/popover/definition.js +0 -2
  550. package/web-components/popover/definition.js.map +0 -1
  551. package/web-components/progress/component.d.ts.map +0 -1
  552. package/web-components/progress/component.js +0 -2
  553. package/web-components/progress/component.js.map +0 -1
  554. package/web-components/progress/definition.d.ts.map +0 -1
  555. package/web-components/progress/definition.js +0 -2
  556. package/web-components/progress/definition.js.map +0 -1
  557. package/web-components/range/component.d.ts.map +0 -1
  558. package/web-components/range/component.js +0 -2
  559. package/web-components/range/component.js.map +0 -1
  560. package/web-components/range/definition.d.ts.map +0 -1
  561. package/web-components/range/definition.js +0 -2
  562. package/web-components/range/definition.js.map +0 -1
  563. package/web-components/rotate/component.d.ts.map +0 -1
  564. package/web-components/rotate/component.js +0 -2
  565. package/web-components/rotate/component.js.map +0 -1
  566. package/web-components/rotate/definition.d.ts.map +0 -1
  567. package/web-components/rotate/definition.js +0 -2
  568. package/web-components/rotate/definition.js.map +0 -1
  569. package/web-components/router/component.d.ts.map +0 -1
  570. package/web-components/router/component.js +0 -3
  571. package/web-components/router/component.js.map +0 -1
  572. package/web-components/router/definition.d.ts.map +0 -1
  573. package/web-components/router/definition.js +0 -2
  574. package/web-components/router/definition.js.map +0 -1
  575. package/web-components/select/component.d.ts.map +0 -1
  576. package/web-components/select/component.js +0 -3
  577. package/web-components/select/component.js.map +0 -1
  578. package/web-components/select/definition.d.ts.map +0 -1
  579. package/web-components/select/definition.js +0 -2
  580. package/web-components/select/definition.js.map +0 -1
  581. package/web-components/skeleton/component.js +0 -2
  582. package/web-components/skeleton/component.js.map +0 -1
  583. package/web-components/skeleton/definition.d.ts.map +0 -1
  584. package/web-components/skeleton/definition.js +0 -2
  585. package/web-components/skeleton/definition.js.map +0 -1
  586. package/web-components/split/component.d.ts.map +0 -1
  587. package/web-components/split/component.js +0 -2
  588. package/web-components/split/component.js.map +0 -1
  589. package/web-components/split/definition.d.ts.map +0 -1
  590. package/web-components/split/definition.js +0 -2
  591. package/web-components/split/definition.js.map +0 -1
  592. package/web-components/switch/component.js +0 -2
  593. package/web-components/switch/component.js.map +0 -1
  594. package/web-components/switch/definition.d.ts.map +0 -1
  595. package/web-components/switch/definition.js +0 -2
  596. package/web-components/switch/definition.js.map +0 -1
  597. package/web-components/tabs/component.d.ts.map +0 -1
  598. package/web-components/tabs/component.js +0 -2
  599. package/web-components/tabs/component.js.map +0 -1
  600. package/web-components/tabs/definition.d.ts.map +0 -1
  601. package/web-components/tabs/definition.js +0 -2
  602. package/web-components/tabs/definition.js.map +0 -1
  603. package/web-components/text/component.d.ts.map +0 -1
  604. package/web-components/text/component.js +0 -2
  605. package/web-components/text/component.js.map +0 -1
  606. package/web-components/text/definition.d.ts.map +0 -1
  607. package/web-components/text/definition.js +0 -2
  608. package/web-components/text/definition.js.map +0 -1
  609. package/web-components/time/component.d.ts.map +0 -1
  610. package/web-components/time/component.js +0 -2
  611. package/web-components/time/component.js.map +0 -1
  612. package/web-components/time/definition.d.ts.map +0 -1
  613. package/web-components/time/definition.js +0 -2
  614. package/web-components/time/definition.js.map +0 -1
  615. package/web-components/tooltip/component.d.ts.map +0 -1
  616. package/web-components/tooltip/component.js +0 -2
  617. package/web-components/tooltip/component.js.map +0 -1
  618. package/web-components/tooltip/definition.d.ts.map +0 -1
  619. package/web-components/tooltip/definition.js +0 -2
  620. package/web-components/tooltip/definition.js.map +0 -1
  621. package/web-components/typewriter/component.d.ts.map +0 -1
  622. package/web-components/typewriter/component.js +0 -2
  623. package/web-components/typewriter/component.js.map +0 -1
  624. package/web-components/typewriter/definition.d.ts.map +0 -1
  625. package/web-components/typewriter/definition.js +0 -2
  626. package/web-components/typewriter/definition.js.map +0 -1
  627. /package/{alert.d.ts → build/alert.d.ts} +0 -0
  628. /package/{alert.js.map → build/alert.js.map} +0 -0
  629. /package/{avatar.d.ts → build/avatar.d.ts} +0 -0
  630. /package/{avatar.js.map → build/avatar.js.map} +0 -0
  631. /package/{badge.d.ts → build/badge.d.ts} +0 -0
  632. /package/{badge.js.map → build/badge.js.map} +0 -0
  633. /package/{breath.d.ts → build/breath.d.ts} +0 -0
  634. /package/{breath.js.map → build/breath.js.map} +0 -0
  635. /package/{button.d.ts → build/button.d.ts} +0 -0
  636. /package/{button.js.map → build/button.js.map} +0 -0
  637. /package/{card.d.ts → build/card.d.ts} +0 -0
  638. /package/{card.js.map → build/card.js.map} +0 -0
  639. /package/{carousel.d.ts → build/carousel.d.ts} +0 -0
  640. /package/{carousel.js.map → build/carousel.js.map} +0 -0
  641. /package/{chip.d.ts → build/chip.d.ts} +0 -0
  642. /package/{chip.js.map → build/chip.js.map} +0 -0
  643. /package/{details.d.ts → build/details.d.ts} +0 -0
  644. /package/{details.js.map → build/details.js.map} +0 -0
  645. /package/{dialog.d.ts → build/dialog.d.ts} +0 -0
  646. /package/{dialog.js.map → build/dialog.js.map} +0 -0
  647. /package/{divider.d.ts → build/divider.d.ts} +0 -0
  648. /package/{divider.js.map → build/divider.js.map} +0 -0
  649. /package/{dragbox.d.ts → build/dragbox.d.ts} +0 -0
  650. /package/{dragbox.js.map → build/dragbox.js.map} +0 -0
  651. /package/{flex.d.ts → build/flex.d.ts} +0 -0
  652. /package/{flex.js.map → build/flex.js.map} +0 -0
  653. /package/{form.d.ts → build/form.d.ts} +0 -0
  654. /package/{form.js.map → build/form.js.map} +0 -0
  655. /package/{grid.d.ts → build/grid.d.ts} +0 -0
  656. /package/{grid.js.map → build/grid.js.map} +0 -0
  657. /package/{heading.d.ts → build/heading.d.ts} +0 -0
  658. /package/{heading.js.map → build/heading.js.map} +0 -0
  659. /package/{index.d.ts → build/index.d.ts} +0 -0
  660. /package/{index.js.map → build/index.js.map} +0 -0
  661. /package/{input.d.ts → build/input.d.ts} +0 -0
  662. /package/{input.js.map → build/input.js.map} +0 -0
  663. /package/{internal → build/internal}/icons/caret-down.d.ts +0 -0
  664. /package/{internal → build/internal}/icons/caret-down.js +0 -0
  665. /package/{internal → build/internal}/icons/caret-left.d.ts +0 -0
  666. /package/{internal → build/internal}/icons/caret-left.js +0 -0
  667. /package/{internal → build/internal}/icons/caret-right.d.ts +0 -0
  668. /package/{internal → build/internal}/icons/caret-right.js +0 -0
  669. /package/{internal → build/internal}/icons/eye-slash.d.ts +0 -0
  670. /package/{internal → build/internal}/icons/eye-slash.js +0 -0
  671. /package/{internal → build/internal}/popover.d.ts +0 -0
  672. /package/{internal → build/internal}/reset-style.d.ts +0 -0
  673. /package/{internal → build/internal}/reset-style.js +0 -0
  674. /package/{internal → build/internal}/ring.d.ts +0 -0
  675. /package/{internal → build/internal}/super-input.d.ts +0 -0
  676. /package/{internal → build/internal}/utils.d.ts +0 -0
  677. /package/{layout.d.ts → build/layout.d.ts} +0 -0
  678. /package/{layout.js.map → build/layout.js.map} +0 -0
  679. /package/{link.d.ts → build/link.d.ts} +0 -0
  680. /package/{link.js.map → build/link.js.map} +0 -0
  681. /package/{popover.d.ts → build/popover.d.ts} +0 -0
  682. /package/{popover.js.map → build/popover.js.map} +0 -0
  683. /package/{progress.d.ts → build/progress.d.ts} +0 -0
  684. /package/{progress.js.map → build/progress.js.map} +0 -0
  685. /package/{range.d.ts → build/range.d.ts} +0 -0
  686. /package/{range.js.map → build/range.js.map} +0 -0
  687. /package/{rotate.d.ts → build/rotate.d.ts} +0 -0
  688. /package/{rotate.js.map → build/rotate.js.map} +0 -0
  689. /package/{router.d.ts → build/router.d.ts} +0 -0
  690. /package/{router.js.map → build/router.js.map} +0 -0
  691. /package/{select.d.ts → build/select.d.ts} +0 -0
  692. /package/{select.js.map → build/select.js.map} +0 -0
  693. /package/{skeleton.d.ts → build/skeleton.d.ts} +0 -0
  694. /package/{skeleton.js.map → build/skeleton.js.map} +0 -0
  695. /package/{split.d.ts → build/split.d.ts} +0 -0
  696. /package/{split.js.map → build/split.js.map} +0 -0
  697. /package/{switch.d.ts → build/switch.d.ts} +0 -0
  698. /package/{switch.js.map → build/switch.js.map} +0 -0
  699. /package/{tabs.d.ts → build/tabs.d.ts} +0 -0
  700. /package/{tabs.js.map → build/tabs.js.map} +0 -0
  701. /package/{text.d.ts → build/text.d.ts} +0 -0
  702. /package/{text.js.map → build/text.js.map} +0 -0
  703. /package/{time.d.ts → build/time.d.ts} +0 -0
  704. /package/{time.js.map → build/time.js.map} +0 -0
  705. /package/{tooltip.d.ts → build/tooltip.d.ts} +0 -0
  706. /package/{tooltip.js.map → build/tooltip.js.map} +0 -0
  707. /package/{typewriter.d.ts → build/typewriter.d.ts} +0 -0
  708. /package/{typewriter.js.map → build/typewriter.js.map} +0 -0
  709. /package/{web-components → build/web-components}/alert/component.d.ts +0 -0
  710. /package/{web-components → build/web-components}/alert/definition.d.ts +0 -0
  711. /package/{web-components → build/web-components}/avatar/component.d.ts +0 -0
  712. /package/{web-components → build/web-components}/avatar/definition.d.ts +0 -0
  713. /package/{web-components → build/web-components}/badge/component.d.ts +0 -0
  714. /package/{web-components → build/web-components}/badge/definition.d.ts +0 -0
  715. /package/{web-components → build/web-components}/breath/definition.d.ts +0 -0
  716. /package/{web-components → build/web-components}/button/component.d.ts +0 -0
  717. /package/{web-components → build/web-components}/button/definition.d.ts +0 -0
  718. /package/{web-components → build/web-components}/card/component.d.ts +0 -0
  719. /package/{web-components → build/web-components}/card/definition.d.ts +0 -0
  720. /package/{web-components → build/web-components}/carousel/component.d.ts +0 -0
  721. /package/{web-components → build/web-components}/carousel/definition.d.ts +0 -0
  722. /package/{web-components → build/web-components}/chip/component.d.ts +0 -0
  723. /package/{web-components → build/web-components}/chip/definition.d.ts +0 -0
  724. /package/{web-components → build/web-components}/details/component.d.ts +0 -0
  725. /package/{web-components → build/web-components}/details/definition.d.ts +0 -0
  726. /package/{web-components → build/web-components}/dialog/component.d.ts +0 -0
  727. /package/{web-components → build/web-components}/dialog/definition.d.ts +0 -0
  728. /package/{web-components → build/web-components}/divider/component.d.ts +0 -0
  729. /package/{web-components → build/web-components}/divider/definition.d.ts +0 -0
  730. /package/{web-components → build/web-components}/dragbox/component.d.ts +0 -0
  731. /package/{web-components → build/web-components}/dragbox/definition.d.ts +0 -0
  732. /package/{web-components → build/web-components}/flex/definition.d.ts +0 -0
  733. /package/{web-components → build/web-components}/form/component.d.ts +0 -0
  734. /package/{web-components → build/web-components}/form/definition.d.ts +0 -0
  735. /package/{web-components → build/web-components}/grid/definition.d.ts +0 -0
  736. /package/{web-components → build/web-components}/heading/component.d.ts +0 -0
  737. /package/{web-components → build/web-components}/heading/definition.d.ts +0 -0
  738. /package/{web-components → build/web-components}/input/component.d.ts +0 -0
  739. /package/{web-components → build/web-components}/input/definition.d.ts +0 -0
  740. /package/{web-components → build/web-components}/layout/component.d.ts +0 -0
  741. /package/{web-components → build/web-components}/layout/definition.d.ts +0 -0
  742. /package/{web-components → build/web-components}/link/component.d.ts +0 -0
  743. /package/{web-components → build/web-components}/link/definition.d.ts +0 -0
  744. /package/{web-components → build/web-components}/popover/component.d.ts +0 -0
  745. /package/{web-components → build/web-components}/popover/definition.d.ts +0 -0
  746. /package/{web-components → build/web-components}/progress/component.d.ts +0 -0
  747. /package/{web-components → build/web-components}/progress/definition.d.ts +0 -0
  748. /package/{web-components → build/web-components}/range/definition.d.ts +0 -0
  749. /package/{web-components → build/web-components}/rotate/component.d.ts +0 -0
  750. /package/{web-components → build/web-components}/rotate/definition.d.ts +0 -0
  751. /package/{web-components → build/web-components}/router/definition.d.ts +0 -0
  752. /package/{web-components → build/web-components}/select/component.d.ts +0 -0
  753. /package/{web-components → build/web-components}/select/definition.d.ts +0 -0
  754. /package/{web-components → build/web-components}/skeleton/component.d.ts +0 -0
  755. /package/{web-components → build/web-components}/skeleton/definition.d.ts +0 -0
  756. /package/{web-components → build/web-components}/split/component.d.ts +0 -0
  757. /package/{web-components → build/web-components}/split/definition.d.ts +0 -0
  758. /package/{web-components → build/web-components}/switch/component.d.ts +0 -0
  759. /package/{web-components → build/web-components}/switch/definition.d.ts +0 -0
  760. /package/{web-components → build/web-components}/tabs/component.d.ts +0 -0
  761. /package/{web-components → build/web-components}/tabs/definition.d.ts +0 -0
  762. /package/{web-components → build/web-components}/text/component.d.ts +0 -0
  763. /package/{web-components → build/web-components}/text/definition.d.ts +0 -0
  764. /package/{web-components → build/web-components}/time/component.d.ts +0 -0
  765. /package/{web-components → build/web-components}/time/definition.d.ts +0 -0
  766. /package/{web-components → build/web-components}/tooltip/component.d.ts +0 -0
  767. /package/{web-components → build/web-components}/tooltip/definition.d.ts +0 -0
  768. /package/{web-components → build/web-components}/typewriter/definition.d.ts +0 -0
@@ -1,3 +0,0 @@
1
- import{godown,styles,attr,htmlSlot}from"@godown/element";import{property}from"lit/decorators.js";import Router from"../router/component.js";import{css,nothing,html}from"lit";import{GlobalStyle}from"../../internal/global-style.js";import _decorate from"@oxc-project/runtime/helpers/decorate";const protoName=`link`,linkTypes={push:`push`,replace:`replace`,normal:`normal`,auto:`auto`};let Link=class e extends GlobalStyle{constructor(...e){super(...e),this.type=linkTypes.auto,this.suppress=!1,this.replace=!1,this.target=`_self`,this.state={},this.handleState=()=>{switch(this.type){case linkTypes.auto:case linkTypes.push:if(!this.replace){history.pushState(this.state,``,this.href);break}case linkTypes.replace:history.replaceState(this.state,``,this.href);break}}}get pathname(){return new URL(this.href,location.href).pathname}_handleClick(e){let{state:l,type:u,href:d,pathname:f,suppress:p}=this;if(!d||(this.dispatchCustomEvent(`navigate`,{...this.observedRecord,pathname:f,state:l}),d.startsWith(`#`)||u===linkTypes.normal))return;this.handleState();let m=[...Router.routerInstances];!p&&(u!==linkTypes.auto||m.some(e=>e.search(location.pathname)))&&(e.preventDefault(),Router.routerInstances.forEach(e=>{e.handlePopstate()}))}render(){return html`<a part="root" ${attr(this.observedRecord)} href="${this.href||nothing}" target="${this.target}" @click=${this._handleClick}> ${htmlSlot()} </a>`}};_decorate([property()],Link.prototype,`type`,void 0),_decorate([property({type:Boolean})],Link.prototype,`suppress`,void 0),_decorate([property({type:Boolean})],Link.prototype,`replace`,void 0),_decorate([property()],Link.prototype,`href`,void 0),_decorate([property()],Link.prototype,`target`,void 0),Link=_decorate([godown(protoName),styles(css`:host{display:inline-block;cursor:default}:host([href]){cursor:pointer}a{display:contents}
2
- `)],Link);var Link$1=Link;export{Link,Link$1 as default};
3
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../src/web-components/link/component.ts"],"sourcesContent":["import { attr, godown, htmlSlot, styles } from \"@godown/element\";\nimport { property } from \"lit/decorators.js\";\n\nimport Router from \"../router/component.js\";\nimport { css, html, nothing, type TemplateResult } from \"lit\";\nimport GlobalStyle from \"../../internal/global-style.js\";\n\nconst protoName = \"link\";\n\nconst linkTypes = {\n push: \"push\",\n replace: \"replace\",\n normal: \"normal\",\n auto: \"auto\",\n} as const;\n\ntype LinkType = keyof typeof linkTypes;\n\n/**\n * {@linkcode Link} is used for link jumping, works standalone or in {@linkcode Router}.\n *\n * Set `type` to `\"normal\"`,\n * behave like a normal anchor.\n *\n * Set `type` to `\"push\" `or `\"replace\"`,\n * update history state by `history.pushState` or `history.replaceState`,\n * update all routers whether current pathname is registered or not.\n *\n * Set `type` to `\"auto\"`,\n * only update the routers if the current pathname is registered,\n * if not registered, behave like `\"normal\"`.\n *\n * `replace` property will enforce `history.replaceState`.\n *\n * @fires navigate - Fires when the link is clicked.\n * @category navigation\n */\n@godown(protoName)\n@styles(css`\n :host {\n display: inline-block;\n cursor: default;\n }\n\n :host([href]) {\n cursor: pointer;\n }\n\n a {\n display: contents;\n }\n`)\nclass Link extends GlobalStyle {\n /**\n * If `\"normal\"`, behave like a normal anchor.\n *\n * If `\"auto\"` or `\"push\"`, call `history.pushState` if `replace` is false,\n *\n * If `\"replace\"`, call `history.replaceState`.\n */\n @property()\n type: LinkType = linkTypes.auto;\n\n /**\n * If `true`, the {@linkcode Router} will not be updated.\n */\n @property({ type: Boolean })\n suppress = false;\n\n /**\n * Use `replaceState` instead of `pushState`.\n */\n @property({ type: Boolean })\n replace = false;\n\n /**\n * A element href.\n */\n @property()\n href: string;\n\n /**\n * A element target.\n */\n @property()\n target: \"_blank\" | \"_self\" | \"_parent\" | \"_top\" = \"_self\";\n\n /**\n * Location state object.\n */\n state = {};\n\n get pathname(): string {\n return new URL(this.href, location.href).pathname;\n }\n\n protected _handleClick(e: MouseEvent): void {\n const { state, type, href, pathname, suppress } = this;\n if (!href) {\n return;\n }\n this.dispatchCustomEvent(\"navigate\", {\n ...this.observedRecord,\n pathname,\n state,\n });\n if (href.startsWith(\"#\") || type === linkTypes.normal) {\n return;\n }\n this.handleState();\n const routers = [...Router.routerInstances];\n if (\n // only runs when suppress is false\n !suppress &&\n (type !== linkTypes.auto ||\n // in auto mode, only update the routers if the current pathname is registered\n routers.some((i) => i.search(location.pathname)))\n ) {\n e.preventDefault();\n Router.routerInstances.forEach((i) => {\n i.handlePopstate();\n });\n }\n }\n\n handleState: () => void = () => {\n switch (this.type) {\n case linkTypes.auto:\n case linkTypes.push:\n if (!this.replace) {\n // type is auto or push and replace is false\n history.pushState(this.state, \"\", this.href);\n break;\n }\n // fallthrough to replace\n case linkTypes.replace:\n history.replaceState(this.state, \"\", this.href);\n break;\n }\n };\n\n protected render(): TemplateResult<1> {\n return html`\n <a\n part=\"root\"\n ${attr(this.observedRecord)}\n href=\"${this.href || nothing}\"\n target=\"${this.target}\"\n @click=${this._handleClick}\n >\n ${htmlSlot()}\n </a>\n `;\n }\n}\n\nexport default Link;\nexport { Link };\n"],"names":["Link","e: MouseEvent","href","type","routers","suppress","i"],"mappings":"mSAOA,MAAM,UAAY,OAEZ,UAAY,CAChB,KAAM,OACN,QAAS,UACT,OAAQ,SACR,KAAM,MACP,EAuBD,IAAA,KAAA,MAeMA,UAAa,WAAY,mBAyE7B,YAhEA,KAAA,KAAiB,UAAU,UAM3B,UAAW,OAMX,SAAU,OAYV,OAAkD,QAKlD,KAAA,MAAQ,CAAE,EAmCV,KAAA,YAA0B,IAAM,CAC9B,OAAQ,KAAK,KAAb,CACE,KAAK,UAAU,KACf,KAAK,UAAU,KACb,IAAK,KAAK,QAAS,CAEjB,QAAQ,UAAU,KAAK,MAAO,GAAI,KAAK,KAAK,CAC5C,KACD,CAEH,KAAK,UAAU,QACb,QAAQ,aAAa,KAAK,MAAO,GAAI,KAAK,KAAK,CAC/C,KACH,CACF,EA/CD,IAAI,UAAmB,CACrB,OAAO,IAAI,IAAI,KAAK,KAAM,SAAS,MAAM,QAC1C,CAES,aAAaC,EAAqB,CAC1C,GAAM,CAAE,QAAO,OAAM,OAAM,WAAU,WAAU,CAAG,KASlD,IARKC,IAGL,KAAK,oBAAoB,WAAY,CACnC,GAAG,KAAK,eACR,WACA,OACD,EAAC,CACE,EAAK,WAAW,IAAI,EAAIC,IAAS,UAAU,QAC7C,OAEF,KAAK,aAAa,CAClB,IAAMC,EAAU,CAAC,GAAG,OAAO,eAAgB,EAC3C,CAEGC,IACAF,IAAS,UAAU,MAElB,EAAQ,KAAK,AAACG,GAAM,EAAE,OAAO,SAAS,SAAS,CAAC,IAElD,EAAE,gBAAgB,CAClB,OAAO,gBAAgB,QAAQ,AAACA,GAAM,CACpC,EAAE,gBAAgB,AACnB,EAAC,CAEL,CAkBS,QAA4B,CACpC,MAAO,KAAI,CAAA,eAGP,EAAE,KAAK,KAAK,eAAe,CAAA,OACrB,EAAE,KAAK,MAAQ,QAAQ,UACrB,EAAE,KAAK,OAAO,SACf,EAAE,KAAK,aAAA,EAEd,EAAE,UAAU,CAAA,KAEhB,CAAC,AACF,CACF,EArHA,WAuBE,UAAU,AAAA,EAAA,KAAA,UAAA,cAAA,YAMV,SAAS,CAAE,KAAM,OAAS,EAAC,AAAA,EAAA,KAAA,UAAA,kBAAA,YAM3B,SAAS,CAAE,KAAM,OAAS,EAAC,AAAA,EAAA,KAAA,UAAA,iBAAA,YAM3B,UAAU,AAAA,EAAA,KAAA,UAAA,cAAA,YAMV,UAAU,AAAA,EAAA,KAAA,UAAA,gBAAA,CA/CZ,KAAA,UAAA,CAAA,OAAO,UAAU,CACjB,OAAO,GAAG,CAAC;AAaZ,CAAC,CAAC,AAAA,EAAA,KAAA,CAyGF,IAAA,OAAe"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,OAAO,UAAU,gBAAiB;AAIlC,eAAe;eAEA;WACH,sBAAsB;EAC9B,eAAe;CAChB;AACF","names":[],"sources":["../../../src/web-components/link/definition.ts"],"sourcesContent":["import Link from \"./component.js\";\n\nLink.define();\n\nexport default Link;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-link\": Link;\n }\n}\n"],"version":3,"file":"definition.d.ts"}
@@ -1,2 +0,0 @@
1
- import Link from"./component.js";Link.define();export{Link as default};
2
- //# sourceMappingURL=definition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.js","sources":["../../src/web-components/link/definition.ts"],"sourcesContent":["import Link from \"./component.js\";\n\nLink.define();\n\nexport default Link;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-link\": Link;\n }\n}\n"],"names":[],"mappings":"iCAEA,KAAK,QAAQ"}
@@ -1 +0,0 @@
1
- {"mappings":"AACA,OAAO,iBAAiB,gCAAiC;AACzD,cAAyB,qBAAqB,sBAAsB,KAAM;;;;;;;;;;;AAiB1E,cAsBM,gBAAgB,YAAY;CAChC;CAEA,AACA;CAEA,AACA,QAAQ,SAAS,SAAS,WAAW;CAErC,AACA,MAAM,SAAS,WAAW;;;;;CAM1B,AACA,UACI,WACA,SACA,aACA,gBACA,UACA,cACA,iBACA,QACA,aACA,cACA,WACA,gBACA,iBACA,UACA,gBACA,cACA,QACA,cACA;CAEJ,UACU,UAAU;CAEpB;CAcA,UAAU,UAAU,eAAe;CAmBnC,UAAU;CAUV;CAIA;CAIA,OAAOA;CAIP,UAAU,QAAQC,oBAAoB;CAMtC,UAAU;CAiBV;AASD;AAED,SAAS,SAAS,WAAW","names":["force?: boolean","_changedProperties: PropertyValues"],"sources":["../../../src/web-components/popover/component.ts"],"sourcesContent":["import { property } from \"lit/decorators.js\";\nimport GlobalStyle from \"../../internal/global-style.js\";\nimport { css, html, type PropertyValues, type TemplateResult } from \"lit\";\nimport { godown, htmlSlot, joinRules, part, StyleController, styles } from \"@godown/element\";\nimport { hidePopover, showPopover } from \"../../internal/popover.js\";\n\nconst POPOVER = \"popover\";\nconst protoName = POPOVER;\n\n/**\n * {@link Popover} renders a popover.\n *\n * This requires the support of the popover API and CSS position-area.\n *\n * @fires toggle - Fired when the popover is toggled.\n * @slot popover - Popover content.\n * @slot - Popover trigger.\n * @category display\n */\n@godown(protoName)\n@styles(css`\n :host {\n display: inline-block;\n }\n\n [part=\"trigger\"] {\n display: contents;\n }\n\n [part=\"root\"] {\n display: inherit;\n }\n\n [part=\"popover\"] {\n inset: unset;\n z-index: 1;\n overflow: visible;\n position: absolute;\n position-try-fallbacks: flip-block;\n }\n`)\nclass Popover extends GlobalStyle {\n anchorName = `--${POPOVER}-${Math.random().toString(36).slice(2)}`;\n\n @property({ type: Boolean, reflect: true })\n open = false;\n\n @property()\n action: \"hide\" | \"show\" | \"toggle\" | \"none\" = \"show\";\n\n @property()\n span: \"span\" | \"spread\" | \"isolated\" = \"span\";\n\n /**\n * The position refers to the spatial location of the popover in relation to the trigger,\n * rather than the alignment property between them.\n */\n @property()\n position:\n | \"center\"\n | \"left\"\n | \"left-top\"\n | \"left-bottom\"\n | \"right\"\n | \"right-top\"\n | \"right-bottom\"\n | \"top\"\n | \"top-left\"\n | \"top-right\"\n | \"bottom\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"start\"\n | \"start-start\"\n | \"start-end\"\n | \"end\"\n | \"end-start\"\n | \"end-end\" = \"bottom\";\n\n @part(POPOVER)\n protected _popover: HTMLElement;\n\n constructor() {\n super();\n new StyleController(this, () => {\n return joinRules({\n \"[part=root],slot:not([name])::slotted(*)\": {\n \"anchor-name\": this.anchorName,\n },\n \"[part=popover]\": {\n \"position-anchor\": this.anchorName,\n \"position-area\": this.resolveArea(),\n },\n });\n });\n }\n protected render(): TemplateResult<1> {\n return html`\n <div part=\"root\">\n <div\n part=\"trigger\"\n @click=${this._handleClick}\n >\n ${htmlSlot()}\n </div>\n <div\n part=\"popover\"\n popover=\"manual\"\n >\n ${htmlSlot(\"popover\")}\n </div>\n </div>\n `;\n }\n\n protected _handleClick(): void {\n const { action } = this;\n switch (action) {\n case \"show\":\n case \"hide\":\n case \"toggle\":\n this[action]();\n }\n }\n\n show(): void {\n this.toggle(true);\n }\n\n hide(): void {\n this.toggle(false);\n }\n\n toggle(force?: boolean): void {\n this.open = force ?? !this.open;\n }\n\n protected updated(_changedProperties: PropertyValues): void {\n if (_changedProperties.has(\"open\")) {\n this._openChange();\n }\n }\n\n protected _openChange(): void {\n const { open } = this;\n if (open) {\n showPopover.call(this, this._popover);\n const listener = (e) => {\n if (!this.contains(e.target)) {\n this.events.remove(document, \"click\", listener);\n this.open = false;\n }\n };\n this.events.add(document, \"click\", listener);\n } else {\n hidePopover(this._popover);\n }\n this.dispatchCustomEvent(\"toggle\", open);\n }\n\n resolveArea(): string {\n const split = this.position.split(\"-\");\n const firstValue = this.span === \"spread\" ? `span-${split[0]}` : split[0];\n if (split.length < 2) {\n return `${firstValue} center`;\n }\n const secondValue = this.span === \"isolated\" ? split[1] : `span-${split[1]}`;\n return `${firstValue} ${secondValue}`;\n }\n}\n\nexport { Popover, Popover as default };\n"],"version":3,"file":"component.d.ts"}
@@ -1,3 +0,0 @@
1
- import{property}from"lit/decorators.js";import{GlobalStyle}from"../../internal/global-style.js";import{css,html}from"lit";import{part,godown,styles,StyleController,joinRules,htmlSlot}from"@godown/element";import{showPopover,hidePopover}from"../../internal/popover.js";import _decorate from"@oxc-project/runtime/helpers/decorate";const POPOVER=`popover`,protoName=POPOVER;let Popover=class e extends GlobalStyle{constructor(){super(),this.anchorName=`--${POPOVER}-${Math.random().toString(36).slice(2)}`,this.open=!1,this.action=`show`,this.span=`span`,this.position=`bottom`,new StyleController(this,()=>joinRules({"[part=root],slot:not([name])::slotted(*)":{"anchor-name":this.anchorName},"[part=popover]":{"position-anchor":this.anchorName,"position-area":this.resolveArea()}}))}render(){return html`<div part="root"> <div part="trigger" @click=${this._handleClick}> ${htmlSlot()} </div> <div part="popover" popover="manual"> ${htmlSlot(`popover`)} </div> </div>`}_handleClick(){let{action:e}=this;switch(e){case`show`:case`hide`:case`toggle`:this[e]()}}show(){this.toggle(!0)}hide(){this.toggle(!1)}toggle(e){this.open=e??!this.open}updated(e){e.has(`open`)&&this._openChange()}_openChange(){let{open:e}=this;if(e){showPopover.call(this,this._popover);let e=m=>{this.contains(m.target)||(this.events.remove(document,`click`,e),this.open=!1)};this.events.add(document,`click`,e)}else hidePopover(this._popover);this.dispatchCustomEvent(`toggle`,e)}resolveArea(){let e=this.position.split(`-`),m=this.span===`spread`?`span-${e[0]}`:e[0];if(e.length<2)return`${m} center`;let h=this.span===`isolated`?e[1]:`span-${e[1]}`;return`${m} ${h}`}};_decorate([property({type:Boolean,reflect:!0})],Popover.prototype,`open`,void 0),_decorate([property()],Popover.prototype,`action`,void 0),_decorate([property()],Popover.prototype,`span`,void 0),_decorate([property()],Popover.prototype,`position`,void 0),_decorate([part(POPOVER)],Popover.prototype,`_popover`,void 0),Popover=_decorate([godown(protoName),styles(css`:host{display:inline-block}[part=trigger]{display:contents}[part=root]{display:inherit}[part=popover]{inset:unset;z-index:1;overflow:visible;position:absolute;position-try-fallbacks:flip-block}
2
- `)],Popover);export{Popover,Popover as default};
3
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../src/web-components/popover/component.ts"],"sourcesContent":["import { property } from \"lit/decorators.js\";\nimport GlobalStyle from \"../../internal/global-style.js\";\nimport { css, html, type PropertyValues, type TemplateResult } from \"lit\";\nimport { godown, htmlSlot, joinRules, part, StyleController, styles } from \"@godown/element\";\nimport { hidePopover, showPopover } from \"../../internal/popover.js\";\n\nconst POPOVER = \"popover\";\nconst protoName = POPOVER;\n\n/**\n * {@link Popover} renders a popover.\n *\n * This requires the support of the popover API and CSS position-area.\n *\n * @fires toggle - Fired when the popover is toggled.\n * @slot popover - Popover content.\n * @slot - Popover trigger.\n * @category display\n */\n@godown(protoName)\n@styles(css`\n :host {\n display: inline-block;\n }\n\n [part=\"trigger\"] {\n display: contents;\n }\n\n [part=\"root\"] {\n display: inherit;\n }\n\n [part=\"popover\"] {\n inset: unset;\n z-index: 1;\n overflow: visible;\n position: absolute;\n position-try-fallbacks: flip-block;\n }\n`)\nclass Popover extends GlobalStyle {\n anchorName = `--${POPOVER}-${Math.random().toString(36).slice(2)}`;\n\n @property({ type: Boolean, reflect: true })\n open = false;\n\n @property()\n action: \"hide\" | \"show\" | \"toggle\" | \"none\" = \"show\";\n\n @property()\n span: \"span\" | \"spread\" | \"isolated\" = \"span\";\n\n /**\n * The position refers to the spatial location of the popover in relation to the trigger,\n * rather than the alignment property between them.\n */\n @property()\n position:\n | \"center\"\n | \"left\"\n | \"left-top\"\n | \"left-bottom\"\n | \"right\"\n | \"right-top\"\n | \"right-bottom\"\n | \"top\"\n | \"top-left\"\n | \"top-right\"\n | \"bottom\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"start\"\n | \"start-start\"\n | \"start-end\"\n | \"end\"\n | \"end-start\"\n | \"end-end\" = \"bottom\";\n\n @part(POPOVER)\n protected _popover: HTMLElement;\n\n constructor() {\n super();\n new StyleController(this, () => {\n return joinRules({\n \"[part=root],slot:not([name])::slotted(*)\": {\n \"anchor-name\": this.anchorName,\n },\n \"[part=popover]\": {\n \"position-anchor\": this.anchorName,\n \"position-area\": this.resolveArea(),\n },\n });\n });\n }\n protected render(): TemplateResult<1> {\n return html`\n <div part=\"root\">\n <div\n part=\"trigger\"\n @click=${this._handleClick}\n >\n ${htmlSlot()}\n </div>\n <div\n part=\"popover\"\n popover=\"manual\"\n >\n ${htmlSlot(\"popover\")}\n </div>\n </div>\n `;\n }\n\n protected _handleClick(): void {\n const { action } = this;\n switch (action) {\n case \"show\":\n case \"hide\":\n case \"toggle\":\n this[action]();\n }\n }\n\n show(): void {\n this.toggle(true);\n }\n\n hide(): void {\n this.toggle(false);\n }\n\n toggle(force?: boolean): void {\n this.open = force ?? !this.open;\n }\n\n protected updated(_changedProperties: PropertyValues): void {\n if (_changedProperties.has(\"open\")) {\n this._openChange();\n }\n }\n\n protected _openChange(): void {\n const { open } = this;\n if (open) {\n showPopover.call(this, this._popover);\n const listener = (e) => {\n if (!this.contains(e.target)) {\n this.events.remove(document, \"click\", listener);\n this.open = false;\n }\n };\n this.events.add(document, \"click\", listener);\n } else {\n hidePopover(this._popover);\n }\n this.dispatchCustomEvent(\"toggle\", open);\n }\n\n resolveArea(): string {\n const split = this.position.split(\"-\");\n const firstValue = this.span === \"spread\" ? `span-${split[0]}` : split[0];\n if (split.length < 2) {\n return `${firstValue} center`;\n }\n const secondValue = this.span === \"isolated\" ? split[1] : `span-${split[1]}`;\n return `${firstValue} ${secondValue}`;\n }\n}\n\nexport { Popover, Popover as default };\n"],"names":["Popover","action","force?: boolean","force","_changedProperties: PropertyValues","open","listener","e","split","firstValue","secondValue"],"mappings":"yUAMA,MAAM,QAAU,UACV,UAAY,QAYlB,IAAA,QAAA,MAsBMA,UAAgB,WAAY,CAyChC,aAAc,CAEZ,AADA,OAAO,CAzCT,KAAA,WAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,EAAE,MAGlE,MAAO,OAGP,OAA8C,YAG9C,KAAuC,YAOvC,SAmBgB,SAOd,IAAI,gBAAgB,KAAM,IACjB,UAAU,CACf,2CAA4C,CAC1C,cAAe,KAAK,UACrB,EACD,iBAAkB,CAChB,kBAAmB,KAAK,WACxB,gBAAiB,KAAK,aAAA,AACvB,CACF,EAAC,CAEL,CACS,QAA4B,CACpC,MAAO,KAAI,CAAA,6CAIE,EAAE,KAAK,aAAA,EAEd,EAAE,UAAU,CAAA,8CAMZ,EAAE,SAAS,UAAU,CAAA,cAG3B,CAAC,AACF,CAES,cAAqB,CAC7B,GAAM,CAAE,SAAQ,CAAG,KACnB,OAAQC,EAAR,CACE,IAAK,OACL,IAAK,OACL,IAAK,cACEA,IAAS,AACjB,CACF,CAED,MAAa,CACX,KAAK,QAAO,EAAK,AAClB,CAED,MAAa,CACX,KAAK,QAAO,EAAM,AACnB,CAED,OAAOC,EAAuB,CAC5B,KAAK,KAAOC,IAAU,KAAK,IAC5B,CAES,QAAQC,EAA0C,CAC1D,AAAI,EAAmB,IAAI,OAAO,EAChC,KAAK,aAAa,AAErB,CAES,aAAoB,CAC5B,GAAM,CAAE,OAAM,CAAG,KACjB,GAAIC,EAAM,CACR,YAAY,KAAK,KAAM,KAAK,SAAS,CACrC,IAAMC,EAAW,AAACC,GAAM,CACtB,AAAK,KAAK,SAASA,EAAE,OAAO,GAC1B,KAAK,OAAO,OAAO,SAAU,QAASD,EAAS,CAC/C,KAAK,MAAO,EAEf,EACD,KAAK,OAAO,IAAI,SAAU,QAASA,EAAS,AAC7C,MACC,YAAY,KAAK,SAAS,CAE5B,KAAK,oBAAoB,SAAUD,EAAK,AACzC,CAED,aAAsB,CACpB,IAAMG,EAAQ,KAAK,SAAS,MAAM,IAAI,CAChCC,EAAa,KAAK,OAAS,SAAW,CAAC,KAAK,EAAED,EAAM,IAAI,CAAGA,EAAM,GACvE,GAAIA,EAAM,OAAS,EACjB,MAAO,GAAGC,EAAW,OAAO,CAAC,CAE/B,IAAMC,EAAc,KAAK,OAAS,WAAaF,EAAM,GAAK,CAAC,KAAK,EAAEA,EAAM,IAAI,CAC5E,MAAO,GAAGC,EAAW,CAAC,EAAEC,GAAa,AACtC,CACF,EAtJA,WAyBE,SAAS,CAAE,KAAM,QAAS,SAAS,CAAM,EAAC,AAAA,EAAA,QAAA,UAAA,WAAA,GAAA,YAG1C,UAAU,AAAA,EAAA,QAAA,UAAA,gBAAA,YAGV,UAAU,AAAA,EAAA,QAAA,UAAA,cAAA,YAOV,UAAU,AAAA,EAAA,QAAA,UAAA,kBAAA,CAsBV,UAAA,CAAA,KAAK,QAAQ,AAAA,EAAA,QAAA,UAAA,kBAAA,CA5Df,QAAA,UAAA,CAAA,OAAO,UAAU,CACjB,OAAO,GAAG,CAAC;AAoBZ,CAAC,CAAC,AAAA,EAAA,QAAA"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,OAAO,aAAa,gBAAiB;AAIrC,eAAe;eAEA;WACH,sBAAsB;EAC9B,kBAAkB;CACnB;AACF","names":[],"sources":["../../../src/web-components/popover/definition.ts"],"sourcesContent":["import Popover from \"./component.js\";\n\nPopover.define();\n\nexport default Popover;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-popover\": Popover;\n }\n}\n"],"version":3,"file":"definition.d.ts"}
@@ -1,2 +0,0 @@
1
- import{Popover as Popover$1}from"./component.js";Popover$1.define();var Popover=Popover$1;export{Popover as default};
2
- //# sourceMappingURL=definition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.js","sources":["../../src/web-components/popover/definition.ts"],"sourcesContent":["import Popover from \"./component.js\";\n\nPopover.define();\n\nexport default Popover;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-popover\": Popover;\n }\n}\n"],"names":["Popover"],"mappings":"iDAEAA,UAAQ,QAAQ,CAEhB,IAAA,QAAeA"}
@@ -1 +0,0 @@
1
- {"mappings":"AACA,cAAc,sBAAiC,KAAM;AAGrD,SAAS,mBAAkC,gCAAiC;;;;;;AAS5E,cA+CM,iBAAiB,YAAY;CACjC,AACA;CAEA,AACA;CAEA,AACA;CAEA,UAAU,UAAU,eAAe;AAsBpC;AAED,eAAe;AACf,SAAS","names":[],"sources":["../../../src/web-components/progress/component.ts"],"sourcesContent":["import { attr, godown, isNullable, Ranger, styles } from \"@godown/element\";\nimport { type TemplateResult, css, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\nimport { GlobalStyle, cssGlobalVars } from \"../../internal/global-style.js\";\n\nconst protoName = \"progress\";\n\n/**\n * {@linkcode Progress} similar to `<progress>`.\n *\n * @category feedback\n */\n@godown(protoName)\n@styles(css`\n :host {\n width: 100%;\n height: 0.5em;\n border-radius: 0.25em;\n background: var(${cssGlobalVars.passive});\n color: var(${cssGlobalVars.active});\n }\n\n :host,\n [part=\"root\"] {\n display: block;\n }\n\n [part=\"root\"] {\n z-index: 1;\n position: relative;\n border-radius: inherit;\n overflow: hidden;\n }\n\n [part=\"value\"] {\n position: absolute;\n z-index: 2;\n top: 0;\n left: 0;\n height: 100%;\n border-radius: inherit;\n transition: all 0.3s;\n animation: progress 1.8s ease-in-out infinite alternate;\n background: currentColor;\n }\n\n @keyframes progress {\n from {\n left: 0;\n }\n to {\n left: 80%;\n }\n }\n\n .static [part=\"value\"] {\n animation: none;\n }\n`)\nclass Progress extends GlobalStyle {\n @property({ type: Number })\n max = 1;\n\n @property({ type: Number })\n min = 0;\n\n @property({ type: Number })\n value: number;\n\n protected render(): TemplateResult<1> {\n let width = 20;\n let className: string;\n if (!isNullable(this.value)) {\n const ranger = new Ranger(this.min, this.max);\n const value = +this.value - this.min;\n width = (value / ranger.diff) * 100;\n className = \"static\";\n }\n return html`\n <div\n part=\"root\"\n ${attr(this.observedRecord)}\n class=\"${className}\"\n >\n <i\n part=\"value\"\n style=\"width:${width}%;\"\n ></i>\n </div>\n `;\n }\n}\n\nexport default Progress;\nexport { Progress };\n"],"version":3,"file":"component.d.ts"}
@@ -1,2 +0,0 @@
1
- import{godown,styles,isNullable,Ranger,attr}from"@godown/element";import{css,html}from"lit";import{property}from"lit/decorators.js";import{cssGlobalVars,GlobalStyle}from"../../internal/global-style.js";import _decorate from"@oxc-project/runtime/helpers/decorate";const protoName=`progress`;let Progress=class e extends GlobalStyle{constructor(...e){super(...e),this.max=1,this.min=0}render(){let e=20,d;if(!isNullable(this.value)){let f=new Ranger(this.min,this.max),p=+this.value-this.min;e=p/f.diff*100,d=`static`}return html`<div part="root" ${attr(this.observedRecord)} class="${d}"> <i part="value" style="width:${e}%;"></i> </div>`}};_decorate([property({type:Number})],Progress.prototype,`max`,void 0),_decorate([property({type:Number})],Progress.prototype,`min`,void 0),_decorate([property({type:Number})],Progress.prototype,`value`,void 0),Progress=_decorate([godown(protoName),styles(css`:host{width:100%;height:.5em;border-radius:.25em;background:var(${cssGlobalVars.passive});color:var(${cssGlobalVars.active})}:host,[part=root]{display:block}[part=root]{z-index:1;position:relative;border-radius:inherit;overflow:hidden}[part=value]{position:absolute;z-index:2;top:0;left:0;height:100%;border-radius:inherit;transition:all .3s;animation:progress 1.8s ease-in-out infinite alternate;background:currentColor}@keyframes progress{0%{left:0}to{left:80%}}.static [part=value]{animation:none}`)],Progress);var Progress$1=Progress;export{Progress,Progress$1 as default};
2
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../src/web-components/progress/component.ts"],"sourcesContent":["import { attr, godown, isNullable, Ranger, styles } from \"@godown/element\";\nimport { type TemplateResult, css, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\nimport { GlobalStyle, cssGlobalVars } from \"../../internal/global-style.js\";\n\nconst protoName = \"progress\";\n\n/**\n * {@linkcode Progress} similar to `<progress>`.\n *\n * @category feedback\n */\n@godown(protoName)\n@styles(css`\n :host {\n width: 100%;\n height: 0.5em;\n border-radius: 0.25em;\n background: var(${cssGlobalVars.passive});\n color: var(${cssGlobalVars.active});\n }\n\n :host,\n [part=\"root\"] {\n display: block;\n }\n\n [part=\"root\"] {\n z-index: 1;\n position: relative;\n border-radius: inherit;\n overflow: hidden;\n }\n\n [part=\"value\"] {\n position: absolute;\n z-index: 2;\n top: 0;\n left: 0;\n height: 100%;\n border-radius: inherit;\n transition: all 0.3s;\n animation: progress 1.8s ease-in-out infinite alternate;\n background: currentColor;\n }\n\n @keyframes progress {\n from {\n left: 0;\n }\n to {\n left: 80%;\n }\n }\n\n .static [part=\"value\"] {\n animation: none;\n }\n`)\nclass Progress extends GlobalStyle {\n @property({ type: Number })\n max = 1;\n\n @property({ type: Number })\n min = 0;\n\n @property({ type: Number })\n value: number;\n\n protected render(): TemplateResult<1> {\n let width = 20;\n let className: string;\n if (!isNullable(this.value)) {\n const ranger = new Ranger(this.min, this.max);\n const value = +this.value - this.min;\n width = (value / ranger.diff) * 100;\n className = \"static\";\n }\n return html`\n <div\n part=\"root\"\n ${attr(this.observedRecord)}\n class=\"${className}\"\n >\n <i\n part=\"value\"\n style=\"width:${width}%;\"\n ></i>\n </div>\n `;\n }\n}\n\nexport default Progress;\nexport { Progress };\n"],"names":["Progress","width","className: string","ranger","value","className"],"mappings":"uQAMA,MAAM,UAAY,WAOlB,IAAA,SAAA,MA+CMA,UAAiB,WAAY,oCAEjC,IAAM,OAGN,IAAM,EAKI,QAA4B,CACpC,IAAIC,EAAQ,GACRC,EACJ,IAAK,WAAW,KAAK,MAAM,CAAE,CAC3B,IAAMC,EAAS,IAAI,OAAO,KAAK,IAAK,KAAK,KACnCC,GAAS,KAAK,MAAQ,KAAK,IAEjC,AADAH,EAASG,EAAQD,EAAO,KAAQ,IAChCE,EAAY,QACb,CACD,MAAO,KAAI,CAAA,iBAGP,EAAE,KAAK,KAAK,eAAe,CAAA,QACpB,EAAEA,EAAU,gCAIJ,EAAEJ,EAAM,eAG3B,CAAC,AACF,CACF,EA/EA,WAgDE,SAAS,CAAE,KAAM,MAAQ,EAAC,AAAA,EAAA,SAAA,UAAA,aAAA,YAG1B,SAAS,CAAE,KAAM,MAAQ,EAAC,AAAA,EAAA,SAAA,UAAA,aAAA,YAG1B,SAAS,CAAE,KAAM,MAAQ,EAAC,AAAA,EAAA,SAAA,UAAA,eAAA,CAtD5B,SAAA,UAAA,CAAA,OAAO,UAAU,CACjB,OAAO,GAAG,CAAC,gEAKQ,EAAE,cAAc,QAAQ,YAC7B,EAAE,cAAc,OAAO,yXAuCtC,CAAC,CAAC,AAAA,EAAA,SAAA,CAmCF,IAAA,WAAe"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,OAAO,cAAc,gBAAiB;AAItC,eAAe;eAEA;WACH,sBAAsB;EAC9B,mBAAmB;CACpB;AACF","names":[],"sources":["../../../src/web-components/progress/definition.ts"],"sourcesContent":["import Progress from \"./component.js\";\n\nProgress.define();\n\nexport default Progress;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-progress\": Progress;\n }\n}\n"],"version":3,"file":"definition.d.ts"}
@@ -1,2 +0,0 @@
1
- import Progress from"./component.js";Progress.define();export{Progress as default};
2
- //# sourceMappingURL=definition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.js","sources":["../../src/web-components/progress/definition.ts"],"sourcesContent":["import Progress from \"./component.js\";\n\nProgress.define();\n\nexport default Progress;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-progress\": Progress;\n }\n}\n"],"names":[],"mappings":"qCAEA,SAAS,QAAQ"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,SASE,cAEK,iBAAkB;AACzB,cAAc,sBAAiC,KAAM;AAIrD,SAAS,kBAAkB,+BAAgC;KAMtD;;;;;;;;;;;AAYL,cA0FM,MAAM,UAAU,aAAa,oBAAoB,WAAW,YAAY;;;;CAI5E,AACA;;;;CAKA,AACA;;;;CAKA,AACA;;;;CAKA,AACA;;;;;;CAOA,AACA,OAAO;;;;CAKP,AACA,SAAS;CAET,UACU,OAAO;CAEjB,UACU,UAAU,WAAW;CAE/B,AACA;CAEA,UAAU,SAAS;CACnB,QAAQ;CAER,IAAI,SAAS,mBAAmB,QAAQ;;;;CAOxC,IAAI;;;;CAOJ,SAASA,aAAa;CAStB,yBAAyBC,cAAcC,qBAAqBC;CAO5D,IAAI,kBAAkB;CAItB,UAAU,UAAU,eAAe;CAyBnC,UAAU,cAAcC,gBAAgB,eAAe;CAkBvD,QAAQ;;;;;CAMR,YAAYA;;;;CAiBZ;;;;;;CAUA,UAAU,mBAAmBA,iBACnBC,GAAG;;;;;;CAqBb,UAAU,gBAAgBD,iBAChBE,GAAG;;;;;;CAWb,UAAU,eAAeF,iBACfG;;;;;CAgBV,UAAU,cAAc,EAAE,SAAS,SAAqB,EAAV;;;;;;CAU9C,UAAU,qBAAqBD,GAAG;;;;;;CAoBlC,UAAU,wBAAwBE,oBAAoBC,yBAC5CH,GAAG;;;;;;CAkBb,UAAU,wBAAwBI,WAAWC,6BACnCL,GAAG;CASb,UAAU;CAcV;CAIA,QAAQ;CAIR,YAAY;AAMb;AAED,eAAe;AACf,SAAS","names":["len: number","name: string","_old: string | null","value: string | null","index: number","e: KeyboardEvent","e: MouseEvent","value: number","mouseMoveCallback: (arg0: number) => void","arg0: number","callback: (newValue: number) => void","newValue: number"],"sources":["../../../src/web-components/range/component.ts"],"sourcesContent":["import {\n attr,\n tokenList,\n godown,\n isNullable,\n joinDeclarations,\n loop,\n queryPart,\n styles,\n Ranger,\n omit,\n} from \"@godown/element\";\nimport { type TemplateResult, css, html } from \"lit\";\nimport { property, queryAll, state } from \"lit/decorators.js\";\n\nimport { cssGlobalVars, scopePrefix } from \"../../internal/global-style.js\";\nimport { SuperInput } from \"../../internal/super-input.js\";\nimport { ringTypeAttribute } from \"../../internal/ring.js\";\n\nconst protoName = \"range\";\nconst cssScope = scopePrefix(protoName);\n\ntype RangeValue = number | number[];\n\n/**\n * {@linkcode Range} is similar to `<input type=\"range\">`.\n *\n * Value accepts number, or array.\n *\n * Number has 1 handle, the array has the number of its elements.\n *\n * @fires range - Fires when the value changes.\n * @category input\n */\n@godown(protoName)\n@styles(\n css`\n :host {\n ${cssScope}--track-width: .5em;\n ${cssScope}--handle-scale: 1;\n ${cssScope}--track-background: var(${cssGlobalVars.active});\n background: var(${cssGlobalVars.passive});\n width: 100%;\n display: block;\n height: var(${cssScope}--track-width);\n }\n\n :host([contents]) [part=\"root\"] {\n width: inherit;\n }\n\n :host([vertical]) {\n height: 100%;\n width: fit-content;\n }\n\n [part=\"root\"] {\n min-height: inherit;\n position: relative;\n border-radius: inherit;\n --from: 0%;\n --to: 50%;\n }\n\n [part=\"track\"] {\n height: 100%;\n min-height: inherit;\n display: flex;\n position: absolute;\n pointer-events: none;\n border-radius: inherit;\n justify-content: space-between;\n left: min(var(--from), var(--to));\n background: var(${cssScope}--track-background);\n width: max(calc(var(--to) - var(--from)), calc(var(--from) - var(--to)));\n }\n\n [part~=\"handle\"] {\n width: 1em;\n height: 1em;\n display: flex;\n align-items: center;\n justify-content: center;\n user-select: none;\n position: absolute;\n border-radius: 50%;\n transform-origin: 0% 25%;\n outline: 0;\n border-style: solid;\n border-width: 0.1em;\n transform: scale(var(${cssScope}--handle-scale)) translate(-50%, -25%);\n background: var(${cssGlobalVars.background});\n border-color: currentColor;\n }\n `,\n css`\n [vertical] {\n height: inherit;\n width: var(${cssScope}--track-width);\n }\n\n [vertical] i {\n transform: translate(-25%, -50%);\n }\n\n [vertical] [part=\"track\"] {\n width: 100%;\n height: max(calc(var(--to) - var(--from)), calc(var(--from) - var(--to)));\n top: min(var(--from), var(--to));\n left: 0;\n }\n `,\n css`\n [part~=\"handle\"] {\n left: var(--handle);\n top: 0;\n }\n\n [vertical] [part~=\"handle\"] {\n top: var(--handle);\n left: 0;\n }\n `,\n)\nclass Range<V extends RangeValue = RangeValue> extends SuperInput<RangeValue> {\n /**\n * Minimum value.\n */\n @property({ type: Number })\n min = 0;\n\n /**\n * Maximum value.\n */\n @property({ type: Number })\n max = 100;\n\n /**\n * Sliding step length.\n */\n @property({ type: Number })\n step: number;\n\n /**\n * Whether to display the range vertically.\n */\n @property({ type: Boolean, reflect: true })\n vertical = false;\n\n /**\n * Value, or each of values, will render a handle.\n *\n * Accepts number or array of numbers.\n */\n @property({ type: Array })\n value: V;\n\n /**\n * The default of `{@linkcode this.value}`.\n */\n @property({ type: Array })\n default: V;\n\n @queryPart(\"root\")\n protected _root: HTMLElement;\n\n @queryAll(\"[part=handle]\")\n protected _handles: NodeListOf<HTMLElement>;\n\n @state()\n lastFocus?: number;\n\n protected _ranger: Ranger;\n private __focusStack: number[] = [];\n\n get range(): V extends number ? false : true {\n return Array.isArray(this.value) as any;\n }\n\n /**\n * Return values in the form of an array.\n */\n get rangeValue(): number[] {\n return (this.range ? this.value : [this.value]) as number[];\n }\n\n /**\n * Pad the value to the specified length.\n */\n padValue(len: number, value = 0): number[] {\n const { rangeValue } = this;\n const miss = len - rangeValue.length;\n if (miss > 0) {\n return new Array(miss).fill(value).concat(rangeValue);\n }\n return rangeValue;\n }\n\n attributeChangedCallback(name: string, _old: string | null, value: string | null): void {\n super.attributeChangedCallback(name, _old, value);\n if (name === \"max\" || name === \"min\" || name === \"step\") {\n this._ranger = new Ranger(this.min, this.max, this.step);\n }\n }\n\n get observedRecord(): Record<string, any> {\n return omit(super.observedRecord, ringTypeAttribute);\n }\n\n protected render(): TemplateResult<1> {\n const rangeValue = this.padValue(2);\n const from = Math.min(...rangeValue);\n const to = Math.max(...rangeValue);\n const gap = this._ranger.diff;\n\n return html`\n <div\n part=\"root\"\n ${attr(this.observedRecord)}\n @mousedown=\"${this.disabled ? null : this._handleMousedownRoot}\"\n style=\"${joinDeclarations([\n [\"--from\", `${((from - this.min) / gap) * 100}%`],\n [\"--to\", `${((to - this.min) / gap) * 100}%`],\n ...rangeValue.map(\n (value, index) => [`--handle-${index}`, `${((value - this.min) / gap) * 100}%`] as [string, string],\n ),\n ])}\"\n >\n <div part=\"track\"></div>\n ${loop(this.rangeValue.length, (index) => this._renderHandle(index))}\n </div>\n `;\n }\n\n protected _renderHandle(index: number): TemplateResult<1> {\n const { disabled, range, rangeValue } = this;\n\n // in single-handle mod (value is a number or an array with length 1),\n const end = !range || (range && index === rangeValue.length - 1 && rangeValue.length === 1);\n return html`\n <i\n tabindex=\"0\"\n part=\"${tokenList(\"handle\", `handle-${index}`)}\"\n @mousedown=\"${disabled ? null : this.createMouseDown(index)}\"\n style=\"${joinDeclarations({\n \"z-index\": this.__focusStack.indexOf(index) + 1,\n \"--handle\": `var(--${end ? \"to\" : `handle-${index}`})`,\n })}\"\n ></i>\n `;\n }\n\n private __keydownEvent: EventListenerOrEventListenerObject;\n\n /**\n * Focuses the handle at the given index, updates the focus stack.\n * @param index - The index of the handle to focus.\n */\n focusHandle(index: number): void {\n this.lastFocus = index;\n const indexOfFocusStack = this.__focusStack.indexOf(index);\n if (indexOfFocusStack !== -1) {\n this.__focusStack.splice(indexOfFocusStack, 1);\n }\n this.__focusStack.push(index);\n const handleItem = this._handles.item(index);\n handleItem?.focus();\n if (!this.__keydownEvent) {\n this.__keydownEvent = this.events.add(document, \"keydown\", this.createKeydownEvent(index));\n }\n }\n\n /**\n * Removes the focus from the currently focused handle.\n */\n blurHandle(): void {\n this.lastFocus = undefined;\n this.__keydownEvent = this.events.remove(document, \"keydown\", this.__keydownEvent);\n }\n\n /**\n * Creates a keydown event handler that updates the value of the range based on arrow key presses.\n * @param index - The index of the handle to update.\n * @returns A function that handles the keydown event and updates the range value.\n */\n protected createKeydownEvent(index: number) {\n return (e: KeyboardEvent): void => {\n const { rangeValue, step } = this;\n if (rangeValue.length < 2) {\n index = 0;\n }\n const old = rangeValue[index];\n if (e.key === \"ArrowLeft\" || e.key === \"ArrowDown\") {\n e.preventDefault();\n this.createSetValue(index)(old - step);\n } else if (e.key === \"ArrowRight\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n this.createSetValue(index)(old + step);\n }\n };\n }\n\n /**\n * Creates a mouse down event handler that focuses the handle at the given index and sets the value of the range.\n * @param index - The index of the handle to focus.\n * @returns A function that handles the mouse down event and updates the range value.\n */\n protected createMouseDown(index: number) {\n return (e: MouseEvent): void => {\n this.focusHandle(index);\n this.createMousedownListener(this.createSetValue(index))(e);\n };\n }\n\n /**\n * Creates a function that sets the value of the range at the given index.\n * @param index - The index of the value to set.\n * @returns A function that sets the value of the range.\n */\n protected createSetValue(index: number) {\n return (value: number): void => {\n const normalizeValue = this._ranger.normalize(value);\n let newValue: RangeValue = normalizeValue;\n if (this.range) {\n newValue = [...(this.value as number[])];\n newValue[index] = normalizeValue;\n }\n this.value = newValue as V;\n this.dispatchCustomEvent(\"change\", this.value);\n };\n }\n\n /**\n * Compute value from event.\n * @returns The value closest to the event client position.\n */\n protected _computeValue({ clientX, clientY }: MouseEvent): number {\n const { top, left, height, width } = this._root.getBoundingClientRect();\n return this._ranger.present(this.vertical ? (clientY - top) / height : (clientX - left) / width);\n }\n\n /**\n * Handles the mouse down event on the root element of the range component.\n * Computes the closest value to the mouse position, sets the value, and focuses the corresponding handle.\n * @param e - The mouse down event object.\n */\n protected _handleMousedownRoot(e: MouseEvent): void {\n const value = this._computeValue(e);\n const index = this.range\n ? this.rangeValue.reduce((acc, item, index) => {\n const diff = Math.abs(value - item);\n const prevDiff = Math.abs(value - this.rangeValue[acc]);\n return diff < prevDiff ? index : acc;\n }, 0)\n : 0;\n\n const set = this.createSetValue(index);\n set(value);\n this.createMousedownListener(set)(e);\n this.focusHandle(index);\n }\n /**\n * Creates a mouse down event handler that focuses the handle at the given index and sets the value of the range.\n * @param index - The index of the handle to focus.\n * @returns A function that handles the mouse down event and updates the range value.\n */\n protected createMousedownListener(mouseMoveCallback: (arg0: number) => void) {\n return (e: MouseEvent): void => {\n e.preventDefault();\n e.stopPropagation();\n const move = this.createMousemoveListener(mouseMoveCallback);\n this.events.add(document, \"mousemove\", move);\n const stop = () => {\n this.events.remove(document, \"mousemove\", move);\n this.events.remove(document, \"mouseup\", stop);\n };\n this.events.add(document, \"mouseup\", stop);\n };\n }\n\n /**\n * Creates a mouse move event handler that updates the range value based on the mouse position.\n * @param callback - A function to call with the new value when the mouse is moved.\n * @returns A function that handles the mouse move event and updates the range value.\n */\n protected createMousemoveListener(callback: (newValue: number) => void) {\n return (e: MouseEvent): void => {\n const value = this._computeValue(e);\n if (value !== this._ranger.restrict(value)) {\n return;\n }\n callback?.call(this, value);\n };\n }\n\n protected _connectedInit(): void {\n this._ranger = new Ranger(this.min, this.max, this.step);\n const gap = this._ranger.diff;\n this.step ||= gap / 100;\n if (isNullable(this.value)) {\n if (!isNullable(this.default)) {\n this.value = this.default;\n } else {\n (this.value as number) = Math.round(gap / 2 / this.step) * this.step;\n }\n }\n this.default ??= this.value;\n }\n\n reset(): void {\n this.value = this.default;\n }\n\n sort(): V {\n return (this.value = this.toSorted());\n }\n\n toSorted(): V {\n if (this.range) {\n return [...(this.value as number[])].sort((a, b) => a - b) as V;\n }\n return this.value;\n }\n}\n\nexport default Range;\nexport { Range };\n"],"version":3,"file":"component.d.ts"}
@@ -1,2 +0,0 @@
1
- import{queryPart,godown,styles,Ranger,omit,attr,joinDeclarations,loop,tokenList,isNullable}from"@godown/element";import{css,html}from"lit";import{property,queryAll,state}from"lit/decorators.js";import{scopePrefix,cssGlobalVars}from"../../internal/global-style.js";import{SuperInput}from"../../internal/super-input.js";import{ringTypeAttribute}from"../../internal/ring.js";import _decorate from"@oxc-project/runtime/helpers/decorate";const protoName=`range`,cssScope=scopePrefix(protoName);let Range=class e extends SuperInput{constructor(...e){super(...e),this.min=0,this.max=100,this.vertical=!1,this.__focusStack=[]}get range(){return Array.isArray(this.value)}get rangeValue(){return this.range?this.value:[this.value]}padValue(e,y=0){let{rangeValue:b}=this,x=e-b.length;return x>0?Array(x).fill(y).concat(b):b}attributeChangedCallback(e,y,b){super.attributeChangedCallback(e,y,b),(e===`max`||e===`min`||e===`step`)&&(this._ranger=new Ranger(this.min,this.max,this.step))}get observedRecord(){return omit(super.observedRecord,ringTypeAttribute)}render(){let e=this.padValue(2),y=Math.min(...e),b=Math.max(...e),x=this._ranger.diff;return html`<div part="root" ${attr(this.observedRecord)} @mousedown="${this.disabled?null:this._handleMousedownRoot}" style="${joinDeclarations([[`--from`,`${(y-this.min)/x*100}%`],[`--to`,`${(b-this.min)/x*100}%`],...e.map((e,y)=>[`--handle-${y}`,`${(e-this.min)/x*100}%`])])}"> <div part="track"></div> ${loop(this.rangeValue.length,e=>this._renderHandle(e))} </div>`}_renderHandle(e){let{disabled:y,range:b,rangeValue:x}=this,S=!b||b&&e===x.length-1&&x.length===1;return html`<i tabindex="0" part="${tokenList(`handle`,`handle-${e}`)}" @mousedown="${y?null:this.createMouseDown(e)}" style="${joinDeclarations({"z-index":this.__focusStack.indexOf(e)+1,"--handle":`var(--${S?`to`:`handle-${e}`})`})}"></i>`}focusHandle(e){this.lastFocus=e;let y=this.__focusStack.indexOf(e);y!==-1&&this.__focusStack.splice(y,1),this.__focusStack.push(e);let b=this._handles.item(e);b?.focus(),this.__keydownEvent||=this.events.add(document,`keydown`,this.createKeydownEvent(e))}blurHandle(){this.lastFocus=void 0,this.__keydownEvent=this.events.remove(document,`keydown`,this.__keydownEvent)}createKeydownEvent(e){return y=>{let{rangeValue:b,step:x}=this;b.length<2&&(e=0);let S=b[e];y.key===`ArrowLeft`||y.key===`ArrowDown`?(y.preventDefault(),this.createSetValue(e)(S-x)):(y.key===`ArrowRight`||y.key===`ArrowUp`)&&(y.preventDefault(),this.createSetValue(e)(S+x))}}createMouseDown(e){return y=>{this.focusHandle(e),this.createMousedownListener(this.createSetValue(e))(y)}}createSetValue(e){return y=>{let b=this._ranger.normalize(y),x=b;this.range&&(x=[...this.value],x[e]=b),this.value=x,this.dispatchCustomEvent(`change`,this.value)}}_computeValue({clientX:e,clientY:y}){let{top:b,left:x,height:S,width:C}=this._root.getBoundingClientRect();return this._ranger.present(this.vertical?(y-b)/S:(e-x)/C)}_handleMousedownRoot(e){let y=this._computeValue(e),b=this.range?this.rangeValue.reduce((e,b,x)=>{let S=Math.abs(y-b),C=Math.abs(y-this.rangeValue[e]);return S<C?x:e},0):0,x=this.createSetValue(b);x(y),this.createMousedownListener(x)(e),this.focusHandle(b)}createMousedownListener(e){return y=>{y.preventDefault(),y.stopPropagation();let b=this.createMousemoveListener(e);this.events.add(document,`mousemove`,b);let x=()=>{this.events.remove(document,`mousemove`,b),this.events.remove(document,`mouseup`,x)};this.events.add(document,`mouseup`,x)}}createMousemoveListener(e){return y=>{let b=this._computeValue(y);b===this._ranger.restrict(b)&&e?.call(this,b)}}_connectedInit(){this._ranger=new Ranger(this.min,this.max,this.step);let e=this._ranger.diff;this.step||=e/100,isNullable(this.value)&&(isNullable(this.default)?this.value=Math.round(e/2/this.step)*this.step:this.value=this.default),this.default??=this.value}reset(){this.value=this.default}sort(){return this.value=this.toSorted()}toSorted(){return this.range?[...this.value].sort((e,y)=>e-y):this.value}};_decorate([property({type:Number})],Range.prototype,`min`,void 0),_decorate([property({type:Number})],Range.prototype,`max`,void 0),_decorate([property({type:Number})],Range.prototype,`step`,void 0),_decorate([property({type:Boolean,reflect:!0})],Range.prototype,`vertical`,void 0),_decorate([property({type:Array})],Range.prototype,`value`,void 0),_decorate([property({type:Array})],Range.prototype,`default`,void 0),_decorate([queryPart(`root`)],Range.prototype,`_root`,void 0),_decorate([queryAll(`[part=handle]`)],Range.prototype,`_handles`,void 0),_decorate([state()],Range.prototype,`lastFocus`,void 0),Range=_decorate([godown(protoName),styles(css`:host{${cssScope}--track-width:.5em;${cssScope}--handle-scale:1;${cssScope}--track-background:var(${cssGlobalVars.active});background:var(${cssGlobalVars.passive});width:100%;display:block;height:var(${cssScope}--track-width)}:host([contents]) [part=root]{width:inherit}:host([vertical]){height:100%;width:-moz-fit-content;width:fit-content}[part=root]{min-height:inherit;position:relative;border-radius:inherit;--from:0%;--to:50%}[part=track]{height:100%;min-height:inherit;display:flex;position:absolute;pointer-events:none;border-radius:inherit;justify-content:space-between;left:min(var(--from),var(--to));background:var(${cssScope}--track-background);width:max(calc(var(--to) - var(--from)),calc(var(--from) - var(--to)))}[part~=handle]{width:1em;height:1em;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;position:absolute;border-radius:50%;transform-origin:0 25%;outline:0;border-style:solid;border-width:.1em;transform:scale(var(${cssScope}--handle-scale)) translate(-50%,-25%);background:var(${cssGlobalVars.background});border-color:currentColor}`,css`[vertical]{height:inherit;width:var(${cssScope}--track-width)}[vertical] i{transform:translate(-25%,-50%)}[vertical] [part=track]{width:100%;height:max(calc(var(--to) - var(--from)),calc(var(--from) - var(--to)));top:min(var(--from),var(--to));left:0}`,css`[part~=handle]{left:var(--handle);top:0}[vertical] [part~=handle]{top:var(--handle);left:0} `)],Range);var Range$1=Range;export{Range,Range$1 as default};
2
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../src/web-components/range/component.ts"],"sourcesContent":["import {\n attr,\n tokenList,\n godown,\n isNullable,\n joinDeclarations,\n loop,\n queryPart,\n styles,\n Ranger,\n omit,\n} from \"@godown/element\";\nimport { type TemplateResult, css, html } from \"lit\";\nimport { property, queryAll, state } from \"lit/decorators.js\";\n\nimport { cssGlobalVars, scopePrefix } from \"../../internal/global-style.js\";\nimport { SuperInput } from \"../../internal/super-input.js\";\nimport { ringTypeAttribute } from \"../../internal/ring.js\";\n\nconst protoName = \"range\";\nconst cssScope = scopePrefix(protoName);\n\ntype RangeValue = number | number[];\n\n/**\n * {@linkcode Range} is similar to `<input type=\"range\">`.\n *\n * Value accepts number, or array.\n *\n * Number has 1 handle, the array has the number of its elements.\n *\n * @fires range - Fires when the value changes.\n * @category input\n */\n@godown(protoName)\n@styles(\n css`\n :host {\n ${cssScope}--track-width: .5em;\n ${cssScope}--handle-scale: 1;\n ${cssScope}--track-background: var(${cssGlobalVars.active});\n background: var(${cssGlobalVars.passive});\n width: 100%;\n display: block;\n height: var(${cssScope}--track-width);\n }\n\n :host([contents]) [part=\"root\"] {\n width: inherit;\n }\n\n :host([vertical]) {\n height: 100%;\n width: fit-content;\n }\n\n [part=\"root\"] {\n min-height: inherit;\n position: relative;\n border-radius: inherit;\n --from: 0%;\n --to: 50%;\n }\n\n [part=\"track\"] {\n height: 100%;\n min-height: inherit;\n display: flex;\n position: absolute;\n pointer-events: none;\n border-radius: inherit;\n justify-content: space-between;\n left: min(var(--from), var(--to));\n background: var(${cssScope}--track-background);\n width: max(calc(var(--to) - var(--from)), calc(var(--from) - var(--to)));\n }\n\n [part~=\"handle\"] {\n width: 1em;\n height: 1em;\n display: flex;\n align-items: center;\n justify-content: center;\n user-select: none;\n position: absolute;\n border-radius: 50%;\n transform-origin: 0% 25%;\n outline: 0;\n border-style: solid;\n border-width: 0.1em;\n transform: scale(var(${cssScope}--handle-scale)) translate(-50%, -25%);\n background: var(${cssGlobalVars.background});\n border-color: currentColor;\n }\n `,\n css`\n [vertical] {\n height: inherit;\n width: var(${cssScope}--track-width);\n }\n\n [vertical] i {\n transform: translate(-25%, -50%);\n }\n\n [vertical] [part=\"track\"] {\n width: 100%;\n height: max(calc(var(--to) - var(--from)), calc(var(--from) - var(--to)));\n top: min(var(--from), var(--to));\n left: 0;\n }\n `,\n css`\n [part~=\"handle\"] {\n left: var(--handle);\n top: 0;\n }\n\n [vertical] [part~=\"handle\"] {\n top: var(--handle);\n left: 0;\n }\n `,\n)\nclass Range<V extends RangeValue = RangeValue> extends SuperInput<RangeValue> {\n /**\n * Minimum value.\n */\n @property({ type: Number })\n min = 0;\n\n /**\n * Maximum value.\n */\n @property({ type: Number })\n max = 100;\n\n /**\n * Sliding step length.\n */\n @property({ type: Number })\n step: number;\n\n /**\n * Whether to display the range vertically.\n */\n @property({ type: Boolean, reflect: true })\n vertical = false;\n\n /**\n * Value, or each of values, will render a handle.\n *\n * Accepts number or array of numbers.\n */\n @property({ type: Array })\n value: V;\n\n /**\n * The default of `{@linkcode this.value}`.\n */\n @property({ type: Array })\n default: V;\n\n @queryPart(\"root\")\n protected _root: HTMLElement;\n\n @queryAll(\"[part=handle]\")\n protected _handles: NodeListOf<HTMLElement>;\n\n @state()\n lastFocus?: number;\n\n protected _ranger: Ranger;\n private __focusStack: number[] = [];\n\n get range(): V extends number ? false : true {\n return Array.isArray(this.value) as any;\n }\n\n /**\n * Return values in the form of an array.\n */\n get rangeValue(): number[] {\n return (this.range ? this.value : [this.value]) as number[];\n }\n\n /**\n * Pad the value to the specified length.\n */\n padValue(len: number, value = 0): number[] {\n const { rangeValue } = this;\n const miss = len - rangeValue.length;\n if (miss > 0) {\n return new Array(miss).fill(value).concat(rangeValue);\n }\n return rangeValue;\n }\n\n attributeChangedCallback(name: string, _old: string | null, value: string | null): void {\n super.attributeChangedCallback(name, _old, value);\n if (name === \"max\" || name === \"min\" || name === \"step\") {\n this._ranger = new Ranger(this.min, this.max, this.step);\n }\n }\n\n get observedRecord(): Record<string, any> {\n return omit(super.observedRecord, ringTypeAttribute);\n }\n\n protected render(): TemplateResult<1> {\n const rangeValue = this.padValue(2);\n const from = Math.min(...rangeValue);\n const to = Math.max(...rangeValue);\n const gap = this._ranger.diff;\n\n return html`\n <div\n part=\"root\"\n ${attr(this.observedRecord)}\n @mousedown=\"${this.disabled ? null : this._handleMousedownRoot}\"\n style=\"${joinDeclarations([\n [\"--from\", `${((from - this.min) / gap) * 100}%`],\n [\"--to\", `${((to - this.min) / gap) * 100}%`],\n ...rangeValue.map(\n (value, index) => [`--handle-${index}`, `${((value - this.min) / gap) * 100}%`] as [string, string],\n ),\n ])}\"\n >\n <div part=\"track\"></div>\n ${loop(this.rangeValue.length, (index) => this._renderHandle(index))}\n </div>\n `;\n }\n\n protected _renderHandle(index: number): TemplateResult<1> {\n const { disabled, range, rangeValue } = this;\n\n // in single-handle mod (value is a number or an array with length 1),\n const end = !range || (range && index === rangeValue.length - 1 && rangeValue.length === 1);\n return html`\n <i\n tabindex=\"0\"\n part=\"${tokenList(\"handle\", `handle-${index}`)}\"\n @mousedown=\"${disabled ? null : this.createMouseDown(index)}\"\n style=\"${joinDeclarations({\n \"z-index\": this.__focusStack.indexOf(index) + 1,\n \"--handle\": `var(--${end ? \"to\" : `handle-${index}`})`,\n })}\"\n ></i>\n `;\n }\n\n private __keydownEvent: EventListenerOrEventListenerObject;\n\n /**\n * Focuses the handle at the given index, updates the focus stack.\n * @param index - The index of the handle to focus.\n */\n focusHandle(index: number): void {\n this.lastFocus = index;\n const indexOfFocusStack = this.__focusStack.indexOf(index);\n if (indexOfFocusStack !== -1) {\n this.__focusStack.splice(indexOfFocusStack, 1);\n }\n this.__focusStack.push(index);\n const handleItem = this._handles.item(index);\n handleItem?.focus();\n if (!this.__keydownEvent) {\n this.__keydownEvent = this.events.add(document, \"keydown\", this.createKeydownEvent(index));\n }\n }\n\n /**\n * Removes the focus from the currently focused handle.\n */\n blurHandle(): void {\n this.lastFocus = undefined;\n this.__keydownEvent = this.events.remove(document, \"keydown\", this.__keydownEvent);\n }\n\n /**\n * Creates a keydown event handler that updates the value of the range based on arrow key presses.\n * @param index - The index of the handle to update.\n * @returns A function that handles the keydown event and updates the range value.\n */\n protected createKeydownEvent(index: number) {\n return (e: KeyboardEvent): void => {\n const { rangeValue, step } = this;\n if (rangeValue.length < 2) {\n index = 0;\n }\n const old = rangeValue[index];\n if (e.key === \"ArrowLeft\" || e.key === \"ArrowDown\") {\n e.preventDefault();\n this.createSetValue(index)(old - step);\n } else if (e.key === \"ArrowRight\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n this.createSetValue(index)(old + step);\n }\n };\n }\n\n /**\n * Creates a mouse down event handler that focuses the handle at the given index and sets the value of the range.\n * @param index - The index of the handle to focus.\n * @returns A function that handles the mouse down event and updates the range value.\n */\n protected createMouseDown(index: number) {\n return (e: MouseEvent): void => {\n this.focusHandle(index);\n this.createMousedownListener(this.createSetValue(index))(e);\n };\n }\n\n /**\n * Creates a function that sets the value of the range at the given index.\n * @param index - The index of the value to set.\n * @returns A function that sets the value of the range.\n */\n protected createSetValue(index: number) {\n return (value: number): void => {\n const normalizeValue = this._ranger.normalize(value);\n let newValue: RangeValue = normalizeValue;\n if (this.range) {\n newValue = [...(this.value as number[])];\n newValue[index] = normalizeValue;\n }\n this.value = newValue as V;\n this.dispatchCustomEvent(\"change\", this.value);\n };\n }\n\n /**\n * Compute value from event.\n * @returns The value closest to the event client position.\n */\n protected _computeValue({ clientX, clientY }: MouseEvent): number {\n const { top, left, height, width } = this._root.getBoundingClientRect();\n return this._ranger.present(this.vertical ? (clientY - top) / height : (clientX - left) / width);\n }\n\n /**\n * Handles the mouse down event on the root element of the range component.\n * Computes the closest value to the mouse position, sets the value, and focuses the corresponding handle.\n * @param e - The mouse down event object.\n */\n protected _handleMousedownRoot(e: MouseEvent): void {\n const value = this._computeValue(e);\n const index = this.range\n ? this.rangeValue.reduce((acc, item, index) => {\n const diff = Math.abs(value - item);\n const prevDiff = Math.abs(value - this.rangeValue[acc]);\n return diff < prevDiff ? index : acc;\n }, 0)\n : 0;\n\n const set = this.createSetValue(index);\n set(value);\n this.createMousedownListener(set)(e);\n this.focusHandle(index);\n }\n /**\n * Creates a mouse down event handler that focuses the handle at the given index and sets the value of the range.\n * @param index - The index of the handle to focus.\n * @returns A function that handles the mouse down event and updates the range value.\n */\n protected createMousedownListener(mouseMoveCallback: (arg0: number) => void) {\n return (e: MouseEvent): void => {\n e.preventDefault();\n e.stopPropagation();\n const move = this.createMousemoveListener(mouseMoveCallback);\n this.events.add(document, \"mousemove\", move);\n const stop = () => {\n this.events.remove(document, \"mousemove\", move);\n this.events.remove(document, \"mouseup\", stop);\n };\n this.events.add(document, \"mouseup\", stop);\n };\n }\n\n /**\n * Creates a mouse move event handler that updates the range value based on the mouse position.\n * @param callback - A function to call with the new value when the mouse is moved.\n * @returns A function that handles the mouse move event and updates the range value.\n */\n protected createMousemoveListener(callback: (newValue: number) => void) {\n return (e: MouseEvent): void => {\n const value = this._computeValue(e);\n if (value !== this._ranger.restrict(value)) {\n return;\n }\n callback?.call(this, value);\n };\n }\n\n protected _connectedInit(): void {\n this._ranger = new Ranger(this.min, this.max, this.step);\n const gap = this._ranger.diff;\n this.step ||= gap / 100;\n if (isNullable(this.value)) {\n if (!isNullable(this.default)) {\n this.value = this.default;\n } else {\n (this.value as number) = Math.round(gap / 2 / this.step) * this.step;\n }\n }\n this.default ??= this.value;\n }\n\n reset(): void {\n this.value = this.default;\n }\n\n sort(): V {\n return (this.value = this.toSorted());\n }\n\n toSorted(): V {\n if (this.range) {\n return [...(this.value as number[])].sort((a, b) => a - b) as V;\n }\n return this.value;\n }\n}\n\nexport default Range;\nexport { Range };\n"],"names":["Range","len: number","value","miss","len","rangeValue","name: string","_old: string | null","value: string | null","name","_old","from","to","gap","index","index: number","end","range","disabled","indexOfFocusStack","handleItem","e: KeyboardEvent","old","e","step","e: MouseEvent","value: number","normalizeValue","newValue: RangeValue","newValue","clientY","top","height","clientX","left","width","acc","item","diff","prevDiff","set","mouseMoveCallback: (arg0: number) => void","move","mouseMoveCallback","stop","callback: (newValue: number) => void","a","b"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,OAAO,WAAW,gBAAiB;AAInC,eAAe;eAEA;WACH,sBAAsB;EAC9B,gBAAgB;CACjB;AACF","names":[],"sources":["../../../src/web-components/range/definition.ts"],"sourcesContent":["import Range from \"./component.js\";\n\nRange.define();\n\nexport default Range;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-range\": Range;\n }\n}\n"],"version":3,"file":"definition.d.ts"}
@@ -1,2 +0,0 @@
1
- import Range from"./component.js";Range.define();export{Range as default};
2
- //# sourceMappingURL=definition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.js","sources":["../../src/web-components/range/definition.ts"],"sourcesContent":["import Range from \"./component.js\";\n\nRange.define();\n\nexport default Range;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-range\": Range;\n }\n}\n"],"names":[],"mappings":"kCAEA,MAAM,QAAQ"}
@@ -1 +0,0 @@
1
- {"mappings":"AACA,cAAc,sBAAiC,KAAM;AAErD,SAAS,mBAAgC,gCAAiC;;;;;;AAU1E,cA6BM,eAAe,YAAY;CAC/B,UACU,OAAO;CAEjB,UAAU,UAAU,eAAe;CAcnC;CAKA,UAAU,cAAcA,GAAG;;;;;;;;;;;CAgB3B,UAAU,eAAeA,GAAG,aAAa;EACvC;EACA;CACD;AAUF;AAED,eAAe;AACf,SAAS","names":["e: MouseEvent"],"sources":["../../../src/web-components/rotate/component.ts"],"sourcesContent":["import { godown, htmlSlot, queryPart, styles } from \"@godown/element\";\nimport { type TemplateResult, css, html } from \"lit\";\n\nimport { GlobalStyle, scopePrefix } from \"../../internal/global-style.js\";\n\nconst protoName = \"rotate\";\nconst cssScope = scopePrefix(protoName);\n\n/**\n * {@linkcode Rotate} Make child elements rotate.\n *\n * @category wrapper\n */\n@godown(protoName)\n@styles(css`\n :host {\n display: block;\n width: fit-content;\n transition: all 0.5s ease-in-out;\n ${cssScope}--offset: .5em;\n }\n\n div {\n position: relative;\n transition: inherit;\n transition-property: transform;\n }\n\n i {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n box-sizing: content-box;\n padding: var(${cssScope}--offset);\n margin: calc(-1 * var(${cssScope}--offset));\n }\n\n [part=\"slot\"] {\n z-index: 2;\n }\n`)\nclass Rotate extends GlobalStyle {\n @queryPart(\"root\")\n protected _root: HTMLElement;\n\n protected render(): TemplateResult<1> {\n return html`\n <div part=\"root\">\n <div\n part=\"slot\"\n @mousemove=\"${this._handleRotate}\"\n >\n ${htmlSlot()}\n </div>\n <i @mouseleave=\"${this.reset}\"></i>\n </div>\n `;\n }\n\n reset(): void {\n this._root.style.removeProperty(\"transform\");\n this._root.style.removeProperty(\"transition\");\n }\n\n protected _handleRotate(e: MouseEvent): void {\n const { rotateX, rotateY } = this._computeOffset(e);\n this._root.style.setProperty(\"transform\", `rotateX(${rotateX}rad) rotateY(${rotateY}rad)`);\n this._root.style.setProperty(\"transition\", \"0s\");\n }\n\n /**\n * Compute offset.\n *\n * @returns rotateX, rotateY\n * @example\n * ```ts\n * const { rotateX, rotateY } = this._computeOffset(e);\n * `rotateX(${rotateX}rad) rotateY(${rotateY}rad)`;\n * ```\n */\n protected _computeOffset(e: MouseEvent): {\n rotateX: number;\n rotateY: number;\n } {\n const { left, top, width, height } = this._root.getBoundingClientRect();\n const { clientX, clientY } = e;\n const offsetX = clientX - left;\n const offsetY = clientY - top;\n\n const rotateX = -(offsetY - height / 2) / height / 2;\n const rotateY = (offsetX - width / 2) / width / 2;\n return { rotateX, rotateY };\n }\n}\n\nexport default Rotate;\nexport { Rotate };\n"],"version":3,"file":"component.d.ts"}
@@ -1,2 +0,0 @@
1
- import{queryPart,godown,styles,htmlSlot}from"@godown/element";import{css,html}from"lit";import{scopePrefix,GlobalStyle}from"../../internal/global-style.js";import _decorate from"@oxc-project/runtime/helpers/decorate";const protoName=`rotate`,cssScope=scopePrefix(protoName);let Rotate=class e extends GlobalStyle{render(){return html`<div part="root"> <div part="slot" @mousemove="${this._handleRotate}"> ${htmlSlot()} </div> <i @mouseleave="${this.reset}"></i> </div>`}reset(){this._root.style.removeProperty(`transform`),this._root.style.removeProperty(`transition`)}_handleRotate(e){let{rotateX:r,rotateY:i}=this._computeOffset(e);this._root.style.setProperty(`transform`,`rotateX(${r}rad) rotateY(${i}rad)`),this._root.style.setProperty(`transition`,`0s`)}_computeOffset(e){let{left:r,top:i,width:a,height:o}=this._root.getBoundingClientRect(),{clientX:s,clientY:c}=e,l=s-r,u=c-i,d=-(u-o/2)/o/2,f=(l-a/2)/a/2;return{rotateX:d,rotateY:f}}};_decorate([queryPart(`root`)],Rotate.prototype,`_root`,void 0),Rotate=_decorate([godown(protoName),styles(css`:host{display:block;width:-moz-fit-content;width:fit-content;transition:all .5s ease-in-out;${cssScope}--offset:.5em}div{position:relative;transition:inherit;transition-property:transform}i{width:100%;height:100%;position:absolute;top:0;box-sizing:content-box;padding:var(${cssScope}--offset);margin:calc(-1*var(${cssScope}--offset))}[part=slot]{z-index:2}`)],Rotate);var Rotate$1=Rotate;export{Rotate,Rotate$1 as default};
2
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../src/web-components/rotate/component.ts"],"sourcesContent":["import { godown, htmlSlot, queryPart, styles } from \"@godown/element\";\nimport { type TemplateResult, css, html } from \"lit\";\n\nimport { GlobalStyle, scopePrefix } from \"../../internal/global-style.js\";\n\nconst protoName = \"rotate\";\nconst cssScope = scopePrefix(protoName);\n\n/**\n * {@linkcode Rotate} Make child elements rotate.\n *\n * @category wrapper\n */\n@godown(protoName)\n@styles(css`\n :host {\n display: block;\n width: fit-content;\n transition: all 0.5s ease-in-out;\n ${cssScope}--offset: .5em;\n }\n\n div {\n position: relative;\n transition: inherit;\n transition-property: transform;\n }\n\n i {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n box-sizing: content-box;\n padding: var(${cssScope}--offset);\n margin: calc(-1 * var(${cssScope}--offset));\n }\n\n [part=\"slot\"] {\n z-index: 2;\n }\n`)\nclass Rotate extends GlobalStyle {\n @queryPart(\"root\")\n protected _root: HTMLElement;\n\n protected render(): TemplateResult<1> {\n return html`\n <div part=\"root\">\n <div\n part=\"slot\"\n @mousemove=\"${this._handleRotate}\"\n >\n ${htmlSlot()}\n </div>\n <i @mouseleave=\"${this.reset}\"></i>\n </div>\n `;\n }\n\n reset(): void {\n this._root.style.removeProperty(\"transform\");\n this._root.style.removeProperty(\"transition\");\n }\n\n protected _handleRotate(e: MouseEvent): void {\n const { rotateX, rotateY } = this._computeOffset(e);\n this._root.style.setProperty(\"transform\", `rotateX(${rotateX}rad) rotateY(${rotateY}rad)`);\n this._root.style.setProperty(\"transition\", \"0s\");\n }\n\n /**\n * Compute offset.\n *\n * @returns rotateX, rotateY\n * @example\n * ```ts\n * const { rotateX, rotateY } = this._computeOffset(e);\n * `rotateX(${rotateX}rad) rotateY(${rotateY}rad)`;\n * ```\n */\n protected _computeOffset(e: MouseEvent): {\n rotateX: number;\n rotateY: number;\n } {\n const { left, top, width, height } = this._root.getBoundingClientRect();\n const { clientX, clientY } = e;\n const offsetX = clientX - left;\n const offsetY = clientY - top;\n\n const rotateX = -(offsetY - height / 2) / height / 2;\n const rotateY = (offsetX - width / 2) / width / 2;\n return { rotateX, rotateY };\n }\n}\n\nexport default Rotate;\nexport { Rotate };\n"],"names":["Rotate","e: MouseEvent","rotateX","rotateY","offsetX","clientX","left","offsetY","clientY","top","height","width"],"mappings":"yNAKA,MAAM,UAAY,SACZ,SAAW,YAAY,UAAU,CAOvC,IAAA,OAAA,MA6BMA,UAAe,WAAY,CAIrB,QAA4B,CACpC,MAAO,KAAI,CAAA,+CAIO,EAAE,KAAK,cAAc,GAEjC,EAAE,UAAU,CAAA,wBAEE,EAAE,KAAK,MAAM,aAEjC,CAAC,AACF,CAED,OAAc,CAEZ,AADA,KAAK,MAAM,MAAM,eAAe,YAAY,CAC5C,KAAK,MAAM,MAAM,eAAe,aAAa,AAC9C,CAES,cAAcC,EAAqB,CAC3C,GAAM,CAAE,UAAS,UAAS,CAAG,KAAK,eAAe,EAAE,CAEnD,AADA,KAAK,MAAM,MAAM,YAAY,YAAa,CAAC,QAAQ,EAAEC,EAAQ,aAAa,EAAEC,EAAQ,IAAI,CAAC,CAAC,CAC1F,KAAK,MAAM,MAAM,YAAY,aAAc,KAAK,AACjD,CAYS,eAAeF,EAGvB,CACA,GAAM,CAAE,OAAM,MAAK,QAAO,SAAQ,CAAG,KAAK,MAAM,uBAAuB,CACjE,CAAE,UAAS,UAAS,CAAG,EACvBG,EAAUC,EAAUC,EACpBC,EAAUC,EAAUC,EAEpBP,IAAYK,EAAUG,EAAS,GAAKA,EAAS,EAC7CP,GAAWC,EAAUO,EAAQ,GAAKA,EAAQ,EAChD,MAAO,CAAE,UAAS,SAAS,CAC5B,CACF,EAjFA,AA8BE,UAAA,CAAA,UAAU,OAAO,AAAA,EAAA,OAAA,UAAA,eAAA,CA9BnB,OAAA,UAAA,CAAA,OAAO,UAAU,CACjB,OAAO,GAAG,CAAC,4FAKR,EAAE,SAAS,yKAeE,EAAE,SAAS,6BACF,EAAE,SAAS,iCAMrC,CAAC,CAAC,AAAA,EAAA,OAAA,CAuDF,IAAA,SAAe"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,OAAO,YAAY,gBAAiB;AAIpC,eAAe;eAEA;WACH,sBAAsB;EAC9B,iBAAiB;CAClB;AACF","names":[],"sources":["../../../src/web-components/rotate/definition.ts"],"sourcesContent":["import Rotate from \"./component.js\";\n\nRotate.define();\n\nexport default Rotate;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-rotate\": Rotate;\n }\n}\n"],"version":3,"file":"definition.d.ts"}
@@ -1,2 +0,0 @@
1
- import Rotate from"./component.js";Rotate.define();export{Rotate as default};
2
- //# sourceMappingURL=definition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.js","sources":["../../src/web-components/rotate/definition.ts"],"sourcesContent":["import Rotate from \"./component.js\";\n\nRotate.define();\n\nexport default Rotate;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-rotate\": Rotate;\n }\n}\n"],"names":[],"mappings":"mCAEA,OAAO,QAAQ"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,SAAS,UAAU,WAAwD,iBAAkB;AAC7F,cAAc,uBAAuB,sBAA2B,KAAM;AAGtE,SAAS,mBAAmB,gCAAiC;UAEnD,WAAW;CACnB;CACA,QAAQ;CACR;AACD;UAES,oBAAoB,WAAW;CACvC;AACD;UAES,UAAU;OACZ;CACN;CACA,UAAUA,QAAQ;CAClB;AACD;AAED,cAAM;UACJ,OAAO;UACP,SAAS;UACT,QAAQ;;KAGL,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;AA0B/B,cAMM,eAAe,YAAY;CAC/B,OAAO,iBAAiB,IAAI;CAE5B,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;;;;CAKR,AACA,qBAAqB;;;;CAKrB,IAAI,UAAU;;;;CAUd,AACA;;;;CAKA,AACA;;;;CAKA,AACA,SAAS;;;;;;;;CAST,AACA,MAAM;;;;;;CAON,AACA;CAEA,IACI,OAAO,OAKG;CAAd,IAAI,UAAU;CAId;CAIA,UAAU;CAsBV;CAcA;CAKA,aAAa;CASb,UAAU,QAAQC,mBAAmB;;;;CAcrC,eAAeC;;;;CAuBf,iBAAiBA,iBAAiB,eAAe;;;;CAoBjD;;;;CAWA,mBAAmBC,cAAc,KAAK;CAQtC,OAAO;CAMP,OAAOC,mBAAmB;CAI1B;AAGD;AAED,eAAe;AACf,SAAS","names":["state?: RouteState","changedProperties: PropertyValueMap<this>","query?: string","value: typeof this.routes","pathname: string"],"sources":["../../../src/web-components/router/component.ts"],"sourcesContent":["import { Router as Mux, godown, htmlSlot, omit, parseParams, styles } from \"@godown/element\";\nimport { type PropertyValueMap, type TemplateResult, css } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n\nimport { GlobalStyle } from \"../../internal/global-style.js\";\n\ninterface RouteState {\n pathname: string;\n params: Record<string, string>;\n path: string;\n}\n\ninterface RouteResult extends RouteState {\n component: unknown;\n}\n\ninterface RouteItem {\n [key: PropertyKey]: unknown;\n path: string;\n render?: (state?: RouteState) => unknown;\n component?: unknown;\n}\n\nconst routerTypes = {\n field: \"field\",\n slotted: \"slotted\",\n united: \"united\",\n} as const;\n\ntype RouterType = keyof typeof routerTypes;\n\nconst protoName = \"router\";\n\n/**\n * {@linkcode Router} has basic routing control.\n *\n * To switch routes, use `router-link component`.\n *\n * It has two methods to collect routes.\n *\n * 1. From field `routes`, an array, each elements require \"path\".\n * 2. From child elements, which have the slot attribute for matching routes.\n *\n * If only the method 1 is used, set `type` to `\"field\"`.\n *\n * If only the method 2 is used, set `type` to `\"slotted\"`.\n *\n * `type` defaults to `\"united\"`, which will try method 1, then method 2.\n *\n * If no routes are matched, the default value (no named slot) will be rendered.\n *\n * @slot - Display slot when there is no match.\n * @slot * - Matching slot will be displayed.\n * @category navigation\n */\n@godown(protoName)\n@styles(css`\n :host {\n display: contents;\n }\n`)\nclass Router extends GlobalStyle {\n static routerInstances: Set<Router> = new Set<Router>();\n\n private __fieldRoute: Mux = new Mux();\n private __slottedRoute: Mux = new Mux();\n private __cacheRecord = new Map<string, RouteResult>();\n private __routes: RouteItem[];\n\n /**\n * Render result.\n */\n @state()\n component: unknown | TemplateResult = null;\n\n /**\n * Dynamic parameters record.\n */\n get params(): Record<string, string> {\n if (!this.path) {\n return {};\n }\n return parseParams(this.pathname, this.path);\n }\n\n /**\n * Value of matched path in routes.\n */\n @state()\n path?: string;\n\n /**\n * Current pathname (equals to location.pathname).\n */\n @property()\n pathname: string = location.pathname;\n\n /**\n * Rendered content when there is no match.\n */\n @state()\n default: TemplateResult = htmlSlot();\n\n /**\n * The type of routing sources.\n *\n * If field, it won't collect the slot attribute of the child elements.\n *\n * This property should not be changed after the rendering is complete.\n */\n @property()\n type: RouterType = routerTypes.united;\n\n /**\n * Cache accessed records.\n *\n * Emptied at each re-collection.\n */\n @property({ type: Boolean })\n cache = false;\n\n @state()\n set routes(value) {\n this.__routes = value;\n this.collectFieldRoutes(value);\n }\n\n get routes(): RouteItem[] {\n return this.__routes;\n }\n\n clear(): void {\n this.__cacheRecord.clear();\n }\n\n protected render(): unknown {\n let cached: RouteResult | undefined;\n if (this.cache && (cached = this.__cacheRecord.get(this.pathname))) {\n this.component = cached.component;\n this.path = cached.path;\n this.pathname = cached.pathname;\n }\n if (!cached) {\n switch (this.type) {\n case routerTypes.field:\n this.component = this.fieldComponent();\n break;\n case routerTypes.slotted:\n this.component = this.slottedComponent();\n break;\n default:\n this.component = this.fieldComponent() ?? this.slottedComponent();\n }\n }\n return this.component ?? this.default;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n Router.routerInstances.add(this);\n\n if (this.type !== \"field\") {\n this.observers.add(this, MutationObserver, this.collectSlottedRoutes, {\n attributes: true,\n attributeFilter: [\"slot\"],\n subtree: true,\n });\n this.collectSlottedRoutes();\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n Router.routerInstances.delete(this);\n }\n\n useRouter(): RouteResult {\n return {\n pathname: this.pathname,\n params: this.params,\n path: this.path,\n component: this.component,\n };\n }\n\n protected updated(changedProperties: PropertyValueMap<this>): void {\n const shouldDispatch = changedProperties.has(\"pathname\") || changedProperties.has(\"path\");\n if (shouldDispatch) {\n const ur = this.useRouter();\n if (!this.__cacheRecord.has(this.pathname) && this.path) {\n this.__cacheRecord.set(this.pathname, ur);\n }\n this.dispatchCustomEvent(\"change\", ur);\n }\n }\n\n /**\n * Get component from {@linkcode routes} by query.\n */\n fieldComponent(query?: string): unknown {\n query ||= this.__fieldRoute.search(this.pathname)?.pattern;\n this.path = query;\n\n if (!query) {\n return null;\n }\n\n const route = this.routes.find((r) => r.path === query);\n if (!route) {\n return null;\n }\n\n if (\"render\" in route) {\n return route.render?.(omit(this.useRouter(), \"component\")) || null;\n }\n\n return route.component;\n }\n\n /**\n * Get component from slotted elements by query.\n */\n slottedComponent(query?: string): TemplateResult<1> {\n const slottedPaths = this._slottedNames;\n query ||= this.__slottedRoute.search(this.pathname)?.pattern;\n this.path = query;\n\n if (!query) {\n return null;\n }\n\n this.path = slottedPaths.find((s) => s === query);\n if (!this.path) {\n return null;\n }\n\n return htmlSlot(this.path);\n }\n\n /**\n * Reset the route tree, clear cache, collect routes from child elements.\n */\n collectSlottedRoutes(): void {\n this.__slottedRoute = new Mux();\n this.clear();\n this._slottedNames.forEach((slotName) => {\n this.__slottedRoute.insert(slotName);\n });\n }\n\n /**\n * Reset the route tree, clear cache, collect routes from value.\n */\n collectFieldRoutes(value: typeof this.routes): void {\n this.__fieldRoute = new Mux();\n this.clear();\n value.forEach(({ path }) => {\n this.__fieldRoute.insert(path);\n });\n }\n\n static updateAll(): void {\n this.routerInstances.forEach((i) => {\n i.handlePopstate();\n });\n }\n\n search(pathname: string): Mux {\n return this.__fieldRoute.search(pathname) || this.__slottedRoute.search(pathname);\n }\n\n handlePopstate: () => void = this.events.add(window, \"popstate\", () => {\n this.pathname = location.pathname;\n });\n}\n\nexport default Router;\nexport { Router };\n"],"version":3,"file":"component.d.ts"}
@@ -1,3 +0,0 @@
1
- import{godown,styles,Router as Router$2,htmlSlot,parseParams,omit}from"@godown/element";import{css}from"lit";import{state,property}from"lit/decorators.js";import{GlobalStyle}from"../../internal/global-style.js";import _decorate from"@oxc-project/runtime/helpers/decorate";var _Router;const routerTypes={field:`field`,slotted:`slotted`,united:`united`},protoName=`router`;let Router=_Router=class e extends GlobalStyle{constructor(...e){super(...e),this.__fieldRoute=new Router$2,this.__slottedRoute=new Router$2,this.__cacheRecord=new Map,this.component=null,this.pathname=location.pathname,this.default=htmlSlot(),this.type=routerTypes.united,this.cache=!1,this.handlePopstate=this.events.add(window,`popstate`,()=>{this.pathname=location.pathname})}get params(){return this.path?parseParams(this.pathname,this.path):{}}set routes(e){this.__routes=e,this.collectFieldRoutes(e)}get routes(){return this.__routes}clear(){this.__cacheRecord.clear()}render(){let e;if(this.cache&&(e=this.__cacheRecord.get(this.pathname))&&(this.component=e.component,this.path=e.path,this.pathname=e.pathname),!e)switch(this.type){case routerTypes.field:this.component=this.fieldComponent();break;case routerTypes.slotted:this.component=this.slottedComponent();break;default:this.component=this.fieldComponent()??this.slottedComponent()}return this.component??this.default}connectedCallback(){super.connectedCallback(),_Router.routerInstances.add(this),this.type!==`field`&&(this.observers.add(this,MutationObserver,this.collectSlottedRoutes,{attributes:!0,attributeFilter:[`slot`],subtree:!0}),this.collectSlottedRoutes())}disconnectedCallback(){super.disconnectedCallback(),_Router.routerInstances.delete(this)}useRouter(){return{pathname:this.pathname,params:this.params,path:this.path,component:this.component}}updated(e){let h=e.has(`pathname`)||e.has(`path`);if(h){let e=this.useRouter();!this.__cacheRecord.has(this.pathname)&&this.path&&this.__cacheRecord.set(this.pathname,e),this.dispatchCustomEvent(`change`,e)}}fieldComponent(e){if(e||=this.__fieldRoute.search(this.pathname)?.pattern,this.path=e,!e)return null;let h=this.routes.find(h=>h.path===e);return h?`render`in h?h.render?.(omit(this.useRouter(),`component`))||null:h.component:null}slottedComponent(e){let h=this._slottedNames;return e||=this.__slottedRoute.search(this.pathname)?.pattern,this.path=e,!e||(this.path=h.find(h=>h===e),!this.path)?null:htmlSlot(this.path)}collectSlottedRoutes(){this.__slottedRoute=new Router$2,this.clear(),this._slottedNames.forEach(e=>{this.__slottedRoute.insert(e)})}collectFieldRoutes(e){this.__fieldRoute=new Router$2,this.clear(),e.forEach(({path:e})=>{this.__fieldRoute.insert(e)})}static updateAll(){this.routerInstances.forEach(e=>{e.handlePopstate()})}search(e){return this.__fieldRoute.search(e)||this.__slottedRoute.search(e)}};_decorate([state()],Router.prototype,`component`,void 0),_decorate([state()],Router.prototype,`path`,void 0),_decorate([property()],Router.prototype,`pathname`,void 0),_decorate([state()],Router.prototype,`default`,void 0),_decorate([property()],Router.prototype,`type`,void 0),_decorate([property({type:Boolean})],Router.prototype,`cache`,void 0),_decorate([state()],Router.prototype,`routes`,null),Router=_Router=_decorate([godown(protoName),styles(css`:host{display:contents}
2
- `)],Router),Router.routerInstances=new Set;var Router$1=Router;export{Router,Router$1 as default};
3
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../src/web-components/router/component.ts"],"sourcesContent":["import { Router as Mux, godown, htmlSlot, omit, parseParams, styles } from \"@godown/element\";\nimport { type PropertyValueMap, type TemplateResult, css } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n\nimport { GlobalStyle } from \"../../internal/global-style.js\";\n\ninterface RouteState {\n pathname: string;\n params: Record<string, string>;\n path: string;\n}\n\ninterface RouteResult extends RouteState {\n component: unknown;\n}\n\ninterface RouteItem {\n [key: PropertyKey]: unknown;\n path: string;\n render?: (state?: RouteState) => unknown;\n component?: unknown;\n}\n\nconst routerTypes = {\n field: \"field\",\n slotted: \"slotted\",\n united: \"united\",\n} as const;\n\ntype RouterType = keyof typeof routerTypes;\n\nconst protoName = \"router\";\n\n/**\n * {@linkcode Router} has basic routing control.\n *\n * To switch routes, use `router-link component`.\n *\n * It has two methods to collect routes.\n *\n * 1. From field `routes`, an array, each elements require \"path\".\n * 2. From child elements, which have the slot attribute for matching routes.\n *\n * If only the method 1 is used, set `type` to `\"field\"`.\n *\n * If only the method 2 is used, set `type` to `\"slotted\"`.\n *\n * `type` defaults to `\"united\"`, which will try method 1, then method 2.\n *\n * If no routes are matched, the default value (no named slot) will be rendered.\n *\n * @slot - Display slot when there is no match.\n * @slot * - Matching slot will be displayed.\n * @category navigation\n */\n@godown(protoName)\n@styles(css`\n :host {\n display: contents;\n }\n`)\nclass Router extends GlobalStyle {\n static routerInstances: Set<Router> = new Set<Router>();\n\n private __fieldRoute: Mux = new Mux();\n private __slottedRoute: Mux = new Mux();\n private __cacheRecord = new Map<string, RouteResult>();\n private __routes: RouteItem[];\n\n /**\n * Render result.\n */\n @state()\n component: unknown | TemplateResult = null;\n\n /**\n * Dynamic parameters record.\n */\n get params(): Record<string, string> {\n if (!this.path) {\n return {};\n }\n return parseParams(this.pathname, this.path);\n }\n\n /**\n * Value of matched path in routes.\n */\n @state()\n path?: string;\n\n /**\n * Current pathname (equals to location.pathname).\n */\n @property()\n pathname: string = location.pathname;\n\n /**\n * Rendered content when there is no match.\n */\n @state()\n default: TemplateResult = htmlSlot();\n\n /**\n * The type of routing sources.\n *\n * If field, it won't collect the slot attribute of the child elements.\n *\n * This property should not be changed after the rendering is complete.\n */\n @property()\n type: RouterType = routerTypes.united;\n\n /**\n * Cache accessed records.\n *\n * Emptied at each re-collection.\n */\n @property({ type: Boolean })\n cache = false;\n\n @state()\n set routes(value) {\n this.__routes = value;\n this.collectFieldRoutes(value);\n }\n\n get routes(): RouteItem[] {\n return this.__routes;\n }\n\n clear(): void {\n this.__cacheRecord.clear();\n }\n\n protected render(): unknown {\n let cached: RouteResult | undefined;\n if (this.cache && (cached = this.__cacheRecord.get(this.pathname))) {\n this.component = cached.component;\n this.path = cached.path;\n this.pathname = cached.pathname;\n }\n if (!cached) {\n switch (this.type) {\n case routerTypes.field:\n this.component = this.fieldComponent();\n break;\n case routerTypes.slotted:\n this.component = this.slottedComponent();\n break;\n default:\n this.component = this.fieldComponent() ?? this.slottedComponent();\n }\n }\n return this.component ?? this.default;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n Router.routerInstances.add(this);\n\n if (this.type !== \"field\") {\n this.observers.add(this, MutationObserver, this.collectSlottedRoutes, {\n attributes: true,\n attributeFilter: [\"slot\"],\n subtree: true,\n });\n this.collectSlottedRoutes();\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n Router.routerInstances.delete(this);\n }\n\n useRouter(): RouteResult {\n return {\n pathname: this.pathname,\n params: this.params,\n path: this.path,\n component: this.component,\n };\n }\n\n protected updated(changedProperties: PropertyValueMap<this>): void {\n const shouldDispatch = changedProperties.has(\"pathname\") || changedProperties.has(\"path\");\n if (shouldDispatch) {\n const ur = this.useRouter();\n if (!this.__cacheRecord.has(this.pathname) && this.path) {\n this.__cacheRecord.set(this.pathname, ur);\n }\n this.dispatchCustomEvent(\"change\", ur);\n }\n }\n\n /**\n * Get component from {@linkcode routes} by query.\n */\n fieldComponent(query?: string): unknown {\n query ||= this.__fieldRoute.search(this.pathname)?.pattern;\n this.path = query;\n\n if (!query) {\n return null;\n }\n\n const route = this.routes.find((r) => r.path === query);\n if (!route) {\n return null;\n }\n\n if (\"render\" in route) {\n return route.render?.(omit(this.useRouter(), \"component\")) || null;\n }\n\n return route.component;\n }\n\n /**\n * Get component from slotted elements by query.\n */\n slottedComponent(query?: string): TemplateResult<1> {\n const slottedPaths = this._slottedNames;\n query ||= this.__slottedRoute.search(this.pathname)?.pattern;\n this.path = query;\n\n if (!query) {\n return null;\n }\n\n this.path = slottedPaths.find((s) => s === query);\n if (!this.path) {\n return null;\n }\n\n return htmlSlot(this.path);\n }\n\n /**\n * Reset the route tree, clear cache, collect routes from child elements.\n */\n collectSlottedRoutes(): void {\n this.__slottedRoute = new Mux();\n this.clear();\n this._slottedNames.forEach((slotName) => {\n this.__slottedRoute.insert(slotName);\n });\n }\n\n /**\n * Reset the route tree, clear cache, collect routes from value.\n */\n collectFieldRoutes(value: typeof this.routes): void {\n this.__fieldRoute = new Mux();\n this.clear();\n value.forEach(({ path }) => {\n this.__fieldRoute.insert(path);\n });\n }\n\n static updateAll(): void {\n this.routerInstances.forEach((i) => {\n i.handlePopstate();\n });\n }\n\n search(pathname: string): Mux {\n return this.__fieldRoute.search(pathname) || this.__slottedRoute.search(pathname);\n }\n\n handlePopstate: () => void = this.events.add(window, \"popstate\", () => {\n this.pathname = location.pathname;\n });\n}\n\nexport default Router;\nexport { Router };\n"],"names":["Router","Mux","value","cached: RouteResult | undefined","cached","changedProperties: PropertyValueMap<this>","shouldDispatch","ur","query?: string","query","route","r","slottedPaths","s","slotName","value: typeof this.routes","path","i","pathname: string","pathname"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,OAAO,YAAY,gBAAiB;AAIpC,eAAe;eAEA;WACH,sBAAsB;EAC9B,iBAAiB;CAClB;AACF","names":[],"sources":["../../../src/web-components/router/definition.ts"],"sourcesContent":["import Router from \"./component.js\";\n\nRouter.define();\n\nexport default Router;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-router\": Router;\n }\n}\n"],"version":3,"file":"definition.d.ts"}
@@ -1,2 +0,0 @@
1
- import Router from"./component.js";Router.define();export{Router as default};
2
- //# sourceMappingURL=definition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.js","sources":["../../src/web-components/router/definition.ts"],"sourcesContent":["import Router from \"./component.js\";\n\nRouter.define();\n\nexport default Router;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-router\": Router;\n }\n}\n"],"names":[],"mappings":"mCAEA,OAAO,QAAQ"}
@@ -1 +0,0 @@
1
- {"mappings":"AAEA,cAAc,sBAA0C,KAAM;AAG9D,OAAO,WAAW,uBAAwB;;;;;;;;;;AA4B1C,cAiCM,eAAe,MAAM;CACzB,AACA;CAEA,AACA;CAEA,AACA;CAEA,AACA,QAAQ;EACN;EACA;CACD;CAED,AACA,UAAU;CAEV,UAAU,aAAa;CACvB,UAAU;CACV,UAAU;CAEV,UAAU,UAAU,eAAe;CAuCnC,UAAU,iBAAiB,eAAe;CAM1C,UAAU;CAkBV,UAAU;CAMV;CAKA,OAAOA,eAAeC,gBAAgB,IAAI;CAiB1C;CAOA;CAeA;CAQA,MAAMC,UAAU;CAMhB;AAKD;AAED,eAAe;AACf,SAAS","names":["value: string","label: string","options?: FocusOptions"],"sources":["../../../src/web-components/select/component.ts"],"sourcesContent":["import { type HandlerEvent, attr, godown, htmlSlot, queryPart, styles } from \"@godown/element\";\nimport svgCaretDown from \"../../internal/icons/caret-down.js\";\nimport { type TemplateResult, css, html, nothing } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\nimport Input from \"../input/component.js\";\nimport { hidePopover, showPopover } from \"../../internal/popover.js\";\nimport { memoize } from \"../../internal/utils.js\";\n\nconst supportsPositionArea = memoize(() => CSS.supports(\"position-area:top\"));\n\nfunction updateSelected(element: HTMLElement | null, operation: 0 | 1) {\n if (element) {\n const name = \"selected\";\n if (operation) {\n element.setAttribute(name, \"\");\n } else {\n element.removeAttribute(name);\n }\n }\n}\n\nconst protoName = \"select\";\n\n/**\n * {@linkcode Select} is similar to `<select>`.\n *\n * @fires input - Fires when the input value changes.\n * @fires change - Fires when the input value changes.\n * @fires select - Fires when select an option.\n * @slot - Options.\n * @category input\n */\n@godown(protoName)\n@styles(css`\n [part=\"root\"] {\n position: relative;\n anchor-name: --select;\n }\n\n label {\n display: contents;\n }\n\n [part=\"popover\"] {\n border: 0;\n width: 100%;\n background: none;\n position-anchor: --select;\n position-area: bottom center;\n position-try-fallbacks: flip-block;\n }\n\n [part=\"input\"] {\n text-overflow: ellipsis;\n }\n\n @supports not (position-area: top) {\n [part=\"popover\"] {\n left: 0;\n top: 100%;\n display: none;\n position: absolute;\n }\n }\n`)\nclass Select extends Input {\n @property()\n text: string;\n\n @property({ type: Boolean })\n multiple = false;\n\n @property({ type: Boolean })\n noEdit = false;\n\n @property({ type: Array })\n values: {\n value: string;\n label?: string;\n }[] = [];\n\n @queryPart(\"popover\")\n _popover: HTMLElement;\n\n protected lastChecked: HTMLElement;\n protected defaultText: string;\n protected optionsVisible = false;\n\n protected render(): TemplateResult<1> {\n const inputNoEdit = this.noEdit || this.disabled;\n return html`\n <label\n part=\"root\"\n ${attr(this.observedRecord)}\n >\n ${[\n this._renderPrefix(),\n this.noEdit\n ? html`\n <input style=\"position: absolute;inset: 0;opacity: 0;\" />\n `\n : \"\",\n html`\n <input\n part=\"input\"\n .value=\"${this.text}\"\n ?autofocus=\"${this.autofocus}\"\n ?disabled=\"${inputNoEdit}\"\n autocapitalize=\"${this.autocapitalize || nothing}\"\n autocomplete=\"${this.autocomplete || nothing}\"\n placeholder=\"${this.placeholder || nothing}\"\n @input=\"${inputNoEdit ? null : this._handleInput}\"\n @change=\"${inputNoEdit ? null : this._handleChange}\"\n />\n `,\n this._renderSuffix(),\n ]}\n <div\n part=\"popover\"\n popover=\"${supportsPositionArea() ? \"manual\" : nothing}\"\n >\n ${htmlSlot()}\n </div>\n </label>\n `;\n }\n\n protected _renderSuffix(): TemplateResult<1> {\n return html`\n <i part=\"suffix\">${htmlSlot(\"suffix\", svgCaretDown())}</i>\n `;\n }\n\n protected firstUpdated(): void {\n this.events.add(this._slot, \"click\", (e: HandlerEvent<HTMLOptionElement>) => {\n const { target } = e;\n if (target.tagName !== \"OPTION\") {\n return;\n }\n e.preventDefault();\n const { label, value } = target;\n const operation = this.select(value, label);\n if (!this.multiple) {\n updateSelected(this.lastChecked, 0);\n this.hideOptions();\n }\n updateSelected(target, operation);\n this.lastChecked = target;\n });\n }\n\n protected _connectedInit(): void {\n this.default = this.value ??= \"\";\n this.defaultText = this.text ??= \"\";\n this.events.add(this, \"focus\", this.showOptions);\n }\n\n reset(): void {\n this.value = this.default;\n this.text = this.defaultText;\n }\n\n select(value: string, label: string): 0 | 1 {\n label ||= value;\n let operation: 0 | 1 = 0;\n const i = this.values.findIndex((s) => s.value === value);\n if (i > -1) {\n this.values.splice(i, 1);\n } else {\n this.values.push({ value, label });\n operation = 1;\n }\n this.checkValues();\n this.value = this.values.map((s) => s.value).join(\",\");\n this.text = this.values.map((s) => s.label).join(\", \");\n this.dispatchCustomEvent(\"select\", this.value);\n return operation;\n }\n\n checkValues(): void {\n if (!this.multiple && this.values.length > 1) {\n this.values.splice(0, this.values.length - 1);\n this.requestUpdate();\n }\n }\n\n showOptions(): void {\n if (this.optionsVisible) {\n return;\n }\n showPopover(this._popover);\n const listener = (e) => {\n if (!this.contains(e.target)) {\n this.hideOptions();\n this.events.remove(document, \"click\", listener);\n }\n };\n this.events.add(document, \"click\", listener);\n this.optionsVisible = true;\n }\n\n hideOptions(): void {\n if (!this.optionsVisible) {\n return;\n }\n hidePopover(this._popover);\n this.optionsVisible = false;\n }\n\n focus(options?: FocusOptions): void {\n super.focus();\n this._input.focus(options);\n this.showOptions();\n }\n\n blur(): void {\n super.blur();\n this._input.blur();\n hidePopover(this._popover);\n }\n}\n\nexport default Select;\nexport { Select };\n"],"version":3,"file":"component.d.ts"}
@@ -1,3 +0,0 @@
1
- import{queryPart,godown,styles,attr,htmlSlot}from"@godown/element";import _default from"../../internal/icons/caret-down.js";import{css,nothing,html}from"lit";import{property}from"lit/decorators.js";import Input from"../input/component.js";import{showPopover,hidePopover}from"../../internal/popover.js";import{memoize}from"../../internal/utils.js";import _decorate from"@oxc-project/runtime/helpers/decorate";const supportsPositionArea=memoize(()=>CSS.supports(`position-area:top`));function updateSelected(e,g){if(e){let _=`selected`;g?e.setAttribute(_,``):e.removeAttribute(_)}}const protoName=`select`;let Select=class e extends Input{constructor(...e){super(...e),this.multiple=!1,this.noEdit=!1,this.values=[],this.optionsVisible=!1}render(){let e=this.noEdit||this.disabled;return html`<label part="root" ${attr(this.observedRecord)}> ${[this._renderPrefix(),this.noEdit?html`<input style="position: absolute;inset: 0;opacity: 0;"/> `:``,html`<input part="input" .value="${this.text}" ?autofocus="${this.autofocus}" ?disabled="${e}" autocapitalize="${this.autocapitalize||nothing}" autocomplete="${this.autocomplete||nothing}" placeholder="${this.placeholder||nothing}" @input="${e?null:this._handleInput}" @change="${e?null:this._handleChange}"/>`,this._renderSuffix()]} <div part="popover" popover="${supportsPositionArea()?`manual`:nothing}"> ${htmlSlot()} </div> </label>`}_renderSuffix(){return html`<i part="suffix">${htmlSlot(`suffix`,_default())}</i>`}firstUpdated(){this.events.add(this._slot,`click`,e=>{let{target:g}=e;if(g.tagName!==`OPTION`)return;e.preventDefault();let{label:_,value:v}=g,y=this.select(v,_);this.multiple||(updateSelected(this.lastChecked,0),this.hideOptions()),updateSelected(g,y),this.lastChecked=g})}_connectedInit(){this.default=this.value??=``,this.defaultText=this.text??=``,this.events.add(this,`focus`,this.showOptions)}reset(){this.value=this.default,this.text=this.defaultText}select(e,g){g||=e;let _=0,v=this.values.findIndex(g=>g.value===e);return v>-1?this.values.splice(v,1):(this.values.push({value:e,label:g}),_=1),this.checkValues(),this.value=this.values.map(e=>e.value).join(`,`),this.text=this.values.map(e=>e.label).join(`, `),this.dispatchCustomEvent(`select`,this.value),_}checkValues(){!this.multiple&&this.values.length>1&&(this.values.splice(0,this.values.length-1),this.requestUpdate())}showOptions(){if(this.optionsVisible)return;showPopover(this._popover);let e=g=>{this.contains(g.target)||(this.hideOptions(),this.events.remove(document,`click`,e))};this.events.add(document,`click`,e),this.optionsVisible=!0}hideOptions(){this.optionsVisible&&(hidePopover(this._popover),this.optionsVisible=!1)}focus(e){super.focus(),this._input.focus(e),this.showOptions()}blur(){super.blur(),this._input.blur(),hidePopover(this._popover)}};_decorate([property()],Select.prototype,`text`,void 0),_decorate([property({type:Boolean})],Select.prototype,`multiple`,void 0),_decorate([property({type:Boolean})],Select.prototype,`noEdit`,void 0),_decorate([property({type:Array})],Select.prototype,`values`,void 0),_decorate([queryPart(`popover`)],Select.prototype,`_popover`,void 0),Select=_decorate([godown(protoName),styles(css`[part=root]{position:relative;anchor-name:--select}label{display:contents}[part=popover]{border:0;width:100%;background:0 0;position-anchor:--select;position-area:bottom center;position-try-fallbacks:flip-block}[part=input]{text-overflow:ellipsis}@supports not (position-area:top){[part=popover]{left:0;top:100%;display:none;position:absolute}}
2
- `)],Select);var Select$1=Select;export{Select,Select$1 as default};
3
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../src/web-components/select/component.ts"],"sourcesContent":["import { type HandlerEvent, attr, godown, htmlSlot, queryPart, styles } from \"@godown/element\";\nimport svgCaretDown from \"../../internal/icons/caret-down.js\";\nimport { type TemplateResult, css, html, nothing } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\nimport Input from \"../input/component.js\";\nimport { hidePopover, showPopover } from \"../../internal/popover.js\";\nimport { memoize } from \"../../internal/utils.js\";\n\nconst supportsPositionArea = memoize(() => CSS.supports(\"position-area:top\"));\n\nfunction updateSelected(element: HTMLElement | null, operation: 0 | 1) {\n if (element) {\n const name = \"selected\";\n if (operation) {\n element.setAttribute(name, \"\");\n } else {\n element.removeAttribute(name);\n }\n }\n}\n\nconst protoName = \"select\";\n\n/**\n * {@linkcode Select} is similar to `<select>`.\n *\n * @fires input - Fires when the input value changes.\n * @fires change - Fires when the input value changes.\n * @fires select - Fires when select an option.\n * @slot - Options.\n * @category input\n */\n@godown(protoName)\n@styles(css`\n [part=\"root\"] {\n position: relative;\n anchor-name: --select;\n }\n\n label {\n display: contents;\n }\n\n [part=\"popover\"] {\n border: 0;\n width: 100%;\n background: none;\n position-anchor: --select;\n position-area: bottom center;\n position-try-fallbacks: flip-block;\n }\n\n [part=\"input\"] {\n text-overflow: ellipsis;\n }\n\n @supports not (position-area: top) {\n [part=\"popover\"] {\n left: 0;\n top: 100%;\n display: none;\n position: absolute;\n }\n }\n`)\nclass Select extends Input {\n @property()\n text: string;\n\n @property({ type: Boolean })\n multiple = false;\n\n @property({ type: Boolean })\n noEdit = false;\n\n @property({ type: Array })\n values: {\n value: string;\n label?: string;\n }[] = [];\n\n @queryPart(\"popover\")\n _popover: HTMLElement;\n\n protected lastChecked: HTMLElement;\n protected defaultText: string;\n protected optionsVisible = false;\n\n protected render(): TemplateResult<1> {\n const inputNoEdit = this.noEdit || this.disabled;\n return html`\n <label\n part=\"root\"\n ${attr(this.observedRecord)}\n >\n ${[\n this._renderPrefix(),\n this.noEdit\n ? html`\n <input style=\"position: absolute;inset: 0;opacity: 0;\" />\n `\n : \"\",\n html`\n <input\n part=\"input\"\n .value=\"${this.text}\"\n ?autofocus=\"${this.autofocus}\"\n ?disabled=\"${inputNoEdit}\"\n autocapitalize=\"${this.autocapitalize || nothing}\"\n autocomplete=\"${this.autocomplete || nothing}\"\n placeholder=\"${this.placeholder || nothing}\"\n @input=\"${inputNoEdit ? null : this._handleInput}\"\n @change=\"${inputNoEdit ? null : this._handleChange}\"\n />\n `,\n this._renderSuffix(),\n ]}\n <div\n part=\"popover\"\n popover=\"${supportsPositionArea() ? \"manual\" : nothing}\"\n >\n ${htmlSlot()}\n </div>\n </label>\n `;\n }\n\n protected _renderSuffix(): TemplateResult<1> {\n return html`\n <i part=\"suffix\">${htmlSlot(\"suffix\", svgCaretDown())}</i>\n `;\n }\n\n protected firstUpdated(): void {\n this.events.add(this._slot, \"click\", (e: HandlerEvent<HTMLOptionElement>) => {\n const { target } = e;\n if (target.tagName !== \"OPTION\") {\n return;\n }\n e.preventDefault();\n const { label, value } = target;\n const operation = this.select(value, label);\n if (!this.multiple) {\n updateSelected(this.lastChecked, 0);\n this.hideOptions();\n }\n updateSelected(target, operation);\n this.lastChecked = target;\n });\n }\n\n protected _connectedInit(): void {\n this.default = this.value ??= \"\";\n this.defaultText = this.text ??= \"\";\n this.events.add(this, \"focus\", this.showOptions);\n }\n\n reset(): void {\n this.value = this.default;\n this.text = this.defaultText;\n }\n\n select(value: string, label: string): 0 | 1 {\n label ||= value;\n let operation: 0 | 1 = 0;\n const i = this.values.findIndex((s) => s.value === value);\n if (i > -1) {\n this.values.splice(i, 1);\n } else {\n this.values.push({ value, label });\n operation = 1;\n }\n this.checkValues();\n this.value = this.values.map((s) => s.value).join(\",\");\n this.text = this.values.map((s) => s.label).join(\", \");\n this.dispatchCustomEvent(\"select\", this.value);\n return operation;\n }\n\n checkValues(): void {\n if (!this.multiple && this.values.length > 1) {\n this.values.splice(0, this.values.length - 1);\n this.requestUpdate();\n }\n }\n\n showOptions(): void {\n if (this.optionsVisible) {\n return;\n }\n showPopover(this._popover);\n const listener = (e) => {\n if (!this.contains(e.target)) {\n this.hideOptions();\n this.events.remove(document, \"click\", listener);\n }\n };\n this.events.add(document, \"click\", listener);\n this.optionsVisible = true;\n }\n\n hideOptions(): void {\n if (!this.optionsVisible) {\n return;\n }\n hidePopover(this._popover);\n this.optionsVisible = false;\n }\n\n focus(options?: FocusOptions): void {\n super.focus();\n this._input.focus(options);\n this.showOptions();\n }\n\n blur(): void {\n super.blur();\n this._input.blur();\n hidePopover(this._popover);\n }\n}\n\nexport default Select;\nexport { Select };\n"],"names":["element: HTMLElement | null","operation: 0 | 1","element","name","operation","Select","inputNoEdit","svgCaretDown","e: HandlerEvent<HTMLOptionElement>","target","value","label","value: string","label: string","i","s","listener","e","options?: FocusOptions","options"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,OAAO,YAAY,gBAAiB;AAIpC,eAAe;eAEA;WACH,sBAAsB;EAC9B,iBAAiB;CAClB;AACF","names":[],"sources":["../../../src/web-components/select/definition.ts"],"sourcesContent":["import Select from \"./component.js\";\n\nSelect.define();\n\nexport default Select;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-select\": Select;\n }\n}\n"],"version":3,"file":"definition.d.ts"}
@@ -1,2 +0,0 @@
1
- import Select from"./component.js";Select.define();export{Select as default};
2
- //# sourceMappingURL=definition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.js","sources":["../../src/web-components/select/definition.ts"],"sourcesContent":["import Select from \"./component.js\";\n\nSelect.define();\n\nexport default Select;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-select\": Select;\n }\n}\n"],"names":[],"mappings":"mCAEA,OAAO,QAAQ"}
@@ -1,2 +0,0 @@
1
- import{godown,styles,htmlSlot}from"@godown/element";import{css,html}from"lit";import{state}from"lit/decorators.js";import{scopePrefix,cssGlobalVars,GlobalStyle}from"../../internal/global-style.js";import _decorate from"@oxc-project/runtime/helpers/decorate";const protoName=`skeleton`,cssScope=scopePrefix(protoName);let Skeleton=class e extends GlobalStyle{constructor(...e){super(...e),this.loading=!0}render(){return this.loading?html`<div part="root">${htmlSlot(`loading`)}</div>`:htmlSlot()}};_decorate([state()],Skeleton.prototype,`loading`,void 0),Skeleton=_decorate([godown(protoName),styles(css`:host{${cssScope}--from:var(${cssGlobalVars.background});${cssScope}--to:var(${cssGlobalVars.passive});${cssScope}--deg:95deg;${cssScope}--duration:2s;height:2em;width:100%;flex-shrink:0;overflow:hidden;background-color:transparent;background-size:200% 100%;background-image:linear-gradient(var(${cssScope}--deg),var(${cssScope}--from) 36%,var(${cssScope}--to) 50%,var(${cssScope}--from) 64%);animation:_ var(${cssScope}--duration) ease-in-out infinite none running}@keyframes _{0%{background-position:150%center}to{background-position:-50%center}}[part=root]{display:contents}:host,:host([contents]) [part=root]{display:block}`)],Skeleton);var Skeleton$1=Skeleton;export{Skeleton,Skeleton$1 as default};
2
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../src/web-components/skeleton/component.ts"],"sourcesContent":["import { godown, htmlSlot, styles } from \"@godown/element\";\nimport { type TemplateResult, css, html } from \"lit\";\nimport { state } from \"lit/decorators.js\";\n\nimport { GlobalStyle, cssGlobalVars, scopePrefix } from \"../../internal/global-style.js\";\n\nconst protoName = \"skeleton\";\nconst cssScope = scopePrefix(protoName);\n\n/**\n * {@linkcode Skeleton} renders a skeleton screen.\n *\n * @slot loading - The content if loading is true.\n * @slot - The content if loading is false.\n * @category feedback\n */\n@godown(protoName)\n@styles(css`\n :host {\n ${cssScope}--from: var(${cssGlobalVars.background});\n ${cssScope}--to: var(${cssGlobalVars.passive});\n ${cssScope}--deg: 95deg;\n ${cssScope}--duration: 2s;\n height: 2em;\n width: 100%;\n flex-shrink: 0;\n overflow: hidden;\n background-color: transparent;\n background-size: 200% 100%;\n background-image: linear-gradient(\n var(${cssScope}--deg),\n var(${cssScope}--from) 36%,\n var(${cssScope}--to) 50%,\n var(${cssScope}--from) 64%\n );\n animation: _ var(${cssScope}--duration) ease-in-out infinite none running;\n }\n\n @keyframes _ {\n from {\n background-position: 150% center;\n }\n to {\n background-position: -50% center;\n }\n }\n\n [part=\"root\"] {\n display: contents;\n }\n\n :host,\n :host([contents]) [part=\"root\"] {\n display: block;\n }\n`)\nclass Skeleton extends GlobalStyle {\n /**\n * If false, render slot only.\n */\n @state()\n loading = true;\n\n protected render(): TemplateResult<1> {\n if (!this.loading) {\n return htmlSlot();\n }\n return html`\n <div part=\"root\">${htmlSlot(\"loading\")}</div>\n `;\n }\n}\n\nexport default Skeleton;\nexport { Skeleton };\n"],"names":["Skeleton"],"mappings":"kQAMA,MAAM,UAAY,WACZ,SAAW,YAAY,UAAU,CASvC,IAAA,SAAA,MAwCMA,UAAiB,WAAY,oCAKjC,SAAU,EAEA,QAA4B,CAIpC,OAHK,KAAK,QAGH,IAAI,CAAA,iBACQ,EAAE,SAAS,UAAU,CAAC,MACzC,CAAC,CAJQ,UAAU,AAKpB,CACF,EAvDA,WA4CE,OAAO,AAAA,EAAA,SAAA,UAAA,iBAAA,CA5CT,SAAA,UAAA,CAAA,OAAO,UAAU,CACjB,OAAO,GAAG,CAAC,MAER,EAAE,SAAS,WAAY,EAAE,cAAc,WAAW,EAClD,EAAE,SAAS,SAAU,EAAE,cAAc,QAAQ,EAC7C,EAAE,SAAS,YACX,EAAE,SAAS,8JAQL,EAAE,SAAS,WACX,EAAE,SAAS,gBACX,EAAE,SAAS,cACX,EAAE,SAAS,6BAEA,EAAE,SAAS,+MAoBhC,CAAC,CAAC,AAAA,EAAA,SAAA,CAkBF,IAAA,WAAe"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,OAAO,cAAc,gBAAiB;AAItC,eAAe;eAEA;WACH,sBAAsB;EAC9B,mBAAmB;CACpB;AACF","names":[],"sources":["../../../src/web-components/skeleton/definition.ts"],"sourcesContent":["import Skeleton from \"./component.js\";\n\nSkeleton.define();\n\nexport default Skeleton;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-skeleton\": Skeleton;\n }\n}\n"],"version":3,"file":"definition.d.ts"}
@@ -1,2 +0,0 @@
1
- import Skeleton from"./component.js";Skeleton.define();export{Skeleton as default};
2
- //# sourceMappingURL=definition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.js","sources":["../../src/web-components/skeleton/definition.ts"],"sourcesContent":["import Skeleton from \"./component.js\";\n\nSkeleton.define();\n\nexport default Skeleton;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-skeleton\": Skeleton;\n }\n}\n"],"names":[],"mappings":"qCAEA,SAAS,QAAQ"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,cAAc,oBAAkF,iBAAkB;AAClH,cAAc,sBAAiC,KAAM;AAIrD,SAAS,kBAAkB,+BAAgC;;;;;;;;;;;;;;AAmB3D,cA2CM,cAAc,WAAW;;;;CAI7B,AACA;;;;CAKA,AACA;CAEA,AACA;CAEA,AACA;CAEA;CAYA,IAAI,kBAAkB;CAItB,UAAU,UAAU,eAAe;CAiCnC;CAKA,UAAU,aAAaA,GAAG,aAAa,kBAAkB;;;;;;;;;;;;;;;;;CA4BzD,UAAU,UAAUC;CA2CpB;CAKA,QAAQC;CAKR;CAMA;AAQD;AAED,eAAe;AACf,SAAS","names":["e: HandlerEvent<HTMLInputElement, InputEvent>","data: string | null","i: number"],"sources":["../../../src/web-components/split/component.ts"],"sourcesContent":["import { type HandlerEvent, attr, tokenList, godown, styles, loop, omit, StyleController } from \"@godown/element\";\nimport { type TemplateResult, css, html } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n\nimport { cssGlobalVars, scopePrefix } from \"../../internal/global-style.js\";\nimport { SuperInput } from \"../../internal/super-input.js\";\nimport { RingBuilder, ringTypeAttribute } from \"../../internal/ring.js\";\n\nconst protoName = \"split\";\nconst cssScope = scopePrefix(protoName);\n\n/**\n * {@linkcode Split} renders multiple input boxes.\n *\n * Input: will move the focus box backward until the complete input from start to end.\n *\n * Delete: will move the focus box forward until the first and no inputs for each.\n *\n * @fires input - Fires when the input value changes.\n * @fires change - Fires when the input value changes.\n * @fires focus - Fires when the input is focused.\n * @fires blur - Fires when the input is blurred.\n * @category input\n */\n@godown(protoName)\n@styles(css`\n :host {\n display: block;\n border-radius: 0.1em;\n width: fit-content;\n ${cssScope}--size: 2em;\n ${cssScope}--gap: .25em;\n }\n\n [part=\"root\"] {\n gap: var(${cssScope}--gap);\n position: relative;\n vertical-align: top;\n display: flex;\n justify-content: space-between;\n border-radius: inherit;\n }\n\n [part=\"input-box\"] {\n width: var(${cssScope}--size);\n height: var(${cssScope}--size);\n vertical-align: top;\n border-radius: inherit;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n [part=\"input\"] {\n width: 100%;\n height: 100%;\n opacity: 0;\n background: none;\n position: absolute;\n z-index: -1;\n }\n\n .focus,\n [part=\"input-box\"]:active {\n ${cssGlobalVars.ringColor}: var(${cssGlobalVars.active});\n }\n`)\nclass Split extends SuperInput {\n /**\n * The number of input boxes.\n */\n @property({ type: Number })\n len = 6;\n\n /**\n * Focus index.\n */\n @property({ type: Number })\n index = -1;\n\n @state()\n current = -1;\n\n @state()\n currentValue: (string | void)[] = [];\n\n constructor() {\n super();\n new StyleController(\n this,\n () =>\n new RingBuilder({\n selector: \"[part=input-box]\",\n type: this.ringType,\n }).css,\n );\n }\n\n get observedRecord(): Record<string, any> {\n return omit(super.observedRecord, ringTypeAttribute);\n }\n\n protected render(): TemplateResult<1> {\n return html`\n <div\n part=\"root\"\n ${attr(this.observedRecord)}\n >\n ${loop(\n this.len,\n (index: number) => html`\n <span\n part=\"input-box\"\n ring-type=\"${this.ringType}\"\n class=\"${tokenList({ focus: this.current === index })}\"\n @click=\"${this.disabled ? null : () => this.focusAt(index)}\"\n >\n ${this.currentValue[index]}\n </span>\n `,\n )}\n <input\n part=\"input\"\n @blur=${this.blur}\n @input=\"${this._handleInput}\"\n @change=\"${this._handleChange}\"\n .value=\"${\n /* Ensure that input always has a value of length this.len */\n this.value.padStart(this.len, \" \")\n }\"\n />\n </div>\n `;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.reset();\n }\n\n protected _handleInput(e: HandlerEvent<HTMLInputElement, InputEvent>): void {\n e.stopPropagation();\n if (this.compositing) {\n return;\n }\n\n this.fillInput(e.data);\n this.value = this.currentValue.join(\"\");\n\n this.dispatchCustomEvent(\"input\", this.value, { bubbles: true });\n }\n\n /**\n * Fill input with data.\n *\n * If data is null\n * - If current value is null, move to before.\n * - If current value is not null, delete it.\n *\n * If data is not null\n * - If current value is null, input data.\n * - If current value is not null, input data and move to after.\n *\n * If data is multiple characters,\n * Fill input with data[0] and call fillInput with data.slice(1).\n *\n * @param data Input event data.\n */\n protected fillInput(data: string | null): void {\n if (data === null) {\n // delete\n\n if (this.currentValue[this.current] !== null) {\n // delete exist value\n\n this.currentValue[this.current] = null;\n } else {\n // go to before\n\n this.currentValue[this.current - 1] = null;\n const lastNotNull = this.currentValue.findLastIndex((a) => a !== null);\n this.current = this.current - 1 < 0 ? (lastNotNull < 0 ? 0 : lastNotNull) : this.current - 1;\n }\n return;\n }\n\n const multiple = data.length > 1;\n\n // input\n this.currentValue[this.current] = data[0];\n if (this.current + 1 >= this.len) {\n // index overflow\n\n this.current = this.currentValue.indexOf(null);\n if (this.current === -1) {\n this.blur();\n }\n } else {\n // go to after\n\n this.current += 1;\n }\n\n if (multiple) {\n const after = data.slice(1);\n if (after) {\n this.fillInput(after);\n }\n }\n }\n\n focus(): void {\n this.focusAt(this.current);\n super.focus();\n }\n\n focusAt(i: number): void {\n this.current = i;\n this._input.focus();\n }\n\n blur(): void {\n this._input.blur();\n this.current = -1;\n super.blur();\n }\n\n reset(): void {\n this.current = -1;\n this.value = this.default;\n this.currentValue = this.value.split(\"\").concat(Array(this.len - this.value.length).fill(null));\n if (this.index > -1) {\n this.current = this.index;\n }\n }\n}\n\nexport default Split;\nexport { Split };\n"],"version":3,"file":"component.d.ts"}
@@ -1,2 +0,0 @@
1
- import{godown,styles,StyleController,omit,attr,loop,tokenList}from"@godown/element";import{css,html}from"lit";import{property,state}from"lit/decorators.js";import{scopePrefix,cssGlobalVars}from"../../internal/global-style.js";import{SuperInput}from"../../internal/super-input.js";import{RingBuilder,ringTypeAttribute}from"../../internal/ring.js";import _decorate from"@oxc-project/runtime/helpers/decorate";const protoName=`split`,cssScope=scopePrefix(protoName);let Split=class e extends SuperInput{constructor(){super(),this.len=6,this.index=-1,this.current=-1,this.currentValue=[],new StyleController(this,()=>new RingBuilder({selector:`[part=input-box]`,type:this.ringType}).css)}get observedRecord(){return omit(super.observedRecord,ringTypeAttribute)}render(){return html`<div part="root" ${attr(this.observedRecord)}> ${loop(this.len,e=>html`<span part="input-box" ring-type="${this.ringType}" class="${tokenList({focus:this.current===e})}" @click="${this.disabled?null:()=>this.focusAt(e)}"> ${this.currentValue[e]} </span>`)} <input part="input" @blur=${this.blur} @input="${this._handleInput}" @change="${this._handleChange}" .value="${this.value.padStart(this.len,` `)}"/> </div>`}connectedCallback(){super.connectedCallback(),this.reset()}_handleInput(e){e.stopPropagation(),!this.compositing&&(this.fillInput(e.data),this.value=this.currentValue.join(``),this.dispatchCustomEvent(`input`,this.value,{bubbles:!0}))}fillInput(e){if(e===null){if(this.currentValue[this.current]!==null)this.currentValue[this.current]=null;else{this.currentValue[this.current-1]=null;let e=this.currentValue.findLastIndex(e=>e!==null);this.current=this.current-1<0?e<0?0:e:this.current-1}return}let b=e.length>1;if(this.currentValue[this.current]=e[0],this.current+1>=this.len?(this.current=this.currentValue.indexOf(null),this.current===-1&&this.blur()):this.current+=1,b){let b=e.slice(1);b&&this.fillInput(b)}}focus(){this.focusAt(this.current),super.focus()}focusAt(e){this.current=e,this._input.focus()}blur(){this._input.blur(),this.current=-1,super.blur()}reset(){this.current=-1,this.value=this.default,this.currentValue=this.value.split(``).concat(Array(this.len-this.value.length).fill(null)),this.index>-1&&(this.current=this.index)}};_decorate([property({type:Number})],Split.prototype,`len`,void 0),_decorate([property({type:Number})],Split.prototype,`index`,void 0),_decorate([state()],Split.prototype,`current`,void 0),_decorate([state()],Split.prototype,`currentValue`,void 0),Split=_decorate([godown(protoName),styles(css`:host{display:block;border-radius:.1em;width:-moz-fit-content;width:fit-content;${cssScope}--size:2em;${cssScope}--gap:.25em}[part=root]{gap:var(${cssScope}--gap);position:relative;vertical-align:top;display:flex;justify-content:space-between;border-radius:inherit}[part=input-box]{width:var(${cssScope}--size);height:var(${cssScope}--size);vertical-align:top;border-radius:inherit;display:inline-flex;align-items:center;justify-content:center}[part=input]{width:100%;height:100%;opacity:0;background:0 0;position:absolute;z-index:-1}.focus,[part=input-box]:active{${cssGlobalVars.ringColor}:var(${cssGlobalVars.active})}`)],Split);var Split$1=Split;export{Split,Split$1 as default};
2
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../src/web-components/split/component.ts"],"sourcesContent":["import { type HandlerEvent, attr, tokenList, godown, styles, loop, omit, StyleController } from \"@godown/element\";\nimport { type TemplateResult, css, html } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n\nimport { cssGlobalVars, scopePrefix } from \"../../internal/global-style.js\";\nimport { SuperInput } from \"../../internal/super-input.js\";\nimport { RingBuilder, ringTypeAttribute } from \"../../internal/ring.js\";\n\nconst protoName = \"split\";\nconst cssScope = scopePrefix(protoName);\n\n/**\n * {@linkcode Split} renders multiple input boxes.\n *\n * Input: will move the focus box backward until the complete input from start to end.\n *\n * Delete: will move the focus box forward until the first and no inputs for each.\n *\n * @fires input - Fires when the input value changes.\n * @fires change - Fires when the input value changes.\n * @fires focus - Fires when the input is focused.\n * @fires blur - Fires when the input is blurred.\n * @category input\n */\n@godown(protoName)\n@styles(css`\n :host {\n display: block;\n border-radius: 0.1em;\n width: fit-content;\n ${cssScope}--size: 2em;\n ${cssScope}--gap: .25em;\n }\n\n [part=\"root\"] {\n gap: var(${cssScope}--gap);\n position: relative;\n vertical-align: top;\n display: flex;\n justify-content: space-between;\n border-radius: inherit;\n }\n\n [part=\"input-box\"] {\n width: var(${cssScope}--size);\n height: var(${cssScope}--size);\n vertical-align: top;\n border-radius: inherit;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n [part=\"input\"] {\n width: 100%;\n height: 100%;\n opacity: 0;\n background: none;\n position: absolute;\n z-index: -1;\n }\n\n .focus,\n [part=\"input-box\"]:active {\n ${cssGlobalVars.ringColor}: var(${cssGlobalVars.active});\n }\n`)\nclass Split extends SuperInput {\n /**\n * The number of input boxes.\n */\n @property({ type: Number })\n len = 6;\n\n /**\n * Focus index.\n */\n @property({ type: Number })\n index = -1;\n\n @state()\n current = -1;\n\n @state()\n currentValue: (string | void)[] = [];\n\n constructor() {\n super();\n new StyleController(\n this,\n () =>\n new RingBuilder({\n selector: \"[part=input-box]\",\n type: this.ringType,\n }).css,\n );\n }\n\n get observedRecord(): Record<string, any> {\n return omit(super.observedRecord, ringTypeAttribute);\n }\n\n protected render(): TemplateResult<1> {\n return html`\n <div\n part=\"root\"\n ${attr(this.observedRecord)}\n >\n ${loop(\n this.len,\n (index: number) => html`\n <span\n part=\"input-box\"\n ring-type=\"${this.ringType}\"\n class=\"${tokenList({ focus: this.current === index })}\"\n @click=\"${this.disabled ? null : () => this.focusAt(index)}\"\n >\n ${this.currentValue[index]}\n </span>\n `,\n )}\n <input\n part=\"input\"\n @blur=${this.blur}\n @input=\"${this._handleInput}\"\n @change=\"${this._handleChange}\"\n .value=\"${\n /* Ensure that input always has a value of length this.len */\n this.value.padStart(this.len, \" \")\n }\"\n />\n </div>\n `;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.reset();\n }\n\n protected _handleInput(e: HandlerEvent<HTMLInputElement, InputEvent>): void {\n e.stopPropagation();\n if (this.compositing) {\n return;\n }\n\n this.fillInput(e.data);\n this.value = this.currentValue.join(\"\");\n\n this.dispatchCustomEvent(\"input\", this.value, { bubbles: true });\n }\n\n /**\n * Fill input with data.\n *\n * If data is null\n * - If current value is null, move to before.\n * - If current value is not null, delete it.\n *\n * If data is not null\n * - If current value is null, input data.\n * - If current value is not null, input data and move to after.\n *\n * If data is multiple characters,\n * Fill input with data[0] and call fillInput with data.slice(1).\n *\n * @param data Input event data.\n */\n protected fillInput(data: string | null): void {\n if (data === null) {\n // delete\n\n if (this.currentValue[this.current] !== null) {\n // delete exist value\n\n this.currentValue[this.current] = null;\n } else {\n // go to before\n\n this.currentValue[this.current - 1] = null;\n const lastNotNull = this.currentValue.findLastIndex((a) => a !== null);\n this.current = this.current - 1 < 0 ? (lastNotNull < 0 ? 0 : lastNotNull) : this.current - 1;\n }\n return;\n }\n\n const multiple = data.length > 1;\n\n // input\n this.currentValue[this.current] = data[0];\n if (this.current + 1 >= this.len) {\n // index overflow\n\n this.current = this.currentValue.indexOf(null);\n if (this.current === -1) {\n this.blur();\n }\n } else {\n // go to after\n\n this.current += 1;\n }\n\n if (multiple) {\n const after = data.slice(1);\n if (after) {\n this.fillInput(after);\n }\n }\n }\n\n focus(): void {\n this.focusAt(this.current);\n super.focus();\n }\n\n focusAt(i: number): void {\n this.current = i;\n this._input.focus();\n }\n\n blur(): void {\n this._input.blur();\n this.current = -1;\n super.blur();\n }\n\n reset(): void {\n this.current = -1;\n this.value = this.default;\n this.currentValue = this.value.split(\"\").concat(Array(this.len - this.value.length).fill(null));\n if (this.index > -1) {\n this.current = this.index;\n }\n }\n}\n\nexport default Split;\nexport { Split };\n"],"names":["Split","index: number","index","e: HandlerEvent<HTMLInputElement, InputEvent>","data: string | null","data","lastNotNull","a","multiple","after","i: number","i"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,OAAO,WAAW,gBAAiB;AAInC,eAAe;eAEA;WACH,sBAAsB;EAC9B,gBAAgB;CACjB;AACF","names":[],"sources":["../../../src/web-components/split/definition.ts"],"sourcesContent":["import Split from \"./component.js\";\n\nSplit.define();\n\nexport default Split;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-split\": Split;\n }\n}\n"],"version":3,"file":"definition.d.ts"}
@@ -1,2 +0,0 @@
1
- import Split from"./component.js";Split.define();export{Split as default};
2
- //# sourceMappingURL=definition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.js","sources":["../../src/web-components/split/definition.ts"],"sourcesContent":["import Split from \"./component.js\";\n\nSplit.define();\n\nexport default Split;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-split\": Split;\n }\n}\n"],"names":[],"mappings":"kCAEA,MAAM,QAAQ"}
@@ -1,2 +0,0 @@
1
- import{godown,styles,omit,attr}from"@godown/element";import{css,html}from"lit";import{property}from"lit/decorators.js";import{scopePrefix,cssGlobalVars}from"../../internal/global-style.js";import{SuperInput}from"../../internal/super-input.js";import{ringTypeAttribute}from"../../internal/ring.js";import _decorate from"@oxc-project/runtime/helpers/decorate";const protoName=`switch`,cssScope=scopePrefix(protoName);let Switch=class e extends SuperInput{constructor(...e){super(...e),this.default=!1,this.value=!1}set checked(e){this.value=e}get checked(){return this.value}get observedRecord(){return omit(super.observedRecord,ringTypeAttribute)}render(){return html`<div part="root" ${attr(this.observedRecord)} class="round"> <input part="input" type="checkbox" ?disabled="${this.disabled}" ?checked="${this.value}" @change="${this._handleChange}"/> <span part="handle"></span> </div>`}reset(){this.value=this.default,this._input.checked=this.value}_connectedInit(){this.default?this.value=!0:this.value&&(this.value=!0,this.default=!0)}_handleChange(){let{checked:e}=this._input;this.value=e,this.dispatchCustomEvent(`change`,this.value)}};_decorate([property({type:Boolean})],Switch.prototype,`default`,void 0),_decorate([property({type:Boolean,attribute:`checked`,reflect:!0})],Switch.prototype,`value`,void 0),Switch=_decorate([godown(protoName),styles(css`:host,:host([contents]) [part=root]{display:inline-block}:host{${cssScope}-width:3em;${cssScope}-height:calc(var(${cssScope}-width)/2);${cssScope}-handle-size:1.25em;${cssScope}-handle-space:calc(var(${cssScope}-width)/4 - var(${cssScope}-handle-size)/2);width:var(${cssScope}-width);height:var(${cssScope}-height);border-radius:calc(var(${cssScope}-height)/2);background:var(${cssGlobalVars.passive});vertical-align:bottom;transition:.2s ease-in-out;transition-property:background,left}:host([checked]){background:var(${cssGlobalVars.active})}[part=root]{display:flex;align-items:center;position:relative;transition:inherit}[part=handle]{display:flex;align-items:center;justify-content:center;position:absolute;transition:inherit;left:0;top:50%;pointer-events:none;border-radius:100%;background:var(${cssGlobalVars.background});width:var(${cssScope}-handle-size);height:var(${cssScope}-handle-size);transform:translateY(-50%) translateX(var(${cssScope}-handle-space))}:host([checked]) [part=handle]{left:50%}[part=input]{opacity:0;width:100%;height:100%}`)],Switch);var Switch$1=Switch;export{Switch,Switch$1 as default};
2
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../src/web-components/switch/component.ts"],"sourcesContent":["import { attr, godown, omit, styles } from \"@godown/element\";\nimport { type TemplateResult, css, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\nimport { cssGlobalVars, scopePrefix } from \"../../internal/global-style.js\";\nimport { SuperInput } from \"../../internal/super-input.js\";\nimport { ringTypeAttribute } from \"../../internal/ring.js\";\n\nconst protoName = \"switch\";\nconst cssScope = scopePrefix(protoName);\n\n/**\n * {@linkcode Switch} renders a switch.\n *\n * @fires change - Fires when the switch is switched.\n * @category input\n */\n@godown(protoName)\n@styles(css`\n :host,\n :host([contents]) [part=\"root\"] {\n display: inline-block;\n }\n\n :host {\n ${cssScope}-width: 3em;\n ${cssScope}-height: calc(var(${cssScope}-width) / 2);\n ${cssScope}-handle-size: 1.25em;\n ${cssScope}-handle-space: calc(var(${cssScope}-width) / 4 - var(${cssScope}-handle-size) / 2);\n width: var(${cssScope}-width);\n height: var(${cssScope}-height);\n border-radius: calc(var(${cssScope}-height) / 2);\n background: var(${cssGlobalVars.passive});\n vertical-align: bottom;\n transition: 0.2s ease-in-out;\n transition-property: background, left;\n }\n\n :host([checked]) {\n background: var(${cssGlobalVars.active});\n }\n\n [part=\"root\"] {\n display: flex;\n align-items: center;\n position: relative;\n transition: inherit;\n }\n\n [part=\"handle\"] {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n transition: inherit;\n left: 0;\n top: 50%;\n pointer-events: none;\n border-radius: 100%;\n background: var(${cssGlobalVars.background});\n width: var(${cssScope}-handle-size);\n height: var(${cssScope}-handle-size);\n transform: translateY(-50%) translateX(var(${cssScope}-handle-space));\n }\n\n :host([checked]) [part=\"handle\"] {\n left: 50%;\n }\n\n [part=\"input\"] {\n opacity: 0;\n width: 100%;\n height: 100%;\n }\n`)\nclass Switch extends SuperInput<boolean> {\n set checked(v: boolean) {\n this.value = v;\n }\n\n get checked(): boolean {\n return this.value;\n }\n\n /**\n * Default checked state.\n */\n @property({ type: Boolean })\n default = false;\n\n /**\n * The current value of the switch component. Reflects the \"checked\" attribute.\n */\n @property({ type: Boolean, attribute: \"checked\", reflect: true })\n value = false;\n\n get observedRecord(): Record<string, any> {\n return omit(super.observedRecord, ringTypeAttribute);\n }\n\n protected render(): TemplateResult<1> {\n return html`\n <div\n part=\"root\"\n ${attr(this.observedRecord)}\n class=\"round\"\n >\n <input\n part=\"input\"\n type=\"checkbox\"\n ?disabled=\"${this.disabled}\"\n ?checked=\"${this.value}\"\n @change=\"${this._handleChange}\"\n />\n <span part=\"handle\"></span>\n </div>\n `;\n }\n\n reset(): void {\n this.value = this.default;\n this._input.checked = this.value;\n }\n\n protected _connectedInit(): void {\n if (this.default) {\n this.value = true;\n } else {\n if (this.value) {\n this.value = true;\n this.default = true;\n }\n }\n }\n\n protected _handleChange(): void {\n const { checked } = this._input;\n this.value = checked;\n this.dispatchCustomEvent(\"change\", this.value);\n }\n}\n\nexport default Switch;\nexport { Switch };\n"],"names":["Switch","v: boolean","v","checked"],"mappings":"sWAQA,MAAM,UAAY,SACZ,SAAW,YAAY,UAAU,CAQvC,IAAA,OAAA,MA0DMA,UAAe,UAAoB,oCAavC,SAAU,OAMV,OAAQ,EAlBR,IAAI,QAAQC,EAAY,CACtB,KAAK,MAAQC,CACd,CAED,IAAI,SAAmB,CACrB,OAAO,KAAK,KACb,CAcD,IAAI,gBAAsC,CACxC,MAAO,MAAK,MAAM,eAAgB,kBAAkB,AACrD,CAES,QAA4B,CACpC,MAAO,KAAI,CAAA,iBAGP,EAAE,KAAK,KAAK,eAAe,CAAA,+DAMd,EAAE,KAAK,SAAS,YACjB,EAAE,KAAK,MAAM,WACd,EAAE,KAAK,cAAc,sCAIpC,CAAC,AACF,CAED,OAAc,CAEZ,AADA,KAAK,MAAQ,KAAK,QAClB,KAAK,OAAO,QAAU,KAAK,KAC5B,CAES,gBAAuB,CAC/B,AAAI,KAAK,QACP,KAAK,OAAQ,EAET,KAAK,QACP,KAAK,OAAQ,EACb,KAAK,SAAU,EAGpB,CAES,eAAsB,CAC9B,GAAM,CAAE,UAAS,CAAG,KAAK,OAEzB,AADA,KAAK,MAAQC,EACb,KAAK,oBAAoB,SAAU,KAAK,MAAM,AAC/C,CACF,EA3HA,WAsEE,SAAS,CAAE,KAAM,OAAS,EAAC,AAAA,EAAA,OAAA,UAAA,iBAAA,YAM3B,SAAS,CAAE,KAAM,QAAS,UAAW,UAAW,SAAS,CAAM,EAAC,AAAA,EAAA,OAAA,UAAA,YAAA,GAAA,CA5ElE,OAAA,UAAA,CAAA,OAAO,UAAU,CACjB,OAAO,GAAG,CAAC,+DAOR,EAAE,SAAS,WACX,EAAE,SAAS,iBAAkB,EAAE,SAAS,WACxC,EAAE,SAAS,oBACX,EAAE,SAAS,uBAAwB,EAAE,SAAS,gBAAkB,EAAE,SAAS,2BAChE,EAAE,SAAS,mBACV,EAAE,SAAS,gCACC,EAAE,SAAS,2BACnB,EAAE,cAAc,QAAQ,uHAOxB,EAAE,cAAc,OAAO,kQAoBvB,EAAE,cAAc,WAAW,YAChC,EAAE,SAAS,yBACV,EAAE,SAAS,wDACoB,EAAE,SAAS,sGAY1D,CAAC,CAAC,AAAA,EAAA,OAAA,CAoEF,IAAA,SAAe"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,OAAO,YAAY,gBAAiB;AAIpC,eAAe;eAEA;WACH,sBAAsB;EAC9B,iBAAiB;CAClB;AACF","names":[],"sources":["../../../src/web-components/switch/definition.ts"],"sourcesContent":["import Switch from \"./component.js\";\n\nSwitch.define();\n\nexport default Switch;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-switch\": Switch;\n }\n}\n"],"version":3,"file":"definition.d.ts"}
@@ -1,2 +0,0 @@
1
- import Switch from"./component.js";Switch.define();export{Switch as default};
2
- //# sourceMappingURL=definition.js.map