@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
@@ -83,7 +83,7 @@ let UmbContentTypeDesignEditorElement = class UmbContentTypeDesignEditorElement
83
83
  });
84
84
  this.#designContext = new UmbContentTypeDesignEditorContext(this);
85
85
  this.#tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this);
86
- //private _hasRootProperties = false;
86
+ this._hasRootProperties = false;
87
87
  this._hasRootGroups = false;
88
88
  this._activePath = '';
89
89
  this.#sorter.disable();
@@ -103,7 +103,10 @@ let UmbContentTypeDesignEditorElement = class UmbContentTypeDesignEditorElement
103
103
  this.#sorter.setModel(tabs);
104
104
  this.#createRoutes();
105
105
  });
106
- // _hasRootProperties can be gotten via _tabsStructureHelper.hasProperties. But we do not support root properties currently.
106
+ this.observe(this.#tabsStructureHelper.hasProperties, (hasRootProperties) => {
107
+ this._hasRootProperties = hasRootProperties;
108
+ this.#createRoutes();
109
+ }, 'observeRootProperties');
107
110
  this.consumeContext(UMB_CONTENT_TYPE_WORKSPACE_CONTEXT, (workspaceContext) => {
108
111
  this.#workspaceContext = workspaceContext;
109
112
  this.#tabsStructureHelper.setStructureManager(workspaceContext?.structure);
@@ -152,7 +155,7 @@ let UmbContentTypeDesignEditorElement = class UmbContentTypeDesignEditorElement
152
155
  this.#currentTabComponent.containerId = null;
153
156
  },
154
157
  });
