@umbraco-cms/backoffice 14.0.0-d542ed7d → 14.0.0-d87d656d

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 (303) hide show
  1. package/dist-cms/apps/backoffice/backoffice.element.js +1 -1
  2. package/dist-cms/custom-elements.json +96 -95
  3. package/dist-cms/external/backend-api/index.js +1 -1
  4. package/dist-cms/external/monaco-editor/{abap-42d5eca7.js → abap-7ad4f8f0.js} +1 -1
  5. package/dist-cms/external/monaco-editor/{apex-051da044.js → apex-30597c49.js} +1 -1
  6. package/dist-cms/external/monaco-editor/{bundle.css → assets/bundle-a4f90d1d.css} +593 -279
  7. package/dist-cms/external/monaco-editor/{azcli-ad3d7346.js → azcli-67c34a04.js} +1 -1
  8. package/dist-cms/external/monaco-editor/{bat-0217c0bc.js → bat-b8f4738b.js} +1 -1
  9. package/dist-cms/external/monaco-editor/{bicep-0cadb30a.js → bicep-b104b38b.js} +1 -1
  10. package/dist-cms/external/monaco-editor/{cameligo-ac55f854.js → cameligo-001d1ded.js} +1 -1
  11. package/dist-cms/external/monaco-editor/{clojure-388a0d58.js → clojure-fa9652a1.js} +1 -1
  12. package/dist-cms/external/monaco-editor/{coffee-7e7a2971.js → coffee-b69a8315.js} +1 -1
  13. package/dist-cms/external/monaco-editor/{cpp-840d082a.js → cpp-8053752f.js} +1 -1
  14. package/dist-cms/external/monaco-editor/{csharp-b3429875.js → csharp-886041a3.js} +1 -1
  15. package/dist-cms/external/monaco-editor/{csp-83442b86.js → csp-e846bce6.js} +1 -1
  16. package/dist-cms/external/monaco-editor/{css-7a34b8c3.js → css-50032e5e.js} +1 -1
  17. package/dist-cms/external/monaco-editor/{cssMode-98237bd7.js → cssMode-c0406684.js} +3 -3
  18. package/dist-cms/external/monaco-editor/{cypher-cc9c23cc.js → cypher-6f93a845.js} +1 -1
  19. package/dist-cms/external/monaco-editor/{dart-00a58d1c.js → dart-14284236.js} +1 -1
  20. package/dist-cms/external/monaco-editor/{dockerfile-668ee825.js → dockerfile-e9935eb4.js} +1 -1
  21. package/dist-cms/external/monaco-editor/{ecl-b42ffd48.js → ecl-9c89f204.js} +1 -1
  22. package/dist-cms/external/monaco-editor/{elixir-b9ceca92.js → elixir-ca8bf661.js} +1 -1
  23. package/dist-cms/external/monaco-editor/{flow9-7e9b2e50.js → flow9-ac147227.js} +1 -1
  24. package/dist-cms/external/monaco-editor/{freemarker2-b9eee947.js → freemarker2-793b7402.js} +2 -2
  25. package/dist-cms/external/monaco-editor/{fsharp-cdc5b8f1.js → fsharp-8eaad024.js} +1 -1
  26. package/dist-cms/external/monaco-editor/{go-4c92fa5c.js → go-05529e2e.js} +1 -1
  27. package/dist-cms/external/monaco-editor/{graphql-67842079.js → graphql-8f5b3fdd.js} +1 -1
  28. package/dist-cms/external/monaco-editor/{handlebars-36a3f04f.js → handlebars-aaa2fd96.js} +2 -2
  29. package/dist-cms/external/monaco-editor/{hcl-59febf1c.js → hcl-9e201a51.js} +1 -1
  30. package/dist-cms/external/monaco-editor/{html-b0d38e59.js → html-1194c0aa.js} +2 -2
  31. package/dist-cms/external/monaco-editor/{htmlMode-b85c3f7d.js → htmlMode-36df69c6.js} +3 -3
  32. package/dist-cms/external/monaco-editor/{index-534fb84c.js → index-7368f3e3.js} +418 -409
  33. package/dist-cms/external/monaco-editor/index.js +1 -1
  34. package/dist-cms/external/monaco-editor/{ini-1cf2ce67.js → ini-31a5619d.js} +1 -1
  35. package/dist-cms/external/monaco-editor/{java-e4fb14c6.js → java-8c6e1ae8.js} +1 -1
  36. package/dist-cms/external/monaco-editor/javascript-86205709.js +6 -0
  37. package/dist-cms/external/monaco-editor/{jsonMode-fa2b41c8.js → jsonMode-f663e935.js} +6 -6
  38. package/dist-cms/external/monaco-editor/{julia-9b6c6458.js → julia-fbb2af47.js} +1 -1
  39. package/dist-cms/external/monaco-editor/{kotlin-b66c14ff.js → kotlin-bfa96180.js} +1 -1
  40. package/dist-cms/external/monaco-editor/{less-8dc8685d.js → less-0b6a8ff1.js} +1 -1
  41. package/dist-cms/external/monaco-editor/{lexon-59c0b911.js → lexon-585e5248.js} +1 -1
  42. package/dist-cms/external/monaco-editor/{liquid-be38812f.js → liquid-37adc07a.js} +2 -2
  43. package/dist-cms/external/monaco-editor/{lua-3f4d9098.js → lua-f6c17885.js} +1 -1
  44. package/dist-cms/external/monaco-editor/{m3-82a8c502.js → m3-1b6456c5.js} +1 -1
  45. package/dist-cms/external/monaco-editor/{markdown-07c3fa1e.js → markdown-7bc251f9.js} +1 -1
  46. package/dist-cms/external/monaco-editor/{mips-59ddf2f4.js → mips-2df76781.js} +1 -1
  47. package/dist-cms/external/monaco-editor/{msdax-12ec689c.js → msdax-8c38e8b4.js} +1 -1
  48. package/dist-cms/external/monaco-editor/{mysql-2958efa4.js → mysql-abbb9ca3.js} +1 -1
  49. package/dist-cms/external/monaco-editor/{objective-c-08d94025.js → objective-c-efbfd08b.js} +1 -1
  50. package/dist-cms/external/monaco-editor/{pascal-b686b438.js → pascal-08abee72.js} +1 -1
  51. package/dist-cms/external/monaco-editor/{pascaligo-96457e5f.js → pascaligo-200db0cf.js} +1 -1
  52. package/dist-cms/external/monaco-editor/{perl-b938bdad.js → perl-079789ee.js} +1 -1
  53. package/dist-cms/external/monaco-editor/{pgsql-42970e97.js → pgsql-efd093d4.js} +1 -1
  54. package/dist-cms/external/monaco-editor/{php-7476401f.js → php-75c530f2.js} +1 -1
  55. package/dist-cms/external/monaco-editor/{pla-aaf0caa2.js → pla-a55a2765.js} +1 -1
  56. package/dist-cms/external/monaco-editor/{postiats-759ff404.js → postiats-6098f37b.js} +1 -1
  57. package/dist-cms/external/monaco-editor/{powerquery-a33a8de4.js → powerquery-949bb7fe.js} +1 -1
  58. package/dist-cms/external/monaco-editor/{powershell-ec154f36.js → powershell-7e550b21.js} +1 -1
  59. package/dist-cms/external/monaco-editor/{protobuf-e42d83dc.js → protobuf-25a4d695.js} +1 -1
  60. package/dist-cms/external/monaco-editor/{pug-04b2d67c.js → pug-f8c9f493.js} +1 -1
  61. package/dist-cms/external/monaco-editor/{python-b3b058ea.js → python-78a47148.js} +2 -2
  62. package/dist-cms/external/monaco-editor/{qsharp-5376e9d1.js → qsharp-c4b94317.js} +1 -1
  63. package/dist-cms/external/monaco-editor/{r-d212ba98.js → r-614353db.js} +1 -1
  64. package/dist-cms/external/monaco-editor/{razor-911a705a.js → razor-5de9ce12.js} +2 -2
  65. package/dist-cms/external/monaco-editor/{redis-51e44009.js → redis-fb089f4d.js} +1 -1
  66. package/dist-cms/external/monaco-editor/{redshift-8de2cfdc.js → redshift-a620fcb0.js} +1 -1
  67. package/dist-cms/external/monaco-editor/{restructuredtext-3f99254a.js → restructuredtext-7ab09fcf.js} +1 -1
  68. package/dist-cms/external/monaco-editor/{ruby-64a73e64.js → ruby-922be722.js} +1 -1
  69. package/dist-cms/external/monaco-editor/{rust-2a0390f1.js → rust-23e08578.js} +1 -1
  70. package/dist-cms/external/monaco-editor/{sb-4d8fa557.js → sb-ccceec0f.js} +1 -1
  71. package/dist-cms/external/monaco-editor/{scala-00d62260.js → scala-0535664d.js} +1 -1
  72. package/dist-cms/external/monaco-editor/{scheme-a0903f29.js → scheme-dba621eb.js} +1 -1
  73. package/dist-cms/external/monaco-editor/{scss-3e25f7ad.js → scss-28539a11.js} +1 -1
  74. package/dist-cms/external/monaco-editor/{shell-9c442847.js → shell-5b92a834.js} +1 -1
  75. package/dist-cms/external/monaco-editor/{solidity-6b3049ed.js → solidity-f63d6049.js} +1 -1
  76. package/dist-cms/external/monaco-editor/{sophia-f4a2b303.js → sophia-12e9ad90.js} +1 -1
  77. package/dist-cms/external/monaco-editor/{sparql-1d37a384.js → sparql-dedb74aa.js} +1 -1
  78. package/dist-cms/external/monaco-editor/{sql-946641be.js → sql-975a69d7.js} +1 -1
  79. package/dist-cms/external/monaco-editor/{st-9220dec1.js → st-1904ae33.js} +1 -1
  80. package/dist-cms/external/monaco-editor/{swift-06592b81.js → swift-e180a143.js} +1 -1
  81. package/dist-cms/external/monaco-editor/{systemverilog-b5ba493c.js → systemverilog-c5592fac.js} +1 -1
  82. package/dist-cms/external/monaco-editor/{tcl-3fe51e69.js → tcl-996f4ac7.js} +1 -1
  83. package/dist-cms/external/monaco-editor/tsMode-f4618e87.js +16 -0
  84. package/dist-cms/external/monaco-editor/{twig-ee0f3b03.js → twig-4859b551.js} +1 -1
  85. package/dist-cms/external/monaco-editor/{typescript-4d577e09.js → typescript-efea739f.js} +3 -3
  86. package/dist-cms/external/monaco-editor/{vb-e7e59935.js → vb-ad68fa9a.js} +1 -1
  87. package/dist-cms/external/monaco-editor/wgsl-5ee7b1ca.js +303 -0
  88. package/dist-cms/external/monaco-editor/{xml-b05159d9.js → xml-12b9ace3.js} +2 -2
  89. package/dist-cms/external/monaco-editor/{yaml-b4ec85f0.js → yaml-65e08cff.js} +3 -3
  90. package/dist-cms/external/rxjs/index.js +2 -2
  91. package/dist-cms/external/tinymce/index.js +16 -16
  92. package/dist-cms/mocks/data/partial-views.data.d.ts +19 -3
  93. package/dist-cms/mocks/data/partial-views.data.js +277 -10
  94. package/dist-cms/mocks/data/utils.d.ts +2 -1
  95. package/dist-cms/mocks/data/utils.js +5 -0
  96. package/dist-cms/mocks/handlers/partial-views.handlers.d.ts +2 -1
  97. package/dist-cms/mocks/handlers/partial-views.handlers.js +37 -5
  98. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.handlers.js +1 -1
  99. package/dist-cms/packages/core/entity-action/common/create-folder/create-folder.action.d.ts +8 -0
  100. package/dist-cms/packages/core/entity-action/common/create-folder/create-folder.action.js +21 -0
  101. package/dist-cms/packages/core/entity-action/common/index.d.ts +1 -0
  102. package/dist-cms/packages/core/entity-action/common/index.js +1 -0
  103. package/dist-cms/packages/core/modal/common/folder/folder-modal.element.js +4 -1
  104. package/dist-cms/packages/core/modal/token/embedded-media-modal.token.js +0 -1
  105. package/dist-cms/packages/core/modal/token/folder-modal.token.d.ts +1 -0
  106. package/dist-cms/packages/{templating/components → core/tree}/file-system-tree-item/file-system-tree-item.context.d.ts +9 -1
  107. package/dist-cms/packages/core/tree/file-system-tree-item/file-system-tree-item.context.js +28 -0
  108. package/dist-cms/packages/{templating/components → core/tree}/file-system-tree-item/file-system-tree-item.element.d.ts +10 -2
  109. package/dist-cms/packages/{templating/components → core/tree}/file-system-tree-item/file-system-tree-item.element.js +10 -1
  110. package/dist-cms/packages/core/tree/file-system-tree-item/index.d.ts +2 -0
  111. package/dist-cms/packages/core/tree/file-system-tree-item/index.js +2 -0
  112. package/dist-cms/packages/core/tree/index.d.ts +1 -0
  113. package/dist-cms/packages/core/tree/index.js +1 -0
  114. package/dist-cms/packages/core/workspace/workspace-action/workspace-action.element.js +12 -4
  115. package/dist-cms/packages/dictionary/dictionary/index.d.ts +1 -0
  116. package/dist-cms/packages/dictionary/dictionary/index.js +1 -0
  117. package/dist-cms/packages/dictionary/dictionary/repository/index.d.ts +3 -0
  118. package/dist-cms/packages/dictionary/dictionary/repository/index.js +3 -0
  119. package/dist-cms/packages/{translation → dictionary}/dictionary/repository/manifests.js +1 -1
  120. package/dist-cms/packages/{translation → dictionary}/section.manifest.js +4 -4
  121. package/dist-cms/packages/{translation → dictionary}/umbraco-package.d.ts +1 -1
  122. package/dist-cms/packages/dictionary/umbraco-package.js +9 -0
  123. package/dist-cms/packages/settings/dashboards/published-status/dashboard-published-status.element.js +11 -3
  124. package/dist-cms/packages/templating/components/index.d.ts +0 -1
  125. package/dist-cms/packages/templating/components/index.js +0 -1
  126. package/dist-cms/packages/templating/components/insert-menu/templating-insert-menu.element.js +1 -1
  127. package/dist-cms/packages/templating/manifests.d.ts +6 -1
  128. package/dist-cms/packages/templating/partial-views/config.d.ts +5 -5
  129. package/dist-cms/packages/templating/partial-views/config.js +3 -1
  130. package/dist-cms/packages/templating/partial-views/entity-actions/create/create-empty.action.js +1 -1
  131. package/dist-cms/packages/templating/partial-views/entity-actions/create/create-from-snippet.action.d.ts +10 -1
  132. package/dist-cms/packages/templating/partial-views/entity-actions/create/create-from-snippet.action.js +16 -1
  133. package/dist-cms/packages/templating/partial-views/entity-actions/create/create-from-snippet.modal.d.ts +16 -0
  134. package/dist-cms/packages/templating/partial-views/entity-actions/create/create-from-snippet.modal.js +73 -0
  135. package/dist-cms/packages/templating/partial-views/entity-actions/manifests.d.ts +6 -1
  136. package/dist-cms/packages/templating/partial-views/entity-actions/manifests.js +43 -5
  137. package/dist-cms/packages/templating/partial-views/manifests.d.ts +6 -1
  138. package/dist-cms/packages/templating/partial-views/repository/manifests.js +2 -2
  139. package/dist-cms/packages/templating/partial-views/repository/partial-views.repository.d.ts +47 -26
  140. package/dist-cms/packages/templating/partial-views/repository/partial-views.repository.js +81 -24
  141. package/dist-cms/packages/templating/partial-views/repository/sources/partial-views.detail.server.data.d.ts +48 -13
  142. package/dist-cms/packages/templating/partial-views/repository/sources/partial-views.detail.server.data.js +56 -17
  143. package/dist-cms/packages/templating/partial-views/repository/sources/partial-views.folder.server.data.d.ts +17 -0
  144. package/dist-cms/packages/templating/partial-views/repository/sources/partial-views.folder.server.data.js +23 -0
  145. package/dist-cms/packages/templating/partial-views/tree/manifests.js +3 -2
  146. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace-edit.element.d.ts +6 -1
  147. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace-edit.element.js +123 -27
  148. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace.context.d.ts +9 -7
  149. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace.context.js +49 -8
  150. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace.element.d.ts +1 -0
  151. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace.element.js +7 -3
  152. package/dist-cms/packages/templating/templates/modals/query-builder/query-builder-filter.element.js +2 -2
  153. package/dist-cms/packages/templating/templates/modals/query-builder/query-builder.element.d.ts +1 -0
  154. package/dist-cms/packages/templating/templates/modals/query-builder/query-builder.element.js +1 -0
  155. package/dist-cms/shared/repository/data-source/data-source.interface.d.ts +2 -2
  156. package/dist-cms/shared/repository/detail-repository.interface.d.ts +2 -2
  157. package/dist-cms/shared/utils/media-helper.service.d.ts +1 -1
  158. package/dist-cms/shared/utils/media-helper.service.js +1 -1
  159. package/dist-cms/tinymce/CHANGELOG.md +22 -0
  160. package/dist-cms/tinymce/composer.json +1 -1
  161. package/dist-cms/tinymce/icons/default/icons.js +3 -0
  162. package/dist-cms/tinymce/icons/default/icons.min.js +1 -1
  163. package/dist-cms/tinymce/langs/ar.js +1 -1
  164. package/dist-cms/tinymce/langs/bg_BG.js +56 -56
  165. package/dist-cms/tinymce/langs/fr_FR.js +1 -1
  166. package/dist-cms/tinymce/langs/ka_GE.js +406 -0
  167. package/dist-cms/tinymce/langs/nb_NO.js +15 -15
  168. package/dist-cms/tinymce/models/dom/model.js +1 -1
  169. package/dist-cms/tinymce/models/dom/model.min.js +1 -1
  170. package/dist-cms/tinymce/package.json +1 -1
  171. package/dist-cms/tinymce/plugins/accordion/plugin.js +1 -1
  172. package/dist-cms/tinymce/plugins/accordion/plugin.min.js +1 -1
  173. package/dist-cms/tinymce/plugins/advlist/plugin.js +1 -1
  174. package/dist-cms/tinymce/plugins/advlist/plugin.min.js +1 -1
  175. package/dist-cms/tinymce/plugins/anchor/plugin.js +1 -1
  176. package/dist-cms/tinymce/plugins/anchor/plugin.min.js +1 -1
  177. package/dist-cms/tinymce/plugins/autolink/plugin.js +1 -1
  178. package/dist-cms/tinymce/plugins/autolink/plugin.min.js +1 -1
  179. package/dist-cms/tinymce/plugins/autoresize/plugin.js +1 -1
  180. package/dist-cms/tinymce/plugins/autoresize/plugin.min.js +1 -1
  181. package/dist-cms/tinymce/plugins/autosave/plugin.js +1 -1
  182. package/dist-cms/tinymce/plugins/autosave/plugin.min.js +1 -1
  183. package/dist-cms/tinymce/plugins/charmap/plugin.js +1 -1
  184. package/dist-cms/tinymce/plugins/charmap/plugin.min.js +1 -1
  185. package/dist-cms/tinymce/plugins/code/plugin.js +1 -1
  186. package/dist-cms/tinymce/plugins/code/plugin.min.js +1 -1
  187. package/dist-cms/tinymce/plugins/codesample/plugin.js +1 -1
  188. package/dist-cms/tinymce/plugins/codesample/plugin.min.js +1 -1
  189. package/dist-cms/tinymce/plugins/directionality/plugin.js +1 -1
  190. package/dist-cms/tinymce/plugins/directionality/plugin.min.js +1 -1
  191. package/dist-cms/tinymce/plugins/emoticons/plugin.js +1 -1
  192. package/dist-cms/tinymce/plugins/emoticons/plugin.min.js +1 -1
  193. package/dist-cms/tinymce/plugins/fullscreen/plugin.js +1 -1
  194. package/dist-cms/tinymce/plugins/fullscreen/plugin.min.js +1 -1
  195. package/dist-cms/tinymce/plugins/help/plugin.js +6 -1
  196. package/dist-cms/tinymce/plugins/help/plugin.min.js +2 -2
  197. package/dist-cms/tinymce/plugins/image/plugin.js +1 -1
  198. package/dist-cms/tinymce/plugins/image/plugin.min.js +1 -1
  199. package/dist-cms/tinymce/plugins/importcss/plugin.js +1 -1
  200. package/dist-cms/tinymce/plugins/importcss/plugin.min.js +1 -1
  201. package/dist-cms/tinymce/plugins/insertdatetime/plugin.js +1 -1
  202. package/dist-cms/tinymce/plugins/insertdatetime/plugin.min.js +1 -1
  203. package/dist-cms/tinymce/plugins/link/plugin.js +1 -1
  204. package/dist-cms/tinymce/plugins/link/plugin.min.js +1 -1
  205. package/dist-cms/tinymce/plugins/lists/plugin.js +1 -1
  206. package/dist-cms/tinymce/plugins/lists/plugin.min.js +1 -1
  207. package/dist-cms/tinymce/plugins/media/plugin.js +1 -1
  208. package/dist-cms/tinymce/plugins/media/plugin.min.js +1 -1
  209. package/dist-cms/tinymce/plugins/nonbreaking/plugin.js +1 -1
  210. package/dist-cms/tinymce/plugins/nonbreaking/plugin.min.js +1 -1
  211. package/dist-cms/tinymce/plugins/pagebreak/plugin.js +1 -1
  212. package/dist-cms/tinymce/plugins/pagebreak/plugin.min.js +1 -1
  213. package/dist-cms/tinymce/plugins/preview/plugin.js +1 -1
  214. package/dist-cms/tinymce/plugins/preview/plugin.min.js +1 -1
  215. package/dist-cms/tinymce/plugins/quickbars/plugin.js +1 -1
  216. package/dist-cms/tinymce/plugins/quickbars/plugin.min.js +1 -1
  217. package/dist-cms/tinymce/plugins/save/plugin.js +1 -1
  218. package/dist-cms/tinymce/plugins/save/plugin.min.js +1 -1
  219. package/dist-cms/tinymce/plugins/searchreplace/plugin.js +1 -1
  220. package/dist-cms/tinymce/plugins/searchreplace/plugin.min.js +1 -1
  221. package/dist-cms/tinymce/plugins/table/plugin.js +1 -1
  222. package/dist-cms/tinymce/plugins/table/plugin.min.js +1 -1
  223. package/dist-cms/tinymce/plugins/template/plugin.js +1 -1
  224. package/dist-cms/tinymce/plugins/template/plugin.min.js +1 -1
  225. package/dist-cms/tinymce/plugins/visualblocks/plugin.js +1 -1
  226. package/dist-cms/tinymce/plugins/visualblocks/plugin.min.js +1 -1
  227. package/dist-cms/tinymce/plugins/visualchars/plugin.js +1 -1
  228. package/dist-cms/tinymce/plugins/visualchars/plugin.min.js +1 -1
  229. package/dist-cms/tinymce/plugins/wordcount/plugin.js +1 -1
  230. package/dist-cms/tinymce/plugins/wordcount/plugin.min.js +1 -1
  231. package/dist-cms/tinymce/skins/ui/oxide/skin.css +18 -0
  232. package/dist-cms/tinymce/skins/ui/oxide/skin.min.css +1 -1
  233. package/dist-cms/tinymce/skins/ui/oxide-dark/skin.css +18 -0
  234. package/dist-cms/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
  235. package/dist-cms/tinymce/skins/ui/tinymce-5/skin.css +18 -0
  236. package/dist-cms/tinymce/skins/ui/tinymce-5/skin.min.css +1 -1
  237. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.css +18 -0
  238. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -1
  239. package/dist-cms/tinymce/themes/silver/theme.js +279 -85
  240. package/dist-cms/tinymce/themes/silver/theme.min.js +2 -2
  241. package/dist-cms/tinymce/tinymce.d.ts +7 -2
  242. package/dist-cms/tinymce/tinymce.js +3 -3
  243. package/dist-cms/tinymce/tinymce.min.js +2 -2
  244. package/dist-cms/tsconfig.tsbuildinfo +1 -1
  245. package/dist-cms/umbraco-package-schema.json +40 -120
  246. package/dist-cms/vscode-html-custom-data.json +45 -45
  247. package/package.json +25 -25
  248. package/dist-cms/external/monaco-editor/javascript-53ce59fc.js +0 -6
  249. package/dist-cms/external/monaco-editor/tsMode-3f4e7f54.js +0 -16
  250. package/dist-cms/packages/templating/components/file-system-tree-item/file-system-tree-item.context.js +0 -10
  251. package/dist-cms/packages/translation/umbraco-package.js +0 -9
  252. /package/dist-cms/packages/{translation → dictionary}/dashboards/dictionary/dashboard-translation-dictionary.element.d.ts +0 -0
  253. /package/dist-cms/packages/{translation → dictionary}/dashboards/dictionary/dashboard-translation-dictionary.element.js +0 -0
  254. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/create/create-dictionary-modal.element.d.ts +0 -0
  255. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/create/create-dictionary-modal.element.js +0 -0
  256. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/create/create.action.d.ts +0 -0
  257. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/create/create.action.js +0 -0
  258. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/export/export-dictionary-modal.element.d.ts +0 -0
  259. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/export/export-dictionary-modal.element.js +0 -0
  260. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/export/export.action.d.ts +0 -0
  261. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/export/export.action.js +0 -0
  262. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/import/import-dictionary-modal.element.d.ts +0 -0
  263. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/import/import-dictionary-modal.element.js +0 -0
  264. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/import/import.action.d.ts +0 -0
  265. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/import/import.action.js +0 -0
  266. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/manifests.d.ts +0 -0
  267. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/manifests.js +0 -0
  268. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/reload.action.d.ts +0 -0
  269. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/reload.action.js +0 -0
  270. /package/dist-cms/packages/{translation → dictionary}/dictionary/manifests.d.ts +0 -0
  271. /package/dist-cms/packages/{translation → dictionary}/dictionary/manifests.js +0 -0
  272. /package/dist-cms/packages/{translation → dictionary}/dictionary/menu-item/dictionary-menu-item.element.d.ts +0 -0
  273. /package/dist-cms/packages/{translation → dictionary}/dictionary/menu-item/dictionary-menu-item.element.js +0 -0
  274. /package/dist-cms/packages/{translation → dictionary}/dictionary/menu-item/manifests.d.ts +0 -0
  275. /package/dist-cms/packages/{translation → dictionary}/dictionary/menu-item/manifests.js +0 -0
  276. /package/dist-cms/packages/{translation → dictionary}/dictionary/menu.manifests.d.ts +0 -0
  277. /package/dist-cms/packages/{translation → dictionary}/dictionary/menu.manifests.js +0 -0
  278. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/dictionary.repository.d.ts +0 -0
  279. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/dictionary.repository.js +0 -0
  280. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/dictionary.store.d.ts +0 -0
  281. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/dictionary.store.js +0 -0
  282. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/dictionary.tree.store.d.ts +0 -0
  283. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/dictionary.tree.store.js +0 -0
  284. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/manifests.d.ts +0 -0
  285. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/sources/dictionary.detail.server.data.d.ts +0 -0
  286. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/sources/dictionary.detail.server.data.js +0 -0
  287. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/sources/dictionary.tree.server.data.d.ts +0 -0
  288. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/sources/dictionary.tree.server.data.js +0 -0
  289. /package/dist-cms/packages/{translation → dictionary}/dictionary/tree/manifests.d.ts +0 -0
  290. /package/dist-cms/packages/{translation → dictionary}/dictionary/tree/manifests.js +0 -0
  291. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/dictionary-workspace-editor.element.d.ts +0 -0
  292. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/dictionary-workspace-editor.element.js +0 -0
  293. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/dictionary-workspace.context.d.ts +0 -0
  294. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/dictionary-workspace.context.js +0 -0
  295. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/dictionary-workspace.element.d.ts +0 -0
  296. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/dictionary-workspace.element.js +0 -0
  297. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/manifests.d.ts +0 -0
  298. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/manifests.js +0 -0
  299. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/views/editor/workspace-view-dictionary-editor.element.d.ts +0 -0
  300. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/views/editor/workspace-view-dictionary-editor.element.js +0 -0
  301. /package/dist-cms/packages/{translation → dictionary}/manifests.d.ts +0 -0
  302. /package/dist-cms/packages/{translation → dictionary}/manifests.js +0 -0
  303. /package/dist-cms/packages/{translation → dictionary}/section.manifest.d.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * TinyMCE version 6.5.1 (2023-06-19)
