@umbraco-cms/backoffice 17.1.0 → 17.2.0-rc

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 (629) hide show
  1. package/{dist-cms/custom-elements.json → custom-elements.json} +817 -721
  2. package/dist-cms/apps/app/app.element.js +1 -0
  3. package/dist-cms/apps/backoffice/components/backoffice-header-logo.element.js +4 -5
  4. package/dist-cms/assets/lang/ar.js +3 -2
  5. package/dist-cms/assets/lang/bs.js +3 -2
  6. package/dist-cms/assets/lang/cs.js +2 -1
  7. package/dist-cms/assets/lang/cy.js +3 -2
  8. package/dist-cms/assets/lang/da.js +4 -2
  9. package/dist-cms/assets/lang/de.js +2 -1
  10. package/dist-cms/assets/lang/en.js +9 -2
  11. package/dist-cms/assets/lang/es.js +5 -1
  12. package/dist-cms/assets/lang/fr.js +2 -1
  13. package/dist-cms/assets/lang/he.js +2 -1
  14. package/dist-cms/assets/lang/hr.js +3 -2
  15. package/dist-cms/assets/lang/it.js +2 -1
  16. package/dist-cms/assets/lang/ja.js +2 -1
  17. package/dist-cms/assets/lang/ko.js +2 -1
  18. package/dist-cms/assets/lang/nb.js +2 -1
  19. package/dist-cms/assets/lang/nl.js +2 -1
  20. package/dist-cms/assets/lang/pl.js +2 -1
  21. package/dist-cms/assets/lang/pt-br.js +2 -1
  22. package/dist-cms/assets/lang/pt.js +3 -2
  23. package/dist-cms/assets/lang/ru.js +2 -1
  24. package/dist-cms/assets/lang/sv.js +2 -1
  25. package/dist-cms/assets/lang/tr.js +2 -1
  26. package/dist-cms/assets/lang/uk.js +2 -1
  27. package/dist-cms/assets/lang/vi.js +3 -2
  28. package/dist-cms/assets/lang/zh-tw.js +2 -1
  29. package/dist-cms/assets/lang/zh.js +2 -1
  30. package/dist-cms/external/uui/package.json +2 -2
  31. package/dist-cms/libs/class-api/package.json +8 -0
  32. package/dist-cms/libs/class-api/vite.config.d.ts +2 -0
  33. package/dist-cms/libs/class-api/vite.config.js +15 -0
  34. package/dist-cms/libs/context-api/package.json +8 -0
  35. package/dist-cms/libs/context-api/vite.config.d.ts +2 -0
  36. package/dist-cms/libs/context-api/vite.config.js +15 -0
  37. package/dist-cms/libs/context-proxy/package.json +8 -0
  38. package/dist-cms/libs/context-proxy/vite.config.d.ts +2 -0
  39. package/dist-cms/libs/context-proxy/vite.config.js +15 -0
  40. package/dist-cms/libs/controller-api/package.json +8 -0
  41. package/dist-cms/libs/controller-api/vite.config.d.ts +2 -0
  42. package/dist-cms/libs/controller-api/vite.config.js +15 -0
  43. package/dist-cms/libs/element-api/package.json +8 -0
  44. package/dist-cms/libs/element-api/vite.config.d.ts +2 -0
  45. package/dist-cms/libs/element-api/vite.config.js +15 -0
  46. package/dist-cms/libs/extension-api/functions/load-manifest-api.function.js +9 -1
  47. package/dist-cms/libs/extension-api/functions/load-manifest-element.function.js +9 -1
  48. package/dist-cms/libs/extension-api/functions/load-manifest-plain-js.function.d.ts +2 -2
  49. package/dist-cms/libs/extension-api/functions/load-manifest-plain-js.function.js +7 -4
  50. package/dist-cms/libs/extension-api/package.json +8 -0
  51. package/dist-cms/libs/extension-api/types/utils.d.ts +4 -4
  52. package/dist-cms/libs/extension-api/vite.config.d.ts +2 -0
  53. package/dist-cms/libs/extension-api/vite.config.js +15 -0
  54. package/dist-cms/libs/localization-api/package.json +8 -0
  55. package/dist-cms/libs/localization-api/vite.config.d.ts +2 -0
  56. package/dist-cms/libs/localization-api/vite.config.js +15 -0
  57. package/dist-cms/libs/observable-api/package.json +8 -0
  58. package/dist-cms/libs/observable-api/vite.config.d.ts +2 -0
  59. package/dist-cms/libs/observable-api/vite.config.js +15 -0
  60. package/dist-cms/packages/block/block/conditions/manifests.js +6 -3
  61. package/dist-cms/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.js +1 -1
  62. package/dist-cms/packages/block/block/workspace/block-element-property-dataset.context.js +0 -6
  63. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.d.ts +1 -0
  64. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.js +11 -5
  65. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.d.ts +1 -0
  66. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.js +11 -6
  67. package/dist-cms/packages/block/block-grid/components/block-grid-area/block-grid-area.element.d.ts +3 -3
  68. package/dist-cms/packages/block/block-grid/components/block-grid-area/block-grid-area.element.js +5 -5
  69. package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.context.js +5 -1
  70. package/dist-cms/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.js +2 -2
  71. package/dist-cms/packages/block/block-list/property-editors/block-list-editor/manifests.js +6 -6
  72. package/dist-cms/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.js +6 -1
  73. package/dist-cms/packages/block/block-rte/context/block-rte-entry.context.d.ts +1 -0
  74. package/dist-cms/packages/block/block-rte/context/block-rte-entry.context.js +3 -15
  75. package/dist-cms/packages/block/block-rte/context/block-rte-manager.context.js +0 -3
  76. package/dist-cms/packages/block/block-rte/types.d.ts +1 -0
  77. package/dist-cms/packages/block/block-single/property-editors/block-single-editor/manifests.js +2 -2
  78. package/dist-cms/packages/block/block-single/property-editors/block-single-editor/property-editor-ui-block-single.element.js +6 -1
  79. package/dist-cms/packages/clipboard/clipboard-entry/detail/manifests.js +2 -1
  80. package/dist-cms/packages/clipboard/clipboard-entry/item/manifests.js +2 -1
  81. package/dist-cms/packages/content/content/collection/workspace-has-content-collection/manifests.js +2 -1
  82. package/dist-cms/packages/content/content/conditions/has-properties/content-has-properties.condition.manifest.js +2 -1
  83. package/dist-cms/packages/content/content/global-components/content-workspace-property.element.js +10 -15
  84. package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.d.ts +2 -2
  85. package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.js +24 -14
  86. package/dist-cms/packages/content/content/workspace/content-detail-workspace-type-transform.controller.js +73 -29
  87. package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.d.ts +1 -0
  88. package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.js +17 -9
  89. package/dist-cms/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.d.ts +6 -0
  90. package/dist-cms/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.js +26 -1
  91. package/dist-cms/packages/content/content-type/structure/content-type-property-structure-helper.class.js +21 -1
  92. package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.js +1 -1
  93. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-properties.element.js +13 -2
  94. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-property.element.js +13 -15
  95. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-tab.element.js +13 -3
  96. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor.element.d.ts +1 -0
  97. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor.element.js +12 -6
  98. package/dist-cms/packages/core/auth/auth.context.js +15 -12
  99. package/dist-cms/packages/core/backend-api/types.gen.d.ts +33 -0
  100. package/dist-cms/packages/core/collection/action/collection-action-button.element.js +1 -1
  101. package/dist-cms/packages/core/collection/action/create/collection-create-action.element.js +1 -1
  102. package/dist-cms/packages/core/collection/bulk-action/collection-bulk-action.manager.d.ts +9 -4
  103. package/dist-cms/packages/core/collection/bulk-action/collection-bulk-action.manager.js +39 -9
  104. package/dist-cms/packages/core/collection/collection-item-picker-modal/collection-item-picker-modal.element.d.ts +2 -0
  105. package/dist-cms/packages/core/collection/collection-item-picker-modal/collection-item-picker-modal.element.js +72 -16
  106. package/dist-cms/packages/core/collection/collection-item-picker-modal/types.d.ts +2 -1
  107. package/dist-cms/packages/core/collection/collection.element.d.ts +1 -0
  108. package/dist-cms/packages/core/collection/collection.element.js +6 -0
  109. package/dist-cms/packages/core/collection/components/collection-filter-field.element.js +2 -2
  110. package/dist-cms/packages/core/collection/components/collection-selection-actions.element.d.ts +1 -0
  111. package/dist-cms/packages/core/collection/components/collection-selection-actions.element.js +9 -0
  112. package/dist-cms/packages/core/collection/components/collection-toolbar.element.d.ts +1 -0
  113. package/dist-cms/packages/core/collection/components/collection-toolbar.element.js +4 -0
  114. package/dist-cms/packages/core/collection/conditions/collection-has-items.condition.d.ts +7 -0
  115. package/dist-cms/packages/core/collection/conditions/collection-has-items.condition.js +12 -0
  116. package/dist-cms/packages/core/collection/conditions/constants.d.ts +1 -0
  117. package/dist-cms/packages/core/collection/conditions/constants.js +1 -0
  118. package/dist-cms/packages/core/collection/conditions/index.d.ts +1 -0
  119. package/dist-cms/packages/core/collection/conditions/index.js +1 -0
  120. package/dist-cms/packages/core/collection/conditions/manifests.js +10 -2
  121. package/dist-cms/packages/core/collection/conditions/types.d.ts +4 -1
  122. package/dist-cms/packages/core/collection/default/collection-default.context.d.ts +7 -4
  123. package/dist-cms/packages/core/collection/default/collection-default.context.js +36 -17
  124. package/dist-cms/packages/core/collection/filter/manifests.d.ts +2 -0
  125. package/dist-cms/packages/core/collection/filter/manifests.js +2 -0
  126. package/dist-cms/packages/core/collection/filter/text/collection-text-filter-api.interface.d.ts +13 -0
  127. package/dist-cms/packages/core/collection/filter/text/collection-text-filter-api.interface.js +1 -0
  128. package/dist-cms/packages/core/collection/filter/text/collection-text-filter-element.interface.d.ts +7 -0
  129. package/dist-cms/packages/core/collection/filter/text/collection-text-filter-element.interface.js +1 -0
  130. package/dist-cms/packages/core/collection/filter/text/collection-text-filter.extension.d.ts +11 -0
  131. package/dist-cms/packages/core/collection/filter/text/collection-text-filter.extension.js +1 -0
  132. package/dist-cms/packages/core/collection/filter/text/default-collection-text-filter.api.d.ts +25 -0
  133. package/dist-cms/packages/core/collection/filter/text/default-collection-text-filter.api.js +47 -0
  134. package/dist-cms/packages/core/collection/filter/text/default-collection-text-filter.element.d.ts +32 -0
  135. package/dist-cms/packages/core/collection/filter/text/default-collection-text-filter.element.js +73 -0
  136. package/dist-cms/packages/core/collection/filter/text/manifests.d.ts +2 -0
  137. package/dist-cms/packages/core/collection/filter/text/manifests.js +14 -0
  138. package/dist-cms/packages/core/collection/filter/text/types.d.ts +3 -0
  139. package/dist-cms/packages/core/collection/filter/text/types.js +1 -0
  140. package/dist-cms/packages/core/collection/filter/types.d.ts +1 -0
  141. package/dist-cms/packages/core/collection/filter/types.js +1 -0
  142. package/dist-cms/packages/core/collection/index.d.ts +1 -0
  143. package/dist-cms/packages/core/collection/index.js +1 -0
  144. package/dist-cms/packages/core/collection/item/entity-collection-item-card/default-collection-item-card.element.d.ts +5 -2
  145. package/dist-cms/packages/core/collection/item/entity-collection-item-card/default-collection-item-card.element.js +11 -5
  146. package/dist-cms/packages/core/collection/manifests.js +3 -1
  147. package/dist-cms/packages/core/collection/selection/collection-selection.manager.d.ts +17 -0
  148. package/dist-cms/packages/core/collection/selection/collection-selection.manager.js +29 -0
  149. package/dist-cms/packages/core/collection/selection/types.d.ts +7 -0
  150. package/dist-cms/packages/core/collection/selection/types.js +1 -0
  151. package/dist-cms/packages/core/collection/types.d.ts +9 -1
  152. package/dist-cms/packages/core/collection/view/card/card-collection-view.element.js +18 -5
  153. package/dist-cms/packages/core/collection/view/index.d.ts +1 -0
  154. package/dist-cms/packages/core/collection/view/index.js +1 -0
  155. package/dist-cms/packages/core/collection/view/ref/ref-collection-view.element.js +10 -2
  156. package/dist-cms/packages/core/collection/view/umb-collection-view-element-base.d.ts +13 -0
  157. package/dist-cms/packages/core/collection/view/umb-collection-view-element-base.js +33 -0
  158. package/dist-cms/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.d.ts +3 -1
  159. package/dist-cms/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.js +54 -24
  160. package/dist-cms/packages/core/components/body-layout/body-layout.element.js +1 -1
  161. package/dist-cms/packages/core/components/code-block/code-block.element.js +1 -0
  162. package/dist-cms/packages/core/components/figure-card/figure-card.element.d.ts +33 -0
  163. package/dist-cms/packages/core/components/figure-card/figure-card.element.js +241 -0
  164. package/dist-cms/packages/core/components/index.d.ts +1 -0
  165. package/dist-cms/packages/core/components/index.js +1 -0
  166. package/dist-cms/packages/core/components/input-with-alias/input-with-alias.element.js +2 -3
  167. package/dist-cms/packages/core/components/split-panel/split-panel.element.js +2 -3
  168. package/dist-cms/packages/core/components/table/table.element.d.ts +14 -2
  169. package/dist-cms/packages/core/components/table/table.element.js +46 -18
  170. package/dist-cms/packages/core/culture/manifests.d.ts +1 -1
  171. package/dist-cms/packages/core/entity/entity-type/manifests.js +2 -1
  172. package/dist-cms/packages/core/entity/entity-unique/manifests.js +2 -1
  173. package/dist-cms/packages/core/entity-action/common/delete/delete.action.js +13 -0
  174. package/dist-cms/packages/core/entity-action/entity-action-list.element.d.ts +1 -0
  175. package/dist-cms/packages/core/entity-action/entity-action-list.element.js +6 -9
  176. package/dist-cms/packages/core/entity-action/global-components/entity-actions-dropdown/entity-actions-dropdown.element.d.ts +1 -0
  177. package/dist-cms/packages/core/entity-action/global-components/entity-actions-dropdown/entity-actions-dropdown.element.js +24 -5
  178. package/dist-cms/packages/core/entity-action/has-children/condition/entity-has-children.condition.manifest.js +2 -1
  179. package/dist-cms/packages/core/entity-item/entity-item-ref/default-item-ref.element.d.ts +1 -0
  180. package/dist-cms/packages/core/entity-item/entity-item-ref/default-item-ref.element.js +5 -0
  181. package/dist-cms/packages/core/entity-item/index.d.ts +1 -0
  182. package/dist-cms/packages/core/entity-item/index.js +1 -0
  183. package/dist-cms/packages/core/entity-sign/components/entity-sign-bundle.element.d.ts +2 -1
  184. package/dist-cms/packages/core/entity-sign/components/entity-sign-bundle.element.js +82 -107
  185. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.api.d.ts +2 -2
  186. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.api.js +2 -2
  187. package/dist-cms/packages/core/entity-sign/kinds/icon/index.js +1 -0
  188. package/dist-cms/packages/core/entity-sign/kinds/icon/manifests.js +4 -2
  189. package/dist-cms/packages/core/entry-point.d.ts +8 -8
  190. package/dist-cms/packages/core/entry-point.js +12 -11
  191. package/dist-cms/packages/core/event/closed.event.d.ts +5 -0
  192. package/dist-cms/packages/core/event/delete.event.d.ts +6 -0
  193. package/dist-cms/packages/core/event/delete.event.js +2 -1
  194. package/dist-cms/packages/core/event/deselected.event.d.ts +5 -0
  195. package/dist-cms/packages/core/event/input.event.d.ts +1 -0
  196. package/dist-cms/packages/core/event/input.event.js +2 -1
  197. package/dist-cms/packages/core/event/opened.event.d.ts +5 -0
  198. package/dist-cms/packages/core/event/selected.event.d.ts +5 -0
  199. package/dist-cms/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.element.js +9 -11
  200. package/dist-cms/packages/core/menu/menu-variant-tree-structure-workspace-context-base.js +18 -14
  201. package/dist-cms/packages/core/modal/conditions/in-modal/constants.d.ts +1 -0
  202. package/dist-cms/packages/core/modal/conditions/in-modal/constants.js +1 -0
  203. package/dist-cms/packages/core/modal/conditions/in-modal/in-modal.condition-config.d.ts +15 -0
  204. package/dist-cms/packages/core/modal/conditions/in-modal/in-modal.condition-config.js +1 -0
  205. package/dist-cms/packages/core/modal/conditions/in-modal/in-modal.condition.d.ts +8 -0
  206. package/dist-cms/packages/core/modal/conditions/in-modal/in-modal.condition.js +19 -0
  207. package/dist-cms/packages/core/modal/conditions/in-modal/in-modal.condition.manifest.d.ts +2 -0
  208. package/dist-cms/packages/core/modal/conditions/in-modal/in-modal.condition.manifest.js +8 -0
  209. package/dist-cms/packages/core/modal/conditions/index.d.ts +2 -0
  210. package/dist-cms/packages/core/modal/conditions/index.js +1 -0
  211. package/dist-cms/packages/core/modal/conditions/manifests.d.ts +1 -0
  212. package/dist-cms/packages/core/modal/conditions/manifests.js +2 -0
  213. package/dist-cms/packages/core/modal/conditions/types.d.ts +1 -0
  214. package/dist-cms/packages/core/modal/conditions/types.js +1 -0
  215. package/dist-cms/packages/core/modal/context/index.d.ts +2 -1
  216. package/dist-cms/packages/core/modal/context/index.js +2 -1
  217. package/dist-cms/packages/core/modal/context/modal-manager.context-token.d.ts +3 -0
  218. package/dist-cms/packages/core/modal/context/modal-manager.context-token.js +2 -0
  219. package/dist-cms/packages/core/modal/context/modal-manager.context.d.ts +1 -2
  220. package/dist-cms/packages/core/modal/context/modal-manager.context.js +2 -2
  221. package/dist-cms/packages/core/modal/context/modal.context.js +2 -1
  222. package/dist-cms/packages/core/modal/index.d.ts +1 -0
  223. package/dist-cms/packages/core/modal/index.js +1 -0
  224. package/dist-cms/packages/core/modal/manifests.js +2 -1
  225. package/dist-cms/packages/core/models/index.d.ts +10 -0
  226. package/dist-cms/packages/core/package.json +1 -1
  227. package/dist-cms/packages/core/picker/search/picker-search-field.element.js +1 -10
  228. package/dist-cms/packages/core/picker/search/picker-search-result.element.d.ts +2 -1
  229. package/dist-cms/packages/core/picker/search/picker-search-result.element.js +26 -3
  230. package/dist-cms/packages/core/picker/search/result-item/default/default-picker-search-result-item.element.d.ts +1 -0
  231. package/dist-cms/packages/core/picker/search/result-item/default/default-picker-search-result-item.element.js +9 -1
  232. package/dist-cms/packages/core/picker-input/picker-input.context.d.ts +25 -0
  233. package/dist-cms/packages/core/picker-input/picker-input.context.js +83 -12
  234. package/dist-cms/packages/core/property/components/property/index.d.ts +1 -0
  235. package/dist-cms/packages/core/property/components/property/index.js +1 -0
  236. package/dist-cms/packages/core/property/components/property/property.context-token.d.ts +4 -0
  237. package/dist-cms/packages/core/property/components/property/property.context-token.js +3 -0
  238. package/dist-cms/packages/core/property/components/property/property.context.d.ts +0 -2
  239. package/dist-cms/packages/core/property/components/property/property.context.js +1 -2
  240. package/dist-cms/packages/core/property/manifests.d.ts +1 -1
  241. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-variant-builder.controller.d.ts +21 -0
  242. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-variant-builder.controller.js +115 -36
  243. package/dist-cms/packages/core/property-editor-data-source/item/data/manifests.js +2 -1
  244. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/empty-recycle-bin.collection-action.d.ts +18 -0
  245. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/empty-recycle-bin.collection-action.js +63 -0
  246. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/empty-recycle-bin.collection-action.kind.d.ts +2 -0
  247. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/empty-recycle-bin.collection-action.kind.js +16 -0
  248. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/index.d.ts +1 -0
  249. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/index.js +1 -0
  250. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/manifests.d.ts +2 -0
  251. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/manifests.js +2 -0
  252. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/types.d.ts +14 -0
  253. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/types.js +1 -0
  254. package/dist-cms/packages/core/recycle-bin/collection-action/index.d.ts +1 -0
  255. package/dist-cms/packages/core/recycle-bin/collection-action/index.js +1 -0
  256. package/dist-cms/packages/core/recycle-bin/collection-action/manifests.d.ts +2 -0
  257. package/dist-cms/packages/core/recycle-bin/collection-action/manifests.js +2 -0
  258. package/dist-cms/packages/core/recycle-bin/conditions/is-not-trashed/entity-is-not-trashed.condition.manifest.js +2 -1
  259. package/dist-cms/packages/core/recycle-bin/conditions/is-trashed/entity-is-trashed.condition.d.ts +2 -2
  260. package/dist-cms/packages/core/recycle-bin/conditions/is-trashed/entity-is-trashed.condition.js +2 -2
  261. package/dist-cms/packages/core/recycle-bin/conditions/is-trashed/entity-is-trashed.condition.manifest.js +2 -1
  262. package/dist-cms/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.js +3 -3
  263. package/dist-cms/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.kind.js +1 -1
  264. package/dist-cms/packages/core/recycle-bin/index.d.ts +2 -1
  265. package/dist-cms/packages/core/recycle-bin/manifests.js +2 -0
  266. package/dist-cms/packages/core/router/path-pattern.class.d.ts +6 -0
  267. package/dist-cms/packages/core/router/path-pattern.class.js +11 -2
  268. package/dist-cms/packages/core/router/route/forbidden/route-forbidden.element.js +1 -1
  269. package/dist-cms/packages/core/router/route/index.d.ts +1 -0
  270. package/dist-cms/packages/core/router/route/index.js +1 -0
  271. package/dist-cms/packages/core/router/route/route.context-token.d.ts +3 -0
  272. package/dist-cms/packages/core/router/route/route.context-token.js +2 -0
  273. package/dist-cms/packages/core/router/route/route.context.d.ts +1 -2
  274. package/dist-cms/packages/core/router/route/route.context.js +5 -3
  275. package/dist-cms/packages/core/router/route/router-slot.element.d.ts +1 -1
  276. package/dist-cms/packages/core/router/route/router-slot.element.js +17 -15
  277. package/dist-cms/packages/core/router/router-slot/router-slot.js +2 -0
  278. package/dist-cms/packages/core/sorter/sorter.controller.d.ts +1 -1
  279. package/dist-cms/packages/core/temporary-file/config/manifests.js +2 -1
  280. package/dist-cms/packages/core/temporary-file/manifests.d.ts +1 -1
  281. package/dist-cms/packages/core/themes/manifests.d.ts +1 -1
  282. package/dist-cms/packages/core/tree/default/default-tree.context.d.ts +2 -2
  283. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.js +6 -2
  284. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.d.ts +21 -0
  285. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.js +35 -5
  286. package/dist-cms/packages/core/tree/tree-picker-modal/tree-picker-modal.element.js +9 -8
  287. package/dist-cms/packages/core/utils/debounce/debounce.function.d.ts +12 -1
  288. package/dist-cms/packages/core/utils/debounce/debounce.function.js +15 -4
  289. package/dist-cms/packages/core/validation/controllers/form-control-validator.controller.js +2 -1
  290. package/dist-cms/packages/core/validation/controllers/validation.controller.js +20 -22
  291. package/dist-cms/packages/core/validation/events/validation-valid.event.d.ts +5 -0
  292. package/dist-cms/packages/core/validation/utils/replace-start-of-path.function.js +1 -1
  293. package/dist-cms/packages/core/variant/context/variant.context.js +1 -0
  294. package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-menu-breadcrumb/workspace-menu-breadcrumb.element.js +10 -6
  295. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.d.ts +7 -0
  296. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.js +7 -0
  297. package/dist-cms/packages/core/workspace/conditions/constants.d.ts +1 -0
  298. package/dist-cms/packages/core/workspace/conditions/constants.js +1 -0
  299. package/dist-cms/packages/core/workspace/conditions/manifests.js +2 -0
  300. package/dist-cms/packages/core/workspace/conditions/types.d.ts +1 -0
  301. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/constants.d.ts +1 -0
  302. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/constants.js +1 -0
  303. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/manifests.d.ts +2 -0
  304. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/manifests.js +7 -0
  305. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/types.d.ts +9 -0
  306. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/types.js +1 -0
  307. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/workspace-is-loaded.condition.d.ts +7 -0
  308. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/workspace-is-loaded.condition.js +14 -0
  309. package/dist-cms/packages/core/workspace/entity-detail/global-components/entity-detail-workspace-editor.element.d.ts +1 -0
  310. package/dist-cms/packages/core/workspace/entity-detail/global-components/entity-detail-workspace-editor.element.js +28 -0
  311. package/dist-cms/packages/core/workspace/modals/workspace-modal.element.js +4 -2
  312. package/dist-cms/packages/core/workspace/paths.d.ts +16 -0
  313. package/dist-cms/packages/core/workspace/paths.js +2 -0
  314. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/constants.d.ts +1 -0
  315. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/constants.js +1 -0
  316. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/data-type-allow-delete-action.condition.d.ts +8 -0
  317. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/data-type-allow-delete-action.condition.js +26 -0
  318. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/index.d.ts +1 -0
  319. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/index.js +1 -0
  320. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/manifest.d.ts +1 -0
  321. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/manifest.js +9 -0
  322. package/dist-cms/packages/data-type/entity-actions/conditions/manifests.d.ts +1 -0
  323. package/dist-cms/packages/data-type/entity-actions/conditions/manifests.js +2 -0
  324. package/dist-cms/packages/data-type/entity-actions/constants.d.ts +1 -0
  325. package/dist-cms/packages/data-type/entity-actions/constants.js +1 -0
  326. package/dist-cms/packages/data-type/entity-actions/manifests.js +8 -0
  327. package/dist-cms/packages/data-type/manifests.js +2 -1
  328. package/dist-cms/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.d.ts +1 -0
  329. package/dist-cms/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.js +39 -16
  330. package/dist-cms/packages/data-type/repository/detail/manifests.js +2 -1
  331. package/dist-cms/packages/data-type/repository/item/data-type-item.server.data-source.js +1 -0
  332. package/dist-cms/packages/data-type/repository/item/manifests.js +2 -1
  333. package/dist-cms/packages/data-type/repository/item/types.d.ts +1 -0
  334. package/dist-cms/packages/data-type/tree/folder/repository/manifests.js +2 -1
  335. package/dist-cms/packages/data-type/tree/manifests.js +2 -1
  336. package/dist-cms/packages/data-type/tree/tree-item-children/collection/views/data-type-tree-item-table-collection-view.element.js +1 -1
  337. package/dist-cms/packages/dictionary/manifests.js +2 -1
  338. package/dist-cms/packages/dictionary/repository/detail/manifests.js +2 -1
  339. package/dist-cms/packages/dictionary/repository/item/manifests.js +2 -1
  340. package/dist-cms/packages/dictionary/tree/manifests.js +2 -1
  341. package/dist-cms/packages/documents/document-blueprints/manifests.js +2 -1
  342. package/dist-cms/packages/documents/document-blueprints/repository/detail/manifests.js +2 -1
  343. package/dist-cms/packages/documents/document-blueprints/repository/item/manifests.js +2 -1
  344. package/dist-cms/packages/documents/document-blueprints/tree/folder/repository/manifests.js +2 -1
  345. package/dist-cms/packages/documents/document-blueprints/tree/manifests.js +2 -1
  346. package/dist-cms/packages/documents/document-types/components/input-document-type/input-document-type.element.js +2 -2
  347. package/dist-cms/packages/documents/document-types/manifests.js +2 -1
  348. package/dist-cms/packages/documents/document-types/repository/detail/manifests.js +2 -1
  349. package/dist-cms/packages/documents/document-types/repository/item/manifests.js +2 -1
  350. package/dist-cms/packages/documents/document-types/tree/folder/repository/manifests.js +2 -1
  351. package/dist-cms/packages/documents/document-types/tree/manifests.js +2 -1
  352. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/document-allow-edit-invariant-from-non-default-controller-base.d.ts +19 -0
  353. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/document-allow-edit-invariant-from-non-default-controller-base.js +45 -0
  354. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/document-block-workspace-allow-edit-invariant-from-non-default.controller.d.ts +6 -0
  355. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/document-block-workspace-allow-edit-invariant-from-non-default.controller.js +74 -0
  356. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/document-workspace-allow-edit-invariant-from-non-default.controller.d.ts +5 -0
  357. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/document-workspace-allow-edit-invariant-from-non-default.controller.js +18 -0
  358. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/manifests.d.ts +1 -0
  359. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/manifests.js +29 -0
  360. package/dist-cms/packages/documents/documents/collection/action/create-document-collection-action.element.js +2 -2
  361. package/dist-cms/packages/documents/documents/components/input-document/input-document.context.js +5 -0
  362. package/dist-cms/packages/documents/documents/components/input-document/input-document.element.js +5 -0
  363. package/dist-cms/packages/documents/documents/entity-actions/create-blueprint/create-blueprint.action.d.ts +2 -2
  364. package/dist-cms/packages/documents/documents/entity-actions/create-blueprint/create-blueprint.action.js +2 -2
  365. package/dist-cms/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.js +1 -1
  366. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/manifests.js +1 -1
  367. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/manifests.js +1 -1
  368. package/dist-cms/packages/documents/documents/entity-sign/is-protected/manifest.js +1 -1
  369. package/dist-cms/packages/documents/documents/item/repository/manifests.js +2 -1
  370. package/dist-cms/packages/documents/documents/manifests.js +4 -1
  371. package/dist-cms/packages/documents/documents/modals/shared/document-variant-language-picker.element.d.ts +2 -1
  372. package/dist-cms/packages/documents/documents/modals/shared/document-variant-language-picker.element.js +17 -2
  373. package/dist-cms/packages/documents/documents/preview/workspace-action-menu-item/preview-option.action.d.ts +2 -2
  374. package/dist-cms/packages/documents/documents/preview/workspace-action-menu-item/preview-option.action.js +2 -2
  375. package/dist-cms/packages/documents/documents/publishing/publish/entity-bulk-action/publish.bulk-action.d.ts +15 -0
  376. package/dist-cms/packages/documents/documents/publishing/publish/entity-bulk-action/publish.bulk-action.js +137 -67
  377. package/dist-cms/packages/documents/documents/publishing/repository/document-publishing.server.data-source.js +1 -2
  378. package/dist-cms/packages/documents/documents/publishing/unpublish/entity-bulk-action/unpublish.bulk-action.d.ts +1 -0
  379. package/dist-cms/packages/documents/documents/publishing/unpublish/entity-bulk-action/unpublish.bulk-action.js +46 -66
  380. package/dist-cms/packages/documents/documents/recycle-bin/collection-action/manifests.d.ts +1 -0
  381. package/dist-cms/packages/documents/documents/recycle-bin/collection-action/manifests.js +23 -0
  382. package/dist-cms/packages/documents/documents/recycle-bin/manifests.js +4 -1
  383. package/dist-cms/packages/documents/documents/recycle-bin/tree/data/manifests.js +2 -1
  384. package/dist-cms/packages/documents/documents/repository/detail/document-detail.server.data-source.js +1 -2
  385. package/dist-cms/packages/documents/documents/repository/detail/manifests.js +2 -1
  386. package/dist-cms/packages/documents/documents/rollback/modal/rollback-modal.element.d.ts +1 -0
  387. package/dist-cms/packages/documents/documents/rollback/modal/rollback-modal.element.js +34 -7
  388. package/dist-cms/packages/documents/documents/tree/manifests.js +2 -1
  389. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.context.d.ts +1 -0
  390. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.context.js +1 -0
  391. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.element.d.ts +1 -1
  392. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.element.js +9 -4
  393. package/dist-cms/packages/documents/documents/tree/utils.d.ts +7 -0
  394. package/dist-cms/packages/documents/documents/tree/utils.js +8 -0
  395. package/dist-cms/packages/documents/documents/types.d.ts +1 -0
  396. package/dist-cms/packages/documents/documents/url/repository/manifests.js +2 -1
  397. package/dist-cms/packages/documents/documents/user-permissions/document/conditions/manifests.js +2 -1
  398. package/dist-cms/packages/documents/documents/user-permissions/document-property-value/document-property-value-permission-flow-modal/property-type-modal/property-type-modal.element.js +1 -1
  399. package/dist-cms/packages/documents/documents/user-permissions/document-property-value/input-document-property-value-user-permission/input-document-property-value-user-permission.element.js +1 -1
  400. package/dist-cms/packages/documents/documents/utils.d.ts +7 -1
  401. package/dist-cms/packages/documents/documents/utils.js +35 -7
  402. package/dist-cms/packages/documents/documents/workspace/conditions/is-not-trashed/document-is-not-trashed.condition.manifest.js +2 -1
  403. package/dist-cms/packages/documents/documents/workspace/conditions/is-trashed/document-is-trashed.condition.manifest.js +2 -1
  404. package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.js +11 -1
  405. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.d.ts +2 -1
  406. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +0 -29
  407. package/dist-cms/packages/extension-insights/collection/views/table/extension-table-collection-view.element.js +1 -0
  408. package/dist-cms/packages/language/conditions/language-user-permission/manifests.js +2 -1
  409. package/dist-cms/packages/language/manifests.js +2 -1
  410. package/dist-cms/packages/language/repository/detail/manifests.js +2 -1
  411. package/dist-cms/packages/language/repository/item/manifests.js +2 -1
  412. package/dist-cms/packages/log-viewer/workspace/logviewer-workspace.context.js +18 -4
  413. package/dist-cms/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.d.ts +1 -1
  414. package/dist-cms/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.js +0 -1
  415. package/dist-cms/packages/media/dropzone/dropzone-change.event.js +1 -0
  416. package/dist-cms/packages/media/dropzone/dropzone-submitted.event.d.ts +5 -0
  417. package/dist-cms/packages/media/imaging/components/imaging-thumbnail.element.js +2 -1
  418. package/dist-cms/packages/media/imaging/manifests.js +2 -1
  419. package/dist-cms/packages/media/media/components/input-image-cropper/crop-change.event.d.ts +5 -0
  420. package/dist-cms/packages/media/media/components/input-image-cropper/focalpoint-change.event.d.ts +5 -0
  421. package/dist-cms/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.js +2 -1
  422. package/dist-cms/packages/media/media/components/input-image-cropper/utils.d.ts +6 -0
  423. package/dist-cms/packages/media/media/components/input-image-cropper/utils.js +7 -0
  424. package/dist-cms/packages/media/media/components/input-media/input-media.context.js +5 -0
  425. package/dist-cms/packages/media/media/components/input-rich-media/input-rich-media.element.js +1 -0
  426. package/dist-cms/packages/media/media/dropzone/dropzone-media.element.js +44 -38
  427. package/dist-cms/packages/media/media/index.d.ts +1 -1
  428. package/dist-cms/packages/media/media/index.js +1 -1
  429. package/dist-cms/packages/media/media/manifests.js +2 -1
  430. package/dist-cms/packages/media/media/modals/image-cropper-editor/image-cropper-editor-modal.element.d.ts +1 -0
  431. package/dist-cms/packages/media/media/modals/image-cropper-editor/image-cropper-editor-modal.element.js +1 -0
  432. package/dist-cms/packages/media/media/modals/image-cropper-editor/index.d.ts +0 -2
  433. package/dist-cms/packages/media/media/modals/image-cropper-editor/index.js +0 -2
  434. package/dist-cms/packages/media/media/modals/media-caption-alt-text/index.d.ts +1 -1
  435. package/dist-cms/packages/media/media/modals/media-caption-alt-text/index.js +1 -1
  436. package/dist-cms/packages/media/media/modals/media-picker/index.d.ts +0 -2
  437. package/dist-cms/packages/media/media/modals/media-picker/index.js +0 -2
  438. package/dist-cms/packages/media/media/modals/media-picker/media-picker-modal.element.d.ts +1 -0
  439. package/dist-cms/packages/media/media/modals/media-picker/media-picker-modal.element.js +39 -10
  440. package/dist-cms/packages/media/media/recycle-bin/collection-action/manifests.d.ts +1 -0
  441. package/dist-cms/packages/media/media/recycle-bin/collection-action/manifests.js +23 -0
  442. package/dist-cms/packages/media/media/recycle-bin/manifests.js +2 -0
  443. package/dist-cms/packages/media/media/recycle-bin/tree/manifests.js +2 -1
  444. package/dist-cms/packages/media/media/repository/detail/manifests.js +2 -1
  445. package/dist-cms/packages/media/media/repository/item/manifests.js +2 -1
  446. package/dist-cms/packages/media/media/tree/manifests.js +2 -1
  447. package/dist-cms/packages/media/media/tree/tree-item/media-tree-item.context.d.ts +1 -0
  448. package/dist-cms/packages/media/media/tree/tree-item/media-tree-item.context.js +3 -1
  449. package/dist-cms/packages/media/media/tree/tree-item/media-tree-item.element.d.ts +3 -1
  450. package/dist-cms/packages/media/media/tree/tree-item/media-tree-item.element.js +11 -4
  451. package/dist-cms/packages/media/media/tree/utils.d.ts +7 -0
  452. package/dist-cms/packages/media/media/tree/utils.js +8 -0
  453. package/dist-cms/packages/media/media/url/repository/manifests.js +2 -1
  454. package/dist-cms/packages/media/media/workspace/media-workspace-editor.element.d.ts +2 -1
  455. package/dist-cms/packages/media/media/workspace/media-workspace-editor.element.js +28 -4
  456. package/dist-cms/packages/media/media-types/components/input-media-type/input-media-type.element.js +7 -3
  457. package/dist-cms/packages/media/media-types/manifests.js +2 -1
  458. package/dist-cms/packages/media/media-types/repository/detail/manifests.js +2 -1
  459. package/dist-cms/packages/media/media-types/repository/item/manifests.js +2 -1
  460. package/dist-cms/packages/media/media-types/tree/folder/repository/manifests.js +2 -1
  461. package/dist-cms/packages/media/media-types/tree/manifests.js +2 -1
  462. package/dist-cms/packages/media/umbraco-package.d.ts +2 -1
  463. package/dist-cms/packages/media/umbraco-package.js +2 -1
  464. package/dist-cms/packages/members/member/collection/action/create-member-collection-action.element.d.ts +3 -3
  465. package/dist-cms/packages/members/member/collection/action/create-member-collection-action.element.js +6 -6
  466. package/dist-cms/packages/members/member/collection/types.d.ts +2 -4
  467. package/dist-cms/packages/members/member/item/repository/manifests.js +2 -1
  468. package/dist-cms/packages/members/member/manifests.js +2 -1
  469. package/dist-cms/packages/members/member/repository/detail/manifests.js +2 -1
  470. package/dist-cms/packages/members/member-group/manifests.js +2 -1
  471. package/dist-cms/packages/members/member-group/repository/detail/manifests.js +2 -1
  472. package/dist-cms/packages/members/member-group/repository/item/manifests.js +2 -1
  473. package/dist-cms/packages/members/member-public-access/modal/public-access-modal.element.d.ts +2 -0
  474. package/dist-cms/packages/members/member-public-access/modal/public-access-modal.element.js +90 -24
  475. package/dist-cms/packages/members/member-type/components/input-member-type/input-member-type.element.js +4 -0
  476. package/dist-cms/packages/members/member-type/manifests.js +2 -1
  477. package/dist-cms/packages/members/member-type/repository/detail/manifests.js +2 -1
  478. package/dist-cms/packages/members/member-type/repository/item/manifests.js +2 -1
  479. package/dist-cms/packages/members/member-type/tree/folder/repository/manifests.js +2 -1
  480. package/dist-cms/packages/members/member-type/tree/manifests.js +2 -1
  481. package/dist-cms/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.js +5 -0
  482. package/dist-cms/packages/packages/package/repository/manifests.js +2 -1
  483. package/dist-cms/packages/property-editors/content-picker/config/source-type/property-editor-ui-content-picker-source-type.element.js +1 -0
  484. package/dist-cms/packages/property-editors/content-picker/dynamic-root/modals/manifests.js +13 -1
  485. package/dist-cms/packages/property-editors/content-picker/property-editor-ui-content-picker.element.js +5 -2
  486. package/dist-cms/packages/property-editors/entity-data-picker/input/input-entity-data.context.d.ts +2 -1
  487. package/dist-cms/packages/property-editors/entity-data-picker/input/input-entity-data.context.js +10 -6
  488. package/dist-cms/packages/property-editors/entity-data-picker/input/input-entity-data.element.d.ts +1 -0
  489. package/dist-cms/packages/property-editors/entity-data-picker/input/input-entity-data.element.js +8 -2
  490. package/dist-cms/packages/property-editors/entity-data-picker/picker-collection/constants.d.ts +1 -0
  491. package/dist-cms/packages/property-editors/entity-data-picker/picker-collection/constants.js +1 -0
  492. package/dist-cms/packages/property-editors/entity-data-picker/picker-collection/manifests.js +12 -1
  493. package/dist-cms/packages/property-editors/entity-data-picker/picker-collection/views/manifests.d.ts +1 -0
  494. package/dist-cms/packages/property-editors/entity-data-picker/picker-collection/views/manifests.js +28 -0
  495. package/dist-cms/packages/property-editors/slider/property-editor-ui-slider.element.js +1 -1
  496. package/dist-cms/packages/property-editors/umbraco-package.d.ts +2 -1
  497. package/dist-cms/packages/property-editors/umbraco-package.js +2 -1
  498. package/dist-cms/packages/relations/relation-types/repository/detail/manifests.js +2 -1
  499. package/dist-cms/packages/static-file/manifests.js +2 -1
  500. package/dist-cms/packages/static-file/repository/item/manifests.js +2 -1
  501. package/dist-cms/packages/static-file/tree/manifests.js +2 -1
  502. package/dist-cms/packages/tags/repository/manifests.js +2 -1
  503. package/dist-cms/packages/templating/partial-views/manifests.js +2 -1
  504. package/dist-cms/packages/templating/partial-views/repository/item/manifests.js +2 -1
  505. package/dist-cms/packages/templating/partial-views/repository/manifests.js +2 -1
  506. package/dist-cms/packages/templating/partial-views/tree/folder/repository/manifests.js +2 -1
  507. package/dist-cms/packages/templating/partial-views/tree/manifests.js +2 -1
  508. package/dist-cms/packages/templating/scripts/manifests.js +2 -1
  509. package/dist-cms/packages/templating/scripts/repository/item/manifests.js +2 -1
  510. package/dist-cms/packages/templating/scripts/repository/manifests.js +2 -1
  511. package/dist-cms/packages/templating/scripts/tree/folder/repository/manifests.js +2 -1
  512. package/dist-cms/packages/templating/scripts/tree/manifests.js +2 -1
  513. package/dist-cms/packages/templating/stylesheets/manifests.js +2 -1
  514. package/dist-cms/packages/templating/stylesheets/repository/item/manifests.js +2 -1
  515. package/dist-cms/packages/templating/stylesheets/repository/manifests.js +2 -1
  516. package/dist-cms/packages/templating/stylesheets/tree/folder/repository/manifests.js +2 -1
  517. package/dist-cms/packages/templating/stylesheets/tree/manifests.js +2 -1
  518. package/dist-cms/packages/templating/templates/manifests.js +2 -1
  519. package/dist-cms/packages/templating/templates/repository/detail/manifests.js +2 -1
  520. package/dist-cms/packages/templating/templates/repository/item/manifests.js +2 -1
  521. package/dist-cms/packages/templating/templates/tree/manifests.js +2 -1
  522. package/dist-cms/packages/templating/templates/workspace/template-workspace-editor.element.js +6 -0
  523. package/dist-cms/packages/templating/umbraco-package.d.ts +2 -1
  524. package/dist-cms/packages/templating/umbraco-package.js +2 -1
  525. package/dist-cms/packages/tiptap/components/input-tiptap/input-tiptap.element.d.ts +1 -1
  526. package/dist-cms/packages/tiptap/components/input-tiptap/input-tiptap.element.js +18 -9
  527. package/dist-cms/packages/tiptap/extensions/block/block.tiptap-api.js +14 -12
  528. package/dist-cms/packages/tiptap/extensions/block/block.tiptap-extension.js +1 -12
  529. package/dist-cms/packages/tiptap/extensions/heading/heading6.tiptap-toolbar-api.d.ts +1 -1
  530. package/dist-cms/packages/tiptap/extensions/heading/heading6.tiptap-toolbar-api.js +1 -1
  531. package/dist-cms/packages/tiptap/extensions/html-attr-class/html-attr-class.tiptap-extension.js +26 -2
  532. package/dist-cms/packages/tiptap/extensions/link/link.tiptap-extension.d.ts +7 -0
  533. package/dist-cms/packages/tiptap/extensions/link/link.tiptap-extension.js +14 -17
  534. package/dist-cms/packages/tiptap/extensions/style-menu/style-menu.tiptap-toolbar-api.js +1 -0
  535. package/dist-cms/packages/tiptap/extensions/subscript/subscript.tiptap-api.d.ts +1 -1
  536. package/dist-cms/packages/tiptap/extensions/subscript/subscript.tiptap-api.js +1 -1
  537. package/dist-cms/packages/tiptap/extensions/superscript/superscript.tiptap-api.d.ts +1 -1
  538. package/dist-cms/packages/tiptap/extensions/superscript/superscript.tiptap-api.js +1 -1
  539. package/dist-cms/packages/tiptap/extensions/text-direction/text-direction.tiptap-api.d.ts +2 -1
  540. package/dist-cms/packages/tiptap/extensions/text-direction/text-direction.tiptap-api.js +4 -6
  541. package/dist-cms/packages/tiptap/extensions/text-direction/text-direction.tiptap-extension.d.ts +3 -10
  542. package/dist-cms/packages/tiptap/extensions/text-direction/text-direction.tiptap-extension.js +6 -35
  543. package/dist-cms/packages/tiptap/externals.js +1 -4
  544. package/dist-cms/packages/tiptap/package.json +10 -10
  545. package/dist-cms/packages/ufm/plugins/marked-ufm.plugin.js +3 -2
  546. package/dist-cms/packages/umbraco-news/components/umb-news-card.element.d.ts +1 -1
  547. package/dist-cms/packages/umbraco-news/components/umb-news-card.element.js +88 -60
  548. package/dist-cms/packages/umbraco-news/components/umb-news-container.element.js +1 -1
  549. package/dist-cms/packages/user/current-user/conditions/group-id/group-id.condition.manifest.js +2 -1
  550. package/dist-cms/packages/user/current-user/conditions/is-admin/is-admin.condition.d.ts +2 -2
  551. package/dist-cms/packages/user/current-user/conditions/is-admin/is-admin.condition.js +2 -2
  552. package/dist-cms/packages/user/current-user/conditions/is-admin/is-admin.condition.manifest.js +2 -1
  553. package/dist-cms/packages/user/current-user/history/manifests.js +2 -1
  554. package/dist-cms/packages/user/current-user/modals/current-user-mfa/current-user-mfa-modal.element.d.ts +2 -0
  555. package/dist-cms/packages/user/current-user/modals/current-user-mfa/current-user-mfa-modal.element.js +59 -21
  556. package/dist-cms/packages/user/current-user/repository/current-user.repository.js +4 -0
  557. package/dist-cms/packages/user/current-user/repository/current-user.server.data-source.js +1 -1
  558. package/dist-cms/packages/user/current-user/repository/manifests.js +4 -2
  559. package/dist-cms/packages/user/user/client-credential/create/modal/create-user-client-credential-modal.element.d.ts +3 -4
  560. package/dist-cms/packages/user/user/client-credential/create/modal/create-user-client-credential-modal.element.js +7 -8
  561. package/dist-cms/packages/user/user/collection/action/manifests.js +5 -0
  562. package/dist-cms/packages/user/user/collection/item/user-collection-item-card.element.js +2 -0
  563. package/dist-cms/packages/user/user/collection/user-collection-header.element.js +4 -4
  564. package/dist-cms/packages/user/user/collection/views/table/user-table-collection-view.element.d.ts +5 -7
  565. package/dist-cms/packages/user/user/collection/views/table/user-table-collection-view.element.js +39 -51
  566. package/dist-cms/packages/user/user/components/user-avatar/user-avatar.element.d.ts +1 -3
  567. package/dist-cms/packages/user/user/components/user-avatar/user-avatar.element.js +2 -2
  568. package/dist-cms/packages/user/user/components/user-input/user-input.element.d.ts +1 -0
  569. package/dist-cms/packages/user/user/components/user-input/user-input.element.js +11 -8
  570. package/dist-cms/packages/user/user/invite/collection-action/manifests.js +5 -0
  571. package/dist-cms/packages/user/user/manifests.js +2 -1
  572. package/dist-cms/packages/user/user/modals/user-picker/user-picker-modal.token.js +3 -3
  573. package/dist-cms/packages/user/user/repository/config/manifests.js +2 -1
  574. package/dist-cms/packages/user/user/repository/detail/manifests.js +2 -1
  575. package/dist-cms/packages/user/user/repository/item/manifests.js +2 -1
  576. package/dist-cms/packages/user/user/workspace/user/components/user-workspace-assign-access/user-workspace-assign-access.element.js +4 -0
  577. package/dist-cms/packages/user/user/workspace/user/components/user-workspace-avatar/user-workspace-avatar.element.d.ts +3 -3
  578. package/dist-cms/packages/user/user/workspace/user/components/user-workspace-avatar/user-workspace-avatar.element.js +14 -11
  579. package/dist-cms/packages/user/user/workspace/user/user-workspace.context.d.ts +1 -3
  580. package/dist-cms/packages/user/user/workspace/user/user-workspace.context.js +2 -2
  581. package/dist-cms/packages/user/user-group/collection/filter/manifests.d.ts +1 -0
  582. package/dist-cms/packages/user/user-group/collection/filter/manifests.js +16 -0
  583. package/dist-cms/packages/user/user-group/collection/manifests.js +5 -4
  584. package/dist-cms/packages/user/user-group/collection/repository/user-group-collection.repository.js +8 -0
  585. package/dist-cms/packages/user/user-group/collection/repository/user-group-collection.server.data-source.js +3 -1
  586. package/dist-cms/packages/user/user-group/collection/types.d.ts +3 -3
  587. package/dist-cms/packages/user/user-group/collection/user-group-collection.context-token.d.ts +7 -2
  588. package/dist-cms/packages/user/user-group/collection/user-group-collection.context-token.js +3 -0
  589. package/dist-cms/packages/user/user-group/collection/views/user-group-table-collection-view.element.js +11 -3
  590. package/dist-cms/packages/user/user-group/components/user-group-ref/user-group-ref.element.d.ts +1 -0
  591. package/dist-cms/packages/user/user-group/components/user-group-ref/user-group-ref.element.js +11 -12
  592. package/dist-cms/packages/user/user-group/manifests.js +2 -1
  593. package/dist-cms/packages/user/user-group/modals/user-group-picker/user-group-picker-modal.element.js +1 -0
  594. package/dist-cms/packages/user/user-group/repository/detail/manifests.js +2 -1
  595. package/dist-cms/packages/user/user-group/repository/detail/user-group-detail.server.data-source.js +4 -0
  596. package/dist-cms/packages/user/user-group/repository/item/manifests.js +2 -1
  597. package/dist-cms/packages/user/user-group/types.d.ts +1 -0
  598. package/dist-cms/packages/user/user-group/workspace/user-group/user-group-workspace-editor.element.d.ts +1 -0
  599. package/dist-cms/packages/user/user-group/workspace/user-group/user-group-workspace-editor.element.js +47 -13
  600. package/dist-cms/packages/user/user-group/workspace/user-group/user-group-workspace.context.d.ts +7 -0
  601. package/dist-cms/packages/user/user-group/workspace/user-group/user-group-workspace.context.js +9 -0
  602. package/dist-cms/packages/user/user-permission/fallback-permission-condition/manifests.js +2 -1
  603. package/dist-cms/packages/webhook/manifests.js +2 -1
  604. package/dist-cms/packages/webhook/webhook/repository/detail/manifests.js +2 -1
  605. package/dist-cms/packages/webhook/webhook/repository/item/manifests.js +2 -1
  606. package/dist-cms/packages/webhook/webhook-event/repository/manifests.js +2 -1
  607. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  608. package/examples/collection/collection/filter/manifests.ts +17 -0
  609. package/examples/collection/collection/manifests.ts +2 -0
  610. package/examples/picker-data-source/example-custom-picker-collection-data-source.ts +5 -5
  611. package/examples/picker-data-source/index.ts +2 -0
  612. package/examples/picker-data-source/with-thumbnail/example-custom-with-thumbnail-picker-collection-data-source.ts +83 -0
  613. package/examples/picker-data-source/with-thumbnail/images/blue-flowers-small.jpg +0 -0
  614. package/examples/picker-data-source/with-thumbnail/images/branch-small.jpg +0 -0
  615. package/examples/picker-data-source/with-thumbnail/images/grass-small.jpg +0 -0
  616. package/examples/picker-data-source/with-thumbnail/images/red-flowers-small.jpg +0 -0
  617. package/examples/picker-data-source/with-thumbnail/manifests.ts +16 -0
  618. package/examples/workspace-context-initial-name/index.ts +4 -0
  619. package/examples/workspace-context-initial-name/workspace-context.ts +0 -1
  620. package/package.json +22 -18
  621. package/{dist-cms/umbraco-package-schema.json → umbraco-package-schema.json} +706 -1
  622. package/{dist-cms/vscode-html-custom-data.json → vscode-html-custom-data.json} +74 -44
  623. package/dist-cms/packages/user/user/collection/views/grid/user-grid-collection-view.element.d.ts +0 -17
  624. package/dist-cms/packages/user/user/collection/views/grid/user-grid-collection-view.element.js +0 -81
  625. package/dist-cms/packages/user/user-group/collection/user-group-collection.context.d.ts +0 -8
  626. package/dist-cms/packages/user/user-group/collection/user-group-collection.context.js +0 -8
  627. package/dist-cms/packages/user/user-group/collection/user-group-collection.element.d.ts +0 -13
  628. package/dist-cms/packages/user/user-group/collection/user-group-collection.element.js +0 -48
  629. package/dist-cms/umbraco-package.json +0 -1
