@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,381 @@
1
+ import { Host, h } from "@stencil/core";
2
+ import { KritzelDevicesHelper } from "@kritzel/engine";
3
+ export class KritzelMoreMenu {
4
+ host;
5
+ /**
6
+ * Whether the menu button is visible
7
+ */
8
+ visible = false;
9
+ /**
10
+ * The menu items to display in the dropdown.
11
+ * Items with `isVisible` set to `false` will be filtered out.
12
+ * Items with an `action` will have that action invoked on selection.
13
+ */
14
+ items = [];
15
+ /**
16
+ * The icon to display on the button
17
+ */
18
+ icon = 'ellipsis-vertical';
19
+ /**
20
+ * The size of the icon
21
+ */
22
+ iconSize = 24;
23
+ /**
24
+ * Offset Y for the portal positioning
25
+ */
26
+ offsetY = 4;
27
+ /** Resolved localized strings keyed by term key, supplied by the editor. */
28
+ terms = {};
29
+ /**
30
+ * Emitted when a menu item is selected
31
+ */
32
+ itemSelect;
33
+ menuAnchor = null;
34
+ isTouchDevice = KritzelDevicesHelper.isTouchDevice();
35
+ visibleItems = [];
36
+ visibilityResolveVersion = 0;
37
+ onItemsChange() {
38
+ void this.resolveVisibleItems();
39
+ }
40
+ async open() {
41
+ if (!this.visible || this.menuAnchor) {
42
+ return;
43
+ }
44
+ window.dispatchEvent(new CustomEvent('kritzel-dismiss-menus'));
45
+ this.menuAnchor = this.host;
46
+ this.visibleItems = this.filterVisibleItemsSync(this.items ?? []);
47
+ await this.resolveVisibleItems();
48
+ }
49
+ async close() {
50
+ this.closeMenu();
51
+ }
52
+ componentWillLoad() {
53
+ void this.resolveVisibleItems();
54
+ }
55
+ toggleMenu = (event) => {
56
+ event.stopPropagation();
57
+ if (this.menuAnchor) {
58
+ this.closeMenu();
59
+ }
60
+ else {
61
+ void this.open();
62
+ }
63
+ };
64
+ closeMenu = () => {
65
+ this.menuAnchor = null;
66
+ };
67
+ async evaluateVisibility(visibility) {
68
+ if (typeof visibility === 'function') {
69
+ try {
70
+ return (await visibility()) !== false;
71
+ }
72
+ catch {
73
+ return false;
74
+ }
75
+ }
76
+ return visibility !== false;
77
+ }
78
+ evaluateVisibilitySync(visibility) {
79
+ if (typeof visibility === 'function') {
80
+ try {
81
+ const result = visibility();
82
+ return result instanceof Promise ? null : result !== false;
83
+ }
84
+ catch {
85
+ return false;
86
+ }
87
+ }
88
+ return visibility !== false;
89
+ }
90
+ filterVisibleItemsSync(items) {
91
+ return items.reduce((visibleItems, item) => {
92
+ const isVisible = this.evaluateVisibilitySync(item.isVisible);
93
+ if (isVisible === null || !isVisible) {
94
+ return visibleItems;
95
+ }
96
+ if (!item.children?.length) {
97
+ visibleItems.push(item);
98
+ return visibleItems;
99
+ }
100
+ visibleItems.push({
101
+ ...item,
102
+ children: this.filterVisibleItemsSync(item.children),
103
+ });
104
+ return visibleItems;
105
+ }, []);
106
+ }
107
+ async filterVisibleItems(items) {
108
+ const resolved = await Promise.all(items.map(async (item) => {
109
+ const isVisible = await this.evaluateVisibility(item.isVisible);
110
+ if (!isVisible) {
111
+ return null;
112
+ }
113
+ if (!item.children?.length) {
114
+ return item;
115
+ }
116
+ return {
117
+ ...item,
118
+ children: await this.filterVisibleItems(item.children),
119
+ };
120
+ }));
121
+ return resolved.filter((item) => !!item);
122
+ }
123
+ async resolveVisibleItems() {
124
+ const version = ++this.visibilityResolveVersion;
125
+ const items = this.items ?? [];
126
+ const resolvedItems = await this.filterVisibleItems(items);
127
+ if (version !== this.visibilityResolveVersion) {
128
+ return;
129
+ }
130
+ this.visibleItems = resolvedItems;
131
+ }
132
+ resolveMenuLabels(items) {
133
+ return items.map(item => ({
134
+ ...item,
135
+ label: this.terms[item.label] ?? item.label,
136
+ children: item.children ? this.resolveMenuLabels(item.children) : undefined,
137
+ }));
138
+ }
139
+ handleMenuItemSelect = (event) => {
140
+ const { item, parent } = event.detail;
141
+ if (item.action) {
142
+ item.action(item, parent);
143
+ }
144
+ this.itemSelect.emit(event.detail);
145
+ this.closeMenu();
146
+ };
147
+ render() {
148
+ return (h(Host, { key: '841c9097f30d0fd9e73741ec13541b5183f3a84d', class: { mobile: this.isTouchDevice }, style: { display: this.visible ? '' : 'none' } }, h("div", { key: 'ac494e6a6f7e7a5155fc3ceac25517000ed41068', class: { 'more-menu-wrapper': true, visible: this.visible } }, h("button", { key: '0d7edc5a525e692dc3692b616af0e198758ca95e', class: "more-menu-button", "data-testid": "more-menu-button", onClick: this.toggleMenu, "aria-label": this.terms['moreMenu.ariaLabel'] ?? 'More options' }, h("kritzel-icon", { key: 'cc87018d0816f3c21be992bccc9feda460c98a32', name: this.icon, size: this.iconSize })), h("kritzel-portal", { key: 'abb10d21c437c660de25af6313081a9064ac2cac', anchor: this.menuAnchor, offsetY: this.offsetY, onClose: this.closeMenu }, h("kritzel-menu", { key: '3411f1403393845c098243d309cdb5e52c0eede8', items: this.resolveMenuLabels(this.visibleItems), onItemSelect: this.handleMenuItemSelect })))));
149
+ }
150
+ static get is() { return "kritzel-more-menu"; }
151
+ static get encapsulation() { return "shadow"; }
152
+ static get originalStyleUrls() {
153
+ return {
154
+ "$": ["kritzel-more-menu.css"]
155
+ };
156
+ }
157
+ static get styleUrls() {
158
+ return {
159
+ "$": ["kritzel-more-menu.css"]
160
+ };
161
+ }
162
+ static get properties() {
163
+ return {
164
+ "visible": {
165
+ "type": "boolean",
166
+ "mutable": false,
167
+ "complexType": {
168
+ "original": "boolean",
169
+ "resolved": "boolean",
170
+ "references": {}
171
+ },
172
+ "required": false,
173
+ "optional": false,
174
+ "docs": {
175
+ "tags": [],
176
+ "text": "Whether the menu button is visible"
177
+ },
178
+ "getter": false,
179
+ "setter": false,
180
+ "reflect": false,
181
+ "attribute": "visible",
182
+ "defaultValue": "false"
183
+ },
184
+ "items": {
185
+ "type": "unknown",
186
+ "mutable": false,
187
+ "complexType": {
188
+ "original": "IKritzelMenuItem[]",
189
+ "resolved": "IKritzelMenuItem<any>[]",
190
+ "references": {
191
+ "IKritzelMenuItem": {
192
+ "location": "import",
193
+ "path": "@kritzel/engine",
194
+ "id": "../../engine/core/dist/types/index.d.ts::IKritzelMenuItem",
195
+ "referenceLocation": "IKritzelMenuItem"
196
+ }
197
+ }
198
+ },
199
+ "required": false,
200
+ "optional": false,
201
+ "docs": {
202
+ "tags": [],
203
+ "text": "The menu items to display in the dropdown.\r\nItems with `isVisible` set to `false` will be filtered out.\r\nItems with an `action` will have that action invoked on selection."
204
+ },
205
+ "getter": false,
206
+ "setter": false,
207
+ "defaultValue": "[]"
208
+ },
209
+ "icon": {
210
+ "type": "string",
211
+ "mutable": false,
212
+ "complexType": {
213
+ "original": "string",
214
+ "resolved": "string",
215
+ "references": {}
216
+ },
217
+ "required": false,
218
+ "optional": false,
219
+ "docs": {
220
+ "tags": [],
221
+ "text": "The icon to display on the button"
222
+ },
223
+ "getter": false,
224
+ "setter": false,
225
+ "reflect": false,
226
+ "attribute": "icon",
227
+ "defaultValue": "'ellipsis-vertical'"
228
+ },
229
+ "iconSize": {
230
+ "type": "number",
231
+ "mutable": false,
232
+ "complexType": {
233
+ "original": "number",
234
+ "resolved": "number",
235
+ "references": {}
236
+ },
237
+ "required": false,
238
+ "optional": false,
239
+ "docs": {
240
+ "tags": [],
241
+ "text": "The size of the icon"
242
+ },
243
+ "getter": false,
244
+ "setter": false,
245
+ "reflect": false,
246
+ "attribute": "icon-size",
247
+ "defaultValue": "24"
248
+ },
249
+ "offsetY": {
250
+ "type": "number",
251
+ "mutable": false,
252
+ "complexType": {
253
+ "original": "number",
254
+ "resolved": "number",
255
+ "references": {}
256
+ },
257
+ "required": false,
258
+ "optional": false,
259
+ "docs": {
260
+ "tags": [],
261
+ "text": "Offset Y for the portal positioning"
262
+ },
263
+ "getter": false,
264
+ "setter": false,
265
+ "reflect": false,
266
+ "attribute": "offset-y",
267
+ "defaultValue": "4"
268
+ },
269
+ "terms": {
270
+ "type": "unknown",
271
+ "mutable": false,
272
+ "complexType": {
273
+ "original": "Partial<Record<KritzelTermKey, string>>",
274
+ "resolved": "\"backToContent.label\" | \"currentUser.dialogTitle\" | \"editor.loading\" | \"export.dialogTitle\" | \"export.exportButton\" | \"export.filename.label\" | \"export.filename.placeholder\" | \"export.format.label\" | \"export.tabs.viewport\" | \"export.tabs.workspace\" | \"login.dialogTitle\" | \"menu.align\" | \"menu.alignBottom\" | \"menu.alignCenterHorizontal\" | \"menu.alignCenterVertical\" | \"menu.alignLeft\" | \"menu.alignRight\" | \"menu.alignTop\" | \"menu.bringToFront\" | \"menu.copy\" | \"menu.cut\" | \"menu.delete\" | \"menu.export\" | \"menu.exportAsPng\" | \"menu.exportAsSvg\" | \"menu.group\" | \"menu.import\" | \"menu.logout\" | \"menu.moveDown\" | \"menu.moveUp\" | \"menu.order\" | \"menu.paste\" | \"menu.selectAll\" | \"menu.sendToBack\" | \"menu.settings\" | \"menu.share\" | \"menu.ungroup\" | \"moreMenu.ariaLabel\" | \"settings.about.description\" | \"settings.about.title\" | \"settings.categories.about\" | \"settings.categories.developer\" | \"settings.categories.general\" | \"settings.categories.shortcuts\" | \"settings.categories.viewport\" | \"settings.developer.showMigrationInfo.description\" | \"settings.developer.showMigrationInfo.label\" | \"settings.developer.showObjectInfo.description\" | \"settings.developer.showObjectInfo.label\" | \"settings.developer.showSyncProviderInfo.description\" | \"settings.developer.showSyncProviderInfo.label\" | \"settings.developer.showViewportInfo.description\" | \"settings.developer.showViewportInfo.label\" | \"settings.developer.title\" | \"settings.dialogTitle\" | \"settings.general.language.description\" | \"settings.general.language.label\" | \"settings.general.lockDrawingScale.description\" | \"settings.general.lockDrawingScale.label\" | \"settings.general.theme.description\" | \"settings.general.theme.label\" | \"settings.general.title\" | \"settings.shortcuts.title\" | \"settings.viewport.boundaryBottom.description\" | \"settings.viewport.boundaryBottom.label\" | \"settings.viewport.boundaryLeft.description\" | \"settings.viewport.boundaryLeft.label\" | \"settings.viewport.boundaryPlaceholder\" | \"settings.viewport.boundaryRight.description\" | \"settings.viewport.boundaryRight.label\" | \"settings.viewport.boundaryTop.description\" | \"settings.viewport.boundaryTop.label\" | \"settings.viewport.maxZoom.description\" | \"settings.viewport.maxZoom.label\" | \"settings.viewport.minZoom.description\" | \"settings.viewport.minZoom.label\" | \"settings.viewport.title\" | \"share.copyLink.copied\" | \"share.copyLink.title\" | \"share.dialogTitle\" | \"share.linkSharing.disabledDescription\" | \"share.linkSharing.enabledDescription\" | \"share.linkSharing.label\" | \"share.linkSharing.toggleLabel\" | \"toolConfig.collapse\" | \"toolConfig.expand\" | \"utility.delete\" | \"utility.redo\" | \"utility.undo\" | \"watermark.poweredBy\" | \"workspace.delete\" | \"workspace.rename\" | \"workspace.sharedTooltip\" | \"zoom.zoomIn\" | \"zoom.zoomOut\" | string",
275
+ "references": {
276
+ "Partial": {
277
+ "location": "global",
278
+ "id": "global::Partial"
279
+ },
280
+ "Record": {
281
+ "location": "global",
282
+ "id": "global::Record"
283
+ },
284
+ "KritzelTermKey": {
285
+ "location": "import",
286
+ "path": "@kritzel/engine",
287
+ "id": "../../engine/core/dist/types/index.d.ts::KritzelTermKey",
288
+ "referenceLocation": "KritzelTermKey"
289
+ }
290
+ }
291
+ },
292
+ "required": false,
293
+ "optional": false,
294
+ "docs": {
295
+ "tags": [],
296
+ "text": "Resolved localized strings keyed by term key, supplied by the editor."
297
+ },
298
+ "getter": false,
299
+ "setter": false,
300
+ "defaultValue": "{}"
301
+ }
302
+ };
303
+ }
304
+ static get states() {
305
+ return {
306
+ "menuAnchor": {},
307
+ "isTouchDevice": {},
308
+ "visibleItems": {}
309
+ };
310
+ }
311
+ static get events() {
312
+ return [{
313
+ "method": "itemSelect",
314
+ "name": "itemSelect",
315
+ "bubbles": true,
316
+ "cancelable": true,
317
+ "composed": true,
318
+ "docs": {
319
+ "tags": [],
320
+ "text": "Emitted when a menu item is selected"
321
+ },
322
+ "complexType": {
323
+ "original": "{ item: IKritzelMenuItem; parent: IKritzelMenuItem }",
324
+ "resolved": "{ item: IKritzelMenuItem<any>; parent: IKritzelMenuItem<any>; }",
325
+ "references": {
326
+ "IKritzelMenuItem": {
327
+ "location": "import",
328
+ "path": "@kritzel/engine",
329
+ "id": "../../engine/core/dist/types/index.d.ts::IKritzelMenuItem",
330
+ "referenceLocation": "IKritzelMenuItem"
331
+ }
332
+ }
333
+ }
334
+ }];
335
+ }
336
+ static get methods() {
337
+ return {
338
+ "open": {
339
+ "complexType": {
340
+ "signature": "() => Promise<void>",
341
+ "parameters": [],
342
+ "references": {
343
+ "Promise": {
344
+ "location": "global",
345
+ "id": "global::Promise"
346
+ }
347
+ },
348
+ "return": "Promise<void>"
349
+ },
350
+ "docs": {
351
+ "text": "",
352
+ "tags": []
353
+ }
354
+ },
355
+ "close": {
356
+ "complexType": {
357
+ "signature": "() => Promise<void>",
358
+ "parameters": [],
359
+ "references": {
360
+ "Promise": {
361
+ "location": "global",
362
+ "id": "global::Promise"
363
+ }
364
+ },
365
+ "return": "Promise<void>"
366
+ },
367
+ "docs": {
368
+ "text": "",
369
+ "tags": []
370
+ }
371
+ }
372
+ };
373
+ }
374
+ static get elementRef() { return "host"; }
375
+ static get watchers() {
376
+ return [{
377
+ "propName": "items",
378
+ "methodName": "onItemsChange"
379
+ }];
380
+ }
381
+ }
@@ -0,0 +1,101 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+
5
+ .card {
6
+ box-sizing: border-box;
7
+ width: 100%;
8
+ max-width: var(--kritzel-notification-card-max-width, 360px);
9
+ margin-inline: auto;
10
+ font-family: var(--kritzel-font-family, sans-serif);
11
+ padding: var(--kritzel-notification-card-padding, 12px 14px);
12
+ border: var(--kritzel-notification-card-border, 1px solid #e5e7eb);
13
+ border-radius: var(--kritzel-notification-card-border-radius, 12px);
14
+ background-color: var(--kritzel-notification-card-background-color, #ffffff);
15
+ color: var(--kritzel-notification-card-color, #111827);
16
+ box-shadow: var(--kritzel-notification-card-box-shadow, 0 8px 20px rgba(15, 23, 42, 0.08));
17
+ }
18
+
19
+ .card-header {
20
+ display: flex;
21
+ align-items: center;
22
+ justify-content: space-between;
23
+ gap: var(--kritzel-notification-card-header-gap, 8px);
24
+ margin-bottom: var(--kritzel-notification-card-header-margin-bottom, 8px);
25
+ }
26
+
27
+ .header-right {
28
+ display: inline-flex;
29
+ align-items: center;
30
+ gap: var(--kritzel-notification-card-header-right-gap, 6px);
31
+ }
32
+
33
+ .type-pill {
34
+ display: inline-flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ min-height: var(--kritzel-notification-card-pill-height, 22px);
38
+ padding: var(--kritzel-notification-card-pill-padding, 0 8px);
39
+ border-radius: var(--kritzel-notification-card-pill-border-radius, 999px);
40
+ background-color: var(--kritzel-notification-card-pill-background-color, #eff6ff);
41
+ color: var(--kritzel-notification-card-pill-color, #1d4ed8);
42
+ font-size: var(--kritzel-notification-card-pill-font-size, 12px);
43
+ font-weight: var(--kritzel-notification-card-pill-font-weight, 600);
44
+ line-height: 1;
45
+ }
46
+
47
+ .card.type-info .type-pill {
48
+ background-color: var(--kritzel-notification-card-info-pill-background-color, #eff6ff);
49
+ color: var(--kritzel-notification-card-info-pill-color, #1d4ed8);
50
+ }
51
+
52
+ .card.type-warning .type-pill {
53
+ background-color: var(--kritzel-notification-card-warning-pill-background-color, #fff7ed);
54
+ color: var(--kritzel-notification-card-warning-pill-color, #b45309);
55
+ }
56
+
57
+ .card.type-error .type-pill {
58
+ background-color: var(--kritzel-notification-card-error-pill-background-color, #fef2f2);
59
+ color: var(--kritzel-notification-card-error-pill-color, #b91c1c);
60
+ }
61
+
62
+ .timestamp {
63
+ color: var(--kritzel-notification-card-timestamp-color, #6b7280);
64
+ font-size: var(--kritzel-notification-card-timestamp-font-size, 12px);
65
+ white-space: nowrap;
66
+ }
67
+
68
+ .dismiss-button {
69
+ display: inline-flex;
70
+ align-items: center;
71
+ justify-content: center;
72
+ width: var(--kritzel-notification-card-dismiss-button-size, 24px);
73
+ height: var(--kritzel-notification-card-dismiss-button-size, 24px);
74
+ padding: 0;
75
+ border: none;
76
+ border-radius: var(--kritzel-notification-card-dismiss-button-border-radius, 6px);
77
+ background: var(--kritzel-notification-card-dismiss-button-background-color, transparent);
78
+ color: var(--kritzel-notification-card-dismiss-button-color, #4b5563);
79
+ cursor: var(--kritzel-global-pointer-cursor, pointer);
80
+ -webkit-tap-highlight-color: transparent;
81
+ }
82
+
83
+ .dismiss-button:hover {
84
+ background: var(--kritzel-notification-card-dismiss-button-hover-background-color, #f3f4f6);
85
+ }
86
+
87
+ .dismiss-button:active {
88
+ background: var(--kritzel-notification-card-dismiss-button-active-background-color, #e5e7eb);
89
+ }
90
+
91
+ .dismiss-button:focus-visible {
92
+ outline: revert;
93
+ }
94
+
95
+ .message {
96
+ margin: 0;
97
+ color: var(--kritzel-notification-card-message-color, inherit);
98
+ font-size: var(--kritzel-notification-card-message-font-size, 14px);
99
+ line-height: var(--kritzel-notification-card-message-line-height, 1.45);
100
+ word-break: break-word;
101
+ }
@@ -0,0 +1,173 @@
1
+ import { Host, h } from "@stencil/core";
2
+ export class KritzelNotificationCard {
3
+ /** Notification data rendered by this card. */
4
+ notification;
5
+ /** Whether a formatted timestamp should be displayed when available. */
6
+ showTimestamp = true;
7
+ /** Locale used for formatting the timestamp. */
8
+ locale;
9
+ /** Emitted when the notification should be dismissed manually. */
10
+ dismiss;
11
+ /** Emitted when pointer hover state changes. */
12
+ hoverChange;
13
+ handleDismissClick = (event) => {
14
+ event.stopPropagation();
15
+ this.dismiss.emit();
16
+ };
17
+ handleMouseEnter = () => {
18
+ this.hoverChange.emit(true);
19
+ };
20
+ handleMouseLeave = () => {
21
+ this.hoverChange.emit(false);
22
+ };
23
+ get type() {
24
+ return this.notification?.type ?? 'info';
25
+ }
26
+ get role() {
27
+ return this.type === 'error' ? 'alert' : 'status';
28
+ }
29
+ getTypeLabel(type) {
30
+ switch (type) {
31
+ case 'warning':
32
+ return 'Warning';
33
+ case 'error':
34
+ return 'Error';
35
+ default:
36
+ return 'Info';
37
+ }
38
+ }
39
+ formatTimestamp(timestamp) {
40
+ if (!timestamp || !this.showTimestamp) {
41
+ return null;
42
+ }
43
+ const date = timestamp instanceof Date ? timestamp : new Date(timestamp);
44
+ if (Number.isNaN(date.getTime())) {
45
+ return null;
46
+ }
47
+ return new Intl.DateTimeFormat(this.locale, {
48
+ dateStyle: 'medium',
49
+ timeStyle: 'short',
50
+ }).format(date);
51
+ }
52
+ render() {
53
+ const notification = this.notification;
54
+ if (!notification) {
55
+ return h(Host, null);
56
+ }
57
+ const type = this.type;
58
+ const timestamp = this.formatTimestamp(notification.timestamp);
59
+ return (h(Host, null, h("article", { class: { card: true, [`type-${type}`]: true }, role: this.role, "aria-live": "polite", onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, h("header", { class: "card-header" }, h("span", { class: "type-pill" }, this.getTypeLabel(type)), h("div", { class: "header-right" }, timestamp && (h("time", { class: "timestamp", dateTime: notification.timestamp?.toISOString() }, timestamp)), h("button", { class: "dismiss-button", type: "button", "aria-label": "Dismiss notification", onClick: this.handleDismissClick }, h("kritzel-icon", { name: "x", size: 16 })))), h("p", { class: "message" }, notification.message))));
60
+ }
61
+ static get is() { return "kritzel-notification-card"; }
62
+ static get encapsulation() { return "shadow"; }
63
+ static get originalStyleUrls() {
64
+ return {
65
+ "$": ["kritzel-notification-card.css"]
66
+ };
67
+ }
68
+ static get styleUrls() {
69
+ return {
70
+ "$": ["kritzel-notification-card.css"]
71
+ };
72
+ }
73
+ static get properties() {
74
+ return {
75
+ "notification": {
76
+ "type": "unknown",
77
+ "mutable": false,
78
+ "complexType": {
79
+ "original": "KritzelNotification",
80
+ "resolved": "KritzelNotification",
81
+ "references": {
82
+ "KritzelNotification": {
83
+ "location": "import",
84
+ "path": "@kritzel/engine",
85
+ "id": "../../engine/core/dist/types/index.d.ts::KritzelNotification",
86
+ "referenceLocation": "KritzelNotification"
87
+ }
88
+ }
89
+ },
90
+ "required": false,
91
+ "optional": true,
92
+ "docs": {
93
+ "tags": [],
94
+ "text": "Notification data rendered by this card."
95
+ },
96
+ "getter": false,
97
+ "setter": false
98
+ },
99
+ "showTimestamp": {
100
+ "type": "boolean",
101
+ "mutable": false,
102
+ "complexType": {
103
+ "original": "boolean",
104
+ "resolved": "boolean",
105
+ "references": {}
106
+ },
107
+ "required": false,
108
+ "optional": false,
109
+ "docs": {
110
+ "tags": [],
111
+ "text": "Whether a formatted timestamp should be displayed when available."
112
+ },
113
+ "getter": false,
114
+ "setter": false,
115
+ "reflect": false,
116
+ "attribute": "show-timestamp",
117
+ "defaultValue": "true"
118
+ },
119
+ "locale": {
120
+ "type": "string",
121
+ "mutable": false,
122
+ "complexType": {
123
+ "original": "string",
124
+ "resolved": "string",
125
+ "references": {}
126
+ },
127
+ "required": false,
128
+ "optional": true,
129
+ "docs": {
130
+ "tags": [],
131
+ "text": "Locale used for formatting the timestamp."
132
+ },
133
+ "getter": false,
134
+ "setter": false,
135
+ "reflect": false,
136
+ "attribute": "locale"
137
+ }
138
+ };
139
+ }
140
+ static get events() {
141
+ return [{
142
+ "method": "dismiss",
143
+ "name": "dismiss",
144
+ "bubbles": true,
145
+ "cancelable": true,
146
+ "composed": true,
147
+ "docs": {
148
+ "tags": [],
149
+ "text": "Emitted when the notification should be dismissed manually."
150
+ },
151
+ "complexType": {
152
+ "original": "void",
153
+ "resolved": "void",
154
+ "references": {}
155
+ }
156
+ }, {
157
+ "method": "hoverChange",
158
+ "name": "hoverChange",
159
+ "bubbles": true,
160
+ "cancelable": true,
161
+ "composed": true,
162
+ "docs": {
163
+ "tags": [],
164
+ "text": "Emitted when pointer hover state changes."
165
+ },
166
+ "complexType": {
167
+ "original": "boolean",
168
+ "resolved": "boolean",
169
+ "references": {}
170
+ }
171
+ }];
172
+ }
173
+ }