2
+ * TinyMCE version 6.6.0 (2023-07-12)
3
3
  */
4
4
 
5
5
  (function () {
@@ -14627,37 +14627,56 @@
14627
14627
  ].join(','), never);
14628
14628
  };
14629
14629
 
14630
- const getDynamicSource = initialData => {
14630
+ const getDynamicSource = (initialData, stream) => {
14631
14631
  const cachedValue = Cell(initialData.getOr(''));
14632
14632
  return {
14633
14633
  getValue: _frameComponent => cachedValue.get(),
14634
14634
  setValue: (frameComponent, html) => {
14635
14635
  if (cachedValue.get() !== html) {
14636
- set$9(frameComponent.element, 'srcdoc', html);
14636
+ const iframeElement = frameComponent.element;
14637
+ const setSrcdocValue = () => set$9(iframeElement, 'srcdoc', html);
14638
+ if (stream) {
14639
+ const iframe = iframeElement.dom;
14640
+ Optional.from(iframe.contentDocument).fold(setSrcdocValue, doc => {
14641
+ const isElementScrollAtBottom = ({scrollTop, scrollHeight, clientHeight}) => Math.ceil(scrollTop) + clientHeight >= scrollHeight;
14642
+ const isScrollAtBottom = Optional.from(doc.documentElement).forall(isElementScrollAtBottom);
14643
+ doc.open();
14644
+ doc.write(html);
14645
+ doc.close();
14646
+ const win = iframe.contentWindow;
14647
+ const body = doc.body;
14648
+ if (isScrollAtBottom && isNonNullable(win) && isNonNullable(body)) {
14649
+ win.scrollTo(0, body.scrollHeight);
14650
+ }
14651
+ });
14652
+ } else {
14653
+ setSrcdocValue();
14654
+ }
14637
14655
  }
14638
14656
  cachedValue.set(html);
14639
14657
  }
14640
14658
  };
14641
14659
  };
14642
14660
  const renderIFrame = (spec, providersBackstage, initialData) => {
14643
- const isSandbox = spec.sandboxed;
14644
- const isTransparent = spec.transparent;
14645
14661
  const baseClass = 'tox-dialog__iframe';
14662
+ const borderedClass = spec.border ? [`${ baseClass }--bordered`] : [];
14663
+ const opaqueClass = spec.transparent ? [] : [`${ baseClass }--opaque`];
14646
14664
  const attributes = {
14647
14665
  ...spec.label.map(title => ({ title })).getOr({}),
14648
14666
  ...initialData.map(html => ({ srcdoc: html })).getOr({}),
14649
- ...isSandbox ? { sandbox: 'allow-scripts allow-same-origin' } : {}
14667
+ ...spec.sandboxed ? { sandbox: 'allow-scripts allow-same-origin' } : {}
14650
14668
  };
14651
- const sourcing = getDynamicSource(initialData);
14669
+ const sourcing = getDynamicSource(initialData, spec.streamContent);
14652
14670
  const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));
