Skip to content

Tiptap RTE: Adds link (umbLink) support to styleMenu API#21494

Merged
AndyButland merged 3 commits intomainfrom
v17/feature/tiptap-style-menu-link-class
Jan 26, 2026
Merged

Tiptap RTE: Adds link (umbLink) support to styleMenu API#21494
AndyButland merged 3 commits intomainfrom
v17/feature/tiptap-style-menu-link-class

Conversation

@leekelleher
Copy link
Member

Description

Based on feedback on the forum:

It was not possible to configure a custom style menu to add a class to a link <a> tag. To resolve this, I have added support for the umbLink Tiptap extension to apply a custom class (or id) attribute.

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

Adds support for applying id/class styles to links (<a>) in the Tiptap styleMenu, specifically targeting Umbraco’s umbLink extension so custom style menus can style anchors.

Changes:

  • Extend the styleMenu tag-to-extension mapping to recognize <a> and apply attributes via umbLink.
  • Make styleMenu command entries optionally omit a tag-toggle command (needed for links).
  • Update toggleClassName handling to add/remove a specific class token while preserving other existing classes.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/Umbraco.Web.UI.Client/src/packages/tiptap/extensions/style-menu/style-menu.tiptap-toolbar-api.ts Adds <a>umbLink mapping and supports entries without a command so style application works on existing links.
src/Umbraco.Web.UI.Client/src/packages/tiptap/extensions/html-attr-class/html-attr-class.tiptap-extension.ts Adjusts class toggling to manipulate individual class tokens (instead of overwriting/removing the whole attribute).

Copy link
Contributor

@AndyButland AndyButland left a comment

Choose a reason for hiding this comment

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

I've not been able to verify this one I'm afraid @leekelleher - possibly due to user error, but let me replay and you can see if I'm doing anything wrong.

Have configured this extension using a combination of the example from the docs and the linked forum post.

{
   "type":"tiptapToolbarExtension",
   "kind":"styleMenu",
   "alias":"MyCustom.Tiptap.StyleMenu",
   "name":"My Custom Tiptap Style Menu",
   "meta":{
      "alias":"myCustomStyleMenu",
      "icon":"icon-palette",
      "label":"My custom styles"
   },
   "items":[
      {
         "label":"Headings",
         "items":[
            {
               "label":"Heading 2",
               "data":{
                  "tag":"h2"
               },
               "appearance":{
                  "icon":"icon-heading-2"
               }
            },
            {
               "label":"Heading 3",
               "data":{
                  "tag":"h3"
               },
               "appearance":{
                  "style":"font-size: large;"
               }
            },
            {
               "label":"Heading 4",
               "data":{
                  "tag":"h4"
               }
            },
            {
               "label":"Heading 5",
               "data":{
                  "tag":"h5"
               }
            }
         ]
      },
      {
         "label":"Links",
         "items":[
            {
               "label":"Button Link",
               "data":{
                  "tag":"a",
                  "class":"button-link"
               },
               "appearance":{
                  "icon":"icon-link",
                  "style":"border: 1px solid black; padding: 4px 6px;"
               }
            }
         ]
      }
   ]
}

This appears OK in the backoffice when I add it to be my RTE.

image

But it doesn't do anything to the selected text when I choose it - if I view the RTE source, it's unchanged.

@AndyButland
Copy link
Contributor

AndyButland commented Jan 23, 2026

P.S. When this is merged, looks like a docs update to add the a tag support is needed here.

@leekelleher
Copy link
Member Author

Sorry, I should have clarified, this was more of an intermediate fix to enable applying class attributes to an existing link (<a> tag). It doesn't create a new link, (mostly because it requires the URL Picker modal for configuration).

I'll set this PR as draft - as there is also Copilot feedback I need to address - and I'll see if I can wire up the URL Picker modal.

@leekelleher leekelleher marked this pull request as draft January 23, 2026 07:39
leekelleher and others added 2 commits January 26, 2026 10:29
The toggleClassName command now properly tokenizes the className parameter
to handle space-separated classes (e.g., "btn btn-primary"). Previously,
the entire string was treated as a single token, causing duplicates and
preventing class removal.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@leekelleher leekelleher marked this pull request as ready for review January 26, 2026 12:00
@leekelleher
Copy link
Member Author

@AndyButland I've updated the PR with new logic. If the tag: 'a' part is configured (in the style menu manifest), then we try to create an <a> tag if it doesn't already exist. The href will default to #, as wiring up the URL Picker modal into this workflow started to become a significant effort.
We can come back to this in future, but for now this will resolve the issue that users were experiencing.

@nielslyngsoe
Copy link
Member

I read the front-end code changes and am happy about that. I'm not completely sure about the issue/use-case but it seems Andy is on to that. So I'm happy about applying this code, leaving it up to you to align on the rest and getting it merged :-)

