jewel

An implementation of the IntelliJ look and feels in Compose for Desktop

APACHE-2.0 License

Stars
604
Committers
21

Bot releases are hidden (Show)

jewel - v0.24.0 Latest Release

Published by rock3r about 1 month ago

Notable changes

  • We've reworked completely how the SplitLayout works. It now supports nesting and works as expected. This is a breaking change.
  • We've deprecated a number of old APIs which will be removed in future releases

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.23.1...v0.24.0

jewel - v0.23.1

Published by rock3r about 2 months ago

Notable changes:

  • Fixed an issue where the placeholder text in TextField could extend beyond the boundaries of the TextField itself.  

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.23.0...v0.23.1

jewel - v0.23.0

Published by rock3r about 2 months ago

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

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.22.2...v0.23.0

jewel - v0.22.2

Published by rock3r 2 months ago

Notable changes:

  • The optimizeEdits parameter in the MarkdownProcessor class has been renamed to editorMode (#485).
  • The IconActionButton and IconButton components now have two new variants: Selectable and Toggleable (#501).
  • The Standalone sample application now supports basic keyboard shortcuts for navigating between its main screens (#502).
  • The IconKey API now includes an iconClass, used to load icons in release IDE builds (#507).
  • The JewelToolWindowComposePanel component has been added to address compatibility issues with Compose 1.7 and IntelliJ toolwindows, ensuring proper layout and sizing behavior (#509, #516).

Breaking changes:

  • The ToggleableComponentState interface no longer extends the SelectableComponentState interface (#501).
  • The IconButtonState class no longer implements the SelectableComponentState interface (#501).
  • The Debug mode has been removed, and selective logging should now be configured through the logger settings (#505).
  • Several deprecated APIs related to icon keys and styling have been removed (#507).

Deprecated:

  • The string-based resource APIs for the Icon component have been deprecated in favor of the IconKey-based APIs (#507).

What's Changed

New Contributors

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.22.1...v0.22.2

jewel - v0.22.1

Published by rock3r 3 months ago

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.22.0...v0.22.1

jewel - v0.22.0

Published by rock3r 3 months ago

Notable change

This release updates Compose to 1.7.0-dev1743, which fixes a hang when using links in Markdown (or any other LinkAnnotation). It's recommended that all users on 0.20-0.21 upgrade as soon as possible.

What's Changed

New Contributors

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.21.0...v0.22.0

jewel - v0.21.0

Published by rock3r 3 months ago

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.20.0...v0.21.0

jewel - v0.20.0

Published by rock3r 3 months ago

Notable changes

This release brings many changes — some of which can cause breakages in your code. Some APIs have been deprecated, or renamed, or removed. We've attempted to keep things as compatible as possible with previous versions, but it wasn't always possible.

[!NOTE]
As a reminder, Jewel does not make guarantees about API compatibility between different releases yet. That will come with v1.0.0.

This version introduces support for the IntelliJ Platform 2024.2 (currently in beta), and brings in Compose 1.7. We're in the process of migrating some aspects to new Compose APIs, and the first such example to land is the usage of LinkAnnotations in Markdown.

We also have a new key-based icon loading API that allows you to more easily load platform icons in a cross-target way. Now, to load an icon, you can do:

// Equivalent to the old path-based API
Icon(PathIconKey("icons/myIcon.svg"), contentDescription = "...")

// For platform icons found in AllIcons
PlatformIcon(AllIconsKeys.Nodes.ConfigFolder, "taskGroup")

Note that the icons loaded by PlatformIcon need to be present on the classpath as resources. In the bridge, that's always the case as they come from the platform; in standalone, you want to add this to your build script:

dependencies {
  implementation("com.jetbrains.intellij.platform:icons:[ijpVersion]")
  // ...
}

repositories {
  // Choose either of these two, depending on whether you're using a stable IJP or not
  maven("https://www.jetbrains.com/intellij-repository/releases")
  maven("https://www.jetbrains.com/intellij-repository/snapshots")
}

[!NOTE]
The repository readme has not been updated yet.

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.19.7...v0.20.0

jewel - v0.19.7

Published by rock3r 4 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.19.6...v0.19.7

jewel - v0.19.6

Published by rock3r 4 months ago

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.19.5...v0.19.6

jewel - v0.19.5

Published by rock3r 4 months ago

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.19.4...v0.19.5

jewel - v0.19.4

Published by rock3r 4 months ago

jewel - v0.19.3

Published by rock3r 5 months ago

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.19.2...v0.19.3

jewel - v0.19.2

Published by rock3r 5 months ago

What's Changed

  • Fix scaling issues in IJP 241 a64ab518be8016a44d4815eafaf0efc958794cf1

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.19.1...v0.19.2

jewel - v0.19.1

Published by rock3r 5 months ago

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.19.0...v0.19.1

jewel - v0.19.0

Published by rock3r 5 months ago

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.18.1...v0.19.0

jewel - v0.18.1

Published by rock3r 6 months ago

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.18.0...v0.18.1

jewel - v0.18.0

Published by rock3r 6 months ago

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.17.3...v0.18.0

jewel - v0.17.3

Published by rock3r 6 months ago

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.17.2...v0.17.3

jewel - v0.17.2

Published by rock3r 6 months ago

What's Changed

Full Changelog: https://github.com/JetBrains/jewel/compare/v0.17.1...v0.17.2

Badges
Extracted from project README
JetBrains incubator CI checks Licensed under Apache 2.0 Latest release
Related Projects