14653
14671
  const factory = newSpec => craft({
14654
14672
  uid: newSpec.uid,
14655
14673
  dom: {
14656
14674
  tag: 'iframe',
14657
14675
  attributes,
14658
- classes: isTransparent ? [baseClass] : [
14676
+ classes: [
14659
14677
  baseClass,
14660
- `${ baseClass }--opaque`
14678
+ ...borderedClass,
14679
+ ...opaqueClass
14661
14680
  ]
14662
14681
  },
14663
14682
  behaviours: derive$1([
@@ -14782,10 +14801,17 @@
14782
14801
  };
14783
14802
 
14784
14803
  const renderLabel$2 = (spec, backstageShared) => {
14804
+ const baseClass = 'tox-label';
14805
+ const centerClass = spec.align === 'center' ? [`${ baseClass }--center`] : [];
14806
+ const endClass = spec.align === 'end' ? [`${ baseClass }--end`] : [];
14785
14807
  const label = {
14786
14808
  dom: {
14787
14809
  tag: 'label',
14788
- classes: ['tox-label']
14810
+ classes: [
14811
+ baseClass,
14812
+ ...centerClass,
14813
+ ...endClass
14814
+ ]
14789
14815
  },
14790
14816
  components: [text$2(backstageShared.providers.translate(spec.label))]
14791
14817
  };
@@ -17367,51 +17393,53 @@
17367
17393
  });
17368
17394
  };
17369
17395
 
17370
- const renderAlertBanner = (spec, providersBackstage) => Container.sketch({
17371
- dom: {
17372
- tag: 'div',
17373
- attributes: { role: 'alert' },
17374
- classes: [
17375
- 'tox-notification',
17376
- 'tox-notification--in',
17377
- `tox-notification--${ spec.level }`
17378
- ]
17379
- },
17380
- components: [
17381
- {
17382
- dom: {
17383
- tag: 'div',
17384
- classes: ['tox-notification__icon']
17385
- },
17386
- components: [Button.sketch({
17387
- dom: {
17388
- tag: 'button',
17389
- classes: [
17390
- 'tox-button',
17391
- 'tox-button--naked',
17392
- 'tox-button--icon'
17393
- ],
17394
- innerHtml: get$2(spec.icon, providersBackstage.icons),
17395
- attributes: { title: providersBackstage.translate(spec.iconTooltip) }
17396
- },
17397
- action: comp => {
17398
- emitWith(comp, formActionEvent, {
17396
+ const renderAlertBanner = (spec, providersBackstage) => {
17397
+ const icon = get$2(spec.icon, providersBackstage.icons);
17398
+ return Container.sketch({
17399
+ dom: {
17400
+ tag: 'div',
17401
+ attributes: { role: 'alert' },
17402
+ classes: [
17403
+ 'tox-notification',
17404
+ 'tox-notification--in',
17405
+ `tox-notification--${ spec.level }`
17406
+ ]
17407
+ },
17408
+ components: [
17409
+ {
17410
+ dom: {
17411
+ tag: 'div',
17412
+ classes: ['tox-notification__icon'],
17413
+ innerHtml: !spec.url ? icon : undefined
17414
+ },
17415
+ components: spec.url ? [Button.sketch({
17416
+ dom: {
17417
+ tag: 'button',
17418
+ classes: [
17419
+ 'tox-button',
17420
+ 'tox-button--naked',
17421
+ 'tox-button--icon'
17422
+ ],
17423
+ innerHtml: icon,
17424
+ attributes: { title: providersBackstage.translate(spec.iconTooltip) }
17425
+ },
17426
+ action: comp => emitWith(comp, formActionEvent, {
17399
17427
  name: 'alert-banner',
17400
17428
  value: spec.url
17401
- });
17402
- },
17403
- buttonBehaviours: derive$1([addFocusableBehaviour()])
17404
- })]
17405
- },
17406
- {
17407
- dom: {
17408
- tag: 'div',
17409
- classes: ['tox-notification__body'],
17410
- innerHtml: providersBackstage.translate(spec.text)
17429
+ }),
17430
+ buttonBehaviours: derive$1([addFocusableBehaviour()])
17431
+ })] : undefined
17432
+ },
17433
+ {
17434
+ dom: {
17435
+ tag: 'div',
17436
+ classes: ['tox-notification__body'],
17437
+ innerHtml: providersBackstage.translate(spec.text)
17438
+ }
17411
17439
  }
17412
- }
17413
- ]
17414
- });
17440
+ ]
17441
+ });
17442
+ };
17415
17443
 
17416
17444
  const set$1 = (element, status) => {
17417
17445
  element.dom.checked = status;
@@ -17692,6 +17720,42 @@
17692
17720
  });
17693
17721
  return () => lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();
17694
17722
  };
17723
+ const getInlineBottomDialogAnchor = (inline, contentAreaElement, lazyBottomAnchorBar, lazyUseEditableAreaAnchor) => {
17724
+ const bubbleSize = 12;
17725
+ const overrides = { maxHeightFunction: expandable$1() };
17726
+ const editableAreaAnchor = () => ({
17727
+ type: 'node',
17728
+ root: getContentContainer(getRootNode(contentAreaElement())),
17729
+ node: Optional.from(contentAreaElement()),
17730
+ bubble: nu$5(bubbleSize, bubbleSize, bubbleAlignments$2),
17731
+ layouts: {
17732
+ onRtl: () => [north],
17733
+ onLtr: () => [north]
17734
+ },
17735
+ overrides
17736
+ });
17737
+ const standardAnchor = () => inline ? {
17738
+ type: 'node',
17739
+ root: getContentContainer(getRootNode(contentAreaElement())),
17740
+ node: Optional.from(contentAreaElement()),
17741
+ bubble: nu$5(0, -getOuter$2(contentAreaElement()), bubbleAlignments$2),
17742
+ layouts: {
17743
+ onRtl: () => [north$2],
17744
+ onLtr: () => [north$2]
17745
+ },
17746
+ overrides
17747
+ } : {
17748
+ type: 'hotspot',
17749
+ hotspot: lazyBottomAnchorBar(),
17750
+ bubble: nu$5(0, 0, bubbleAlignments$2),
17751
+ layouts: {
17752
+ onRtl: () => [north$2],
17753
+ onLtr: () => [north$2]
17754
+ },
17755
+ overrides
17756
+ };
17757
+ return () => lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();
17758
+ };
17695
17759
  const getBannerAnchor = (contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) => {
17696
17760
  const editableAreaAnchor = () => ({
17697
17761
  type: 'node',
@@ -17735,13 +17799,14 @@
17735
17799
  root: bodyElement(),
17736
17800
  node: element
17737
17801
  });
17738
- const getAnchors = (editor, lazyAnchorbar, isToolbarTop) => {
17802
+ const getAnchors = (editor, lazyAnchorbar, lazyBottomAnchorBar, isToolbarTop) => {
17739
17803
  const useFixedToolbarContainer = useFixedContainer(editor);
17740
17804
  const bodyElement = () => SugarElement.fromDom(editor.getBody());
17741
17805
  const contentAreaElement = () => SugarElement.fromDom(editor.getContentAreaContainer());
17742
17806
  const lazyUseEditableAreaAnchor = () => useFixedToolbarContainer || !isToolbarTop();
17743
17807
  return {
17744
17808
  inlineDialog: getInlineDialogAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),
17809
+ inlineBottomDialog: getInlineBottomDialogAnchor(editor.inline, contentAreaElement, lazyBottomAnchorBar, lazyUseEditableAreaAnchor),
17745
17810
  banner: getBannerAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),
17746
17811
  cursor: getCursorAnchor(editor, bodyElement),
17747
17812
  node: getNodeAnchor$1(bodyElement)
@@ -18221,7 +18286,7 @@
18221
18286
  getUrlPicker: filetype => getUrlPicker(editor, filetype)
18222
18287
  });
18223
18288
 
18224
- const init$6 = (lazySinks, editor, lazyAnchorbar) => {
18289
+ const init$6 = (lazySinks, editor, lazyAnchorbar, lazyBottomAnchorBar) => {
18225
18290
  const contextMenuState = Cell(false);
18226
18291
  const toolbar = HeaderBackstage(editor);
18227
18292
  const providers = {
@@ -18240,7 +18305,7 @@
18240
18305
  const commonBackstage = {
18241
18306
  shared: {
18242
18307
  providers,
18243
- anchors: getAnchors(editor, lazyAnchorbar, toolbar.isPositionedAtTop),
18308
+ anchors: getAnchors(editor, lazyAnchorbar, lazyBottomAnchorBar, toolbar.isPositionedAtTop),
18244
18309
  header: toolbar
18245
18310
  },
18246
18311
  urlinput,
@@ -19588,11 +19653,13 @@
19588
19653
  }
19589
19654
  state.clear();
19590
19655
  };
19656
+ const isBlocked = (component, blockingConfig, blockingState) => blockingState.isBlocked();
19591
19657
 
19592
19658
  var BlockingApis = /*#__PURE__*/Object.freeze({
19593
19659
  __proto__: null,
19594
19660
  block: block,
19595
- unblock: unblock
19661
+ unblock: unblock,
19662
+ isBlocked: isBlocked
19596
19663
  });
19597
19664
 
19598
19665
  var BlockingSchema = [
@@ -21186,7 +21253,7 @@
21186
21253
  },
21187
21254
  tools: {
21188
21255
  title: 'Tools',
21189
- items: 'spellchecker spellcheckerlanguage | autocorrect capitalization | a11ycheck code typography wordcount addtemplate'
21256
+ items: 'aidialog aishortcuts | spellchecker spellcheckerlanguage | autocorrect capitalization | a11ycheck code typography wordcount addtemplate'
21190
21257
  },
21191
21258
  table: {
21192
21259
  title: 'Table',
@@ -22548,6 +22615,13 @@
22548
22615
  'redo'
22549
22616
  ]
22550
22617
  },
22618
+ {
22619
+ name: 'ai',
22620
+ items: [
22621
+ 'aidialog',
22622
+ 'aishortcuts'
22623
+ ]
22624
+ },
22551
22625
  {
22552
22626
  name: 'styles',
22553
22627
  items: ['styles']
@@ -25816,16 +25890,23 @@
25816
25890
  classes: ['tox-anchorbar']
25817
25891
  }
25818
25892
  });
