Skip to content

Commit ffa96ff

Browse files
committed
Merge branch 'main' into github-pages-deployment-with-dokka
2 parents 0154752 + d1e2aad commit ffa96ff

244 files changed

Lines changed: 6993 additions & 4338 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/copilot-instructions.md

Lines changed: 142 additions & 12 deletions
Large diffs are not rendered by default.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: "Copilot Setup Steps"
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
paths:
7+
- .github/workflows/copilot-setup-steps.yml
8+
pull_request:
9+
paths:
10+
- .github/workflows/copilot-setup-steps.yml
11+
12+
jobs:
13+
copilot-setup-steps:
14+
runs-on: macos-latest
15+
16+
permissions:
17+
contents: read
18+
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v5
22+
23+
- name: Set up JDK 17
24+
uses: actions/setup-java@v5
25+
with:
26+
java-version: "17"
27+
distribution: "temurin"
28+
29+
- name: Setup Gradle
30+
uses: gradle/actions/setup-gradle@v4

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
See [Copilot instructions.md](.github/copilot-instructions.md).

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ We recommend developing with IntelliJ IDEA. In IntelliJ IDEA, select the correct
1818

1919
Run the `publishToMavenLocal` Gradle task to publish the libraries to your machine's Maven Local Repository so your projects can depend on the changes you have made, run `check` to ensure our limited number of tests pass.
2020

21-
## Furthur notice
21+
## Further notice
2222

2323
We are currently a small team with limited effort. While we may not always implement your requested features, merge your pull requests, or do such things in time, you are always welcome to create your own fork and make any changes you like.

README.md

Lines changed: 57 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -51,53 +51,76 @@ This project is still in development and has not reached a stable state. Some AP
5151

5252
#### Material 2 components
5353

54-
- `Button`
55-
- `Card`
56-
- `Checkbox`
57-
- `Divider` (not working properly on JS yet)
58-
- `Icon`
59-
- `IconButton`
60-
- `Snackbar` (inconsistent, not recommended), `SnackBarHost` (recommended)
61-
- `Switch`
62-
- `Text`
54+
**Deprecation notice:** The Material 2 components are no longer maintained and published for release since v0.6.0, due to its decreasing popularity and the underlying KMDC library's incompatible Kotlin and Compose versions.
55+
56+
- Button: `Button`
57+
- Card: `Card`
58+
- Checkbox: `Checkbox`
59+
- Divider: `Divider` (not working properly on JS yet)
60+
- Icon: `Icon`
61+
- Icon button: `IconButton`
62+
- Snackbar: `Snackbar` (inconsistent, not recommended), `SnackBarHost` (recommended)
63+
- Switch: `Switch`
64+
- Text: `Text`
6365

6466
##### `ext` components
6567

66-
- `Button`
67-
- `IconButton`
68-
- `RadioRow`, `RadioGroupRow`
69-
- `SwitchWithLabel`
70-
- `MaterialText`, `TaglessText`
71-
- `TextField`, `OutlinedTextField`
72-
- `TopAppBarScaffold`
68+
- Button: `Button`
69+
- Icon button: `IconButton`
70+
- Radio button: `RadioRow`, `RadioGroupRow`
71+
- Switch: `SwitchWithLabel`
72+
- Text: `MaterialText`, `TaglessText`
73+
- Text field: `TextField`, `OutlinedTextField`
74+
- Top app bar: `TopAppBarScaffold`
7375

7476
##### `lazy.ext` components
7577

7678
- `List`/`LazyColumnList` (visually inconsistent for now)
7779

7880
#### Material 3 components
7981

80-
- `Button` (`FilledButton`), `ElevatedButton`, `FilledTonalButton`, `OutlinedButton`, `TextButton`
81-
- `Card` (`FilledCard`), `ElevatedCard`, `OutlinedCard`
82-
- `Checkbox`
83-
- `FloatingActionButton`, `SmallFloatingActionButton`, `LargeFloatingActionButton`, `ExtendedFloatingActionButton`
84-
- `Icon`
85-
- `IconButton`, `IconToggleButton`, `FilledIconButton`, `FilledIconToggleButton`, `FilledTonalIconButton`, `FilledTonalIconToggleButton`, `OutlinedIconButton`, `OutlinedIconToggleButton`
86-
- `LinearProgressIndicator`, `CircularProgressIndicator`
87-
- `Switch`
88-
- `Text`
82+
- Button: `Button` (`FilledButton`), `ElevatedButton`, `FilledTonalButton`, `OutlinedButton`, `TextButton`
83+
- Card: `Card` (`FilledCard`), `ElevatedCard`, `OutlinedCard`
84+
- Checkbox: `Checkbox`
85+
- Dialog: `AlertDialog`, `SimpleDialog`
86+
- Divider: `HorizontalDivider`
87+
- Floating action button: `FloatingActionButton`, `SmallFloatingActionButton`, `LargeFloatingActionButton`,
88+
`ExtendedFloatingActionButton`
89+
- Icon: `Icon`
90+
- Icon button: `IconButton`, `IconToggleButton`, `FilledIconButton`, `FilledIconToggleButton`, `FilledTonalIconButton`,
91+
`FilledTonalIconToggleButton`, `OutlinedIconButton`, `OutlinedIconToggleButton`
92+
- Navigation drawer: `ModalNavigationDrawer` (deprecated)
93+
- Progress indicator: `LinearProgressIndicator`, `CircularProgressIndicator`
94+
- Radio button: `RadioButton`
95+
- Segmented button: `SingleChoiceSegmentedButtonRow`, `MultiChoiceSegmentedButtonRow`
96+
- Slider: `Slider`, `RangeSlider`
97+
- Snackbar: `SnackbarHost`, `SnackbarHostState`
98+
- Switch: `Switch`
99+
- Tab: `PrimaryTabRow`, `SecondaryTabRow` (tabs are in `ext`)
100+
- Text: `Text`
89101

