Skip to content

Collection: Introduce Collection Item Card extension type#20954

Merged
leekelleher merged 11 commits intomainfrom
v17/feature/collection-item-card-extension
Dec 2, 2025
Merged

Collection: Introduce Collection Item Card extension type#20954
leekelleher merged 11 commits intomainfrom
v17/feature/collection-item-card-extension

Conversation

@madsrasmussen
Copy link
Member

@madsrasmussen madsrasmussen commented Nov 25, 2025

Collection views need a consistent, pluggable way to render per-entity “cards”. That can be used across Collection Workspace Views and in the future Collection Item Pickers. Creating a reusable extension point centralizes the contract and lets packages provide tailored rendering (for example, user avatar or document status) without duplicating collection logic.

The PR introduces a new extension point entityCollectionItemCard that defines the contract for rendering individual entity cards inside collection views. The PR also adds two concrete implementations:

  • user-entity type
  • document- entity type

What to test:

  • Please ensure that the Document Collection Card View still works as expected
    • Select/Deselect
    • Renders the configured "column" data in each card
  • Please ensure that the User Collection Card View still works as expected
    • Select/Deselect
    • Renders avatars, user groups, etc.

Manifest Example

{
  type: 'entityCollectionItemCard',
  alias: 'My.EntityCollectionItemCard.CustomType',
  name: 'My Custom Type Entity Collection Item Card',
  element: () => import('./my-custom-type-collection-item-card.element.js'),
  forEntityTypes: ['my-custom-type'],
}

Basic Element Example

@customElement('my-custom-type-collection-item-card')
export class MyCustomTypeCollectionItemCardElement extends UmbLitElement {
	
  @property({ type: Object })
  item = false;

  @property({ type: Boolean })
  selectable = false;

  @property({ type: Boolean })
  selected = false;

  @property({ type: Boolean })
  selectOnly = false;

  @property({ type: String })
  href?: string;

  #onSelected(event: CustomEvent) {
    if (!this.item) return;
    event.stopPropagation();
    this.dispatchEvent(new UmbSelectedEvent(this.item.unique));
  }

  #onDeselected(event: CustomEvent) {
    if (!this.item) return;
    event.stopPropagation();
    this.dispatchEvent(new UmbDeselectedEvent(this.item.unique));
  }

  override render() {
    if (!this.item) return nothing;
    return html` <div>My Card rendering</div> `;
  }

  static override styles = [css``];
}

@madsrasmussen madsrasmussen marked this pull request as ready for review November 26, 2025 08:46
Copilot AI review requested due to automatic review settings November 26, 2025 08:46
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new pluggable extension system for rendering collection item cards across the Umbraco backoffice. It creates a reusable entityCollectionItemCard extension point that allows packages to provide tailored card rendering for different entity types (e.g., user avatars, document status) without duplicating collection logic. The PR refactors existing user and document grid collection views to use this new extension system and provides two initial implementations.

Key Changes:

  • Added new entityCollectionItemCard extension type with manifest definitions and a wrapper element that dynamically loads entity-specific card implementations
  • Implemented user and document entity collection item cards that encapsulate entity-specific rendering logic previously embedded in grid collection views
  • Refactored user and document grid collection views to use the new umb-entity-collection-item-card component

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/entity-collection-item-card.extension.ts Defines the manifest interface for the new extension type
src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/entity-collection-item-card.element.ts Main wrapper element that dynamically loads entity-specific card implementations based on entity type
src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/default-collection-item-card.element.ts Fallback card element used when no entity-specific implementation is registered
src/Umbraco.Web.UI.Client/src/packages/core/collection/item/types.ts Adds UmbCollectionItemDetailPropertyConfig interface and exports entity collection item card types
src/Umbraco.Web.UI.Client/src/packages/core/collection/global-components.ts Registers entity collection item card components globally
src/Umbraco.Web.UI.Client/src/packages/user/user/collection/item/user-collection-item-card.element.ts User-specific card implementation that renders user avatar, state, groups, and login information
src/Umbraco.Web.UI.Client/src/packages/user/user/collection/item/manifests.ts Registers user collection item card extension for user entity type
src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/grid/user-grid-collection-view.element.ts Refactored to use new umb-entity-collection-item-card component, removing inline user card rendering
src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/item/document-collection-item-card.element.ts Document-specific card wrapper that delegates to existing umb-document-grid-collection-card
src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/item/manifests.ts Registers document collection item card extension for document entity type
src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/item/types.ts Moves UmbDocumentCollectionItemModel and UmbEditableDocumentCollectionItemModel to item directory
src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/types.ts Re-exports collection item types from item subdirectory
src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/grid/document-grid-collection-view.element.ts Refactored to use new umb-entity-collection-item-card component with detailProperties prop
Comments suppressed due to low confidence (1)

