@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,14 @@
1
+ export interface DismissContext {
2
+ owner: HTMLElement;
3
+ content?: HTMLElement | null;
4
+ triggers?: Array<HTMLElement | null | undefined>;
5
+ }
6
+ export interface DismissControllerOptions {
7
+ onDismiss: (event: Event) => void;
8
+ }
9
+ export declare class DismissController {
10
+ #private;
11
+ constructor(options: DismissControllerOptions);
12
+ connect(context: DismissContext): void;
13
+ disconnect(): void;
14
+ }
@@ -0,0 +1,14 @@
1
+ export interface DismissContext {
2
+ owner: HTMLElement;
3
+ content?: HTMLElement | null;
4
+ triggers?: Array<HTMLElement | null | undefined>;
5
+ }
6
+ export interface DismissControllerOptions {
7
+ onDismiss: (event: Event) => void;
8
+ }
9
+ export declare class DismissController {
10
+ #private;
11
+ constructor(options: DismissControllerOptions);
12
+ connect(context: DismissContext): void;
13
+ disconnect(): void;
14
+ }
@@ -0,0 +1,73 @@
1
+ export class DismissController {
2
+ #onDismiss;
3
+ #context = null;
4
+ #active = false;
5
+ constructor(options) {
6
+ this.#onDismiss = options.onDismiss;
7
+ }
8
+ connect(context) {
9
+ this.#context = {
10
+ owner: context.owner,
11
+ content: context.content ?? null,
12
+ triggers: (context.triggers ?? []).filter((el) => el instanceof HTMLElement)
13
+ };
14
+ if (!this.#active) {
15
+ document.addEventListener('pointerdown', this.#handlePointerDown, true);
16
+ document.addEventListener('keydown', this.#handleKeyDown, true);
17
+ this.#active = true;
18
+ }
19
+ }
20
+ disconnect() {
21
+ if (!this.#active) {
22
+ return;
23
+ }
24
+ document.removeEventListener('pointerdown', this.#handlePointerDown, true);
25
+ document.removeEventListener('keydown', this.#handleKeyDown, true);
26
+ this.#active = false;
27
+ this.#context = null;
28
+ }
29
+ #handlePointerDown = (event) => {
30
+ if (!this.#context) {
31
+ return;
32
+ }
33
+ const { owner, content, triggers } = this.#context;
34
+ const path = event.composedPath();
35
+ if (path.some((node) => node instanceof Element && node.hasAttribute('data-select-ignore'))) {
36
+ return;
37
+ }
38
+ if (path.includes(owner)) {
39
+ return;
40
+ }
41
+ if (content && path.includes(content)) {
42
+ return;
43
+ }
44
+ if (triggers.some((trigger) => path.includes(trigger))) {
45
+ return;
46
+ }
47
+ this.#onDismiss(event);
48
+ };
49
+ #handleKeyDown = (event) => {
50
+ if (event.key !== 'Escape' || !this.#context) {
51
+ return;
52
+ }
53
+ event.preventDefault();
54
+ const active = document.activeElement;
55
+ if (!active) {
56
+ this.#onDismiss(event);
57
+ return;
58
+ }
59
+ const { owner, content, triggers } = this.#context;
60
+ const path = event.composedPath();
61
+ if (path.includes(owner) || owner.contains(active)) {
62
+ this.#onDismiss(event);
63
+ return;
64
+ }
65
+ if (content && (path.includes(content) || content.contains(active))) {
66
+ this.#onDismiss(event);
67
+ return;
68
+ }
69
+ if (triggers.some((trigger) => path.includes(trigger) || trigger.contains(active))) {
70
+ this.#onDismiss(event);
71
+ }
72
+ };
73
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.when = exports.unsafeHTML = exports.styleObject = exports.styleMap = exports.repeat = exports.renderList = exports.renderIf = exports.optionalAttribute = exports.ifDefined = exports.classMap = exports.createOutsideClickHandle = exports.DismissController = void 0;
4
+ var dismiss_controller_1 = require("./dismiss-controller.cjs");
5
+ Object.defineProperty(exports, "DismissController", { enumerable: true, get: function () { return dismiss_controller_1.DismissController; } });
6
+ var outside_click_1 = require("./outside-click.cjs");
7
+ Object.defineProperty(exports, "createOutsideClickHandle", { enumerable: true, get: function () { return outside_click_1.createOutsideClickHandle; } });
8
+ var template_helpers_1 = require("./template-helpers.cjs");
9
+ Object.defineProperty(exports, "classMap", { enumerable: true, get: function () { return template_helpers_1.classMap; } });
10
+ Object.defineProperty(exports, "ifDefined", { enumerable: true, get: function () { return template_helpers_1.ifDefined; } });
11
+ Object.defineProperty(exports, "optionalAttribute", { enumerable: true, get: function () { return template_helpers_1.optionalAttribute; } });
12
+ Object.defineProperty(exports, "renderIf", { enumerable: true, get: function () { return template_helpers_1.renderIf; } });
13
+ Object.defineProperty(exports, "renderList", { enumerable: true, get: function () { return template_helpers_1.renderList; } });
14
+ Object.defineProperty(exports, "repeat", { enumerable: true, get: function () { return template_helpers_1.repeat; } });
15
+ Object.defineProperty(exports, "styleMap", { enumerable: true, get: function () { return template_helpers_1.styleMap; } });
16
+ Object.defineProperty(exports, "styleObject", { enumerable: true, get: function () { return template_helpers_1.styleObject; } });
17
+ Object.defineProperty(exports, "unsafeHTML", { enumerable: true, get: function () { return template_helpers_1.unsafeHTML; } });
18
+ Object.defineProperty(exports, "when", { enumerable: true, get: function () { return template_helpers_1.when; } });
@@ -0,0 +1,3 @@
1
+ export { DismissController } from "./dismiss-controller.cjs";
2
+ export { createOutsideClickHandle } from "./outside-click.cjs";
3
+ export { classMap, ifDefined, optionalAttribute, renderIf, renderList, repeat, styleMap, styleObject, unsafeHTML, when } from "./template-helpers.cjs";
@@ -0,0 +1,3 @@
1
+ export { DismissController } from "./dismiss-controller.js";
2
+ export { createOutsideClickHandle } from "./outside-click.js";
3
+ export { classMap, ifDefined, optionalAttribute, renderIf, renderList, repeat, styleMap, styleObject, unsafeHTML, when } from "./template-helpers.js";
@@ -0,0 +1,3 @@
1
+ export { DismissController } from "./dismiss-controller.js";
2
+ export { createOutsideClickHandle } from "./outside-click.js";
3
+ export { classMap, ifDefined, optionalAttribute, renderIf, renderList, repeat, styleMap, styleObject, unsafeHTML, when } from "./template-helpers.js";
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requestOutsideClickUpdate = exports.disconnectOutsideClickHandles = exports.updateOutsideClickHandles = exports.registerOutsideClickHandle = exports.createOutsideClickHandle = void 0;
4
+ const dismiss_controller_1 = require("./dismiss-controller.cjs");
5
+ const registry = new WeakMap();
6
+ const toDismissContext = (host, options) => {
7
+ if (options.disabled?.(host)) {
8
+ return null;
9
+ }
10
+ const resolved = options.resolve(host);
11
+ if (!resolved) {
12
+ return null;
13
+ }
14
+ const owner = resolved.owner ?? host ?? null;
15
+ if (!(owner instanceof HTMLElement)) {
16
+ return null;
17
+ }
18
+ const content = resolved.content && resolved.content instanceof HTMLElement ? resolved.content : null;
19
+ const triggers = resolved.triggers?.filter((element) => element instanceof HTMLElement) ?? [];
20
+ return {
21
+ owner,
22
+ content,
23
+ triggers
24
+ };
25
+ };
26
+ const createOutsideClickHandle = (host, onDismiss, options) => {
27
+ const controller = new dismiss_controller_1.DismissController({
28
+ onDismiss(event) {
29
+ if (options.disabled?.(host)) {
30
+ return;
31
+ }
32
+ onDismiss.call(host, event);
33
+ }
34
+ });
35
+ return {
36
+ update() {
37
+ const context = toDismissContext(host, options);
38
+ if (!context) {
39
+ controller.disconnect();
40
+ return;
41
+ }
42
+ controller.connect(context);
43
+ },
44
+ disconnect() {
45
+ controller.disconnect();
46
+ }
47
+ };
48
+ };
49
+ exports.createOutsideClickHandle = createOutsideClickHandle;
50
+ const registerOutsideClickHandle = (host, handle) => {
51
+ let handles = registry.get(host);
52
+ if (!handles) {
53
+ handles = new Set();
54
+ registry.set(host, handles);
55
+ }
56
+ handles.add(handle);
57
+ };
58
+ exports.registerOutsideClickHandle = registerOutsideClickHandle;
59
+ const updateOutsideClickHandles = (host) => {
60
+ const handles = registry.get(host);
61
+ if (!handles) {
62
+ return;
63
+ }
64
+ handles.forEach((handle) => {
65
+ handle.update();
66
+ });
67
+ };
68
+ exports.updateOutsideClickHandles = updateOutsideClickHandles;
69
+ const disconnectOutsideClickHandles = (host) => {
70
+ const handles = registry.get(host);
71
+ if (!handles) {
72
+ return;
73
+ }
74
+ handles.forEach((handle) => {
75
+ handle.disconnect();
76
+ });
77
+ };
78
+ exports.disconnectOutsideClickHandles = disconnectOutsideClickHandles;
79
+ const requestOutsideClickUpdate = (host) => {
80
+ (0, exports.updateOutsideClickHandles)(host);
81
+ };
82
+ exports.requestOutsideClickUpdate = requestOutsideClickUpdate;
@@ -0,0 +1,18 @@
1
+ export interface OutsideClickResolution {
2
+ owner?: HTMLElement | null | undefined;
3
+ content?: HTMLElement | null | undefined;
4
+ triggers?: Array<HTMLElement | null | undefined>;
5
+ }
6
+ export interface OutsideClickHandle {
7
+ update(): void;
8
+ disconnect(): void;
9
+ }
10
+ export interface OutsideClickHandleOptions<THost extends HTMLElement> {
11
+ resolve: (host: THost) => OutsideClickResolution | null | undefined;
12
+ disabled?: (host: THost) => boolean;
13
+ }
14
+ export declare const createOutsideClickHandle: <THost extends HTMLElement>(host: THost, onDismiss: (this: THost, event: Event) => void, options: OutsideClickHandleOptions<THost>) => OutsideClickHandle;
15
+ export declare const registerOutsideClickHandle: (host: HTMLElement, handle: OutsideClickHandle) => void;
16
+ export declare const updateOutsideClickHandles: (host: HTMLElement) => void;
17
+ export declare const disconnectOutsideClickHandles: (host: HTMLElement) => void;
18
+ export declare const requestOutsideClickUpdate: (host: HTMLElement) => void;
@@ -0,0 +1,18 @@
1
+ export interface OutsideClickResolution {
2
+ owner?: HTMLElement | null | undefined;
3
+ content?: HTMLElement | null | undefined;
4
+ triggers?: Array<HTMLElement | null | undefined>;
5
+ }
6
+ export interface OutsideClickHandle {
7
+ update(): void;
8
+ disconnect(): void;
9
+ }
10
+ export interface OutsideClickHandleOptions<THost extends HTMLElement> {
11
+ resolve: (host: THost) => OutsideClickResolution | null | undefined;
12
+ disabled?: (host: THost) => boolean;
13
+ }
14
+ export declare const createOutsideClickHandle: <THost extends HTMLElement>(host: THost, onDismiss: (this: THost, event: Event) => void, options: OutsideClickHandleOptions<THost>) => OutsideClickHandle;
15
+ export declare const registerOutsideClickHandle: (host: HTMLElement, handle: OutsideClickHandle) => void;
16
+ export declare const updateOutsideClickHandles: (host: HTMLElement) => void;
17
+ export declare const disconnectOutsideClickHandles: (host: HTMLElement) => void;
18
+ export declare const requestOutsideClickUpdate: (host: HTMLElement) => void;
@@ -0,0 +1,74 @@
1
+ import { DismissController } from "./dismiss-controller.js";
2
+ const registry = new WeakMap();
3
+ const toDismissContext = (host, options) => {
4
+ if (options.disabled?.(host)) {
5
+ return null;
6
+ }
7
+ const resolved = options.resolve(host);
8
+ if (!resolved) {
9
+ return null;
10
+ }
11
+ const owner = resolved.owner ?? host ?? null;
12
+ if (!(owner instanceof HTMLElement)) {
13
+ return null;
14
+ }
15
+ const content = resolved.content && resolved.content instanceof HTMLElement ? resolved.content : null;
16
+ const triggers = resolved.triggers?.filter((element) => element instanceof HTMLElement) ?? [];
17
+ return {
18
+ owner,
19
+ content,
20
+ triggers
21
+ };
22
+ };
23
+ export const createOutsideClickHandle = (host, onDismiss, options) => {
24
+ const controller = new DismissController({
25
+ onDismiss(event) {
26
+ if (options.disabled?.(host)) {
27
+ return;
28
+ }
29
+ onDismiss.call(host, event);
30
+ }
31
+ });
32
+ return {
33
+ update() {
34
+ const context = toDismissContext(host, options);
35
+ if (!context) {
36
+ controller.disconnect();
37
+ return;
38
+ }
39
+ controller.connect(context);
40
+ },
41
+ disconnect() {
42
+ controller.disconnect();
43
+ }
44
+ };
45
+ };
46
+ export const registerOutsideClickHandle = (host, handle) => {
47
+ let handles = registry.get(host);
48
+ if (!handles) {
49
+ handles = new Set();
50
+ registry.set(host, handles);
51
+ }
52
+ handles.add(handle);
53
+ };
54
+ export const updateOutsideClickHandles = (host) => {
55
+ const handles = registry.get(host);
56
+ if (!handles) {
57
+ return;
58
+ }
59
+ handles.forEach((handle) => {
60
+ handle.update();
61
+ });
62
+ };
63
+ export const disconnectOutsideClickHandles = (host) => {
64
+ const handles = registry.get(host);
65
+ if (!handles) {
66
+ return;
67
+ }
68
+ handles.forEach((handle) => {
69
+ handle.disconnect();
70
+ });
71
+ };
72
+ export const requestOutsideClickUpdate = (host) => {
73
+ updateOutsideClickHandles(host);
74
+ };
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.optionalAttribute = exports.ifDefined = exports.unsafeHTML = exports.repeat = exports.when = exports.styleMap = exports.classMap = void 0;
4
+ exports.renderIf = renderIf;
5
+ exports.renderList = renderList;
6
+ exports.styleObject = styleObject;
7
+ const lit_html_1 = require("lit-html");
8
+ const class_map_js_1 = require("lit-html/directives/class-map.js");
9
+ Object.defineProperty(exports, "classMap", { enumerable: true, get: function () { return class_map_js_1.classMap; } });
10
+ const if_defined_js_1 = require("lit-html/directives/if-defined.js");
11
+ Object.defineProperty(exports, "ifDefined", { enumerable: true, get: function () { return if_defined_js_1.ifDefined; } });
12
+ const repeat_js_1 = require("lit-html/directives/repeat.js");
13
+ Object.defineProperty(exports, "repeat", { enumerable: true, get: function () { return repeat_js_1.repeat; } });
14
+ const style_map_js_1 = require("lit-html/directives/style-map.js");
15
+ Object.defineProperty(exports, "styleMap", { enumerable: true, get: function () { return style_map_js_1.styleMap; } });
16
+ const unsafe_html_js_1 = require("lit-html/directives/unsafe-html.js");
17
+ Object.defineProperty(exports, "unsafeHTML", { enumerable: true, get: function () { return unsafe_html_js_1.unsafeHTML; } });
18
+ const when_js_1 = require("lit-html/directives/when.js");
19
+ Object.defineProperty(exports, "when", { enumerable: true, get: function () { return when_js_1.when; } });
20
+ function renderIf(condition, template) {
21
+ if (!condition) {
22
+ return lit_html_1.nothing;
23
+ }
24
+ return typeof template === 'function' ? template() : template;
25
+ }
26
+ function renderList(items, template, key = (item) => item) {
27
+ return (0, repeat_js_1.repeat)(items, key, template);
28
+ }
29
+ function styleObject(input) {
30
+ const definedEntries = Object.entries(input).reduce((acc, [property, value]) => {
31
+ if (value === null || value === undefined || value === '') {
32
+ return acc;
33
+ }
34
+ acc[property] = typeof value === 'number' ? `${value}` : value;
35
+ return acc;
36
+ }, {});
37
+ return (0, style_map_js_1.styleMap)(definedEntries);
38
+ }
39
+ exports.optionalAttribute = if_defined_js_1.ifDefined;
@@ -0,0 +1,13 @@
1
+ import type { TemplateResult } from 'lit-html';
2
+ import { nothing } from 'lit-html';
3
+ import { classMap } from 'lit-html/directives/class-map.js';
4
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
5
+ import { repeat } from 'lit-html/directives/repeat.js';
6
+ import { styleMap } from 'lit-html/directives/style-map.js';
7
+ import { unsafeHTML } from 'lit-html/directives/unsafe-html.js';
8
+ import { when } from 'lit-html/directives/when.js';
9
+ export { classMap, styleMap, when, repeat, unsafeHTML, ifDefined };
10
+ export declare function renderIf<T>(condition: T | undefined | null, template: TemplateResult | (() => TemplateResult)): TemplateResult | typeof nothing;
11
+ export declare function renderList<T>(items: readonly T[], template: (item: T, index: number) => TemplateResult, key?: (item: T, index: number) => unknown): ReturnType<typeof repeat>;
12
+ export declare function styleObject(input: Record<string, string | number | null | undefined>): ReturnType<typeof styleMap>;
13
+ export declare const optionalAttribute: <T>(value: T) => typeof nothing | NonNullable<T>;
@@ -0,0 +1,13 @@
1
+ import type { TemplateResult } from 'lit-html';
2
+ import { nothing } from 'lit-html';
3
+ import { classMap } from 'lit-html/directives/class-map.js';
4
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
5
+ import { repeat } from 'lit-html/directives/repeat.js';
6
+ import { styleMap } from 'lit-html/directives/style-map.js';
7
+ import { unsafeHTML } from 'lit-html/directives/unsafe-html.js';
8
+ import { when } from 'lit-html/directives/when.js';
9
+ export { classMap, styleMap, when, repeat, unsafeHTML, ifDefined };
10
+ export declare function renderIf<T>(condition: T | undefined | null, template: TemplateResult | (() => TemplateResult)): TemplateResult | typeof nothing;
11
+ export declare function renderList<T>(items: readonly T[], template: (item: T, index: number) => TemplateResult, key?: (item: T, index: number) => unknown): ReturnType<typeof repeat>;
12
+ export declare function styleObject(input: Record<string, string | number | null | undefined>): ReturnType<typeof styleMap>;
13
+ export declare const optionalAttribute: <T>(value: T) => typeof nothing | NonNullable<T>;
@@ -0,0 +1,28 @@
1
+ import { nothing } from 'lit-html';
2
+ import { classMap } from 'lit-html/directives/class-map.js';
3
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
4
+ import { repeat } from 'lit-html/directives/repeat.js';
5
+ import { styleMap } from 'lit-html/directives/style-map.js';
6
+ import { unsafeHTML } from 'lit-html/directives/unsafe-html.js';
7
+ import { when } from 'lit-html/directives/when.js';
8
+ export { classMap, styleMap, when, repeat, unsafeHTML, ifDefined };
9
+ export function renderIf(condition, template) {
10
+ if (!condition) {
11
+ return nothing;
12
+ }
13
+ return typeof template === 'function' ? template() : template;
14
+ }
15
+ export function renderList(items, template, key = (item) => item) {
16
+ return repeat(items, key, template);
17
+ }
18
+ export function styleObject(input) {
19
+ const definedEntries = Object.entries(input).reduce((acc, [property, value]) => {
20
+ if (value === null || value === undefined || value === '') {
21
+ return acc;
22
+ }
23
+ acc[property] = typeof value === 'number' ? `${value}` : value;
24
+ return acc;
25
+ }, {});
26
+ return styleMap(definedEntries);
27
+ }
28
+ export const optionalAttribute = ifDefined;
package/package.json ADDED
@@ -0,0 +1,96 @@
1
+ {
2
+ "name": "@easemate/web-kit",
3
+ "version": "0.1.0",
4
+ "description": "Web components for easemate - a UI kit for animation libraries",
5
+ "type": "module",
6
+ "files": [
7
+ "build"
8
+ ],
9
+ "sideEffects": [
10
+ "./build/register.js",
11
+ "./build/register.cjs",
12
+ "./build/styles/**/*.css"
13
+ ],
14
+ "scripts": {
15
+ "clean": "rm -rf build",
16
+ "build": "npm run clean && zshy",
17
+ "test": "vitest run",
18
+ "test:watch": "vitest",
19
+ "lint": "biome check src test",
20
+ "lint:fix": "biome check src test --write",
21
+ "format": "biome format src test",
22
+ "format:fix": "biome format src test --write",
23
+ "typecheck": "tsc --noEmit",
24
+ "prepare": "zshy"
25
+ },
26
+ "keywords": [
27
+ "ui",
28
+ "web-components",
29
+ "typescript",
30
+ "animation",
31
+ "controls",
32
+ "leva",
33
+ "lil-gui"
34
+ ],
35
+ "author": "Aaron Iker",
36
+ "license": "MIT",
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "https://github.com/easemate/web-kit.git"
40
+ },
41
+ "bugs": {
42
+ "url": "https://github.com/easemate/web-kit/issues"
43
+ },
44
+ "homepage": "https://github.com/easemate/web-kit#readme",
45
+ "engines": {
46
+ "node": ">=20"
47
+ },
48
+ "dependencies": {
49
+ "lit-html": "^3.2.1"
50
+ },
51
+ "zshy": {
52
+ "exports": {
53
+ ".": "./src/index.ts",
54
+ "./elements": "./src/elements/index.ts",
55
+ "./decorators": "./src/decorators/index.ts",
56
+ "./utils": "./src/utils/index.ts",
57
+ "./theme": "./src/theme/index.ts",
58
+ "./register": "./src/register.ts"
59
+ }
60
+ },
61
+ "exports": {
62
+ ".": {
63
+ "types": "./build/index.d.cts",
64
+ "import": "./build/index.js",
65
+ "require": "./build/index.cjs"
66
+ },
67
+ "./elements": {
68
+ "types": "./build/elements/index.d.cts",
69
+ "import": "./build/elements/index.js",
70
+ "require": "./build/elements/index.cjs"
71
+ },
72
+ "./decorators": {
73
+ "types": "./build/decorators/index.d.cts",
74
+ "import": "./build/decorators/index.js",
75
+ "require": "./build/decorators/index.cjs"
76
+ },
77
+ "./utils": {
78
+ "types": "./build/utils/index.d.cts",
79
+ "import": "./build/utils/index.js",
80
+ "require": "./build/utils/index.cjs"
81
+ },
82
+ "./theme": {
83
+ "types": "./build/theme/index.d.cts",
84
+ "import": "./build/theme/index.js",
85
+ "require": "./build/theme/index.cjs"
86
+ },
87
+ "./register": {
88
+ "types": "./build/register.d.cts",
89
+ "import": "./build/register.js",
90
+ "require": "./build/register.cjs"
91
+ }
92
+ },
93
+ "main": "./build/index.cjs",
94
+ "types": "./build/index.d.cts",
95
+ "module": "./build/index.js"
96
+ }