@easemate/web-kit 0.1.0

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 (358) hide show
  1. package/README.md +824 -0
  2. package/build/components/code/index.cjs +152 -0
  3. package/build/components/code/index.d.cts +11 -0
  4. package/build/components/code/index.d.ts +11 -0
  5. package/build/components/code/index.js +148 -0
  6. package/build/components/code/utils/highlight-api.cjs +18 -0
  7. package/build/components/code/utils/highlight-api.d.cts +7 -0
  8. package/build/components/code/utils/highlight-api.d.ts +7 -0
  9. package/build/components/code/utils/highlight-api.js +14 -0
  10. package/build/components/code/utils/syntax-grammars.cjs +62 -0
  11. package/build/components/code/utils/syntax-grammars.d.cts +7 -0
  12. package/build/components/code/utils/syntax-grammars.d.ts +7 -0
  13. package/build/components/code/utils/syntax-grammars.js +59 -0
  14. package/build/components/code/utils/syntax-highlighter-theme.cjs +27 -0
  15. package/build/components/code/utils/syntax-highlighter-theme.d.cts +3 -0
  16. package/build/components/code/utils/syntax-highlighter-theme.d.ts +3 -0
  17. package/build/components/code/utils/syntax-highlighter-theme.js +23 -0
  18. package/build/components/code/utils/syntax-highlighter-types.cjs +2 -0
  19. package/build/components/code/utils/syntax-highlighter-types.d.cts +12 -0
  20. package/build/components/code/utils/syntax-highlighter-types.d.ts +12 -0
  21. package/build/components/code/utils/syntax-highlighter-types.js +1 -0
  22. package/build/components/code/utils/syntax-tokenizer.cjs +63 -0
  23. package/build/components/code/utils/syntax-tokenizer.d.cts +3 -0
  24. package/build/components/code/utils/syntax-tokenizer.d.ts +3 -0
  25. package/build/components/code/utils/syntax-tokenizer.js +58 -0
  26. package/build/components/curve/bezier-conversion.cjs +23 -0
  27. package/build/components/curve/bezier-conversion.d.cts +2 -0
  28. package/build/components/curve/bezier-conversion.d.ts +2 -0
  29. package/build/components/curve/bezier-conversion.js +19 -0
  30. package/build/components/curve/canvas-controls.cjs +300 -0
  31. package/build/components/curve/canvas-controls.d.cts +12 -0
  32. package/build/components/curve/canvas-controls.d.ts +12 -0
  33. package/build/components/curve/canvas-controls.js +296 -0
  34. package/build/components/curve/canvas.cjs +1208 -0
  35. package/build/components/curve/canvas.d.cts +24 -0
  36. package/build/components/curve/canvas.d.ts +24 -0
  37. package/build/components/curve/canvas.js +1204 -0
  38. package/build/components/curve/constants.cjs +203 -0
  39. package/build/components/curve/constants.d.cts +23 -0
  40. package/build/components/curve/constants.d.ts +23 -0
  41. package/build/components/curve/constants.js +200 -0
  42. package/build/components/curve/controls.cjs +942 -0
  43. package/build/components/curve/controls.d.cts +37 -0
  44. package/build/components/curve/controls.d.ts +37 -0
  45. package/build/components/curve/controls.js +938 -0
  46. package/build/components/curve/index.cjs +335 -0
  47. package/build/components/curve/index.d.cts +31 -0
  48. package/build/components/curve/index.d.ts +31 -0
  49. package/build/components/curve/index.js +330 -0
  50. package/build/components/curve/output.cjs +141 -0
  51. package/build/components/curve/output.d.cts +19 -0
  52. package/build/components/curve/output.d.ts +19 -0
  53. package/build/components/curve/output.js +137 -0
  54. package/build/components/curve/styles.cjs +493 -0
  55. package/build/components/curve/styles.d.cts +6 -0
  56. package/build/components/curve/styles.d.ts +6 -0
  57. package/build/components/curve/styles.js +490 -0
  58. package/build/components/curve/svg-renderer.cjs +185 -0
  59. package/build/components/curve/svg-renderer.d.cts +9 -0
  60. package/build/components/curve/svg-renderer.d.ts +9 -0
  61. package/build/components/curve/svg-renderer.js +175 -0
  62. package/build/components/curve/toolbar.cjs +368 -0
  63. package/build/components/curve/toolbar.d.cts +26 -0
  64. package/build/components/curve/toolbar.d.ts +26 -0
  65. package/build/components/curve/toolbar.js +364 -0
  66. package/build/components/curve/types.cjs +10 -0
  67. package/build/components/curve/types.d.cts +33 -0
  68. package/build/components/curve/types.d.ts +33 -0
  69. package/build/components/curve/types.js +7 -0
  70. package/build/components/curve/utils.cjs +541 -0
  71. package/build/components/curve/utils.d.cts +33 -0
  72. package/build/components/curve/utils.d.ts +33 -0
  73. package/build/components/curve/utils.js +521 -0
  74. package/build/components/index.cjs +18 -0
  75. package/build/components/index.d.cts +2 -0
  76. package/build/components/index.d.ts +2 -0
  77. package/build/components/index.js +2 -0
  78. package/build/decorators/Component.cjs +127 -0
  79. package/build/decorators/Component.d.cts +28 -0
  80. package/build/decorators/Component.d.ts +28 -0
  81. package/build/decorators/Component.js +123 -0
  82. package/build/decorators/Listen.cjs +154 -0
  83. package/build/decorators/Listen.d.cts +18 -0
  84. package/build/decorators/Listen.d.ts +18 -0
  85. package/build/decorators/Listen.js +151 -0
  86. package/build/decorators/OutsideClick.cjs +64 -0
  87. package/build/decorators/OutsideClick.d.cts +16 -0
  88. package/build/decorators/OutsideClick.d.ts +16 -0
  89. package/build/decorators/OutsideClick.js +59 -0
  90. package/build/decorators/Prop.cjs +273 -0
  91. package/build/decorators/Prop.d.cts +22 -0
  92. package/build/decorators/Prop.d.ts +22 -0
  93. package/build/decorators/Prop.js +270 -0
  94. package/build/decorators/Query.cjs +79 -0
  95. package/build/decorators/Query.d.cts +27 -0
  96. package/build/decorators/Query.d.ts +27 -0
  97. package/build/decorators/Query.js +76 -0
  98. package/build/decorators/Watch.cjs +52 -0
  99. package/build/decorators/Watch.d.cts +11 -0
  100. package/build/decorators/Watch.d.ts +11 -0
  101. package/build/decorators/Watch.js +49 -0
  102. package/build/decorators/index.cjs +15 -0
  103. package/build/decorators/index.d.cts +6 -0
  104. package/build/decorators/index.d.ts +6 -0
  105. package/build/decorators/index.js +6 -0
  106. package/build/elements/button/index.cjs +214 -0
  107. package/build/elements/button/index.d.cts +11 -0
  108. package/build/elements/button/index.d.ts +11 -0
  109. package/build/elements/button/index.js +210 -0
  110. package/build/elements/checkbox/index.cjs +316 -0
  111. package/build/elements/checkbox/index.d.cts +14 -0
  112. package/build/elements/checkbox/index.d.ts +14 -0
  113. package/build/elements/checkbox/index.js +312 -0
  114. package/build/elements/color/index.cjs +154 -0
  115. package/build/elements/color/index.d.cts +18 -0
  116. package/build/elements/color/index.d.ts +18 -0
  117. package/build/elements/color/index.js +150 -0
  118. package/build/elements/color/picker.cjs +544 -0
  119. package/build/elements/color/picker.d.cts +37 -0
  120. package/build/elements/color/picker.d.ts +37 -0
  121. package/build/elements/color/picker.js +540 -0
  122. package/build/elements/color/utils.cjs +235 -0
  123. package/build/elements/color/utils.d.cts +37 -0
  124. package/build/elements/color/utils.d.ts +37 -0
  125. package/build/elements/color/utils.js +218 -0
  126. package/build/elements/dropdown/index.cjs +875 -0
  127. package/build/elements/dropdown/index.d.cts +30 -0
  128. package/build/elements/dropdown/index.d.ts +30 -0
  129. package/build/elements/dropdown/index.js +871 -0
  130. package/build/elements/field/index.cjs +82 -0
  131. package/build/elements/field/index.d.cts +4 -0
  132. package/build/elements/field/index.d.ts +4 -0
  133. package/build/elements/field/index.js +78 -0
  134. package/build/elements/icons/animation/chevron.cjs +57 -0
  135. package/build/elements/icons/animation/chevron.d.cts +10 -0
  136. package/build/elements/icons/animation/chevron.d.ts +10 -0
  137. package/build/elements/icons/animation/chevron.js +53 -0
  138. package/build/elements/icons/animation/clear.cjs +74 -0
  139. package/build/elements/icons/animation/clear.d.cts +3 -0
  140. package/build/elements/icons/animation/clear.d.ts +3 -0
  141. package/build/elements/icons/animation/clear.js +70 -0
  142. package/build/elements/icons/animation/grid.cjs +77 -0
  143. package/build/elements/icons/animation/grid.d.cts +8 -0
  144. package/build/elements/icons/animation/grid.d.ts +8 -0
  145. package/build/elements/icons/animation/grid.js +73 -0
  146. package/build/elements/icons/animation/loading.cjs +68 -0
  147. package/build/elements/icons/animation/loading.d.cts +3 -0
  148. package/build/elements/icons/animation/loading.d.ts +3 -0
  149. package/build/elements/icons/animation/loading.js +64 -0
  150. package/build/elements/icons/animation/snap.cjs +133 -0
  151. package/build/elements/icons/animation/snap.d.cts +8 -0
  152. package/build/elements/icons/animation/snap.d.ts +8 -0
  153. package/build/elements/icons/animation/snap.js +129 -0
  154. package/build/elements/icons/index.cjs +40 -0
  155. package/build/elements/icons/index.d.cts +24 -0
  156. package/build/elements/icons/index.d.ts +24 -0
  157. package/build/elements/icons/index.js +24 -0
  158. package/build/elements/icons/interface/anchor-add.cjs +35 -0
  159. package/build/elements/icons/interface/anchor-add.d.cts +3 -0
  160. package/build/elements/icons/interface/anchor-add.d.ts +3 -0
  161. package/build/elements/icons/interface/anchor-add.js +31 -0
  162. package/build/elements/icons/interface/anchor-remove.cjs +34 -0
  163. package/build/elements/icons/interface/anchor-remove.d.cts +3 -0
  164. package/build/elements/icons/interface/anchor-remove.d.ts +3 -0
  165. package/build/elements/icons/interface/anchor-remove.js +30 -0
  166. package/build/elements/icons/interface/arrow-up.cjs +30 -0
  167. package/build/elements/icons/interface/arrow-up.d.cts +3 -0
  168. package/build/elements/icons/interface/arrow-up.d.ts +3 -0
  169. package/build/elements/icons/interface/arrow-up.js +26 -0
  170. package/build/elements/icons/interface/arrows-vertical.cjs +30 -0
  171. package/build/elements/icons/interface/arrows-vertical.d.cts +3 -0
  172. package/build/elements/icons/interface/arrows-vertical.d.ts +3 -0
  173. package/build/elements/icons/interface/arrows-vertical.js +26 -0
  174. package/build/elements/icons/interface/bezier-angle.cjs +33 -0
  175. package/build/elements/icons/interface/bezier-angle.d.cts +3 -0
  176. package/build/elements/icons/interface/bezier-angle.d.ts +3 -0
  177. package/build/elements/icons/interface/bezier-angle.js +29 -0
  178. package/build/elements/icons/interface/bezier-distribute.cjs +34 -0
  179. package/build/elements/icons/interface/bezier-distribute.d.cts +3 -0
  180. package/build/elements/icons/interface/bezier-distribute.d.ts +3 -0
  181. package/build/elements/icons/interface/bezier-distribute.js +30 -0
  182. package/build/elements/icons/interface/bezier-length.cjs +31 -0
  183. package/build/elements/icons/interface/bezier-length.d.cts +3 -0
  184. package/build/elements/icons/interface/bezier-length.d.ts +3 -0
  185. package/build/elements/icons/interface/bezier-length.js +27 -0
  186. package/build/elements/icons/interface/bezier-mirror.cjs +31 -0
  187. package/build/elements/icons/interface/bezier-mirror.d.cts +3 -0
  188. package/build/elements/icons/interface/bezier-mirror.d.ts +3 -0
  189. package/build/elements/icons/interface/bezier-mirror.js +27 -0
  190. package/build/elements/icons/interface/bezier.cjs +26 -0
  191. package/build/elements/icons/interface/bezier.d.cts +3 -0
  192. package/build/elements/icons/interface/bezier.d.ts +3 -0
  193. package/build/elements/icons/interface/bezier.js +22 -0
  194. package/build/elements/icons/interface/check.cjs +30 -0
  195. package/build/elements/icons/interface/check.d.cts +3 -0
  196. package/build/elements/icons/interface/check.d.ts +3 -0
  197. package/build/elements/icons/interface/check.js +26 -0
  198. package/build/elements/icons/interface/circle-arrow-left.cjs +30 -0
  199. package/build/elements/icons/interface/circle-arrow-left.d.cts +3 -0
  200. package/build/elements/icons/interface/circle-arrow-left.d.ts +3 -0
  201. package/build/elements/icons/interface/circle-arrow-left.js +26 -0
  202. package/build/elements/icons/interface/circle-arrow-right.cjs +30 -0
  203. package/build/elements/icons/interface/circle-arrow-right.d.cts +3 -0
  204. package/build/elements/icons/interface/circle-arrow-right.d.ts +3 -0
  205. package/build/elements/icons/interface/circle-arrow-right.js +26 -0
  206. package/build/elements/icons/interface/code.cjs +30 -0
  207. package/build/elements/icons/interface/code.d.cts +3 -0
  208. package/build/elements/icons/interface/code.d.ts +3 -0
  209. package/build/elements/icons/interface/code.js +26 -0
  210. package/build/elements/icons/interface/dots.cjs +32 -0
  211. package/build/elements/icons/interface/dots.d.cts +3 -0
  212. package/build/elements/icons/interface/dots.d.ts +3 -0
  213. package/build/elements/icons/interface/dots.js +28 -0
  214. package/build/elements/icons/interface/mention.cjs +30 -0
  215. package/build/elements/icons/interface/mention.d.cts +3 -0
  216. package/build/elements/icons/interface/mention.d.ts +3 -0
  217. package/build/elements/icons/interface/mention.js +26 -0
  218. package/build/elements/icons/interface/minus.cjs +30 -0
  219. package/build/elements/icons/interface/minus.d.cts +3 -0
  220. package/build/elements/icons/interface/minus.d.ts +3 -0
  221. package/build/elements/icons/interface/minus.js +26 -0
  222. package/build/elements/icons/interface/picker.cjs +34 -0
  223. package/build/elements/icons/interface/picker.d.cts +3 -0
  224. package/build/elements/icons/interface/picker.d.ts +3 -0
  225. package/build/elements/icons/interface/picker.js +30 -0
  226. package/build/elements/icons/interface/plus.cjs +30 -0
  227. package/build/elements/icons/interface/plus.d.cts +3 -0
  228. package/build/elements/icons/interface/plus.d.ts +3 -0
  229. package/build/elements/icons/interface/plus.js +26 -0
  230. package/build/elements/icons/interface/settings.cjs +30 -0
  231. package/build/elements/icons/interface/settings.d.cts +3 -0
  232. package/build/elements/icons/interface/settings.d.ts +3 -0
  233. package/build/elements/icons/interface/settings.js +26 -0
  234. package/build/elements/index.cjs +62 -0
  235. package/build/elements/index.d.cts +22 -0
  236. package/build/elements/index.d.ts +22 -0
  237. package/build/elements/index.js +22 -0
  238. package/build/elements/input/index.cjs +273 -0
  239. package/build/elements/input/index.d.cts +17 -0
  240. package/build/elements/input/index.d.ts +17 -0
  241. package/build/elements/input/index.js +269 -0
  242. package/build/elements/logo/index.cjs +732 -0
  243. package/build/elements/logo/index.d.cts +17 -0
  244. package/build/elements/logo/index.d.ts +17 -0
  245. package/build/elements/logo/index.js +728 -0
  246. package/build/elements/monitor/fps.cjs +432 -0
  247. package/build/elements/monitor/fps.d.cts +21 -0
  248. package/build/elements/monitor/fps.d.ts +21 -0
  249. package/build/elements/monitor/fps.js +428 -0
  250. package/build/elements/monitor/index.cjs +670 -0
  251. package/build/elements/monitor/index.d.cts +112 -0
  252. package/build/elements/monitor/index.d.ts +112 -0
  253. package/build/elements/monitor/index.js +666 -0
  254. package/build/elements/number/index.cjs +173 -0
  255. package/build/elements/number/index.d.cts +19 -0
  256. package/build/elements/number/index.d.ts +19 -0
  257. package/build/elements/number/index.js +169 -0
  258. package/build/elements/origin/index.cjs +169 -0
  259. package/build/elements/origin/index.d.cts +12 -0
  260. package/build/elements/origin/index.d.ts +12 -0
  261. package/build/elements/origin/index.js +165 -0
  262. package/build/elements/popover/index.cjs +209 -0
  263. package/build/elements/popover/index.d.cts +19 -0
  264. package/build/elements/popover/index.d.ts +19 -0
  265. package/build/elements/popover/index.js +205 -0
  266. package/build/elements/radio/index.cjs +301 -0
  267. package/build/elements/radio/index.d.cts +13 -0
  268. package/build/elements/radio/index.d.ts +13 -0
  269. package/build/elements/radio/index.js +283 -0
  270. package/build/elements/radio/input.cjs +329 -0
  271. package/build/elements/radio/input.d.cts +15 -0
  272. package/build/elements/radio/input.d.ts +15 -0
  273. package/build/elements/radio/input.js +325 -0
  274. package/build/elements/radio/option.cjs +15 -0
  275. package/build/elements/radio/option.d.cts +3 -0
  276. package/build/elements/radio/option.d.ts +3 -0
  277. package/build/elements/radio/option.js +11 -0
  278. package/build/elements/shared.cjs +66 -0
  279. package/build/elements/shared.d.cts +40 -0
  280. package/build/elements/shared.d.ts +40 -0
  281. package/build/elements/shared.js +59 -0
  282. package/build/elements/slider/index.cjs +232 -0
  283. package/build/elements/slider/index.d.cts +20 -0
  284. package/build/elements/slider/index.d.ts +20 -0
  285. package/build/elements/slider/index.js +228 -0
  286. package/build/elements/state/index.cjs +681 -0
  287. package/build/elements/state/index.d.cts +86 -0
  288. package/build/elements/state/index.d.ts +86 -0
  289. package/build/elements/state/index.js +677 -0
  290. package/build/elements/toggle/index.cjs +151 -0
  291. package/build/elements/toggle/index.d.cts +9 -0
  292. package/build/elements/toggle/index.d.ts +9 -0
  293. package/build/elements/toggle/index.js +147 -0
  294. package/build/elements/tooltip/index.cjs +187 -0
  295. package/build/elements/tooltip/index.d.cts +17 -0
  296. package/build/elements/tooltip/index.d.ts +17 -0
  297. package/build/elements/tooltip/index.js +183 -0
  298. package/build/index.cjs +40 -0
  299. package/build/index.d.cts +6 -0
  300. package/build/index.d.ts +6 -0
  301. package/build/index.js +12 -0
  302. package/build/init.cjs +325 -0
  303. package/build/init.d.cts +157 -0
  304. package/build/init.d.ts +157 -0
  305. package/build/init.js +289 -0
  306. package/build/internal/component-loaders.cjs +206 -0
  307. package/build/internal/component-loaders.d.cts +52 -0
  308. package/build/internal/component-loaders.d.ts +52 -0
  309. package/build/internal/component-loaders.js +167 -0
  310. package/build/internal/fonts.cjs +128 -0
  311. package/build/internal/fonts.d.cts +32 -0
  312. package/build/internal/fonts.d.ts +32 -0
  313. package/build/internal/fonts.js +123 -0
  314. package/build/internal/lazy-load.cjs +89 -0
  315. package/build/internal/lazy-load.d.cts +32 -0
  316. package/build/internal/lazy-load.d.ts +32 -0
  317. package/build/internal/lazy-load.js +86 -0
  318. package/build/internal/style-inject.cjs +236 -0
  319. package/build/internal/style-inject.d.cts +44 -0
  320. package/build/internal/style-inject.d.ts +44 -0
  321. package/build/internal/style-inject.js +226 -0
  322. package/build/register.cjs +36 -0
  323. package/build/register.d.cts +32 -0
  324. package/build/register.d.ts +32 -0
  325. package/build/register.js +34 -0
  326. package/build/theme/index.cjs +452 -0
  327. package/build/theme/index.d.cts +146 -0
  328. package/build/theme/index.d.ts +146 -0
  329. package/build/theme/index.js +423 -0
  330. package/build/theme/presets.cjs +54 -0
  331. package/build/theme/presets.d.cts +19 -0
  332. package/build/theme/presets.d.ts +19 -0
  333. package/build/theme/presets.js +51 -0
  334. package/build/theme/registry.cjs +204 -0
  335. package/build/theme/registry.d.cts +99 -0
  336. package/build/theme/registry.d.ts +99 -0
  337. package/build/theme/registry.js +194 -0
  338. package/build/theme/tokens.cjs +148 -0
  339. package/build/theme/tokens.d.cts +163 -0
  340. package/build/theme/tokens.d.ts +163 -0
  341. package/build/theme/tokens.js +145 -0
  342. package/build/utils/dismiss-controller.cjs +77 -0
  343. package/build/utils/dismiss-controller.d.cts +14 -0
  344. package/build/utils/dismiss-controller.d.ts +14 -0
  345. package/build/utils/dismiss-controller.js +73 -0
  346. package/build/utils/index.cjs +18 -0
  347. package/build/utils/index.d.cts +3 -0
  348. package/build/utils/index.d.ts +3 -0
  349. package/build/utils/index.js +3 -0
  350. package/build/utils/outside-click.cjs +82 -0
  351. package/build/utils/outside-click.d.cts +18 -0
  352. package/build/utils/outside-click.d.ts +18 -0
  353. package/build/utils/outside-click.js +74 -0
  354. package/build/utils/template-helpers.cjs +39 -0
  355. package/build/utils/template-helpers.d.cts +13 -0
  356. package/build/utils/template-helpers.d.ts +13 -0
  357. package/build/utils/template-helpers.js +28 -0
  358. package/package.json +96 -0