25893
+ const memBottomAnchorBar = record({
25894
+ dom: {
25895
+ tag: 'div',
25896
+ classes: ['tox-bottom-anchorbar']
25897
+ }
25898
+ });
25819
25899
  const lazyHeader = () => lazyUiRefs.mainUi.get().map(ui => ui.outerContainer).bind(OuterContainer.getHeader);
25820
25900
  const lazyDialogSinkResult = () => Result.fromOption(lazyUiRefs.dialogUi.get().map(ui => ui.sink), 'UI has not been rendered');
25821
25901
  const lazyPopupSinkResult = () => Result.fromOption(lazyUiRefs.popupUi.get().map(ui => ui.sink), '(popup) UI has not been rendered');
25822
25902
  const lazyAnchorBar = lazyUiRefs.lazyGetInOuterOrDie('anchor bar', memAnchorBar.getOpt);
25903
+ const lazyBottomAnchorBar = lazyUiRefs.lazyGetInOuterOrDie('bottom anchor bar', memBottomAnchorBar.getOpt);
25823
25904
  const lazyToolbar = lazyUiRefs.lazyGetInOuterOrDie('toolbar', OuterContainer.getToolbar);
25824
25905
  const lazyThrobber = lazyUiRefs.lazyGetInOuterOrDie('throbber', OuterContainer.getThrobber);
