Skip to content

v0.23.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@rock3r rock3r released this 27 Aug 15:01
· 81 commits to main since this release
c8ec545

Notable changes

  • Scrollbars have been completely re-created from the ground up
    • Windows/Linux and macOS styles
    • macOS scrollbars can be AlwaysVisible or only visible WhenScrolling
    • In IJP 242, on macOS, Jewel can automatically pick the right style (not available in 233/241 due to missing IJP APIs)
  • ScrollingContainer API makes it easier to implement a scrolling container with the looks and behaviour that match Swing
    • Layout adapts automatically to AlwaysVisible vs WhenScrolling
    • You can adapt by applying an end padding to "important" content (e.g., text) provided by scrollbarContentSafePadding()
    • You should not apply it to the scrollable container or the items' roots, because "unimportant" stuff (e.g., selection bg, dividers, etc) should extend all the way
  • TextArea has a new BTF2-based overload, which can show vertical scrollbars
    • String- and TextFieldValue-based text components have been deprecated and will be removed before Jewel 1.0
    • You should migrate to the new TextFieldState-backed overloads as soon as possible!
    • Why moving to the new API? Find out here
  • There is a new preliminary API to provide data to the IJP Actions system: Modifier.provideData()
    • It is key-value based, modeled after the UiDataProvider API in the IJP
    • It's not fully tested nor fleshed out yet, so use at your own risk
    • Not available in IJP 233/241 (should be a no-op, may cause issues — please report them)

Breaking changes

  • The IntUiScrollbarStyling's API has been significantly modified, affecting how scrollbar styles are defined.
    • Migration: Adapt your scrollbar styling code to use the new API, which includes changes to function names, parameters, and the introduction of new functions for different operating systems and themes.
  • The TabStyle constructor now requires an additional parameter: scrollbarStyle.
    • Migration: When creating a TabStyle, provide a value for the new scrollbarStyle parameter.

Deprecated

  • The TextArea and TextField overloads that accept value and onValueChange parameters have been deprecated in favor of the respective overloads that use TextFieldState.
    • If you need to observe text changes with the new overloads, use snapshotFlow { state.text }.

What's Changed

  • New iteration on scrollbars by @hamen in #515
  • Remove obsolete expui icons folder by @hamen in #519
  • Switch reflection-based system in standalone demo to simpler mechanism by @hamen in #520
  • Clean up work on scrollbars by @hamen in #521
  • Make Studio releases task triggered on demand by @rock3r in #523
  • Fix glitch in selected menu item background by @hamen in #524
  • Update IJP and IJP Gradle plugin by @rock3r in #526
  • Expose PopupProperties in PopupMenu by @francisconoriega in #531
  • Add scrollbar style and behavior reactive update for Mac OS by @hamen in #535
  • Fix Markdown loading in standalone sample by @rock3r in #539
  • Fix button border alignement by @hamen in #543
  • Exclude generated files from formatKotlinMain by @hamen in #548
  • Improve OverrideDarkMode kdocs by @rock3r in #552
  • Iterate on keyboard shortcuts by @hamen in #549
  • Migrate TitleBarView to new Icon API by @hamen in #546
  • Migrated ActionSystem to Compose Traversal API & UiDataProvider API by @jakub-senohrabek-jb in #532
  • Improve string-based Icon deprecation by @rock3r in #555
  • Bump and clean by @rock3r in #557
  • Reimplement/fix/complete implementation of scrollbars by @rock3r in #554
  • Iterate on TextField and TextArea focused state UI by @hamen in #540

Full Changelog: v0.22.2...v0.23.0