Releases: JetBrains/jewel
v0.24.2
v0.24.1
v0.24.0
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
- Fixed Null Pointer in IDE sample on non INTUI themes by @francisconoriega in #568
- Fix global border colors by @hamen in #569
- Use ktfmt for formatting by @rock3r in #571
- Bump IJP version to 242.21829.142 (242.1) by @rock3r in #575
- Use icon keys everywhere by @rock3r in #576
- Simplify Node.readInlineContent() implementation by @rock3r in #577
- Remove one more usage of resource-based Icon APIs by @rock3r in #578
- Upgrade Compose to 1.7.0-beta01 by @rock3r in #580
- Improve readme and deprecate PlatformIcon by @rock3r in #579
- Remove Jewel usages of deprecated PlatformIcon API by @rock3r in #581
- New SplitLayout by @hamen in #570
Full Changelog: v0.23.1...v0.24.0
v0.23.1
Notable changes:
- Fixed an issue where the placeholder text in
TextField
could extend beyond the boundaries of theTextField
itself.
What's Changed
Full Changelog: v0.23.0...v0.23.1
v0.23.0
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)
- It is key-value based, modeled after the
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 newscrollbarStyle
parameter.
- Migration: When creating a
Deprecated
- The
TextArea
andTextField
overloads that acceptvalue
andonValueChange
parameters have been deprecated in favor of the respective overloads that useTextFieldState
.- If you need to observe text changes with the new overloads, use
snapshotFlow { state.text }
.
- If you need to observe text changes with the new overloads, use
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
v0.22.2
Notable changes:
- The
optimizeEdits
parameter in theMarkdownProcessor
class has been renamed toeditorMode
(#485). - The
IconActionButton
andIconButton
components now have two new variants:Selectable
andToggleable
(#501). - The Standalone sample application now supports basic keyboard shortcuts for navigating between its main screens (#502).
- The
IconKey
API now includes aniconClass
, 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 theSelectableComponentState
interface (#501). - The
IconButtonState
class no longer implements theSelectableComponentState
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 theIconKey
-based APIs (#507).
What's Changed
- Rename optimizeEdits to editorMode in MarkdownProcessor by @rock3r in #485
- Improve and update Markdown readme by @rock3r in #482
- Add script and instructions to generate better release notes by @rock3r in #499
- Add basic shortcuts to Standalone L1 navigation screens by @hamen in #502
- Add selectable and toggleable Icon(Action)Button by @rock3r in #501
- Improve IconKey API to include a classloader by @rock3r in #507
- Remove Debug mode by @rock3r in #505
- Upgrade IJP to 242.20224.159 (RC) by @rock3r in #508
- Compose 1.7 FillMaxSize+Jpanels Workaround by @francisconoriega in #509
- Only apply workaround to CMP-5856 in toolwindows by @rock3r in #516
New Contributors
- @francisconoriega made their first contribution in #509
Full Changelog: v0.22.1...v0.22.2
v0.22.1
v0.22.0
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
- Improve borders sample page by @rock3r in #461
- Update README for 0.20.0 by @hamen in #460
- Move (Icon)ActionButton to the right package by @rock3r in #488
- Update target IJP to 242.20224.91 by @rock3r in #487
- Rename palette entry grey -> gray by @rock3r in #486
- Remove TextStyles from stylings by @rock3r in #490
- Use namedColorOrNull instead of marker for color retrieval (#142) by @jakub-senohrabek-jb in #493
- Upgrade IJP Gradle plugin to 2.0.0-rc1 by @rock3r in #468
- Add underline style to links by @rock3r in #492
- Update Compose to 1.7.0-dev1743 by @rock3r in #496
New Contributors
- @jakub-senohrabek-jb made their first contribution in #493
Full Changelog: v0.21.0...v0.22.0
v0.21.0
What's Changed
- Implement proper Markdown link styling by @rock3r in #455
- Be more specific in IDE sample run config by @rock3r in #456
- Fix Markdown rendering issues by @rock3r in #458
- We will not optimise for edits ("editor mode") by default anymore
- Models implement equals and hashCode
- Inline Markdown is processed in the main processor phase, not in the rendering phase anymore
- Inline extensions are now (tentatively) supported
Full Changelog: v0.20.0...v0.21.0
v0.20.0
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 LinkAnnotation
s 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
- Switch to IJP 242 EAP by @rock3r in #391
- Fix 242 icon loading by providing new key-based API by @rock3r in #430
- Use IJ distributions for compilation of sample by @rock3r in #434
- Fix MD code font in dark standalone theme by @rock3r in #436
- Fix publication issues by @rock3r in #435
- Replace icon paths with keys by @rock3r in #439
- Refresh Jewel Markdown README by @hamen in #438
- Migrate to the new LinkAnnotation API by @hamen in #425
- Fix snapshot publishing version by @rock3r in #440
- Cleanup icons in samples by @rock3r in #441
- Allow customizing the CommonMark Parser by @rock3r in #444
- Add JewelLogger by @hamen in #443
- Update 242 IJ Platform to beta 1 by @rock3r in #446
- Improve icon buttons by making them optionally focusable by @rock3r in #447
- Minor updates to the build files by @rock3r in #442
- Fix colour keys in bridge by @rock3r in #448
- Add Icon action button by @rock3r in #449
- Add ActionButton component by @rock3r in #450
- Add segmented controls by @RivanParmar in #387
- Remove ktlint IJ plugin from required plugins by @rock3r in #451
- Fix menu border width in bridge by @rock3r in #452
Full Changelog: v0.19.7...v0.20.0