@@ -0,0 +1,11 @@
1
+ export class RadioOption extends HTMLElement {
2
+ connectedCallback() {
3
+ this.hidden = true;
4
+ if (!this.hasAttribute('slot')) {
5
+ this.setAttribute('slot', 'option');
6
+ }
7
+ }
8
+ }
9
+ if (!customElements.get('radio-option')) {
10
+ customElements.define('radio-option', RadioOption);
11
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readControlValue = exports.coerceNumber = exports.setBooleanAttribute = exports.dispatchControlEvent = exports.CONTROL_CHANGE_EVENT = void 0;
4
+ /** The standard event type for control value changes */
5
+ exports.CONTROL_CHANGE_EVENT = 'control-change';
6
+ /**
7
+ * Dispatch a control change event with standard shape.
8
+ * Events bubble and are composed (cross shadow DOM boundaries).
9
+ *
10
+ * @param host - The element dispatching the event
11
+ * @param type - Event type (prefer CONTROL_CHANGE_EVENT for standard controls)
12
+ * @param detail - Event detail with value and optional name
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * dispatchControlEvent(this, CONTROL_CHANGE_EVENT, {
17
+ * name: this.name,
18
+ * value: this.value,
19
+ * event: e
20
+ * });
21
+ * ```
22
+ */
23
+ const dispatchControlEvent = (host, type, detail) => {
24
+ host.dispatchEvent(new CustomEvent(type, {
25
+ detail,
26
+ bubbles: true,
27
+ composed: true
28
+ }));
29
+ };
30
+ exports.dispatchControlEvent = dispatchControlEvent;
31
+ const setBooleanAttribute = (element, name, value) => {
32
+ if (!element) {
33
+ return;
34
+ }
35
+ if (value) {
36
+ element.setAttribute(name, '');
37
+ }
38
+ else {
39
+ element.removeAttribute(name);
40
+ }
41
+ };
42
+ exports.setBooleanAttribute = setBooleanAttribute;
43
+ const coerceNumber = (value) => {
44
+ if (value === '') {
45
+ return null;
46
+ }
47
+ const parsed = Number(value);
48
+ return Number.isNaN(parsed) ? null : parsed;
49
+ };
50
+ exports.coerceNumber = coerceNumber;
51
+ const readControlValue = (element) => {
52
+ if (typeof element.value === 'string' || typeof element.value === 'number') {
53
+ return String(element.value);
54
+ }
55
+ if (typeof element.checked === 'boolean') {
56
+ return element.checked ? 'true' : 'false';
57
+ }
58
+ if ('getAttribute' in element) {
59
+ const attr = element.getAttribute('value');
60
+ if (attr !== null) {
61
+ return attr;
62
+ }
63
+ }
64
+ return element.textContent?.trim() ?? null;
65
+ };
66
+ exports.readControlValue = readControlValue;
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Standard control event detail interface for Leva/lil-gui style state aggregation.
3
+ * All control components should dispatch events with this shape.
4
+ */
5
+ export interface ControlEventDetail<TValue = unknown> {
6
+ /** The control's name/identifier for state aggregation */
7
+ name?: string;
8
+ /** The current value of the control */
9
+ value: TValue;
10
+ /** The original DOM event that triggered this change */
11
+ event: Event;
12
+ }
13
+ /** The standard event type for control value changes */
14
+ export declare const CONTROL_CHANGE_EVENT = "control-change";
15
+ /**
16
+ * Dispatch a control change event with standard shape.
17
+ * Events bubble and are composed (cross shadow DOM boundaries).
18
+ *
19
+ * @param host - The element dispatching the event
20
+ * @param type - Event type (prefer CONTROL_CHANGE_EVENT for standard controls)
21
+ * @param detail - Event detail with value and optional name
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * dispatchControlEvent(this, CONTROL_CHANGE_EVENT, {
26
+ * name: this.name,
27
+ * value: this.value,
28
+ * event: e
29
+ * });
30
+ * ```
31
+ */
32
+ export declare const dispatchControlEvent: <THost extends HTMLElement, TValue>(host: THost, type: string, detail: ControlEventDetail<TValue>) => void;
33
+ export declare const setBooleanAttribute: (element: Element | null | undefined, name: string, value: boolean) => void;
34
+ export declare const coerceNumber: (value: string) => number | null;
35
+ type ControlElement = Element & {
36
+ value?: unknown;
37
+ checked?: unknown;
38
+ };
39
+ export declare const readControlValue: (element: ControlElement) => string | null;
40
+ export {};
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Standard control event detail interface for Leva/lil-gui style state aggregation.
3
+ * All control components should dispatch events with this shape.
4
+ */
5
+ export interface ControlEventDetail<TValue = unknown> {
6
+ /** The control's name/identifier for state aggregation */
7
+ name?: string;
8
+ /** The current value of the control */
9
+ value: TValue;
10
+ /** The original DOM event that triggered this change */
11
+ event: Event;
12
+ }
13
+ /** The standard event type for control value changes */
14
+ export declare const CONTROL_CHANGE_EVENT = "control-change";
15
+ /**
16
+ * Dispatch a control change event with standard shape.
17
+ * Events bubble and are composed (cross shadow DOM boundaries).
18
+ *
19
+ * @param host - The element dispatching the event
20
+ * @param type - Event type (prefer CONTROL_CHANGE_EVENT for standard controls)
21
+ * @param detail - Event detail with value and optional name
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * dispatchControlEvent(this, CONTROL_CHANGE_EVENT, {
26
+ * name: this.name,
27
+ * value: this.value,
28
+ * event: e
29
+ * });
30
+ * ```
31
+ */
32
+ export declare const dispatchControlEvent: <THost extends HTMLElement, TValue>(host: THost, type: string, detail: ControlEventDetail<TValue>) => void;
33
+ export declare const setBooleanAttribute: (element: Element | null | undefined, name: string, value: boolean) => void;
34
+ export declare const coerceNumber: (value: string) => number | null;
35
+ type ControlElement = Element & {
36
+ value?: unknown;
37
+ checked?: unknown;
38
+ };
39
+ export declare const readControlValue: (element: ControlElement) => string | null;
40
+ export {};
@@ -0,0 +1,59 @@
1
+ /** The standard event type for control value changes */
2
+ export const CONTROL_CHANGE_EVENT = 'control-change';
3
+ /**
4
+ * Dispatch a control change event with standard shape.
5
+ * Events bubble and are composed (cross shadow DOM boundaries).
6
+ *
7
+ * @param host - The element dispatching the event
8
+ * @param type - Event type (prefer CONTROL_CHANGE_EVENT for standard controls)
9
+ * @param detail - Event detail with value and optional name
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * dispatchControlEvent(this, CONTROL_CHANGE_EVENT, {
14
+ * name: this.name,
15
+ * value: this.value,
16
+ * event: e
17
+ * });
18
+ * ```
19
+ */
20
+ export const dispatchControlEvent = (host, type, detail) => {
21
+ host.dispatchEvent(new CustomEvent(type, {
22
+ detail,
23
+ bubbles: true,
24
+ composed: true
25
+ }));
26
+ };
27
+ export const setBooleanAttribute = (element, name, value) => {
28
+ if (!element) {
29
+ return;
30
+ }
31
+ if (value) {
32
+ element.setAttribute(name, '');
33
+ }
34
+ else {
35
+ element.removeAttribute(name);
36
+ }
37
+ };
38
+ export const coerceNumber = (value) => {
39
+ if (value === '') {
40
+ return null;
41
+ }
42
+ const parsed = Number(value);
43
+ return Number.isNaN(parsed) ? null : parsed;
44
+ };
45
+ export const readControlValue = (element) => {
46
+ if (typeof element.value === 'string' || typeof element.value === 'number') {
47
+ return String(element.value);
48
+ }
49
+ if (typeof element.checked === 'boolean') {
50
+ return element.checked ? 'true' : 'false';
51
+ }
52
+ if ('getAttribute' in element) {
53
+ const attr = element.getAttribute('value');
54
+ if (attr !== null) {
55
+ return attr;
56
+ }
57
+ }
58
+ return element.textContent?.trim() ?? null;
59
+ };
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Slider = void 0;
4
+ require("../input/index.cjs");
5
+ const lit_html_1 = require("lit-html");
6
+ const shared_1 = require("../shared.cjs");
7
+ const Component_1 = require("~/decorators/Component");
8
+ const Listen_1 = require("~/decorators/Listen");
9
+ const Prop_1 = require("~/decorators/Prop");
10
+ const Query_1 = require("~/decorators/Query");
11
+ @(0, Component_1.Component)({
12
+ tag: 'ease-slider',
13
+ styles: `
14
+ :host {
15
+ display: contents;
16
+ --track-color: var(--ease-slider-track-color, var(--color-gray-825));
17
+ --active-track-color: var(--ease-slider-active-track-color, var(--color-blue-1100));
18
+ --thumb-color: var(--ease-slider-thumb-color, var(--color-blue-900));
19
+ --thumb-size: var(--ease-slider-thumb-size, 18px);
20
+ --track-height: var(--ease-slider-track-height, 4px);
21
+ }
22
+
23
+ [part="container"] {
24
+ flex: 1;
25
+ display: grid;
26
+ grid-template-columns: auto var(--ease-slider-value-width, 36px);
27
+ grid-gap: var(--ease-slider-gap, 12px);
28
+ }
29
+
30
+ ease-input[part="value"] {
31
+ --ease-input-padding: 8px 0;
32
+ min-width: 0;
33
+ text-align: center;
34
+ width: var(--ease-slider-value-width, 36px);
35
+ font-variant-numeric: tabular-nums;
36
+ font-feature-settings: "tnum";
37
+ font-family: var(--ease-font-mono, 'Geist Mono', monospace);
38
+ }
39
+
40
+ input[part="control"][type="range"] {
41
+ height: var(--ease-slider-height, 30px);
42
+ margin: 0;
43
+ padding: 0;
44
+ appearance: none;
45
+ background-color: transparent;
46
+ width: 100%;
47
+ cursor: pointer;
48
+ }
49
+
50
+ input[part="control"][type="range"]::-webkit-slider-runnable-track {
51
+ width: 100%;
52
+ height: var(--track-height);
53
+ background: linear-gradient(to right, var(--active-track-color) var(--progress, 0%), var(--track-color) var(--progress, 0%));
54
+ border-radius: calc(var(--track-height) / 2);
55
+ border: none;
56
+ }
57
+
58
+ input[part="control"][type="range"]::-moz-range-track {
59
+ width: 100%;
60
+ height: var(--track-height);
61
+ background: var(--track-color);
62
+ border-radius: calc(var(--track-height) / 2);
63
+ border: none;
64
+ }
65
+
66
+ input[part="control"][type="range"]::-moz-range-progress {
67
+ background-color: var(--active-track-color);
68
+ height: var(--track-height);
69
+ border-radius: calc(var(--track-height) / 2);
70
+ }
71
+
72
+ input[part="control"][type="range"]::-webkit-slider-thumb {
73
+ appearance: none;
74
+ height: var(--thumb-size);
75
+ width: var(--thumb-size);
76
+ border-radius: 50%;
77
+ margin-top: calc((var(--track-height) - var(--thumb-size)) / 2);
78
+ box-shadow: inset 0 0 0 .75px var(--color-white-15), inset 0 0 5px var(--color-white-20);
79
+ transition: transform 0.2s;
80
+ position: relative;
81
+ background: radial-gradient(circle at center, var(--color-blue-100-50) 4.5px, var(--color-white-0) 4.5px), var(--thumb-color) no-repeat center center;
82
+ }
83
+
84
+ input[part="control"][type="range"]:hover::-webkit-slider-thumb {
85
+ transform: scale(1.075);
86
+ }
87
+
88
+ input[part="control"][type="range"]:active::-webkit-slider-thumb {
89
+ transform: scale(.975);
90
+ }
91
+
92
+ input[part="control"][type="range"]::-moz-range-thumb {
93
+ height: var(--thumb-size);
94
+ width: var(--thumb-size);
95
+ border-radius: 50%;
96
+ background: radial-gradient(circle at center, var(--color-blue-100-50) 4.5px, var(--color-white-0) 4.5px), var(--thumb-color) no-repeat center center;
97
+ border: none;
98
+ box-shadow: inset 0 0 0 .75px var(--color-white-15), inset 0 0 5px var(--color-white-20);
99
+ transition: transform 0.2s;
100
+ position: relative;
101
+ }
102
+
103
+ input[part="control"][type="range"]:hover::-moz-range-thumb {
104
+ transform: scale(1.075);
105
+ }
106
+
107
+ input[part="control"][type="range"]:active::-moz-range-thumb {
108
+ transform: scale(.975);
109
+ }
110
+ `,
111
+ template() {
112
+ return (0, lit_html_1.html) `
113
+ <div part="container">
114
+ <input
115
+ part="control"
116
+ type="range"
117
+ .min=${this.min ?? 0}
118
+ .max=${this.max ?? 100}
119
+ .step=${this.step ?? 1}
120
+ .value=${String(this.value ?? 0)}
121
+ ?disabled=${this.disabled}
122
+ ?aria-disabled=${this.disabled}
123
+ />
124
+
125
+ <ease-input
126
+ part="value"
127
+ type="number"
128
+ placeholder="-"
129
+ .disabled=${Boolean(this.disabled)}
130
+ .value=${this.value === null || this.value === undefined ? '' : String(this.value)}
131
+ />
132
+ </div>
133
+ `;
134
+ }
135
+ })
136
+ class Slider extends HTMLElement {
137
+ @(0, Prop_1.Prop)({ type: Number, reflect: true })
138
+ accessor value;
139
+ @(0, Prop_1.Prop)({ type: Number, reflect: true })
140
+ accessor min;
141
+ @(0, Prop_1.Prop)({ type: Number, reflect: true })
142
+ accessor max;
143
+ @(0, Prop_1.Prop)({ type: Number, reflect: true })
144
+ accessor step;
145
+ @(0, Prop_1.Prop)({ type: Boolean, reflect: true })
146
+ accessor disabled;
147
+ @(0, Query_1.Query)('input')
148
+ accessor control;
149
+ @(0, Query_1.Query)('ease-input')
150
+ accessor valueControl;
151
+ afterRender() {
152
+ if (!this.control) {
153
+ return;
154
+ }
155
+ const control = this.control;
156
+ const value = this.value ?? 0;
157
+ control.value = String(value);
158
+ control.min = this.min === null || this.min === undefined ? '' : String(this.min);
159
+ control.max = this.max === null || this.max === undefined ? '' : String(this.max);
160
+ control.step = this.step === null || this.step === undefined ? '' : String(this.step);
161
+ control.type = 'range';
162
+ control.setAttribute('part', 'control');
163
+ control.disabled = Boolean(this.disabled);
164
+ (0, shared_1.setBooleanAttribute)(this, 'disabled', Boolean(this.disabled));
165
+ this.updateProgress();
166
+ }
167
+ @(0, Listen_1.Listen)('input', { selector: 'input[type="range"]' })
168
+ handleRangeInput(event, target) {
169
+ if (!target) {
170
+ return;
171
+ }
172
+ const numericValue = (0, shared_1.coerceNumber)(target.value);
173
+ this.value = numericValue;
174
+ this.updateProgress();
175
+ if (this.valueControl) {
176
+ this.valueControl.value = numericValue === null ? '' : String(numericValue);
177
+ }
178
+ (0, shared_1.dispatchControlEvent)(this, 'input', { value: this.value, event });
179
+ }
180
+ @(0, Listen_1.Listen)('change', { selector: 'input[type="range"]' })
181
+ handleRangeChange(event, target) {
182
+ if (target) {
183
+ const numericValue = (0, shared_1.coerceNumber)(target.value);
184
+ this.value = numericValue;
185
+ this.updateProgress();
186
+ if (this.valueControl) {
187
+ this.valueControl.value = numericValue === null ? '' : String(numericValue);
188
+ }
189
+ }
190
+ (0, shared_1.dispatchControlEvent)(this, 'change', { value: this.value, event });
191
+ }
192
+ @(0, Listen_1.Listen)('input', {
193
+ selector: 'ease-input',
194
+ when: (event) => event instanceof CustomEvent && typeof event.detail?.value === 'string'
195
+ })
196
+ handleValueInput(event) {
197
+ const rawValue = event.detail?.value ?? '';
198
+ const numericValue = (0, shared_1.coerceNumber)(rawValue);
199
+ this.value = numericValue;
200
+ this.updateProgress();
201
+ if (this.control) {
202
+ this.control.value = String(numericValue ?? 0);
203
+ }
204
+ (0, shared_1.dispatchControlEvent)(this, 'input', { value: this.value, event: event.detail?.event ?? event });
205
+ }
206
+ @(0, Listen_1.Listen)('change', {
207
+ selector: 'ease-input',
208
+ when: (event) => event instanceof CustomEvent && typeof event.detail?.value === 'string'
209
+ })
210
+ handleValueChange(event) {
211
+ const rawValue = event.detail?.value ?? '';
212
+ const numericValue = (0, shared_1.coerceNumber)(rawValue);
213
+ this.value = numericValue;
214
+ this.updateProgress();
215
+ if (this.control) {
216
+ this.control.value = String(numericValue ?? 0);
217
+ }
218
+ (0, shared_1.dispatchControlEvent)(this, 'change', { value: this.value, event: event.detail?.event ?? event });
219
+ }
220
+ updateProgress() {
221
+ if (!this.control) {
222
+ return;
223
+ }
224
+ // Ensure numeric coercion for proper calculation
225
+ const value = Number(this.value) || 0;
226
+ const min = Number(this.min) || 0;
227
+ const max = Number(this.max) || 100;
228
+ const percent = max === min ? 0 : ((value - min) / (max - min)) * 100;
229
+ this.control.style.setProperty('--progress', `${Math.max(0, Math.min(100, percent))}%`);
230
+ }
231
+ }
232
+ exports.Slider = Slider;
@@ -0,0 +1,20 @@
1
+ import "../input/index.cjs";
2
+ import { type ControlEventDetail } from "../shared.cjs";
3
+ export declare class Slider extends HTMLElement {
4
+ requestRender: () => void;
5
+ accessor value: number | null;
6
+ accessor min: number | null;
7
+ accessor max: number | null;
8
+ accessor step: number | null;
9
+ accessor disabled: boolean;
10
+ accessor control: HTMLInputElement | null;
11
+ accessor valueControl: (HTMLElement & {
12
+ value?: string | null;
13
+ }) | null;
14
+ afterRender(): void;
15
+ handleRangeInput(event: Event, target?: HTMLInputElement | null): void;
16
+ handleRangeChange(event: Event, target?: HTMLInputElement | null): void;
17
+ handleValueInput(event: CustomEvent<ControlEventDetail<string>>): void;
18
+ handleValueChange(event: CustomEvent<ControlEventDetail<string>>): void;
19
+ updateProgress(): void;
20
+ }
@@ -0,0 +1,20 @@
1
+ import "../input/index.js";
2
+ import { type ControlEventDetail } from "../shared.js";
3
+ export declare class Slider extends HTMLElement {
4
+ requestRender: () => void;
5
+ accessor value: number | null;
6
+ accessor min: number | null;
7
+ accessor max: number | null;
8
+ accessor step: number | null;
9
+ accessor disabled: boolean;
10
+ accessor control: HTMLInputElement | null;
11
+ accessor valueControl: (HTMLElement & {
12
+ value?: string | null;
13
+ }) | null;
14
+ afterRender(): void;
15
+ handleRangeInput(event: Event, target?: HTMLInputElement | null): void;
16
+ handleRangeChange(event: Event, target?: HTMLInputElement | null): void;
17
+ handleValueInput(event: CustomEvent<ControlEventDetail<string>>): void;
18
+ handleValueChange(event: CustomEvent<ControlEventDetail<string>>): void;
19
+ updateProgress(): void;
20
+ }