@@ -1,5 +1,6 @@
1
1
  import { UMB_TEMPLATE_ENTITY_TYPE, UMB_TEMPLATE_ROOT_ENTITY_TYPE } from '../entity.js';
2
2
  import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js';
3
+ import { UmbTemplateTreeStore } from './template-tree.store.js';
3
4
  export const UMB_TEMPLATE_TREE_REPOSITORY_ALIAS = 'Umb.Repository.Template.Tree';
4
5
  /**
5
6
  * @deprecated Use {@link UMB_TEMPLATE_TREE_REPOSITORY_ALIAS} instead. This will be removed in Umbraco 18.
@@ -17,7 +18,7 @@ export const manifests = [
17
18
  type: 'treeStore',
18
19
  alias: UMB_TEMPLATE_TREE_STORE_ALIAS,
19
20
  name: 'Template Tree Store',
20
- api: () => import('./template-tree.store.js'),
21
+ api: UmbTemplateTreeStore,
21
22
  },
22
23
  {
23
24
  type: 'tree',
@@ -15,6 +15,11 @@ import { UMB_MODAL_MANAGER_CONTEXT } from '../../../core/modal/index.js';
15
15
  import { umbBindToValidation } from '../../../core/validation/index.js';
16
16
  import '../../../code-editor/index.js';
17
17
  import '../../local-components/insert-menu/index.js';
18
+ /**
19
+ * Template alias pattern - allows first character to be a letter, digit, or underscore.
20
+ * Mirrors server-side CleanStringType.UnderscoreAlias behavior.
21
+ */
22
+ const UMB_TEMPLATE_ALIAS_PATTERN = '^[A-Za-z0-9_][A-Za-z0-9_-]{0,254}$';
18
23
  let UmbTemplateWorkspaceEditorElement = class UmbTemplateWorkspaceEditorElement extends UmbLitElement {
19
24
  #modalContext;
20
25
  #templateWorkspaceContext;
@@ -139,6 +144,7 @@ let UmbTemplateWorkspaceEditorElement = class UmbTemplateWorkspaceEditorElement
139
144
  placeholder=${this.localize.term('placeholders_entername')}
140
145
  .value=${this._name}
141
146
  .alias=${this._alias}
147
+ alias-pattern=${UMB_TEMPLATE_ALIAS_PATTERN}
142
148
  ?auto-generate-alias=${this.#isNew}
143
149
  @change=${this.#onNameAndAliasChange}
144
150
  required
@@ -1,7 +1,8 @@
1
+ import * as entryPointModule from './entry-point.js';
1
2
  export declare const name = "Umbraco.Core.Templating";
2
3
  export declare const extensions: {
3
4
  name: string;
4
5
  alias: string;
5
6
  type: string;
6
- js: () => Promise<typeof import("./entry-point.js")>;
7
+ js: typeof entryPointModule;
7
8
  }[];
@@ -1,3 +1,4 @@
1
+ import * as entryPointModule from './entry-point.js';
1
2
  export const name = 'Umbraco.Core.Templating';
2
3
  export const extensions = [
3
4
  {
@@ -10,6 +11,6 @@ export const extensions = [
10
11
  name: 'Template Management Backoffice Entry Point',
11
12
  alias: 'Umb.BackofficeEntryPoint.TemplateManagement',
12
13
  type: 'backofficeEntryPoint',
13
- js: () => import('./entry-point.js'),
14
+ js: entryPointModule,
14
15
  },
15
16
  ];
@@ -21,7 +21,7 @@ export declare class UmbInputTiptapElement extends UmbInputTiptapElement_base {
21
21
  readonly: boolean;
22
22
  private _editor?;
23
23
  private readonly _extensions;
24
- private _styles;
24
+ private _extensionStyles?;
25
25
  private _toolbar;
26
26
  private _statusbar;
27
27
  constructor();
@@ -22,6 +22,8 @@ const TIPTAP_CORE_EXTENSION_ALIAS = 'Umb.Tiptap.RichTextEssentials';
22
22
  const DEFAULT_STYLESHEET_ROOT_PATH = '/css';
23
23
  let UmbInputTiptapElement = class UmbInputTiptapElement extends UmbFormControlMixin(UmbLitElement) {
24
24
  #context;
25
+ #hasToolbar;
26
+ #hasStatusbar;
25
27
  #stylesheets;
26
28
  #stylesheetRootPath;
27
29
  set value(value) {
@@ -40,6 +42,8 @@ let UmbInputTiptapElement = class UmbInputTiptapElement extends UmbFormControlMi
40
42
  constructor() {
41
43
  super();
42
44
  this.#context = new UmbTiptapRteContext(this);
45
+ this.#hasToolbar = false;
46
+ this.#hasStatusbar = false;
43
47
  this.#stylesheets = new Set(['/umbraco/backoffice/css/rte-content.css']);
44
48
  this.#stylesheetRootPath = DEFAULT_STYLESHEET_ROOT_PATH;
45
49
  this.#value = '';
@@ -48,7 +52,6 @@ let UmbInputTiptapElement = class UmbInputTiptapElement extends UmbFormControlMi
48
52
  */
49
53
  this.readonly = false;
50
54
  this._extensions = [];
51
- this._styles = [];
52
55
  this._toolbar = [[[]]];
53
56
  this._statusbar = [[], []];
54
57
  this.addValidator('valueMissing', () => this.requiredMessage ?? 'Value is required', () => !!this.required && this.isEmpty());
@@ -108,9 +111,8 @@ let UmbInputTiptapElement = class UmbInputTiptapElement extends UmbFormControlMi
108
111
  this.#stylesheets.add(linkHref);
109
112
  });
110
113
  }
111
- this._toolbar = this.configuration?.getValueByAlias('toolbar') ?? [[[]]];
112
- this._statusbar = this.configuration?.getValueByAlias('statusbar') ?? [];
113
114
  const tiptapExtensions = new Map();
115
+ const collectedStyles = [];
114
116
  this._extensions.forEach((ext) => {
115
117
  const tiptapExt = ext.getTiptapExtensions({ configuration: this.configuration });
116
118
  if (tiptapExt?.length) {
@@ -122,9 +124,16 @@ let UmbInputTiptapElement = class UmbInputTiptapElement extends UmbFormControlMi
122
124
  }
123
125
  const styles = ext.getStyles();
124
126
  if (styles) {
125
- this._styles.push(styles);
127
+ collectedStyles.push(styles);
126
128
  }
127
129
  });
130
+ if (collectedStyles.length) {
131
+ this._extensionStyles = unsafeCSS(collectedStyles.map((s) => s.toString()).join(''));
132
+ }
133
+ this._toolbar = this.configuration?.getValueByAlias('toolbar') ?? [[[]]];
134
+ this._statusbar = this.configuration?.getValueByAlias('statusbar') ?? [];
135
+ this.#hasToolbar = this._toolbar.flat(2).length > 0;
136
+ this.#hasStatusbar = this._statusbar.flat().length > 0;
128
137
  this._editor = new Editor({
129
138
  element: element,
130
139
  editable: !this.readonly,
@@ -162,17 +171,17 @@ let UmbInputTiptapElement = class UmbInputTiptapElement extends UmbFormControlMi
162
171
  `;
163
172
  }
164
173
  #renderStyles() {
165
- if (!this._styles?.length)
174
+ if (!this._extensionStyles)
166
175
  return;
167
176
  return html `
168
177
  ${repeat(this.#stylesheets, (stylesheet) => stylesheet, (stylesheet) => html `<link rel="stylesheet" href=${stylesheet} />`)}
169
178
  <style>
170
- ${this._styles.map((style) => unsafeCSS(style))}
179
+ ${this._extensionStyles}
171
180
  </style>
172
181
  `;
173
182
  }
174
183
  #renderToolbar() {
175
- if (!this._toolbar.flat(2).length)
184
+ if (!this.#hasToolbar)
176
185
  return;
177
186
  return html `
178
187
  <umb-tiptap-toolbar
@@ -185,7 +194,7 @@ let UmbInputTiptapElement = class UmbInputTiptapElement extends UmbFormControlMi
185
194
  `;
186
195
  }
187
196
  #renderStatusbar() {
188
- if (!this._statusbar.flat().length)
197
+ if (!this.#hasStatusbar)
189
198
  return;
190
199
  return html `
191
200
  <umb-tiptap-statusbar
@@ -331,7 +340,7 @@ __decorate([
331
340
  ], UmbInputTiptapElement.prototype, "_extensions", void 0);
332
341
  __decorate([
333
342
  state()
334
- ], UmbInputTiptapElement.prototype, "_styles", void 0);
343
+ ], UmbInputTiptapElement.prototype, "_extensionStyles", void 0);
335
344
  __decorate([
336
345
  state()
337
346
  ], UmbInputTiptapElement.prototype, "_toolbar", void 0);
@@ -1,33 +1,35 @@
1
1
  import { UmbTiptapExtensionApiBase } from '../tiptap-extension-api-base.js';
2
2
  import { umbRteBlock, umbRteBlockInline } from './block.tiptap-extension.js';
3
- import { distinctUntilChanged } from '../../../../external/rxjs/index.js';
4
3
  import { UMB_BLOCK_RTE_DATA_CONTENT_KEY } from '../../../rte/index.js';
5
4
  import { UMB_BLOCK_RTE_MANAGER_CONTEXT } from '../../../block/block-rte/index.js';
6
5
  export default class UmbTiptapBlockElementApi extends UmbTiptapExtensionApiBase {
6
+ #blockTypes;
7
7
  constructor(host) {
8
8
  super(host);
9
9
  this.consumeContext(UMB_BLOCK_RTE_MANAGER_CONTEXT, (context) => {
10
- this.observe(context?.contents.pipe(distinctUntilChanged((prev, curr) => prev.map((y) => y.key).join() === curr.map((y) => y.key).join())), (contents) => {
11
- if (!contents || !context) {
12
- return;
13
- }
14
- this.#updateBlocks(contents, context.getLayouts());
15
- }, 'contents');
10
+ if (!context)
11
+ return;
12
+ this.observe(context.blockTypes, (blockTypes) => {
13
+ this.#blockTypes = new Map(blockTypes.map((x) => [x.contentElementTypeKey, x]));
14
+ }, '_observeBlockTypes');
15
+ this.observe(context.contents, (contents) => {
16
+ this.#updateBlocks(contents);
17
+ }, '_observeContents');
16
18
  });
17
19
  }
18
20
  getTiptapExtensions() {
19
21
  return [umbRteBlock, umbRteBlockInline];
20
22
  }
21
- #updateBlocks(blocks, layouts) {
23
+ #updateBlocks(contents) {
22
24
  const editor = this._editor;
23
25
  if (!editor)
24
26
  return;
27
+ if (!contents?.length)
28
+ return;
25
29
  const existingBlocks = Array.from(editor.view.dom.querySelectorAll('umb-rte-block, umb-rte-block-inline')).map((x) => x.getAttribute(UMB_BLOCK_RTE_DATA_CONTENT_KEY));
26
- const newBlocks = blocks.filter((x) => !existingBlocks.find((contentKey) => contentKey === x.key));
30
+ const newBlocks = contents.filter((x) => !existingBlocks.find((contentKey) => contentKey === x.key));
27
31
  newBlocks.forEach((block) => {
28
- // Find layout for block
29
- const layout = layouts.find((x) => x.contentKey === block.key);
30
- const inline = layout?.displayInline ?? false;
32
+ const inline = this.#blockTypes?.get(block.contentTypeKey)?.displayInline ?? false;
31
33
  if (inline) {
32
34
  editor.commands.setBlockInline({ contentKey: block.key });
33
35
  }
@@ -40,23 +40,12 @@ export const umbRteBlockInline = umbRteBlock.extend({
40
40
  parseHTML() {
41
41
  return [{ tag: `umb-rte-block-inline[${UMB_BLOCK_RTE_DATA_CONTENT_KEY}]` }];
42
42
  },
43
- // TODO: [v17] Remove the `@ts-expect-error` once Tiptap has resolved the TypeScript definitions. [LK:2025-10-01]
44
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
45
- // @ts-expect-error
46
43
  renderHTML({ HTMLAttributes }) {
47
44
  return ['umb-rte-block-inline', HTMLAttributes];
48
45
  },
49
46
  addCommands() {
50
47
  return {
51
- setBlockInline:
52
- // TODO: [v17] Remove the `@ts-expect-error` once Tiptap has resolved the TypeScript definitions. [LK:2025-10-01]
53
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
54
- // @ts-expect-error
55
- (options) =>
56
- // TODO: [v17] Remove the `@ts-expect-error` once Tiptap has resolved the TypeScript definitions. [LK:2025-10-01]
57
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
58
- // @ts-expect-error
59
- ({ commands }) => {
48
+ setBlockInline: (options) => ({ commands }) => {
60
49
  const attrs = { [UMB_BLOCK_RTE_DATA_CONTENT_KEY]: options.contentKey };
61
50
  return commands.insertContent({
62
51
  type: this.name,
@@ -1,6 +1,6 @@
1
1
  import type { Editor } from '../../externals.js';
2
2
  import { UmbTiptapToolbarElementApiBase } from '../tiptap-toolbar-element-api-base.js';
3
- export default class UmbTiptapToolbarHeading3ExtensionApi extends UmbTiptapToolbarElementApiBase {
3
+ export default class UmbTiptapToolbarHeading6ExtensionApi extends UmbTiptapToolbarElementApiBase {
4
4
  isActive(editor?: Editor): boolean;
5
5
  execute(editor?: Editor): void;
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import { UmbTiptapToolbarElementApiBase } from '../tiptap-toolbar-element-api-base.js';
2
- export default class UmbTiptapToolbarHeading3ExtensionApi extends UmbTiptapToolbarElementApiBase {
2
+ export default class UmbTiptapToolbarHeading6ExtensionApi extends UmbTiptapToolbarElementApiBase {
3
3
  isActive(editor) {
4
4
  return editor?.isActive('heading', { level: 6 }) === true;
5
5
  }
@@ -26,8 +26,32 @@ export const HtmlClassAttribute = Extension.create({
26
26
  if (!className)
27
27
  return false;
28
28
  const types = type ? [type] : this.options.types;
29
- const existing = types.map((type) => editor.getAttributes(type)?.class).filter((x) => x);
30
- return existing.length ? commands.unsetClassName(type) : commands.setClassName(className, type);
29
+ const toggleClasses = className.split(/\s+/).filter((c) => c);
30
+ if (toggleClasses.length === 0) {
31
+ return true;
32
+ }
33
+ return types
34
+ .map((t) => {
35
+ const existingClass = editor.getAttributes(t)?.class ?? '';
36
+ const classes = existingClass.split(/\s+/).filter((c) => c);
37
+ const hasAllToggleClasses = toggleClasses.every((c) => classes.includes(c));
38
+ let newClasses;
39
+ if (hasAllToggleClasses) {
40
+ // All toggle classes present: remove them
41
+ newClasses = classes.filter((c) => !toggleClasses.includes(c));
42
+ }
43
+ else {
44
+ // Not all toggle classes present: add missing ones
45
+ const toAdd = toggleClasses.filter((c) => !classes.includes(c));
46
+ newClasses = [...classes, ...toAdd];
47
+ }
48
+ if (newClasses.length === 0) {
49
+ // No classes left, remove the attribute entirely
50
+ return commands.resetAttributes(t, 'class');
51
+ }
52
+ return commands.updateAttributes(t, { class: newClasses.join(' ') });
53
+ })
54
+ .every((response) => response);
31
55
  },
32
56
  unsetClassName: (type) => ({ commands }) => {
33
57
  const types = type ? [type] : this.options.types;
@@ -2,6 +2,13 @@ export declare const UmbLink: import("@tiptap/core").Mark<import("@tiptap/extens
2
2
  declare module '@tiptap/core' {
3
3
  interface Commands<ReturnType> {
4
4
  umbLink: {
5
+ ensureUmbLink: (attributes: {
6
+ type: string;
7
+ href: string;
8
+ 'data-anchor'?: string | null;
9
+ target?: string | null;
10
+ title?: string | null;
11
+ }) => ReturnType;
5
12
  setUmbLink: (attributes: {
6
13
  type: string;
7
14
  href: string;
@@ -1,24 +1,22 @@
1
1
  import { Link } from '../../externals.js';
2
+ // TODO: [LK] Look to use a NodeView to render the link, so that we remove the `data-router-slot` attribute from the HTML value.
3
+ // https://tiptap.dev/docs/editor/extensions/custom-extensions/node-views/javascript
2
4
  export const UmbLink = Link.extend({
3
5
  name: 'umbLink',
4
6
  addAttributes() {
5
7
  return {
6
- // TODO: [v17] Remove the `@ts-expect-error` once Tiptap has resolved the TypeScript definitions. [LK:2025-10-01]
7
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
8
- // @ts-expect-error
9
8
  ...this.parent?.(),
10
9
  'data-anchor': { default: null },
11
10
  title: { default: null },
12
11
  type: { default: 'external' },
13
12
  };
14
13
  },
15
- // TODO: [LK] Look to use a NodeView to render the link
16
- // https://tiptap.dev/docs/editor/extensions/custom-extensions/node-views/javascript
14
+ // TODO: [LK] Review why `addOptions()` is not typed correctly here.
15
+ // ref: https://github.com/ueberdosis/tiptap/issues/6670
16
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
17
+ // @ts-expect-error
17
18
  addOptions() {
18
19
  return {
19
- // TODO: [v17] Remove the `@ts-expect-error` once Tiptap has resolved the TypeScript definitions. [LK:2025-10-01]
20
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
21
- // @ts-expect-error
22
20
  ...this.parent?.(),
23
21
  HTMLAttributes: {
24
22
  target: '',
@@ -28,21 +26,20 @@ export const UmbLink = Link.extend({
28
26
  },
29
27
  addCommands() {
30
28
  return {
31
- // TODO: [v17] Remove the `@ts-expect-error` once Tiptap has resolved the TypeScript definitions. [LK:2025-10-01]
32
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
33
- // @ts-expect-error
29
+ ensureUmbLink: (attributes) => {
30
+ return ({ editor, chain }) => {
31
+ if (editor.isActive(this.name)) {
32
+ return true;
33
+ }
34
+ return chain().setMark(this.name, attributes).setMeta('preventAutolink', true).run();
35
+ };
36
+ },
34
37
  setUmbLink: (attributes) => {
35
- // TODO: [v17] Remove the `@ts-expect-error` once Tiptap has resolved the TypeScript definitions. [LK:2025-10-01]
36
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
37
- // @ts-expect-error
38
38
  return ({ chain }) => {
39
39
  return chain().setMark(this.name, attributes).setMeta('preventAutolink', true).run();
40
40
  };
41
41
  },
42
42
  unsetUmbLink: () => {
43
- // TODO: [v17] Remove the `@ts-expect-error` once Tiptap has resolved the TypeScript definitions. [LK:2025-10-01]
44
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
45
- // @ts-expect-error
46
43
  return ({ chain }) => {
47
44
  return chain().unsetMark(this.name, { extendEmptyMarkRange: true }).setMeta('preventAutolink', true).run();
48
45
  };
@@ -15,6 +15,7 @@ export default class UmbTiptapToolbarStyleMenuApi extends UmbTiptapToolbarElemen
15
15
  h5: this.#headingCommand(5),
16
16
  h6: this.#headingCommand(6),
17
17
  p: { type: 'paragraph', command: (chain) => chain.setParagraph() },
18
+ a: { type: 'umbLink', command: (chain) => chain.ensureUmbLink({ type: 'external', href: '#' }) },
18
19
  blockquote: { type: 'blockquote', command: (chain) => chain.toggleBlockquote() },
19
20
  code: { type: 'code', command: (chain) => chain.toggleCode() },
20
21
  codeBlock: { type: 'codeBlock', command: (chain) => chain.toggleCodeBlock() },
@@ -1,4 +1,4 @@
1
1
  import { UmbTiptapExtensionApiBase } from '../tiptap-extension-api-base.js';
2
- export default class UmbTiptapBoldExtensionApi extends UmbTiptapExtensionApiBase {
2
+ export default class UmbTiptapSubscriptExtensionApi extends UmbTiptapExtensionApiBase {
3
3
  getTiptapExtensions: () => import("@tiptap/core").Mark<import("@tiptap/extension-subscript").SubscriptExtensionOptions, any>[];
4
4
  }
@@ -1,6 +1,6 @@
1
1
  import { UmbTiptapExtensionApiBase } from '../tiptap-extension-api-base.js';
2
2
  import { Subscript } from '../../externals.js';
3
- export default class UmbTiptapBoldExtensionApi extends UmbTiptapExtensionApiBase {
3
+ export default class UmbTiptapSubscriptExtensionApi extends UmbTiptapExtensionApiBase {
4
4
  constructor() {
5
5
  super(...arguments);
6
6
  this.getTiptapExtensions = () => [Subscript];
@@ -1,4 +1,4 @@
1
1
  import { UmbTiptapExtensionApiBase } from '../tiptap-extension-api-base.js';
2
- export default class UmbTiptapBoldExtensionApi extends UmbTiptapExtensionApiBase {
2
+ export default class UmbTiptapSuperscriptExtensionApi extends UmbTiptapExtensionApiBase {
3
3
  getTiptapExtensions: () => import("@tiptap/core").Mark<import("@tiptap/extension-superscript").SuperscriptExtensionOptions, any>[];
4
4
  }
@@ -1,6 +1,6 @@
1
1
  import { UmbTiptapExtensionApiBase } from '../tiptap-extension-api-base.js';
2
2
  import { Superscript } from '../../externals.js';
3
- export default class UmbTiptapBoldExtensionApi extends UmbTiptapExtensionApiBase {
3
+ export default class UmbTiptapSuperscriptExtensionApi extends UmbTiptapExtensionApiBase {
4
4
  constructor() {
5
5
  super(...arguments);
6
6
  this.getTiptapExtensions = () => [Superscript];
@@ -1,4 +1,5 @@
1
1
  import { UmbTiptapExtensionApiBase } from '../tiptap-extension-api-base.js';
2
+ /** @deprecated No longer required, (since it comes default with Tiptap). This will be removed in Umbraco 19. [LK] */
2
3
  export default class UmbTiptapTextDirectionExtensionApi extends UmbTiptapExtensionApiBase {
3
- getTiptapExtensions: () => import("@tiptap/core").Extension<import("./text-direction.tiptap-extension.js").UmbTiptapTextDirectionOptions, any>[];
4
+ getTiptapExtensions: () => never[];
4
5
  }
@@ -1,12 +1,10 @@
1
1
  import { UmbTiptapExtensionApiBase } from '../tiptap-extension-api-base.js';
2
- import { TextDirection } from './text-direction.tiptap-extension.js';
2
+ /** @deprecated No longer required, (since it comes default with Tiptap). This will be removed in Umbraco 19. [LK] */
3
3
  export default class UmbTiptapTextDirectionExtensionApi extends UmbTiptapExtensionApiBase {
4
4
  constructor() {
5
5
  super(...arguments);
6
- this.getTiptapExtensions = () => [
7
- TextDirection.configure({
8
- types: ['heading', 'paragraph', 'blockquote', 'orderedList', 'bulletList'],
9
- }),
10
- ];
6
+ // NOTE: `TextDirection` is now bundled with Tiptap since v3.11.0. [LK]
7
+ // https://github.com/ueberdosis/tiptap/pull/7207
8
+ this.getTiptapExtensions = () => [];
11
9
  }
12
10
  }
@@ -1,14 +1,7 @@
1
- import { Extension } from '../../externals.js';
1
+ /** @deprecated No longer used internally. This will be removed in Umbraco 19. [LK] */
2
2
  export interface UmbTiptapTextDirectionOptions {
3
3
  directions: Array<'auto' | 'ltr' | 'rtl'>;
4
4
  types: Array<string>;
5
5
  }
6
- export declare const TextDirection: Extension<UmbTiptapTextDirectionOptions, any>;
7
- declare module '@tiptap/core' {
8
- interface Commands<ReturnType> {
9
- textDirection: {
10
- setTextDirection: (direction: 'auto' | 'ltr' | 'rtl') => ReturnType;
11
- unsetTextDirection: () => ReturnType;
12
- };
13
- }
14
- }
6
+ /** @deprecated No longer required, (since it comes default with Tiptap). This will be removed in Umbraco 19. [LK] */
7
+ export declare const TextDirection: import("@tiptap/core").Extension<UmbTiptapTextDirectionOptions, any>;
@@ -1,35 +1,6 @@
1
- import { Extension } from '../../externals.js';
2
- export const TextDirection = Extension.create({
3
- name: 'textDirection',
4
- addOptions() {
5
- return {
6
- directions: ['ltr', 'rtl', 'auto'],
7
- types: ['heading', 'paragraph'],
8
- };
9
- },
10
- addGlobalAttributes() {
11
- return [
12
- {
13
- types: this.options.types,
14
- attributes: {
15
- textDirection: {
16
- parseHTML: (element) => element.dir,
17
- renderHTML: (attributes) => this.options.directions.includes(attributes.textDirection) ? { dir: attributes.textDirection } : null,
18
- },
19
- },
20
- },
21
- ];
22
- },
23
- addCommands() {
24
- return {
25
- setTextDirection: (direction) => ({ commands }) => {
26
- return this.options.directions.includes(direction)
27
- ? this.options.types.every((type) => commands.updateAttributes(type, { textDirection: direction }))
28
- : false;
29
- },
30
- unsetTextDirection: () => ({ commands }) => {
31
- return this.options.types.every((type) => commands.resetAttributes(type, 'textDirection'));
32
- },
33
- };
34
- },
35
- });
1
+ // NOTE: `TextDirection` is now bundled with Tiptap since v3.11.0. [LK]
2
+ // https://github.com/ueberdosis/tiptap/pull/7207
3
+ // eslint-disable-next-line local-rules/enforce-umbraco-external-imports
4
+ import { extensions as TiptapExtensions } from '@tiptap/core';
5
+ /** @deprecated No longer required, (since it comes default with Tiptap). This will be removed in Umbraco 19. [LK] */
6
+ export const TextDirection = TiptapExtensions.TextDirection.extend();
@@ -1,7 +1,4 @@
1
- // Work-in-progress upgrade to Tiptap v3. [LK]
2
- // Watch this issue: https://github.com/ueberdosis/tiptap/issues/6670
3
- //
4
- // Docs:
1
+ // Tiptap v3 Docs:
5
2
  // https://tiptap.dev/docs/guides/upgrade-tiptap-v2
6
3
  // https://tiptap.dev/docs/resources/whats-new
7
4
  // https://github.com/ueberdosis/tiptap/issues
@@ -6,15 +6,15 @@
6
6
  "build": "vite build"
7
7
  },
8
8
  "dependencies": {
9
- "@tiptap/core": "3.6.2",
10
- "@tiptap/extension-image": "3.6.2",
11
- "@tiptap/extension-subscript": "3.6.2",
12
- "@tiptap/extension-superscript": "3.6.2",
13
- "@tiptap/extension-table": "3.6.2",
14
- "@tiptap/extension-text-align": "3.6.2",
15
- "@tiptap/extension-text-style": "3.6.2",
16
- "@tiptap/starter-kit": "3.6.2",
17
- "@tiptap/extensions": "3.6.2",
18
- "@tiptap/pm": "3.6.2"
9
+ "@tiptap/core": "3.16.0",
10
+ "@tiptap/extension-image": "3.16.0",
11
+ "@tiptap/extension-subscript": "3.16.0",
12
+ "@tiptap/extension-superscript": "3.16.0",
13
+ "@tiptap/extension-table": "3.16.0",
14
+ "@tiptap/extension-text-align": "3.16.0",
15
+ "@tiptap/extension-text-style": "3.16.0",
16
+ "@tiptap/starter-kit": "3.16.0",
17
+ "@tiptap/extensions": "3.16.0",
18
+ "@tiptap/pm": "3.16.0"
19
19
  }
20
20
  }
@@ -6,12 +6,13 @@ export function ufm(plugins = []) {
6
6
  return {
7
7
  extensions: plugins.map(({ alias, marker, render }) => {
8
8
  const prefix = `(${alias}:${marker ? `|${marker}` : ''})`;
9
+ const startPattern = new RegExp(`\\{\\s*${prefix}`);
9
10
  return {
10
11
  name: alias,
11
12
  level: 'inline',
12
- start: (src) => src.search(`{${prefix}`),
13
+ start: (src) => src.search(startPattern),
13
14
  tokenizer: (src) => {
14
- const pattern = `^\\{${prefix}([^}]*)\\}`;
15
+ const pattern = `^\\{\\s*${prefix}([^}]*)\\}`;
15
16
  const regex = new RegExp(pattern);
16
17
  const match = src.match(regex);
17
18
  if (match) {
@@ -6,7 +6,7 @@ export declare class UmbNewsCardElement extends UmbLitElement {
6
6
  item: NewsDashboardItemResponseModel;
7
7
  priority: number;
8
8
  render(): typeof nothing | import("lit-html").TemplateResult<1>;
9
- static styles: import("lit").CSSResult;
9
+ static styles: import("lit").CSSResult[];
10
10
  }
11
11
  export default UmbNewsCardElement;
12
12
  declare global {