Skip to content

Commit

Permalink
Merge pull request #30 from Konyaco/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
Konyaco authored Feb 22, 2024
2 parents 9e86d93 + aa39846 commit 09910b8
Show file tree
Hide file tree
Showing 67 changed files with 1,801 additions and 517 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[![License](https://img.shields.io/github/license/Konyaco/compose-fluent-ui)](LICENSE)
[![Version](https://img.shields.io/github/v/release/Konyaco/compose-fluent-ui?include_prereleases)](https://github.com/Konyaco/compose-fluent-ui/releases)
![Maven Central](https://img.shields.io/maven-central/v/com.konyaco/fluent)
[![Maven Central](https://img.shields.io/maven-central/v/com.konyaco/fluent)](https://central.sonatype.com/artifact/com.konyaco/fluent/)


**Fluent Design** UI library for **Compose Multiplatform**
Expand All @@ -23,8 +23,8 @@ Thank you for using our library. We look forward to receiving your feedback and
### Add Dependency

```kts
implementation("com.konyaco:fluent:0.0.1-dev.6")
implementation("com.konyaco:fluent-icons-extended:0.0.1-dev.6") // If you want to use full fluent icons.
implementation("com.konyaco:fluent:0.0.1-dev.7")
implementation("com.konyaco:fluent-icons-extended:0.0.1-dev.7") // If you want to use full fluent icons.
```

### Example
Expand All @@ -45,7 +45,7 @@ fun App() {
}
}
```
See [`example`](example) module for more details.
See [`gallery`](gallery) module for more details.

- `FluentTheme()` is the context and entry point of the application, just like `MaterialTheme`
- Components are under `component` package
Expand Down
46 changes: 46 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# TODO

## Basic Components

- `disabled`/`enabled` parameter on all components
- Card (With optional `clickable` parameter)
- Checkout
- [ ] Icon animation on toggle
- TextField
- [ ] Different style.
- [ ] Customizable leading/trailing icon.
- [ ] Optional clear button (With `clearable: Boolean` parameter, and auto trigger `onChange("")`)
- Flyout
- [ ] Noise background
- [ ] Improve enter/exit animation
- Dialog
- [ ] Improve customizability. Provide a lower level Dialog component, and some compound components like `AlertDialog`, `ConfirmDialog`, `PromptDialog` etc.
- Slider
- [ ] Improve performance and smoothness.

- Layer
- [ ] Eliminate workarounds like `circular`, `cornerRadius` etc.

## Compound Components

- Date Picker
- [ ] Calender Date Picker
- [ ] Calender View
- [ ] Date Picker
- [ ] Time Picker
- Navigator
- [ ] Extract as an component (Provide low level components API, and high level declarative-style API?)
- [ ] Provide different style

## Extend Components

- [ ] MediaPlayer
- [ ] File Picker ?

## Gallery

Imitates the style of WinUI 3 Gallery.

- [ ] Add Home page.
- [ ] Put components to separate pages.
- [ ] Icons Gallery
2 changes: 2 additions & 0 deletions build-plugin/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/build/
/.gradle/
30 changes: 30 additions & 0 deletions build-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
plugins {
`kotlin-dsl`
`java-gradle-plugin`
}

repositories {
mavenCentral()
}

dependencies {
implementation(gradleApi())
implementation(kotlin("gradle-plugin"))
}

kotlin {
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}
}

gradlePlugin {
plugins {
create("BuildPlugin") {
id = "com.konyaco.fluent.plugin.build"
implementationClass = "com.konyaco.fluent.plugin.build.BuildPlugin"
}
}
}
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.konyaco.fluent.plugin.build

import org.gradle.api.JavaVersion

object BuildConfig {

const val group = "com.konyaco"

const val packageName = "$group.fluent"

const val libraryVersion = "0.0.1-dev.7"

object Android {
const val compileSdkVersion = 34

const val minSdkVersion = 24
}

object Jvm {
const val jvmToolchainVersion = 17
val javaVersion = JavaVersion.VERSION_17
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package com.konyaco.fluent.plugin.build

import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.publish.PublishingExtension
import org.gradle.api.publish.maven.MavenPublication
import org.gradle.api.tasks.bundling.Jar
import org.gradle.kotlin.dsl.create
import org.gradle.kotlin.dsl.findByType
import org.gradle.kotlin.dsl.withType
import org.gradle.plugins.signing.SigningExtension

class BuildPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.allprojects.forEach {
it.afterEvaluate {

it.extensions.findByType<PublishingExtension>()?.apply {
setupMavenPublishing(it)
it.extensions.findByType<SigningExtension>()?.setupSigning(this)
}
}
}
}

private fun SigningExtension.setupSigning(publishing: PublishingExtension) {
useInMemoryPgpKeys(
System.getenv("SIGNING_KEY_ID"),
System.getenv("SIGNING_KEY"),
System.getenv("SIGNING_PASSWORD")
)
sign(publishing.publications)
}

private fun PublishingExtension.setupMavenPublishing(target: Project) {
val javadocJar = target.tasks.findByName("javadocJar") ?: target.tasks.create("javadocJar", Jar::class) {
archiveClassifier.set("javadoc")
}
publications.withType<MavenPublication> {
artifact(javadocJar)
pom {
name.set("compose-fluent-ui")
description.set("A Fluent Design UI library for compose-multiplatform.")
url.set("https://github.com/Konyaco/compose-fluent-ui")

licenses {
license {
name.set("The Apache License, Version 2.0")
url.set("http://www.apache.org/licenses/LICENSE-2.0.txt")
}
}

developers {
developer {
name.set("Kon Yaco")
email.set("atwzj233@gmail.com")
url.set("https://github.com/Konyaco")
}
}

scm {
url.set("https://github.com/Konyaco/compose-fluent-ui")
connection.set("scm:git:git://github.com/Konyaco/compose-fluent-ui.git")
developerConnection.set("scm:git:ssh://github.com/Konyaco/compose-fluent-ui.git")
}
}
}
repositories {
maven {
val releasesUrl ="https://s01.oss.sonatype.org/content/repositories/snapshots/"
val snapshotsUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
name = "OSSRH"
url = target.uri(
if (target.version.toString().endsWith("SNAPSHOT")) releasesUrl
else snapshotsUrl
)
credentials {
username = System.getenv("OSSRH_USERNAME")
password = System.getenv("OSSRH_PASSWORD")
}
}
}
}
}
14 changes: 9 additions & 5 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
import com.konyaco.fluent.plugin.build.BuildConfig

plugins {
kotlin("multiplatform") version "1.8.20" apply false
id("org.jetbrains.compose") version "1.4.0" apply false
id("com.android.library") version "7.4.2" apply false
id("org.jetbrains.kotlin.android") version "1.8.20" apply false
alias(libs.plugins.kotlin.multiplatform) apply false
alias(libs.plugins.compose) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.android.application) apply false
alias(libs.plugins.kotlin.android) apply false
id("com.konyaco.fluent.plugin.build")
}

group = "com.konyaco"
group = BuildConfig.group

allprojects {
repositories {
Expand Down
12 changes: 0 additions & 12 deletions example/android/.gitignore

This file was deleted.

56 changes: 0 additions & 56 deletions example/android/build.gradle.kts

This file was deleted.

3 changes: 0 additions & 3 deletions example/android/src/main/res/values/strings.xml

This file was deleted.

5 changes: 0 additions & 5 deletions example/android/src/main/res/values/themes.xml

This file was deleted.

38 changes: 0 additions & 38 deletions example/common/build.gradle.kts

This file was deleted.

2 changes: 0 additions & 2 deletions example/common/src/androidMain/AndroidManifest.xml

This file was deleted.

Loading

0 comments on commit 09910b8

Please sign in to comment.