Copy link
Contributor

@AndyButland AndyButland left a comment

Choose a reason for hiding this comment

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

Thanks @leekelleher - this works as you describe, and can see it's an improvement on the existing behaviour and solves the immediate issue. You can click to open the link modal after adding a new <a> tag via this method.

@AndyButland AndyButland merged commit 00794f4 into main Jan 26, 2026
27 of 28 checks passed
@AndyButland AndyButland deleted the v17/feature/tiptap-style-menu-link-class branch January 26, 2026 13:24
@umbracocommunity
Copy link

This pull request has been mentioned on Umbraco community forum. There might be relevant details there:

https://forum.umbraco.com/t/custom-rte-tiptap-style-dropdown-trying-to-applying-a-css-class-to-a-link/6595/20

alexsee pushed a commit to alexsee/umbraco-container that referenced this pull request Feb 23, 2026
Updated [Umbraco.Cms](https://github.com/umbraco/Umbraco-CMS) from
17.1.0 to 17.2.0.

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

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

## 17.2.0

## What's Changed Since 17.2.0-rc2

### 📦 Dependencies
* build(deps): bumps @​umbraco-ui/uui to 1.17.0 by @​iOvergaard in
umbraco/Umbraco-CMS#21765

**Full Changelog**:
umbraco/Umbraco-CMS@release-17.2.0-rc2...release-17.2.0

## What's Changed Since 17.2.0-rc

### 🐛 Bug Fixes
* Block Workspace: rename root-tab to 'generic' by @​nielslyngsoe in
umbraco/Umbraco-CMS#21699
* Block Workspace: Tabs navigation, Cherry-pick from #​21672 by
@​nielslyngsoe in umbraco/Umbraco-CMS#21693

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

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

### 🙌 Notable Changes
* User group: add description to user group (closes #​14986) by
@​NguyenThuyLan in umbraco/Umbraco-CMS#21057
* Content Types: Root properties by @​nielslyngsoe in
umbraco/Umbraco-CMS#21500

### 📦 Dependencies
* Storybook: Bumps storybook from 9.0.14 to 10.1.10 by @​dependabot[bot]
in umbraco/Umbraco-CMS#21208
* Bump qs from 6.14.0 to 6.14.1 in /src/Umbraco.Web.UI.Client in the
npm_and_yarn group across 1 directory by @​dependabot[bot] in
umbraco/Umbraco-CMS#21270
* Bump the npm_and_yarn group across 2 directories with 1 update by
@​dependabot[bot] in umbraco/Umbraco-CMS#21403
* Dependencies: Bumps login dependencies to latest by @​iOvergaard in
umbraco/Umbraco-CMS#21539
* Tiptap RTE: Upgraded to latest v3.x by @​leekelleher in
umbraco/Umbraco-CMS#21493
* Dependencies: Bumps @​umbraco-ui/uui to 1.17.0-rc.4 by @​iOvergaard in
umbraco/Umbraco-CMS#21538
* build(deps): bumps @​umbraco-ui/uui to 1.17.0-rc.5 by @​iOvergaard in
umbraco/Umbraco-CMS#21569
* Dependencies: Update Microsoft packages to 10.0.1 and pin vulnerable
transitive dependencies (closes #​21122) by @​AndyButland in
umbraco/Umbraco-CMS#21285
* Dependencies: Bump to latest minor/patch versions by @​AndyButland in
umbraco/Umbraco-CMS#21540

### 🚀 New Features
* Markdown Conversion: Remove hard dependency on deprecated library and
replace with `IMarkdownToHtmlConverter` abstraction (closes #​21238 and
#​19500) by @​AndyButland in
umbraco/Umbraco-CMS#21242
* UI: Refactor breadcrumb URLs to use Path Constants by @​iOvergaard in
umbraco/Umbraco-CMS#21179
* Tree Navigation: Add visual indicators for items with restricted
access by @​iOvergaard in
umbraco/Umbraco-CMS#21365
* Recycle Bin: Adds `emptyRecycleBin` collection action kind for
Documents and Media by @​leekelleher in
umbraco/Umbraco-CMS#21482
* Tiptap RTE: Adds link (`umbLink`) support to `styleMenu` API by
@​leekelleher in umbraco/Umbraco-CMS#21494
* Rollback: Add toggle for diff display (closes #​18518) by
@​AndyButland in umbraco/Umbraco-CMS#21426
* Dictionary: Add configurable value search functionality by
@​Nis-Knowit in umbraco/Umbraco-CMS#21200

### 🚤 Performance
* Performance: Embeds the API of selected extra conditions by
@​nielslyngsoe in umbraco/Umbraco-CMS#21188
* Performance: Bundle Js Libs by @​nielslyngsoe in
umbraco/Umbraco-CMS#21187
* Performance: Embed Store API in Manifests to lower number of network
request by @​madsrasmussen in
umbraco/Umbraco-CMS#21191
* Performance: Avoid database lookup in `UserIdKeyResolver` for
super-user by @​AndyButland in
umbraco/Umbraco-CMS#21281
* Performance: Only flush ID/Key map in `ContentCacheRefresher` on
content deletion by @​AndyButland in
umbraco/Umbraco-CMS#21283
* Performance: Optimize refresh of hybrid cache for a document by
retrieving draft and published in single query by @​AndyButland in
umbraco/Umbraco-CMS#21407
* Backoffice Performance: Inline entry point modules to reduce JS chunk
count by @​madsrasmussen in
umbraco/Umbraco-CMS#21380
* HybridCache: Optimize content type change cache rebuild to resolve SQL
timeouts by @​AndyButland in
umbraco/Umbraco-CMS#21207
 ... (truncated)

## 17.2.0-rc2

## What's Changed Since 17.2.0-rc

### 🐛 Bug Fixes
* Block Workspace: rename root-tab to 'generic' by @​nielslyngsoe in
umbraco/Umbraco-CMS#21699
* Block Workspace: Tabs navigation, Cherry-pick from #​21672 by
@​nielslyngsoe in umbraco/Umbraco-CMS#21693

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

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

### 🙌 Notable Changes
* User group: add description to user group (closes #​14986) by
@​NguyenThuyLan in umbraco/Umbraco-CMS#21057
* Content Types: Root properties by @​nielslyngsoe in
umbraco/Umbraco-CMS#21500

### 📦 Dependencies
* Storybook: Bumps storybook from 9.0.14 to 10.1.10 by @​dependabot[bot]
in umbraco/Umbraco-CMS#21208
* Bump qs from 6.14.0 to 6.14.1 in /src/Umbraco.Web.UI.Client in the
npm_and_yarn group across 1 directory by @​dependabot[bot] in
umbraco/Umbraco-CMS#21270
* Bump the npm_and_yarn group across 2 directories with 1 update by
@​dependabot[bot] in umbraco/Umbraco-CMS#21403
* Dependencies: Bumps login dependencies to latest by @​iOvergaard in
umbraco/Umbraco-CMS#21539
* Tiptap RTE: Upgraded to latest v3.x by @​leekelleher in
umbraco/Umbraco-CMS#21493
* Dependencies: Bumps @​umbraco-ui/uui to 1.17.0-rc.4 by @​iOvergaard in
umbraco/Umbraco-CMS#21538
* build(deps): bumps @​umbraco-ui/uui to 1.17.0-rc.5 by @​iOvergaard in
umbraco/Umbraco-CMS#21569
* Dependencies: Update Microsoft packages to 10.0.1 and pin vulnerable
transitive dependencies (closes #​21122) by @​AndyButland in
umbraco/Umbraco-CMS#21285
* Dependencies: Bump to latest minor/patch versions by @​AndyButland in
umbraco/Umbraco-CMS#21540

### 🚀 New Features
* Markdown Conversion: Remove hard dependency on deprecated library and
replace with `IMarkdownToHtmlConverter` abstraction (closes #​21238 and
#​19500) by @​AndyButland in
umbraco/Umbraco-CMS#21242
* UI: Refactor breadcrumb URLs to use Path Constants by @​iOvergaard in
umbraco/Umbraco-CMS#21179
* Tree Navigation: Add visual indicators for items with restricted
access by @​iOvergaard in
umbraco/Umbraco-CMS#21365
* Recycle Bin: Adds `emptyRecycleBin` collection action kind for
Documents and Media by @​leekelleher in
umbraco/Umbraco-CMS#21482
* Tiptap RTE: Adds link (`umbLink`) support to `styleMenu` API by
@​leekelleher in umbraco/Umbraco-CMS#21494
* Rollback: Add toggle for diff display (closes #​18518) by
@​AndyButland in umbraco/Umbraco-CMS#21426
* Dictionary: Add configurable value search functionality by
@​Nis-Knowit in umbraco/Umbraco-CMS#21200

### 🚤 Performance
* Performance: Embeds the API of selected extra conditions by
@​nielslyngsoe in umbraco/Umbraco-CMS#21188
* Performance: Bundle Js Libs by @​nielslyngsoe in
umbraco/Umbraco-CMS#21187
* Performance: Embed Store API in Manifests to lower number of network
request by @​madsrasmussen in
umbraco/Umbraco-CMS#21191
* Performance: Avoid database lookup in `UserIdKeyResolver` for
super-user by @​AndyButland in
umbraco/Umbraco-CMS#21281
* Performance: Only flush ID/Key map in `ContentCacheRefresher` on
content deletion by @​AndyButland in
umbraco/Umbraco-CMS#21283
* Performance: Optimize refresh of hybrid cache for a document by
retrieving draft and published in single query by @​AndyButland in
umbraco/Umbraco-CMS#21407
* Backoffice Performance: Inline entry point modules to reduce JS chunk
count by @​madsrasmussen in
umbraco/Umbraco-CMS#21380
* HybridCache: Optimize content type change cache rebuild to resolve SQL
timeouts by @​AndyButland in
umbraco/Umbraco-CMS#21207
* Backoffice Performance: Use import maps to save requests by
@​nielslyngsoe in umbraco/Umbraco-CMS#21363
* Document URL Cache: Ensure URLs are rebuilt after upgrade and prevent
duplicate initialization (closes #​21337) by @​AndyButland in
umbraco/Umbraco-CMS#21379
* Performance: Fix thread safety and optimize cache updates in
`PublishStatusService` after content changes by @​AndyButland in
umbraco/Umbraco-CMS#21415
* Tiptap RTE: Optimize `umb-input-tiptap` initialization and rendering
by @​leekelleher in umbraco/Umbraco-CMS#21070
* Routing: Add `DocumentUrlAliasService` for optimized URL alias lookups
(closes #​21383) by @​AndyButland in
umbraco/Umbraco-CMS#21396
* Performance: Optimize property retrieval and authorization checks in
collection views (closes #​21367) by @​AndyButland in
umbraco/Umbraco-CMS#21470

 ... (truncated)

## 17.2.0-rc

## What's Changed

### 🙌 Notable Changes
* User group: add description to user group (closes #​14986) by
@​NguyenThuyLan in umbraco/Umbraco-CMS#21057
* Content Types: Root properties by @​nielslyngsoe in
umbraco/Umbraco-CMS#21500

### 📦 Dependencies
* Storybook: Bumps storybook from 9.0.14 to 10.1.10 by @​dependabot[bot]
in umbraco/Umbraco-CMS#21208
* Bump qs from 6.14.0 to 6.14.1 in /src/Umbraco.Web.UI.Client in the
npm_and_yarn group across 1 directory by @​dependabot[bot] in
umbraco/Umbraco-CMS#21270
* Bump the npm_and_yarn group across 2 directories with 1 update by
@​dependabot[bot] in umbraco/Umbraco-CMS#21403
* Dependencies: Bumps login dependencies to latest by @​iOvergaard in
umbraco/Umbraco-CMS#21539
* Tiptap RTE: Upgraded to latest v3.x by @​leekelleher in
umbraco/Umbraco-CMS#21493
* Dependencies: Bumps @​umbraco-ui/uui to 1.17.0-rc.4 by @​iOvergaard in
umbraco/Umbraco-CMS#21538
* build(deps): bumps @​umbraco-ui/uui to 1.17.0-rc.5 by @​iOvergaard in
umbraco/Umbraco-CMS#21569
* Dependencies: Update Microsoft packages to 10.0.1 and pin vulnerable
transitive dependencies (closes #​21122) by @​AndyButland in
umbraco/Umbraco-CMS#21285
* Dependencies: Bump to latest minor/patch versions by @​AndyButland in
umbraco/Umbraco-CMS#21540

### 🚀 New Features
* Markdown Conversion: Remove hard dependency on deprecated library and
replace with `IMarkdownToHtmlConverter` abstraction (closes #​21238 and
#​19500) by @​AndyButland in
umbraco/Umbraco-CMS#21242
* UI: Refactor breadcrumb URLs to use Path Constants by @​iOvergaard in
umbraco/Umbraco-CMS#21179
* Tree Navigation: Add visual indicators for items with restricted
access by @​iOvergaard in
umbraco/Umbraco-CMS#21365
* Recycle Bin: Adds `emptyRecycleBin` collection action kind for
Documents and Media by @​leekelleher in
umbraco/Umbraco-CMS#21482
* Tiptap RTE: Adds link (`umbLink`) support to `styleMenu` API by
@​leekelleher in umbraco/Umbraco-CMS#21494
* Rollback: Add toggle for diff display (closes #​18518) by
@​AndyButland in umbraco/Umbraco-CMS#21426
* Dictionary: Add configurable value search functionality by
@​Nis-Knowit in umbraco/Umbraco-CMS#21200

### 🚤 Performance
* Performance: Embeds the API of selected extra conditions by
@​nielslyngsoe in umbraco/Umbraco-CMS#21188
* Performance: Bundle Js Libs by @​nielslyngsoe in
umbraco/Umbraco-CMS#21187
* Performance: Embed Store API in Manifests to lower number of network
request by @​madsrasmussen in
umbraco/Umbraco-CMS#21191
* Performance: Avoid database lookup in `UserIdKeyResolver` for
super-user by @​AndyButland in
umbraco/Umbraco-CMS#21281
* Performance: Only flush ID/Key map in `ContentCacheRefresher` on
content deletion by @​AndyButland in
umbraco/Umbraco-CMS#21283
* Performance: Optimize refresh of hybrid cache for a document by
retrieving draft and published in single query by @​AndyButland in
umbraco/Umbraco-CMS#21407
* Backoffice Performance: Inline entry point modules to reduce JS chunk
count by @​madsrasmussen in
umbraco/Umbraco-CMS#21380
* HybridCache: Optimize content type change cache rebuild to resolve SQL
timeouts by @​AndyButland in
umbraco/Umbraco-CMS#21207
* Backoffice Performance: Use import maps to save requests by
@​nielslyngsoe in umbraco/Umbraco-CMS#21363
* Document URL Cache: Ensure URLs are rebuilt after upgrade and prevent
duplicate initialization (closes #​21337) by @​AndyButland in
umbraco/Umbraco-CMS#21379
* Performance: Fix thread safety and optimize cache updates in
`PublishStatusService` after content changes by @​AndyButland in
umbraco/Umbraco-CMS#21415
* Tiptap RTE: Optimize `umb-input-tiptap` initialization and rendering
by @​leekelleher in umbraco/Umbraco-CMS#21070
* Routing: Add `DocumentUrlAliasService` for optimized URL alias lookups
(closes #​21383) by @​AndyButland in
umbraco/Umbraco-CMS#21396
* Performance: Optimize property retrieval and authorization checks in
collection views (closes #​21367) by @​AndyButland in
umbraco/Umbraco-CMS#21470

### 🧪 Testing
* E2E: QA Replaced unreliable Thread.Sleep(500) with a counter/gate
pattern that ensures both transactions are initialized before releasing
them to compete for locks by @​andr317c in
umbraco/Umbraco-CMS#21165
* E2E QA: Updated integration test that was missing directory setup by
@​andr317c in umbraco/Umbraco-CMS#21167
* E2E: QA Added acceptance tests for removing a not-found content picker
by @​nhudinh0309 in umbraco/Umbraco-CMS#21177
* E2E: QA Fixed failing tests for the current user profile by
@​nhudinh0309 in umbraco/Umbraco-CMS#21214
* Upgrade MSW from 1.3.5 to 2.12.4 by @​madsrasmussen in
umbraco/Umbraco-CMS#21096
* E2E: QA Added acceptance tests for rendering content with invariant
blocks by @​nhudinh0309 in
umbraco/Umbraco-CMS#21180
* E2E: QA Added acceptance tests for content delivery API by
@​nhudinh0309 in umbraco/Umbraco-CMS#21095
 ... (truncated)

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

Updated
[Umbraco.Cms.Persistence.Sqlite](https://github.com/umbraco/Umbraco-CMS)
from 17.1.0 to 17.2.0.

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

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

## 17.2.0

## What's Changed Since 17.2.0-rc2

### 📦 Dependencies
* build(deps): bumps @​umbraco-ui/uui to 1.17.0 by @​iOvergaard in
umbraco/Umbraco-CMS#21765

**Full Changelog**:
umbraco/Umbraco-CMS@release-17.2.0-rc2...release-17.2.0

## What's Changed Since 17.2.0-rc

### 🐛 Bug Fixes
* Block Workspace: rename root-tab to 'generic' by @​nielslyngsoe in
umbraco/Umbraco-CMS#21699
* Block Workspace: Tabs navigation, Cherry-pick from #​21672 by
@​nielslyngsoe in umbraco/Umbraco-CMS#21693

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

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

### 🙌 Notable Changes
* User group: add description to user group (closes #​14986) by
@​NguyenThuyLan in umbraco/Umbraco-CMS#21057
* Content Types: Root properties by @​nielslyngsoe in
umbraco/Umbraco-CMS#21500

### 📦 Dependencies
* Storybook: Bumps storybook from 9.0.14 to 10.1.10 by @​dependabot[bot]
in umbraco/Umbraco-CMS#21208
* Bump qs from 6.14.0 to 6.14.1 in /src/Umbraco.Web.UI.Client in the
npm_and_yarn group across 1 directory by @​dependabot[bot] in
umbraco/Umbraco-CMS#21270
* Bump the npm_and_yarn group across 2 directories with 1 update by
@​dependabot[bot] in umbraco/Umbraco-CMS#21403
* Dependencies: Bumps login dependencies to latest by @​iOvergaard in
umbraco/Umbraco-CMS#21539
* Tiptap RTE: Upgraded to latest v3.x by @​leekelleher in
umbraco/Umbraco-CMS#21493
* Dependencies: Bumps @​umbraco-ui/uui to 1.17.0-rc.4 by @​iOvergaard in
umbraco/Umbraco-CMS#21538
* build(deps): bumps @​umbraco-ui/uui to 1.17.0-rc.5 by @​iOvergaard in
umbraco/Umbraco-CMS#21569
* Dependencies: Update Microsoft packages to 10.0.1 and pin vulnerable
transitive dependencies (closes #​21122) by @​AndyButland in
umbraco/Umbraco-CMS#21285
* Dependencies: Bump to latest minor/patch versions by @​AndyButland in
umbraco/Umbraco-CMS#21540

### 🚀 New Features
* Markdown Conversion: Remove hard dependency on deprecated library and
replace with `IMarkdownToHtmlConverter` abstraction (closes #​21238 and
#​19500) by @​AndyButland in
umbraco/Umbraco-CMS#21242
* UI: Refactor breadcrumb URLs to use Path Constants by @​iOvergaard in
umbraco/Umbraco-CMS#21179
* Tree Navigation: Add visual indicators for items with restricted
access by @​iOvergaard in
umbraco/Umbraco-CMS#21365
* Recycle Bin: Adds `emptyRecycleBin` collection action kind for
Documents and Media by @​leekelleher in
umbraco/Umbraco-CMS#21482
* Tiptap RTE: Adds link (`umbLink`) support to `styleMenu` API by
@​leekelleher in umbraco/Umbraco-CMS#21494
* Rollback: Add toggle for diff display (closes #​18518) by
@​AndyButland in umbraco/Umbraco-CMS#21426
* Dictionary: Add configurable value search functionality by
@​Nis-Knowit in umbraco/Umbraco-CMS#21200

### 🚤 Performance
* Performance: Embeds the API of selected extra conditions by
@​nielslyngsoe in umbraco/Umbraco-CMS#21188
* Performance: Bundle Js Libs by @​nielslyngsoe in
umbraco/Umbraco-CMS#21187
* Performance: Embed Store API in Manifests to lower number of network
request by @​madsrasmussen in
umbraco/Umbraco-CMS#21191
* Performance: Avoid database lookup in `UserIdKeyResolver` for
super-user by @​AndyButland in
umbraco/Umbraco-CMS#21281
* Performance: Only flush ID/Key map in `ContentCacheRefresher` on
content deletion by @​AndyButland in
umbraco/Umbraco-CMS#21283
* Performance: Optimize refresh of hybrid cache for a document by
retrieving draft and published in single query by @​AndyButland in
umbraco/Umbraco-CMS#21407
* Backoffice Performance: Inline entry point modules to reduce JS chunk
count by @​madsrasmussen in
umbraco/Umbraco-CMS#21380
* HybridCache: Optimize content type change cache rebuild to resolve SQL
timeouts by @​AndyButland in
umbraco/Umbraco-CMS#21207
 ... (truncated)

## 17.2.0-rc2

## What's Changed Since 17.2.0-rc

### 🐛 Bug Fixes
* Block Workspace: rename root-tab to 'generic' by @​nielslyngsoe in
umbraco/Umbraco-CMS#21699
* Block Workspace: Tabs navigation, Cherry-pick from #​21672 by
@​nielslyngsoe in umbraco/Umbraco-CMS#21693

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

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

### 🙌 Notable Changes
* User group: add description to user group (closes #​14986) by
@​NguyenThuyLan in umbraco/Umbraco-CMS#21057
* Content Types: Root properties by @​nielslyngsoe in
umbraco/Umbraco-CMS#21500

### 📦 Dependencies
* Storybook: Bumps storybook from 9.0.14 to 10.1.10 by @​dependabot[bot]
in umbraco/Umbraco-CMS#21208
* Bump qs from 6.14.0 to 6.14.1 in /src/Umbraco.Web.UI.Client in the
npm_and_yarn group across 1 directory by @​dependabot[bot] in
umbraco/Umbraco-CMS#21270
* Bump the npm_and_yarn group across 2 directories with 1 update by
@​dependabot[bot] in umbraco/Umbraco-CMS#21403
* Dependencies: Bumps login dependencies to latest by @​iOvergaard in
umbraco/Umbraco-CMS#21539
* Tiptap RTE: Upgraded to latest v3.x by @​leekelleher in
umbraco/Umbraco-CMS#21493
* Dependencies: Bumps @​umbraco-ui/uui to 1.17.0-rc.4 by @​iOvergaard in
umbraco/Umbraco-CMS#21538
* build(deps): bumps @​umbraco-ui/uui to 1.17.0-rc.5 by @​iOvergaard in
umbraco/Umbraco-CMS#21569
* Dependencies: Update Microsoft packages to 10.0.1 and pin vulnerable
transitive dependencies (closes #​21122) by @​AndyButland in
umbraco/Umbraco-CMS#21285
* Dependencies: Bump to latest minor/patch versions by @​AndyButland in
umbraco/Umbraco-CMS#21540

### 🚀 New Features
* Markdown Conversion: Remove hard dependency on deprecated library and
replace with `IMarkdownToHtmlConverter` abstraction (closes #​21238 and
#​19500) by @​AndyButland in
umbraco/Umbraco-CMS#21242
* UI: Refactor breadcrumb URLs to use Path Constants by @​iOvergaard in
umbraco/Umbraco-CMS#21179
* Tree Navigation: Add visual indicators for items with restricted
access by @​iOvergaard in
umbraco/Umbraco-CMS#21365
* Recycle Bin: Adds `emptyRecycleBin` collection action kind for
Documents and Media by @​leekelleher in
umbraco/Umbraco-CMS#21482
* Tiptap RTE: Adds link (`umbLink`) support to `styleMenu` API by
@​leekelleher in umbraco/Umbraco-CMS#21494
* Rollback: Add toggle for diff display (closes #​18518) by
@​AndyButland in umbraco/Umbraco-CMS#21426
* Dictionary: Add configurable value search functionality by
@​Nis-Knowit in umbraco/Umbraco-CMS#21200

### 🚤 Performance
* Performance: Embeds the API of selected extra conditions by
@​nielslyngsoe in umbraco/Umbraco-CMS#21188
* Performance: Bundle Js Libs by @​nielslyngsoe in
umbraco/Umbraco-CMS#21187
* Performance: Embed Store API in Manifests to lower number of network
request by @​madsrasmussen in
umbraco/Umbraco-CMS#21191
* Performance: Avoid database lookup in `UserIdKeyResolver` for
super-user by @​AndyButland in
umbraco/Umbraco-CMS#21281
* Performance: Only flush ID/Key map in `ContentCacheRefresher` on
content deletion by @​AndyButland in
umbraco/Umbraco-CMS#21283
* Performance: Optimize refresh of hybrid cache for a document by
retrieving draft and published in single query by @​AndyButland in
umbraco/Umbraco-CMS#21407
* Backoffice Performance: Inline entry point modules to reduce JS chunk
count by @​madsrasmussen in
umbraco/Umbraco-CMS#21380
* HybridCache: Optimize content type change cache rebuild to resolve SQL
timeouts by @​AndyButland in
umbraco/Umbraco-CMS#21207
* Backoffice Performance: Use import maps to save requests by
@​nielslyngsoe in umbraco/Umbraco-CMS#21363
* Document URL Cache: Ensure URLs are rebuilt after upgrade and prevent
duplicate initialization (closes #​21337) by @​AndyButland in
umbraco/Umbraco-CMS#21379
* Performance: Fix thread safety and optimize cache updates in
`PublishStatusService` after content changes by @​AndyButland in
umbraco/Umbraco-CMS#21415
* Tiptap RTE: Optimize `umb-input-tiptap` initialization and rendering
by @​leekelleher in umbraco/Umbraco-CMS#21070
* Routing: Add `DocumentUrlAliasService` for optimized URL alias lookups
(closes #​21383) by @​AndyButland in
umbraco/Umbraco-CMS#21396
* Performance: Optimize property retrieval and authorization checks in
collection views (closes #​21367) by @​AndyButland in
umbraco/Umbraco-CMS#21470

 ... (truncated)

## 17.2.0-rc

## What's Changed

### 🙌 Notable Changes
* User group: add description to user group (closes #​14986) by
@​NguyenThuyLan in umbraco/Umbraco-CMS#21057
* Content Types: Root properties by @​nielslyngsoe in
umbraco/Umbraco-CMS#21500

### 📦 Dependencies
* Storybook: Bumps storybook from 9.0.14 to 10.1.10 by @​dependabot[bot]
in umbraco/Umbraco-CMS#21208
* Bump qs from 6.14.0 to 6.14.1 in /src/Umbraco.Web.UI.Client in the
npm_and_yarn group across 1 directory by @​dependabot[bot] in
umbraco/Umbraco-CMS#21270
* Bump the npm_and_yarn group across 2 directories with 1 update by
@​dependabot[bot] in umbraco/Umbraco-CMS#21403
* Dependencies: Bumps login dependencies to latest by @​iOvergaard in
umbraco/Umbraco-CMS#21539
* Tiptap RTE: Upgraded to latest v3.x by @​leekelleher in
umbraco/Umbraco-CMS#21493
* Dependencies: Bumps @​umbraco-ui/uui to 1.17.0-rc.4 by @​iOvergaard in
umbraco/Umbraco-CMS#21538
* build(deps): bumps @​umbraco-ui/uui to 1.17.0-rc.5 by @​iOvergaard in
umbraco/Umbraco-CMS#21569
* Dependencies: Update Microsoft packages to 10.0.1 and pin vulnerable
transitive dependencies (closes #​21122) by @​AndyButland in
umbraco/Umbraco-CMS#21285
* Dependencies: Bump to latest minor/patch versions by @​AndyButland in
umbraco/Umbraco-CMS#21540

### 🚀 New Features
* Markdown Conversion: Remove hard dependency on deprecated library and
replace with `IMarkdownToHtmlConverter` abstraction (closes #​21238 and
#​19500) by @​AndyButland in
umbraco/Umbraco-CMS#21242
* UI: Refactor breadcrumb URLs to use Path Constants by @​iOvergaard in
umbraco/Umbraco-CMS#21179
* Tree Navigation: Add visual indicators for items with restricted
access by @​iOvergaard in
umbraco/Umbraco-CMS#21365
* Recycle Bin: Adds `emptyRecycleBin` collection action kind for
Documents and Media by @​leekelleher in
umbraco/Umbraco-CMS#21482
* Tiptap RTE: Adds link (`umbLink`) support to `styleMenu` API by
@​leekelleher in umbraco/Umbraco-CMS#21494
* Rollback: Add toggle for diff display (closes #​18518) by
@​AndyButland in umbraco/Umbraco-CMS#21426
* Dictionary: Add configurable value search functionality by
@​Nis-Knowit in umbraco/Umbraco-CMS#21200

### 🚤 Performance
* Performance: Embeds the API of selected extra conditions by
@​nielslyngsoe in umbraco/Umbraco-CMS#21188
* Performance: Bundle Js Libs by @​nielslyngsoe in
umbraco/Umbraco-CMS#21187
* Performance: Embed Store API in Manifests to lower number of network
request by @​madsrasmussen in
umbraco/Umbraco-CMS#21191
* Performance: Avoid database lookup in `UserIdKeyResolver` for
super-user by @​AndyButland in
umbraco/Umbraco-CMS#21281
* Performance: Only flush ID/Key map in `ContentCacheRefresher` on
content deletion by @​AndyButland in
umbraco/Umbraco-CMS#21283
* Performance: Optimize refresh of hybrid cache for a document by
retrieving draft and published in single query by @​AndyButland in
umbraco/Umbraco-CMS#21407
* Backoffice Performance: Inline entry point modules to reduce JS chunk
count by @​madsrasmussen in
umbraco/Umbraco-CMS#21380
* HybridCache: Optimize content type change cache rebuild to resolve SQL
timeouts by @​AndyButland in
umbraco/Umbraco-CMS#21207
* Backoffice Performance: Use import maps to save requests by
@​nielslyngsoe in umbraco/Umbraco-CMS#21363
* Document URL Cache: Ensure URLs are rebuilt after upgrade and prevent
duplicate initialization (closes #​21337) by @​AndyButland in
umbraco/Umbraco-CMS#21379
* Performance: Fix thread safety and optimize cache updates in
`PublishStatusService` after content changes by @​AndyButland in
umbraco/Umbraco-CMS#21415
* Tiptap RTE: Optimize `umb-input-tiptap` initialization and rendering
by @​leekelleher in umbraco/Umbraco-CMS#21070
* Routing: Add `DocumentUrlAliasService` for optimized URL alias lookups
(closes #​21383) by @​AndyButland in
umbraco/Umbraco-CMS#21396
* Performance: Optimize property retrieval and authorization checks in
collection views (closes #​21367) by @​AndyButland in
umbraco/Umbraco-CMS#21470

### 🧪 Testing
* E2E: QA Replaced unreliable Thread.Sleep(500) with a counter/gate
pattern that ensures both transactions are initialized before releasing
them to compete for locks by @​andr317c in
umbraco/Umbraco-CMS#21165
* E2E QA: Updated integration test that was missing directory setup by
@​andr317c in umbraco/Umbraco-CMS#21167
* E2E: QA Added acceptance tests for removing a not-found content picker
by @​nhudinh0309 in umbraco/Umbraco-CMS#21177
* E2E: QA Fixed failing tests for the current user profile by
@​nhudinh0309 in umbraco/Umbraco-CMS#21214
* Upgrade MSW from 1.3.5 to 2.12.4 by @​madsrasmussen in
umbraco/Umbraco-CMS#21096
* E2E: QA Added acceptance tests for rendering content with invariant
blocks by @​nhudinh0309 in
umbraco/Umbraco-CMS#21180
* E2E: QA Added acceptance tests for content delivery API by
@​nhudinh0309 in umbraco/Umbraco-CMS#21095
 ... (truncated)

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

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 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants