@kritzel/editor 0.4.31

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 (298) hide show
  1. package/LICENSE.md +50 -0
  2. package/README.md +5 -0
  3. package/dist/cjs/app-globals-V2Kpy_OQ.js +5 -0
  4. package/dist/cjs/index-B92VHWr4.js +1834 -0
  5. package/dist/cjs/index.cjs.js +2 -0
  6. package/dist/cjs/kritzel-active-users_46.cjs.entry.js +75271 -0
  7. package/dist/cjs/kritzel-brush-style.cjs.entry.js +31 -0
  8. package/dist/cjs/kritzel-editor.cjs.js +25 -0
  9. package/dist/cjs/loader.cjs.js +13 -0
  10. package/dist/collection/collection-manifest.json +65 -0
  11. package/dist/collection/components/kritzel-active-users/kritzel-active-users.css +65 -0
  12. package/dist/collection/components/kritzel-active-users/kritzel-active-users.js +134 -0
  13. package/dist/collection/components/kritzel-avatar/kritzel-avatar.css +58 -0
  14. package/dist/collection/components/kritzel-avatar/kritzel-avatar.js +207 -0
  15. package/dist/collection/components/kritzel-back-to-content/kritzel-back-to-content.css +42 -0
  16. package/dist/collection/components/kritzel-back-to-content/kritzel-back-to-content.js +95 -0
  17. package/dist/collection/components/kritzel-brush-style/kritzel-brush-style.css +43 -0
  18. package/dist/collection/components/kritzel-brush-style/kritzel-brush-style.js +97 -0
  19. package/dist/collection/components/kritzel-button/kritzel-button.css +73 -0
  20. package/dist/collection/components/kritzel-button/kritzel-button.js +118 -0
  21. package/dist/collection/components/kritzel-color/kritzel-color.css +25 -0
  22. package/dist/collection/components/kritzel-color/kritzel-color.js +149 -0
  23. package/dist/collection/components/kritzel-color-palette/kritzel-color-palette.css +46 -0
  24. package/dist/collection/components/kritzel-color-palette/kritzel-color-palette.js +225 -0
  25. package/dist/collection/components/kritzel-context-menu/kritzel-context-menu.css +112 -0
  26. package/dist/collection/components/kritzel-context-menu/kritzel-context-menu.js +368 -0
  27. package/dist/collection/components/kritzel-current-user/kritzel-current-user.css +11 -0
  28. package/dist/collection/components/kritzel-current-user/kritzel-current-user.js +109 -0
  29. package/dist/collection/components/kritzel-current-user-dialog/kritzel-current-user-dialog.css +39 -0
  30. package/dist/collection/components/kritzel-current-user-dialog/kritzel-current-user-dialog.js +169 -0
  31. package/dist/collection/components/kritzel-dialog/kritzel-dialog.css +209 -0
  32. package/dist/collection/components/kritzel-dialog/kritzel-dialog.js +787 -0
  33. package/dist/collection/components/kritzel-dropdown/kritzel-dropdown.css +190 -0
  34. package/dist/collection/components/kritzel-dropdown/kritzel-dropdown.js +418 -0
  35. package/dist/collection/components/kritzel-editor/kritzel-editor.css +161 -0
  36. package/dist/collection/components/kritzel-editor/kritzel-editor.js +4678 -0
  37. package/dist/collection/components/kritzel-export/kritzel-export.css +89 -0
  38. package/dist/collection/components/kritzel-export/kritzel-export.js +246 -0
  39. package/dist/collection/components/kritzel-font/kritzel-font.css +10 -0
  40. package/dist/collection/components/kritzel-font/kritzel-font.js +89 -0
  41. package/dist/collection/components/kritzel-font-family/kritzel-font-family.css +48 -0
  42. package/dist/collection/components/kritzel-font-family/kritzel-font-family.js +122 -0
  43. package/dist/collection/components/kritzel-font-size/kritzel-font-size.css +30 -0
  44. package/dist/collection/components/kritzel-font-size/kritzel-font-size.js +117 -0
  45. package/dist/collection/components/kritzel-input/kritzel-input.css +69 -0
  46. package/dist/collection/components/kritzel-input/kritzel-input.js +198 -0
  47. package/dist/collection/components/kritzel-line-endings/kritzel-line-endings.css +60 -0
  48. package/dist/collection/components/kritzel-line-endings/kritzel-line-endings.js +165 -0
  49. package/dist/collection/components/kritzel-loading-overlay/kritzel-loading-overlay.css +54 -0
  50. package/dist/collection/components/kritzel-loading-overlay/kritzel-loading-overlay.js +70 -0
  51. package/dist/collection/components/kritzel-login-dialog/kritzel-login-dialog.css +98 -0
  52. package/dist/collection/components/kritzel-login-dialog/kritzel-login-dialog.js +239 -0
  53. package/dist/collection/components/kritzel-master-detail/kritzel-master-detail.css +190 -0
  54. package/dist/collection/components/kritzel-master-detail/kritzel-master-detail.js +201 -0
  55. package/dist/collection/components/kritzel-menu/kritzel-menu.css +34 -0
  56. package/dist/collection/components/kritzel-menu/kritzel-menu.js +297 -0
  57. package/dist/collection/components/kritzel-menu-item/kritzel-menu-item.css +167 -0
  58. package/dist/collection/components/kritzel-menu-item/kritzel-menu-item.js +298 -0
  59. package/dist/collection/components/kritzel-more-menu/kritzel-more-menu.css +58 -0
  60. package/dist/collection/components/kritzel-more-menu/kritzel-more-menu.js +381 -0
  61. package/dist/collection/components/kritzel-notification-card/kritzel-notification-card.css +101 -0
  62. package/dist/collection/components/kritzel-notification-card/kritzel-notification-card.js +173 -0
  63. package/dist/collection/components/kritzel-numeric-input/kritzel-numeric-input.css +102 -0
  64. package/dist/collection/components/kritzel-numeric-input/kritzel-numeric-input.js +255 -0
  65. package/dist/collection/components/kritzel-opacity-slider/kritzel-opacity-slider.css +85 -0
  66. package/dist/collection/components/kritzel-opacity-slider/kritzel-opacity-slider.js +164 -0
  67. package/dist/collection/components/kritzel-pill-tabs/kritzel-pill-tabs.css +68 -0
  68. package/dist/collection/components/kritzel-pill-tabs/kritzel-pill-tabs.js +135 -0
  69. package/dist/collection/components/kritzel-portal/kritzel-portal.js +432 -0
  70. package/dist/collection/components/kritzel-settings/kritzel-settings.css +137 -0
  71. package/dist/collection/components/kritzel-settings/kritzel-settings.js +448 -0
  72. package/dist/collection/components/kritzel-shape-fill/kritzel-shape-fill.css +47 -0
  73. package/dist/collection/components/kritzel-shape-fill/kritzel-shape-fill.js +93 -0
  74. package/dist/collection/components/kritzel-share-dialog/kritzel-share-dialog.css +150 -0
  75. package/dist/collection/components/kritzel-share-dialog/kritzel-share-dialog.js +308 -0
  76. package/dist/collection/components/kritzel-slide-toggle/kritzel-slide-toggle.css +48 -0
  77. package/dist/collection/components/kritzel-slide-toggle/kritzel-slide-toggle.js +119 -0
  78. package/dist/collection/components/kritzel-split-button/kritzel-split-button.css +78 -0
  79. package/dist/collection/components/kritzel-split-button/kritzel-split-button.js +433 -0
  80. package/dist/collection/components/kritzel-stroke-size/kritzel-stroke-size.css +37 -0
  81. package/dist/collection/components/kritzel-stroke-size/kritzel-stroke-size.js +89 -0
  82. package/dist/collection/components/kritzel-tool-config/kritzel-tool-config.css +38 -0
  83. package/dist/collection/components/kritzel-tool-config/kritzel-tool-config.js +467 -0
  84. package/dist/collection/components/kritzel-toolbar/kritzel-toolbar.css +348 -0
  85. package/dist/collection/components/kritzel-toolbar/kritzel-toolbar.js +588 -0
  86. package/dist/collection/components/kritzel-tooltip/kritzel-tooltip.css +18 -0
  87. package/dist/collection/components/kritzel-tooltip/kritzel-tooltip.js +388 -0
  88. package/dist/collection/components/kritzel-utility-panel/kritzel-utility-panel.css +46 -0
  89. package/dist/collection/components/kritzel-utility-panel/kritzel-utility-panel.js +146 -0
  90. package/dist/collection/components/kritzel-workspace-manager/kritzel-workspace-manager.css +16 -0
  91. package/dist/collection/components/kritzel-workspace-manager/kritzel-workspace-manager.js +365 -0
  92. package/dist/collection/components/kritzel-zoom-panel/kritzel-zoom-panel.css +72 -0
  93. package/dist/collection/components/kritzel-zoom-panel/kritzel-zoom-panel.js +173 -0
  94. package/dist/collection/index.js +1 -0
  95. package/dist/components/index.d.ts +121 -0
  96. package/dist/components/index.js +48 -0
  97. package/dist/components/kritzel-active-users.d.ts +11 -0
  98. package/dist/components/kritzel-active-users.js +6 -0
  99. package/dist/components/kritzel-avatar.d.ts +11 -0
  100. package/dist/components/kritzel-avatar.js +6 -0
  101. package/dist/components/kritzel-awareness-cursors.js +6 -0
  102. package/dist/components/kritzel-back-to-content.d.ts +11 -0
  103. package/dist/components/kritzel-back-to-content.js +6 -0
  104. package/dist/components/kritzel-brush-style.d.ts +11 -0
  105. package/dist/components/kritzel-brush-style.js +64 -0
  106. package/dist/components/kritzel-button.d.ts +11 -0
  107. package/dist/components/kritzel-button.js +6 -0
  108. package/dist/components/kritzel-color-palette.d.ts +11 -0
  109. package/dist/components/kritzel-color-palette.js +6 -0
  110. package/dist/components/kritzel-color.d.ts +11 -0
  111. package/dist/components/kritzel-color.js +6 -0
  112. package/dist/components/kritzel-context-menu.d.ts +11 -0
  113. package/dist/components/kritzel-context-menu.js +6 -0
  114. package/dist/components/kritzel-current-user-dialog.d.ts +11 -0
  115. package/dist/components/kritzel-current-user-dialog.js +6 -0
  116. package/dist/components/kritzel-current-user.d.ts +11 -0
  117. package/dist/components/kritzel-current-user.js +6 -0
  118. package/dist/components/kritzel-cursor-trail.js +6 -0
  119. package/dist/components/kritzel-dialog.d.ts +11 -0
  120. package/dist/components/kritzel-dialog.js +6 -0
  121. package/dist/components/kritzel-dropdown.d.ts +11 -0
  122. package/dist/components/kritzel-dropdown.js +6 -0
  123. package/dist/components/kritzel-editor.d.ts +11 -0
  124. package/dist/components/kritzel-editor.js +1792 -0
  125. package/dist/components/kritzel-engine.js +6 -0
  126. package/dist/components/kritzel-export.d.ts +11 -0
  127. package/dist/components/kritzel-export.js +6 -0
  128. package/dist/components/kritzel-font-family.d.ts +11 -0
  129. package/dist/components/kritzel-font-family.js +6 -0
  130. package/dist/components/kritzel-font-size.d.ts +11 -0
  131. package/dist/components/kritzel-font-size.js +6 -0
  132. package/dist/components/kritzel-font.d.ts +11 -0
  133. package/dist/components/kritzel-font.js +6 -0
  134. package/dist/components/kritzel-icon.js +6 -0
  135. package/dist/components/kritzel-input.d.ts +11 -0
  136. package/dist/components/kritzel-input.js +6 -0
  137. package/dist/components/kritzel-line-endings.d.ts +11 -0
  138. package/dist/components/kritzel-line-endings.js +6 -0
  139. package/dist/components/kritzel-loading-overlay.d.ts +11 -0
  140. package/dist/components/kritzel-loading-overlay.js +6 -0
  141. package/dist/components/kritzel-login-dialog.d.ts +11 -0
  142. package/dist/components/kritzel-login-dialog.js +6 -0
  143. package/dist/components/kritzel-master-detail.d.ts +11 -0
  144. package/dist/components/kritzel-master-detail.js +6 -0
  145. package/dist/components/kritzel-menu-item.d.ts +11 -0
  146. package/dist/components/kritzel-menu-item.js +6 -0
  147. package/dist/components/kritzel-menu.d.ts +11 -0
  148. package/dist/components/kritzel-menu.js +6 -0
  149. package/dist/components/kritzel-more-menu.d.ts +11 -0
  150. package/dist/components/kritzel-more-menu.js +6 -0
  151. package/dist/components/kritzel-notification-card.d.ts +11 -0
  152. package/dist/components/kritzel-notification-card.js +6 -0
  153. package/dist/components/kritzel-numeric-input.d.ts +11 -0
  154. package/dist/components/kritzel-numeric-input.js +6 -0
  155. package/dist/components/kritzel-opacity-slider.d.ts +11 -0
  156. package/dist/components/kritzel-opacity-slider.js +6 -0
  157. package/dist/components/kritzel-pill-tabs.d.ts +11 -0
  158. package/dist/components/kritzel-pill-tabs.js +6 -0
  159. package/dist/components/kritzel-portal.d.ts +11 -0
  160. package/dist/components/kritzel-portal.js +6 -0
  161. package/dist/components/kritzel-settings.d.ts +11 -0
  162. package/dist/components/kritzel-settings.js +6 -0
  163. package/dist/components/kritzel-shape-fill.d.ts +11 -0
  164. package/dist/components/kritzel-shape-fill.js +6 -0
  165. package/dist/components/kritzel-share-dialog.d.ts +11 -0
  166. package/dist/components/kritzel-share-dialog.js +6 -0
  167. package/dist/components/kritzel-slide-toggle.d.ts +11 -0
  168. package/dist/components/kritzel-slide-toggle.js +6 -0
  169. package/dist/components/kritzel-split-button.d.ts +11 -0
  170. package/dist/components/kritzel-split-button.js +6 -0
  171. package/dist/components/kritzel-stroke-size.d.ts +11 -0
  172. package/dist/components/kritzel-stroke-size.js +6 -0
  173. package/dist/components/kritzel-tool-config.d.ts +11 -0
  174. package/dist/components/kritzel-tool-config.js +6 -0
  175. package/dist/components/kritzel-toolbar.d.ts +11 -0
  176. package/dist/components/kritzel-toolbar.js +6 -0
  177. package/dist/components/kritzel-tooltip.d.ts +11 -0
  178. package/dist/components/kritzel-tooltip.js +6 -0
  179. package/dist/components/kritzel-utility-panel.d.ts +11 -0
  180. package/dist/components/kritzel-utility-panel.js +6 -0
  181. package/dist/components/kritzel-watermark.js +6 -0
  182. package/dist/components/kritzel-workspace-manager.d.ts +11 -0
  183. package/dist/components/kritzel-workspace-manager.js +6 -0
  184. package/dist/components/kritzel-zoom-panel.d.ts +11 -0
  185. package/dist/components/kritzel-zoom-panel.js +6 -0
  186. package/dist/components/p-4-qLegHb.js +142 -0
  187. package/dist/components/p-5qkOM1RJ.js +1557 -0
  188. package/dist/components/p-B3Tqoyl9.js +43 -0
  189. package/dist/components/p-B5xYV1o3.js +77 -0
  190. package/dist/components/p-B6UJztrf.js +290 -0
  191. package/dist/components/p-BDjRSoAc.js +43 -0
  192. package/dist/components/p-BFTU3MAI.js +7 -0
  193. package/dist/components/p-BGmTmdLe.js +167 -0
  194. package/dist/components/p-BN8VWPlq.js +164 -0
  195. package/dist/components/p-BZ_KnHdR.js +222 -0
  196. package/dist/components/p-B_gT0lCn.js +94 -0
  197. package/dist/components/p-BfMlwIcG.js +62 -0
  198. package/dist/components/p-BjFrt1q0.js +62 -0
  199. package/dist/components/p-Blq9a1ni.js +3267 -0
  200. package/dist/components/p-BrGJIoGK.js +52 -0
  201. package/dist/components/p-BvG3JO85.js +56 -0
  202. package/dist/components/p-CS3YZVYE.js +319 -0
  203. package/dist/components/p-CVxGF4bJ.js +150 -0
  204. package/dist/components/p-Ckqh1tqY.js +468 -0
  205. package/dist/components/p-ClfOtiNp.js +84 -0
  206. package/dist/components/p-CmjXRLdr.js +220 -0
  207. package/dist/components/p-CoNexfpB.js +106 -0
  208. package/dist/components/p-Cp4e4oTE.js +122 -0
  209. package/dist/components/p-CrIEmItB.js +85 -0
  210. package/dist/components/p-CvaxFYS0.js +304 -0
  211. package/dist/components/p-CwBxnzYu.js +57 -0
  212. package/dist/components/p-Cy_cLtOP.js +3456 -0
  213. package/dist/components/p-CzUeIini.js +381 -0
  214. package/dist/components/p-D0tPTPkR.js +99 -0
  215. package/dist/components/p-DJxgPPfs.js +194 -0
  216. package/dist/components/p-DOJCDPVD.js +55 -0
  217. package/dist/components/p-DVv8ChhE.js +91 -0
  218. package/dist/components/p-DXZBWJBt.js +70 -0
  219. package/dist/components/p-DXuf225S.js +53 -0
  220. package/dist/components/p-DZsSiMnA.js +63037 -0
  221. package/dist/components/p-DqOC_Yck.js +112 -0
  222. package/dist/components/p-Ds0uNtwQ.js +97 -0
  223. package/dist/components/p-DyRJFg4w.js +57 -0
  224. package/dist/components/p-GbCxpbQ6.js +88 -0
  225. package/dist/components/p-McY5wZ0h.js +135 -0
  226. package/dist/components/p-QEue33R5.js +70 -0
  227. package/dist/components/p-R1D8Sr0l.js +299 -0
  228. package/dist/components/p-SLnqczCS.js +49 -0
  229. package/dist/components/p-hQwVRh0t.js +147 -0
  230. package/dist/components/p-h_uh_Njf.js +63 -0
  231. package/dist/components/p-kOINnzaR.js +161 -0
  232. package/dist/components/p-peZjvnkK.js +486 -0
  233. package/dist/esm/app-globals-DQuL1Twl.js +3 -0
  234. package/dist/esm/index-OjbYJz-P.js +1807 -0
  235. package/dist/esm/index.js +1 -0
  236. package/dist/esm/kritzel-active-users_46.entry.js +75224 -0
  237. package/dist/esm/kritzel-brush-style.entry.js +29 -0
  238. package/dist/esm/kritzel-editor.js +21 -0
  239. package/dist/esm/loader.js +11 -0
  240. package/dist/index.cjs.js +1 -0
  241. package/dist/index.js +1 -0
  242. package/dist/kritzel-editor/index.esm.js +1 -0
  243. package/dist/kritzel-editor/kritzel-editor.esm.js +21 -0
  244. package/dist/kritzel-editor/p-501047d8.entry.js +29 -0
  245. package/dist/kritzel-editor/p-60319edb.entry.js +75224 -0
  246. package/dist/kritzel-editor/p-DQuL1Twl.js +3 -0
  247. package/dist/kritzel-editor/p-OjbYJz-P.js +1790 -0
  248. package/dist/types/components/kritzel-active-users/kritzel-active-users.d.ts +21 -0
  249. package/dist/types/components/kritzel-avatar/kritzel-avatar.d.ts +27 -0
  250. package/dist/types/components/kritzel-back-to-content/kritzel-back-to-content.d.ts +17 -0
  251. package/dist/types/components/kritzel-brush-style/kritzel-brush-style.d.ts +11 -0
  252. package/dist/types/components/kritzel-button/kritzel-button.d.ts +13 -0
  253. package/dist/types/components/kritzel-color/kritzel-color.d.ts +10 -0
  254. package/dist/types/components/kritzel-color-palette/kritzel-color-palette.d.ts +17 -0
  255. package/dist/types/components/kritzel-context-menu/kritzel-context-menu.d.ts +40 -0
  256. package/dist/types/components/kritzel-current-user/kritzel-current-user.d.ts +15 -0
  257. package/dist/types/components/kritzel-current-user-dialog/kritzel-current-user-dialog.d.ts +18 -0
  258. package/dist/types/components/kritzel-dialog/kritzel-dialog.d.ts +85 -0
  259. package/dist/types/components/kritzel-dropdown/kritzel-dropdown.d.ts +48 -0
  260. package/dist/types/components/kritzel-editor/kritzel-editor.d.ts +356 -0
  261. package/dist/types/components/kritzel-export/kritzel-export.d.ts +35 -0
  262. package/dist/types/components/kritzel-font/kritzel-font.d.ts +6 -0
  263. package/dist/types/components/kritzel-font-family/kritzel-font-family.d.ts +17 -0
  264. package/dist/types/components/kritzel-font-size/kritzel-font-size.d.ts +10 -0
  265. package/dist/types/components/kritzel-input/kritzel-input.d.ts +22 -0
  266. package/dist/types/components/kritzel-line-endings/kritzel-line-endings.d.ts +21 -0
  267. package/dist/types/components/kritzel-loading-overlay/kritzel-loading-overlay.d.ts +11 -0
  268. package/dist/types/components/kritzel-login-dialog/kritzel-login-dialog.d.ts +32 -0
  269. package/dist/types/components/kritzel-master-detail/kritzel-master-detail.d.ts +25 -0
  270. package/dist/types/components/kritzel-menu/kritzel-menu.d.ts +25 -0
  271. package/dist/types/components/kritzel-menu-item/kritzel-menu-item.d.ts +28 -0
  272. package/dist/types/components/kritzel-more-menu/kritzel-more-menu.d.ts +55 -0
  273. package/dist/types/components/kritzel-notification-card/kritzel-notification-card.d.ts +22 -0
  274. package/dist/types/components/kritzel-numeric-input/kritzel-numeric-input.d.ts +32 -0
  275. package/dist/types/components/kritzel-opacity-slider/kritzel-opacity-slider.d.ts +17 -0
  276. package/dist/types/components/kritzel-pill-tabs/kritzel-pill-tabs.d.ts +26 -0
  277. package/dist/types/components/kritzel-portal/kritzel-portal.d.ts +33 -0
  278. package/dist/types/components/kritzel-settings/kritzel-settings.d.ts +64 -0
  279. package/dist/types/components/kritzel-shape-fill/kritzel-shape-fill.d.ts +10 -0
  280. package/dist/types/components/kritzel-share-dialog/kritzel-share-dialog.d.ts +49 -0
  281. package/dist/types/components/kritzel-slide-toggle/kritzel-slide-toggle.d.ts +14 -0
  282. package/dist/types/components/kritzel-split-button/kritzel-split-button.d.ts +38 -0
  283. package/dist/types/components/kritzel-stroke-size/kritzel-stroke-size.d.ts +8 -0
  284. package/dist/types/components/kritzel-tool-config/kritzel-tool-config.d.ts +39 -0
  285. package/dist/types/components/kritzel-toolbar/kritzel-toolbar.d.ts +76 -0
  286. package/dist/types/components/kritzel-tooltip/kritzel-tooltip.d.ts +30 -0
  287. package/dist/types/components/kritzel-utility-panel/kritzel-utility-panel.d.ts +14 -0
  288. package/dist/types/components/kritzel-workspace-manager/kritzel-workspace-manager.d.ts +40 -0
  289. package/dist/types/components/kritzel-zoom-panel/kritzel-zoom-panel.d.ts +20 -0
  290. package/dist/types/components.d.ts +3166 -0
  291. package/dist/types/index.d.ts +8 -0
  292. package/dist/types/stencil-public-runtime.d.ts +1873 -0
  293. package/loader/cdn.js +1 -0
  294. package/loader/index.cjs.js +1 -0
  295. package/loader/index.d.ts +24 -0
  296. package/loader/index.es2017.js +1 -0
  297. package/loader/index.js +2 -0
  298. package/package.json +83 -0
