* fix: renames `./src` to `./dist-cms` in distributed package.json
* build: adds missing package.json to segment package
* build: adds missing package and vite.config for 'settings'
* build: adds missing package.json for 'translation'
* build: hoist all sub-dependencies to main package.json file
* build: sync lock file with workspaces
* build: join the paths (for os agnosticity)
* build(deps): bump tiptap from 2.11.5 to 2.11.7
* fix: prepends the system `/css` folder to stylesheets before attempting to load them
* fix: adds more safety around path assumptions
* chore: eslint fix
* fix: prepend only the system path to picked stylesheets
* removes `server-api-dev` script that acts weird with base urls after upgrade of client-fetch
* build(deps): updates client-fetch and uuid dependencies
* feat: adds new backend-api and http-client packages and generates the api with @hey-api/client-fetch
* feat: maps generic T back to promise to avoid usage of 'any'
* feat: sets up baseUrl and auth for the new client
* feat: gets the api base url from server context instead of the http client
* feat: gets the api base url from server context instead of the http client
* feat: allows undefined token for xhr requests
* feat: changes the response object to be either type T directly (to support @hey-api/client-fetch) or the given type if the response does not contain a 'data' object
* revert interface
* feat: creates an api return type to comply with @hey-api/client-fetch
* feat: maps T back to the data model for non-api types
* feat: simplify api response to return the promise you sent to it with an optional error object
* feat: moves http related modules to the core package
* feat: updates the required type of the client for the api interceptors
* docs: removes invalid property
* feat: adds request parameters to documents
* feat: adds request parameters to imaging
* feat: adds return type to item-server-data-source-base
* feat: adds request parameters to webhooks
* feat: adds request parameters to users
* feat: renames all `requestBody` to `body` to conform with new client-fetch
* feat: uses query to take parameters in
* feat: adds data source response to tree types
* feat: adds request parameters to templating
* feat: adds request parameters to templating
* feat: adds request parameters to telemetry
* feat: adds request parameters to tags
* feat: adds request parameters to examine management
* feat: adds request parameters to relations
* feat: adds request parameters to packages
* feat: catches new api errors that are direct problem details objects
* feat: adds default interceptor to handle Umb-Generated-Resource headers
* feat: uses an error interceptor specifically to catch errors to avoid overhead
* feat: adds request parameters to members
* Revert "feat: uses an error interceptor specifically to catch errors to avoid overhead"
This reverts commit 7ffb7b29bfe4ddbc51736434db78372767731dd1.
* feat: adds request parameters to media
* feat: adds request parameters to log viewer
* feat: adds request parameters to languages
* feat: adds request parameters to health check
* feat: adds request parameters to oembed
* feat: adds request parameters to documents
* feat: adds request parameters to redirect management
* feat: adds request parameters to blueprints
* feat: adds request parameters to dictionary
* feat: adds request parameters to data types
* feat: adds request parameters to temporary file
* feat: instructs delete methods to return an unknown value
* feat: allows default value to be unknown
* feat: adds request parameters to culture
* chore: import path
* feat: adds correct models to mocks
* feat: adds correct models to installer and upgrader
* feat: adds correct models to mocks
* chore: forgot to move ignore line
* chore: ignores generated files in eslint
* chore: removes old generated files
* feat: moves network connection status manager back into the main app to avoid imports from core
* chore: update imports
* feat: generate API for login screen without relying on the backoffice
* feat: uses the generated models on the login screen
* feat: sets 'credentials' to 'include' and adds it back to openapiconfiguration to avoid a breaking change
* adds back in commands moved to a workspace
* chore: vscode workspace settings formatted and useFlatConfig added for better compatibility
* Only prevent the unpublish or delete of a related item when configured to do so if it is related as a child, not as a parent (#18886)
* Only prevent the unpubkish or delete of a related item when configured to do so if it is related as a child, not as a parent.
* Fixed incorect parameter names.
* Fixed failing integration tests.
* Use using variable instead to reduce nesting
* Applied suggestions from code review.
* Used simple using statement throughout RelationService for consistency.
* Applied XML header comments consistently.
---------
Co-authored-by: mole <nikolajlauridsen@protonmail.ch>
* Feature: highlight invariant doc with variant blocks is unsupported (#18806)
* mark variant blocks in invariant docs as invalid
* implement RTE Blocks
* Fix pagination for users restricted by start nodes (#18907)
* Fix pagination for users restricted by start nodes
* Default implementation to avoid breakage
* Review comments
* Fix failing test
* Add media start node tests
* Fix issue preventing blueprint derived values from being scaffolded (#18917)
* Fix issue preventing blueprint derived values from being scaffolded.
* fix manipulating frooen array
* compare with variantId as well
---------
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
* ci: add Azure Static Web Apps workflow file
on-behalf-of: @Azure opensource@microsoft.com
* ci: add Azure Static Web Apps workflow file
on-behalf-of: @Azure opensource@microsoft.com
* ci: add Azure Static Web Apps workflow file
on-behalf-of: @Azure opensource@microsoft.com
* Remove admin permission on user configuration, allowing users with user section access only to manaage users and groups. (#18848)
* Tiptap RTE: Style Menu extension kind (#18918)
* Adds 'styleMenu' Tiptap toolbar extension kind
* Adds icons for `<h4>` and `<p>` tags
* Adds commands to HTML Global Attributes extension
for setting the `class` and `id` attributes.
* Renamed "default-tiptap-toolbar-element.api.ts" file
The "element" part was confusing.
* Toolbar Menu: uses correct `item` value
* Cascading Menu: adds localization for the label
* Adds `label` attribute to UUI components
for accessibility.
* Toolbar Menu: uses correct `appearance` value
* Removed unrequired `api` from Style Select
* Destructs the `item.data` object
* Ensure has children reflects only items with folder children when folders only are queried. (#18790)
* Ensure has children reflects only items with folder children when folders only are queried.
* Added supression for change to integration test public code.
---------
Co-authored-by: Migaroez <geusens@gmail.com>
* Only apply validation on content update to variant cultures where the editor has permission for the culture (#18778)
* Only apply validation on content update to variant cultures where the editor has permission for the culture.
* Remove inadvertent comment updates.
* Fixed failing integration test.
* Adds ancestor ID details on document tree and collection responses (#18909)
* Populate ancestor keys on document tree response items.
* Populate ancestor keys on document collection response items.
* Update OpenApi.json
* Use array of objects rather than Ids for the ancestor collection.
* Update OpenApi.json.
* Move publish with descendants to a background task with polling (#18497)
* Use background queue for database cache rebuild and track rebuilding status.
* Updated OpenApi.json and client-side types.
* Updated client to poll for completion of database rebuild.
* Move IBackgroundTaskQueue to core and prepare publish branch to run as background task.
* Endpoints for retrieval of status and result from branch publish operations.
* Poll and retrieve result for publish with descendants.
* Handled issues from testing.
* Rework to single controller for status and result.
* Updated client side sdk.
* OpenApi post dev merge gen
---------
Co-authored-by: Migaroez <geusens@gmail.com>
* Clear roots before rebuilding navigation dictionary (#18766)
* Clear roots before rebuilding navigation dictionary.
* Added tests to verify fix.
* Correct test implementation.
* Convert integration tests with method overloads into test cases.
* Integration test compatibility supressions.
* Fixes save of empty, invariant block list on variant content. (#18932)
* remove unnecessary code (#18927)
* V15/bugfix/fix route issue from 18859 (#18931)
* unique check
* unique for workspace empty path
* more unique routes
* Bump vite from 6.2.3 to 6.2.4 in /src/Umbraco.Web.UI.Client
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.3 to 6.2.4.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.4/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.4/packages/vite)
---
updated-dependencies:
- dependency-name: vite
dependency-version: 6.2.4
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com>
* removes autogenerated workflows
* make getHasUnpersistedChanges public (#18929)
* Added management API endpoint, service and repository for retrieval of references from the recycle bin (#18882)
* Added management API endpoint, service and repository for retrieval of references from the recycle bin.
* Update src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/ReferencedByDocumentRecycleBinController.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Removed unused code.
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Updated management API endpoint and model for data type references to align with that used for documents, media etc. (#18905)
* Updated management API endpoint and model for data type references to align with that used for documents, media etc.
* Refactoring.
* Update src/Umbraco.Core/Constants-ReferenceTypes.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fixed typos.
* Added id to tracked reference content type response.
* Updated OpenApi.json.
* Added missing updates.
* Renamed model and constants from code review feedback.
* Fix typo
* Fix multiple enumeration
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: mole <nikolajlauridsen@protonmail.ch>
* Skip lock tests
* Look-up redirect in content finder for multi-lingual sites using path and legacy route prefixed with the integer ID of the node with domains defined (#18763)
* Look-up redirect in content finder for multi-lingual sites using path and legacy route prefixed with the integer ID of the node with domains defined.
* Added tests to verify functionality.
* Added reference to previous PR.
* Referenced second PR.
* Assemble URLs for all cultures, not just the default.
* Revert previous update.
* Display an original URL if we have one.
* Bump vite from 6.2.4 to 6.2.5 in /src/Umbraco.Web.UI.Client
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.4 to 6.2.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.5/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.5/packages/vite)
---
updated-dependencies:
- dependency-name: vite
dependency-version: 6.2.5
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add raw value validation to multiple text strings property editor (#18936)
* Add raw value validation to multiple text strings property editor
* Added additional assert on unit test and comment on validation logic.
* Don't remove items to obtain a valid value
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Integration tests for content publishing with ancestor unpublished (#18941)
* Resolved warnings in test class.
* Refactor regions into partial classes.
* Aligned test names.
* Variable name refactoring.
* Added tests for unpublished paths.
* Adjust tests to verify current behaviour.
* Cleaned up project file.
* fix circular icon import (#18952)
* remove segment toggle for elements (#18949)
* Fix modal route registration circular import (#18953)
* fix modal route registration circular import
* Update modal-route-registration.controller.ts
* V15/fix/18595 (#18925)
* fix for #18595
* updates the en.ts
* Avoid unneeded Dictionary operations (#18890)
* Avoid some heap allocations
* Remove unneeded double seek
* Avoid allocating new empty arrays, reuse existing empty array
* Avoid allocating strings for parsing comma separated int values (#18199)
* Data type References UI: Workspace + Delete (#18914)
* Updated management API endpoint and model for data type references to align with that used for documents, media etc.
* Refactoring.
* Update src/Umbraco.Core/Constants-ReferenceTypes.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fixed typos.
* generate server models
* add extension slot
* register data type reference info app
* add reference data mappers
* Added id to tracked reference content type response.
* Updated OpenApi.json.
* Added missing updates.
* generate new models
* update models
* register ref item
* remove debugger
* render types
* register member type property type ref
* register media type property type ref
* Renamed model and constants from code review feedback.
* register reference workspace info app kind
* use kind for document references
* use kind for media references
* use kind for member references
* use deleteWithRelation kind when deleting data types
* fix manifest types
* fix types
* Update types.gen.ts
* update code to fit new server models
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Feature: discard changes for block workspace (#18930)
* make getHasUnpersistedChanges public
* Discard changes impl for Block Workspace
* fix 18367 (#18956)
* Merge commit from fork
* Prevent path traveral vulnerability with upload of temporary files.
* Used BadRequest instead of NotFound for invalid file name response.
* V15 QA Fixing the failing media acceptance tests (#18881)
* Fixed the function name due to test helper changes
* Updated assertion steps due to UI changes
* Added more waits
* Bumped version
* Increase timeout
* Reverted
---------
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* V15 QA added clipboard test for not being able to copy to root when block is not allowed at root (#18937)
* Added clipboard test
* Bumped version
* Updated to use the name
* Run all tests on the pipeline
* Reverted command
* build: adjusts circular ref number to 4
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Niels Lyngsø <nsl@umbraco.dk>
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: Lee Kelleher <leekelleher@users.noreply.github.com>
Co-authored-by: Migaroez <geusens@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: Jacob Welander Jensen <64834767+Welander1994@users.noreply.github.com>
Co-authored-by: Henrik <hg@impact.dk>
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
Co-authored-by: Nhu Dinh <150406148+nhudinh0309@users.noreply.github.com>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* build(deps-dev): bump @hey-api/openapi-ts from 0.61.3 to 0.66.1
* docs: adds information on how to configure new fetch-client
* feat: adds preliminary umb-prefixed error types
* fix: uses correct import path
* docs: jsdocs
* feat: optimises error reporting
* feat: maps functions into separate controllers
* feat: adds color to peek notification
* feat: moves the internal api interceptors controller and adds more interceptors
* feat: adds host to params
* feat: marks certain functions as deprecated
* feat: maps api errors to UmbErrors
* chore: removes deprecation console logs
* chore: allows any
* feat: maps xhr errors to umb errors
* feat: adds host to tryExecute
* feat: adjusts deprecation notifices and checks
* chore: adjusts deprecation notices
* chore: add .warn() to deprecation
* feat: updates login app repository
* feat: changes all `tryExecuteAndNotify` calls to `tryExecute`
* feat: copies helper functions to resources package and deprecates in notification package
* chore: removes unused imports
* feat: adds exports
* chore: removes controller that is no longer useful
* feat: marks _peekError as protected
* feat: adds support for error notifications (and to ignore them) and to cancel an ongoing request
* feat: eliminates duplicated logic in xhr controller
* feat: touches only the cloned response to allow interceptors downstream to unwrap the body
* feat: stores the host for async context
* feat: disables automatic notifications for validation data source
* feat: disables notifications where they are otherwise handled or ignored
* feat: removes deprecated code
* feat: eliminates a controller that only had a static method
* docs: adds jsdocs
* docs: adds jsdocs
* docs: adds jsdocs
* feat: returns umb-notifications response without modifying it
* feat: eliminates dependency on generated `ProblemDetails` type
* feat: eliminates dependence on generated `ApiError` type
* feat: eliminates dependence on generated `CancelError` type
* fix: removes dependency on CancelablePromise
* build(deps-dev): update storybook from 8.4.7 to 8.5.6
* build(deps): update tiptap from 2.11.2 to 2.11.5
* build(deps-dev): update eslint stuff to latest
* build(deps): update element-internals-polyfill from 1.3.12 to 1.3.13
* build(deps): update marked from 15.0.6 to 15.0.7
* build(deps-dev): update vite from 5.4.14 to 6.1.0
* build(deps-dev): update globals to 15.15.0 (eslint dependency)
* build(deps): update icon libraries to latest
* build(deps-dev): update prettier from 3.4.2 to 3.5.1
* chore: generate consts
* build(deps-dev): update test-related libraries
* feat: copy over code from the tiny base64-js library because it is not exported as esm and has not been updated in 4 years
* build(deps-dev): remove dependency from base64-js
* build(deps-dev): upgrade rollup dependencies
* test: disable tests for tinyce
* build(deps-dev): update @babel/core to 7.26.9
* build(deps): update storybook to latest
* build(deps-dev): update types
* build(deps-dev): update typedoc from 0.27.6 to 0.27.7
* build(deps-dev): update @rollup/plugin-commonjs to latest
* build(deps): import tiny as default and re-export as module and default to make everyone happy (and avoid commonjs pitfalls)
* build: remove dependency on commonjs to build externals
* build(deps-dev): uninstall @rollup/plugin-commonjs as it is no longer needed
* test: reenable tinymce tests
* fix: sets a default label
this mistake was highlighted by the test runner
* test: reenable tinymce tests
* build: ignores autogenerated test file
* build: adds github error logging to icon generator
* build: log as error
* build: adds tests for generate:* scripts
* build: optimises icons with svgo to remove useless things like comments
this also ensures that icons are unchanged when we upgrade icon library packages as they would normally include things like versions as comments in the files
* wip clipboard context + tests
* clean up property action module + register copy action
* split manifests
* add clipboard module
* import type
* export type
* mark all methods async
* scaffold copy + paste property actions
* scaffold workspace, collection, repo + data sources
* remove references to language
* register detail manifests
* call repo when creating
* load clipboard collection data
* remove debugger
* register clipboard item picker modal
* return value from picker
* accept native error
* clean up data source
* add tests for error states
* make clipboard local storage manager
* add clip entry entity type
* create unique in scaffold
* add clipboard entry item data
* align naming
* move around
* name alignment
* fix imports
* fix missing entityType
* clean up
* use picker input context
* remove unused context
* Update clipboard.context.ts
* map to item model
* poc paste property action
* register copy/paste as kinds
* lint fix
* add tests
* rename test
* add repository tests
* register delete clipboard action + enable action dropdown outside of context menu
* remove notifcation
* export entity type
* temp use repo instead of context
* delete unused copy property action
* make data source non breaking
* Update vite.config.ts
* add icons for clipboard copy, paste + entry
* remove unused
* return if there is no property value
* add kind interfaces
* pass entry type for copy and paste
* register clipboard for block list
* implement filter on entry type
* delete unused context
* remove references
* rename data to value and don't force an array
* make icons and single value
* allow to add create and update dates for clipboard entries
* use clipboard icon
* add create and update dates
* export constants
* don't set as an array
* reload picker content
* add copy to clipboard button to block list entry
* make picker element
* allow to pick multiple
* remove generic block list clipboard actions
* Revert "remove generic block list clipboard actions"
This reverts commit 6ea65a02ce6315a781b80d0ccf0da288df602a7d.
* add get methods
* wip construct block clipboard entry value
* add method to get exposes + add jsdocs
* add expose
* remove todo + add jsdocs
* move clipboard out of core package
* add package files
* load package again
* render entry icon
* render correct icon
* remove clipboard from core vite.config
* Update package-lock.json
* wip copy/paste resolvers
* allow multiple accepted entry types
* move logic to resolvers
* transforming clipboard block value to fit block list
* wip copy/paste resolvers
* clean up
* remove unused
* fix missing exports
* fix tests
* return clipboard entry unique from modal
* Update block-list-entries.context.ts
* clipboard feature: clipboard property value cloner (#17824)
* restructure of property package
* content data merge controller tests
* deprecate meta from propertyValueResolver
* temp work
* temp
* poc
* rename to cloner
* stached block value cloner work
* block list implementation
* correct property value implementation
* RTE Block Property Value Cloner
* Block Grid Value Cloner
* update with comments
* try out cloner
* wip translators
* Revert "delete unused context"
This reverts commit ec31ae55aaa9e958b64c44019398e9af7cd61df4.
* move translator + cloner logic to context
* clean up
* implement read from clipboard in block list property editor
* remove debugger
* values array
* handle paste
* Update types.ts
* move files
* Update clipboard-local-storage.manager.ts
* set both create and update date when creating a clipboard entry
* align naming
* handle paste
* clean up + wip block grid translators
* updates types
* add grid block copy translator
* only allow paste translator to handle a single value
* align copy and paste translators
* remove debugger
* move to folders
* add block const
* rename
* add tests
* Update index.ts
* use correct type
* add tests for UmbBlockListToBlockClipboardCopyTranslator
* fix tests
* add translator tests
* add tests
* organize
* organize
* clean up translator tests
* align naming
* remove unused button
* only render copy property action if property has a value
* use constants
* copy single grid block
* get block grid property value from clipboard entry
* add clear method to extension registry + add js docs
* Update index.ts
* add tests for copy value resolver
* add icon for clipboard
* use clipboard icon in modal
* add tests
* remove unused setting
* fix log
* only create array once
* filter for supported paste translators
* use write method instead of duplicating the code
* add condition config type
* use config type
* Update manifests.ts
* add support for multi picker
* move multiple look up logic to context
* add js docs
* add js docs
* remove unused
* remove unused
* remove unused
* implement paste translator filtering for block catalogue modal
* temp color translator
* adding a UmbPropertyValueDataPotentiallyWithEditorAlias
* simplify observer
* append user unique to local storage key
* remove temp color picker clipboard implementations
* more explicit extension type name
* more renaming
* type specifications
* fix test and missing type
* more types for test
* renaming of paste translators
* rename folder
* rename value resolvers
* correct variable name
* wip tests for clipboard context
* clean up tests correctly
* add more tests for clipboard context
* Update clipboard.context.test.ts
* use after each for clean up
* fix test that times out
* correct name
* optimize
* remove webkit
* newest first when picking
* use fingerprint local storage key to obfuscate user id
* rename method
* use const
* set content max length
* return object including the selection uniques
* show confirm dialog before pasting value
* only show confirm dialog if there is a value
* Feature: clipboard block insert (#17935)
* insert methods
* fix originData
* move logic to base class
* progress on Grid and RTE
* correct for Block Grid paste implementation
* update async across
* remove expose from block clipboard entry model
* remove expose from grid block clipboard entry
* remove todo
* wip move value expand responsibility
* wip split clipboard context
* experiment with an extendable property context
* create propertyContexts + proxy events
* rename methods
* move proxy to context + update grid copy logic
* split tests
* remove unused
* add property context extension type
* fix tests
* fix tests
* reorganize
* Update clipboard.property-context.ts
* use context
* register property context clipboard kind
* register for block grid
* remove redundant code
* rename to replace
* Revert "rename to replace"
This reverts commit eb0535edcfaa9f68d0fc4c431c93739a43c7b29c.
* rename prop
* rename label
* improve block clean-up abilities
* Update rte-base.element.ts
* make local get of clipboard context
* add asyncFilter option to the type
* add is compatible method to the interface
* support asyncFilter in picker
* add compatability check for block list
* more explicit name
* wip implementation of filter
* add compatability checks
* add temp types
* add clipboard filtering for grid and list
* lint corrections
---------
Co-authored-by: Niels Lyngsø <nsl@umbraco.dk>
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>