* setup files
* allow Unproviding as a valid word
* setup context
* declare new module
* clean up on destroy
* implement keydown listener
* rename to all
* Revert "rename to all"
This reverts commit 5384408d5f70111b63a5e07b9b20d6536c530c00.
* revert shortcuts revert
* move view initialization to submittable workspace base
* comment on destroy thingy
* submit workspace shortcut
* rename to action
* observe parent activation to make sure children follows along.
* fix comment to make AI happy
* implement modal view and titles
* fix getting title from token
* rename context alias
* use controller not context here
* provide modal view at modal element
* implement view context at app level
* Refactor view inheritance logic
* reverse children to be activated loop
* note on global shortcuts
* additional note
* added hovering and focus border to RTE
* fix main to OG
* fix to main again
* I'm going to cry
* added hovering and focus border to RTE
* fix indentation
* Refactored to set `--umb-tiptap-edge-border-color` variable
so that the toolbar and statusbar can pick up the state changes.
* Applies `transition` to the toolbar/statusbar components
---------
Co-authored-by: Oskar kruger <obk@umbraco.dk>
Co-authored-by: leekelleher <leekelleher@gmail.com>
* added hovering and focus border to RTE
* fix main to OG
* fix to main again
* I'm going to cry
* added dynamic label to expand/collapse button on parent/child treeitems
---------
Co-authored-by: Oskar kruger <obk@umbraco.dk>
* Remove redundant call to #loadTreeRoot in tree context
* Update tree root requests to use take: 0
Changed all tree repository requestTreeRoot methods to call getRootItems with { take: 0 } instead of { take: 1 }. This ensures that no items are fetched when only the total count is needed to determine if children exist, improving efficiency.
* set property type unique on context
* set the value
* observe property type unique from content picker property editor
* remove unused
* observe data type unique
* wip picker memories
* append memory option to the picker data model
* split into methods
* initialize memory context
* rename arg
* make memory module
* export constants
* allow nested memories
* pass memory from input document to picker context
* Update property-editor-ui-content-picker.element.ts
* fix import
* prefix with interaction
* clean up
* fix import
* rename module
* Update vite.config.ts
* update module name
* observe after search is initialized
* use memory manager in all places
* make picker modal base element
* update types
* add memory for document picker property editor
* store tree item picker expansion state in interaction memory
* Update picker-modal-base.element.ts
* remove the memory if we have no expansion state
* delete memory if it doesn't include anything
* clear picker input memories if nothing comes from the modal
* Refactor interaction memory handling in picker input
Moved the passing of interaction memories from the document picker input context to the core picker input context. Renamed the method for setting memories from the modal for clarity and consistency.
* only dispatch an event if the value changes
* remove unused
* observe to support close on escape
* add comments
* fix type error
* fix typings
* Replaces data type-based memory keys with config hash-based keys
* dont store picker search in interaction memory
* Rename interaction memory key in picker modal base
* Remove error throw for missing interaction memory
* Refactor interaction memory handling in content picker
Replaces the single 'memory' property with an 'interactionMemories' array and updates event handling to support multiple interaction memories. Adjusts property types, event listeners, and child component bindings to accommodate this change.
* Refactor content picker to use interaction memories
Replaces the previous memory handling with a new approach using interaction memories, including unique hash generation based on config. Updates event handling and property names to align with the new interaction memory model, improving state management and consistency.
* remove debugger
* rename const
* wip media picker memories
* remove args
* simplify memory model
* update internal value before dispatching event
* remove unused
* Update property-type-based-property.element.ts
* rename method
* simplify types
* implement location memory for media picker
* temp type cast
* set location memory when using the breadcrumb
* remove code duplication
* bubble memories from input media to input content
* Update src/Umbraco.Web.UI.Client/src/packages/property-editors/content-picker/property-editor-ui-content-picker.element.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix import
* remove unused method
* Refactor content picker interaction memory management
Introduced UmbPropertyEditorUiInteractionMemoryManager to encapsulate interaction memory logic for property editors. Updated the content picker property editor to use this new manager, removing duplicated memory management code and improving maintainability.
* Refactor interaction memory management in pickers
Replaces custom interaction memory logic in document and media picker property editors with the shared UmbPropertyEditorUiInteractionMemoryManager. Updates unique memory key prefixes for consistency and simplifies related event handling. This improves maintainability and standardizes memory management across property editors.
* export context token
* add js docs
* remove timestamp
* add tests for interaction memory manager
* Added tests for the property editor ui interaction memory manager
* Rename memories to memoriesForPropertyEditor
Renamed the 'memories' property to 'memoriesForPropertyEditor' in the interaction memory manager and updated all references in related property editor components and tests for clarity and consistency.
* Separated out `import type`s + ordering
* remove interaction memory implementation in modal context
* remove interactionMemories from modal interface
* revert to using the umbOpenModal helper
* align property and event name
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: leekelleher <leekelleher@gmail.com>
* Preserve additional URL path in split view navigation
Enhances the split view manager to retain any additional pathname segments when updating the browser history, ensuring that navigation state beyond the variant part is preserved.
* Update src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-split-view-manager.controller.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* format
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat: gets hints and assigns to variants to enable the view to show a badge if there is a hint
* feat: find the first hint on the non-active variant
* feat: protect against non-variants
* feat: ignore invariant variants
* feat: adds a render method for hints
* chore: removes comment
* only add a new hint if the weight is higher
* Remove tags with backspace
* Unused varible
* Manage focusable tag and tabindex updates
* `import`s tidy-up
* Adds `tabindex` and focus outline for each tag
* Removed the tag wrapper container
No longer required.
* Adds support for "Delete" key
* Disables `autocomplete` for new tag input
This conflicts with the suggestions prompt.
* Reverted removal of the tag wrapper container
Required as a "skip tags" tabbing feature
* Uses `UmbChangeEvent`
---------
Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: Niels Lyngsø <nsl@umbraco.dk>
Co-authored-by: leekelleher <leekelleher@gmail.com>
* Initial implementation of non existing property editor
* Adjust `MissingPropertyEditor` to not require registering in PropertyEditorCollection
* Add `MissingPropertyEditor.name` back
* Remove unused dependencies from DataTypeService
* Removed reference to non existing property
* Add parameterless constructor back to MissingPropertyEditor
* Add validation error on document open to property with missing editor
* Update labels
* Removed public editor alias const
* Update src/Umbraco.Web.UI.Client/src/packages/property-editors/missing/manifests.ts
* Add test that checks whether the new MissingPropertyEditor is returned when an editor is not found
* Also check if the editor UI alias is correct in the test
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Share property editor instances between properties
* Only store missing property editors in memory in `ContentMapDefinition.MapValueViewModels()`
* Add value converter for the missing property editor to always return a string (same as the Label did previously)
* Small improvements to code block
* Adjust property validation to accept missing property editors
* Return the current value when trying to update a property with a missing editor
Same logic as for when the property is readonly.
* Fix failing unit tests
* Small fix
* Add unit test
* Remove client validation
* UI adjustments
* Adjustments from code review
* Adjust test
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Tiptap RTE: prevent `undefined` value
If the `value` becomes `undefined`, then the block data can't be tracked (for undo/redo).
The scenario comes when a user "selects all" contents, cuts it, and pasted it back in.
Fixes#20076
* Tiptap RTE: fixes selection white text bug
* Tiptap RTE: amends heading styles (for first-child)
* Reload section root on repeated header section click
Adds logic to reload the root of a section if its header is clicked while already active. This improves navigation consistency by resetting the section view when the user clicks the current section again.
* Update backoffice-header-sections.element.ts
* feat: exports all current-user config-related items
* fix: observes the current-user config for the 'keepUserLoggedIn' value and simply try to refresh the token when the worker makes an attempt to log out the user
* fix: moves current user config repository and related dependencies to the 'current-user' package
previously, it was not exported, so is not a breaking change
* chore: moves current-user-allow-mfa condition to the 'current-user' package to avoid circular dependencies (and because it naturally belongs there)
* fix: checks for `keepUserLoggedIn` directly
* Revert "chore: moves current-user-allow-mfa condition to the 'current-user' package to avoid circular dependencies (and because it naturally belongs there)"
This reverts commit 17bebfba41f6996205f0649d70c0d210808f6081.
* Revert "fix: moves current user config repository and related dependencies to the 'current-user' package"
This reverts commit 0c114628985643a2ac1c7dc135e75d64db972bc6.
* Revert "feat: exports all current-user config-related items"
This reverts commit a6586aff1dcc293ae5485bcf436297341fc126bf.
* fix: avoids depending on 'resources'
* redirect to the last visited path in a section
* Update src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-sections.element.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update backoffice-header-sections.element.ts
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Initial implementation of non existing property editor
* Adjust `MissingPropertyEditor` to not require registering in PropertyEditorCollection
* Add `MissingPropertyEditor.name` back
* Remove unused dependencies from DataTypeService
* Removed reference to non existing property
* Add parameterless constructor back to MissingPropertyEditor
* Add validation error on document open to property with missing editor
* Update labels
* Removed public editor alias const
* Update src/Umbraco.Web.UI.Client/src/packages/property-editors/missing/manifests.ts
* Add test that checks whether the new MissingPropertyEditor is returned when an editor is not found
* Also check if the editor UI alias is correct in the test
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Share property editor instances between properties
* Only store missing property editors in memory in `ContentMapDefinition.MapValueViewModels()`
* Add value converter for the missing property editor to always return a string (same as the Label did previously)
* Small improvements to code block
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Fixes#20029.
If a dropdown property-editor is not marked as mandatory
and is in single-mode, then an empty option is added to
the top of the dropdown, so that the value can be unset.
This doesn't apply to multiple-mode, as values can be deselected.
* fix style and localization
* Update src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor.element.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix class name as well
* minor fixes to sorting of tabs
* clean up
* add data-marks
* Updated package version to include test fixes for tab name
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
* fix style and localization
* Update src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor.element.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix class name as well
* add data-marks
* Updated package version to include test fixes for tab name
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
* Updates RTE mock data
* UFM: Adds fallback for "monospace" font-family
* Removes the Font Family/Sizes Menu extension
This feature is not ready yet.
* Tighten up Tiptap config buttons style
* Fixes bug with Collections context-token
Unrelated to Tiptap, but causes data-types to throw an error.
Bug introduced in PR #20033
* Deprecations for v17
* Fix issue with newly created template under an existing one.
* feat: allows to set masterTemplate as preset
* fix: create new sub-templates with a preset already set for the master template (if applicable)
* fix: always resets master template, because you could be coming from an existing editor
* fix: always set the master template even if it is null
* fix: adds updateCurrent to also update the underlying _data model
also refactor function a bit
---------
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>