API
- Renamed
getInlineStyle()
togetStyle()
to better reflect browser APIs. - Fixed invalid links in Javadoc.
- Updated
NodeFlag.TOOLTIP
javadoc. - Added
TagNames.TOOLTIP
constant.
General
- Added
tooltip
event for when an element's tooltip element is changed. - Added default styling for disabled
button
elements. - Can now load tooltips from XML by setting
role="tooltip"
on an element. - Improved tooltip handling.
- Changed
tooltip
element default styling to have white text and slightly thicker borders. - Added info that was missing from
/delphi debug dump-page
command output. - Fixed tooltip flicker.
- Fixed an issue where either an element's
width
orflex-basis
would become negative - Fixed how Delphi detects what element you're hovering over.
- Fixed some render elements not being cleaned up and removed when their DOM element was removed.
- Removed unused
scroll
event (Impossible to support given how Minecraft's client and server communication works)
Devtools
- Added "Box" tab to devtools, it lets you view the box model of a selected element, showing you the margin, outline, padding, size, inner size and position of an element.
- Added ability to scroll through a page's XML in the element tree tab, instead of just being limited to the first 23 lines.
- Center tab names in devtools.
- Devtools, style tab can now disable/enable individual styles.
- Added ability to force
:hover
and:active
states for selected elements in Styles tab. - Added ability to modify an element's inline style in the Styles tab.
- Added highlighting when hovering over elements in the Elements tab. (Highlights appear on the page the devtools is for)
- Fixed issue loading the styles tab when variables were used in the CSS.
- Fixed styles tab not resetting when changing to other tab or page.
CSS Engine
- Fixed some errors with parsing nested selectors and properties.
- Fixed
margin-inline-end
being used as the value formargin-inline-start
. - Fixed incorrect class selector testing.
- Fixed
inline-flex
not using FlexBox layout lol. - Fixed broken styles after modifying inline style of an element before said element was appended to the document tree.
- Add
inline-flex
as a keyword fordisplay
- Add a basic "Styles" tab to Devtools.
- Fix an error with cancellable events.
- Correctly update element outline and border when changing style.
- Updated Style API.
- Fix visual twitch with italic or bold text.
- Fix min/max size CSS properties not doing anything.
- Missing semicolons in CSS will be treated as warnings instead of errors.
- Improve element tooltip handling
- Add commands for managing an open page's viewers
- Use
delphi.commands.devtools
as permission for devtools command - Add default styling for
<sup>
and<sub>
elements.
Changes
- Add FlexBox support
- Move layout engine to its own module
- Refactor layout engine
- Added
vertical-align
CSS property. - Added
flex-grow
CSS property - Added
flex-shrink
CSS property. - Added
gap
CSS property. - Added
row-gap
andcolumn-gap
CSS properties. - Added
align-self
CSS property - When performing math operations with
px
units, convert them to world units before calculation. - Fix wrong input type used when checking if input should be validated as number.
- Added bStats metrics support
- Fixed a tooltip graphical issue
- Properly update depth and things when calling
setTitleNode()
Additions
- Replace Bukkit's conversations for input elements with new Dialogs
- Added
getSource()
method to stylesheets - Added
/delphi devtools
and/delphi devtools <menu name>
for opening devtools easily
Changes
- Add support for
prompt
attribute on<input/>
elements - Update translations
- Add translations support to devtools
- Made
input
event cancellable - Update devtools
Fixes
- Fix wrong method call that resulted in NPE in
ViewBuilderImpl
Main Changes
- Added JavaScript support with GraalVM's Polyglot (GraalVM itself is not required)
- Added
<canvas>
which allows developers to draw images - Switched to new XML parser for more lenient, HTML-like parsing, even the most malformed XML should now be parsed
- Added support for custom DOM events
- Integrated Scheduler API into JS
- Added color functions to JS
- Optimize canvas elements to use the fewest number of entities possible
Bug Fixes
- Fix the
Color.hsva
function being completely broken - Don't print attribute values of attributes no-value attributes and properly escape attribute values
- Fix the area between pixels of Canvas elements flickering
- Fix plugin messages not being correctly translated
- Fix issue with event listeners
- Fix weird twitch with text nodes when their content changed