src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/grid/user-grid-collection-view.element.ts:51

  • The _loading state variable (line 18) is checked in the render method (line 51) but is never updated to true anymore since the user groups loading logic was removed in this PR. Either remove the unused state variable and its check, or remove the unused check in the render method:
// Option 1: Remove the state variable and its check in render
override render() {
  return html`
    <div id="user-grid">
      ${repeat(
        this._users,
        (user) => user.unique,
        (user) => this.#renderUserCard(user),
      )}
    </div>
  `;
}

// Option 2: Keep if loading states will be added later
// But document why it's kept
	@state()
	private _loading = false;

	#collectionContext?: UmbUserCollectionContext;

	constructor() {
		super();

		this.consumeContext(UMB_USER_COLLECTION_CONTEXT, (instance) => {
			this.#collectionContext = instance;

			this.observe(
				this.#collectionContext?.selection.selection,
				(selection) => (this._selection = selection ?? []),
				'umbCollectionSelectionObserver',
			);

			this.observe(
				this.#collectionContext?.items,
				(items) => (this._users = items ?? []),
				'umbCollectionItemsObserver',
			);
		});
	}

	#onSelect(user: UmbUserDetailModel) {
		this.#collectionContext?.selection.select(user.unique ?? '');
	}

	#onDeselect(user: UmbUserDetailModel) {
		this.#collectionContext?.selection.deselect(user.unique ?? '');
	}

	override render() {
		if (this._loading) return nothing;

You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.

@madsrasmussen madsrasmussen changed the title Collection: Introduce Collection Item Card extension Collection: Introduce Collection Item Card extension type Nov 26, 2025
@madsrasmussen madsrasmussen marked this pull request as draft December 1, 2025 10:09
@madsrasmussen madsrasmussen marked this pull request as ready for review December 1, 2025 10:17
@leekelleher leekelleher self-requested a review December 2, 2025 09:53
Copy link
Member

@leekelleher leekelleher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Testing out, all working as expected! 🚀

alexsee pushed a commit to alexsee/umbraco-container that referenced this pull request Jan 18, 2026
Updated
[Umbraco.Cms.Persistence.Sqlite](https://github.com/umbraco/Umbraco-CMS)
from 17.0.2 to 17.1.0.

<details>
<summary>Release notes</summary>

_Sourced from [Umbraco.Cms.Persistence.Sqlite's
releases](https://github.com/umbraco/Umbraco-CMS/releases)._

## 17.1.0

# What's Changed Since 17.1.0-rc

### 🐛 Bug Fixes
* Media: Fix files not deleted from disk when recycle bin protection is
enabled by @​AndyButland in
umbraco/Umbraco-CMS#21309
* Document Editing: Refactor of Fix property variation change breaking
document save via Infinite Editing (closes #​21195) by @​nielslyngsoe in
umbraco/Umbraco-CMS#21293
* umbraco/Umbraco-CMS#21306 by @​calm329 in
umbraco/Umbraco-CMS#21306

**Full Changelog**:
umbraco/Umbraco-CMS@release-17.1.0-rc...release-17.1.0

## What's Changed Since the Last Release (17.0.2)

### 📦 Dependencies
* Dependencies: Fixed dependency conflicts when installing
Microsoft.EntityFrameworkCore.Design (closes #​20421) by @​lauraneto in
umbraco/Umbraco-CMS#20474
* Dependencies: Remove `Microsoft.CodeAnalysis.CSharp` dependency from
Umbraco.Infrastructure by @​lauraneto in
umbraco/Umbraco-CMS#20481
* build(deps): bumps @​umbraco-ui/uui from 1.16.0-rc.0 to 1.16.0 by
@​iOvergaard in umbraco/Umbraco-CMS#20535
* Bump vite from 7.1.9 to 7.1.11 in /src/Umbraco.Web.UI.Client by
@​dependabot[bot] in umbraco/Umbraco-CMS#20580
* Bump vite from 7.1.9 to 7.1.11 in /src/Umbraco.Web.UI.Login by
@​dependabot[bot] in umbraco/Umbraco-CMS#20621
* Bump playwright and @​playwright/test in
/tests/Umbraco.Tests.AcceptanceTest by @​dependabot[bot] in
umbraco/Umbraco-CMS#20579
* Bump the npm_and_yarn group across 2 directories with 1 update by
@​dependabot[bot] in umbraco/Umbraco-CMS#20863
* Dependencies: Updates some dependencies to latest minor or patch
releases by @​AndyButland in
umbraco/Umbraco-CMS#20953
* build(deps): bumps monaco-editor from 0.54.0 to 0.55.1 by @​iOvergaard
in umbraco/Umbraco-CMS#21054

### 🌈 Accessibility Improvements
* Entity Actions: Create button discernible text (fixes #​20205) by
@​OskarKruger in umbraco/Umbraco-CMS#20434
* Entity Actions: More create button discernible text, extension of
#​20434 by @​OskarKruger in
umbraco/Umbraco-CMS#20458
* Header: Adjusted button focus border color contrast by @​MrHutmat in
umbraco/Umbraco-CMS#20562
* Login: Added custom validation for missing password and user/email on
the login form by @​MrHutmat in
umbraco/Umbraco-CMS#20233
* Accessibility: Adding a label attribute for `<uui-button>` in news
dashboard by @​MrHutmat in
umbraco/Umbraco-CMS#20780
* Keyboard navigation: Return to opening element after modal close by
@​MrHutmat in umbraco/Umbraco-CMS#20782

### 🚀 New Features
* Preview: Allows changing the preview environment inside the preview
app, and other UX changes that enhance the experience by @​leekelleher
in umbraco/Umbraco-CMS#20598
* Login: Adds show/hide password toggle by @​MrHutmat in
umbraco/Umbraco-CMS#20611
* Adds Clear Clipboard button & logic by @​warrenbuckley in
umbraco/Umbraco-CMS#20757
* Member types: Implement containers by @​ronaldbarendse in
umbraco/Umbraco-CMS#20706
* Log viewer: Improves search functionality and code quality by
@​iOvergaard in umbraco/Umbraco-CMS#20913
* Log Viewer: Enhances the donut chart to be responsive, link to log
search, and show numbers directly by @​iOvergaard in
umbraco/Umbraco-CMS#20928
* Culture and Hostnames: Add ability to sort hostnames (closes #​20691)
by @​MrHutmat in umbraco/Umbraco-CMS#20826
* Localization: Adds `termOrDefault()` method to accept a fallback value
by @​iOvergaard in umbraco/Umbraco-CMS#20947
* Block Grid: Sort mode by @​leekelleher in
umbraco/Umbraco-CMS#20869
* News Dashboard: Adding functionality to overwrite the cache duration
by @​NillasKA in umbraco/Umbraco-CMS#21064
* Block List: Sort mode by @​leekelleher in
umbraco/Umbraco-CMS#21060
* Extend RTE output in Delivery API for better support for multi-site
URL resolution by @​MiguelGuedelha in
umbraco/Umbraco-CMS#20846
* Content Types: Introduce schema service to support future schema
generation by @​lauraneto in
umbraco/Umbraco-CMS#21031
* Delivery API: Adding allow list for content types by @​NillasKA in
umbraco/Umbraco-CMS#21111
* Emails: Add `Expires` header by @​rickbutterfield in
umbraco/Umbraco-CMS#20285
* Indexing: Make the indexing batch size configurable by @​kjac in
umbraco/Umbraco-CMS#20543
* Media: Add protection to restrict access to media in recycle bin
(closes #​2931) by @​AndyButland in
umbraco/Umbraco-CMS#20378
* Collection: Introduce Collection Item Card extension type by
@​madsrasmussen in umbraco/Umbraco-CMS#20954
* Collection: Introduce Collection Item Ref extension type by
@​madsrasmussen in umbraco/Umbraco-CMS#20994
 ... (truncated)

## 17.1.0-rc

## What's Changed

### 📦 Dependencies
* Dependencies: Fixed dependency conflicts when installing
Microsoft.EntityFrameworkCore.Design (closes #​20421) by @​lauraneto in
umbraco/Umbraco-CMS#20474
* Dependencies: Remove `Microsoft.CodeAnalysis.CSharp` dependency from
Umbraco.Infrastructure by @​lauraneto in
umbraco/Umbraco-CMS#20481
* build(deps): bumps @​umbraco-ui/uui from 1.16.0-rc.0 to 1.16.0 by
@​iOvergaard in umbraco/Umbraco-CMS#20535
* Bump vite from 7.1.9 to 7.1.11 in /src/Umbraco.Web.UI.Client by
@​dependabot[bot] in umbraco/Umbraco-CMS#20580
* Bump vite from 7.1.9 to 7.1.11 in /src/Umbraco.Web.UI.Login by
@​dependabot[bot] in umbraco/Umbraco-CMS#20621
* Bump playwright and @​playwright/test in
/tests/Umbraco.Tests.AcceptanceTest by @​dependabot[bot] in
umbraco/Umbraco-CMS#20579
* Bump the npm_and_yarn group across 2 directories with 1 update by
@​dependabot[bot] in umbraco/Umbraco-CMS#20863
* Dependencies: Updates some dependencies to latest minor or patch
releases by @​AndyButland in
umbraco/Umbraco-CMS#20953
* build(deps): bumps monaco-editor from 0.54.0 to 0.55.1 by @​iOvergaard
in umbraco/Umbraco-CMS#21054

### 🌈 Accessibility Improvements
* Entity Actions: Create button discernible text (fixes #​20205) by
@​OskarKruger in umbraco/Umbraco-CMS#20434
* Entity Actions: More create button discernible text, extension of
#​20434 by @​OskarKruger in
umbraco/Umbraco-CMS#20458
* Header: Adjusted button focus border color contrast by @​MrHutmat in
umbraco/Umbraco-CMS#20562
* Login: Added custom validation for missing password and user/email on
the login form by @​MrHutmat in
umbraco/Umbraco-CMS#20233
* Accessibility: Adding a label attribute for `<uui-button>` in news
dashboard by @​MrHutmat in
umbraco/Umbraco-CMS#20780
* Keyboard navigation: Return to opening element after modal close by
@​MrHutmat in umbraco/Umbraco-CMS#20782

### 🚀 New Features
* Preview: Allows changing the preview environment inside the preview
app, and other UX changes that enhance the experience by @​leekelleher
in umbraco/Umbraco-CMS#20598
* Login: Adds show/hide password toggle by @​MrHutmat in
umbraco/Umbraco-CMS#20611
* Adds Clear Clipboard button & logic by @​warrenbuckley in
umbraco/Umbraco-CMS#20757
* Member types: Implement containers by @​ronaldbarendse in
umbraco/Umbraco-CMS#20706
* Log viewer: Improves search functionality and code quality by
@​iOvergaard in umbraco/Umbraco-CMS#20913
* Log Viewer: Enhances the donut chart to be responsive, link to log
search, and show numbers directly by @​iOvergaard in
umbraco/Umbraco-CMS#20928
* Culture and Hostnames: Add ability to sort hostnames (closes #​20691)
by @​MrHutmat in umbraco/Umbraco-CMS#20826
* Localization: Adds `termOrDefault()` method to accept a fallback value
by @​iOvergaard in umbraco/Umbraco-CMS#20947
* Block Grid: Sort mode by @​leekelleher in
umbraco/Umbraco-CMS#20869
* News Dashboard: Adding functionality to overwrite the cache duration
by @​NillasKA in umbraco/Umbraco-CMS#21064
* Block List: Sort mode by @​leekelleher in
umbraco/Umbraco-CMS#21060
* Extend RTE output in Delivery API for better support for multi-site
URL resolution by @​MiguelGuedelha in
umbraco/Umbraco-CMS#20846
* Content Types: Introduce schema service to support future schema
generation by @​lauraneto in
umbraco/Umbraco-CMS#21031
* Delivery API: Adding allow list for content types by @​NillasKA in
umbraco/Umbraco-CMS#21111
* Emails: Add `Expires` header by @​rickbutterfield in
umbraco/Umbraco-CMS#20285
* Indexing: Make the indexing batch size configurable by @​kjac in
umbraco/Umbraco-CMS#20543
* Media: Add protection to restrict access to media in recycle bin
(closes #​2931) by @​AndyButland in
umbraco/Umbraco-CMS#20378
* Collection: Introduce Collection Item Card extension type by
@​madsrasmussen in umbraco/Umbraco-CMS#20954
* Collection: Introduce Collection Item Ref extension type by
@​madsrasmussen in umbraco/Umbraco-CMS#20994
* Collection: Introduce Card and Ref Collection View kinds by
@​madsrasmussen in umbraco/Umbraco-CMS#21037

### 🚤 Performance
* Performance: Optimize memory footprint of document URL cache (closes
#​21055) by @​AndyButland in
umbraco/Umbraco-CMS#21066
* Distributed Background Jobs: Improve distributed background job
locking behavior and performance by @​nikolajlauridsen in
umbraco/Umbraco-CMS#21100
* Repositories: Optimize repository caches to populate for both int and
GUID keys by @​AndyButland in
umbraco/Umbraco-CMS#21124
* Performance: Re-introduce lazy locks by @​lauraneto in
umbraco/Umbraco-CMS#21102

### 🐛 Bug Fixes
 ... (truncated)

Commits viewable in [compare
view](umbraco/Umbraco-CMS@release-17.0.2...release-17.1.0).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Umbraco.Cms.Persistence.Sqlite&package-manager=nuget&previous-version=17.0.2&new-version=17.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
alexsee added a commit to alexsee/umbraco-container that referenced this pull request Jan 18, 2026
Updated
[Umbraco.Cms.DevelopmentMode.Backoffice](https://github.com/umbraco/Umbraco-CMS)
from 17.0.2 to 17.1.0.

<details>
<summary>Release notes</summary>

_Sourced from [Umbraco.Cms.DevelopmentMode.Backoffice's
releases](https://github.com/umbraco/Umbraco-CMS/releases)._

## 17.1.0

# What's Changed Since 17.1.0-rc

### 🐛 Bug Fixes
* Media: Fix files not deleted from disk when recycle bin protection is
enabled by @​AndyButland in
umbraco/Umbraco-CMS#21309
* Document Editing: Refactor of Fix property variation change breaking
document save via Infinite Editing (closes #​21195) by @​nielslyngsoe in
umbraco/Umbraco-CMS#21293
* umbraco/Umbraco-CMS#21306 by @​calm329 in
umbraco/Umbraco-CMS#21306

**Full Changelog**:
umbraco/Umbraco-CMS@release-17.1.0-rc...release-17.1.0

## What's Changed Since the Last Release (17.0.2)

### 📦 Dependencies
* Dependencies: Fixed dependency conflicts when installing
Microsoft.EntityFrameworkCore.Design (closes #​20421) by @​lauraneto in
umbraco/Umbraco-CMS#20474
* Dependencies: Remove `Microsoft.CodeAnalysis.CSharp` dependency from
Umbraco.Infrastructure by @​lauraneto in
umbraco/Umbraco-CMS#20481
* build(deps): bumps @​umbraco-ui/uui from 1.16.0-rc.0 to 1.16.0 by
@​iOvergaard in umbraco/Umbraco-CMS#20535
* Bump vite from 7.1.9 to 7.1.11 in /src/Umbraco.Web.UI.Client by
@​dependabot[bot] in umbraco/Umbraco-CMS#20580
* Bump vite from 7.1.9 to 7.1.11 in /src/Umbraco.Web.UI.Login by
@​dependabot[bot] in umbraco/Umbraco-CMS#20621
* Bump playwright and @​playwright/test in
/tests/Umbraco.Tests.AcceptanceTest by @​dependabot[bot] in
umbraco/Umbraco-CMS#20579
* Bump the npm_and_yarn group across 2 directories with 1 update by
@​dependabot[bot] in umbraco/Umbraco-CMS#20863
* Dependencies: Updates some dependencies to latest minor or patch
releases by @​AndyButland in
umbraco/Umbraco-CMS#20953
* build(deps): bumps monaco-editor from 0.54.0 to 0.55.1 by @​iOvergaard
in umbraco/Umbraco-CMS#21054

### 🌈 Accessibility Improvements
* Entity Actions: Create button discernible text (fixes #​20205) by
@​OskarKruger in umbraco/Umbraco-CMS#20434
* Entity Actions: More create button discernible text, extension of
#​20434 by @​OskarKruger in
umbraco/Umbraco-CMS#20458
* Header: Adjusted button focus border color contrast by @​MrHutmat in
umbraco/Umbraco-CMS#20562
* Login: Added custom validation for missing password and user/email on
the login form by @​MrHutmat in
umbraco/Umbraco-CMS#20233
* Accessibility: Adding a label attribute for `<uui-button>` in news
dashboard by @​MrHutmat in
umbraco/Umbraco-CMS#20780
* Keyboard navigation: Return to opening element after modal close by
@​MrHutmat in umbraco/Umbraco-CMS#20782

### 🚀 New Features
* Preview: Allows changing the preview environment inside the preview
app, and other UX changes that enhance the experience by @​leekelleher
in umbraco/Umbraco-CMS#20598
* Login: Adds show/hide password toggle by @​MrHutmat in
umbraco/Umbraco-CMS#20611
* Adds Clear Clipboard button & logic by @​warrenbuckley in
umbraco/Umbraco-CMS#20757
* Member types: Implement containers by @​ronaldbarendse in
umbraco/Umbraco-CMS#20706
* Log viewer: Improves search functionality and code quality by
@​iOvergaard in umbraco/Umbraco-CMS#20913
* Log Viewer: Enhances the donut chart to be responsive, link to log
search, and show numbers directly by @​iOvergaard in
umbraco/Umbraco-CMS#20928
* Culture and Hostnames: Add ability to sort hostnames (closes #​20691)
by @​MrHutmat in umbraco/Umbraco-CMS#20826
* Localization: Adds `termOrDefault()` method to accept a fallback value
by @​iOvergaard in umbraco/Umbraco-CMS#20947
* Block Grid: Sort mode by @​leekelleher in
umbraco/Umbraco-CMS#20869
* News Dashboard: Adding functionality to overwrite the cache duration
by @​NillasKA in umbraco/Umbraco-CMS#21064
* Block List: Sort mode by @​leekelleher in
umbraco/Umbraco-CMS#21060
* Extend RTE output in Delivery API for better support for multi-site
URL resolution by @​MiguelGuedelha in
umbraco/Umbraco-CMS#20846
* Content Types: Introduce schema service to support future schema
generation by @​lauraneto in
umbraco/Umbraco-CMS#21031
* Delivery API: Adding allow list for content types by @​NillasKA in
umbraco/Umbraco-CMS#21111
* Emails: Add `Expires` header by @​rickbutterfield in
umbraco/Umbraco-CMS#20285
* Indexing: Make the indexing batch size configurable by @​kjac in
umbraco/Umbraco-CMS#20543
* Media: Add protection to restrict access to media in recycle bin
(closes #​2931) by @​AndyButland in
umbraco/Umbraco-CMS#20378
* Collection: Introduce Collection Item Card extension type by
@​madsrasmussen in umbraco/Umbraco-CMS#20954
* Collection: Introduce Collection Item Ref extension type by
@​madsrasmussen in umbraco/Umbraco-CMS#20994
 ... (truncated)

## 17.1.0-rc

## What's Changed

### 📦 Dependencies
* Dependencies: Fixed dependency conflicts when installing
Microsoft.EntityFrameworkCore.Design (closes #​20421) by @​lauraneto in
umbraco/Umbraco-CMS#20474
* Dependencies: Remove `Microsoft.CodeAnalysis.CSharp` dependency from
Umbraco.Infrastructure by @​lauraneto in
umbraco/Umbraco-CMS#20481
* build(deps): bumps @​umbraco-ui/uui from 1.16.0-rc.0 to 1.16.0 by
@​iOvergaard in umbraco/Umbraco-CMS#20535
* Bump vite from 7.1.9 to 7.1.11 in /src/Umbraco.Web.UI.Client by
@​dependabot[bot] in umbraco/Umbraco-CMS#20580
* Bump vite from 7.1.9 to 7.1.11 in /src/Umbraco.Web.UI.Login by
@​dependabot[bot] in umbraco/Umbraco-CMS#20621
* Bump playwright and @​playwright/test in
/tests/Umbraco.Tests.AcceptanceTest by @​dependabot[bot] in
umbraco/Umbraco-CMS#20579
* Bump the npm_and_yarn group across 2 directories with 1 update by
@​dependabot[bot] in umbraco/Umbraco-CMS#20863
* Dependencies: Updates some dependencies to latest minor or patch
releases by @​AndyButland in
umbraco/Umbraco-CMS#20953
* build(deps): bumps monaco-editor from 0.54.0 to 0.55.1 by @​iOvergaard
in umbraco/Umbraco-CMS#21054

### 🌈 Accessibility Improvements
* Entity Actions: Create button discernible text (fixes #​20205) by
@​OskarKruger in umbraco/Umbraco-CMS#20434
* Entity Actions: More create button discernible text, extension of
#​20434 by @​OskarKruger in
umbraco/Umbraco-CMS#20458
* Header: Adjusted button focus border color contrast by @​MrHutmat in
umbraco/Umbraco-CMS#20562
* Login: Added custom validation for missing password and user/email on
the login form by @​MrHutmat in
umbraco/Umbraco-CMS#20233
* Accessibility: Adding a label attribute for `<uui-button>` in news
dashboard by @​MrHutmat in
umbraco/Umbraco-CMS#20780
* Keyboard navigation: Return to opening element after modal close by
@​MrHutmat in umbraco/Umbraco-CMS#20782

### 🚀 New Features
* Preview: Allows changing the preview environment inside the preview
app, and other UX changes that enhance the experience by @​leekelleher
in umbraco/Umbraco-CMS#20598
* Login: Adds show/hide password toggle by @​MrHutmat in
umbraco/Umbraco-CMS#20611
* Adds Clear Clipboard button & logic by @​warrenbuckley in
umbraco/Umbraco-CMS#20757
* Member types: Implement containers by @​ronaldbarendse in
umbraco/Umbraco-CMS#20706
* Log viewer: Improves search functionality and code quality by
@​iOvergaard in umbraco/Umbraco-CMS#20913
* Log Viewer: Enhances the donut chart to be responsive, link to log
search, and show numbers directly by @​iOvergaard in
umbraco/Umbraco-CMS#20928
* Culture and Hostnames: Add ability to sort hostnames (closes #​20691)
by @​MrHutmat in umbraco/Umbraco-CMS#20826
* Localization: Adds `termOrDefault()` method to accept a fallback value
by @​iOvergaard in umbraco/Umbraco-CMS#20947
* Block Grid: Sort mode by @​leekelleher in
umbraco/Umbraco-CMS#20869
* News Dashboard: Adding functionality to overwrite the cache duration
by @​NillasKA in umbraco/Umbraco-CMS#21064
* Block List: Sort mode by @​leekelleher in
umbraco/Umbraco-CMS#21060
* Extend RTE output in Delivery API for better support for multi-site
URL resolution by @​MiguelGuedelha in
umbraco/Umbraco-CMS#20846
* Content Types: Introduce schema service to support future schema
generation by @​lauraneto in
umbraco/Umbraco-CMS#21031
* Delivery API: Adding allow list for content types by @​NillasKA in
umbraco/Umbraco-CMS#21111
* Emails: Add `Expires` header by @​rickbutterfield in
umbraco/Umbraco-CMS#20285
* Indexing: Make the indexing batch size configurable by @​kjac in
umbraco/Umbraco-CMS#20543
* Media: Add protection to restrict access to media in recycle bin
(closes #​2931) by @​AndyButland in
umbraco/Umbraco-CMS#20378
* Collection: Introduce Collection Item Card extension type by
@​madsrasmussen in umbraco/Umbraco-CMS#20954
* Collection: Introduce Collection Item Ref extension type by
@​madsrasmussen in umbraco/Umbraco-CMS#20994
* Collection: Introduce Card and Ref Collection View kinds by
@​madsrasmussen in umbraco/Umbraco-CMS#21037

### 🚤 Performance
* Performance: Optimize memory footprint of document URL cache (closes
#​21055) by @​AndyButland in
umbraco/Umbraco-CMS#21066
* Distributed Background Jobs: Improve distributed background job
locking behavior and performance by @​nikolajlauridsen in
umbraco/Umbraco-CMS#21100
* Repositories: Optimize repository caches to populate for both int and
GUID keys by @​AndyButland in
umbraco/Umbraco-CMS#21124
* Performance: Re-introduce lazy locks by @​lauraneto in
umbraco/Umbraco-CMS#21102

### 🐛 Bug Fixes
 ... (truncated)

Commits viewable in [compare
view](umbraco/Umbraco-CMS@release-17.0.2...release-17.1.0).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Umbraco.Cms.DevelopmentMode.Backoffice&package-manager=nuget&previous-version=17.0.2&new-version=17.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexander Seeliger <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants