Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 38 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
- Compose Multiplatform timelines: Android, iOS, Desktop (JVM), Web (JS & WASM)
- Vertical and horizontal layouts (JetLimeColumn / JetLimeRow)
- Flexible point placement: START, CENTER, END with continuous line joins
- RTL layout support for JetLimeRow and JetLimeExtendedEvent (mirrors timelines and keeps content visible in right-to-left layouts)
- Dashed/gradient/solid lines via Brush + PathEffect
- Extended events with dual content slots (left/right), icons, and animations
- Small, focused API with sensible defaults (JetLimeDefaults)
Expand All @@ -41,7 +42,7 @@ In `build.gradle` of shared module, include the following dependency

```gradle
dependencies {
implementation("io.github.pushpalroy:jetlime:4.1.0")
implementation("io.github.pushpalroy:jetlime:4.1.1")
}
```

Expand Down Expand Up @@ -238,6 +239,42 @@ The [lineThickness](https://pushpalroy.github.io/JetLime/jetlime/com.pushpal.jet

---

### 🌍 RTL Layout Support

JetLime supports right-to-left (RTL) layouts out of the box using Compose’s `LayoutDirection.Rtl`.

- **Horizontal timelines (`JetLimeRow` + `JetLimeEvent`)**
- The timeline direction is mirrored in RTL.
- Start and end items are correctly connected.
- Points and lines stay aligned without clipping, and the last item’s line joins cleanly.

- **Extended vertical events (`JetLimeExtendedEvent` inside `JetLimeColumn`)**
- Additional content remains fully visible on the side nearest the logical start.
- Main content remains fully visible on the opposite side.
- The timeline line and point stay between additional and main content without overlapping them.

To preview RTL behavior in your app, wrap your content with a `CompositionLocalProvider`:

```kotlin
CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Rtl) {
JetLimeColumn(
itemsList = ItemsList(items),
key = { _, item -> item.id },
) { index, item, position ->
JetLimeExtendedEvent(
style = JetLimeEventDefaults.eventStyle(position = position),
additionalContent = { /* Additional content */ },
) {
// Main content
}
}
}
```

| Basic (RTL) | Dynamic (RTL) | Extended (RTL) |
|:-----------------------------------------:|---------------------------------------------|:--------------------------------------------:|
| <img src="art/rtl/basic.png" width=180 /> | <img src="art/rtl/dynamic.png" width=180 /> | <img src="art/rtl/extended.png" width=180 /> |

### ⚙️ JetLimeEvent Properties

#### 📍 Position
Expand Down
Binary file added art/rtl/basic.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added art/rtl/dynamic.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added art/rtl/extended.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions jetlime/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ dokka {

kotlin {
cocoapods {
version = "4.1.0"
version = "4.1.1"
summary = "JetLime KMP Library"
homepage = "https://github.com/pushpalroy/JetLime"
ios.deploymentTarget = "14.0"
Expand Down Expand Up @@ -149,7 +149,7 @@ mavenPublishing {
val artifactId = "jetlime"

// Define coordinates for the published artifact
coordinates("io.github.pushpalroy", artifactId, "4.1.0")
coordinates("io.github.pushpalroy", artifactId, "4.1.1")

// Configure POM metadata for the published artifact
pom {
Expand Down
2 changes: 1 addition & 1 deletion jetlime/jetlime.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |spec|
spec.name = 'jetlime'
spec.version = '4.1.0'
spec.version = '4.1.1'
spec.homepage = 'https://github.com/pushpalroy/JetLime'
spec.source = { :http=> ''}
spec.authors = ''
Expand Down
2 changes: 1 addition & 1 deletion sample/composeApp/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ kotlin {
implementation(project(":jetlime"))

// Uncomment for maven testing
// implementation("io.github.pushpalroy:jetlime:4.1.0")
// implementation("io.github.pushpalroy:jetlime:4.1.1")
}
desktopMain.dependencies {
implementation(compose.desktop.currentOs)
Expand Down
2 changes: 1 addition & 1 deletion scripts/add_git_tag.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# Script to add annotated tag with version number to the main branch
# This script should be executed with the correct version number after every release to MavenCentral
TAG="4.1.0"
TAG="4.1.1"
COMMENT="Release $TAG"
BRANCH="main"

Expand Down