@umbraco-cms/backoffice 17.1.0 → 17.2.0-rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +2 -1
  64. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.js +17 -12
  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 +46 -38
  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 +2 -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,10 +1,11 @@
1
1
  import { UMB_BLOCK_RTE_MANAGER_CONTEXT } from './block-rte-manager.context-token.js';
2
2
  import { UMB_BLOCK_RTE_ENTRIES_CONTEXT } from './block-rte-entries.context-token.js';
3
3
  import { UmbBlockEntryContext } from '../../block/index.js';
4
- import { mergeObservables, observeMultiple } from '../../../../libs/observable-api/index.js';
4
+ import { mergeObservables } from '../../../../libs/observable-api/index.js';
5
5
  export class UmbBlockRteEntryContext extends UmbBlockEntryContext {
6
6
  constructor(host) {
7
7
  super(host, UMB_BLOCK_RTE_MANAGER_CONTEXT, UMB_BLOCK_RTE_ENTRIES_CONTEXT);
8
+ /** @deprecated Use `displayInlineConfig` instead. This field will be removed in Umbraco 19. [LK] */
8
9
  this.displayInline = this._layout.asObservablePart((x) => (x ? (x.displayInline ?? false) : undefined));
9
10
  this.displayInlineConfig = this._blockType.asObservablePart((x) => (x ? (x.displayInline ?? false) : undefined));
10
11
  this.forceHideContentEditorInOverlay = this._blockType.asObservablePart((x) => x ? (x.forceHideContentEditorInOverlay ?? false) : undefined);
@@ -13,19 +14,6 @@ export class UmbBlockRteEntryContext extends UmbBlockEntryContext {
13
14
  });
14
15
  }
15
16
  _gotManager() { }
16
- _gotEntries() {
17
- // Secure displayInline fits configuration:
18
- this.observe(observeMultiple([this.displayInline, this.displayInlineConfig]), ([displayInline, displayInlineConfig]) => {
19
- if (displayInlineConfig !== undefined && displayInline !== undefined && displayInlineConfig !== displayInline) {
20
- const layoutValue = this._layout.getValue();
21
- if (!layoutValue)
22
- return;
23
- this._layout.setValue({
24
- ...layoutValue,
25
- displayInline: displayInlineConfig,
26
- });
27
- }
28
- }, 'displayInlineCorrection');
29
- }
17
+ _gotEntries() { }
30
18
  _gotContentType() { }
31
19
  }
@@ -24,9 +24,6 @@ export class UmbBlockRteManagerContext extends UmbBlockManagerContext {
24
24
  if (!blockType) {
25
25
  throw new Error(`Cannot create block, missing block type for ${contentElementTypeKey}`);
26
26
  }
27
- if (blockType.displayInline) {
28
- data.layout.displayInline = true;
29
- }
30
27
  return data;
31
28
  }
32
29
  insert(layoutEntry, content, settings, originData) {
@@ -4,6 +4,7 @@ export interface UmbBlockRteTypeModel extends UmbBlockTypeBaseModel {
4
4
  displayInline: boolean;
5
5
  }
6
6
  export interface UmbBlockRteLayoutModel extends UmbBlockLayoutBaseModel {
7
+ /** @deprecated Use `displayInline` on `UmbBlockRteTypeModel` instead. This field will be removed in Umbraco 19. [LK] */
7
8
  displayInline?: boolean;
8
9
  }
9
10
  export interface UmbBlockRteValueModel extends UmbBlockValueType<UmbBlockRteLayoutModel> {
@@ -5,10 +5,10 @@ export const manifests = [
5
5
  {
6
6
  type: 'propertyEditorUi',
7
7
  alias: 'Umb.PropertyEditorUi.BlockSingle',
8
- name: 'Block Single Property Editor UI',
8
+ name: 'Single Block Property Editor UI',
9
9
  element: () => import('./property-editor-ui-block-single.element.js'),
10
10
  meta: {
11
- label: 'Block Single',
11
+ label: 'Single Block',
12
12
  propertyEditorSchemaAlias: UMB_BLOCK_SINGLE_PROPERTY_EDITOR_SCHEMA_ALIAS,
13
13
  icon: 'icon-shape-square',
14
14
  group: 'richContent',
@@ -180,7 +180,12 @@ let UmbPropertyEditorUIBlockSingleElement = class UmbPropertyEditorUIBlockSingle
180
180
  }, 'observeContextualVariantId');
181
181
  });
182
182
  this.addValidator('rangeOverflow', () => this.localize.term('validation_entriesExceed', 1, this.#entriesContext.getLength() - 1), () => this.#entriesContext.getLength() > 1);
183
- this.addValidator('valueMissing', () => this.mandatoryMessage ?? UMB_VALIDATION_EMPTY_LOCALIZATION_KEY, () => !!this.mandatory && this.#entriesContext.getLength() === 0);
183
+ this.addValidator('valueMissing', () => this.mandatoryMessage ?? UMB_VALIDATION_EMPTY_LOCALIZATION_KEY, () => {
184
+ if (!this.mandatory || this.readonly)
185
+ return false;
186
+ const count = this.value?.layout?.[UMB_BLOCK_SINGLE_PROPERTY_EDITOR_SCHEMA_ALIAS]?.length ?? 0;
187
+ return count === 0;
188
+ });
184
189
  this.observe(this.#entriesContext.layoutEntries, (layouts) => {
185
190
  this._layouts = layouts;
186
191
  // Update sorter.
@@ -1,6 +1,7 @@
1
1
  import { UMB_CLIPBOARD_ENTRY_ENTITY_TYPE } from '../entity.js';
2
2
  import { UMB_CLIPBOARD_ENTRY_ITEM_REPOSITORY_ALIAS } from '../item/index.js';
3
3
  import { UMB_CLIPBOARD_ENTRY_DETAIL_REPOSITORY_ALIAS, UMB_CLIPBOARD_ENTRY_DETAIL_STORE_ALIAS } from './constants.js';
4
+ import { UmbClipboardEntryDetailStore } from './clipboard-entry-detail.store.js';
4
5
  export const manifests = [
5
6
  {
6
7
  type: 'repository',
@@ -12,7 +13,7 @@ export const manifests = [
12
13
  type: 'store',
13
14
  alias: UMB_CLIPBOARD_ENTRY_DETAIL_STORE_ALIAS,
14
15
  name: 'Clipboard Detail Store',
15
- api: () => import('./clipboard-entry-detail.store.js'),
16
+ api: UmbClipboardEntryDetailStore,
16
17
  },
17
18
  {
18
19
  type: 'entityAction',
@@ -1,4 +1,5 @@
1
1
  import { UMB_CLIPBOARD_ENTRY_ITEM_REPOSITORY_ALIAS, UMB_CLIPBOARD_ENTRY_ITEM_STORE_ALIAS } from './constants.js';
2
+ import { UmbClipboardEntryItemStore } from './clipboard-entry-item.store.js';
2
3
  export const manifests = [
3
4
  {
4
5
  type: 'repository',
@@ -10,6 +11,6 @@ export const manifests = [
10
11
  type: 'itemStore',
11
12
  alias: UMB_CLIPBOARD_ENTRY_ITEM_STORE_ALIAS,
12
13
  name: 'Clipboard Entry Item Store',
13
- api: () => import('./clipboard-entry-item.store.js'),
14
+ api: UmbClipboardEntryItemStore,
14
15
  },
15
16
  ];
@@ -1,9 +1,10 @@
1
1
  import { UMB_WORKSPACE_HAS_CONTENT_COLLECTION_CONDITION_ALIAS } from './constants.js';
2
+ import { UmbWorkspaceHasContentCollectionCondition } from './workspace-has-content-collection.condition.js';
2
3
  export const manifests = [
3
4
  {
4
5
  type: 'condition',
5
6
  name: 'Workspace Has Collection Condition',
6
7
  alias: UMB_WORKSPACE_HAS_CONTENT_COLLECTION_CONDITION_ALIAS,
7
- api: () => import('./workspace-has-content-collection.condition.js'),
8
+ api: UmbWorkspaceHasContentCollectionCondition,
8
9
  },
9
10
  ];
@@ -1,6 +1,7 @@
1
+ import { UmbContentHasPropertiesWorkspaceCondition } from './content-has-properties.condition.js';
1
2
  export const manifest = {
2
3
  type: 'condition',
3
4
  name: 'Content has properties Workspace Condition',
4
5
  alias: 'Umb.Condition.Workspace.ContentHasProperties',
5
- api: () => import('./content-has-properties.condition.js'),
6
+ api: UmbContentHasPropertiesWorkspaceCondition,
6
7
  };
@@ -7,8 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { UMB_CONTENT_WORKSPACE_CONTEXT } from '../constants.js';
8
8
  import { html, customElement, property, state, nothing } from '../../../../external/lit/index.js';
9
9
  import { UmbLitElement } from '../../../core/lit-element/index.js';
10
- import { UMB_PROPERTY_DATASET_CONTEXT } from '../../../core/property/index.js';
11
- import { UmbVariantId } from '../../../core/variant/index.js';
10
+ import { UMB_VARIANT_CONTEXT, UmbVariantId } from '../../../core/variant/index.js';
12
11
  import { UmbDataPathPropertyValueQuery } from '../../../core/validation/index.js';
13
12
  import { UMB_CURRENT_USER_CONTEXT } from '../../../user/current-user/index.js';
14
13
  let UmbContentWorkspacePropertyElement = class UmbContentWorkspacePropertyElement extends UmbLitElement {
@@ -23,8 +22,10 @@ let UmbContentWorkspacePropertyElement = class UmbContentWorkspacePropertyElemen
23
22
  super();
24
23
  this._hasAccessToSensitiveData = false;
25
24
  // The Property Dataset is local to the active variant, we use this to retrieve the variant we like to gather the value from.
26
- this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, (datasetContext) => {
27
- this._datasetVariantId = datasetContext?.getVariantId();
25
+ this.consumeContext(UMB_VARIANT_CONTEXT, async (variantContext) => {
26
+ this.observe(variantContext?.variantId, (variantId) => {
27
+ this._datasetVariantId = variantId;
28
+ }, 'observeDatasetVariantId');
28
29
  });
29
30
  // The Content Workspace Context is used to retrieve the property type we like to observe.
30
31
  // This gives us the configuration from the property type as part of the data type.
@@ -43,16 +44,7 @@ let UmbContentWorkspacePropertyElement = class UmbContentWorkspacePropertyElemen
43
44
  return;
44
45
  this.observe(await this._workspaceContext?.structure.propertyStructureByAlias(this._alias), (propertyType) => {
45
46
  this._propertyType = propertyType;
46
- this.#checkViewGuard();
47
- });
48
- }
49
- #checkViewGuard() {
50
- if (!this._workspaceContext || !this._propertyType || !this._datasetVariantId)
51
- return;
52
- const propertyVariantId = new UmbVariantId(this._propertyType.variesByCulture ? this._datasetVariantId.culture : null, this._propertyType.variesBySegment ? this._datasetVariantId.segment : null);
53
- this.observe(this._workspaceContext.propertyViewGuard.isPermittedForVariantAndProperty(propertyVariantId, this._propertyType, this._datasetVariantId), (permitted) => {
54
- this._viewable = permitted;
55
- }, `umbObservePropertyViewGuard`);
47
+ }, 'observePropertyType');
56
48
  }
57
49
  willUpdate(changedProperties) {
58
50
  super.willUpdate(changedProperties);
@@ -68,7 +60,10 @@ let UmbContentWorkspacePropertyElement = class UmbContentWorkspacePropertyElemen
68
60
  })}].value`;
69
61
  this.observe(this._workspaceContext.propertyWriteGuard.isPermittedForVariantAndProperty(propertyVariantId, this._propertyType, this._datasetVariantId), (write) => {
70
62
  this._writeable = write;
71
- }, 'observeView');
63
+ }, 'umbObservePropertyWriteGuard');
64
+ this.observe(this._workspaceContext.propertyViewGuard.isPermittedForVariantAndProperty(propertyVariantId, this._propertyType, this._datasetVariantId), (permitted) => {
65
+ this._viewable = permitted;
66
+ }, `umbObservePropertyViewGuard`);
72
67
  }
73
68
  }
74
69
  }
@@ -91,7 +91,7 @@ export declare abstract class UmbContentDetailWorkspaceContextBase<DetailModelTy
91
91
  protected _processIncomingData(data: DetailModelType): Promise<DetailModelType>;
92
92
  /**
93
93
  * Get the name of a variant
94
- * @param {UmbVariantId } [variantId] - The variant id
94
+ * @param {UmbVariantId } [variantId] - The variant id. If not provided, returns the name of the first active variant.
95
95
  * @returns { string | undefined} - The name of the variant
96
96
  * @memberof UmbContentDetailWorkspaceContextBase
97
97
  */
@@ -105,7 +105,7 @@ export declare abstract class UmbContentDetailWorkspaceContextBase<DetailModelTy
105
105
  setName(name: string, variantId?: UmbVariantId): void;
106
106
  /**
107
107
  * Get an observable for the name of a variant
108
- * @param {UmbVariantId} [variantId] - The variant id
108
+ * @param {UmbVariantId} [variantId] - The variant id. If not provided, observes the name of the first active variant.
109
109
  * @returns {Observable<string>} - The name of the variant
110
110
  * @memberof UmbContentDetailWorkspaceContextBase
111
111
  */
@@ -269,12 +269,6 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
269
269
  else {
270
270
  this._segments.setValue([]);
271
271
  }
272
- // Set culture and segment for all values:
273
- const cultures = this.#languages.getValue().map((x) => x.unique);
274
- let segments;
275
- if (this.#variesBySegment) {
276
- segments = this._segments.getValue().map((s) => s.alias);
277
- }
278
272
  const repo = new UmbDataTypeDetailRepository(this);
279
273
  const propertyTypes = await this.structure.getContentTypeProperties();
280
274
  const contentTypeVariesByCulture = this.structure.getVariesByCulture();
@@ -301,10 +295,11 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
301
295
  };
302
296
  }));
303
297
  const controller = new UmbPropertyValuePresetVariantBuilderController(this);
304
- controller.setCultures(cultures);
305
- if (segments) {
306
- controller.setSegments(segments);
298
+ const variantOptions = (await firstValueFrom(this.variantOptions)).map((o) => new UmbVariantId(o.culture, o.segment));
299
+ if (contentTypeVariesByCulture) {
300
+ variantOptions.push(UmbVariantId.CreateInvariant()); // Ensure invariant is included, when the contentType varies by culture, because we do not have a invariant-variant in our variant-options. [NL]
307
301
  }
302
+ controller.setVariantOptions(variantOptions);
308
303
  controller.setValues(data.values);
309
304
  const processedValues = await controller.create(valueDefinitions, {
310
305
  entityType: this.getEntityType(),
@@ -334,7 +329,7 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
334
329
  }
335
330
  /**
336
331
  * Get the name of a variant
337
- * @param {UmbVariantId } [variantId] - The variant id
332
+ * @param {UmbVariantId } [variantId] - The variant id. If not provided, returns the name of the first active variant.
338
333
  * @returns { string | undefined} - The name of the variant
339
334
  * @memberof UmbContentDetailWorkspaceContextBase
340
335
  */
@@ -345,9 +340,14 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
345
340
  if (variantId) {
346
341
  return variants.find((x) => variantId.compare(x))?.name;
347
342
  }
348
- else {
349
- return variants[0]?.name;
343
+ // Get the first active variant's name
344
+ const activeVariant = this.splitView.getActiveVariants()[0];
345
+ if (activeVariant) {
346
+ const activeVariantId = UmbVariantId.Create(activeVariant);
347
+ return variants.find((x) => activeVariantId.compare(x))?.name;
350
348
  }
349
+ // Fallback to first variant if no active variant is set
350
+ return variants[0]?.name;
351
351
  }
352
352
  /**
353
353
  * Set the name of a variant
@@ -360,12 +360,22 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
360
360
  }
361
361
  /**
362
362
  * Get an observable for the name of a variant
363
- * @param {UmbVariantId} [variantId] - The variant id
363
+ * @param {UmbVariantId} [variantId] - The variant id. If not provided, observes the name of the first active variant.
364
364
  * @returns {Observable<string>} - The name of the variant
365
365
  * @memberof UmbContentDetailWorkspaceContextBase
366
366
  */
367
367
  name(variantId) {
368
- return this._data.createObservablePartOfCurrent((data) => data?.variants?.find((x) => variantId?.compare(x))?.name ?? '');
368
+ if (variantId) {
369
+ // Explicit variant requested
370
+ return this._data.createObservablePartOfCurrent((data) => data?.variants?.find((x) => variantId.compare(x))?.name ?? '');
371
+ }
372
+ // No variant specified - observe first active variant's name
373
+ return mergeObservables([this.splitView.activeVariantByIndex(0), this.variants], ([activeVariant, variants]) => {
374
+ if (!activeVariant || !variants)
375
+ return '';
376
+ const activeVariantId = UmbVariantId.Create(activeVariant);
377
+ return variants.find((x) => activeVariantId.compare(x))?.name ?? '';
378
+ });
369
379
  }
370
380
  /* Variants */
371
381
  /**
@@ -27,17 +27,9 @@ export class UmbContentDetailWorkspaceTypeTransformController extends UmbControl
27
27
  return;
28
28
  }
29
29
  const defaultLanguage = this.#getDefaultLanguage();
30
- // To spare a bit of energy we keep awareness of whether this brings any changes:
31
- let hasChanges = false;
32
- const values = currentData.values.map((v) => {
33
- const transformation = this.#transformValueForVariationChange(v, oldPropertyTypes, newPropertyTypes, defaultLanguage);
34
- if (transformation.changed) {
35
- hasChanges = true;
36
- }
37
- return transformation.value;
38
- });
39
- if (hasChanges) {
40
- this.#workspace.setData({ ...currentData, values });
30
+ const result = this.#transformValuesForVariationChanges(currentData.values, oldPropertyTypes, newPropertyTypes, defaultLanguage);
31
+ if (result.hasChanges) {
32
+ this.#workspace.setData({ ...currentData, values: result.values });
41
33
  }
42
34
  }
43
35
  #getDefaultLanguage() {
@@ -48,25 +40,77 @@ export class UmbContentDetailWorkspaceTypeTransformController extends UmbControl
48
40
  }
49
41
  return defaultLanguage;
50
42
  }
51
- #transformValueForVariationChange(value, oldPropertyTypes, newPropertyTypes, defaultLanguage) {
52
- const oldType = oldPropertyTypes.find((p) => p.alias === value.alias);
53
- const newType = newPropertyTypes.find((p) => p.alias === value.alias);
54
- // If we cant find both, we do not dare changing anything. Notice a composition may not have been loaded yet.
55
- if (!oldType || !newType) {
56
- return { value, changed: false };
57
- }
58
- // If variation hasn't changed, return unchanged
59
- if (oldType.variesByCulture === newType.variesByCulture) {
60
- return { value, changed: false };
43
+ /**
44
+ * Transforms all values based on property variation changes.
45
+ * Handles both invariant→variant and variant→invariant transitions, including cleanup of duplicate values.
46
+ * When transitioning to invariant, keeps all segment values for the chosen culture (default language preferred).
47
+ * @param {Array<UmbContentValueModel>} values - All content values
48
+ * @param {Array<UmbPropertyTypeModel>} oldPropertyTypes - Previous property type definitions
49
+ * @param {Array<UmbPropertyTypeModel>} newPropertyTypes - New property type definitions
50
+ * @param {string} defaultLanguage - The default language code
51
+ * @returns {{ values: Array<UmbContentValueModel>; hasChanges: boolean }} Transformed values and change flag
52
+ */
53
+ #transformValuesForVariationChanges(values, oldPropertyTypes, newPropertyTypes, defaultLanguage) {
54
+ // Group values by property alias for efficient processing
55
+ const valuesByAlias = new Map();
56
+ for (const value of values) {
57
+ const existing = valuesByAlias.get(value.alias) ?? [];
58
+ existing.push(value);
59
+ valuesByAlias.set(value.alias, existing);
61
60
  }
62
- // Variation has changed, migrate the value
63
- if (newType.variesByCulture) {
64
- // If it now varies by culture, set to default language
65
- return { value: { ...value, culture: defaultLanguage }, changed: true };
66
- }
67
- else {
68
- // If it no longer varies by culture, set to invariant
69
- return { value: { ...value, culture: null }, changed: true };
61
+ const result = [];
62
+ let hasChanges = false;
63
+ for (const [alias, valuesOfAlias] of valuesByAlias) {
64
+ const oldType = oldPropertyTypes.find((p) => p.alias === alias);
65
+ const newType = newPropertyTypes.find((p) => p.alias === alias);
66
+ // If we can't find both types, keep values unchanged (composition may not have been loaded yet)
67
+ if (!oldType || !newType) {
68
+ result.push(...valuesOfAlias);
69
+ continue;
70
+ }
71
+ // No variation change - keep all values as-is
72
+ if (oldType.variesByCulture === newType.variesByCulture) {
73
+ result.push(...valuesOfAlias);
74
+ continue;
75
+ }
76
+ hasChanges = true;
77
+ if (newType.variesByCulture) {
78
+ // Invariant → Variant: keep existing culture values, only migrate invariant values if no value exists for that culture+segment
79
+ for (const value of valuesOfAlias) {
80
+ if (value.culture !== null) {
81
+ // Keep existing culture values as-is
82
+ result.push(value);
83
+ }
84
+ else {
85
+ // Invariant value: only migrate if no value exists for default language + same segment
86
+ const existingCultureValue = valuesOfAlias.find((v) => v.culture === defaultLanguage && v.segment === value.segment);
87
+ if (!existingCultureValue) {
88
+ result.push({ ...value, culture: defaultLanguage });
89
+ }
90
+ }
91
+ }
92
+ }
93
+ else {
94
+ // Variant → Invariant: keep existing invariant values, only migrate culture values if no invariant value exists for that segment
95
+ const cultureToKeep = valuesOfAlias.some((v) => v.culture === defaultLanguage)
96
+ ? defaultLanguage
97
+ : valuesOfAlias[0]?.culture;
98
+ for (const value of valuesOfAlias) {
99
+ if (value.culture === null) {
100
+ // Keep existing invariant values as-is
101
+ result.push(value);
102
+ }
103
+ else if (value.culture === cultureToKeep) {
104
+ // Culture value: only migrate if no invariant value exists for the same segment
105
+ const existingInvariantValue = valuesOfAlias.find((v) => v.culture === null && v.segment === value.segment);
106
+ if (!existingInvariantValue) {
107
+ result.push({ ...value, culture: null });
108
+ }
109
+ }
110
+ // Discard values from other cultures
111
+ }
112
+ }
70
113
  }
114
+ return { values: result, hasChanges };
71
115
  }
72
116
  }
@@ -3,6 +3,7 @@ import type { UmbWorkspaceViewElement } from '../../../../../core/workspace/inde
3
3
  import './content-editor-tab.element.js';
4
4
  export declare class UmbContentWorkspaceViewEditElement extends UmbLitElement implements UmbWorkspaceViewElement {
5
5
  #private;
6
+ private _hasRootProperties;
6
7
  private _loaded;
7
8
  private _hasRootGroups;
8
9
  private _routes;
@@ -12,16 +12,12 @@ import { UmbTextStyles } from '../../../../../core/style/index.js';
12
12
  import { UMB_VIEW_CONTEXT, UmbViewController } from '../../../../../core/view/index.js';
13
13
  import './content-editor-tab.element.js';
14
14
  let UmbContentWorkspaceViewEditElement = class UmbContentWorkspaceViewEditElement extends UmbLitElement {
15
- /*
16
- // root properties is a possible feature with Bellissima, but as it is new its not fully implemented yet [NL]
17
- @state()
18
- private _hasRootProperties = false;
19
- */
20
15
  #viewContext;
21
16
  #tabViewContexts;
22
17
  #structureManager;
23
18
  constructor() {
24
19
  super();
20
+ this._hasRootProperties = false;
25
21
  this._loaded = false;
26
22
  this._hasRootGroups = false;
27
23
  this._routes = [];
@@ -41,7 +37,10 @@ let UmbContentWorkspaceViewEditElement = class UmbContentWorkspaceViewEditElemen
41
37
  this._tabs = tabs;
42
38
  this.#createRoutes();
43
39
  }, null);
44
- // _hasRootProperties can be gotten via _tabsStructureHelper.hasProperties. But we do not support root properties currently.
40
+ this.observe(this._tabsStructureHelper.hasProperties, (hasRootProperties) => {
41
+ this._hasRootProperties = hasRootProperties;
42
+ this.#createRoutes();
43
+ }, 'observeRootProperties');
45
44
  this.consumeContext(UMB_PROPERTY_STRUCTURE_WORKSPACE_CONTEXT, (workspaceContext) => {
46
45
  this.#structureManager = workspaceContext?.structure;
47
46
  this._tabsStructureHelper.setStructureManager(workspaceContext?.structure);
@@ -63,7 +62,7 @@ let UmbContentWorkspaceViewEditElement = class UmbContentWorkspaceViewEditElemen
63
62
  if (!this._tabs || !this.#structureManager)
64
63
  return;
65
64
  const routes = [];
66
- if (this._hasRootGroups) {
65
+ if (this._hasRootGroups || this._hasRootProperties) {
67
66
  routes.push({
68
67
  path: 'root',
69
68
  component: () => import('./content-editor-tab.element.js'),
@@ -147,9 +146,12 @@ let UmbContentWorkspaceViewEditElement = class UmbContentWorkspaceViewEditElemen
147
146
  }
148
147
  return html `
149
148
  <umb-body-layout header-fit-height>
150
- ${this._routerPath && (this._tabs.length > 1 || (this._tabs.length === 1 && this._hasRootGroups))
149
+ ${this._routerPath &&
150
+ (this._tabs.length > 1 || (this._tabs.length === 1 && (this._hasRootGroups || this._hasRootProperties)))
151
151
  ? html ` <uui-tab-group slot="header">
152
- ${this._hasRootGroups && this._tabs.length > 0 ? this.#renderTab(null, '#general_generic') : nothing}
152
+ ${(this._hasRootGroups || this._hasRootProperties) && this._tabs.length > 0
153
+ ? this.#renderTab(null, '#general_generic')
154
+ : nothing}
153
155
  ${repeat(this._tabs, (tab) => tab.name, (tab, index) => {
154
156
  const path = 'tab/' + encodeFolderName(tab.name || '');
155
157
  return this.#renderTab(path, tab.name, index);
@@ -196,9 +198,15 @@ let UmbContentWorkspaceViewEditElement = class UmbContentWorkspaceViewEditElemen
196
198
  height: 100%;
197
199
  --uui-tab-background: var(--uui-color-surface);
198
200
  }
201
+ umb-badge {
202
+ --uui-badge-inset: 0 0 auto auto;
203
+ }
199
204
  `,
200
205
  ]; }
201
206
  };
207
+ __decorate([
208
+ state()
209
+ ], UmbContentWorkspaceViewEditElement.prototype, "_hasRootProperties", void 0);
202
210
  __decorate([
203
211
  state()
204
212
  ], UmbContentWorkspaceViewEditElement.prototype, "_loaded", void 0);
@@ -7,6 +7,12 @@ export declare class UmbCompositionPickerModalElement extends UmbModalBaseElemen
7
7
  private _selection;
8
8
  private _usedForInheritance;
9
9
  private _usedForComposition;
10
+ /**
11
+ * Loading state for the composition data fetch.
12
+ * Initialized to true to show loader immediately when modal opens.
13
+ * Set to false when data is successfully loaded or an error occurs.
14
+ */
15
+ private _loading;
10
16
  connectedCallback(): void;
11
17
  protected _submitModal(): Promise<void>;
12
18
  render(): import("lit-html").TemplateResult<1>;
@@ -16,6 +16,12 @@ let UmbCompositionPickerModalElement = class UmbCompositionPickerModalElement ex
16
16
  this._selection = [];
17
17
  this._usedForInheritance = [];
18
18
  this._usedForComposition = [];
19
+ /**
20
+ * Loading state for the composition data fetch.
21
+ * Initialized to true to show loader immediately when modal opens.
22
+ * Set to false when data is successfully loaded or an error occurs.
23
+ */
24
+ this._loading = true;
19
25
  }
20
26
  // TODO: Loosen this from begin specific to Document Types, so we can have a general interface for composition repositories. [NL]
21
27
  #compositionRepository;
@@ -81,14 +87,17 @@ let UmbCompositionPickerModalElement = class UmbCompositionPickerModalElement ex
81
87
  currentCompositeUniques: this._selection,
82
88
  currentPropertyAliases: currentPropertyAliases,
83
89
  });
84
- if (!data)
90
+ if (!data) {
91
+ this._loading = false;
85
92
  return;
93
+ }
86
94
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
87
95
  // @ts-expect-error
88
96
  const grouped = Object.groupBy(data, (item) => '/' + item.folderPath.join('/'));
89
97
  this._compatibleCompositions = Object.keys(grouped)
90
98
  .sort((a, b) => a.localeCompare(b))
91
99
  .map((key) => ({ path: key, compositions: grouped[key] }));
100
+ this._loading = false;
92
101
  }
93
102
  #onSelectionAdd(unique) {
94
103
  this._selection = [...this._selection, unique];
@@ -142,6 +151,11 @@ let UmbCompositionPickerModalElement = class UmbCompositionPickerModalElement ex
142
151
  `;
143
152
  }
144
153
  #renderAvailableCompositions() {
154
+ if (this._loading) {
155
+ return html `<div id="loader" role="status" aria-live="polite" aria-label="Loading compositions">
156
+ <uui-loader></uui-loader>
157
+ </div>`;
158
+ }
145
159
  if (this._compatibleCompositions) {
146
160
  return html `
147
161
  <umb-localize key="contentTypeEditor_compositionsDescription">
@@ -191,6 +205,14 @@ let UmbCompositionPickerModalElement = class UmbCompositionPickerModalElement ex
191
205
  }
192
206
  static { this.styles = [
193
207
  css `
208
+ #loader {
209
+ display: flex;
210
+ justify-content: center;
211
+ align-items: center;
212
+ padding: var(--uui-size-layout-1);
213
+ min-height: 200px;
214
+ }
215
+
194
216
  uui-input {
195
217
  margin: var(--uui-size-6) 0;
196
218
  display: flex;
@@ -234,6 +256,9 @@ __decorate([
234
256
  __decorate([
235
257
  state()
236
258
  ], UmbCompositionPickerModalElement.prototype, "_usedForComposition", void 0);
259
+ __decorate([
260
+ state()
261
+ ], UmbCompositionPickerModalElement.prototype, "_loading", void 0);
237
262
  UmbCompositionPickerModalElement = __decorate([
238
263
  customElement('umb-composition-picker-modal')
239
264
  ], UmbCompositionPickerModalElement);
@@ -52,7 +52,27 @@ export class UmbContentTypePropertyStructureHelper extends UmbControllerBase {
52
52
  return this.#containerId;
53
53
  }
54
54
  #observeContainer() {
55
- this.observe(this.#containerId ? this.#structure?.mergedContainersOfId(this.#containerId) : undefined, (container) => {
55
+ // Handle three cases:
56
+ // 1. containerId === undefined → Not set yet, clear properties
57
+ // 2. containerId === null → Root properties (no container)
58
+ // 3. containerId === string → Container-based properties
59
+ if (this.#containerId === undefined) {
60
+ // Not set yet, clear properties
61
+ this.#propertyStructure.setValue([]);
62
+ this.removeUmbControllerByAlias('observeProperties');
63
+ this.removeUmbControllerByAlias('observeContainer');
64
+ return;
65
+ }
66
+ if (this.#containerId === null) {
67
+ // Root properties (no container)
68
+ this.removeUmbControllerByAlias('observeContainer');
69
+ this.observe(this.#structure?.rootPropertyStructures(), (properties) => {
70
+ this.#propertyStructure.setValue(properties ?? []);
71
+ }, 'observeProperties');
72
+ return;
73
+ }
74
+ // Container-based properties
75
+ this.observe(this.#structure?.mergedContainersOfId(this.#containerId), (container) => {
56
76
  this.observe(container ? this.#structure?.propertyStructuresOfGroupIds(container.ids ?? []) : undefined, (properties) => {
57
77
  this.#propertyStructure.setValue(properties ?? []);
58
78
  }, 'observeProperties');
@@ -67,6 +67,7 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
67
67
  this.ownerContentTypeAlias = createObservablePart(this.ownerContentType, (x) => x?.alias);
68
68
  this.ownerContentTypeName = createObservablePart(this.ownerContentType, (x) => x?.name);
69
69
  this.ownerContentTypeCompositions = createObservablePart(this.ownerContentType, (x) => x?.compositions);
70
+ // TODO: for v.18 make it pausable for this to be undefined when no content-type are present. [NL]
70
71
  this.contentTypeCompositions = this.#contentTypes.asObservablePart((contentTypes) => {
71
72
  return contentTypes.flatMap((x) => x.compositions ?? []);
72
73
  });
@@ -628,7 +629,7 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
628
629
  const props = [];
629
630
  docTypes.forEach((docType) => {
630
631
  docType.properties?.forEach((property) => {
631
- if (property.container?.id === containerId) {
632
+ if ((containerId === null && !property.container) || property.container?.id === containerId) {
632
633
  props.push(property);
633
634
  }
634
635
  });