@umbraco-cms/backoffice 16.3.3 → 16.4.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 (409) hide show
  1. package/README.md +8 -0
  2. package/dist-cms/apps/backoffice/components/backoffice-header-sections.element.js +3 -2
  3. package/dist-cms/apps/preview/apps/preview-exit.element.js +1 -1
  4. package/dist-cms/apps/preview/apps/preview-open-website.element.js +1 -1
  5. package/dist-cms/apps/preview/preview.context.d.ts +1 -1
  6. package/dist-cms/apps/preview/preview.context.js +24 -4
  7. package/dist-cms/apps/preview/preview.element.js +1 -1
  8. package/dist-cms/assets/lang/da.js +17 -13
  9. package/dist-cms/assets/lang/de.js +3 -0
  10. package/dist-cms/assets/lang/en.js +17 -2
  11. package/dist-cms/assets/lang/es.js +3 -0
  12. package/dist-cms/assets/lang/fr.js +1 -0
  13. package/dist-cms/assets/lang/nb.js +1 -1
  14. package/dist-cms/assets/lang/nl.js +1 -0
  15. package/dist-cms/assets/lang/pt.js +7 -0
  16. package/dist-cms/custom-elements.json +250 -18
  17. package/dist-cms/external/dompurify/package.json +1 -1
  18. package/dist-cms/external/lit/package.json +1 -1
  19. package/dist-cms/external/marked/package.json +1 -1
  20. package/dist-cms/external/monaco-editor/package.json +1 -1
  21. package/dist-cms/external/monaco-editor/vite.config.js +1 -1
  22. package/dist-cms/external/openid/src/redirect_based_handler.d.ts +6 -0
  23. package/dist-cms/external/openid/src/redirect_based_handler.js +35 -7
  24. package/dist-cms/external/uui/package.json +2 -2
  25. package/dist-cms/libs/localization-api/localization.controller.d.ts +9 -0
  26. package/dist-cms/libs/localization-api/localization.controller.js +9 -0
  27. package/dist-cms/libs/observable-api/states/array-state.d.ts +20 -0
  28. package/dist-cms/libs/observable-api/states/array-state.js +33 -0
  29. package/dist-cms/libs/observable-api/utils/index.d.ts +1 -0
  30. package/dist-cms/libs/observable-api/utils/index.js +1 -0
  31. package/dist-cms/libs/observable-api/utils/replace-in-unique-array.function.d.ts +12 -0
  32. package/dist-cms/libs/observable-api/utils/replace-in-unique-array.function.js +19 -0
  33. package/dist-cms/packages/block/block/workspace/block-workspace-editor.element.js +1 -4
  34. package/dist-cms/packages/block/block/workspace/block-workspace.context.js +37 -12
  35. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.js +16 -21
  36. package/dist-cms/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.js +7 -3
  37. package/dist-cms/packages/block/block-grid/components/block-grid-area-config-entry/workspace/views/settings.element.js +2 -2
  38. package/dist-cms/packages/block/block-grid/components/block-grid-block/block-grid-block.element.d.ts +1 -0
  39. package/dist-cms/packages/block/block-grid/components/block-grid-block/block-grid-block.element.js +4 -1
  40. package/dist-cms/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.d.ts +1 -0
  41. package/dist-cms/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.js +4 -1
  42. package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.js +3 -3
  43. package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.js +3 -1
  44. package/dist-cms/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.js +11 -2
  45. package/dist-cms/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.js +6 -0
  46. package/dist-cms/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.js +21 -13
  47. package/dist-cms/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-areas.element.js +1 -1
  48. package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.d.ts +2 -2
  49. package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.js +8 -7
  50. package/dist-cms/packages/block/block-list/components/inline-list-block/inline-list-block.element.d.ts +1 -0
  51. package/dist-cms/packages/block/block-list/components/inline-list-block/inline-list-block.element.js +4 -5
  52. package/dist-cms/packages/block/block-list/components/ref-list-block/ref-list-block.element.d.ts +1 -0
  53. package/dist-cms/packages/block/block-list/components/ref-list-block/ref-list-block.element.js +4 -1
  54. package/dist-cms/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.js +5 -4
  55. package/dist-cms/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.d.ts +1 -1
  56. package/dist-cms/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.js +6 -5
  57. package/dist-cms/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.d.ts +1 -0
  58. package/dist-cms/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.js +4 -1
  59. package/dist-cms/packages/block/block-type/components/input-block-type/input-block-type.element.js +3 -4
  60. package/dist-cms/packages/clipboard/clipboard-entry/picker/clipboard-entry-picker.element.js +1 -1
  61. package/dist-cms/packages/content/content/manager/content-data-manager.js +1 -0
  62. package/dist-cms/packages/content/content/manager/element-data-manager.js +6 -5
  63. package/dist-cms/packages/content/content/types.d.ts +8 -2
  64. package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.d.ts +4 -0
  65. package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.js +34 -10
  66. package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.d.ts +2 -1
  67. package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.js +10 -2
  68. package/dist-cms/packages/content/content-type/structure/content-type-container-structure-helper.class.js +1 -1
  69. package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.d.ts +9 -5
  70. package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.js +25 -5
  71. package/dist-cms/packages/content/content-type/workspace/content-type-workspace-context-base.js +1 -0
  72. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-group.element.js +3 -4
  73. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-property.element.js +17 -5
  74. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-tab.element.js +39 -20
  75. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor.element.js +1 -1
  76. package/dist-cms/packages/content/property-type/workspace/views/settings/property-workspace-view-settings.element.js +1 -1
  77. package/dist-cms/packages/core/auth/auth-flow.js +3 -0
  78. package/dist-cms/packages/core/backend-api/client/client.gen.js +39 -11
  79. package/dist-cms/packages/core/backend-api/client/index.d.ts +1 -0
  80. package/dist-cms/packages/core/backend-api/client/index.js +1 -0
  81. package/dist-cms/packages/core/backend-api/client/types.gen.d.ts +1 -1
  82. package/dist-cms/packages/core/backend-api/client/utils.gen.d.ts +6 -11
  83. package/dist-cms/packages/core/backend-api/client/utils.gen.js +27 -23
  84. package/dist-cms/packages/core/backend-api/client.gen.d.ts +3 -3
  85. package/dist-cms/packages/core/backend-api/core/queryKeySerializer.gen.d.ts +18 -0
  86. package/dist-cms/packages/core/backend-api/core/queryKeySerializer.gen.js +99 -0
  87. package/dist-cms/packages/core/backend-api/core/serverSentEvents.gen.d.ts +13 -1
  88. package/dist-cms/packages/core/backend-api/core/serverSentEvents.gen.js +16 -2
  89. package/dist-cms/packages/core/backend-api/core/utils.gen.d.ts +6 -1
  90. package/dist-cms/packages/core/backend-api/core/utils.gen.js +18 -0
  91. package/dist-cms/packages/core/backend-api/sdk.gen.d.ts +12 -6
  92. package/dist-cms/packages/core/backend-api/sdk.gen.js +500 -416
  93. package/dist-cms/packages/core/backend-api/types.gen.d.ts +294 -6
  94. package/dist-cms/packages/core/backend-api/types.gen.js +1 -0
  95. package/dist-cms/packages/core/collection/action/create/manifests.js +1 -1
  96. package/dist-cms/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.d.ts +4 -0
  97. package/dist-cms/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.js +39 -2
  98. package/dist-cms/packages/core/components/body-layout/body-layout.element.js +1 -1
  99. package/dist-cms/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.d.ts +1 -1
  100. package/dist-cms/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.js +18 -12
  101. package/dist-cms/packages/core/components/index.d.ts +1 -0
  102. package/dist-cms/packages/core/components/index.js +1 -0
  103. package/dist-cms/packages/core/components/input-number-range/input-number-range.element.js +1 -1
  104. package/dist-cms/packages/core/components/input-slider/input-slider.element.d.ts +8 -3
  105. package/dist-cms/packages/core/components/input-slider/input-slider.element.js +95 -9
  106. package/dist-cms/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.js +28 -5
  107. package/dist-cms/packages/core/components/split-panel/split-panel.element.d.ts +3 -2
  108. package/dist-cms/packages/core/components/split-panel/split-panel.element.js +7 -2
  109. package/dist-cms/packages/core/components/view-loader/view-loader.element.d.ts +5 -0
  110. package/dist-cms/packages/core/components/view-loader/view-loader.element.js +36 -0
  111. package/dist-cms/packages/core/culture/manifests.d.ts +1 -1
  112. package/dist-cms/packages/core/entity-action/common/create/create.action.js +1 -1
  113. package/dist-cms/packages/core/entity-action/common/create/create.action.kind.js +1 -1
  114. package/dist-cms/packages/core/entity-action/global-components/entity-actions-table-column-view/entity-actions-table-column-view.element.js +1 -1
  115. package/dist-cms/packages/core/entity-flag/index.d.ts +1 -0
  116. package/dist-cms/packages/core/entity-flag/index.js +1 -0
  117. package/dist-cms/packages/core/entity-flag/types.d.ts +10 -0
  118. package/dist-cms/packages/core/entity-flag/types.js +1 -0
  119. package/dist-cms/packages/core/entity-sign/components/entity-sign-bundle.element.d.ts +21 -0
  120. package/dist-cms/packages/core/entity-sign/components/entity-sign-bundle.element.js +257 -0
  121. package/dist-cms/packages/core/entity-sign/components/index.d.ts +1 -0
  122. package/dist-cms/packages/core/entity-sign/components/index.js +1 -0
  123. package/dist-cms/packages/core/entity-sign/extensions/entity-sign-api.interface.d.ts +18 -0
  124. package/dist-cms/packages/core/entity-sign/extensions/entity-sign-api.interface.js +1 -0
  125. package/dist-cms/packages/core/entity-sign/extensions/entity-sign-element.interface.d.ts +5 -0
  126. package/dist-cms/packages/core/entity-sign/extensions/entity-sign-element.interface.js +1 -0
  127. package/dist-cms/packages/core/entity-sign/extensions/entity-sign.extension.d.ts +20 -0
  128. package/dist-cms/packages/core/entity-sign/extensions/entity-sign.extension.js +1 -0
  129. package/dist-cms/packages/core/entity-sign/extensions/types.d.ts +3 -0
  130. package/dist-cms/packages/core/entity-sign/extensions/types.js +1 -0
  131. package/dist-cms/packages/core/entity-sign/index.d.ts +2 -0
  132. package/dist-cms/packages/core/entity-sign/index.js +1 -0
  133. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.api.d.ts +10 -0
  134. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.api.js +11 -0
  135. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.element.d.ts +10 -0
  136. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.element.js +41 -0
  137. package/dist-cms/packages/core/entity-sign/kinds/icon/index.d.ts +1 -0
  138. package/dist-cms/packages/core/entity-sign/kinds/icon/index.js +1 -0
  139. package/dist-cms/packages/core/entity-sign/kinds/icon/manifests.d.ts +2 -0
  140. package/dist-cms/packages/core/entity-sign/kinds/icon/manifests.js +14 -0
  141. package/dist-cms/packages/core/entity-sign/kinds/icon/types.d.ts +15 -0
  142. package/dist-cms/packages/core/entity-sign/kinds/icon/types.js +1 -0
  143. package/dist-cms/packages/core/entity-sign/kinds/manifests.d.ts +2 -0
  144. package/dist-cms/packages/core/entity-sign/kinds/manifests.js +2 -0
  145. package/dist-cms/packages/core/entity-sign/kinds/types.d.ts +1 -0
  146. package/dist-cms/packages/core/entity-sign/kinds/types.js +1 -0
  147. package/dist-cms/packages/core/entity-sign/manifests.d.ts +2 -0
  148. package/dist-cms/packages/core/entity-sign/manifests.js +2 -0
  149. package/dist-cms/packages/core/entity-sign/types.d.ts +1 -0
  150. package/dist-cms/packages/core/entity-sign/types.js +1 -0
  151. package/dist-cms/packages/core/entry-point.d.ts +1 -0
  152. package/dist-cms/packages/core/entry-point.js +1 -0
  153. package/dist-cms/packages/core/icon-registry/icon-dictionary.json +8 -0
  154. package/dist-cms/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.element.d.ts +1 -3
  155. package/dist-cms/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.element.js +44 -26
  156. package/dist-cms/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.token.d.ts +5 -2
  157. package/dist-cms/packages/core/icon-registry/icons/icon-bar-chart.d.ts +1 -1
  158. package/dist-cms/packages/core/icon-registry/icons/icon-bar-chart.js +1 -1
  159. package/dist-cms/packages/core/icon-registry/icons/icon-bars.d.ts +1 -1
  160. package/dist-cms/packages/core/icon-registry/icons/icon-bars.js +1 -1
  161. package/dist-cms/packages/core/icon-registry/icons/icon-blockquote.d.ts +1 -1
  162. package/dist-cms/packages/core/icon-registry/icons/icon-blockquote.js +1 -1
  163. package/dist-cms/packages/core/icon-registry/icons/icon-bug.d.ts +1 -1
  164. package/dist-cms/packages/core/icon-registry/icons/icon-bug.js +1 -1
  165. package/dist-cms/packages/core/icon-registry/icons/icon-bulleted-list.d.ts +1 -1
  166. package/dist-cms/packages/core/icon-registry/icons/icon-bulleted-list.js +1 -1
  167. package/dist-cms/packages/core/icon-registry/icons/icon-equalizer.d.ts +1 -1
  168. package/dist-cms/packages/core/icon-registry/icons/icon-equalizer.js +1 -1
  169. package/dist-cms/packages/core/icon-registry/icons/icon-heading-5.d.ts +1 -1
  170. package/dist-cms/packages/core/icon-registry/icons/icon-heading-5.js +1 -1
  171. package/dist-cms/packages/core/icon-registry/icons/icon-heading-6.d.ts +1 -1
  172. package/dist-cms/packages/core/icon-registry/icons/icon-heading-6.js +1 -1
  173. package/dist-cms/packages/core/icon-registry/icons/icon-heading.d.ts +1 -1
  174. package/dist-cms/packages/core/icon-registry/icons/icon-heading.js +1 -1
  175. package/dist-cms/packages/core/icon-registry/icons/icon-home.d.ts +1 -1
  176. package/dist-cms/packages/core/icon-registry/icons/icon-home.js +1 -1
  177. package/dist-cms/packages/core/icon-registry/icons/icon-indent.d.ts +1 -1
  178. package/dist-cms/packages/core/icon-registry/icons/icon-indent.js +1 -1
  179. package/dist-cms/packages/core/icon-registry/icons/icon-list.d.ts +1 -1
  180. package/dist-cms/packages/core/icon-registry/icons/icon-list.js +1 -1
  181. package/dist-cms/packages/core/icon-registry/icons/icon-ordered-list.d.ts +1 -1
  182. package/dist-cms/packages/core/icon-registry/icons/icon-ordered-list.js +1 -1
  183. package/dist-cms/packages/core/icon-registry/icons/icon-outdent.d.ts +1 -1
  184. package/dist-cms/packages/core/icon-registry/icons/icon-outdent.js +1 -1
  185. package/dist-cms/packages/core/icon-registry/icons/icon-playlist.d.ts +1 -1
  186. package/dist-cms/packages/core/icon-registry/icons/icon-playlist.js +1 -1
  187. package/dist-cms/packages/core/icon-registry/icons/icon-stretch-horizontal.d.ts +2 -0
  188. package/dist-cms/packages/core/icon-registry/icons/icon-stretch-horizontal.js +1 -0
  189. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-center.d.ts +1 -1
  190. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-center.js +1 -1
  191. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-justify.d.ts +1 -1
  192. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-justify.js +1 -1
  193. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-left.d.ts +1 -1
  194. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-left.js +1 -1
  195. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-right.d.ts +1 -1
  196. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-right.js +1 -1
  197. package/dist-cms/packages/core/icon-registry/icons/icon-trending-up-down.d.ts +2 -0
  198. package/dist-cms/packages/core/icon-registry/icons/icon-trending-up-down.js +1 -0
  199. package/dist-cms/packages/core/icon-registry/icons/icon-twitter-x.d.ts +1 -1
  200. package/dist-cms/packages/core/icon-registry/icons/icon-twitter-x.js +1 -1
  201. package/dist-cms/packages/core/icon-registry/icons.d.ts +10 -0
  202. package/dist-cms/packages/core/icon-registry/icons.js +6 -0
  203. package/dist-cms/packages/core/manifests.js +2 -0
  204. package/dist-cms/packages/core/menu/components/menu-item-layout/menu-item-layout.element.js +20 -19
  205. package/dist-cms/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.js +3 -2
  206. package/dist-cms/packages/core/openapi-ts.config.d.ts +31 -1
  207. package/dist-cms/packages/core/package.json +4 -4
  208. package/dist-cms/packages/core/picker-input/picker-input.context.js +0 -1
  209. package/dist-cms/packages/core/property/components/property/property.element.d.ts +1 -1
  210. package/dist-cms/packages/core/property/components/property/property.element.js +6 -1
  211. package/dist-cms/packages/core/property/components/property-layout/property-layout.element.js +2 -1
  212. package/dist-cms/packages/core/property/manifests.d.ts +1 -1
  213. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-builder.controller.d.ts +3 -1
  214. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-builder.controller.js +25 -16
  215. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-variant-builder.controller.js +12 -10
  216. package/dist-cms/packages/core/property/property-value-preset/types.d.ts +1 -0
  217. package/dist-cms/packages/core/property-editor/constants.d.ts +2 -0
  218. package/dist-cms/packages/core/property-editor/constants.js +2 -0
  219. package/dist-cms/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.js +1 -1
  220. package/dist-cms/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.js +8 -5
  221. package/dist-cms/packages/core/repository/repository-items.manager.d.ts +4 -0
  222. package/dist-cms/packages/core/repository/repository-items.manager.js +35 -11
  223. package/dist-cms/packages/core/resources/extractUmbColorVariable.function.js +1 -0
  224. package/dist-cms/packages/core/router/modal-registration/modal-route-registration.controller.js +8 -4
  225. package/dist-cms/packages/core/section/extensions/section.extension.d.ts +1 -0
  226. package/dist-cms/packages/core/sorter/sorter.controller.d.ts +0 -1
  227. package/dist-cms/packages/core/sorter/sorter.controller.js +0 -1
  228. package/dist-cms/packages/core/temporary-file/manifests.d.ts +1 -1
  229. package/dist-cms/packages/core/themes/manifests.d.ts +1 -1
  230. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.d.ts +10 -0
  231. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.js +75 -15
  232. package/dist-cms/packages/core/tree/types.d.ts +2 -1
  233. package/dist-cms/packages/core/validation/controllers/validation.controller.js +4 -2
  234. package/dist-cms/packages/core/variant/types.d.ts +2 -0
  235. package/dist-cms/packages/core/vite.config.js +2 -0
  236. package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-menu-breadcrumb/workspace-menu-breadcrumb.element.js +5 -1
  237. package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-variant-menu-breadcrumb/workspace-variant-menu-breadcrumb.element.js +5 -2
  238. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.js +22 -4
  239. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.d.ts +2 -1
  240. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.js +5 -0
  241. package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.d.ts +6 -0
  242. package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.js +12 -2
  243. package/dist-cms/packages/core/workspace/kinds/default/default-workspace.context.d.ts +1 -1
  244. package/dist-cms/packages/core/workspace/workspace.element.d.ts +2 -2
  245. package/dist-cms/packages/core/workspace/workspace.element.js +2 -2
  246. package/dist-cms/packages/data-type/index.d.ts +1 -0
  247. package/dist-cms/packages/data-type/index.js +1 -0
  248. package/dist-cms/packages/data-type/workspace/data-type-workspace.context.js +4 -1
  249. package/dist-cms/packages/data-type/workspace/index.d.ts +1 -0
  250. package/dist-cms/packages/data-type/workspace/index.js +1 -0
  251. package/dist-cms/packages/data-type/workspace/views/details/data-type-details-workspace-property-editor-picker.element.d.ts +22 -0
  252. package/dist-cms/packages/data-type/workspace/views/details/data-type-details-workspace-property-editor-picker.element.js +128 -0
  253. package/dist-cms/packages/data-type/workspace/views/details/data-type-details-workspace-view.element.js +23 -72
  254. package/dist-cms/packages/data-type/workspace/views/index.d.ts +1 -0
  255. package/dist-cms/packages/data-type/workspace/views/index.js +1 -0
  256. package/dist-cms/packages/dictionary/entity-action/manifests.js +1 -1
  257. package/dist-cms/packages/dictionary/workspace/views/workspace-view-dictionary-editor.element.js +5 -8
  258. package/dist-cms/packages/documents/document-blueprints/entity-actions/create/manifests.js +1 -1
  259. package/dist-cms/packages/documents/document-blueprints/repository/detail/document-blueprint-detail.server.data-source.js +3 -0
  260. package/dist-cms/packages/documents/document-blueprints/types.d.ts +2 -2
  261. package/dist-cms/packages/documents/document-types/entity-actions/create/manifests.js +1 -1
  262. package/dist-cms/packages/documents/documents/collection/repository/document-collection.server.data-source.js +2 -0
  263. package/dist-cms/packages/documents/documents/collection/types.d.ts +3 -2
  264. package/dist-cms/packages/documents/documents/constants.d.ts +1 -0
  265. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.d.ts +1 -1
  266. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.js +1 -1
  267. package/dist-cms/packages/documents/documents/entity-actions/create/manifests.js +1 -1
  268. package/dist-cms/packages/documents/documents/entity-sign/constants.d.ts +2 -0
  269. package/dist-cms/packages/documents/documents/entity-sign/constants.js +1 -0
  270. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/constants.d.ts +1 -0
  271. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/constants.js +1 -0
  272. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/manifests.d.ts +1 -0
  273. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/manifests.js +12 -0
  274. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/constants.d.ts +1 -0
  275. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/constants.js +1 -0
  276. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/manifests.d.ts +1 -0
  277. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/manifests.js +18 -0
  278. package/dist-cms/packages/documents/documents/entity-sign/is-protected/constants.d.ts +1 -0
  279. package/dist-cms/packages/documents/documents/entity-sign/is-protected/constants.js +1 -0
  280. package/dist-cms/packages/documents/documents/entity-sign/is-protected/manifest.d.ts +1 -0
  281. package/dist-cms/packages/documents/documents/entity-sign/is-protected/manifest.js +15 -0
  282. package/dist-cms/packages/documents/documents/entity-sign/manifests.d.ts +1 -0
  283. package/dist-cms/packages/documents/documents/entity-sign/manifests.js +8 -0
  284. package/dist-cms/packages/documents/documents/item/document-item-data-resolver.d.ts +9 -6
  285. package/dist-cms/packages/documents/documents/item/document-item-data-resolver.js +43 -21
  286. package/dist-cms/packages/documents/documents/item/repository/document-item.server.cache-invalidation.manager.js +1 -0
  287. package/dist-cms/packages/documents/documents/item/repository/document-item.server.data-source.js +2 -0
  288. package/dist-cms/packages/documents/documents/item/repository/types.d.ts +3 -1
  289. package/dist-cms/packages/documents/documents/manifests.js +2 -0
  290. package/dist-cms/packages/documents/documents/publishing/publish/entity-bulk-action/publish.bulk-action.js +1 -0
  291. package/dist-cms/packages/documents/documents/publishing/repository/document-publishing.server.data-source.js +2 -0
  292. package/dist-cms/packages/documents/documents/publishing/unpublish/entity-bulk-action/unpublish.bulk-action.js +1 -0
  293. package/dist-cms/packages/documents/documents/recycle-bin/tree/data/document-recycle-bin-tree.server.data-source.js +3 -0
  294. package/dist-cms/packages/documents/documents/reference/repository/document-reference-response.management-api.mapping.js +1 -0
  295. package/dist-cms/packages/documents/documents/repository/detail/document-detail.server.data-source.js +3 -0
  296. package/dist-cms/packages/documents/documents/search/document-search.server.data-source.js +2 -0
  297. package/dist-cms/packages/documents/documents/tree/document-tree.server.data-source.js +2 -0
  298. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.context.d.ts +1 -0
  299. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.context.js +1 -0
  300. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.element.d.ts +7 -3
  301. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.element.js +20 -90
  302. package/dist-cms/packages/documents/documents/tree/types.d.ts +3 -1
  303. package/dist-cms/packages/documents/documents/user-permissions/document/manifests.js +1 -1
  304. package/dist-cms/packages/documents/documents/utils.js +1 -0
  305. package/dist-cms/packages/documents/documents/workspace/constants.js +1 -0
  306. package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.d.ts +2 -1
  307. package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.js +10 -3
  308. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.d.ts +1 -3
  309. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.js +2 -2
  310. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view.element.d.ts +1 -0
  311. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view.element.js +13 -6
  312. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +9 -1
  313. package/dist-cms/packages/extension-types/index.d.ts +2 -0
  314. package/dist-cms/packages/language/entity-actions/manifests.js +1 -1
  315. package/dist-cms/packages/log-viewer/workspace/logviewer-workspace.context.d.ts +1 -0
  316. package/dist-cms/packages/log-viewer/workspace/logviewer-workspace.context.js +8 -1
  317. package/dist-cms/packages/management-api/detail/cache-invalidation.manager.d.ts +1 -0
  318. package/dist-cms/packages/management-api/detail/cache-invalidation.manager.js +3 -1
  319. package/dist-cms/packages/management-api/detail/detail-data.request-manager.js +1 -1
  320. package/dist-cms/packages/management-api/item/cache-invalidation.manager.d.ts +1 -0
  321. package/dist-cms/packages/management-api/item/cache-invalidation.manager.js +3 -1
  322. package/dist-cms/packages/media/media/audit-log/info-app/media-history-workspace-info-app.element.js +1 -0
  323. package/dist-cms/packages/media/media/collection/media-collection.context.js +1 -0
  324. package/dist-cms/packages/media/media/collection/repository/media-collection.server.data-source.js +1 -0
  325. package/dist-cms/packages/media/media/collection/types.d.ts +2 -1
  326. package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.js +1 -0
  327. package/dist-cms/packages/media/media/dropzone/media-dropzone.manager.js +1 -1
  328. package/dist-cms/packages/media/media/entity-actions/create/create.action.d.ts +1 -1
  329. package/dist-cms/packages/media/media/entity-actions/create/create.action.js +1 -1
  330. package/dist-cms/packages/media/media/entity-actions/create/manifests.js +1 -1
  331. package/dist-cms/packages/media/media/modals/media-picker/components/media-picker-folder-path.element.js +1 -0
  332. package/dist-cms/packages/media/media/paths.js +1 -1
  333. package/dist-cms/packages/media/media/property-editors/upload-field/Umbraco.UploadField.js +1 -1
  334. package/dist-cms/packages/media/media/repository/detail/media-detail.server.data-source.js +5 -0
  335. package/dist-cms/packages/media/media/repository/item/media-item.server.cache-invalidation.manager.js +1 -0
  336. package/dist-cms/packages/media/media/tree/media-tree.server.data-source.js +3 -0
  337. package/dist-cms/packages/media/media/workspace/constants.js +1 -0
  338. package/dist-cms/packages/members/member/collection/repository/member-collection.server.data-source.js +1 -0
  339. package/dist-cms/packages/members/member/entity-actions/create/manifests.js +1 -1
  340. package/dist-cms/packages/members/member/repository/detail/member-detail.server.data-source.js +5 -0
  341. package/dist-cms/packages/members/member/workspace/member/constants.js +1 -0
  342. package/dist-cms/packages/members/member-group/entity-actions/manifests.js +1 -1
  343. package/dist-cms/packages/property-editors/collection/manifests.js +1 -0
  344. package/dist-cms/packages/property-editors/icon-picker/manifests.js +10 -0
  345. package/dist-cms/packages/property-editors/icon-picker/property-editor-ui-icon-picker.element.d.ts +7 -3
  346. package/dist-cms/packages/property-editors/icon-picker/property-editor-ui-icon-picker.element.js +45 -14
  347. package/dist-cms/packages/property-editors/missing/manifests.js +15 -2
  348. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing-base.element.d.ts +18 -0
  349. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing-base.element.js +130 -0
  350. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing-ui.element.d.ts +13 -0
  351. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing-ui.element.js +24 -0
  352. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing.element.d.ts +2 -13
  353. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing.element.js +6 -112
  354. package/dist-cms/packages/property-editors/slider/property-editor-ui-slider.element.d.ts +2 -2
  355. package/dist-cms/packages/property-editors/slider/property-editor-ui-slider.element.js +29 -11
  356. package/dist-cms/packages/property-editors/slider/slider-property-value-preset.d.ts +1 -4
  357. package/dist-cms/packages/property-editors/slider/types.d.ts +3 -2
  358. package/dist-cms/packages/templating/partial-views/entity-actions/create/manifests.js +1 -1
  359. package/dist-cms/packages/templating/scripts/entity-actions/create/manifests.js +1 -1
  360. package/dist-cms/packages/templating/templates/entity-actions/manifests.js +1 -1
  361. package/dist-cms/packages/templating/templates/workspace/template-workspace-editor.element.js +2 -2
  362. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.d.ts +1 -1
  363. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.js +14 -6
  364. package/dist-cms/packages/tiptap/components/toolbar/tiptap-toolbar.element.js +3 -3
  365. package/dist-cms/packages/tiptap/extensions/horizontal-rule/manifests.js +1 -0
  366. package/dist-cms/packages/tiptap/extensions/style-select/manifests.js +1 -0
  367. package/dist-cms/packages/tiptap/property-editors/extensions-configuration/property-editor-ui-tiptap-extensions-configuration.element.js +2 -2
  368. package/dist-cms/packages/tiptap/property-editors/statusbar-configuration/property-editor-ui-tiptap-statusbar-configuration.element.js +37 -25
  369. package/dist-cms/packages/tiptap/property-editors/statusbar-configuration/tiptap-statusbar-configuration.context.d.ts +2 -2
  370. package/dist-cms/packages/tiptap/property-editors/statusbar-configuration/tiptap-statusbar-configuration.context.js +2 -1
  371. package/dist-cms/packages/tiptap/property-editors/toolbar-configuration/property-editor-ui-tiptap-toolbar-configuration.element.js +1 -3
  372. package/dist-cms/packages/tiptap/property-editors/toolbar-configuration/tiptap-toolbar-configuration.context.d.ts +2 -2
  373. package/dist-cms/packages/tiptap/property-editors/toolbar-configuration/tiptap-toolbar-configuration.context.js +1 -1
  374. package/dist-cms/packages/tiptap/property-editors/toolbar-configuration/tiptap-toolbar-group-configuration.element.js +22 -19
  375. package/dist-cms/packages/tiptap/property-editors/types.d.ts +4 -4
  376. package/dist-cms/packages/ufm/contexts/ufm.context.d.ts +1 -1
  377. package/dist-cms/packages/ufm/filters/manifests.js +24 -0
  378. package/dist-cms/packages/ufm/filters/strip-html.filter.d.ts +1 -0
  379. package/dist-cms/packages/ufm/filters/strip-html.filter.js +1 -0
  380. package/dist-cms/packages/ufm/filters/truncate.filter.d.ts +1 -0
  381. package/dist-cms/packages/ufm/filters/truncate.filter.js +8 -1
  382. package/dist-cms/packages/umbraco-news/umbraco-news-dashboard.element.js +1 -2
  383. package/dist-cms/packages/user/user-permission/constants.d.ts +1 -0
  384. package/dist-cms/packages/user/user-permission/constants.js +1 -0
  385. package/dist-cms/packages/user/user-permission/fallback-permission-condition/constants.d.ts +1 -0
  386. package/dist-cms/packages/user/user-permission/fallback-permission-condition/constants.js +1 -0
  387. package/dist-cms/packages/user/user-permission/fallback-permission-condition/fallback-user-permission.condition.d.ts +9 -0
  388. package/dist-cms/packages/user/user-permission/fallback-permission-condition/fallback-user-permission.condition.js +34 -0
  389. package/dist-cms/packages/user/user-permission/fallback-permission-condition/manifests.d.ts +1 -0
  390. package/dist-cms/packages/user/user-permission/fallback-permission-condition/manifests.js +9 -0
  391. package/dist-cms/packages/user/user-permission/fallback-permission-condition/types.d.ts +20 -0
  392. package/dist-cms/packages/user/user-permission/fallback-permission-condition/types.js +1 -0
  393. package/dist-cms/packages/user/user-permission/index.d.ts +1 -0
  394. package/dist-cms/packages/user/user-permission/index.js +1 -0
  395. package/dist-cms/packages/user/user-permission/manifests.js +2 -1
  396. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  397. package/dist-cms/umbraco-package-schema.json +3 -0
  398. package/dist-cms/umbraco-package.json +1 -1
  399. package/dist-cms/vscode-html-custom-data.json +133 -30
  400. package/examples/user-permission/constants.ts +4 -0
  401. package/examples/user-permission/entity-action/action-1.ts +9 -0
  402. package/examples/user-permission/entity-action/action-2.ts +9 -0
  403. package/examples/user-permission/entity-action/manifests.ts +47 -0
  404. package/examples/user-permission/entity-user-permission/manifests.ts +30 -0
  405. package/examples/user-permission/index.ts +9 -0
  406. package/examples/user-permission/localization/en.ts +6 -0
  407. package/examples/user-permission/localization/manifests.ts +12 -0
  408. package/examples/validation-context/validation-context-dashboard.ts +9 -8
  409. package/package.json +13 -11
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @function replaceInUniqueArray
3
+ * @param {T[]} data - An array of objects.
4
+ * @param {T} entry - The object to replace with.
5
+ * @param {getUniqueMethod: (entry: T) => unknown} [getUniqueMethod] - Method to get the unique value of an entry.
6
+ * @description - Replaces an item of an Array.
7
+ * @example <caption>Example replace an entry of an Array. Where the key is unique and the item will only be replaced if matched with existing.</caption>
8
+ * const data = [{key: 'myKey', value:'initialValue'}];
9
+ * const entry = {key: 'myKey', value: 'replacedValue'};
10
+ * const newDataSet = replaceInUniqueArray(data, entry, x => x.key === key);
11
+ */
12
+ export declare function replaceInUniqueArray<T>(data: T[], entry: T, getUniqueMethod: (entry: T) => unknown): T[];
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @function replaceInUniqueArray
3
+ * @param {T[]} data - An array of objects.
4
+ * @param {T} entry - The object to replace with.
5
+ * @param {getUniqueMethod: (entry: T) => unknown} [getUniqueMethod] - Method to get the unique value of an entry.
6
+ * @description - Replaces an item of an Array.
7
+ * @example <caption>Example replace an entry of an Array. Where the key is unique and the item will only be replaced if matched with existing.</caption>
8
+ * const data = [{key: 'myKey', value:'initialValue'}];
9
+ * const entry = {key: 'myKey', value: 'replacedValue'};
10
+ * const newDataSet = replaceInUniqueArray(data, entry, x => x.key === key);
11
+ */
12
+ export function replaceInUniqueArray(data, entry, getUniqueMethod) {
13
+ const unique = getUniqueMethod(entry);
14
+ const indexToReplace = data.findIndex((x) => getUniqueMethod(x) === unique);
15
+ if (indexToReplace !== -1) {
16
+ data[indexToReplace] = entry;
17
+ }
18
+ return data;
19
+ }
@@ -15,10 +15,7 @@ let UmbBlockWorkspaceEditorElement = class UmbBlockWorkspaceEditorElement extend
15
15
  this._headline = '';