90102
##### `ext` components
91103

92-
- `Button` (`FilledButton`), `ElevatedButton`, `FilledTonalButton`, `OutlinedButton`, `TextButton`
93-
- `Card` (`FilledCard`), `ElevatedCard`, `OutlinedCard`
94-
- `DropdownMenu`, `DropdownMenuItem`
95-
- `ExposedDropdownMenuBox`, `ExposedDropdownMenuBoxScope.ExposedDropdownMenuBoxTextField`, `ExposedDropdownMenuBoxScope.ExposedDropdownMenu`, `ExposedDropdownMenuWithTextField`
96-
- `FloatingActionButton`, `SmallFloatingActionButton`, `LargeFloatingActionButton`, `ExtendedFloatingActionButton`
97-
- `IconButton`, `IconToggleButton`, `FilledIconButton`, `FilledIconToggleButton`, `FilledTonalIconButton`, `FilledTonalIconToggleButton`, `OutlinedIconButton`, `OutlinedIconToggleButton`
98-
- `NavigationBar`, `NavigationBarItem`
99-
- `MaterialText`, `TaglessText`
100-
- `TextField`, `OutlinedTextField`
104+
- Badge: `Badge` (deprecated)
105+
- Button: `Button` (`FilledButton`), `ElevatedButton`, `FilledTonalButton`, `OutlinedButton`, `TextButton`
106+
- Card: `Card` (`FilledCard`), `ElevatedCard`, `OutlinedCard`
107+
- Chip: `AssistChip`, `ElevatedAssistChip`, `FilterChip`, `ElevatedFilterChip`, `InputChip`, `SuggestionChip`,
108+
`ElevatedSuggestionChip`
109+
- Dropdown menu: `DropdownMenu`, `DropdownMenuItem`
110+
- `ExposedDropdownMenuBox`, `ExposedDropdownMenuBoxScope.ExposedDropdownMenuBoxTextField`, `ExposedDropdownMenuBoxScope.ExposedDropdownMenu`, `ExposedDropdownMenuBoxWithTextField`
111+
- Floating action button: `FloatingActionButton`, `SmallFloatingActionButton`, `LargeFloatingActionButton`,
112+
`ExtendedFloatingActionButton`
113+
- Icon button: `IconButton`, `IconToggleButton`, `FilledIconButton`, `FilledIconToggleButton`, `FilledTonalIconButton`,
114+
`FilledTonalIconToggleButton`, `OutlinedIconButton`, `OutlinedIconToggleButton`
115+
- Navigation bar: `NavigationBar`, `NavigationBarItem`
116+
- Radio button: `RadioButtonRow`, `radioGroup`
117+
- Segmented button: `SingleChoiceSegmentedButtonRowScope.SegmentedButton`,
118+
`MultiChoiceSegmentedButtonRowScope.SegmentedButton`
119+
- Select: `FilledSelect`, `OutlinedSelect`, `SelectOption`
120+
- Tab: `PrimaryTab`, `SecondaryTab`
121+
- Text: `MaterialText`, `TaglessText`
122+
- Text field: `TextField`, `OutlinedTextField`
123+
- Top app bar: `TopAppBar`, `CenterAlignedTopAppBar`, `MediumTopAppBar`, `LargeTopAppBar`
101124

102125
##### `lazy.ext` components
103126

buildSrc/build.gradle.kts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@ repositories {
1010
}
1111

1212
dependencies {
13-
val kotlinVersion = "2.2.10"
13+
val kotlinVersion = "2.3.20"
1414
implementation(kotlin("gradle-plugin", kotlinVersion))
1515
implementation("org.jetbrains.kotlin:compose-compiler-gradle-plugin:$kotlinVersion")
16-
implementation("org.jetbrains.compose:compose-gradle-plugin:1.9.0")
17-
implementation("com.huanshankeji.team:gradle-plugins:0.10.0-SNAPSHOT") // TODO don't use a snapshot version in a main branch
16+
implementation("org.jetbrains.compose:compose-gradle-plugin:1.10.3")
17+
implementation("com.huanshankeji.team:gradle-plugins:0.11.0") // don't use a snapshot version in a main branch
18+
// https://developer.android.com/build/releases/gradle-plugin, https://mvnrepository.com/artifact/com.android.tools.build/gradle
1819
implementation("com.android.tools.build:gradle:8.12.3")
19-
implementation("com.huanshankeji:common-gradle-dependencies:0.10.0-20250918-SNAPSHOT") // TODO don't use a snapshot version in a main branch
20+
implementation("com.huanshankeji:common-gradle-dependencies:0.10.0-20251024") // don't use a snapshot version in a main branch
2021
}

buildSrc/src/main/kotlin/VersionsAndDependencies.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,18 @@ val commonDependencies = CommonDependencies()
88
object DependencyVersions {
99
const val composeMultiplatform = ComposeBuildConfig.composeVersion // for "ui-unit"
1010

11+
1112
// https://slack-chats.kotlinlang.org/t/27579160/after-updating-to-1-8-0-rc01-package-androidx-compose-materi
1213
// https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.8.0-rc01
1314
const val composeMultiplatformMaterialIconsExtended = "1.7.3"
14-
val kobweb = "0.23.3"
15-
val huanshankejiComposeHtml = "0.4.1-SNAPSHOT" // TODO don't use a snapshot version in a main branch
15+
16+
// https://github.com/varabyte/kobweb/releases
17+
val kobweb = "0.24.0"
18+
val huanshankejiComposeHtml = "0.5.0" // don't use a snapshot version in a main branch
19+
20+
// https://github.com/mpetuska/kmdc/releases
1621
val kmdc = "0.1.2"
17-
val materialSymbols = "0.35.2"
22+
23+
// https://github.com/marella/material-symbols/releases
24+
val materialSymbols = "0.42.3"
1825
}