155
- if (this._hasRootGroups || this._tabs.length === 0) {
158
+ if (this._hasRootGroups || this._hasRootProperties || this._tabs.length === 0) {
156
159
  routes.push({
157
160
  path: '',
158
161
  pathMatch: 'full',
@@ -425,15 +428,15 @@ let UmbContentTypeDesignEditorElement = class UmbContentTypeDesignEditorElement
425
428
  renderRootTab() {
426
429
  const path = this._routerPath + '/root';
427
430
  const rootTabActive = path === this._activePath;
428
- if (!this._hasRootGroups && !this._sortModeActive) {
429
- // If we don't have any root groups and we are not in sort mode, then we don't want to render the root tab.
431
+ if (!this._hasRootGroups && !this._hasRootProperties && !this._sortModeActive) {
432
+ // If we don't have any root groups/properties and we are not in sort mode, then we don't want to render the root tab.
430
433
  return nothing;
431
434
  }
432
435
  return html `
433
436
  <uui-tab
434
437
  id="root-tab"
435
438
  data-mark="root-tab"
436
- class=${this._hasRootGroups || rootTabActive ? '' : 'content-tab-is-empty'}
439
+ class=${this._hasRootGroups || this._hasRootProperties || rootTabActive ? '' : 'content-tab-is-empty'}
437
440
  label=${this.localize.term('general_generic')}
438
441
  .active=${rootTabActive}
439
442
  href=${path}
@@ -656,6 +659,9 @@ let UmbContentTypeDesignEditorElement = class UmbContentTypeDesignEditorElement
656
659
  __decorate([
657
660
  state()
658
661
  ], UmbContentTypeDesignEditorElement.prototype, "_compositionRepositoryAlias", void 0);
662
+ __decorate([
663
+ state()
664
+ ], UmbContentTypeDesignEditorElement.prototype, "_hasRootProperties", void 0);
659
665
  __decorate([
660
666
  state()
661
667
  ], UmbContentTypeDesignEditorElement.prototype, "_hasRootGroups", void 0);
@@ -18,6 +18,8 @@ export class UmbAuthContext extends UmbContextBase {
18
18
  #authFlow;
19
19
  #authWindowProxy;
20
20
  #previousAuthUrl;
21
+ // Event handler for storage events - arrow function to maintain consistent reference
22
+ #onStorageEvent;
21
23
  /**
22
24
  * Observable that acts as a signal for when the authorization state changes.
23
25
  * @remark It will emit once per second, so it can be used to trigger UI updates or other actions when the authorization state changes.
@@ -34,6 +36,17 @@ export class UmbAuthContext extends UmbContextBase {
34
36
  // Timeout is different from `isAuthorized` because it can occur repeatedly
35
37
  this.#isTimeout = new Subject();
36
38
  this.#isInitialized = new ReplaySubject(1);
39
+ // Event handler for storage events - arrow function to maintain consistent reference
40
+ this.#onStorageEvent = async (evt) => {
41
+ if (evt.key === UMB_STORAGE_TOKEN_RESPONSE_NAME) {
42
+ // Close any open auth windows
43
+ this.#authWindowProxy?.close();
44
+ // Refresh the local storage state into memory
45
+ await this.setInitialState();
46
+ // Let any auth listeners (such as the auth modal) know that the auth state has changed
47
+ this.#authFlow.authorizationSignal.next();
48
+ }
49
+ };
37
50
  /**
38
51
  * Observable that emits true when the auth context is initialized.
39
52
  * @remark It will only emit once and then complete itself.
@@ -64,7 +77,7 @@ export class UmbAuthContext extends UmbContextBase {
64
77
  }, '_authFlowAuthorizationSignal');
65
78
  // Observe changes to local storage and update the authorization state
66
79
  // This establishes the tab-to-tab communication
67
- window.addEventListener('storage', this.#onStorageEvent.bind(this));
80
+ window.addEventListener('storage', this.#onStorageEvent);
68
81
  if (!isTestEnvironment()) {
69
82
  // Start the session timeout controller
70
83
  new UmbAuthSessionTimeoutController(this, this.#authFlow);
@@ -72,17 +85,7 @@ export class UmbAuthContext extends UmbContextBase {
72
85
  }
73
86
  destroy() {
74
87
  super.destroy();
75
- window.removeEventListener('storage', this.#onStorageEvent.bind(this));
76
- }
77
- async #onStorageEvent(evt) {
78
- if (evt.key === UMB_STORAGE_TOKEN_RESPONSE_NAME) {
79
- // Close any open auth windows
80
- this.#authWindowProxy?.close();
81
- // Refresh the local storage state into memory
82
- await this.setInitialState();
83
- // Let any auth listeners (such as the auth modal) know that the auth state has changed
84
- this.#authFlow.authorizationSignal.next();
85
- }
88
+ window.removeEventListener('storage', this.#onStorageEvent);
86
89
  }
87
90
  /**
88
91
  * Initiates the login flow.
@@ -363,6 +363,7 @@ export type CreateUserDataRequestModel = {
363
363
  export type CreateUserGroupRequestModel = {
364
364
  name: string;
365
365
  alias: string;
366
+ description?: string | null;
366
367
  icon?: string | null;
367
368
  sections: Array<string>;
368
369
  languages: Array<string>;
@@ -2408,6 +2409,7 @@ export type UpdateUserDataRequestModel = {
2408
2409
  export type UpdateUserGroupRequestModel = {
2409
2410
  name: string;
2410
2411
  alias: string;
2412
+ description?: string | null;
2411
2413
  icon?: string | null;
2412
2414
  sections: Array<string>;
2413
2415
  languages: Array<string>;
@@ -2497,6 +2499,7 @@ export type UserGroupItemResponseModel = {
2497
2499
  export type UserGroupResponseModel = {
2498
2500
  name: string;
2499
2501
  alias: string;
2502
+ description?: string | null;
2500
2503
  icon?: string | null;
2501
2504
  sections: Array<string>;
2502
2505
  languages: Array<string>;
@@ -5802,7 +5805,12 @@ export type GetDocumentByIdReferencedByErrors = {
5802
5805
  * The authenticated user does not have access to this resource
5803
5806
  */
5804
5807
  403: unknown;
5808
+ /**
5809
+ * Not Found
5810
+ */
5811
+ 404: ProblemDetails;
5805
5812
  };
5813
+ export type GetDocumentByIdReferencedByError = GetDocumentByIdReferencedByErrors[keyof GetDocumentByIdReferencedByErrors];
5806
5814
  export type GetDocumentByIdReferencedByResponses = {
5807
5815
  /**
5808
5816
  * OK
@@ -5830,7 +5838,12 @@ export type GetDocumentByIdReferencedDescendantsErrors = {
5830
5838
  * The authenticated user does not have access to this resource
5831
5839
  */
5832
5840
  403: unknown;
5841
+ /**
5842
+ * Not Found
5843
+ */
5844
+ 404: ProblemDetails;
5833
5845
  };
5846
+ export type GetDocumentByIdReferencedDescendantsError = GetDocumentByIdReferencedDescendantsErrors[keyof GetDocumentByIdReferencedDescendantsErrors];
5834
5847
  export type GetDocumentByIdReferencedDescendantsResponses = {
5835
5848
  /**
5836
5849
  * OK
@@ -8401,7 +8414,12 @@ export type GetMediaByIdReferencedByErrors = {
8401
8414
  * The authenticated user does not have access to this resource
8402
8415
  */
8403
8416
  403: unknown;
8417
+ /**
8418
+ * Not Found
8419
+ */
8420
+ 404: ProblemDetails;
8404
8421
  };
8422
+ export type GetMediaByIdReferencedByError = GetMediaByIdReferencedByErrors[keyof GetMediaByIdReferencedByErrors];
8405
8423
  export type GetMediaByIdReferencedByResponses = {
8406
8424
  /**
8407
8425
  * OK
@@ -8429,7 +8447,12 @@ export type GetMediaByIdReferencedDescendantsErrors = {
8429
8447
  * The authenticated user does not have access to this resource
8430
8448
  */
8431
8449
  403: unknown;
8450
+ /**
8451
+ * Not Found
8452
+ */
8453
+ 404: ProblemDetails;
8432
8454
  };
8455
+ export type GetMediaByIdReferencedDescendantsError = GetMediaByIdReferencedDescendantsErrors[keyof GetMediaByIdReferencedDescendantsErrors];
8433
8456
  export type GetMediaByIdReferencedDescendantsResponses = {
8434
8457
  /**
8435
8458
  * OK
@@ -10016,7 +10039,12 @@ export type GetMemberByIdReferencedByErrors = {
10016
10039
  * The authenticated user does not have access to this resource
10017
10040
  */
10018
10041
  403: unknown;
10042
+ /**
10043
+ * Not Found
10044
+ */
10045
+ 404: ProblemDetails;
10019
10046
  };
10047
+ export type GetMemberByIdReferencedByError = GetMemberByIdReferencedByErrors[keyof GetMemberByIdReferencedByErrors];
10020
10048
  export type GetMemberByIdReferencedByResponses = {
10021
10049
  /**
10022
10050
  * OK
@@ -10044,7 +10072,12 @@ export type GetMemberByIdReferencedDescendantsErrors = {
10044
10072
  * The authenticated user does not have access to this resource
10045
10073
  */
10046
10074
  403: unknown;
10075
+ /**
10076
+ * Not Found
10077
+ */
10078
+ 404: ProblemDetails;
10047
10079
  };
10080
+ export type GetMemberByIdReferencedDescendantsError = GetMemberByIdReferencedDescendantsErrors[keyof GetMemberByIdReferencedDescendantsErrors];
10048
10081
  export type GetMemberByIdReferencedDescendantsResponses = {
10049
10082
  /**
10050
10083
  * OK
@@ -28,7 +28,7 @@ let UmbCollectionActionButtonElement = class UmbCollectionActionButtonElement ex
28
28
  throw new Error('No manifest defined');
29
29
  if (!this._manifest.api)
30
30
  return;
31
- this.#api = await createExtensionApi(this, this._manifest);
31
+ this.#api = await createExtensionApi(this, this._manifest, [this._manifest]);
32
32
  this._href = (await this.#api?.getHref?.()) ?? this.manifest?.meta.href;
33
33
  this._additionalOptions = (await this.#api?.hasAddionalOptions?.()) ?? this.manifest?.meta.additionalOptions;
34
34
  }
@@ -19,11 +19,11 @@ let UmbCollectionCreateActionButtonElement = class UmbCollectionCreateActionButt
19
19
  this._popoverOpen = event.newState === 'open';
20
20
  }
21
21
  async #onClick(event, controller, href) {
22
- event.stopPropagation();
23
22
  // skip if href is defined
24
23
  if (href) {
25
24
  return;
26
25
  }
26
+ event.stopPropagation();
27
27
  if (!controller.api)
28
28
  throw new Error('No API found');
29
29
  await controller.api.execute().catch(() => { });
@@ -1,5 +1,5 @@
1
+ import type { UmbCollectionBulkActionConfiguration } from '../types.js';
1
2
  import { UmbControllerBase } from '../../../../libs/class-api/index.js';
2
- import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
3
3
  /**
4
4
  * Manager responsible for tracking the availability of bulk actions in a collection.
5
5
  */
@@ -11,8 +11,13 @@ export declare class UmbCollectionBulkActionManager extends UmbControllerBase {
11
11
  */
12
12
  readonly hasBulkActions: import("rxjs").Observable<boolean | undefined>;
13
13
  /**
14
- * Creates a new instance of the bulk action manager.
15
- * @param {UmbControllerHost} host - The controller host that owns this manager.
14
+ * Sets the configuration for the bulk action manager.
15
+ * @param {UmbCollectionBulkActionConfiguration | undefined} config - Configuration for the bulk action manager.
16
16
  */
17
- constructor(host: UmbControllerHost);
17
+ setConfig(config: UmbCollectionBulkActionConfiguration | undefined): void;
18
+ /**
19
+ * Gets the current configuration.
20
+ * @returns {UmbCollectionBulkActionConfiguration | undefined} The current configuration.
21
+ */
22
+ getConfig(): UmbCollectionBulkActionConfiguration | undefined;
18
23
  }
@@ -2,28 +2,58 @@ import { UmbControllerBase } from '../../../../libs/class-api/index.js';
2
2
  import { UmbExtensionsManifestInitializer } from '../../../../libs/extension-api/index.js';
3
3
  import { umbExtensionsRegistry } from '../../extension-registry/index.js';
4
4
  import { UmbBooleanState } from '../../../../libs/observable-api/index.js';
5
+ const observerAlias = 'umbCollectionBulkActionsObserver';
5
6
  /**
6
7
  * Manager responsible for tracking the availability of bulk actions in a collection.
7
8
  */
8
9
  export class UmbCollectionBulkActionManager extends UmbControllerBase {
9
- #hasBulkActions;
10
- /**
11
- * Creates a new instance of the bulk action manager.
12
- * @param {UmbControllerHost} host - The controller host that owns this manager.
13
- */
14
- constructor(host) {
15
- super(host);
10
+ constructor() {
11
+ super(...arguments);
16
12
  this.#hasBulkActions = new UmbBooleanState(undefined);
17
13
  /**
18
14
  * Observable that emits `true` if bulk actions are available, `false` if none are registered,
19
15
  * or `undefined` if the state has not yet been determined.
20
16
  */
21
17
  this.hasBulkActions = this.#hasBulkActions.asObservable();
22
- this.#observeBulkActions();
18
+ }
19
+ #hasBulkActions;
20
+ #config;
21
+ /**
22
+ * Sets the configuration for the bulk action manager.
23
+ * @param {UmbCollectionBulkActionConfiguration | undefined} config - Configuration for the bulk action manager.
24
+ */
25
+ setConfig(config) {
26
+ const oldConfig = this.#config;
27
+ this.#config = config;
28
+ this.#toggleFeature(oldConfig, config);
29
+ }
30
+ /**
31
+ * Gets the current configuration.
32
+ * @returns {UmbCollectionBulkActionConfiguration | undefined} The current configuration.
33
+ */
34
+ getConfig() {
35
+ return this.#config;
36
+ }
37
+ #toggleFeature(oldConfig, newConfig) {
38
+ // Handle enabling/disabling bulk actions based on the new configuration.
39
+ // Only disable if explicitly set to false.
40
+ if (newConfig?.enabled === false) {
41
+ // Avoid unnecessary operations if bulk actions are already disabled.
42
+ if (oldConfig?.enabled === false && newConfig?.enabled === false)
43
+ return;
44
+ this.removeUmbControllerByAlias(observerAlias);
45
+ this.#hasBulkActions.setValue(false);
46
+ }
47
+ else {
48
+ // Avoid unnecessary operations if bulk actions are already enabled.
49
+ if (oldConfig?.enabled === true && newConfig?.enabled === true)
50
+ return;
51
+ this.#observeBulkActions();
52
+ }
23
53
  }
24
54
  #observeBulkActions() {
25
55
  new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'entityBulkAction', null, (bulkActionControllers) => {
26
56
  this.#hasBulkActions.setValue(bulkActionControllers.length > 0);
27
- });
57
+ }, observerAlias);
28
58
  }
29
59
  }
@@ -5,10 +5,12 @@ export declare class UmbCollectionItemPickerModalElement extends UmbModalBaseEle
5
5
  #private;
6
6
  private _selectionConfiguration;
7
7
  private _hasSelection;
8
+ private _isSearchable;
8
9
  private _searchQuery?;
9
10
  constructor();
10
11
  protected updated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): Promise<void>;
11
12
  render(): import("lit-html").TemplateResult<1>;
13
+ static styles: import("lit").CSSResult[];
12
14
  }
13
15
  export { UmbCollectionItemPickerModalElement as element };
14
16
  declare global {
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { UmbCollectionItemPickerContext } from './collection-item-picker-modal.context.js';
8
- import { html, customElement, state, nothing, ifDefined } from '../../../../external/lit/index.js';
8
+ import { html, customElement, state, nothing, ifDefined, css, classMap } from '../../../../external/lit/index.js';
9
9
  import { UmbModalBaseElement } from '../../modal/index.js';
10
10
  import { UmbDeselectedEvent, UmbSelectedEvent } from '../../event/index.js';
11
11
  let UmbCollectionItemPickerModalElement = class UmbCollectionItemPickerModalElement extends UmbModalBaseElement {
@@ -15,9 +15,11 @@ let UmbCollectionItemPickerModalElement = class UmbCollectionItemPickerModalElem
15
15
  this._selectionConfiguration = {
16
16
  multiple: false,
17
17
  selectable: true,
18
+ selectOnly: true,
18
19
  selection: [],
19
20
  };
20
21
  this._hasSelection = false;
22
+ this._isSearchable = false;
21
23
  this.#pickerContext = new UmbCollectionItemPickerContext(this);
22
24
  this.#searchSelectableFilter = () => true;
23
25
  this.#pickerContext.selection.setSelectable(true);
@@ -40,6 +42,7 @@ let UmbCollectionItemPickerModalElement = class UmbCollectionItemPickerModalElem
40
42
  this._selectionConfiguration = {
41
43
  ...this._selectionConfiguration,
42
44
  multiple,
45
+ selectableFilter: this.data?.pickableFilter,
43
46
  };
44
47
  }
45
48
  if (_changedProperties.has('value')) {
@@ -47,7 +50,7 @@ let UmbCollectionItemPickerModalElement = class UmbCollectionItemPickerModalElem
47
50
  this.#pickerContext.selection.setSelection(selection);
48
51
  this._selectionConfiguration = {
49
52
  ...this._selectionConfiguration,
50
- selection: [...selection],
53
+ selection: [...selection].filter((x) => x !== null),
51
54
  };
52
55
  }
53
56
  }
@@ -58,9 +61,10 @@ let UmbCollectionItemPickerModalElement = class UmbCollectionItemPickerModalElem
58
61
  }, 'umbPickerSelectionObserver');
59
62
  }
60
63
  #observeSearch() {
64
+ this.observe(this.#pickerContext?.search.searchable, (isSearchable) => (this._isSearchable = isSearchable ?? false), null);
61
65
  this.observe(this.#pickerContext.search.query, (query) => {
62
66
  this._searchQuery = query?.query;
63
- }, 'umbPickerSearchQueryObserver');
67
+ }, null);
64
68
  }
65
69
  #onItemSelected(event) {
66
70
  event.stopPropagation();
@@ -74,34 +78,57 @@ let UmbCollectionItemPickerModalElement = class UmbCollectionItemPickerModalElem
74
78
  }
75
79
  #searchSelectableFilter;
76
80
  render() {
81
+ const renderCollection = !!this.data?.collection.alias;
77
82
  return html `
78
- <umb-body-layout headline=${this.localize.term('general_choose')}>
79
- <uui-box> ${this.#renderSearch()} ${this.#renderCollection()}</uui-box>
80
- ${this.#renderActions()}
83
+ <umb-body-layout
84
+ headline="${this.localize.term('general_choose')}"
85
+ ?main-no-padding=${renderCollection}
86
+ class=${classMap({ 'has-search': this._isSearchable, 'is-searching': !!this._searchQuery })}>
87
+ ${this.#renderSearch()} ${this.#renderMain(renderCollection)} ${this.#renderActions()}
81
88
  </umb-body-layout>
82
89
  `;
83
90
  }
84
91
  #renderSearch() {
92
+ if (!this._isSearchable)
93
+ return nothing;
85
94
  const selectableFilter = this.data?.search?.pickableFilter ?? this.data?.pickableFilter ?? this.#searchSelectableFilter;
86
95
  return html `
87
- <umb-picker-search-field></umb-picker-search-field>
88
- <umb-picker-search-result .pickableFilter=${selectableFilter}></umb-picker-search-result>
96
+ <div id="search-container">
97
+ <umb-picker-search-field></umb-picker-search-field>
98
+ <umb-picker-search-result .pickableFilter=${selectableFilter}></umb-picker-search-result>
99
+ </div>
89
100
  `;
90
101
  }
102
+ #renderMain(hasCollectionAlias) {
103
+ return html ` ${hasCollectionAlias ? this.#renderCollection() : this.#renderCollectionMenu()} `;
104
+ }
91
105
  #renderCollection() {
92
- if (this._searchQuery) {
93
- return nothing;
94
- }
95
- return html ` <umb-collection-menu
96
- alias=${ifDefined(this.data?.collection?.menuAlias)}
97
- .props=${{
106
+ return html `
107
+ <umb-collection
108
+ alias=${ifDefined(this.data?.collection.alias)}
109
+ .config=${{
110
+ selectionConfiguration: this._selectionConfiguration,
111
+ bulkActionConfiguration: { enabled: false },
112
+ }}
113
+ @selected=${this.#onItemSelected}
114
+ @deselected=${this.#onItemDeselected}></umb-collection>
115
+ `;
116
+ }
117
+ #renderCollectionMenu() {
118
+ return html `
119
+ <uui-box id="collection-menu-box"
120
+ ><umb-collection-menu
121
+ alias=${ifDefined(this.data?.collection?.menuAlias)}
122
+ .props=${{
98
123
  selectionConfiguration: this._selectionConfiguration,
99
124
  filterArgs: this.data?.collection?.filterArgs,
100
125
  filter: this.data?.filter,
101
126
  selectableFilter: this.data?.pickableFilter,
102
127
  }}
103
- @selected=${this.#onItemSelected}
104
- @deselected=${this.#onItemDeselected}></umb-collection-menu>`;
128
+ @selected=${this.#onItemSelected}
129
+ @deselected=${this.#onItemDeselected}></umb-collection-menu
130
+ ></uui-box>
131
+ `;
105
132
  }
106
133
  #renderActions() {
107
134
  return html `
@@ -116,6 +143,32 @@ let UmbCollectionItemPickerModalElement = class UmbCollectionItemPickerModalElem
116
143
  </div>
117
144
  `;
118
145
  }
146
+ static { this.styles = [
147
+ css `
148
+ umb-collection {
149
+ display: block;
150
+ height: fit-content;
151
+ }
152
+
153
+ umb-body-layout[main-no-padding].has-search {
154
+ #search-container {
155
+ padding: var(--uui-size-layout-1);
156
+ padding-bottom: 0;
157
+ }
158
+
159
+ umb-collection {
160
+ margin-top: calc(-1 * var(--uui-size-4));
161
+ }
162
+ }
163
+
164
+ umb-body-layout.is-searching {
165
+ umb-collection,
166
+ #collection-menu-box {
167
+ display: none;
168
+ }
169
+ }
170
+ `,
171
+ ]; }
119
172
  };
120
173
  __decorate([
121
174
  state()
@@ -123,6 +176,9 @@ __decorate([
123
176
  __decorate([
124
177
  state()
125
178
  ], UmbCollectionItemPickerModalElement.prototype, "_hasSelection", void 0);
179
+ __decorate([
180
+ state()
181
+ ], UmbCollectionItemPickerModalElement.prototype, "_isSearchable", void 0);
126
182
  __decorate([
127
183
  state()
128
184
  ], UmbCollectionItemPickerModalElement.prototype, "_searchQuery", void 0);
@@ -4,7 +4,8 @@ export interface UmbCollectionItemPickerModalData<CollectionItemType = UmbEntity
4
4
  collection: UmbCollectionItemPickerModalCollectionConfig;
5
5
  }
6
6
  export interface UmbCollectionItemPickerModalCollectionConfig<FilterArgsType = Record<string, unknown>> {
7
- menuAlias: string;
7
+ alias?: string;
8
+ menuAlias?: string;
8
9
  filterArgs?: FilterArgsType;
9
10
  }
10
11
  export interface UmbCollectionItemPickerModalValue extends UmbPickerModalValue {
@@ -12,6 +12,7 @@ export declare class UmbCollectionElement<ConfigType extends UmbCollectionConfig
12
12
  set filter(newVal: FilterType | undefined);
13
13
  get filter(): FilterType | undefined;
14
14
  protected apiChanged(api: UmbApi | undefined): void;
15
+ getSelection(): any;
15
16
  }
16
17
  declare global {
17
18
  interface HTMLElementTagNameMap {
@@ -48,6 +48,12 @@ let UmbCollectionElement = class UmbCollectionElement extends UmbExtensionElemen
48
48
  // @ts-ignore
49
49
  this._api.setFilter(this.#filter);
50
50
  }
51
+ getSelection() {
52
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
53
+ // @ts-ignore
54
+ // TODO: make base interface for a collection menu element
55
+ return this._element?.getSelection?.() ?? [];
56
+ }
51
57
  };
52
58
  __decorate([
53
59
  property({ type: Object, attribute: false })
@@ -24,8 +24,8 @@ let UmbCollectionFilterFieldElement = class UmbCollectionFilterFieldElement exte
24
24
  render() {
25
25
  return html `
26
26
  <uui-input
27
- label=${this.localize.term('general_search')}
28
- placeholder=${this.localize.term('placeholders_search')}
27
+ label=${this.localize.term('general_filter')}
28
+ placeholder=${this.localize.term('placeholders_filter')}
29
29
  @input=${this.#onInput}></uui-input>
30
30
  `;
31
31
  }
@@ -6,6 +6,7 @@ export declare class UmbCollectionSelectionActionsElement extends UmbLitElement
6
6
  private _totalItems;
7
7
  private _selectionLength;
8
8
  private _apiProps;
9
+ private _hasBulkActions;
9
10
  private _selection;
10
11
  private _collectionContext?;
11
12
  constructor();
@@ -24,6 +24,7 @@ let UmbCollectionSelectionActionsElement = class UmbCollectionSelectionActionsEl
24
24
  this._totalItems = 0;
25
25
  this._selectionLength = 0;
26
26
  this._apiProps = {};
27
+ this._hasBulkActions = false;
27
28
  this._selection = [];
28
29
  this.consumeContext(UMB_COLLECTION_CONTEXT, (instance) => {
29
30
  this._collectionContext = instance;
@@ -47,6 +48,9 @@ let UmbCollectionSelectionActionsElement = class UmbCollectionSelectionActionsEl
47
48
  this.observe(this._collectionContext.totalItems, (value) => {
48
49
  this._totalItems = value;
49
50
  }, 'umbTotalItemsObserver');
51
+ this.observe(this._collectionContext.bulkAction.hasBulkActions, (value) => {
52
+ this._hasBulkActions = value || false;
53
+ }, 'umbCollectionHasBulkActionsObserver');
50
54
  this.observe(this._collectionContext.selection.selection, (selection) => {
51
55
  this._selectionLength = selection.length;
52
56
  this._selection = selection;
@@ -61,6 +65,8 @@ let UmbCollectionSelectionActionsElement = class UmbCollectionSelectionActionsEl
61
65
  this._collectionContext?.selection.clearSelection();
62
66
  }
63
67
  render() {
68
+ if (!this._hasBulkActions)
69
+ return nothing;
64
70
  if (this._selectionLength === 0)
65
71
  return nothing;
66
72
  return html `
@@ -128,6 +134,9 @@ __decorate([
128
134
  __decorate([
129
135
  state()
130
136
  ], UmbCollectionSelectionActionsElement.prototype, "_apiProps", void 0);
137
+ __decorate([
138
+ state()
139
+ ], UmbCollectionSelectionActionsElement.prototype, "_hasBulkActions", void 0);
131
140
  UmbCollectionSelectionActionsElement = __decorate([
132
141
  customElement('umb-collection-selection-actions')
133
142
  ], UmbCollectionSelectionActionsElement);
@@ -1,5 +1,6 @@
1
1
  import { UmbLitElement } from '../../lit-element/index.js';
2
2
  export declare class UmbCollectionToolbarElement extends UmbLitElement {
3
+ #private;
3
4
  render(): import("lit-html").TemplateResult<1>;
4
5
  static styles: import("lit").CSSResult[];
5
6
  }
@@ -11,10 +11,14 @@ let UmbCollectionToolbarElement = class UmbCollectionToolbarElement extends UmbL
11
11
  render() {
12
12
  return html `
13
13
  <umb-collection-action-bundle></umb-collection-action-bundle>
14
+ ${this.#renderFilterExtensions()}
14
15
  <div id="slot"><slot></slot></div>
15
16
  <umb-collection-view-bundle></umb-collection-view-bundle>
16
17
  `;
17
18
  }
19
+ #renderFilterExtensions() {
20
+ return html `<umb-extension-with-api-slot single type="collectionTextFilter"></umb-extension-with-api-slot>`;
21
+ }
18
22
  static { this.styles = [
19
23
  UmbTextStyles,
20
24
  css `
@@ -0,0 +1,7 @@
1
+ import type { UmbCollectionHasItemsConditionConfig } from './types.js';
2
+ import { UmbConditionBase } from '../../extension-registry/index.js';
3
+ import type { UmbConditionControllerArguments, UmbExtensionCondition } from '../../../../libs/extension-api/index.js';
4
+ import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
5
+ export declare class UmbCollectionHasItemsCondition extends UmbConditionBase<UmbCollectionHasItemsConditionConfig> implements UmbExtensionCondition {
6
+ constructor(host: UmbControllerHost, args: UmbConditionControllerArguments<UmbCollectionHasItemsConditionConfig>);
7
+ }
@@ -0,0 +1,12 @@
1
+ import { UMB_COLLECTION_CONTEXT } from '../default/index.js';
2
+ import { UmbConditionBase } from '../../extension-registry/index.js';
3
+ export class UmbCollectionHasItemsCondition extends UmbConditionBase {
4
+ constructor(host, args) {
5
+ super(host, args);
6
+ this.consumeContext(UMB_COLLECTION_CONTEXT, (context) => {
7
+ this.observe(context?.totalItems, (totalItems) => {
8
+ this.permitted = !!totalItems && totalItems > 0;
9
+ });
10
+ });
11
+ }
12
+ }
@@ -1 +1,2 @@
1
1
  export declare const UMB_COLLECTION_ALIAS_CONDITION = "Umb.Condition.CollectionAlias";
2
+ export declare const UMB_COLLECTION_HAS_ITEMS_CONDITION_ALIAS = "Umb.Condition.CollectionHasItems";
@@ -1 +1,2 @@
1
1
  export const UMB_COLLECTION_ALIAS_CONDITION = 'Umb.Condition.CollectionAlias';
2
+ export const UMB_COLLECTION_HAS_ITEMS_CONDITION_ALIAS = 'Umb.Condition.CollectionHasItems';
@@ -1,3 +1,4 @@
1
1
  export * from './collection-alias.condition.js';
2
+ export * from './collection-has-items.condition.js';
2
3
  export * from './constants.js';
3
4
  export type * from './types.js';