Dan Brown [Sun, 15 Jun 2025 14:22:27 +0000 (15:22 +0100)]
Lexical: Added a media toolbar, improved toolbars and media selection
- Updated toolbars to auto-refresh ui if it attempts to update targeting
a DOM element which no longer exists.
- Removed MediaNode dom specific click handling which was causing
selection issues, and did not seem to be needed now.
Dan Brown [Sun, 15 Jun 2025 12:55:42 +0000 (13:55 +0100)]
Lexical: Fixed media resize handling
- Updating height/width setting to clear any inline CSS width/height
rules which would override and prevent resizes showing. This was
common when switching media from old editor.
Added test to cover.
- Updated resizer to track node so that it is retained & displayed
across node DOM changes, which was previously causing the
resizer/focus to disappear.
Formatting was not persisted on empty paragraphs, and was instead based
upon last format encountered in selection.
This was due to overly-hasty removal of other formatting code, which
this got caught it.
Restored required parts from prior codebase.
Also updated inline format button active indicator to reflect formats
using the above, so correct buttons are shown as active even when just
in an empty paragraph.
Dan Brown [Fri, 13 Jun 2025 15:38:53 +0000 (16:38 +0100)]
Lexical: Made table resize handles more efficent & less buggy
Fine mouse movement and handles will now only be active when actually
within a table, otherwise less frequent mouseovers are used to track if
in/out a table.
Hides handles when out of a table, preventing a range of issues with
stray handles floating about.
Dan Brown [Wed, 28 May 2025 21:47:39 +0000 (22:47 +0100)]
Lexical: Further improvements to table selection and captions
- Fixed errors with selection and range handling due to captions
existing.
- Updated TableNode change handling to update existing DOM instead of
re-creating, which avoids breaking an attached selection helper.
- To support, Added function to handle node change detection and apply
relevant dom updates for common properties.
Dan Brown [Wed, 28 May 2025 21:00:24 +0000 (22:00 +0100)]
Comments: Fixed tab focus change & button placement on form usage
Fixes issue of tabs jumping back to active comments when stopping a
reply to an archived comment.
Fixes button placement looking odd due to wrong location and differing
styles depending on interaction path.
Dan Brown [Mon, 26 May 2025 17:47:51 +0000 (18:47 +0100)]
Lexical: Changed table esacpe handling
Avoids misuse of selectPrevious/Next as per prior commit which was then
causing problems elsewhere, and is probably best to avoid creation in
those select methods anyway.
Dan Brown [Mon, 26 May 2025 13:48:13 +0000 (14:48 +0100)]
Lexical: Made a range of selection improvements
Updated up/down handling to create where a selection candidate does not
exist, to apply to a wider scenario via the selectPrevious/Next methods.
Updated DOM selection change handling to identify single selections
within decorated nodes to select them in full, instead of losing
selection due to partial selection of their contents.
Updated table selection handling so that our colgroups are ignored for
internal selection focus handling.
Dan Brown [Sun, 25 May 2025 15:28:42 +0000 (16:28 +0100)]
Lexical: Updated dropdown handling to match tinymce behaviour
Now toolbars stay open on mouse-out, and close on other toolbar open,
outside click or an accepted action.
To support:
- Added new system to track and manage open dropdowns.
- Added way for buttons to optionally emit events upon actions.
- Added way to listen for events.
- Used the above to control when dropdowns should hide on action, since
some dont (like overflow containers and split dropdown buttons).
Dan Brown [Sat, 3 May 2025 19:30:50 +0000 (20:30 +0100)]
Images: Changed how new image permissions are set
Removed default public visibility for images at the driver level,
leaving only doing this as a specific action in the logic.
Added try/catch around permission setting so that
permission-incompatible environments won't fatally fail, but instead
log a warning.
Tested via a google cloud storage bucket FUSE mount, mounted under another
user but with open 777 permissions.
Dan Brown [Thu, 1 May 2025 16:22:12 +0000 (17:22 +0100)]
Comments: Further range of content reference ux improvements
- Added reference indicator to comment create form.
- Added remove action.
- Extracted reference text to translations.
- Changed reference hash to be text-based instead of HTML based.
- Added reference display for newly added comments.
- Handled reference marker delete on comment delete.
Dan Brown [Sun, 27 Apr 2025 15:51:24 +0000 (16:51 +0100)]
Comments: Split out page comment reference logic to own component
Started support for editor view.
Moved comment elements to be added relative to content area instad of
specific target reference element.
Added relocating on screen size change.
Dan Brown [Fri, 18 Apr 2025 19:42:56 +0000 (20:42 +0100)]
Comments & Pointer: Converted components to typescript
Made changes for dom and translation services for easier usage
considering types.
trans_choice updated to allow default count replacement data as per
Laravel's default behaviour.
Dan Brown [Thu, 27 Mar 2025 17:49:48 +0000 (17:49 +0000)]
Lexical: Made list selections & intendting more reliable
- Added handling to not include parent of top-most list range selection
so that it's not also changed while not visually part of the
selection range.
- Fixed issue where list items could be left over after unnesting, due
to empty checks/removals occuring before all child handling.
- Added node sorting, applied to list items during nest operations so
that selection range remains reliable.
Dan Brown [Thu, 27 Mar 2025 14:13:18 +0000 (14:13 +0000)]
Lexical: Fixed issues with content not saving
Found that saving via Ctrl+Enter did not save as logic to load editor
output into form was bypassed, which this fixes by ensuring submit
events are raised during for this shortcut.
Submit handling also gets a timeout added since, at least in FF,
requestSubmit did not re-submit a form while in a submit event.
Dan Brown [Mon, 24 Feb 2025 16:58:59 +0000 (16:58 +0000)]
Sorting: Fixes during testing of sort rules
- Fixed name numeric sorting not working as expected due to bad
comparison.
- Added name numeric desc operation option.
- Added test to ensure each operating has a comparison function.