buildSrc/src/main/kotlin/common-conventions.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ kotlin {
3838
js {
3939
// The project works without this, but it can be added to avoid potential issues.
4040
browser()
41+
42+
compilerOptions {
43+
target.set("es2015")
44+
}
4145
}
4246

4347

@@ -58,5 +62,6 @@ kotlin {
5862

5963
compilerOptions {
6064
freeCompilerArgs.add("-Xexpect-actual-classes")
65+
optIn.add("com.huanshankeji.compose.ExperimentalApi")
6166
}
6267
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
plugins {
22
id("lib-conventions-without-publishing")
33
id("dokka-convention")
4-
id("com.huanshankeji.kotlin-multiplatform-sonatype-ossrh-publish-conventions")
4+
id("com.huanshankeji.maven-central-publish-conventions")
55
}

common/api/android/compose-multiplatform-html-unified-common.api

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
public final class com/huanshankeji/compose/Content_composeUiKt {
2-
public static final fun toContentWithoutModifier (Lkotlin/jvm/functions/Function3;)Lkotlin/jvm/functions/Function2;
3-
public static final fun toNullableContentWithoutModifier (Lkotlin/jvm/functions/Function3;)Lkotlin/jvm/functions/Function2;
4-
}
5-
61
public abstract interface annotation class com/huanshankeji/compose/ExperimentalApi : java/lang/annotation/Annotation {
72
}
83

@@ -12,6 +7,11 @@ public abstract interface annotation class com/huanshankeji/compose/ExtRecommend
127
public abstract interface annotation class com/huanshankeji/compose/LikelyInconsistentApi : java/lang/annotation/Annotation {
138
}
149

10+
public final class com/huanshankeji/compose/ext/ContentWithModifier_composeUiKt {
11+
public static final fun toContentWithoutModifier (Lkotlin/jvm/functions/Function3;)Lkotlin/jvm/functions/Function2;
12+
public static final fun toNullableContentWithoutModifier (Lkotlin/jvm/functions/Function3;)Lkotlin/jvm/functions/Function2;
13+
}
14+
1515
public abstract class com/huanshankeji/compose/ext/LoadingState {
1616
public static final field $stable I
1717
}
@@ -71,9 +71,13 @@ public final class com/huanshankeji/compose/foundation/OnClick_composeUiKt {
7171
public static final fun clickable (Lcom/huanshankeji/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;)Lcom/huanshankeji/compose/ui/Modifier;
7272
}
7373

74-
public final class com/huanshankeji/compose/foundation/Scroll_composeUiKt {
74+
public final class com/huanshankeji/compose/foundation/ScrollKt {
75+
public static final field SCROLL_MODIFIER_DEPRECATION_MESSAGE Ljava/lang/String;
7576
public static final fun HorizontalScrollBox (Lcom/huanshankeji/compose/ui/Modifier;Lcom/huanshankeji/compose/ui/Modifier;Lcom/huanshankeji/compose/ui/Alignment;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
7677
public static final fun VerticalScrollBox (Lcom/huanshankeji/compose/ui/Modifier;Lcom/huanshankeji/compose/ui/Modifier;Lcom/huanshankeji/compose/ui/Alignment;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
78+
}
79+
80+
public final class com/huanshankeji/compose/foundation/Scroll_composeUiKt {
7781
public static final fun horizontalScroll (Lcom/huanshankeji/compose/ui/Modifier;Landroidx/compose/foundation/ScrollState;)Lcom/huanshankeji/compose/ui/Modifier;
7882
public static final fun rememberScrollState (ILandroidx/compose/runtime/Composer;II)Landroidx/compose/foundation/ScrollState;
7983
public static final fun verticalScroll (Lcom/huanshankeji/compose/ui/Modifier;Landroidx/compose/foundation/ScrollState;)Lcom/huanshankeji/compose/ui/Modifier;
@@ -99,6 +103,11 @@ public final class com/huanshankeji/compose/foundation/ext/MatchPositionRelative
99103
public static final fun matchPositionRelativeParentJsDom (Lcom/huanshankeji/compose/ui/Modifier;)Lcom/huanshankeji/compose/ui/Modifier;
100104
}
101105

106+
public final class com/huanshankeji/compose/foundation/ext/Scroll_composeUiKt {
107+
public static final fun HorizontalScrollContainer (Lcom/huanshankeji/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
108+
public static final fun VerticalScrollContainer (Lcom/huanshankeji/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
109+
}
110+
102111
public final class com/huanshankeji/compose/foundation/layout/Arrangement {
103112
public static final field $stable I
104113
public static final field INSTANCE Lcom/huanshankeji/compose/foundation/layout/Arrangement;
@@ -367,6 +376,13 @@ public final class com/huanshankeji/compose/foundation/layout/ext/OuterPadding_c
367376
public static synthetic fun outerPadding-qDBjuR0$default (Lcom/huanshankeji/compose/ui/Modifier;FFFFILjava/lang/Object;)Lcom/huanshankeji/compose/ui/Modifier;
368377
}
369378

379+
public final class com/huanshankeji/compose/foundation/layout/ext/Scroll_composeUiKt {
380+
public static final fun HorizontalScrollBox (Lcom/huanshankeji/compose/ui/Modifier;Lcom/huanshankeji/compose/ui/Modifier;Lcom/huanshankeji/compose/ui/Alignment;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
381+
public static final fun HorizontalScrollRow (Lcom/huanshankeji/compose/ui/Modifier;Lcom/huanshankeji/compose/ui/Modifier;Lcom/huanshankeji/compose/foundation/layout/Arrangement$Horizontal;Lcom/huanshankeji/compose/ui/Alignment$Vertical;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
382+
public static final fun VerticalScrollBox (Lcom/huanshankeji/compose/ui/Modifier;Lcom/huanshankeji/compose/ui/Modifier;Lcom/huanshankeji/compose/ui/Alignment;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
383+
public static final fun VerticalScrollColumn (Lcom/huanshankeji/compose/ui/Modifier;Lcom/huanshankeji/compose/ui/Modifier;Lcom/huanshankeji/compose/foundation/layout/Arrangement$Vertical;Lcom/huanshankeji/compose/ui/Alignment$Horizontal;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
384+
}
385+
370386
public final class com/huanshankeji/compose/foundation/layout/ext/Size_composeUiKt {
371387
public static final fun fillMaxHeightStretch (Lcom/huanshankeji/compose/ui/Modifier;)Lcom/huanshankeji/compose/ui/Modifier;
372388
public static final fun fillMaxSizeStretch (Lcom/huanshankeji/compose/ui/Modifier;)Lcom/huanshankeji/compose/ui/Modifier;
@@ -738,6 +754,10 @@ public final class com/huanshankeji/compose/ui/Modifier$Impl : com/huanshankeji/
738754
public final synthetic fun unbox-impl ()Landroidx/compose/ui/Modifier;
739755
}
740756

757+
public final class com/huanshankeji/compose/ui/Modifier_composeUiKt {
758+
public static final fun toCommonModifier (Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;
759+
}
760+
741761
public final class com/huanshankeji/compose/ui/draw/Alpha_composeUiKt {
742762
public static final fun alpha (Lcom/huanshankeji/compose/ui/Modifier;F)Lcom/huanshankeji/compose/ui/Modifier;
743763
}

0 commit comments

Comments
 (0)