25825
25906
  const backstages = init$6({
25826
25907
  popup: lazyPopupSinkResult,
25827
25908
  dialog: lazyDialogSinkResult
25828
- }, editor, lazyAnchorBar);
25909
+ }, editor, lazyAnchorBar, lazyBottomAnchorBar);
25829
25910
  const makeHeaderPart = () => {
25830
25911
  const verticalDirAttributes = { attributes: { [Attribute]: isToolbarBottom ? AttributeValue.BottomToTop : AttributeValue.TopToBottom } };
25831
25912
  const partMenubar = OuterContainer.parts.menubar({
@@ -26008,7 +26089,10 @@
26008
26089
  const editorContainer = OuterContainer.parts.editorContainer({
26009
26090
  components: flatten([
26010
26091
  editorComponents,
26011
- isInline ? [] : statusbar.toArray()
26092
+ isInline ? [] : [
26093
+ memBottomAnchorBar.asSpec(),
26094
+ ...statusbar.toArray()
26095
+ ]
26012
26096
  ])
26013
26097
  });
26014
26098
  const isHidden = isDistractionFree(editor);
@@ -26244,7 +26328,7 @@
26244
26328
  behaviours: derive$1([
26245
26329
  Focusing.config({}),
26246
26330
  config('dialog-blocker-events', [runOnSource(focusin(), () => {
26247
- Keying.focusIn(dialog);
26331
+ Blocking.isBlocked(dialog) ? noop() : Keying.focusIn(dialog);
26248
26332
  })])
26249
26333
  ])
26250
26334
  });
@@ -26260,7 +26344,7 @@
26260
26344
  });
