@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,28 @@
1
+ import { type TemplateResult } from 'lit-html';
2
+ type Constructor<T extends HTMLElement> = new (...args: unknown[]) => T;
3
+ type RenderableElement = HTMLElement & {
4
+ render?(): TemplateResult | null | undefined;
5
+ afterRender?(): void;
6
+ wrapRender?(commit: () => void, context: RenderContext): void;
7
+ onAttributeChange?(name: string, oldValue: string | null, newValue: string | null): void;
8
+ requestRender?(): void;
9
+ renderRoot?: ShadowRoot | HTMLElement;
10
+ };
11
+ type TemplateValue<TElement extends RenderableElement> = TemplateResult | null | undefined | ((this: TElement, host: TElement) => TemplateResult | null | undefined);
12
+ interface ComponentOptions<TElement extends RenderableElement = RenderableElement> {
13
+ tag: string;
14
+ template?: TemplateValue<TElement>;
15
+ styles?: string;
16
+ styleUrls?: string[];
17
+ observedAttributes?: string[];
18
+ shadowMode?: ShadowRootMode;
19
+ autoSlot?: boolean;
20
+ }
21
+ export interface RenderContext {
22
+ fragment: DocumentFragment;
23
+ root: ShadowRoot | HTMLElement;
24
+ }
25
+ export declare const Component: <TElement extends RenderableElement = RenderableElement>(options: ComponentOptions<TElement>) => <TBase extends Constructor<TElement> & {
26
+ observedAttributes?: string[];
27
+ }>(Base: TBase, _context: ClassDecoratorContext) => TBase;
28
+ export {};
@@ -0,0 +1,123 @@
1
+ import { html, render } from 'lit-html';
2
+ const styleCache = new Map();
3
+ const normalizeTemplate = (template) => {
4
+ if (typeof template === 'function') {
5
+ return template;
6
+ }
7
+ if (template && typeof template === 'object' && '_$litTemplate$' in template) {
8
+ return function () {
9
+ return template;
10
+ };
11
+ }
12
+ return function () {
13
+ return null;
14
+ };
15
+ };
16
+ const fetchStyles = async (urls) => Promise.all(urls.map((url) => {
17
+ const cached = styleCache.get(url);
18
+ if (cached) {
19
+ return cached;
20
+ }
21
+ const request = fetch(url)
22
+ .then((response) => (response.ok ? response.text() : ''))
23
+ .catch(() => '');
24
+ styleCache.set(url, request);
25
+ return request;
26
+ }));
27
+ export const Component = (options) => (Base, _context) => {
28
+ const { tag, template, styles = '', styleUrls = [], observedAttributes = [], shadowMode = 'open', autoSlot = true } = options;
29
+ if (!tag) {
30
+ throw new Error('@Component requires a "tag" option.');
31
+ }
32
+ const templateFn = normalizeTemplate(template);
33
+ class Decorated extends Base {
34
+ static get observedAttributes() {
35
+ const parent = 'observedAttributes' in Base && Array.isArray(Base.observedAttributes)
36
+ ? Base.observedAttributes
37
+ : [];
38
+ const own = Array.isArray(observedAttributes) ? observedAttributes : [];
39
+ return Array.from(new Set([...parent, ...own]));
40
+ }
41
+ #shadow;
42
+ #styles = styles;
43
+ #styleUrls = [...styleUrls];
44
+ #renderScheduled = false;
45
+ constructor(...args) {
46
+ super(...args);
47
+ this.#shadow = this.attachShadow({ mode: shadowMode });
48
+ this.renderRoot = this.#shadow;
49
+ }
50
+ get shadow() {
51
+ return this.renderRoot;
52
+ }
53
+ connectedCallback() {
54
+ Base.prototype.connectedCallback?.call(this);
55
+ void this.#loadStyles().finally(() => {
56
+ this.requestRender();
57
+ });
58
+ }
59
+ disconnectedCallback() {
60
+ Base.prototype.disconnectedCallback?.call(this);
61
+ this.#renderScheduled = false;
62
+ }
63
+ attributeChangedCallback(name, oldValue, newValue) {
64
+ Base.prototype.attributeChangedCallback?.call(this, name, oldValue, newValue);
65
+ if (oldValue !== newValue) {
66
+ this.onAttributeChange?.(name, oldValue, newValue);
67
+ }
68
+ }
69
+ requestRender() {
70
+ if (this.#renderScheduled) {
71
+ return;
72
+ }
73
+ this.#renderScheduled = true;
74
+ requestAnimationFrame(() => {
75
+ this.#renderScheduled = false;
76
+ this.#render();
77
+ });
78
+ }
79
+ async #loadStyles() {
80
+ if (!this.#styleUrls.length) {
81
+ return;
82
+ }
83
+ const fetched = await fetchStyles(this.#styleUrls);
84
+ const inlineStyles = this.#styles ? [this.#styles] : [];
85
+ this.#styles = [...inlineStyles, ...fetched.filter(Boolean)].join('\n');
86
+ }
87
+ #render() {
88
+ const root = this.#shadow;
89
+ let templateResult;
90
+ if (typeof this.render === 'function') {
91
+ templateResult = this.render();
92
+ }
93
+ else {
94
+ templateResult = templateFn.call(this, this);
95
+ }
96
+ const styleTemplate = this.#styles ? html `<style>${this.#styles}</style>` : null;
97
+ const slotTemplate = autoSlot ? html `<slot></slot>` : null;
98
+ const completeTemplate = html `
99
+ ${styleTemplate}
100
+ ${templateResult ?? null}
101
+ ${slotTemplate}
102
+ `;
103
+ const commit = () => {
104
+ render(completeTemplate, root);
105
+ this.afterRender?.();
106
+ };
107
+ if (typeof this.wrapRender === 'function') {
108
+ const fragment = document.createDocumentFragment();
109
+ const tempDiv = document.createElement('div');
110
+ render(completeTemplate, tempDiv);
111
+ fragment.append(...tempDiv.childNodes);
112
+ this.wrapRender(commit, { fragment, root });
113
+ return;
114
+ }
115
+ commit();
116
+ }
117
+ }
118
+ // SSR safety: only register in browser environments
119
+ if (typeof customElements !== 'undefined' && !customElements.get(tag)) {
120
+ customElements.define(tag, Decorated);
121
+ }
122
+ return Decorated;
123
+ };
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Listen = Listen;
4
+ const lifecycleHooks = {
5
+ connectedCallback: new WeakMap(),
6
+ disconnectedCallback: new WeakMap()
7
+ };
8
+ const cleanupRegistry = new WeakMap();
9
+ const addLifecycleHook = (instance, hookName, handler) => {
10
+ const store = lifecycleHooks[hookName];
11
+ let callbacks = store.get(instance);
12
+ if (!callbacks) {
13
+ callbacks = new Set();
14
+ store.set(instance, callbacks);
15
+ const original = instance[hookName];
16
+ instance[hookName] = function (...args) {
17
+ callbacks?.forEach((callback) => {
18
+ callback.apply(this);
19
+ });
20
+ if (typeof original === 'function') {
21
+ return original.apply(this, args);
22
+ }
23
+ return undefined;
24
+ };
25
+ }
26
+ callbacks.add(handler);
27
+ };
28
+ const registerCleanup = (instance, cleanup) => {
29
+ let callbacks = cleanupRegistry.get(instance);
30
+ if (!callbacks) {
31
+ callbacks = new Set();
32
+ cleanupRegistry.set(instance, callbacks);
33
+ addLifecycleHook(instance, 'disconnectedCallback', function () {
34
+ const registered = cleanupRegistry.get(this);
35
+ registered?.forEach((fn) => {
36
+ try {
37
+ fn();
38
+ }
39
+ catch (error) {
40
+ console.error('[Listen] cleanup failed', error);
41
+ }
42
+ });
43
+ cleanupRegistry.delete(this);
44
+ });
45
+ }
46
+ callbacks.add(cleanup);
47
+ };
48
+ const resolveTarget = (host, target) => {
49
+ if (typeof target === 'function') {
50
+ return target(host) ?? null;
51
+ }
52
+ if (target instanceof EventTarget) {
53
+ return target;
54
+ }
55
+ switch (target) {
56
+ case 'document':
57
+ return document;
58
+ case 'window':
59
+ return window;
60
+ case 'light':
61
+ return host;
62
+ default:
63
+ return host.renderRoot ?? host.shadowRoot ?? host;
64
+ }
65
+ };
66
+ const normalizeOptions = (selectorOrOptions) => {
67
+ if (typeof selectorOrOptions === 'string') {
68
+ return { selector: selectorOrOptions };
69
+ }
70
+ return selectorOrOptions ?? {};
71
+ };
72
+ const buildOptions = (options) => {
73
+ return {
74
+ selector: options.selector ?? null,
75
+ target: options.target ?? 'shadow',
76
+ prevent: options.prevent ?? false,
77
+ stop: options.stop ?? false,
78
+ stopImmediate: options.stopImmediate ?? false,
79
+ once: options.once ?? false,
80
+ passive: options.passive,
81
+ capture: options.capture ?? false,
82
+ when: options.when ?? null
83
+ };
84
+ };
85
+ function Listen(eventName, selectorOrOptions) {
86
+ if (!eventName) {
87
+ throw new Error('@Listen requires an event name.');
88
+ }
89
+ const listenConfig = buildOptions(normalizeOptions(selectorOrOptions));
90
+ return (originalMethod, context) => {
91
+ context.addInitializer(function () {
92
+ let attached = false;
93
+ const attach = () => {
94
+ if (attached) {
95
+ return;
96
+ }
97
+ const target = resolveTarget(this, listenConfig.target);
98
+ if (!target || typeof target.addEventListener !== 'function') {
99
+ console.warn(`@Listen unable to resolve target for ${String(eventName)}`);
100
+ return;
101
+ }
102
+ const eventOptions = {
103
+ capture: listenConfig.capture,
104
+ once: listenConfig.once,
105
+ passive: listenConfig.passive !== undefined ? listenConfig.passive : !listenConfig.prevent
106
+ };
107
+ const handler = (event) => {
108
+ const typedEvent = event;
109
+ if (listenConfig.prevent) {
110
+ typedEvent.preventDefault();
111
+ }
112
+ if (listenConfig.stopImmediate) {
113
+ typedEvent.stopImmediatePropagation();
114
+ }
115
+ else if (listenConfig.stop) {
116
+ typedEvent.stopPropagation();
117
+ }
118
+ let matched = null;
119
+ if (listenConfig.selector) {
120
+ const path = typedEvent.composedPath();
121
+ matched =
122
+ path.find((node) => node instanceof Element && node.matches(listenConfig.selector)) ?? null;
123
+ if (!matched) {
124
+ return;
125
+ }
126
+ }
127
+ if (listenConfig.when && !listenConfig.when(typedEvent, matched)) {
128
+ return;
129
+ }
130
+ if (listenConfig.selector) {
131
+ void originalMethod.call(this, typedEvent, matched);
132
+ }
133
+ else {
134
+ const targetNode = (typedEvent.target instanceof Element ? typedEvent.target : null);
135
+ void originalMethod.call(this, typedEvent, targetNode);
136
+ }
137
+ };
138
+ target.addEventListener(eventName, handler, eventOptions);
139
+ attached = true;
140
+ registerCleanup(this, () => {
141
+ target.removeEventListener(eventName, handler, eventOptions);
142
+ attached = false;
143
+ });
144
+ };
145
+ // IMPORTANT:
146
+ // Many components are created inside templates/shadow DOM. At construction time they are often not connected yet,
147
+ // and patching instance lifecycle callbacks is not reliably invoked by the platform.
148
+ // Attach the listener ASAP (microtask) so it works for nested components as well.
149
+ queueMicrotask(attach);
150
+ // Best-effort attach on connect too (idempotent).
151
+ addLifecycleHook(this, 'connectedCallback', attach);
152
+ });
153
+ };
154
+ }
@@ -0,0 +1,18 @@
1
+ type ListenHost = HTMLElement & {
2
+ renderRoot?: ShadowRoot | DocumentFragment | HTMLElement;
3
+ };
4
+ type ListenTargetResolver<THost extends ListenHost> = 'document' | 'window' | 'shadow' | 'root' | 'light' | EventTarget | ((host: THost) => EventTarget | null | undefined);
5
+ type Predicate<TEvent extends Event, TElement extends Element> = (event: TEvent, matched: TElement | null) => boolean;
6
+ interface ListenOptions<THost extends ListenHost, TElement extends Element, TEvent extends Event> {
7
+ selector?: string;
8
+ target?: ListenTargetResolver<THost>;
9
+ prevent?: boolean;
10
+ stop?: boolean;
11
+ stopImmediate?: boolean;
12
+ once?: boolean;
13
+ passive?: boolean;
14
+ capture?: boolean;
15
+ when?: Predicate<TEvent, TElement>;
16
+ }
17
+ export declare function Listen<THost extends ListenHost, TEvent extends Event = Event, TElement extends Element = Element>(eventName: keyof HTMLElementEventMap | string, selectorOrOptions?: string | ListenOptions<THost, TElement, TEvent>): (originalMethod: (this: THost, event: TEvent, matched?: TElement | null) => unknown, context: ClassMethodDecoratorContext<THost, typeof originalMethod>) => void;
18
+ export {};
@@ -0,0 +1,18 @@
1
+ type ListenHost = HTMLElement & {
2
+ renderRoot?: ShadowRoot | DocumentFragment | HTMLElement;
3
+ };
4
+ type ListenTargetResolver<THost extends ListenHost> = 'document' | 'window' | 'shadow' | 'root' | 'light' | EventTarget | ((host: THost) => EventTarget | null | undefined);
5
+ type Predicate<TEvent extends Event, TElement extends Element> = (event: TEvent, matched: TElement | null) => boolean;
6
+ interface ListenOptions<THost extends ListenHost, TElement extends Element, TEvent extends Event> {
7
+ selector?: string;
8
+ target?: ListenTargetResolver<THost>;
9
+ prevent?: boolean;
10
+ stop?: boolean;
11
+ stopImmediate?: boolean;
12
+ once?: boolean;
13
+ passive?: boolean;
14
+ capture?: boolean;
15
+ when?: Predicate<TEvent, TElement>;
16
+ }
17
+ export declare function Listen<THost extends ListenHost, TEvent extends Event = Event, TElement extends Element = Element>(eventName: keyof HTMLElementEventMap | string, selectorOrOptions?: string | ListenOptions<THost, TElement, TEvent>): (originalMethod: (this: THost, event: TEvent, matched?: TElement | null) => unknown, context: ClassMethodDecoratorContext<THost, typeof originalMethod>) => void;
18
+ export {};
@@ -0,0 +1,151 @@
1
+ const lifecycleHooks = {
2
+ connectedCallback: new WeakMap(),
3
+ disconnectedCallback: new WeakMap()
4
+ };
5
+ const cleanupRegistry = new WeakMap();
6
+ const addLifecycleHook = (instance, hookName, handler) => {
7
+ const store = lifecycleHooks[hookName];
8
+ let callbacks = store.get(instance);
9
+ if (!callbacks) {
10
+ callbacks = new Set();
11
+ store.set(instance, callbacks);
12
+ const original = instance[hookName];
13
+ instance[hookName] = function (...args) {
14
+ callbacks?.forEach((callback) => {
15
+ callback.apply(this);
16
+ });
17
+ if (typeof original === 'function') {
18
+ return original.apply(this, args);
19
+ }
20
+ return undefined;
21
+ };
22
+ }
23
+ callbacks.add(handler);
24
+ };
25
+ const registerCleanup = (instance, cleanup) => {
26
+ let callbacks = cleanupRegistry.get(instance);
27
+ if (!callbacks) {
28
+ callbacks = new Set();
29
+ cleanupRegistry.set(instance, callbacks);
30
+ addLifecycleHook(instance, 'disconnectedCallback', function () {
31
+ const registered = cleanupRegistry.get(this);
32
+ registered?.forEach((fn) => {
33
+ try {
34
+ fn();
35
+ }
36
+ catch (error) {
37
+ console.error('[Listen] cleanup failed', error);
38
+ }
39
+ });
40
+ cleanupRegistry.delete(this);
41
+ });
42
+ }
43
+ callbacks.add(cleanup);
44
+ };
45
+ const resolveTarget = (host, target) => {
46
+ if (typeof target === 'function') {
47
+ return target(host) ?? null;
48
+ }
49
+ if (target instanceof EventTarget) {
50
+ return target;
51
+ }
52
+ switch (target) {
53
+ case 'document':
54
+ return document;
55
+ case 'window':
56
+ return window;
57
+ case 'light':
58
+ return host;
59
+ default:
60
+ return host.renderRoot ?? host.shadowRoot ?? host;
61
+ }
62
+ };
63
+ const normalizeOptions = (selectorOrOptions) => {
64
+ if (typeof selectorOrOptions === 'string') {
65
+ return { selector: selectorOrOptions };
66
+ }
67
+ return selectorOrOptions ?? {};
68
+ };
69
+ const buildOptions = (options) => {
70
+ return {
71
+ selector: options.selector ?? null,
72
+ target: options.target ?? 'shadow',
73
+ prevent: options.prevent ?? false,
74
+ stop: options.stop ?? false,
75
+ stopImmediate: options.stopImmediate ?? false,
76
+ once: options.once ?? false,
77
+ passive: options.passive,
78
+ capture: options.capture ?? false,
79
+ when: options.when ?? null
80
+ };
81
+ };
82
+ export function Listen(eventName, selectorOrOptions) {
83
+ if (!eventName) {
84
+ throw new Error('@Listen requires an event name.');
85
+ }
86
+ const listenConfig = buildOptions(normalizeOptions(selectorOrOptions));
87
+ return (originalMethod, context) => {
88
+ context.addInitializer(function () {
89
+ let attached = false;
90
+ const attach = () => {
91
+ if (attached) {
92
+ return;
93
+ }
94
+ const target = resolveTarget(this, listenConfig.target);
95
+ if (!target || typeof target.addEventListener !== 'function') {
96
+ console.warn(`@Listen unable to resolve target for ${String(eventName)}`);
97
+ return;
98
+ }
99
+ const eventOptions = {
100
+ capture: listenConfig.capture,
101
+ once: listenConfig.once,
102
+ passive: listenConfig.passive !== undefined ? listenConfig.passive : !listenConfig.prevent
103
+ };
104
+ const handler = (event) => {
105
+ const typedEvent = event;
106
+ if (listenConfig.prevent) {
107
+ typedEvent.preventDefault();
108
+ }
109
+ if (listenConfig.stopImmediate) {
110
+ typedEvent.stopImmediatePropagation();
111
+ }
112
+ else if (listenConfig.stop) {
113
+ typedEvent.stopPropagation();
114
+ }
115
+ let matched = null;
116
+ if (listenConfig.selector) {
117
+ const path = typedEvent.composedPath();
118
+ matched =
119
+ path.find((node) => node instanceof Element && node.matches(listenConfig.selector)) ?? null;
120
+ if (!matched) {
121
+ return;
122
+ }
123
+ }
124
+ if (listenConfig.when && !listenConfig.when(typedEvent, matched)) {
125
+ return;
126
+ }
127
+ if (listenConfig.selector) {
128
+ void originalMethod.call(this, typedEvent, matched);
129
+ }
130
+ else {
131
+ const targetNode = (typedEvent.target instanceof Element ? typedEvent.target : null);
132
+ void originalMethod.call(this, typedEvent, targetNode);
133
+ }
134
+ };
135
+ target.addEventListener(eventName, handler, eventOptions);
136
+ attached = true;
137
+ registerCleanup(this, () => {
138
+ target.removeEventListener(eventName, handler, eventOptions);
139
+ attached = false;
140
+ });
141
+ };
142
+ // IMPORTANT:
143
+ // Many components are created inside templates/shadow DOM. At construction time they are often not connected yet,
144
+ // and patching instance lifecycle callbacks is not reliably invoked by the platform.
145
+ // Attach the listener ASAP (microtask) so it works for nested components as well.
146
+ queueMicrotask(attach);
147
+ // Best-effort attach on connect too (idempotent).
148
+ addLifecycleHook(this, 'connectedCallback', attach);
149
+ });
150
+ };
151
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requestOutsideClickUpdate = void 0;
4
+ exports.OutsideClick = OutsideClick;
5
+ const outside_click_1 = require("~/utils/outside-click");
6
+ const lifecycleApplied = new WeakSet();
7
+ const wrapMethod = (host, name, hook, callHookFirst = false) => {
8
+ const original = host[name];
9
+ host[name] = function (...args) {
10
+ if (callHookFirst) {
11
+ hook.call(this);
12
+ }
13
+ let result;
14
+ if (typeof original === 'function') {
15
+ result = original.apply(this, args);
16
+ }
17
+ if (!callHookFirst) {
18
+ hook.call(this);
19
+ }
20
+ return result;
21
+ };
22
+ };
23
+ const ensureLifecycle = (host) => {
24
+ if (lifecycleApplied.has(host)) {
25
+ return;
26
+ }
27
+ lifecycleApplied.add(host);
28
+ wrapMethod(host, 'connectedCallback', function () {
29
+ (0, outside_click_1.updateOutsideClickHandles)(this);
30
+ });
31
+ wrapMethod(host, 'afterRender', function () {
32
+ (0, outside_click_1.updateOutsideClickHandles)(this);
33
+ });
34
+ wrapMethod(host, 'disconnectedCallback', function () {
35
+ (0, outside_click_1.disconnectOutsideClickHandles)(this);
36
+ }, true);
37
+ };
38
+ function OutsideClick(options = {}) {
39
+ return (originalMethod, context) => {
40
+ context.addInitializer(function () {
41
+ ensureLifecycle(this);
42
+ const resolve = options.resolve ??
43
+ ((host) => {
44
+ return {
45
+ owner: options.owner?.(host),
46
+ content: options.content?.(host),
47
+ triggers: options.triggers?.(host)
48
+ };
49
+ });
50
+ const handle = (0, outside_click_1.createOutsideClickHandle)(this, (event) => {
51
+ originalMethod.call(this, event);
52
+ }, {
53
+ resolve,
54
+ disabled: options.disabled
55
+ });
56
+ (0, outside_click_1.registerOutsideClickHandle)(this, handle);
57
+ if (this.isConnected) {
58
+ (0, outside_click_1.updateOutsideClickHandles)(this);
59
+ }
60
+ });
61
+ };
62
+ }
63
+ var outside_click_2 = require("~/utils/outside-click");
64
+ Object.defineProperty(exports, "requestOutsideClickUpdate", { enumerable: true, get: function () { return outside_click_2.requestOutsideClickUpdate; } });
@@ -0,0 +1,16 @@
1
+ import type { OutsideClickResolution } from '~/utils/outside-click';
2
+ type OutsideClickHost = HTMLElement & {
3
+ connectedCallback?: (...args: unknown[]) => unknown;
4
+ disconnectedCallback?: (...args: unknown[]) => unknown;
5
+ afterRender?: (...args: unknown[]) => unknown;
6
+ };
7
+ interface OutsideClickOptions<THost extends OutsideClickHost> {
8
+ resolve?: (host: THost) => OutsideClickResolution | null | undefined;
9
+ owner?: (host: THost) => HTMLElement | null | undefined;
10
+ content?: (host: THost) => HTMLElement | null | undefined;
11
+ triggers?: (host: THost) => Array<HTMLElement | null | undefined>;
12
+ disabled?: (host: THost) => boolean;
13
+ }
14
+ export declare function OutsideClick<THost extends OutsideClickHost, TEvent extends Event = Event>(options?: OutsideClickOptions<THost>): (originalMethod: (this: THost, event: TEvent) => unknown, context: ClassMethodDecoratorContext<THost, typeof originalMethod>) => void;
15
+ export { requestOutsideClickUpdate } from '~/utils/outside-click';
16
+ export type { OutsideClickOptions };
@@ -0,0 +1,16 @@
1
+ import type { OutsideClickResolution } from '~/utils/outside-click';
2
+ type OutsideClickHost = HTMLElement & {
3
+ connectedCallback?: (...args: unknown[]) => unknown;
4
+ disconnectedCallback?: (...args: unknown[]) => unknown;
5
+ afterRender?: (...args: unknown[]) => unknown;
6
+ };
7
+ interface OutsideClickOptions<THost extends OutsideClickHost> {
8
+ resolve?: (host: THost) => OutsideClickResolution | null | undefined;
9
+ owner?: (host: THost) => HTMLElement | null | undefined;
10
+ content?: (host: THost) => HTMLElement | null | undefined;
11
+ triggers?: (host: THost) => Array<HTMLElement | null | undefined>;
12
+ disabled?: (host: THost) => boolean;
13
+ }
14
+ export declare function OutsideClick<THost extends OutsideClickHost, TEvent extends Event = Event>(options?: OutsideClickOptions<THost>): (originalMethod: (this: THost, event: TEvent) => unknown, context: ClassMethodDecoratorContext<THost, typeof originalMethod>) => void;
15
+ export { requestOutsideClickUpdate } from '~/utils/outside-click';
16
+ export type { OutsideClickOptions };
@@ -0,0 +1,59 @@
1
+ import { createOutsideClickHandle, disconnectOutsideClickHandles, registerOutsideClickHandle, updateOutsideClickHandles } from '~/utils/outside-click';
2
+ const lifecycleApplied = new WeakSet();
3
+ const wrapMethod = (host, name, hook, callHookFirst = false) => {
4
+ const original = host[name];
5
+ host[name] = function (...args) {
6
+ if (callHookFirst) {
7
+ hook.call(this);
8
+ }
9
+ let result;
10
+ if (typeof original === 'function') {
11
+ result = original.apply(this, args);
12
+ }
13
+ if (!callHookFirst) {
14
+ hook.call(this);
15
+ }
16
+ return result;
17
+ };
18
+ };
19
+ const ensureLifecycle = (host) => {
20
+ if (lifecycleApplied.has(host)) {
21
+ return;
22
+ }
23
+ lifecycleApplied.add(host);
24
+ wrapMethod(host, 'connectedCallback', function () {
25
+ updateOutsideClickHandles(this);
26
+ });
27
+ wrapMethod(host, 'afterRender', function () {
28
+ updateOutsideClickHandles(this);
29
+ });
30
+ wrapMethod(host, 'disconnectedCallback', function () {
31
+ disconnectOutsideClickHandles(this);
32
+ }, true);
33
+ };
34
+ export function OutsideClick(options = {}) {
35
+ return (originalMethod, context) => {
36
+ context.addInitializer(function () {
37
+ ensureLifecycle(this);
38
+ const resolve = options.resolve ??
39
+ ((host) => {
40
+ return {
41
+ owner: options.owner?.(host),
42
+ content: options.content?.(host),
43
+ triggers: options.triggers?.(host)
44
+ };
45
+ });
46
+ const handle = createOutsideClickHandle(this, (event) => {
47
+ originalMethod.call(this, event);
48
+ }, {
49
+ resolve,
50
+ disabled: options.disabled
51
+ });
52
+ registerOutsideClickHandle(this, handle);
53
+ if (this.isConnected) {
54
+ updateOutsideClickHandles(this);
55
+ }
56
+ });
57
+ };
58
+ }
59
+ export { requestOutsideClickUpdate } from '~/utils/outside-click';