@umbraco-cms/backoffice 15.0.0-rc1 → 15.0.0-rc2

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 (228) hide show
  1. package/dist-cms/apps/backoffice/components/backoffice-header-logo.element.js +1 -6
  2. package/dist-cms/assets/lang/ar.d.ts +3 -0
  3. package/dist-cms/assets/lang/ar.js +2342 -0
  4. package/dist-cms/assets/lang/ar.ts +2394 -0
  5. package/dist-cms/assets/lang/bs.js +2 -2
  6. package/dist-cms/assets/lang/bs.ts +2 -2
  7. package/dist-cms/assets/lang/cs-cz.js +2 -2
  8. package/dist-cms/assets/lang/cs-cz.ts +2 -2
  9. package/dist-cms/assets/lang/cy-gb.js +2 -2
  10. package/dist-cms/assets/lang/cy-gb.ts +2 -2
  11. package/dist-cms/assets/lang/da-dk.js +6 -3
  12. package/dist-cms/assets/lang/da-dk.ts +6 -3
  13. package/dist-cms/assets/lang/de-de.js +2 -2
  14. package/dist-cms/assets/lang/de-de.ts +2 -2
  15. package/dist-cms/assets/lang/en-us.js +20 -7
  16. package/dist-cms/assets/lang/en-us.ts +20 -7
  17. package/dist-cms/assets/lang/en.js +30 -5
  18. package/dist-cms/assets/lang/en.ts +30 -5
  19. package/dist-cms/assets/lang/es-es.js +3 -3
  20. package/dist-cms/assets/lang/es-es.ts +3 -3
  21. package/dist-cms/assets/lang/fr-fr.js +2 -2
  22. package/dist-cms/assets/lang/fr-fr.ts +2 -3
  23. package/dist-cms/assets/lang/he-il.js +1 -1
  24. package/dist-cms/assets/lang/he-il.ts +1 -1
  25. package/dist-cms/assets/lang/hr-hr.js +2 -2
  26. package/dist-cms/assets/lang/hr-hr.ts +2 -2
  27. package/dist-cms/assets/lang/it-it.js +1 -1
  28. package/dist-cms/assets/lang/it-it.ts +1 -1
  29. package/dist-cms/assets/lang/ja-jp.js +1 -1
  30. package/dist-cms/assets/lang/ja-jp.ts +1 -1
  31. package/dist-cms/assets/lang/ko-kr.js +1 -1
  32. package/dist-cms/assets/lang/ko-kr.ts +1 -1
  33. package/dist-cms/assets/lang/nb-no.js +3 -1
  34. package/dist-cms/assets/lang/nb-no.ts +3 -1
  35. package/dist-cms/assets/lang/nl-nl.js +2 -2
  36. package/dist-cms/assets/lang/nl-nl.ts +2 -2
  37. package/dist-cms/assets/lang/pl-pl.js +2 -2
  38. package/dist-cms/assets/lang/pl-pl.ts +2 -2
  39. package/dist-cms/assets/lang/pt-br.js +1 -1
  40. package/dist-cms/assets/lang/pt-br.ts +1 -1
  41. package/dist-cms/assets/lang/ru-ru.js +2 -2
  42. package/dist-cms/assets/lang/ru-ru.ts +2 -2
  43. package/dist-cms/assets/lang/tr-tr.js +2 -2
  44. package/dist-cms/assets/lang/tr-tr.ts +2 -2
  45. package/dist-cms/assets/lang/uk-ua.js +2 -2
  46. package/dist-cms/assets/lang/uk-ua.ts +2 -2
  47. package/dist-cms/assets/lang/zh-cn.js +2 -2
  48. package/dist-cms/assets/lang/zh-cn.ts +2 -2
  49. package/dist-cms/assets/lang/zh-tw.js +1 -1
  50. package/dist-cms/assets/lang/zh-tw.ts +1 -2
  51. package/dist-cms/assets/login.jpg +0 -0
  52. package/dist-cms/custom-elements.json +4 -4
  53. package/dist-cms/external/monaco-editor/{cssMode-CDJQLEXE.js → cssMode-DA72DEEy.js} +1 -1
  54. package/dist-cms/external/monaco-editor/{freemarker2-BtohW-RX.js → freemarker2-Cl3U_XXG.js} +1 -1
  55. package/dist-cms/external/monaco-editor/{handlebars-Wz3s8HqG.js → handlebars-DSroMiE1.js} +1 -1
  56. package/dist-cms/external/monaco-editor/{html-MlXP3Eno.js → html-CkfQ3Tez.js} +1 -1
  57. package/dist-cms/external/monaco-editor/{htmlMode-Ds-h6y_M.js → htmlMode-D-n07ZL6.js} +1 -1
  58. package/dist-cms/external/monaco-editor/{index-BsCYch8u.js → index-QOjL-QlL.js} +181 -182
  59. package/dist-cms/external/monaco-editor/index.js +1 -1
  60. package/dist-cms/external/monaco-editor/{javascript-Dejz0u77.js → javascript-CPYBePIj.js} +1 -1
  61. package/dist-cms/external/monaco-editor/{jsonMode-CQ2qSm4x.js → jsonMode-xglY6Smp.js} +1 -1
  62. package/dist-cms/external/monaco-editor/{liquid-BhEdJewW.js → liquid-BcU1huVG.js} +1 -1
  63. package/dist-cms/external/monaco-editor/{mdx-C292GrsL.js → mdx-BngkqVPl.js} +1 -1
  64. package/dist-cms/external/monaco-editor/{python-CTKihC4R.js → python-Da-YVbMh.js} +1 -1
  65. package/dist-cms/external/monaco-editor/{razor-aZ9MyDfI.js → razor-C_XA8ptN.js} +1 -1
  66. package/dist-cms/external/monaco-editor/{tsMode-D1lPHHTW.js → tsMode-CsqUs61y.js} +1 -1
  67. package/dist-cms/external/monaco-editor/{typescript-DodsUUWq.js → typescript-DmWQ3leM.js} +1 -1
  68. package/dist-cms/external/monaco-editor/{xml-CnOKc87p.js → xml-CmhlGeEt.js} +1 -1
  69. package/dist-cms/external/monaco-editor/{yaml-BGcRgHu1.js → yaml-DDN00dBJ.js} +1 -1
  70. package/dist-cms/external/tinymce/index.js +1 -1
  71. package/dist-cms/external/uui/index.js +302 -278
  72. package/dist-cms/libs/extension-api/types/condition.types.d.ts +5 -5
  73. package/dist-cms/packages/block/block/conditions/types.d.ts +1 -1
  74. package/dist-cms/packages/block/block/context/block-entry.context.d.ts +1 -0
  75. package/dist-cms/packages/block/block/context/block-entry.context.js +9 -4
  76. package/dist-cms/packages/block/block/context/block-manager.context.d.ts +8 -7
  77. package/dist-cms/packages/block/block/context/block-manager.context.js +28 -9
  78. package/dist-cms/packages/block/block/workspace/block-workspace.context.d.ts +1 -0
  79. package/dist-cms/packages/block/block/workspace/block-workspace.context.js +14 -13
  80. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.d.ts +3 -1
  81. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.js +50 -12
  82. package/dist-cms/packages/block/block-custom-view/types.d.ts +1 -1
  83. package/dist-cms/packages/block/block-grid/components/block-grid-block/block-grid-block.element.js +3 -1
  84. package/dist-cms/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.js +3 -1
  85. package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.d.ts +2 -1
  86. package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.js +13 -5
  87. package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.js +2 -0
  88. package/dist-cms/packages/block/block-grid/context/block-grid-entries.context.d.ts +4 -2
  89. package/dist-cms/packages/block/block-grid/context/block-grid-entries.context.js +26 -17
  90. package/dist-cms/packages/block/block-grid/context/block-grid-entry.context.d.ts +1 -0
  91. package/dist-cms/packages/block/block-grid/context/block-grid-entry.context.js +3 -2
  92. package/dist-cms/packages/block/block-grid/context/block-grid-manager.context.d.ts +3 -0
  93. package/dist-cms/packages/block/block-grid/context/block-grid-manager.context.js +12 -2
  94. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.js +2 -0
  95. package/dist-cms/packages/block/block-grid/types.d.ts +1 -0
  96. package/dist-cms/packages/block/block-list/context/block-list-entries.context.d.ts +1 -1
  97. package/dist-cms/packages/block/block-list/context/block-list-entries.context.js +8 -4
  98. package/dist-cms/packages/block/block-list/context/block-list-entry.context.d.ts +1 -1
  99. package/dist-cms/packages/block/block-list/context/block-list-entry.context.js +3 -3
  100. package/dist-cms/packages/block/block-list/context/block-list-manager.context.d.ts +1 -1
  101. package/dist-cms/packages/block/block-list/context/block-list-manager.context.js +5 -2
  102. package/dist-cms/packages/block/block-rte/context/block-rte-entries.context.d.ts +2 -2
  103. package/dist-cms/packages/block/block-rte/context/block-rte-entries.context.js +5 -5
  104. package/dist-cms/packages/block/block-rte/context/block-rte-entry.context.d.ts +1 -1
  105. package/dist-cms/packages/block/block-rte/context/block-rte-entry.context.js +5 -3
  106. package/dist-cms/packages/block/block-rte/context/block-rte-manager.context.d.ts +3 -2
  107. package/dist-cms/packages/block/block-rte/context/block-rte-manager.context.js +6 -3
  108. package/dist-cms/packages/core/collection/extensions/collection-action.extension.d.ts +1 -1
  109. package/dist-cms/packages/core/collection/extensions/collection-view.extension.d.ts +1 -1
  110. package/dist-cms/packages/core/collection/extensions/collection.extension.d.ts +1 -1
  111. package/dist-cms/packages/core/content-type/structure/content-type-structure-manager.class.d.ts +1 -0
  112. package/dist-cms/packages/core/content-type/structure/content-type-structure-manager.class.js +3 -2
  113. package/dist-cms/packages/core/culture/manifests.d.ts +1 -1
  114. package/dist-cms/packages/core/dashboard/dashboard.extension.d.ts +1 -1
  115. package/dist-cms/packages/core/entity-action/entity-action.extension.d.ts +1 -1
  116. package/dist-cms/packages/core/extension-registry/conditions/index.d.ts +1 -1
  117. package/dist-cms/packages/core/extension-registry/conditions/types.d.ts +10 -6
  118. package/dist-cms/packages/core/extension-registry/extensions/entity-bulk-action.extension.d.ts +1 -1
  119. package/dist-cms/packages/core/extension-registry/extensions/repository.extension.d.ts +1 -1
  120. package/dist-cms/packages/core/icon-registry/icon-dictionary.json +68 -0
  121. package/dist-cms/packages/core/icon-registry/icons/icon-document-3d.d.ts +2 -0
  122. package/dist-cms/packages/core/icon-registry/icons/icon-document-3d.js +17 -0
  123. package/dist-cms/packages/core/icon-registry/icons/icon-document-chart-bar.d.ts +2 -0
  124. package/dist-cms/packages/core/icon-registry/icons/icon-document-chart-bar.js +18 -0
  125. package/dist-cms/packages/core/icon-registry/icons/icon-document-chart-graph.d.ts +2 -0
  126. package/dist-cms/packages/core/icon-registry/icons/icon-document-chart-graph.js +16 -0
  127. package/dist-cms/packages/core/icon-registry/icons/icon-document-command.d.ts +2 -0
  128. package/dist-cms/packages/core/icon-registry/icons/icon-document-command.js +17 -0
  129. package/dist-cms/packages/core/icon-registry/icons/icon-document-font.d.ts +2 -0
  130. package/dist-cms/packages/core/icon-registry/icons/icon-document-font.js +18 -0
  131. package/dist-cms/packages/core/icon-registry/icons/icon-document-html.d.ts +2 -0
  132. package/dist-cms/packages/core/icon-registry/icons/icon-document-html.js +17 -0
  133. package/dist-cms/packages/core/icon-registry/icons/icon-document-image.d.ts +2 -0
  134. package/dist-cms/packages/core/icon-registry/icons/icon-document-image.js +17 -0
  135. package/dist-cms/packages/core/icon-registry/icons/icon-document-js.d.ts +2 -0
  136. package/dist-cms/packages/core/icon-registry/icons/icon-document-js.js +17 -0
  137. package/dist-cms/packages/core/icon-registry/icons/icon-document-key.d.ts +2 -0
  138. package/dist-cms/packages/core/icon-registry/icons/icon-document-key.js +17 -0
  139. package/dist-cms/packages/core/icon-registry/icons/icon-document-medal.d.ts +2 -0
  140. package/dist-cms/packages/core/icon-registry/icons/icon-document-medal.js +17 -0
  141. package/dist-cms/packages/core/icon-registry/icons/icon-document-play.d.ts +2 -0
  142. package/dist-cms/packages/core/icon-registry/icons/icon-document-play.js +16 -0
  143. package/dist-cms/packages/core/icon-registry/icons/icon-document-search.d.ts +2 -0
  144. package/dist-cms/packages/core/icon-registry/icons/icon-document-search.js +17 -0
  145. package/dist-cms/packages/core/icon-registry/icons/icon-document-settings.d.ts +2 -0
  146. package/dist-cms/packages/core/icon-registry/icons/icon-document-settings.js +19 -0
  147. package/dist-cms/packages/core/icon-registry/icons/icon-document-spreadsheet.d.ts +2 -0
  148. package/dist-cms/packages/core/icon-registry/icons/icon-document-spreadsheet.js +19 -0
  149. package/dist-cms/packages/core/icon-registry/icons/icon-document-user.d.ts +2 -0
  150. package/dist-cms/packages/core/icon-registry/icons/icon-document-user.js +17 -0
  151. package/dist-cms/packages/core/icon-registry/icons.d.ts +56 -0
  152. package/dist-cms/packages/core/icon-registry/icons.js +51 -0
  153. package/dist-cms/packages/core/localization/manifests.js +11 -1
  154. package/dist-cms/packages/core/menu/menu-item.extension.d.ts +1 -1
  155. package/dist-cms/packages/core/property/manifests.d.ts +1 -1
  156. package/dist-cms/packages/core/property-action/extensions/property-action.extension.d.ts +1 -1
  157. package/dist-cms/packages/core/section/conditions/types.d.ts +1 -1
  158. package/dist-cms/packages/core/section/extensions/section-sidebar-app.extension.d.ts +1 -1
  159. package/dist-cms/packages/core/section/extensions/section-view.extension.d.ts +1 -1
  160. package/dist-cms/packages/core/section/extensions/section.extension.d.ts +1 -1
  161. package/dist-cms/packages/core/temporary-file/temporary-file-manager.class.js +3 -2
  162. package/dist-cms/packages/core/themes/manifests.d.ts +1 -1
  163. package/dist-cms/packages/core/tree/extensions/tree.extension.d.ts +1 -1
  164. package/dist-cms/packages/core/utils/index.d.ts +1 -0
  165. package/dist-cms/packages/core/utils/index.js +1 -0
  166. package/dist-cms/packages/core/utils/sanitize/sanitize-html.function.d.ts +6 -0
  167. package/dist-cms/packages/core/utils/sanitize/sanitize-html.function.js +9 -0
  168. package/dist-cms/packages/core/workspace/conditions/types.d.ts +1 -1
  169. package/dist-cms/packages/core/workspace/conditions/workspace-alias.condition.d.ts +2 -2
  170. package/dist-cms/packages/core/workspace/conditions/workspace-content-type-alias.condition.d.ts +2 -2
  171. package/dist-cms/packages/core/workspace/conditions/workspace-entity-is-new.condition.d.ts +2 -2
  172. package/dist-cms/packages/core/workspace/conditions/workspace-entity-type.condition.d.ts +2 -2
  173. package/dist-cms/packages/core/workspace/conditions/workspace-has-collection.condition.d.ts +2 -2
  174. package/dist-cms/packages/core/workspace/extensions/workspace-action-menu-item.model.d.ts +1 -1
  175. package/dist-cms/packages/core/workspace/extensions/workspace-action.model.d.ts +1 -1
  176. package/dist-cms/packages/core/workspace/extensions/workspace-context.model.d.ts +1 -1
  177. package/dist-cms/packages/core/workspace/extensions/workspace-footer-app.model.d.ts +1 -1
  178. package/dist-cms/packages/core/workspace/extensions/workspace-view.model.d.ts +1 -1
  179. package/dist-cms/packages/dictionary/workspace/views/workspace-view-dictionary-editor.element.js +9 -5
  180. package/dist-cms/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.js +1 -1
  181. package/dist-cms/packages/documents/document-types/paths.js +1 -1
  182. package/dist-cms/packages/documents/document-types/workspace/document-type-workspace.context.js +1 -1
  183. package/dist-cms/packages/documents/documents/user-permissions/conditions/types.d.ts +1 -1
  184. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.d.ts +4 -0
  185. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +13 -2
  186. package/dist-cms/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.js +1 -1
  187. package/dist-cms/packages/extension-types/index.d.ts +118 -0
  188. package/dist-cms/packages/markdown-editor/components/input-markdown-editor/input-markdown.element.js +2 -2
  189. package/dist-cms/packages/multi-url-picker/tiny-mce-plugin/tiny-mce-multi-url-picker.plugin.d.ts +2 -1
  190. package/dist-cms/packages/multi-url-picker/tiny-mce-plugin/tiny-mce-multi-url-picker.plugin.js +28 -48
  191. package/dist-cms/packages/packages/package-builder/workspace/workspace-package-builder.element.js +4 -4
  192. package/dist-cms/packages/sysinfo/components/sysinfo.element.d.ts +1 -1
  193. package/dist-cms/packages/sysinfo/components/sysinfo.element.js +29 -11
  194. package/dist-cms/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.js +2 -2
  195. package/dist-cms/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.js +1 -1
  196. package/dist-cms/packages/templating/partial-views/tree/partial-view-tree.server.data-source.js +1 -1
  197. package/dist-cms/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.js +1 -1
  198. package/dist-cms/packages/templating/scripts/tree/script-tree.server.data-source.js +1 -1
  199. package/dist-cms/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.js +2 -2
  200. package/dist-cms/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.js +1 -1
  201. package/dist-cms/packages/templating/templates/global-components/template-card/template-card.element.js +1 -1
  202. package/dist-cms/packages/templating/templates/tree/template-tree.server.data-source.js +1 -1
  203. package/dist-cms/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.defaults.js +1 -1
  204. package/dist-cms/packages/tiny-mce/plugins/tiny-mce-code-editor.plugin.js +5 -4
  205. package/dist-cms/packages/tiptap/components/input-tiptap/input-tiptap.element.d.ts +1 -1
  206. package/dist-cms/packages/tiptap/components/input-tiptap/tiptap-toolbar.element.d.ts +1 -1
  207. package/dist-cms/packages/tiptap/components/types.d.ts +1 -0
  208. package/dist-cms/packages/tiptap/components/types.js +1 -0
  209. package/dist-cms/packages/tiptap/extensions/core/media-upload.extension.js +6 -0
  210. package/dist-cms/packages/tiptap/extensions/manifests.js +142 -154
  211. package/dist-cms/packages/tiptap/extensions/tiptap-toolbar-extension.d.ts +1 -0
  212. package/dist-cms/packages/tiptap/extensions/types.d.ts +0 -1
  213. package/dist-cms/packages/tiptap/plugins/manifests.js +1 -1
  214. package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-extensions-configuration.element.d.ts +7 -5
  215. package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-extensions-configuration.element.js +112 -109
  216. package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-toolbar-configuration.element.d.ts +6 -6
  217. package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-toolbar-configuration.element.js +304 -198
  218. package/dist-cms/packages/tiptap/property-editors/tiptap/contexts/tiptap-toolbar-configuration.context.d.ts +27 -0
  219. package/dist-cms/packages/tiptap/property-editors/tiptap/contexts/tiptap-toolbar-configuration.context.js +185 -0
  220. package/dist-cms/packages/tiptap/property-editors/tiptap/manifests.js +13 -9
  221. package/dist-cms/packages/tiptap/property-editors/tiptap/types.d.ts +12 -0
  222. package/dist-cms/packages/tiptap/property-editors/tiptap/types.js +1 -0
  223. package/dist-cms/packages/user/current-user/current-user-action.extension.d.ts +1 -1
  224. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  225. package/dist-cms/umbraco-package-schema.json +18 -6
  226. package/dist-cms/umbraco-package.json +1 -1
  227. package/dist-cms/vscode-html-custom-data.json +4 -4
  228. package/package.json +5 -4
