Updates the content pointer behaviour so it's inserted before/after the
target, instead of just before, depending on selection direction, so it
can stay out of the selection range.
Positioning is absolute relative to a parent content so visually should
be the same result as before.
For #6214
This specifically alters the checkbox label implementation to use the
existing checkbox label instead of always adding an extra label to the
custom checkbox element itself, unless they diverge (like for permission
checkboxes).
It now retains existing input where set.
This also updates the modal click handling with an extra click source
check to handle cases where a mousedown event is not emitted, like on
select list dismissals.
Required updating the selection management to ensure they are selected
upon mousedown, for when a drag operation starts.
Also added draggable management, which we have to avoid having there
when open unless a drag is started, otherwise contents are not editable
in chromium browsers.
Fixes behaviour when using cut/copy/drag for items like images or code
blocks.
Also updates history handling to not ignore additions where original
content remains unchanged.
Aligned the linebreak exportdom behaviour to align with how the
reconciler displays line breaks in the editor, by adding an extra line
break to each series of line breaks, so they're now visually the same
across editor and export.
Block formatting on range selection could break when made from bottom to
top, due to using the first selected for insertion position instead of
the first in the doc structure.
Updated code editor display so the editor area actually gains focus
again.
Updated modal handling to delegate focus handling to the editor if focus
was on the edit area before, to prevent cursor jumps to the start.
For #6181
Just in users' my account area for now.
To add to admin-level actions in the future once we can better trace
session life.
Updated/added tests to cover.
Also changed the UI based forms to submit as changelog instead of
summary to align with more sensible name used on the API.
Added testing to cover.
For #6162
Specifically check the mime type of Base64 drawing data to ensure
that it reads as image data rather than anything else which could be
potentially dangerous.
Thanks to Emanuele Cervelli (https://github.com/M4nu02) for reporting.
Also added user advice on two-column layouts about how they stack on
mobile.
Changed how fixed dropdowns work, so they instead remain in place to
their events and dom handling does not need special handling.
Updated keyboard navigation so ignore elements which are hidden via CSS.
So that their metadata can be read without having to create instances
and fullfill dependancy injection just to list.
Also added title to interface prefs page.
Role permission checkboxes (shelves, books, chapters, pages, revisions,
images, attachments) used short labels like 'Own' and 'All' for their
aria-labels. Screen readers would announce these without any context
about what resource or action the permission applies to.
Added 'role_permission_aria' translation key with the pattern
':action :resource: :value' and updated all permission row templates
to use trans() with parameters. This gives translators full control
over word order and separators while providing screen readers with
descriptive labels like 'Create books: All'.
The custom checkbox components (custom-checkbox.blade.php and
toggle-switch.blade.php) use a <span role="checkbox"> as the
visual/interactive element while hiding the native <input type="checkbox">
with display:none. The span had no accessible name, so screen readers
would announce "checkbox" without any label context.
Added aria-label to the role="checkbox" span in both templates.
Also added optional parameter to custom-checkbox that
falls back to when not provided, allowing callers to supply
a more descriptive accessible name.
- Removed unused import
- Added some trailing newlines to code files
- Prevented <hr>s confusing logic in MD editor
- Aligned logic to select end of header across editors