26261
26345
  };
26262
26346
  const getDialogBody = dialog => getPartOrDie(dialog, detail, 'body');
26263
- const getDialogFooter = dialog => getPartOrDie(dialog, detail, 'footer');
26347
+ const getDialogFooter = dialog => getPart(dialog, detail, 'footer');
26264
26348
  const setBusy = (dialog, getBusySpec) => {
26265
26349
  Blocking.block(dialog, getBusySpec);
26266
26350
  };
@@ -26484,7 +26568,9 @@
26484
26568
  const htmlPanelSchema = objOf(htmlPanelFields);
26485
26569
 
26486
26570
  const iframeFields = formComponentWithLabelFields.concat([
26571
+ defaultedBoolean('border', false),
26487
26572
  defaultedBoolean('sandboxed', true),
26573
+ defaultedBoolean('streamContent', false),
26488
26574
  defaultedBoolean('transparent', true)
26489
26575
  ]);
26490
26576
  const iframeSchema = objOf(iframeFields);
@@ -26510,7 +26596,12 @@
26510
26596
  const createLabelFields = itemsField => [
26511
26597
  type,
26512
26598
  label,
26513
- itemsField
26599
+ itemsField,
26600
+ defaultedStringEnum('align', 'start', [
26601
+ 'start',
26602
+ 'center',
26603
+ 'end'
26604
+ ])
26514
26605
  ];
26515
26606
 
26516
26607
  const listBoxSingleItemFields = [
@@ -26676,7 +26767,7 @@
26676
26767
  tabpanel: tabPanelSchema
26677
26768
  })),
26678
26769
  defaultedString('size', 'normal'),
26679
- requiredArrayOf('buttons', dialogButtonSchema),
26770
+ defaultedArrayOf('buttons', [], dialogButtonSchema),
26680
26771
  defaulted('initialData', {}),
26681
26772
  defaultedFunction('onAction', noop),
26682
26773
  defaultedFunction('onChange', noop),
@@ -29111,7 +29202,7 @@
29111
29202
  modalBehaviours: derive$1([
29112
29203
  Focusing.config({}),
29113
29204
  config('dialog-events', spec.dialogEvents.concat([runOnSource(focusin(), (comp, _se) => {
29114
- Keying.focusIn(comp);
29205
+ Blocking.isBlocked(comp) ? noop() : Keying.focusIn(comp);
29115
29206
  })])),
29116
29207
  config('scroll-lock', [
29117
29208
  runOnAttached(() => {
@@ -29215,7 +29306,7 @@
29215
29306
  title: backstage.shared.providers.translate(title),
29216
29307
  draggable: backstage.dialog.isDraggableModal()
29217
29308
  }, dialogId, backstage.shared.providers);
29218
- const getBusySpec = (message, bs, providers) => ({
29309
+ const getBusySpec = (message, bs, providers, headerHeight) => ({
29219
29310
  dom: {
29220
29311
  tag: 'div',
29221
29312
  classes: ['tox-dialog__busy-spinner'],
@@ -29224,7 +29315,7 @@
29224
29315
  left: '0px',
29225
29316
  right: '0px',
29226
29317
  bottom: '0px',
29227
- top: '0px',
29318
+ top: `${ headerHeight.getOr(0) }px`,
29228
29319
  position: 'absolute'
29229
29320
  }
29230
29321
  },
@@ -29234,7 +29325,8 @@
29234
29325
  const getEventExtras = (lazyDialog, providers, extra) => ({
29235
29326
  onClose: () => extra.closeWindow(),
29236
29327
  onBlock: blockEvent => {
29237
- ModalDialog.setBusy(lazyDialog(), (_comp, bs) => getBusySpec(blockEvent.message, bs, providers));
29328
+ const headerHeight = descendant(lazyDialog().element, '.tox-dialog__header').map(header => get$d(header));
29329
+ ModalDialog.setBusy(lazyDialog(), (_comp, bs) => getBusySpec(blockEvent.message, bs, providers, headerHeight));
29238
29330
  },
29239
29331
  onUnblock: () => {
29240
29332
  ModalDialog.setIdle(lazyDialog());
@@ -29450,7 +29542,7 @@
29450
29542
  const form = Composing.getCurrent(access.getFormWrapper()).getOr(access.getFormWrapper());
29451
29543
  return Form.getField(form, name).orThunk(() => {
29452
29544
  const footer = access.getFooter();
29453
- const footerState = Reflecting.getState(footer).get();
29545
+ const footerState = footer.bind(f => Reflecting.getState(f).get());
29454
29546
  return footerState.bind(f => f.lookupByName(name));
29455
29547
  });
29456
29548
  } else {
@@ -29577,14 +29669,14 @@
29577
29669
  }, dialogId, backstage);
29578
29670
  const storedMenuButtons = mapMenuButtons(internalDialog.buttons);
29579
29671
  const objOfCells = extractCellsToObject(storedMenuButtons);
29580
- const footer = renderModalFooter({ buttons: storedMenuButtons }, dialogId, backstage);
29672
+ const footer = someIf(storedMenuButtons.length !== 0, renderModalFooter({ buttons: storedMenuButtons }, dialogId, backstage));
29581
29673
  const dialogEvents = SilverDialogEvents.initDialog(() => instanceApi, getEventExtras(() => dialog, backstage.shared.providers, extra), backstage.shared.getSink);
29582
29674
  const dialogSize = getDialogSizeClasses(internalDialog.size);
29583
29675
  const spec = {
29584
29676
  id: dialogId,
29585
29677
  header,
29586
29678
  body,
29587
- footer: Optional.some(footer),
29679
+ footer,
29588
29680
  extraClasses: dialogSize,
29589
29681
  extraBehaviours: [],
29590
29682
  extraStyles: {}
@@ -29622,11 +29714,20 @@
29622
29714
  };
29623
29715
  };
29624
29716
 
29625
- const renderInlineDialog = (dialogInit, extra, backstage, ariaAttrs) => {
29717
+ const getInlineDialogSizeClass = size => {
29718
+ switch (size) {
29719
+ case 'medium':
29720
+ return Optional.some('tox-dialog--width-md');
29721
+ default:
29722
+ return Optional.none();
29723
+ }
29724
+ };
29725
+ const renderInlineDialog = (dialogInit, extra, backstage, ariaAttrs = false) => {
29626
29726
  const dialogId = generate$6('dialog');
29627
29727
  const dialogLabelId = generate$6('dialog-label');
29628
29728
  const dialogContentId = generate$6('dialog-content');
29629
29729
  const internalDialog = dialogInit.internalDialog;
29730
+ const dialogSize = getInlineDialogSizeClass(internalDialog.size);
29630
29731
  const updateState = (_comp, incoming) => Optional.some(incoming);
29631
29732
  const memHeader = record(renderInlineHeader({
29632
29733
  title: internalDialog.title,
@@ -29638,10 +29739,13 @@
29638
29739
  }, dialogId, dialogContentId, backstage, ariaAttrs));
29639
29740
  const storagedMenuButtons = mapMenuButtons(internalDialog.buttons);
29640
29741
  const objOfCells = extractCellsToObject(storagedMenuButtons);
29641
- const memFooter = record(renderInlineFooter({ buttons: storagedMenuButtons }, dialogId, backstage));
29742
+ const optMemFooter = someIf(storagedMenuButtons.length !== 0, record(renderInlineFooter({ buttons: storagedMenuButtons }, dialogId, backstage)));
29642
29743
  const dialogEvents = SilverDialogEvents.initDialog(() => instanceApi, {
29643
29744
  onBlock: event => {
29644
- Blocking.block(dialog, (_comp, bs) => getBusySpec(event.message, bs, backstage.shared.providers));
29745
+ Blocking.block(dialog, (_comp, bs) => {
29746
+ const headerHeight = memHeader.getOpt(dialog).map(dialog => get$d(dialog.element));
29747
+ return getBusySpec(event.message, bs, backstage.shared.providers, headerHeight);
29748
+ });
29645
29749
  },
29646
29750
  onUnblock: () => {
29647
29751
  Blocking.unblock(dialog);
@@ -29654,7 +29758,8 @@
29654
29758
  tag: 'div',
29655
29759
  classes: [
29656
29760
  'tox-dialog',
29657
- inlineClass
29761
+ inlineClass,
29762
+ ...dialogSize.toArray()
29658
29763
  ],
29659
29764
  attributes: {
29660
29765
  role: 'dialog',
@@ -29698,7 +29803,7 @@
29698
29803
  components: [
29699
29804
  memHeader.asSpec(),
29700
29805
  memBody.asSpec(),
29701
- memFooter.asSpec()
29806
+ ...optMemFooter.map(memFooter => memFooter.asSpec()).toArray()
29702
29807
  ]
29703
29808
  });
29704
29809
  const toggleFullscreen = () => {
@@ -29715,7 +29820,7 @@
29715
29820
  const instanceApi = getDialogApi({
29716
29821
  getId: constant$1(dialogId),
29717
29822
  getRoot: constant$1(dialog),
29718
- getFooter: () => memFooter.get(dialog),
29823
+ getFooter: () => optMemFooter.map(memFooter => memFooter.get(dialog)),
29719
29824
  getBody: () => memBody.get(dialog),
29720
29825
  getFormWrapper: () => {
29721
29826
  const body = memBody.get(dialog);
@@ -30004,13 +30109,16 @@
30004
30109
  const alertDialog = setup$2(extras.backstages.dialog);
30005
30110
  const confirmDialog = setup$1(extras.backstages.dialog);
30006
30111
  const open = (config, params, closeWindow) => {
30007
- if (params !== undefined && params.inline === 'toolbar') {
30008
- return openInlineDialog(config, extras.backstages.popup.shared.anchors.inlineDialog(), closeWindow, params.ariaAttrs);
30009
- } else if (params !== undefined && params.inline === 'cursor') {
30010
- return openInlineDialog(config, extras.backstages.popup.shared.anchors.cursor(), closeWindow, params.ariaAttrs);
30011
- } else {
30012
- return openModalDialog(config, closeWindow);
30112
+ if (!isUndefined(params)) {
30113
+ if (params.inline === 'toolbar') {
30114
+ return openInlineDialog(config, extras.backstages.popup.shared.anchors.inlineDialog(), closeWindow, params);
30115
+ } else if (params.inline === 'bottom') {
30116
+ return openBottomInlineDialog(config, extras.backstages.popup.shared.anchors.inlineBottomDialog(), closeWindow, params);
30117
+ } else if (params.inline === 'cursor') {
30118
+ return openInlineDialog(config, extras.backstages.popup.shared.anchors.cursor(), closeWindow, params);
30119
+ }
30013
30120
  }
30121
+ return openModalDialog(config, closeWindow);
30014
30122
  };
30015
30123
  const openUrl = (config, closeWindow) => openModalUrlDialog(config, closeWindow);
30016
30124
  const openModalUrlDialog = (config, closeWindow) => {
@@ -30047,7 +30155,7 @@
30047
30155
  };
30048
30156
  return DialogManager.open(factory, config);
30049
30157
  };
30050
- const openInlineDialog = (config$1, anchor, closeWindow, ariaAttrs = false) => {
30158
+ const openInlineDialog = (config$1, anchor, closeWindow, windowParams) => {
30051
30159
  const factory = (contents, internalInitialData, dataValidator) => {
30052
30160
  const initialData = validateData(internalInitialData, dataValidator);
30053
30161
  const inlineDialog = value$2();
@@ -30069,14 +30177,14 @@
30069
30177
  inlineDialog.clear();
30070
30178
  closeWindow(dialogUi.instanceApi);
30071
30179
  }
30072
- }, extras.backstages.popup, ariaAttrs);
30180
+ }, extras.backstages.popup, windowParams.ariaAttrs);
30073
30181
  const inlineDialogComp = build$1(InlineView.sketch({
30074
30182
  lazySink: extras.backstages.popup.shared.getSink,
30075
30183
  dom: {
30076
30184
  tag: 'div',
30077
30185
  classes: []
30078
30186
  },
30079
- fireDismissalEventInstead: {},
30187
+ fireDismissalEventInstead: windowParams.persistent ? { event: 'doNotDismissYet' } : {},
30080
30188
  ...isToolbarLocationTop ? {} : { fireRepositionEventInstead: {} },
30081
30189
  inlineBehaviours: derive$1([
30082
30190
  config('window-manager-inline-events', [run$1(dismissRequested(), (_comp, _se) => {
@@ -30103,6 +30211,92 @@
30103
30211
  };
30104
30212
  return DialogManager.open(factory, config$1);
30105
30213
  };
30214
+ const openBottomInlineDialog = (config$1, anchor, closeWindow, windowParams) => {
30215
+ const factory = (contents, internalInitialData, dataValidator) => {
30216
+ const initialData = validateData(internalInitialData, dataValidator);
30217
+ const inlineDialog = value$2();
30218
+ const isToolbarLocationTop = extras.backstages.popup.shared.header.isPositionedAtTop();
30219
+ const dialogInit = {
30220
+ dataValidator,
30221
+ initialData,
30222
+ internalDialog: contents
30223
+ };
30224
+ const refreshDocking = () => inlineDialog.on(dialog => {
30225
+ InlineView.reposition(dialog);
30226
+ Docking.refresh(dialog);
30227
+ });
30228
+ const dialogUi = renderInlineDialog(dialogInit, {
30229
+ redial: DialogManager.redial,
30230
+ closeWindow: () => {
30231
+ inlineDialog.on(InlineView.hide);
30232
+ editor.off('ResizeEditor ScrollWindow ElementScroll', refreshDocking);
30233
+ inlineDialog.clear();
30234
+ closeWindow(dialogUi.instanceApi);
30235
+ }
30236
+ }, extras.backstages.popup, windowParams.ariaAttrs);
30237
+ const inlineDialogComp = build$1(InlineView.sketch({
30238
+ lazySink: extras.backstages.popup.shared.getSink,
30239
+ dom: {
30240
+ tag: 'div',
30241
+ classes: []
30242
+ },
30243
+ fireDismissalEventInstead: windowParams.persistent ? { event: 'doNotDismissYet' } : {},
30244
+ ...isToolbarLocationTop ? {} : { fireRepositionEventInstead: {} },
30245
+ inlineBehaviours: derive$1([
30246
+ config('window-manager-inline-events', [run$1(dismissRequested(), (_comp, _se) => {
30247
+ emit(dialogUi.dialog, formCancelEvent);
30248
+ })]),
30249
+ Docking.config({
30250
+ contextual: {
30251
+ lazyContext: () => Optional.some(box$1(SugarElement.fromDom(editor.getContentAreaContainer()))),
30252
+ fadeInClass: 'tox-dialog-dock-fadein',
30253
+ fadeOutClass: 'tox-dialog-dock-fadeout',
30254
+ transitionClass: 'tox-dialog-dock-transition'
30255
+ },
30256
+ modes: [
30257
+ 'top',
30258
+ 'bottom'
30259
+ ],
30260
+ lazyViewport: comp => {
30261
+ const optScrollingContext = detectWhenSplitUiMode(editor, comp.element);
30262
+ return optScrollingContext.map(sc => {
30263
+ const combinedBounds = getBoundsFrom(sc);
30264
+ return {
30265
+ bounds: combinedBounds,
30266
+ optScrollEnv: Optional.some({
30267
+ currentScrollTop: sc.element.dom.scrollTop,
30268
+ scrollElmTop: absolute$3(sc.element).top
30269
+ })
30270
+ };
30271
+ }).getOrThunk(() => ({
30272
+ bounds: win(),
30273
+ optScrollEnv: Optional.none()
30274
+ }));
30275
+ }
30276
+ })
30277
+ ]),
30278
+ isExtraPart: (_comp, target) => isAlertOrConfirmDialog(target)
30279
+ }));
30280
+ inlineDialog.set(inlineDialogComp);
30281
+ const getInlineDialogBounds = () => {
30282
+ return extras.backstages.popup.shared.getSink().toOptional().bind(s => {
30283
+ const optScrollingContext = detectWhenSplitUiMode(editor, s.element);
30284
+ const margin = 15;
30285
+ const bounds$1 = optScrollingContext.map(sc => getBoundsFrom(sc)).getOr(win());
30286
+ const contentAreaContainer = box$1(SugarElement.fromDom(editor.getContentAreaContainer()));
30287
+ const constrainedBounds = constrain(contentAreaContainer, bounds$1);
30288
+ return Optional.some(bounds(constrainedBounds.x, constrainedBounds.y, constrainedBounds.width, constrainedBounds.height - margin));
30289
+ });
30290
+ };
30291
+ InlineView.showWithinBounds(inlineDialogComp, premade(dialogUi.dialog), { anchor }, getInlineDialogBounds);
30292
+ Docking.refresh(inlineDialogComp);
30293
+ editor.on('ResizeEditor ScrollWindow ElementScroll', refreshDocking);
30294
+ dialogUi.instanceApi.setData(initialData);
30295
+ Keying.focusIn(dialogUi.dialog);
30296
+ return dialogUi.instanceApi;
30297
+ };
30298
+ return DialogManager.open(factory, config$1);
30299
+ };
30106
30300
  const confirm = (message, callback) => {
30107
30301
  confirmDialog.open(message, callback);
30108
30302
  };