16
16
  this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (context) => {
17
17
  if (context) {
18
- this.observe(observeMultiple([
19
- context.isNew,
20
- context.content.structure.ownerContentTypeObservablePart((contentType) => contentType?.name),
21
- ]), ([isNew, name]) => {
18
+ this.observe(observeMultiple([context.isNew, context.name]), ([isNew, name]) => {
22
19
  this._headline =
23
20
  this.localize.term(isNew ? 'general_add' : 'general_edit') + ' ' + this.localize.string(name);
24
21
  }, 'observeOwnerContentElementTypeName');
@@ -1,4 +1,4 @@
1
- import { UMB_BLOCK_ENTRIES_CONTEXT, UMB_BLOCK_ENTRY_CONTEXT, UMB_BLOCK_MANAGER_CONTEXT } from '../context/index.js';
1
+ import { UMB_BLOCK_ENTRIES_CONTEXT, UMB_BLOCK_MANAGER_CONTEXT } from '../context/index.js';
2
2
  import { UmbBlockWorkspaceEditorElement } from './block-workspace-editor.element.js';
3
3
  import { UmbBlockElementManager } from './block-element-manager.js';
4
4
  import { UMB_BLOCK_WORKSPACE_VIEW_CONTENT, UMB_BLOCK_WORKSPACE_VIEW_SETTINGS } from './constants.js';
@@ -7,6 +7,7 @@ import { UmbBooleanState, UmbClassState, UmbObjectState, UmbStringState, observe
7
7
  import { UMB_DISCARD_CHANGES_MODAL, UMB_MODAL_CONTEXT, UMB_MODAL_MANAGER_CONTEXT } from '../../../core/modal/index.js';
8
8
  import { decodeFilePath, UmbReadOnlyVariantGuardManager } from '../../../core/utils/index.js';
9
9
  import { UmbVariantId } from '../../../core/variant/index.js';
10
+ import { UmbUfmVirtualRenderController } from '../../../ufm/index.js';
10
11
  export class UmbBlockWorkspaceContext extends UmbSubmittableWorkspaceContextBase {
11
12
  //
12
13
  #blockManager;
@@ -27,6 +28,7 @@ export class UmbBlockWorkspaceContext extends UmbSubmittableWorkspaceContextBase
27
28
  #initialSettings;
28
29
  #layout;
29
30
  #name;
31
+ #labelRender;
30
32
  #variantId;
31
33
  #exposed;
32
34
  constructor(host, workspaceArgs) {
@@ -41,6 +43,7 @@ export class UmbBlockWorkspaceContext extends UmbSubmittableWorkspaceContextBase
41
43
  this.settings = new UmbBlockElementManager(this, 'settingsData', UMB_BLOCK_WORKSPACE_VIEW_SETTINGS);
42
44
  this.#name = new UmbStringState(undefined);
43
45
  this.name = this.#name.asObservable();
46
+ this.#labelRender = new UmbUfmVirtualRenderController(this);
44
47
  this.#variantId = new UmbClassState(undefined);
45
48
  this.variantId = this.#variantId.asObservable();
46
49
  this.#exposed = new UmbBooleanState(undefined);
@@ -120,13 +123,13 @@ export class UmbBlockWorkspaceContext extends UmbSubmittableWorkspaceContextBase
120
123
  this.#retrieveBlockEntries = this.consumeContext(UMB_BLOCK_ENTRIES_CONTEXT, (context) => {
121
124
  this.#blockEntries = context;
122
125
  }).asPromise({ preventTimeout: true });
123
- this.consumeContext(UMB_BLOCK_ENTRY_CONTEXT, (context) => {
124
- this.#name.setValue(context?.getName());
125
- });
126
126
  this.observe(this.variantId, (variantId) => {
127
127
  this.content.setVariantId(variantId);
128
128
  this.settings.setVariantId(variantId);
129
- });
129
+ }, null);
130
+ this.observe(observeMultiple([this.content.values, this.settings.values]), async ([contentValues]) => {
131
+ this.#renderLabel(contentValues);
132
+ }, 'observeContentForLabelRender');
130
133
  this.routes.setRoutes([
131
134
  {
132
135
  path: 'create/:elementTypeKey',
@@ -196,17 +199,39 @@ export class UmbBlockWorkspaceContext extends UmbSubmittableWorkspaceContextBase
196
199
  }
197
200
  }, 'observeIsReadOnly');
198
201
  this.observe(this.content.contentTypeId, (contentTypeId) => {
199
- this.observe(contentTypeId ? manager.blockTypeOf(contentTypeId) : undefined, (blockType) => {
200
- if (!blockType?.editorSize)
201
- return;
202
- const editorConfig = manager.getEditorConfiguration();
203
- const useInlineEditing = editorConfig?.find((x) => x.alias === 'useInlineEditingAsDefault')?.value;
204
- if (!useInlineEditing) {
205
- this.setEditorSize(blockType.editorSize);
202
+ this.observe(contentTypeId ? manager.blockTypeOf(contentTypeId) : undefined, async (blockType) => {
203
+ if (blockType?.editorSize) {
204
+ const editorConfig = manager.getEditorConfiguration();
205
+ const useInlineEditing = editorConfig?.find((x) => x.alias === 'useInlineEditingAsDefault')?.value;
206
+ if (!useInlineEditing) {
207
+ this.setEditorSize(blockType.editorSize);
208
+ }
206
209
  }
210
+ await this.content.structure.whenLoaded();
211
+ this.#gotLabel(blockType?.label ?? this.content.structure.getOwnerContentTypeName());
207
212
  }, 'observeBlockType');
208
213
  }, 'observeContentTypeId');
209
214
  }
215
+ #gotLabel(label) {
216
+ if (label) {
217
+ this.#labelRender.markdown = label;
218
+ this.#renderLabel(this.content.getValues());
219
+ }
220
+ }
221
+ async #renderLabel(contentValues) {
222
+ const valueObject = {};
223
+ if (contentValues) {
224
+ for (const property of contentValues) {
225
+ valueObject[property.alias] = property.value;
226
+ }
227
+ }
228
+ this.#labelRender.value = valueObject;
229
+ // Await one animation frame:
230
+ await new Promise((resolve) => requestAnimationFrame(() => resolve(true)));
231
+ const result = this.#labelRender.toString();
232
+ this.#name.setValue(result);
233
+ this.view.setTitle(result);
234
+ }
210
235
  #allowNavigateAway;
211
236
  #onWillNavigate;
212
237
  /**
@@ -16,13 +16,11 @@ import { UmbLitElement } from '../../../../../core/lit-element/index.js';
16
16
  * A specific view for editing content in a block workspace placed inline within a block view/element.
17
17
  */
18
18
  let UmbBlockWorkspaceViewEditContentNoRouterElement = class UmbBlockWorkspaceViewEditContentNoRouterElement extends UmbLitElement {
19
- //@state()
20
- //private _activeTabName?: string | null | undefined;
21
19
  #blockWorkspace;
22
20
  #tabsStructureHelper;
23
21
  constructor() {
24
22
  super();
25
- //private _hasRootProperties = false;
23
+ // private _hasRootProperties = false;
26
24
  this._hasRootGroups = false;
27
25
  this.#tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this);
28
26
  this.#tabsStructureHelper.setIsRoot(true);
@@ -49,20 +47,18 @@ let UmbBlockWorkspaceViewEditContentNoRouterElement = class UmbBlockWorkspaceVie
49
47
  #checkDefaultTabName() {
50
48
  if (!this._tabs || !this.#blockWorkspace)
51
49
  return;
52
- // Find the default tab to grab:
50
+ // Find the default tab to grab
53
51
  if (this._activeTabKey === undefined) {
54
52
  if (this._hasRootGroups) {
55
- //this._activeTabName = null;
56
53
  this._activeTabKey = null;
57
54
  }
58
55
  else if (this._tabs.length > 0) {
59
- //this._activeTabName = this._tabs[0].name;
60
- this._activeTabKey = this._tabs[0].key;
56
+ const tab = this._tabs[0];
57
+ this._activeTabKey = tab.ownerId ?? tab.ids[0];
61
58
  }
62
59
  }
63
60
  }
64
- #setTabName(tabName, tabKey) {
65
- //this._activeTabName = tabName;
61
+ #setTabKey(tabKey) {
66
62
  this._activeTabKey = tabKey;
67
63
  }
68
64
  render() {
@@ -70,22 +66,21 @@ let UmbBlockWorkspaceViewEditContentNoRouterElement = class UmbBlockWorkspaceVie
70
66
  return;
71
67
  return html `
72
68
  ${this._tabs.length > 1 || (this._tabs.length === 1 && this._hasRootGroups)
73
- ? html ` <uui-tab-group slot="header">
69
+ ? html `<uui-tab-group slot="header">
74
70
  ${this._hasRootGroups && this._tabs.length > 0
75
- ? html `
76
- <uui-tab
77
- label="Content"
78
- .active=${null === this._activeTabKey}
79
- @click=${() => this.#setTabName(null, null)}
80
- >Content</uui-tab
81
- >
82
- `
71
+ ? html `<uui-tab
72
+ label=${this.localize.term('general_generic')}
73
+ .active=${this._activeTabKey === null}
74
+ @click=${() => this.#setTabKey(null)}
75
+ >Content</uui-tab
76
+ >`
83
77
  : nothing}
84
78
  ${repeat(this._tabs, (tab) => tab.name, (tab) => {
79
+ const tabKey = tab.ownerId ?? tab.ids[0];
85
80
  return html `<uui-tab
86
- label=${tab.name ?? 'Unnamed'}
87
- .active=${tab.key === this._activeTabKey}
88
- @click=${() => this.#setTabName(tab.name, tab.key)}
81
+ label=${this.localize.string(tab.name ?? '#general_unnamed')}
82
+ .active=${this._activeTabKey === tabKey}
83
+ @click=${() => this.#setTabKey(tabKey)}
89
84
  >${tab.name}</uui-tab
90
85
  >`;
91
86
  })}
@@ -50,7 +50,7 @@ let UmbBlockGridAreaConfigEntryElement = class UmbBlockGridAreaConfigEntryElemen
50
50
  #renderBlock() {
51
51
  return this._key
52
52
  ? html `
53
- <span>${this._alias}</span>
53
+ <span class="alias">${this._alias}</span>
54
54
  <uui-action-bar>
55
55
  <uui-button label="edit" compact href=${this.workspacePath + 'edit/' + this._key}>
56
56
  <uui-icon name="icon-edit"></uui-icon>
@@ -85,14 +85,18 @@ let UmbBlockGridAreaConfigEntryElement = class UmbBlockGridAreaConfigEntryElemen
85
85
  background-color: var(--uui-color-disabled-standalone);
86
86
  }
87
87
 
88
+ :host([drag-placeholder]) {
89
+ opacity: 0.2;
90
+ }
91
+
88
92
  uui-action-bar {
89
93
  position: absolute;
90
94
  top: var(--uui-size-2);
91
95
  right: var(--uui-size-2);
92
96
  }
93
97
 
94
- :host([drag-placeholder]) {
95
- opacity: 0.2;
98
+ .alias {
99
+ padding: var(--uui-size-space-4);
96
100
  }
97
101
  `,
98
102
  ]; }
@@ -42,7 +42,7 @@ let UmbBlockGridAreaTypeWorkspaceViewSettingsElement = class UmbBlockGridAreaTyp
42
42
  property-editor-ui-alias="Umb.PropertyEditorUi.TextBox"></umb-property>
43
43
  </uui-box>
44
44
  <uui-box headline=${'Validation'}>
45
- <umb-property-layout label=${'rangeAllowed'}>
45
+ <umb-property-layout label=${this.localize.term('blockEditor_rangeAllowed')}>
46
46
  <umb-input-number-range
47
47
  slot="editor"
48
48
  .minValue=${this._minValue}
@@ -52,7 +52,7 @@ let UmbBlockGridAreaTypeWorkspaceViewSettingsElement = class UmbBlockGridAreaTyp
52
52
  </umb-property-layout>
53
53
 
54
54
  <umb-property
55
- label=${'specifiedAllowance'}
55
+ label=${this.localize.term('blockEditor_specifiedAllowance')}
56
56
  alias="specifiedAllowance"
57
57
  property-editor-ui-alias="Umb.PropertyEditorUi.BlockGridAreaTypePermission"></umb-property>
58
58
  </uui-box>
@@ -5,6 +5,7 @@ import '../../../../ufm/index.js';
5
5
  export declare class UmbBlockGridBlockElement extends UmbLitElement {
6
6
  label?: string;
7
7
  icon?: string;
8
+ index?: number;
8
9
  config?: UmbBlockEditorCustomViewConfiguration;
9
10
  unpublished?: boolean;
10
11
  content?: UmbBlockDataType;
@@ -9,7 +9,7 @@ import { css, customElement, html, property, when } from '../../../../../externa
9
9
  import '../../../../ufm/index.js';
10
10
  let UmbBlockGridBlockElement = class UmbBlockGridBlockElement extends UmbLitElement {
11
11
  render() {
12
- const blockValue = { ...this.content, $settings: this.settings };
12
+ const blockValue = { ...this.content, $settings: this.settings, $index: this.index };
13
13
  return html `
14
14
  <umb-ref-grid-block
15
15
  standalone
@@ -51,6 +51,9 @@ __decorate([
51
51
  __decorate([
52
52
  property({ type: String, reflect: false })
53
53
  ], UmbBlockGridBlockElement.prototype, "icon", void 0);
54
+ __decorate([
55
+ property({ type: Number, attribute: false })
56
+ ], UmbBlockGridBlockElement.prototype, "index", void 0);
54
57
  __decorate([
55
58
  property({ attribute: false })
56
59
  ], UmbBlockGridBlockElement.prototype, "config", void 0);
@@ -6,6 +6,7 @@ export declare class UmbBlockGridBlockInlineElement extends UmbLitElement {
6
6
  config?: UmbBlockEditorCustomViewConfiguration;
7
7
  label?: string;
8
8
  icon?: string;
9
+ index?: number;
9
10
  unpublished?: boolean;
10
11
  content?: UmbBlockDataType;
11
12
  settings?: UmbBlockDataType;
@@ -108,7 +108,7 @@ let UmbBlockGridBlockInlineElement = class UmbBlockGridBlockInlineElement extend
108
108
  `;
109
109
  }
110
110
  #renderBlockInfo() {
111
- const blockValue = { ...this.content, $settings: this.settings };
111
+ const blockValue = { ...this.content, $settings: this.settings, $index: this.index };
112
112
  return html `
113
113
  <span id="content">
114
114
  <span id="icon">
@@ -292,6 +292,9 @@ __decorate([
292
292
  __decorate([
293
293
  property({ type: String, reflect: false })
294
294
  ], UmbBlockGridBlockInlineElement.prototype, "icon", void 0);
295
+ __decorate([
296
+ property({ type: Number, attribute: false })
297
+ ], UmbBlockGridBlockInlineElement.prototype, "index", void 0);
295
298
  __decorate([
296
299
  property({ type: Boolean, reflect: true })
297
300
  ], UmbBlockGridBlockInlineElement.prototype, "unpublished", void 0);
@@ -254,11 +254,11 @@ let UmbBlockGridEntriesElement = class UmbBlockGridEntriesElement extends UmbFor
254
254
  return html `
255
255
  ${this._styleElement}
256
256
  <div class="umb-block-grid__layout-container" data-area-length=${this._layoutEntries.length}>
257
- ${repeat(this._layoutEntries, (x) => x.contentKey, (layoutEntry, index) => html `<umb-block-grid-entry
257
+ ${repeat(this._layoutEntries, (layout, index) => `${index}_${layout.contentKey}`, (layout, index) => html `<umb-block-grid-entry
258
258
  class="umb-block-grid__layout-item"
259
259
  index=${index}
260
- .contentKey=${layoutEntry.contentKey}
261
- .layout=${layoutEntry}>
260
+ .contentKey=${layout.contentKey}
261
+ .layout=${layout}>
262
262
  </umb-block-grid-entry>`)}
263
263
  </div>
264
264
  ${this._canCreate ? this.#renderCreateButtonGroup() : nothing}
@@ -151,7 +151,7 @@ let UmbBlockGridEntryElement = class UmbBlockGridEntryElement extends UmbLitElem
151
151
  this.observe(this.#context.blockType, (blockType) => {
152
152
  this.#updateBlockViewProps({ blockType });
153
153
  }, null);
154
- // TODO: Implement index.
154
+ this.observe(this.#context.index, (index) => this.#updateBlockViewProps({ index }), null);
155
155
  this.observe(this.#context.label, (label) => {
156
156
  this.#updateBlockViewProps({ label });
157
157
  this._label = label;
@@ -307,6 +307,7 @@ let UmbBlockGridEntryElement = class UmbBlockGridEntryElement extends UmbLitElem
307
307
  class="umb-block-grid__block--view"
308
308
  .label=${this._label}
309
309
  .icon=${this._icon}
310
+ .index=${this._blockViewProps.index}
310
311
  .unpublished=${!this._exposed}
311
312
  .config=${this._blockViewProps.config}
312
313
  .content=${this._blockViewProps.content}
@@ -318,6 +319,7 @@ let UmbBlockGridEntryElement = class UmbBlockGridEntryElement extends UmbLitElem
318
319
  class="umb-block-grid__block--view"
319
320
  .label=${this._label}
320
321
  .icon=${this._icon}
322
+ .index=${this._blockViewProps.index}
321
323
  .unpublished=${!this._exposed}
322
324
  .config=${this._blockViewProps.config}
323
325
  .content=${this._blockViewProps.content}
@@ -30,7 +30,7 @@ let UmbPropertyEditorUIBlockGridAreaTypePermissionElement = class UmbPropertyEdi
30
30
  .map((item) => {
31
31
  const blockType = this._blockTypes?.find((block) => block.contentElementTypeKey === item.unique);
32
32
  if (blockType) {
33
- return { type: blockType, name: item.name };
33
+ return { type: blockType, name: item.name, icon: item.icon };
34
34
  }
35
35
  return undefined;
36
36
  })
@@ -141,6 +141,7 @@ let UmbPropertyEditorUIBlockGridAreaTypePermissionElement = class UmbPropertyEdi
141
141
  }
142
142
  #renderBlockGroups(area) {
143
143
  return repeat(this._blockGroups, (group) => group.key, (group) => html `<uui-combobox-list-option .value=${group.key} ?selected=${area.groupKey === group.key}>
144
+ <umb-icon name="icon-folder"></umb-icon>
144
145
  ${group.name}
145
146
  </uui-combobox-list-option>`);
146
147
  }
@@ -148,6 +149,7 @@ let UmbPropertyEditorUIBlockGridAreaTypePermissionElement = class UmbPropertyEdi
148
149
  return repeat(this._blockTypesWithElementName, (block) => block.type.contentElementTypeKey, (block) => html `<uui-combobox-list-option
149
150
  .value=${block.type.contentElementTypeKey}
150
151
  ?selected=${area.elementTypeKey === block.type.contentElementTypeKey}>
152
+ <umb-icon name=${block.icon}></umb-icon>
151
153
  ${block.name}
152
154
  </uui-combobox-list-option>`);
153
155
  }
@@ -182,7 +184,14 @@ let UmbPropertyEditorUIBlockGridAreaTypePermissionElement = class UmbPropertyEdi
182
184
  }
183
185
 
184
186
  uui-combobox strong {
185
- padding: 0 var(--uui-size-space-1);
187
+ padding: var(--uui-size-space-2);
188
+ }
189
+
190
+ uui-combobox-list-option {
191
+ display: flex;
192
+ align-items: center;
193
+ gap: var(--uui-size-space-2);
194
+ padding: var(--uui-size-2);
186
195
  }
187
196
  `,
188
197
  ]; }
@@ -126,6 +126,12 @@ let UmbPropertyEditorUIBlockGridAreasConfigElement = class UmbPropertyEditorUIBl
126
126
  }
127
127
  static { this.styles = [
128
128
  css `
129
+ :host {
130
+ display: flex;
131
+ flex-direction: column;
132
+ gap: var(--uui-size-2);
133
+ }
134
+
129
135
  .umb-block-grid__area {
130
136
  cursor: move;
131
137
  }
@@ -116,7 +116,7 @@ let UmbPropertyEditorUIBlockGridTypeConfigurationElement = class UmbPropertyEdit
116
116
  const groupName = this.#blockGroups?.find((group) => group.key === groupKey)?.name ?? '';
117
117
  await umbConfirmModal(this, {
118
118
  headline: '#blockEditor_confirmDeleteBlockGroupTitle',
119
- content: this.localize.term('#blockEditor_confirmDeleteBlockGroupMessage', [groupName]),
119
+ content: this.localize.term('blockEditor_confirmDeleteBlockGroupMessage', [groupName]),
120
120
  color: 'danger',
121
121
  confirmLabel: '#general_delete',
122
122
  });
@@ -155,34 +155,38 @@ let UmbPropertyEditorUIBlockGridTypeConfigurationElement = class UmbPropertyEdit
155
155
  }
156
156
  #renderGroupInput(groupKey, groupName) {
157
157
  return html `<div class="group-handle">
158
+ <uui-icon name="icon-grip"></uui-icon>
158
159
  <uui-input
159
- auto-width
160
160
  label="Group"
161
161
  .value=${groupName ?? ''}
162
162
  @change=${(e) => this.#onGroupNameChange(e, groupKey)}>
163
- <uui-button compact slot="append" label="delete" @click=${() => this.#deleteGroup(groupKey)}>
164
- <uui-icon name="icon-trash"></uui-icon>
165
- </uui-button>
166
163
  </uui-input>
164
+ <uui-button
165
+ compact
166
+ label=${this.localize.term('general_delete')}
167
+ look="outline"
168
+ @click=${() => this.#deleteGroup(groupKey)}>
169
+ <uui-icon name="icon-trash"></uui-icon>
170
+ </uui-button>
167
171
  </div>`;
168
172
  }
169
173
  static { this.styles = [
170
174
  UmbTextStyles,
171
175
  css `
172
- uui-input:not(:hover, :focus) {
173
- border: 1px solid transparent;
174
- }
175
- uui-input:not(:hover, :focus) uui-button {
176
- opacity: 0;
177
- }
178
-
179
176
  .group-handle {
180
- padding: var(--uui-size-1);
177
+ display: flex;
178
+ align-items: center;
179
+ padding: var(--uui-size-3) var(--uui-size-1);
181
180
  margin-top: var(--uui-size-6);
182
181
  margin-bottom: var(--uui-size-4);
182
+ gap: var(--uui-size-1);
183
183
  cursor: grab;
184
184
  }
185
185
 
186
+ .group-handle:active {
187
+ cursor: grabbing;
188
+ }
189
+
186
190
  .group-handle:hover {
187
191
  background-color: var(--uui-color-divider);
188
192
  border-radius: var(--uui-border-radius);
@@ -191,6 +195,10 @@ let UmbPropertyEditorUIBlockGridTypeConfigurationElement = class UmbPropertyEdit
191
195
  .group:has([drag-placeholder]) {
192
196
  opacity: 0.2;
193
197
  }
198
+
199
+ uui-input {
200
+ flex: 1;
201
+ }
194
202
  `,
195
203
  ]; }
196
204
  };
@@ -14,7 +14,7 @@ let UmbBlockGridTypeWorkspaceViewAreasElement = class UmbBlockGridTypeWorkspaceV
14
14
  this.consumeContext(UMB_DATA_TYPE_WORKSPACE_CONTEXT, async (context) => {
15
15
  this.observe(await context?.propertyValueByAlias('gridColumns'), (value) => {
16
16
  const dataTypeGridColumns = value ? parseInt(value, 10) : 12;
17
- this._areaColumnsConfigurationObject = [{ alias: 'placeholder', value: dataTypeGridColumns }];
17
+ this._areaColumnsConfigurationObject = [{ alias: 'placeholder', value: dataTypeGridColumns }, { alias: 'min', value: 1 }];
18
18
  this._areaConfigConfigurationObject = [{ alias: 'defaultAreaGridColumns', value: dataTypeGridColumns }];
19
19
  }, 'observeGridColumns');
20
20
  }).passContextAliasMatches();
@@ -9,10 +9,10 @@ import '../unsupported-list-block/index.js';
9
9
  */
10
10
  export declare class UmbBlockListEntryElement extends UmbLitElement implements UmbPropertyEditorUiElement {
11
11
  #private;
12
- get index(): number | undefined;
13
12
  set index(value: number | undefined);
14
- get contentKey(): string | undefined;
13
+ get index(): number | undefined;
15
14
  set contentKey(value: string | undefined);
15
+ get contentKey(): string | undefined;
16
16
  private _contentKey?;
17
17
  private _contentTypeAlias?;
18
18
  private _contentTypeName?;
@@ -21,15 +21,11 @@ import '../unsupported-list-block/index.js';
21
21
  * @element umb-block-list-entry
22
22
  */
23
23
  let UmbBlockListEntryElement = class UmbBlockListEntryElement extends UmbLitElement {
24
- //
25
- get index() {
26
- return this.#context.getIndex();
27
- }
28
24
  set index(value) {
29
25
  this.#context.setIndex(value);
30
26
  }
31
- get contentKey() {
32
- return this._contentKey;
27
+ get index() {
28
+ return this.#context.getIndex();
33
29
  }
34
30
  set contentKey(value) {
35
31
  if (!value)
@@ -41,6 +37,9 @@ let UmbBlockListEntryElement = class UmbBlockListEntryElement extends UmbLitElem
41
37
  this._blockViewProps.contentInvalid = hasMessages;
42
38
  }, 'observeMessagesForContent');
43
39
  }
40
+ get contentKey() {
41
+ return this._contentKey;
42
+ }
44
43
  #context;
45
44
  #updateBlockViewProps(incoming) {
46
45
  this._blockViewProps = { ...this._blockViewProps, ...incoming };
@@ -111,7 +110,7 @@ let UmbBlockListEntryElement = class UmbBlockListEntryElement extends UmbLitElem
111
110
  this.observe(this.#context.blockType, (blockType) => {
112
111
  this.#updateBlockViewProps({ blockType });
113
112
  }, null);
114
- // TODO: Implement index.
113
+ this.observe(this.#context.index, (index) => this.#updateBlockViewProps({ index }), null);
115
114
  this.observe(this.#context.label, (label) => {
116
115
  this.#updateBlockViewProps({ label });
117
116
  this._label = label;
@@ -227,6 +226,7 @@ let UmbBlockListEntryElement = class UmbBlockListEntryElement extends UmbLitElem
227
226
  return html `<umb-ref-list-block
228
227
  .label=${this._label}
229
228
  .icon=${this._icon}
229
+ .index=${this._blockViewProps.index}
230
230
  .unpublished=${!this._exposed}
231
231
  .config=${this._blockViewProps.config}
232
232
  .content=${this._blockViewProps.content}
@@ -237,6 +237,7 @@ let UmbBlockListEntryElement = class UmbBlockListEntryElement extends UmbLitElem
237
237
  return html `<umb-inline-list-block
238
238
  .label=${this._label}
239
239
  .icon=${this._icon}
240
+ .index=${this._blockViewProps.index}
240
241
  .unpublished=${!this._exposed}
241
242
  .config=${this._blockViewProps.config}
242
243
  .content=${this._blockViewProps.content}
@@ -8,6 +8,7 @@ export declare class UmbInlineListBlockElement extends UmbLitElement {
8
8
  #private;
9
9
  label?: string;
10
10
  icon?: string;
11
+ index?: number;
11
12
  unpublished?: boolean;
12
13
  content?: UmbBlockDataType;
13
14
  settings?: UmbBlockDataType;
@@ -97,7 +97,7 @@ let UmbInlineListBlockElement = class UmbInlineListBlockElement extends UmbLitEl
97
97
  `;
98
98
  }
99
99
  #renderBlockInfo() {
100
- const blockValue = { ...this.content, $settings: this.settings };
100
+ const blockValue = { ...this.content, $settings: this.settings, $index: this.index };
101
101
  return html `
102
102
  <span id="content">
103
103
  <span id="icon">
@@ -228,10 +228,6 @@ let UmbInlineListBlockElement = class UmbInlineListBlockElement extends UmbLitEl
228
228
  padding-left: var(--uui-size-2, 6px);
229
229
  }
230
230
 
231
- #name {
232
- font-weight: 700;
233
- }
234
-
235
231
  uui-tag {
236
232
  margin-left: 0.5em;
237
233
  margin-bottom: -0.3em;
@@ -261,6 +257,9 @@ __decorate([
261
257
  __decorate([
262
258
  property({ type: String, reflect: false })
263
259
  ], UmbInlineListBlockElement.prototype, "icon", void 0);
260
+ __decorate([
261
+ property({ type: Number, attribute: false })
262
+ ], UmbInlineListBlockElement.prototype, "index", void 0);
264
263
  __decorate([
265
264
  property({ type: Boolean, reflect: true })
266
265
  ], UmbInlineListBlockElement.prototype, "unpublished", void 0);
@@ -5,6 +5,7 @@ import type { UmbBlockEditorCustomViewConfiguration } from '../../../block-custo
5
5
  export declare class UmbRefListBlockElement extends UmbLitElement {
6
6
  label?: string;
7
7
  icon?: string;
8
+ index?: number;
8
9
  unpublished?: boolean;
9
10
  content?: UmbBlockDataType;
10
11
  settings?: UmbBlockDataType;
@@ -9,7 +9,7 @@ import { UmbLitElement } from '../../../../core/lit-element/index.js';
9
9
  import '../../../../ufm/index.js';
10
10
  let UmbRefListBlockElement = class UmbRefListBlockElement extends UmbLitElement {
11
11
  render() {
12
- const blockValue = { ...this.content, $settings: this.settings };
12
+ const blockValue = { ...this.content, $settings: this.settings, $index: this.index };
13
13
  return html `
14
14
  <uui-ref-node standalone href=${(this.config?.showContentEdit ? this.config?.editContentPath : undefined) ?? ''}>
15
15
  <umb-icon slot="icon" .name=${this.icon}></umb-icon>
@@ -44,6 +44,9 @@ __decorate([
44
44
  __decorate([
45
45
  property({ type: String, reflect: false })
46
46
  ], UmbRefListBlockElement.prototype, "icon", void 0);
47
+ __decorate([
48
+ property({ type: Number, attribute: false })
49
+ ], UmbRefListBlockElement.prototype, "index", void 0);
47
50
  __decorate([
48
51
  property({ type: Boolean, reflect: true })
49
52
  ], UmbRefListBlockElement.prototype, "unpublished", void 0);