@@ -0,0 +1,787 @@
1
+ import { Host, h } from "@stencil/core";
2
+ import { KritzelHTMLHelper } from "@kritzel/engine";
3
+ export class KritzelDialog {
4
+ host;
5
+ /** Whether the dialog is open */
6
+ isOpen = false;
7
+ /** Optional title displayed in the header */
8
+ dialogTitle;
9
+ /** Whether to show the close button in the header */
10
+ closable = true;
11
+ /** Whether clicking the backdrop closes the dialog */
12
+ closeOnBackdrop = true;
13
+ /** Whether pressing Escape closes the dialog */
14
+ closeOnEscape = true;
15
+ /** Whether to auto-focus the first focusable element when opened */
16
+ autoFocus = true;
17
+ /** Whether to trap focus within the dialog */
18
+ trapFocus = true;
19
+ /** Size of the dialog */
20
+ size = 'medium';
21
+ /** Whether to automatically go fullscreen on mobile viewports */
22
+ fullscreenOnMobile = true;
23
+ /** Constrain the dialog to its nearest editor/container ancestor instead of the viewport. */
24
+ contained = false;
25
+ isAnimating = false;
26
+ mobileLockedHeight = null;
27
+ containerRect = null;
28
+ containerBorderRadius = null;
29
+ /** Emitted when the dialog opens */
30
+ dialogOpen;
31
+ /** Emitted when the dialog closes */
32
+ dialogClose;
33
+ previousOverflow = '';
34
+ previousActiveElement = null;
35
+ visualViewportListenersAttached = false;
36
+ containerElement = null;
37
+ containerResizeObserver = null;
38
+ containerTrackingFrame = null;
39
+ handleIsOpenChange(newValue) {
40
+ if (newValue) {
41
+ this.openDialog();
42
+ }
43
+ else {
44
+ this.closeDialog();
45
+ }
46
+ }
47
+ handleKeyDown(event) {
48
+ if (!this.isOpen)
49
+ return;
50
+ if (event.key === 'Escape' && this.closeOnEscape) {
51
+ event.preventDefault();
52
+ event.stopPropagation();
53
+ this.emitClose('escape');
54
+ }
55
+ if (event.key === 'Tab' && this.trapFocus) {
56
+ this.handleTabKey(event);
57
+ }
58
+ }
59
+ handleWindowResize() {
60
+ if (!this.isOpen)
61
+ return;
62
+ this.lockMobileViewportHeight();
63
+ }
64
+ handleOrientationChange() {
65
+ if (!this.isOpen)
66
+ return;
67
+ // Let viewport metrics settle before recalculating after orientation flips.
68
+ requestAnimationFrame(() => this.lockMobileViewportHeight());
69
+ }
70
+ async open() {
71
+ if (!this.isOpen) {
72
+ this.isOpen = true;
73
+ }
74
+ }
75
+ async close(reason = 'programmatic') {
76
+ this.emitClose(reason);
77
+ }
78
+ async focusFirstElement() {
79
+ this.focusFirst();
80
+ }
81
+ componentDidLoad() {
82
+ if (this.isOpen) {
83
+ this.openDialog();
84
+ }
85
+ }
86
+ disconnectedCallback() {
87
+ this.removeVisualViewportListeners();
88
+ this.stopContainerTracking();
89
+ this.restoreBodyScroll();
90
+ }
91
+ openDialog() {
92
+ this.isAnimating = true;
93
+ this.previousActiveElement = document.activeElement;
94
+ if (this.contained) {
95
+ this.startContainerTracking();
96
+ }
97
+ else {
98
+ this.lockBodyScroll();
99
+ this.addVisualViewportListeners();
100
+ }
101
+ this.lockMobileViewportHeight();
102
+ this.dialogOpen.emit();
103
+ if (this.autoFocus) {
104
+ requestAnimationFrame(() => {
105
+ this.focusFirst();
106
+ });
107
+ }
108
+ requestAnimationFrame(() => {
109
+ this.isAnimating = false;
110
+ });
111
+ }
112
+ closeDialog() {
113
+ this.restoreBodyScroll();
114
+ this.removeVisualViewportListeners();
115
+ this.stopContainerTracking();
116
+ this.mobileLockedHeight = null;
117
+ this.returnFocusToPreviousElement();
118
+ }
119
+ findContainerElement() {
120
+ // Walk up the composed DOM (crossing shadow roots) and return the first
121
+ // ancestor that opts into containing dialogs. We accept either an explicit
122
+ // [data-kritzel-dialog-container] marker or the kritzel-editor host so any
123
+ // consumer can opt in without modifying the editor itself.
124
+ let node = this.host;
125
+ while (node) {
126
+ if (node instanceof HTMLElement) {
127
+ if (node.hasAttribute('data-kritzel-dialog-container') || node.tagName === 'KRITZEL-EDITOR') {
128
+ return node;
129
+ }
130
+ }
131
+ const parent = node.parentNode;
132
+ if (parent) {
133
+ node = parent;
134
+ }
135
+ else if (node instanceof ShadowRoot) {
136
+ node = node.host;
137
+ }
138
+ else {
139
+ node = null;
140
+ }
141
+ }
142
+ return null;
143
+ }
144
+ startContainerTracking() {
145
+ this.containerElement = this.findContainerElement();
146
+ if (!this.containerElement) {
147
+ // No container found — fall back to viewport behavior.
148
+ this.containerRect = null;
149
+ return;
150
+ }
151
+ this.updateContainerRect();
152
+ if (typeof ResizeObserver !== 'undefined') {
153
+ this.containerResizeObserver = new ResizeObserver(() => this.updateContainerRect());
154
+ this.containerResizeObserver.observe(this.containerElement);
155
+ }
156
+ window.addEventListener('resize', this.handleContainerTrackingEvent, { passive: true });
157
+ window.addEventListener('scroll', this.handleContainerTrackingEvent, { capture: true, passive: true });
158
+ }
159
+ stopContainerTracking() {
160
+ if (this.containerResizeObserver) {
161
+ this.containerResizeObserver.disconnect();
162
+ this.containerResizeObserver = null;
163
+ }
164
+ window.removeEventListener('resize', this.handleContainerTrackingEvent);
165
+ window.removeEventListener('scroll', this.handleContainerTrackingEvent, { capture: true });
166
+ if (this.containerTrackingFrame !== null) {
167
+ cancelAnimationFrame(this.containerTrackingFrame);
168
+ this.containerTrackingFrame = null;
169
+ }
170
+ this.containerElement = null;
171
+ this.containerRect = null;
172
+ this.containerBorderRadius = null;
173
+ }
174
+ handleContainerTrackingEvent = () => {
175
+ if (this.containerTrackingFrame !== null)
176
+ return;
177
+ this.containerTrackingFrame = requestAnimationFrame(() => {
178
+ this.containerTrackingFrame = null;
179
+ this.updateContainerRect();
180
+ });
181
+ };
182
+ updateContainerRect() {
183
+ if (!this.containerElement)
184
+ return;
185
+ const rect = this.containerElement.getBoundingClientRect();
186
+ const next = { top: rect.top, left: rect.left, width: rect.width, height: rect.height };
187
+ const prev = this.containerRect;
188
+ if (!prev || prev.top !== next.top || prev.left !== next.left || prev.width !== next.width || prev.height !== next.height) {
189
+ this.containerRect = next;
190
+ }
191
+ // Look for the nearest visually-rounded ancestor (the container itself or
192
+ // any ancestor up to the document) so the backdrop matches wrappers that
193
+ // round their corners around the editor.
194
+ const radius = this.findVisualBorderRadius(this.containerElement);
195
+ if (this.containerBorderRadius !== radius) {
196
+ this.containerBorderRadius = radius;
197
+ }
198
+ }
199
+ findVisualBorderRadius(start) {
200
+ let node = start;
201
+ while (node && node !== document.body && node !== document.documentElement) {
202
+ const computed = window.getComputedStyle(node);
203
+ const tl = computed.borderTopLeftRadius;
204
+ const tr = computed.borderTopRightRadius;
205
+ const br = computed.borderBottomRightRadius;
206
+ const bl = computed.borderBottomLeftRadius;
207
+ const isZero = (v) => !v || v === '0px' || v === '0%';
208
+ if (!(isZero(tl) && isZero(tr) && isZero(br) && isZero(bl))) {
209
+ return `${tl} ${tr} ${br} ${bl}`;
210
+ }
211
+ node = node.parentElement;
212
+ }
213
+ return null;
214
+ }
215
+ emitClose(reason) {
216
+ this.dialogClose.emit({ reason });
217
+ }
218
+ lockBodyScroll() {
219
+ this.previousOverflow = document.body.style.overflow;
220
+ document.body.style.overflow = 'hidden';
221
+ }
222
+ lockMobileViewportHeight() {
223
+ // Skip mobile viewport height locking when contained — the dialog is sized
224
+ // by its wrapper, not the viewport.
225
+ if (this.contained) {
226
+ this.mobileLockedHeight = null;
227
+ return;
228
+ }
229
+ // Only lock height on mobile when fullscreenOnMobile is enabled.
230
+ // Use the smaller dimension so landscape phones (wide but short) are also detected.
231
+ const viewportWidth = this.getViewportWidth();
232
+ const viewportHeight = this.getViewportHeight();
233
+ if (!this.fullscreenOnMobile || Math.min(viewportWidth, viewportHeight) > 576) {
234
+ this.mobileLockedHeight = null;
235
+ return;
236
+ }
237
+ this.mobileLockedHeight = `${viewportHeight}px`;
238
+ }
239
+ getViewportWidth() {
240
+ return Math.round(window.visualViewport?.width ?? window.innerWidth);
241
+ }
242
+ getViewportHeight() {
243
+ return Math.round(window.visualViewport?.height ?? window.innerHeight);
244
+ }
245
+ addVisualViewportListeners() {
246
+ const viewport = window.visualViewport;
247
+ if (!viewport || this.visualViewportListenersAttached)
248
+ return;
249
+ viewport.addEventListener('resize', this.handleVisualViewportChange);
250
+ viewport.addEventListener('scroll', this.handleVisualViewportChange);
251
+ this.visualViewportListenersAttached = true;
252
+ }
253
+ removeVisualViewportListeners() {
254
+ const viewport = window.visualViewport;
255
+ if (!viewport || !this.visualViewportListenersAttached)
256
+ return;
257
+ viewport.removeEventListener('resize', this.handleVisualViewportChange);
258
+ viewport.removeEventListener('scroll', this.handleVisualViewportChange);
259
+ this.visualViewportListenersAttached = false;
260
+ }
261
+ handleVisualViewportChange = () => {
262
+ if (!this.isOpen)
263
+ return;
264
+ this.lockMobileViewportHeight();
265
+ };
266
+ restoreBodyScroll() {
267
+ document.body.style.overflow = this.previousOverflow;
268
+ }
269
+ returnFocusToPreviousElement() {
270
+ if (this.previousActiveElement?.focus) {
271
+ this.previousActiveElement.focus();
272
+ }
273
+ }
274
+ focusFirst() {
275
+ const dialogContent = this.host.shadowRoot?.querySelector('.dialog-content');
276
+ if (!dialogContent)
277
+ return;
278
+ const focusableElements = KritzelHTMLHelper.getFocusableElements(dialogContent);
279
+ const slotElements = this.getSlottedFocusableElements();
280
+ const allFocusable = [...focusableElements, ...slotElements];
281
+ if (allFocusable.length > 0) {
282
+ allFocusable[0].focus();
283
+ }
284
+ else {
285
+ dialogContent.focus();
286
+ }
287
+ }
288
+ getSlottedFocusableElements() {
289
+ const slots = this.host.shadowRoot?.querySelectorAll('slot') ?? [];
290
+ const focusable = [];
291
+ slots.forEach(slot => {
292
+ const assigned = slot.assignedElements({ flatten: true });
293
+ assigned.forEach(el => {
294
+ // Use KritzelHTMLHelper to find focusable elements including those in nested shadow DOMs
295
+ const elements = KritzelHTMLHelper.getFocusableElements(el);
296
+ focusable.push(...elements);
297
+ });
298
+ });
299
+ return focusable;
300
+ }
301
+ handleTabKey(event) {
302
+ const focusableElements = this.getSlottedFocusableElements();
303
+ const closeButton = this.host.shadowRoot?.querySelector('.close-button');
304
+ if (closeButton && this.closable) {
305
+ focusableElements.unshift(closeButton);
306
+ }
307
+ if (focusableElements.length === 0)
308
+ return;
309
+ const firstFocusable = focusableElements[0];
310
+ const lastFocusable = focusableElements[focusableElements.length - 1];
311
+ const activeElement = this.getDeepActiveElement();
312
+ if (event.shiftKey) {
313
+ if (activeElement === firstFocusable) {
314
+ event.preventDefault();
315
+ lastFocusable.focus();
316
+ }
317
+ }
318
+ else {
319
+ if (activeElement === lastFocusable) {
320
+ event.preventDefault();
321
+ firstFocusable.focus();
322
+ }
323
+ }
324
+ }
325
+ getDeepActiveElement() {
326
+ let activeEl = document.activeElement;
327
+ while (activeEl?.shadowRoot?.activeElement) {
328
+ activeEl = activeEl.shadowRoot.activeElement;
329
+ }
330
+ return activeEl;
331
+ }
332
+ handleBackdropClick = (event) => {
333
+ event.stopPropagation();
334
+ if (this.closeOnBackdrop) {
335
+ this.emitClose('backdrop');
336
+ }
337
+ };
338
+ handleCloseButtonClick = (event) => {
339
+ event.stopPropagation();
340
+ this.emitClose('close-button');
341
+ };
342
+ handleContentClick = (event) => {
343
+ event.stopPropagation();
344
+ };
345
+ renderCloseButton() {
346
+ if (!this.closable)
347
+ return null;
348
+ return (h("button", { class: "close-button", type: "button", "aria-label": "Close dialog", onClick: this.handleCloseButtonClick }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), h("line", { x1: "6", y1: "6", x2: "18", y2: "18" }))));
349
+ }
350
+ renderHeader() {
351
+ const hasHeaderSlot = this.host.querySelector('[slot="header"]') !== null;
352
+ const hasTitle = !!this.dialogTitle;
353
+ if (!hasHeaderSlot && !hasTitle && !this.closable)
354
+ return null;
355
+ return (h("div", { class: "dialog-header" }, hasHeaderSlot ? (h("slot", { name: "header" })) : hasTitle ? (h("h2", { class: "dialog-title" }, this.dialogTitle)) : null, this.renderCloseButton()));
356
+ }
357
+ renderFooter() {
358
+ const hasFooterSlot = this.host.querySelector('[slot="footer"]') !== null;
359
+ if (!hasFooterSlot)
360
+ return null;
361
+ return (h("div", { class: "dialog-footer" }, h("slot", { name: "footer" })));
362
+ }
363
+ getBackdropStyle() {
364
+ if (!this.contained || !this.containerRect)
365
+ return undefined;
366
+ const { top, left, width, height } = this.containerRect;
367
+ const style = {
368
+ top: `${top}px`,
369
+ left: `${left}px`,
370
+ right: 'auto',
371
+ bottom: 'auto',
372
+ width: `${width}px`,
373
+ height: `${height}px`,
374
+ };
375
+ if (this.containerBorderRadius) {
376
+ style.borderRadius = this.containerBorderRadius;
377
+ // Ensure rounded corners actually clip the inner dialog content.
378
+ style.overflow = 'hidden';
379
+ }
380
+ return style;
381
+ }
382
+ getDialogContentStyle() {
383
+ const style = {};
384
+ // In contained mode, cap the dialog dimensions to the container so the
385
+ // declared widths/heights of size variants cannot overflow the wrapper.
386
+ if (this.contained && this.containerRect) {
387
+ const { width, height } = this.containerRect;
388
+ if (this.isContainerMobile()) {
389
+ // Mobile-sized container: behave like fullscreen-on-mobile but scoped
390
+ // to the container instead of the viewport (works in any orientation).
391
+ style.width = `${width}px`;
392
+ style.height = `${height}px`;
393
+ style.maxWidth = `${width}px`;
394
+ style.maxHeight = `${height}px`;
395
+ style.borderRadius = '0';
396
+ }
397
+ else {
398
+ // Leave a small margin so the dialog visibly sits within the container.
399
+ const maxWidth = Math.max(0, width - 32);
400
+ const maxHeight = Math.max(0, height - 32);
401
+ style.maxWidth = `${maxWidth}px`;
402
+ style.maxHeight = `${maxHeight}px`;
403
+ }
404
+ }
405
+ if (this.mobileLockedHeight) {
406
+ style.height = this.mobileLockedHeight;
407
+ style.maxHeight = this.mobileLockedHeight;
408
+ }
409
+ return Object.keys(style).length > 0 ? style : undefined;
410
+ }
411
+ isContainerMobile() {
412
+ if (!this.fullscreenOnMobile || !this.containerRect)
413
+ return false;
414
+ // Match the existing viewport media-query threshold: container is "mobile"
415
+ // when its smaller dimension is <= 576px. This handles both portrait and
416
+ // landscape wrappers symmetrically.
417
+ return Math.min(this.containerRect.width, this.containerRect.height) <= 576;
418
+ }
419
+ render() {
420
+ if (!this.isOpen)
421
+ return null;
422
+ const containerFullscreen = this.contained && this.isContainerMobile();
423
+ return (h(Host, null, h("div", { class: { backdrop: true, 'is-animating': this.isAnimating, 'contained-fullscreen': containerFullscreen }, style: this.getBackdropStyle(), onClick: this.handleBackdropClick }, h("div", { class: {
424
+ 'dialog-content': true,
425
+ 'is-animating': this.isAnimating,
426
+ [`size-${this.size}`]: true,
427
+ 'fullscreen-on-mobile': this.fullscreenOnMobile,
428
+ 'contained-fullscreen': containerFullscreen,
429
+ }, style: this.getDialogContentStyle(), role: "dialog", "aria-modal": "true", "aria-labelledby": this.dialogTitle ? 'dialog-title' : undefined, tabIndex: -1, onClick: this.handleContentClick }, this.renderHeader(), h("div", { class: "dialog-body" }, h("slot", null)), this.renderFooter()))));
430
+ }
431
+ static get is() { return "kritzel-dialog"; }
432
+ static get encapsulation() { return "shadow"; }
433
+ static get originalStyleUrls() {
434
+ return {
435
+ "$": ["kritzel-dialog.css"]
436
+ };
437
+ }
438
+ static get styleUrls() {
439
+ return {
440
+ "$": ["kritzel-dialog.css"]
441
+ };
442
+ }
443
+ static get properties() {
444
+ return {
445
+ "isOpen": {
446
+ "type": "boolean",
447
+ "mutable": false,
448
+ "complexType": {
449
+ "original": "boolean",
450
+ "resolved": "boolean",
451
+ "references": {}
452
+ },
453
+ "required": false,
454
+ "optional": false,
455
+ "docs": {
456
+ "tags": [],
457
+ "text": "Whether the dialog is open"
458
+ },
459
+ "getter": false,
460
+ "setter": false,
461
+ "reflect": true,
462
+ "attribute": "is-open",
463
+ "defaultValue": "false"
464
+ },
465
+ "dialogTitle": {
466
+ "type": "string",
467
+ "mutable": false,
468
+ "complexType": {
469
+ "original": "string",
470
+ "resolved": "string",
471
+ "references": {}
472
+ },
473
+ "required": false,
474
+ "optional": true,
475
+ "docs": {
476
+ "tags": [],
477
+ "text": "Optional title displayed in the header"
478
+ },
479
+ "getter": false,
480
+ "setter": false,
481
+ "reflect": false,
482
+ "attribute": "dialog-title"
483
+ },
484
+ "closable": {
485
+ "type": "boolean",
486
+ "mutable": false,
487
+ "complexType": {
488
+ "original": "boolean",
489
+ "resolved": "boolean",
490
+ "references": {}
491
+ },
492
+ "required": false,
493
+ "optional": false,
494
+ "docs": {
495
+ "tags": [],
496
+ "text": "Whether to show the close button in the header"
497
+ },
498
+ "getter": false,
499
+ "setter": false,
500
+ "reflect": false,
501
+ "attribute": "closable",
502
+ "defaultValue": "true"
503
+ },
504
+ "closeOnBackdrop": {
505
+ "type": "boolean",
506
+ "mutable": false,
507
+ "complexType": {
508
+ "original": "boolean",
509
+ "resolved": "boolean",
510
+ "references": {}
511
+ },
512
+ "required": false,
513
+ "optional": false,
514
+ "docs": {
515
+ "tags": [],
516
+ "text": "Whether clicking the backdrop closes the dialog"
517
+ },
518
+ "getter": false,
519
+ "setter": false,
520
+ "reflect": false,
521
+ "attribute": "close-on-backdrop",
522
+ "defaultValue": "true"
523
+ },
524
+ "closeOnEscape": {
525
+ "type": "boolean",
526
+ "mutable": false,
527
+ "complexType": {
528
+ "original": "boolean",
529
+ "resolved": "boolean",
530
+ "references": {}
531
+ },
532
+ "required": false,
533
+ "optional": false,
534
+ "docs": {
535
+ "tags": [],
536
+ "text": "Whether pressing Escape closes the dialog"
537
+ },
538
+ "getter": false,
539
+ "setter": false,
540
+ "reflect": false,
541
+ "attribute": "close-on-escape",
542
+ "defaultValue": "true"
543
+ },
544
+ "autoFocus": {
545
+ "type": "boolean",
546
+ "mutable": false,
547
+ "complexType": {
548
+ "original": "boolean",
549
+ "resolved": "boolean",
550
+ "references": {}
551
+ },
552
+ "required": false,
553
+ "optional": false,
554
+ "docs": {
555
+ "tags": [],
556
+ "text": "Whether to auto-focus the first focusable element when opened"
557
+ },
558
+ "getter": false,
559
+ "setter": false,
560
+ "reflect": false,
561
+ "attribute": "auto-focus",
562
+ "defaultValue": "true"
563
+ },
564
+ "trapFocus": {
565
+ "type": "boolean",
566
+ "mutable": false,
567
+ "complexType": {
568
+ "original": "boolean",
569
+ "resolved": "boolean",
570
+ "references": {}
571
+ },
572
+ "required": false,
573
+ "optional": false,
574
+ "docs": {
575
+ "tags": [],
576
+ "text": "Whether to trap focus within the dialog"
577
+ },
578
+ "getter": false,
579
+ "setter": false,
580
+ "reflect": false,
581
+ "attribute": "trap-focus",
582
+ "defaultValue": "true"
583
+ },
584
+ "size": {
585
+ "type": "string",
586
+ "mutable": false,
587
+ "complexType": {
588
+ "original": "'small' | 'medium' | 'large' | 'fullscreen'",
589
+ "resolved": "\"fullscreen\" | \"large\" | \"medium\" | \"small\"",
590
+ "references": {}
591
+ },
592
+ "required": false,
593
+ "optional": false,
594
+ "docs": {
595
+ "tags": [],
596
+ "text": "Size of the dialog"
597
+ },
598
+ "getter": false,
599
+ "setter": false,
600
+ "reflect": false,
601
+ "attribute": "size",
602
+ "defaultValue": "'medium'"
603
+ },
604
+ "fullscreenOnMobile": {
605
+ "type": "boolean",
606
+ "mutable": false,
607
+ "complexType": {
608
+ "original": "boolean",
609
+ "resolved": "boolean",
610
+ "references": {}
611
+ },
612
+ "required": false,
613
+ "optional": false,
614
+ "docs": {
615
+ "tags": [],
616
+ "text": "Whether to automatically go fullscreen on mobile viewports"
617
+ },
618
+ "getter": false,
619
+ "setter": false,
620
+ "reflect": false,
621
+ "attribute": "fullscreen-on-mobile",
622
+ "defaultValue": "true"
623
+ },
624
+ "contained": {
625
+ "type": "boolean",
626
+ "mutable": false,
627
+ "complexType": {
628
+ "original": "boolean",
629
+ "resolved": "boolean",
630
+ "references": {}
631
+ },
632
+ "required": false,
633
+ "optional": false,
634
+ "docs": {
635
+ "tags": [],
636
+ "text": "Constrain the dialog to its nearest editor/container ancestor instead of the viewport."
637
+ },
638
+ "getter": false,
639
+ "setter": false,
640
+ "reflect": true,
641
+ "attribute": "contained",
642
+ "defaultValue": "false"
643
+ }
644
+ };
645
+ }
646
+ static get states() {
647
+ return {
648
+ "isAnimating": {},
649
+ "mobileLockedHeight": {},
650
+ "containerRect": {},
651
+ "containerBorderRadius": {}
652
+ };
653
+ }
654
+ static get events() {
655
+ return [{
656
+ "method": "dialogOpen",
657
+ "name": "dialogOpen",
658
+ "bubbles": true,
659
+ "cancelable": true,
660
+ "composed": true,
661
+ "docs": {
662
+ "tags": [],
663
+ "text": "Emitted when the dialog opens"
664
+ },
665
+ "complexType": {
666
+ "original": "void",
667
+ "resolved": "void",
668
+ "references": {}
669
+ }
670
+ }, {
671
+ "method": "dialogClose",
672
+ "name": "dialogClose",
673
+ "bubbles": true,
674
+ "cancelable": true,
675
+ "composed": true,
676
+ "docs": {
677
+ "tags": [],
678
+ "text": "Emitted when the dialog closes"
679
+ },
680
+ "complexType": {
681
+ "original": "IKritzelDialogCloseEvent",
682
+ "resolved": "IKritzelDialogCloseEvent",
683
+ "references": {
684
+ "IKritzelDialogCloseEvent": {
685
+ "location": "import",
686
+ "path": "@kritzel/engine",
687
+ "id": "../../engine/core/dist/types/index.d.ts::IKritzelDialogCloseEvent",
688
+ "referenceLocation": "IKritzelDialogCloseEvent"
689
+ }
690
+ }
691
+ }
692
+ }];
693
+ }
694
+ static get methods() {
695
+ return {
696
+ "open": {
697
+ "complexType": {
698
+ "signature": "() => Promise<void>",
699
+ "parameters": [],
700
+ "references": {
701
+ "Promise": {
702
+ "location": "global",
703
+ "id": "global::Promise"
704
+ }
705
+ },
706
+ "return": "Promise<void>"
707
+ },
708
+ "docs": {
709
+ "text": "",
710
+ "tags": []
711
+ }
712
+ },
713
+ "close": {
714
+ "complexType": {
715
+ "signature": "(reason?: KritzelDialogCloseReason) => Promise<void>",
716
+ "parameters": [{
717
+ "name": "reason",
718
+ "type": "\"backdrop\" | \"escape\" | \"close-button\" | \"programmatic\"",
719
+ "docs": ""
720
+ }],
721
+ "references": {
722
+ "Promise": {
723
+ "location": "global",
724
+ "id": "global::Promise"
725
+ },
726
+ "KritzelDialogCloseReason": {
727
+ "location": "import",
728
+ "path": "@kritzel/engine",
729
+ "id": "../../engine/core/dist/types/index.d.ts::KritzelDialogCloseReason",
730
+ "referenceLocation": "KritzelDialogCloseReason"
731
+ }
732
+ },
733
+ "return": "Promise<void>"
734
+ },
735
+ "docs": {
736
+ "text": "",
737
+ "tags": []
738
+ }
739
+ },
740
+ "focusFirstElement": {
741
+ "complexType": {
742
+ "signature": "() => Promise<void>",
743
+ "parameters": [],
744
+ "references": {
745
+ "Promise": {
746
+ "location": "global",
747
+ "id": "global::Promise"
748
+ }
749
+ },
750
+ "return": "Promise<void>"
751
+ },
752
+ "docs": {
753
+ "text": "",
754
+ "tags": []
755
+ }
756
+ }
757
+ };
758
+ }
759
+ static get elementRef() { return "host"; }
760
+ static get watchers() {
761
+ return [{
762
+ "propName": "isOpen",
763
+ "methodName": "handleIsOpenChange"
764
+ }];
765
+ }
766
+ static get listeners() {
767
+ return [{
768
+ "name": "keydown",
769
+ "method": "handleKeyDown",
770
+ "target": "window",
771
+ "capture": false,
772
+ "passive": false
773
+ }, {
774
+ "name": "resize",
775
+ "method": "handleWindowResize",
776
+ "target": "window",
777
+ "capture": false,
778
+ "passive": true
779
+ }, {
780
+ "name": "orientationchange",
781
+ "method": "handleOrientationChange",
782
+ "target": "window",
783
+ "capture": false,
784
+ "passive": false
785
+ }];
786
+ }
787
+ }