-
0.10.2 protected876d9549 · ·
Dependency upgrades ### Documentation - Add module headers ### Dependencies - Kotlin 2.0.20 (!164) - Compose Multiplatform 1.6.11 (!164) - KotlinX.Coroutines 1.8.1 (!159) - Pedestal 2.2.2 (!159) - Prepared 1.3.1 (!159) - Material3 for Compose HTML 0.5.0 (!159) - Vite for Kotlin 0.4.0 (!159) - AndroidX upgrades (!159)
-
0.10.0 protected1500b88d · ·
Row, Column, headless Text, and the return of the web demo ### Components - Experimental: created Row and Column (8a600db5, #212, !130) ### Design: Headless - Support for Text (121eceb8, !123) - Support for Row and Column (349eb55c, #212, !130) ### Design: Material3 AndroidX - Support for Row and Column (5899daaa, #212, !130) ### Design: Material3 HTML - Created this module, based on our Material3 reimplementation with TailwindCSS (!125) - Support for Button and its variants (9f82b2b0, !125) - Support for Text (6a18f632, !125) - Support for Row and Column (5d0049e4, #212, !130) ### Design: PureCSS - Support for Row and Column (9355685c, #212, !130) ### Demo - Support for Kotlin/JS (#210, !124, !128, 64f2cc88) - Allow selecting between multiple design systems at runtime (6b01dc15, !125) ### Dependencies - Kotlin 1.9.22 - Compose Multiplatform 1.5.12 - TailwindCSS 3.4.1 (#211, !127) - PostCSS 8.4.35 (#211, !127) - Autoprefixer 10.4.17 (#211, !127) - KotlinX.Coroutines 1.8.0 (4662fc90, !131) - Pedestal 2.1.1 (ef1aea7b, !131) - Prepared 1.0.0-rc.2 (6586ff6b, !131) - Material3 HTML (ccf2de41, !131) - AndroidX Material 1.11.0 (a1f6dc24, !131) - Kotlin/JS Resources 0.2.1 (66c2ba60, !131)
-
0.9.0 protected3965dd72 · ·
Buttons, unformatted text, and documentation ### Components - Document the restricted stability contract of the arguments classes (b1d3b841, !115) - Introduce the concept of "action responsibility" (d410785d, !115) - Add the button components (94e79da8, !115) - Add the unformatted text component (2be6d2da, !119) ### Design: Headless - Migrate the Headless design system from the legacy codebase (#207, !116) - Implement headless buttons (#207, 68887710, !116) - Introduce spies to capture composition-bound variables (2f1ab0b0, !116) ### Design: PureCSS - Implement the buttons (#203, !117) - Implement the text component (449e4523, !119) ### Design: Material3 (AndroidX) - Implement the buttons (a8b11634, !119) - Implement the text component (c9cf2116, !119) ### Demo - Recreate the demo app using the new KMP wizard (#202, !118) - Use the Material3 theme for the Desktop platform (b51c15b9, !119) ### Documentation - New README with a comparison with Redwood (#206, !113) - Issue label reorganization (#206, !113) ### Dependencies - Pedestal 2.1.0 (a2929255, !115)
-
0.8.0 protected1d6d211c · ·
The Great Restructuring Our main road block until now, a Compose compiler block, has been fixed. Previously, we had to use quite a few hacks to workaround it, which made the codebase harder to understand. With this release, we're starting a process of cleaning up the repository. The previous code has been moved to the `legacy` folder, such that the repository root contains only clean code (#194, !105). ### Polymorphic Compose The core of Decouple is the ability to declare polymorphic composable functions: UI components whose implementation can be switched at runtime. This feature now lives in its own micro module, such that it can be reused by other projects for other means. - Create the module (f641595d, !105) - Rename it to Polymorphic Compose () ### Components This module will contain the flagship feature of Decouple: organizing UI components by their role, not their design. This will allow making applications or features (e.g. a log-in screen) of which users can entirely customize the design. - Create the DesignSystem interface (ce08dd05, !105) - Create the experimental annotation (55efac7c, !105) ### Dependencies - OpenSavvy Gradle Conventions 0.3.2 (!111) - Kotlin 1.9.21 (!111) - Compose Multiplatform 1.5.11 (!111) ### Build and deployment - The project is now based on the Gradle Playground (#195, !105)
-
0.7.3 protectedaf623ec7 · ·
Documentation improvements ### Documentation - Fixed the links to the documentation in the README (#150, !87) - Added a tutorial to discover Compose and Decouple (#150, !87) - List all components in the documentation (#151, !88) - Module headers for all modules with stability declarations (#165, !93) ### Demo - Added a calculator example (!84) by @chrhuang ### Build and deployment - Reworked the module names for simpler navigation (#164, !91) - Publish all modules to the GitLab Maven Registry (#163, !92) - Gradle 8.1.1 (#130, !94)
-
0.7.2 protectedcc960ec9 · ·
Bug fixes and dependency upgrades ### AndroidX implementation - Fix the global navigation bar being displayed off-screen (#133, !81) - Fix the progress indicator being too large (#73, !77) - Add the progress indicator to buttons and chips (#73, !77) ### Build and deployment - Removed the Palantir Git plugin for Gradle (#141, !79) - Configure JVM toolchains for JDK 17 (#136, !80) - Upgrade Pedestal, remove the Pedestal State and Arrow dependencies (#138, !82) ### Contributors Thanks to our contributors. - @chrhuang for the progress indicator changes
-
0.7.1 protected69b17a05 · ·
Web navigation and contribution style ### Material Tailwind - Better styling for the global navigation (#54, !76) ### Build and deployment - Centralized the contribution guide with the other OpenSavvy projects (#139, !78)
-
0.7.0 protected57e8485a · ·
Desktop, logo and testing improvements ### Project image and documentation - Decouple now has a logo (#118, !60) - IDEA displays the logo in the project list (!65) ### Core - Renamed FilterChip(activated=) to FilterChip(active=) (#101, #121, !61, !64) ### Demo - Added a headless test to showcase how to use them in the demo (#102, !68) - Added support for Compose Desktop (!52) ### Material AndroidX - Added support for Compose Desktop (!52) ### Headless - Convenience functions to get the text contents of a component (#116, !67) - Added a documentation link from each headless component to the Core equivalent (#128, !69) - Renamed TestUI to HeadlessUI (#127, !70) ### Build and deployment - Full Gradle build rewrite using convention plugins (#98, #110, !62) - Kotlin 1.8.10, Compose 1.3.1 (d0bc9217, !62) - The project has been moved from Gradle coordinates "opensavvy:<module>" to "opensavvy.decouple:<module>" (#125, !66) - Enabled the Gradle build cache (#131, !74) - Removed the SAST and DAST CI jobs, which didn't work but took CI quota (#112, !73) - Migrated to the Android source set layout v2 (#122, !75) ### Contributors Thanks to our new and renewed contributors. - @LandryNorris for the Desktop support - Magali Damourette for the logo
-
0.6.0 protectedfef55bb2 · ·
Headless testing, KotlinLang Slack and more information for contributors ### Headless `headless` is a new module to help with headless UI testing, where the application UI is run and instrumented without a real GUI. - Created the module (#67, #68, #69, #100, !51, !57) ### Demo - Fixed a test on Android with incorrect dependencies (!54) ### Documentation - The documentation now links to the official Arrow documentation (#104, !55) - Added the link to the Decouple channel on the official KotlinLang Slack (#106, !56) - Created a FAQ to answer questions asked by people on Slack (#105, !56) - Documented labels used to classify issues (#115, !58) ### Contributions Thanks to our first external contributors. - @hackintosh5 for helping prototype the Headless module - @LandryNorris for fixing the Android tests
-
0.5.1 protected1e36ce47 · ·
Multicolumn layouts ### Global - Multicolumn screen layouts (#30, !49) - Upgrade to Pedestal 1.0.1 (#95, !50) ### Material Tailwind - Maximum text width (83ed8987, !49) - Smaller gap between chips (587685e9, !49)
-
0.5.0 protected40e9b8dd · ·
Android support ### Core - Android support for all libraries (#37, !42) - Introduced UIMetadata.name and Theme.name (#70, !48) ### Style: Material - Prototype implementation of Material Design 3 for Android (#37, !42)
-
0.4.4 protected4e95a8d6 · ·
Material Chips ### Material - Implementation of AssistChip, InputChip and SuggestionChip (#16, !47)
-
0.4.3 protected6b0b61a5 · ·
Minor changes ### Deployment - Execute JVM tests in CI (!43) - Execute JS tests in CI (!43) - Fixed the deployment CD (#81, !44)
-
0.4.2 protected092c1d40 · ·
Refactors The project now has a Telegram group: https://t.me/os_decouple ### Organization - `demo-web` has been moved to `demo/web` (#61, !38) - `material` has been moved to `style/material` (#61, !38) - Removed the root package folders for each module (#62, !39) - `opensavvy.decouple.navigation` has been extracted to its own module `core/navigation` (#59, !39) - `opensavvy.decouple.utils` has been extracted to its own module `core/persistence` (#64, !39) - Renamed the `opensavvy.decouple.core.basic` package (#63, !39) - Extracted the color management from `material` to `material-common` (#66, !41) - Extracted the TailwindCSS implementation of `material` to its own module `material-tailwind` (#66, !41) ### Build & deployment - Announce accepted merge requests on our Telegram group (#60, !37) - Fixed invalid source link in material (!39) - Configured the CODEOWNERS file (#71, !40)
-
0.4.1 protected31b4efd0 · ·
Global navigation and filter chips ### Core - Implemented an API for global navigation (#39, !35) ### Material - Implemented FilterChip (#16, !53) - Prototype implementation of the global navigation (#39, !35) ### Demo - Showcase the global navigation (#39, !35)
-
0.4.0 protectedd9c3e9c6 · ·
Decoupling ### Organization - The project is renamed to OpenSavvy Decouple (#44, !31) - Rewrite of the README (#51, !32) - In-depth explanation of the variants pattern (#51, !32) ### Core - Persist information through application restarts using 'persist' (JS-only, #46, !29) - Filter chips' onToggle callback now provides the new value (#47, !30) - Introduced a progress indicator API (#49, !34) ### Navigation - Support for hash-navigation in addition to slash-navigation (#41, !27) ### Demo - Added a page about the text fields (#45, !28) ### Material - Implementations are now 'object'-based instead of being 'interface'-based (#33, !33)
-
0.3.1 protecteda8b029ac · ·
Dependency updates, demo splitting and navigation prototype ### Core - Many dependency updates, including Kotlin 1.7.20 and Compose 1.2.1 (#36, !21) - Let the user override the coroutine scope (#34, !20) - Navigation prototype (#13, !24) ### Demo - Split `demo` into `demo` and `demo-web` (#38, !23) ### Miscellaneous - Fixed broken Dokka link in MRs (#32, !18)
-
0.3.0 protectedcafe5303 · ·
UI & Theme selector ### Core - Replaced the Progression implementation using OpenSavvy Pedestal (#14, !12) - Components bring a custom object into scope to inject behavior into their children (#3, !13) - Lazy columns and rows (#17, !14) - UI and theme selector (#24, !17) ### Deployment - Published the documentation using Dokka (#5, !11) - Published the libraries on the GitLab Maven Registry (#1, !15) - Apache 2.0 license (#28, !16)