@@ -0,0 +1,118 @@
1
+
2
+ import '../../apps/app/index.js';
3
+ import '../../libs/class-api/index.js';
4
+ import '../../libs/context-api/index.js';
5
+ import '../../libs/controller-api/index.js';
6
+ import '../../libs/element-api/index.js';
7
+ import '../embedded-media/index.js';
8
+ import '../../libs/extension-api/index.js';
9
+ import '../../libs/formatting-api/index.js';
10
+ import '../../libs/localization-api/index.js';
11
+ import '../../libs/observable-api/index.js';
12
+ import '../core/action/index.js';
13
+ import '../core/audit-log/index.js';
14
+ import '../core/auth/index.js';
15
+ import '../block/block-custom-view/index.js';
16
+ import '../block/block-grid/index.js';
17
+ import '../block/block-list/index.js';
18
+ import '../block/block-rte/index.js';
19
+ import '../block/block-type/index.js';
20
+ import '../block/block/index.js';
21
+ import '../code-editor/index.js';
22
+ import '../core/collection/index.js';
23
+ import '../core/components/index.js';
24
+ import '../core/content-type/index.js';
25
+ import '../core/content/index.js';
26
+ import '../core/culture/index.js';
27
+ import '../user/current-user/index.js';
28
+ import '../core/dashboard/index.js';
29
+ import '../data-type/index.js';
30
+ import '../core/debug/index.js';
31
+ import '../dictionary/index.js';
32
+ import '../documents/document-blueprints/index.js';
33
+ import '../documents/document-types/index.js';
34
+ import '../documents/documents/index.js';
35
+ import '../core/entity-action/index.js';
36
+ import '../core/entity-bulk-action/index.js';
37
+ import '../core/entity/index.js';
38
+ import '../core/event/index.js';
39
+ import '../core/extension-registry/index.js';
40
+ import '../health-check/index.js';
41
+ import '../help/index.js';
42
+ import '../core/icon-registry/index.js';
43
+ import '../core/id/index.js';
44
+ import '../media/imaging/index.js';
45
+ import '../language/index.js';
46
+ import '../core/lit-element/index.js';
47
+ import '../core/localization/index.js';
48
+ import '../log-viewer/index.js';
49
+ import '../markdown-editor/index.js';
50
+ import '../media/media-types/index.js';
51
+ import '../media/media/index.js';
52
+ import '../members/member-group/index.js';
53
+ import '../members/member-type/index.js';
54
+ import '../members/member/index.js';
55
+ import '../core/menu/index.js';
56
+ import '../core/modal/index.js';
57
+ import '../core/models/index.js';
58
+ import '../multi-url-picker/index.js';
59
+ import '../core/notification/index.js';
60
+ import '../core/object-type/index.js';
61
+ import '../packages/package/index.js';
62
+ import '../templating/partial-views/index.js';
63
+ import '../core/picker-input/index.js';
64
+ import '../core/picker/index.js';
65
+ import '../core/property-action/index.js';
66
+ import '../core/property-editor/index.js';
67
+ import '../core/property-type/index.js';
68
+ import '../core/property/index.js';
69
+ import '../core/recycle-bin/index.js';
70
+ import '../relations/relation-types/index.js';
71
+ import '../relations/relations/index.js';
72
+ import '../core/repository/index.js';
73
+ import '../core/resources/index.js';
74
+ import '../core/router/index.js';
75
+ import '../rte/index.js';
76
+ import '../templating/scripts/index.js';
77
+ import '../search/index.js';
78
+ import '../core/section/index.js';
79
+ import '../core/server-file-system/index.js';
80
+ import '../settings/index.js';
81
+ import '../core/sorter/index.js';
82
+ import '../static-file/index.js';
83
+ import '../core/store/index.js';
84
+ import '../core/style/index.js';
85
+ import '../templating/stylesheets/index.js';
86
+ import '../sysinfo/index.js';
87
+ import '../tags/index.js';
88
+ import '../templating/templates/index.js';
89
+ import '../core/temporary-file/index.js';
90
+ import '../core/themes/index.js';
91
+ import '../tiny-mce/index.js';
92
+ import '../tiptap/index.js';
93
+ import '../translation/index.js';
94
+ import '../core/tree/index.js';
95
+ import '../ufm/index.js';
96
+ import '../user/change-password/index.js';
97
+ import '../user/user-group/index.js';
98
+ import '../user/user-permission/index.js';
99
+ import '../user/user/index.js';
100
+ import '../core/utils/index.js';
101
+ import '../core/validation/index.js';
102
+ import '../core/variant/index.js';
103
+ import '../webhook/index.js';
104
+ import '../core/workspace/index.js';
105
+ import '../../external/backend-api/index.js';
106
+ import '../../external/base64-js/index.js';
107
+ import '../../external/diff/index.js';
108
+ import '../../external/dompurify/index.js';
109
+ import '../../external/lit/index.js';
110
+ import '../../external/marked/index.js';
111
+ import '../../external/monaco-editor/index.js';
112
+ import '../../external/openid/index.js';
113
+ import '../../external/router-slot/index.js';
114
+ import '../../external/rxjs/index.js';
115
+ import '../../external/tinymce/index.js';
116
+ import '../../external/tiptap/index.js';
117
+ import '../../external/uui/index.js';
118
+ import '../../external/uuid/index.js';
@@ -9,7 +9,6 @@ import { createExtensionApi } from '../../../../libs/extension-api/index.js';
9
9
  import { marked } from '../../../../external/marked/index.js';
10
10
  import { monaco } from '../../../../external/monaco-editor/index.js';
11
11
  import { umbExtensionsRegistry } from '../../../core/extension-registry/index.js';
12
- import { DOMPurify } from '../../../../external/dompurify/index.js';
13
12
  import { UmbChangeEvent } from '../../../core/event/index.js';
14
13
  import { UmbLitElement } from '../../../core/lit-element/index.js';
15
14
  import { UmbTextStyles } from '../../../core/style/index.js';
@@ -17,6 +16,7 @@ import { UMB_MODAL_MANAGER_CONTEXT } from '../../../core/modal/index.js';
17
16
  import { UMB_MEDIA_PICKER_MODAL, UmbMediaUrlRepository } from '../../../media/media/index.js';
18
17
  import { UmbCodeEditorLoadedEvent } from '../../../code-editor/index.js';
19
18
  import { UmbFormControlMixin } from '../../../core/validation/index.js';
19
+ import { sanitizeHTML } from '../../../core/utils/index.js';
20
20
  const elementName = 'umb-input-markdown';
21
21
  /**
22
22
  * @element umb-input-markdown
@@ -519,7 +519,7 @@ let UmbInputMarkdownElement = class UmbInputMarkdownElement extends UmbFormContr
519
519
  if (!this.preview || !this.value)
520
520
  return;
521
521
  const markdownAsHtml = marked.parse(this.value);
522
- const sanitizedHtml = markdownAsHtml ? DOMPurify.sanitize(markdownAsHtml) : '';
522
+ const sanitizedHtml = markdownAsHtml ? sanitizeHTML(markdownAsHtml) : '';
523
523
  return html `<uui-scroll-container id="preview">${unsafeHTML(sanitizedHtml)}</uui-scroll-container>`;
524
524
  }
525
525
  static { this.styles = [
@@ -1,4 +1,5 @@
1
- import { type TinyMcePluginArguments, UmbTinyMcePluginBase } from '../../tiny-mce/index.js';
1
+ import { UmbTinyMcePluginBase } from '../../tiny-mce/index.js';
2
+ import type { TinyMcePluginArguments } from '../../tiny-mce/index.js';
2
3
  export default class UmbTinyMceMultiUrlPickerPlugin extends UmbTinyMcePluginBase {
3
4
  #private;
4
5
  constructor(args: TinyMcePluginArguments);
@@ -1,20 +1,13 @@
1
1
  import { UMB_LINK_PICKER_MODAL } from '../link-picker-modal/link-picker-modal.token.js';
2
+ import { UmbLocalizationController } from '../../../libs/localization-api/index.js';
2
3
  import { UmbTinyMcePluginBase } from '../../tiny-mce/index.js';
3
4
  import { UMB_MODAL_MANAGER_CONTEXT } from '../../core/modal/index.js';
4
- import { UmbLocalizationController } from '../../../libs/localization-api/index.js';
5
5
  export default class UmbTinyMceMultiUrlPickerPlugin extends UmbTinyMcePluginBase {
6
6
  #linkPickerData;
7
7
  #anchorElement;
8
8
  constructor(args) {
9
9
  super(args);
10
10
  const localize = new UmbLocalizationController(args.host);
11
- // const editorEventSetupCallback = (buttonApi: { setEnabled: (state: boolean) => void }) => {
12
- // const editorEventCallback = (eventApi: { element: Element}) => {
13
- // buttonApi.setEnabled(eventApi.element.nodeName.toLowerCase() === 'a' && eventApi.element.hasAttribute('href'));
14
- // };
15
- // editor.on('NodeChange', editorEventCallback);
16
- // return () => editor.off('NodeChange', editorEventCallback);
17
- // };
18
11
  this.editor.ui.registry.addToggleButton('link', {
19
12
  icon: 'link',
20
13
  tooltip: localize.term('general_addEditLink'),
@@ -37,35 +30,23 @@ export default class UmbTinyMceMultiUrlPickerPlugin extends UmbTinyMcePluginBase
37
30
  async showDialog() {
38
31
  const selectedElm = this.editor.selection.getNode();
39
32
  this.#anchorElement = this.editor.dom.getParent(selectedElm, 'a[href]');
40
- const data = {
41
- text: this.#anchorElement
42
- ? this.#anchorElement.innerText || (this.#anchorElement.textContent ?? '')
43
- : this.editor.selection.getContent({ format: 'text' }),
44
- href: this.#anchorElement?.getAttribute('href') ?? '',
45
- target: this.#anchorElement?.target ?? '',
46
- rel: this.#anchorElement?.rel ?? '',
47
- };
48
- if (selectedElm.nodeName === 'IMG') {
49
- data.text = ' ';
50
- }
51
33
  if (!this.#anchorElement) {
52
- this.#openLinkPicker({ name: this.editor.selection.getContent() });
34
+ this.#openLinkPicker({ name: this.editor.selection.getContent({ format: 'text' }) });
53
35
  return;
54
36
  }
55
- //if we already have a link selected, we want to pass that data over to the dialog
37
+ let url = this.#anchorElement.getAttribute('href') ?? this.#anchorElement.href ?? '';
38
+ const queryString = this.#anchorElement.getAttribute('data-anchor') ?? '';
39
+ if (queryString && url.endsWith(queryString)) {
40
+ url = url.substring(0, url.indexOf(queryString));
41
+ }
56
42
  const currentTarget = {
57
43
  name: this.#anchorElement.title || this.#anchorElement.textContent,
58
44
  target: this.#anchorElement.target,
59
- queryString: `${this.#anchorElement.search}${this.#anchorElement.hash}`,
45
+ queryString: queryString,
46
+ type: this.#anchorElement.type ?? 'external',
47
+ unique: url.includes('localLink:') ? url.substring(url.indexOf(':') + 1, url.indexOf('}')) : null,
48
+ url: url,
60
49
  };
61
- if (this.#anchorElement.href.includes('localLink:')) {
62
- const href = this.#anchorElement.getAttribute('href');
63
- currentTarget.unique = href.substring(href.indexOf(':') + 1, href.indexOf('}'));
64
- }
65
- else if (this.#anchorElement.host.length) {
66
- currentTarget.url = this.#anchorElement.protocol ? this.#anchorElement.protocol + '//' : undefined;
67
- currentTarget.url += this.#anchorElement.host + this.#anchorElement.pathname;
68
- }
69
50
  this.#openLinkPicker(currentTarget);
70
51
  }
71
52
  async #openLinkPicker(currentTarget) {
@@ -88,26 +69,25 @@ export default class UmbTinyMceMultiUrlPickerPlugin extends UmbTinyMcePluginBase
88
69
  this.#linkPickerData = { link: { ...linkPickerData.link } };
89
70
  this.#updateLink();
90
71
  }
91
- //Create a json obj used to create the attributes for the tag
92
- // TODO => where has rel gone?
93
72
  #createElemAttributes() {
94
- // Attribute 'name' because of linkPickerData. It should be 'title' .
95
- const { name, ...linkPickerData } = this.#linkPickerData.link;
96
- const a = Object.assign({}, linkPickerData);
97
- // always need to map back to href for tinymce to render correctly
98
- // do this first as checking querystring below may modify the href property
99
- if (this.#linkPickerData?.link.url) {
100
- a.href = this.#linkPickerData.link.url;
101
- }
102
- if (this.#linkPickerData?.link.name) {
103
- a.title = name;
104
- }
105
- if (this.#linkPickerData?.link.queryString?.startsWith('#') ||
106
- this.#linkPickerData?.link.queryString?.startsWith('?')) {
107
- a['data-anchor'] = this.#linkPickerData?.link.queryString;
108
- a.href += this.#linkPickerData?.link.queryString;
73
+ const link = this.#linkPickerData.link;
74
+ const anchor = {
75
+ href: link.url ?? '',
76
+ title: link.name ?? link.url ?? '',
77
+ target: link.target,
78
+ type: link.type ?? 'external',
79
+ rel: link.target === '_blank' ? 'noopener' : null,
80
+ };
81
+ if (link.queryString) {
82
+ anchor['data-anchor'] = link.queryString;
83
+ if (link.queryString.startsWith('?')) {
84
+ anchor.href += !anchor.href ? '/' + link.queryString : link.queryString;
85
+ }
86
+ else if (link.queryString.startsWith('#')) {
87
+ anchor.href += link.queryString;
88
+ }
109
89
  }
110
- return a;
90
+ return anchor;
111
91
  }
112
92
  #insertLink() {
113
93
  if (this.#anchorElement) {
@@ -282,7 +282,7 @@ let UmbWorkspacePackageBuilderElement = class UmbWorkspacePackageBuilderElement
282
282
  <umb-property-layout label="Templates">
283
283
  <div slot="editor">
284
284
  <umb-input-entity
285
- .getIcon=${() => 'icon-newspaper'}
285
+ .getIcon=${() => 'icon-document-html'}
286
286
  .pickerContext=${UmbTemplatePickerInputContext}
287
287
  .selection=${this._package.templates ?? []}
288
288
  @change=${this.#onTemplateChange}>
@@ -305,7 +305,7 @@ let UmbWorkspacePackageBuilderElement = class UmbWorkspacePackageBuilderElement
305
305
  <umb-property-layout label="Stylesheets">
306
306
  <div slot="editor">
307
307
  <umb-input-entity
308
- .getIcon=${() => 'icon-brush-alt'}
308
+ .getIcon=${() => 'icon-palette'}
309
309
  .pickerContext=${UmbStylesheetPickerInputContext}
310
310
  .selection=${this._package.stylesheets.map((path) => this.#serverFilePathUniqueSerializer.toUnique(path)) ??
311
311
  []}
@@ -329,7 +329,7 @@ let UmbWorkspacePackageBuilderElement = class UmbWorkspacePackageBuilderElement
329
329
  <umb-property-layout label="Scripts">
330
330
  <div slot="editor">
331
331
  <umb-input-entity
332
- .getIcon=${() => 'icon-diploma'}
332
+ .getIcon=${() => 'icon-document-js'}
333
333
  .pickerContext=${UmbScriptPickerInputContext}
334
334
  .selection=${this._package.scripts.map((path) => this.#serverFilePathUniqueSerializer.toUnique(path)) ?? []}
335
335
  @change=${this.#onScriptsChange}>
@@ -352,7 +352,7 @@ let UmbWorkspacePackageBuilderElement = class UmbWorkspacePackageBuilderElement
352
352
  <umb-property-layout label="Partial Views">
353
353
  <div slot="editor">
354
354
  <umb-input-entity
355
- .getIcon=${() => 'icon-notepad'}
355
+ .getIcon=${() => 'icon-document-html'}
356
356
  .pickerContext=${UmbPartialViewPickerInputContext}
357
357
  .selection=${this._package.partialViews.map((path) => this.#serverFilePathUniqueSerializer.toUnique(path)) ?? []}
358
358
  @change=${this.#onPartialViewsChange}>
@@ -4,7 +4,7 @@ export declare class UmbSysinfoElement extends UmbModalBaseElement {
4
4
  private _systemInformation;
5
5
  private _loading;
6
6
  private _buttonState?;
7
- constructor();
7
+ connectedCallback(): void;
8
8
  render(): import("lit-html").TemplateResult<1>;
9
9
  static readonly styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
10
10
  }
@@ -9,30 +9,32 @@ import { css, customElement, html, state, when } from '../../../external/lit/ind
9
9
  import { UmbTextStyles } from '../../core/style/index.js';
10
10
  import { UmbModalBaseElement } from '../../core/modal/index.js';
11
11
  import { UMB_NOTIFICATION_CONTEXT } from '../../core/notification/index.js';
12
+ import { UmbCurrentUserRepository } from '../../user/current-user/index.js';
12
13
  let UmbSysinfoElement = class UmbSysinfoElement extends UmbModalBaseElement {
13
- #serverKeyValues;
14
- #sysinfoRepository;
15
- #notificationContext;
16
14
  constructor() {
17
- super();
15
+ super(...arguments);
18
16
  this._systemInformation = '';
19
17
  this._loading = false;
20
18
  this.#serverKeyValues = [];
21
19
  this.#sysinfoRepository = new UmbSysinfoRepository(this);
22
- this.consumeContext(UMB_NOTIFICATION_CONTEXT, (context) => {
23
- this.#notificationContext = context;
24
- });
20
+ this.#currentUserRepository = new UmbCurrentUserRepository(this);
21
+ }
22
+ #serverKeyValues;
23
+ #sysinfoRepository;
24
+ #currentUserRepository;
25
+ connectedCallback() {
26
+ super.connectedCallback();
25
27
  this.#populate();
26
28
  }
27
29
  async #populate() {
28
30
  this._loading = true;
29
- this.#serverKeyValues = [];
31
+ this.#serverKeyValues.length = 0;
30
32
  const [serverTroubleshooting, serverInformation] = await Promise.all([
31
33
  this.#sysinfoRepository.requestTroubleShooting(),
32
34
  this.#sysinfoRepository.requestServerInformation(),
33
35
  ]);
34
36
  if (serverTroubleshooting) {
35
- this.#serverKeyValues = serverTroubleshooting.items;
37
+ this.#serverKeyValues.push(...serverTroubleshooting.items);
36
38
  }
37
39
  if (serverInformation) {
38
40
  this.#serverKeyValues.push({ name: 'Umbraco build version', data: serverInformation.version });
@@ -43,6 +45,21 @@ let UmbSysinfoElement = class UmbSysinfoElement extends UmbModalBaseElement {
43
45
  this.#serverKeyValues.push({ name: 'Browser (user agent)', data: navigator.userAgent });
44
46
  this.#serverKeyValues.push({ name: 'Browser language', data: navigator.language });
45
47
  this.#serverKeyValues.push({ name: 'Browser location', data: location.href });
48
+ // User information
49
+ const { data: currentUser } = await this.#currentUserRepository.requestCurrentUser();
50
+ if (currentUser) {
51
+ this.#serverKeyValues.push({ name: 'User is admin', data: currentUser.isAdmin ? 'Yes' : 'No' });
52
+ this.#serverKeyValues.push({ name: 'User sections', data: currentUser.allowedSections.join(', ') });
53
+ this.#serverKeyValues.push({ name: 'User culture', data: currentUser.languageIsoCode });
54
+ this.#serverKeyValues.push({
55
+ name: 'User languages',
56
+ data: currentUser.hasAccessToAllLanguages ? 'All' : currentUser.languages.join(', '),
57
+ });
58
+ this.#serverKeyValues.push({
59
+ name: 'User document start nodes',
60
+ data: currentUser.documentStartNodeUniques.length ? currentUser.documentStartNodeUniques.join(', ') : 'None',
61
+ });
62
+ }
46
63
  this._systemInformation = this.#renderServerKeyValues();
47
64
  this._loading = false;
48
65
  }
@@ -77,6 +94,7 @@ let UmbSysinfoElement = class UmbSysinfoElement extends UmbModalBaseElement {
77
94
  `;
78
95
  }
79
96
  async #copyToClipboard() {
97
+ const notificationContext = await this.getContext(UMB_NOTIFICATION_CONTEXT);
80
98
  try {
81
99
  this._buttonState = 'waiting';
82
100
  const text = `Umbraco system information
@@ -85,7 +103,7 @@ ${this._systemInformation}`;
85
103
  const textAsCode = `\`\`\`\n${text}\n\`\`\`\n`;
86
104
  await navigator.clipboard.writeText(textAsCode);
87
105
  setTimeout(() => {
88
- this.#notificationContext?.peek('positive', {
106
+ notificationContext?.peek('positive', {
89
107
  data: {
90
108
  headline: 'System information',
91
109
  message: this.localize.term('speechBubbles_copySuccessMessage'),
@@ -96,7 +114,7 @@ ${this._systemInformation}`;
96
114
  }
97
115
  catch {
98
116
  this._buttonState = 'failed';
99
- this.#notificationContext?.peek('danger', {
117
+ notificationContext?.peek('danger', {
100
118
  data: {
101
119
  headline: 'System information',
102
120
  message: this.localize.term('speechBubbles_cannotCopyInformation'),
@@ -60,11 +60,11 @@ let UmbPartialViewCreateOptionsModalElement = class UmbPartialViewCreateOptionsM
60
60
  <uui-box>
61
61
  <!-- TODO: construct url -->
62
62
  <uui-menu-item href=${this.#getCreateHref()} label="New empty partial view" @click=${this.#onNavigate}>
63
- <uui-icon slot="icon" name="icon-article"></uui-icon>}
63
+ <uui-icon slot="icon" name="icon-document-html"></uui-icon>}
64
64
  </uui-menu-item>
65
65
 
66
66
  <uui-menu-item @click=${this.#onCreateFromSnippetClick} label="New partial view from snippet...">
67
- <uui-icon slot="icon" name="icon-article"></uui-icon>}
67
+ <uui-icon slot="icon" name="icon-document-html"></uui-icon>}
68
68
  </uui-menu-item>
69
69
 
70
70
  <uui-menu-item @click=${this.#onCreateFolderClick} label="New Folder...">
@@ -36,7 +36,7 @@ let UmbPartialViewCreateFromSnippetModalElement = class UmbPartialViewCreateFrom
36
36
  <umb-body-layout headline="Create Partial View from snippet">
37
37
  <uui-box>
38
38
  ${this._snippets.map((snippet) => html ` <uui-menu-item label="${snippet.name}" href=${snippet.path} @click=${this.#onNavigate}>
39
- <uui-icon name="icon-article" slot="icon"></uui-icon
39
+ <uui-icon name="icon-document-html" slot="icon"></uui-icon
40
40
  ></uui-menu-item>`)}
41
41
  </uui-box>
42
42
  <uui-button slot="actions" @click=${this._rejectModal} look="secondary">Close</uui-button>
@@ -60,6 +60,6 @@ const mapper = (item) => {
60
60
  name: item.name,
61
61
  isFolder: item.isFolder,
62
62
  hasChildren: item.hasChildren,
63
- icon: item.isFolder ? undefined : 'icon-notepad',
63
+ icon: item.isFolder ? undefined : 'icon-document-html',
64
64
  };
65
65
  };
@@ -47,7 +47,7 @@ let UmbScriptCreateOptionsModalElement = class UmbScriptCreateOptionsModalElemen
47
47
  <uui-box>
48
48
  <!-- TODO: construct url -->
49
49
  <uui-menu-item href=${this.#getCreateHref()} label="New Javascript file" @click=${this.#onNavigate}>
50
- <uui-icon slot="icon" name="icon-article"></uui-icon>}
50
+ <uui-icon slot="icon" name="icon-document-js"></uui-icon>}
51
51
  </uui-menu-item>
52
52
 
53
53
  <uui-menu-item @click=${this.#onCreateFolderClick} label="New Folder...">
@@ -60,6 +60,6 @@ const mapper = (item) => {
60
60
  name: item.name,
61
61
  isFolder: item.isFolder,
62
62
  hasChildren: item.hasChildren,
63
- icon: item.isFolder ? undefined : 'icon-diploma',
63
+ icon: item.isFolder ? undefined : 'icon-document-js',
64
64
  };
65
65
  };
@@ -47,14 +47,14 @@ let UmbStylesheetCreateOptionsModalElement = class UmbStylesheetCreateOptionsMod
47
47
  <uui-box>
48
48
  <!-- TODO: construct url -->
49
49
  <uui-menu-item href=${`${this.#getCreateHref()}/view/code`} label="New Stylesheet" @click=${this.#onNavigate}>
50
- <uui-icon slot="icon" name="icon-article"></uui-icon>}
50
+ <uui-icon slot="icon" name="icon-palette"></uui-icon>}
51
51
  </uui-menu-item>
52
52
 
53
53
  <uui-menu-item
54
54
  href=${`${this.#getCreateHref()}/view/rich-text-editor`}
55
55
  label="New Rich Text Editor Stylesheet"
56
56
  @click=${this.#onNavigate}>
57
- <uui-icon slot="icon" name="icon-article"></uui-icon>}
57
+ <uui-icon slot="icon" name="icon-palette"></uui-icon>}
58
58
  </uui-menu-item>
59
59
 
60
60
  <uui-menu-item @click=${this.#onCreateFolderClick} label="New Folder...">
@@ -60,6 +60,6 @@ const mapper = (item) => {
60
60
  name: item.name,
61
61
  isFolder: item.isFolder,
62
62
  hasChildren: item.hasChildren,
63
- icon: item.isFolder ? undefined : 'icon-brush-alt',
63
+ icon: item.isFolder ? undefined : 'icon-palette',
64
64
  };
65
65
  };
@@ -46,7 +46,7 @@ let UmbTemplateCardElement = class UmbTemplateCardElement extends UUIFormControl
46
46
  render() {
47
47
  return html `<div id="card">
48
48
  <button id="open-part" aria-label="Open ${this.name}" @click="${this.#openTemplate}">
49
- <uui-icon class="logo" name="icon-layout"></uui-icon>
49
+ <uui-icon class="logo" name="icon-document-html"></uui-icon>
50
50
  <strong>${this.name.length ? this.name : 'Untitled template'}</strong>
51
51
  </button>
52
52
  <uui-button
@@ -56,6 +56,6 @@ const mapper = (item) => {
56
56
  entityType: UMB_TEMPLATE_ENTITY_TYPE,
57
57
  hasChildren: item.hasChildren,
58
58
  isFolder: false,
59
- icon: 'icon-newspaper',
59
+ icon: 'icon-document-html',
60
60
  };
61
61
  };
@@ -6,7 +6,7 @@ export const UMB_BLOCK_ENTRY_WEB_COMPONENTS_ABSOLUTE_PATH = '@umbraco-cms/backof
6
6
  //so we don't have to specify all the normal elements again
7
7
  export const defaultFallbackConfig = {
8
8
  plugins: ['anchor', 'charmap', 'table', 'lists', 'advlist', 'autolink', 'directionality', 'searchreplace'],
9
- valid_elements: '+a[id|style|rel|data-id|data-udi|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-s[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|reversed|start|style|type],-ul[class|style],-li[class|style],br[class],img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align|umbracoorgwidth|umbracoorgheight|onresize|onresizestart|onresizeend|rel|data-id],-sub[style|class],-sup[style|class],-blockquote[dir|style|class],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[class|align|style],-pre[class|align|style],address[class|align|style],-h1[id|dir|class|align|style],-h2[id|dir|class|align|style],-h3[id|dir|class|align|style],-h4[id|dir|class|align|style],-h5[id|dir|class|align|style],-h6[id|style|dir|class|align|style],hr[class|style],small[class|style],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],object[class|id|width|height|codebase|*],param[name|value|_value|class],embed[type|width|height|src|class|*],map[name|class],area[shape|coords|href|alt|target|class],bdo[class],button[class],iframe[*],figure,figcaption,cite,video[*],audio[*],picture[*],source[*],canvas[*]',
9
+ valid_elements: '+a[id|style|rel|data-id|data-udi|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-s[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|reversed|start|style|type],-ul[class|style],-li[class|style],br[class],img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align|umbracoorgwidth|umbracoorgheight|onresize|onresizestart|onresizeend|rel|data-id],-sub[style|class],-sup[style|class],-blockquote[dir|style|class],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[class|align|style],-pre[class|align|style],address[class|align|style],-h1[id|dir|class|align|style],-h2[id|dir|class|align|style],-h3[id|dir|class|align|style],-h4[id|dir|class|align|style],-h5[id|dir|class|align|style],-h6[id|style|dir|class|align|style],hr[class|style],small[class|style],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],object[class|id|width|height|codebase|*],param[name|value|_value|class],embed[type|width|height|src|class|*],map[name|class],area[shape|coords|href|alt|target|class],bdo[class],button[class],iframe[*],figure,figcaption,cite,video[*],audio[*],picture[*],source[*],canvas[*],-code',
10
10
  invalid_elements: 'font',
11
11
  extended_valid_elements: '@[id|class|style],+umb-rte-block[!data-content-key],+umb-rte-block-inline[!data-content-key],-div[id|dir|class|align|style],ins[datetime|cite],-ul[class|style],-li[class|style],-h1[id|dir|class|align|style],-h2[id|dir|class|align|style],-h3[id|dir|class|align|style],-h4[id|dir|class|align|style],-h5[id|dir|class|align|style],-h6[id|style|dir|class|align],span[id|class|style|lang],figure,figcaption',
12
12
  custom_elements: 'umb-rte-block,~umb-rte-block-inline',
@@ -21,14 +21,15 @@ export default class UmbTinyMceCodeEditorPlugin extends UmbTinyMcePluginBase {
21
21
  language: 'html',
22
22
  },
23
23
  });
24
- if (!modal)
24
+ const value = await modal.onSubmit().catch(() => undefined);
25
+ if (!value) {
25
26
  return;
26
- const { content } = await modal.onSubmit();
27
- if (!content) {
27
+ }
28
+ if (!value.content) {
28
29
  this.editor.resetContent();
29
30
  }
30
31
  else {
31
- this.editor.setContent(content.toString());
32
+ this.editor.setContent(value.content.toString());
32
33
  }
33
34
  this.editor.dispatch('Change');
34
35
  }
@@ -1,4 +1,4 @@
1
- import type { UmbTiptapToolbarValue } from '../../extensions/types.js';
1
+ import type { UmbTiptapToolbarValue } from '../types.js';
2
2
  import { UmbLitElement } from '../../../core/lit-element/index.js';
3
3
  import type { UmbPropertyEditorConfigCollection } from '../../../core/property-editor/index.js';
4
4
  import './tiptap-hover-menu.element.js';
@@ -1,4 +1,4 @@
1
- import type { UmbTiptapToolbarValue } from '../../extensions/types.js';
1
+ import type { UmbTiptapToolbarValue } from '../types.js';
2
2
  import { UmbLitElement } from '../../../core/lit-element/index.js';
3
3
  import type { Editor } from '../../../../external/tiptap/index.js';
4
4
  import type { UmbPropertyEditorConfigCollection } from '../../../core/property-editor/index.js';
@@ -0,0 +1 @@
1
+ export type UmbTiptapToolbarValue = Array<Array<Array<string>>>;
@@ -0,0 +1 @@
1
+ export {};
@@ -50,6 +50,12 @@ export default class UmbTiptapMediaUploadExtensionApi extends UmbTiptapExtension
50
50
  return;
51
51
  self.#uploadTemporaryFile(files, this.editor);
52
52
  });
53
+ host.addEventListener('paste', (event) => {
54
+ const files = event.clipboardData?.files;
55
+ if (!files)
56
+ return;
57
+ self.#uploadTemporaryFile(files, this.editor);
58
+ });
53
59
  },
54
60
  }),
55
61
  ];