|
1 | | -# Change log |
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [Unreleased] |
| 9 | + |
| 10 | +### Added |
| 11 | + |
| 12 | +#### Common |
| 13 | + |
| 14 | +- Add `ExperimentalApi` and `LikelyInconsistentApi` opt-in annotations. |
| 15 | +- Add `VerticalScrollColumn`, `HorizontalScrollRow`, `VerticalScrollBox`, and `HorizontalScrollBox` scrolling layout composables in the `layout.ext` package as replacements for the scroll modifiers (#95). |
| 16 | +- Initially add common text styling types (`SpanStyle`, `FontStyle`, `FontWeight`, `TextDecoration`, `TextAlign`, `TextOverflow`, `TextUnit`) and styled text composable overloads with `AnnotatedString` support (`buildAnnotatedString`, `withStyle`) (#124). |
| 17 | +- Use `ResizeObserver` to react to size changes on JS DOM in `BoxWithConstraints` (#51). |
| 18 | + |
| 19 | +#### Material 3 |
| 20 | + |
| 21 | +- Add unified wrapper components for remaining Material 3 components based on [Compose HTML Material](https://github.com/huanshankeji/compose-html-material) [PR #21](https://github.com/huanshankeji/compose-html-material/pull/21) and [PR #32](https://github.com/huanshankeji/compose-html-material/pull/32) (which depends on [maicol07/material-web-additions](https://github.com/maicol07/material-web-additions)) (#70, #72): |
| 22 | + - badge: `Badge` (deprecated) in `ext` |
| 23 | + - chip: `AssistChip`, `FilterChip`, `InputChip`, `SuggestionChip` (and elevated variants) in `ext` |
| 24 | + - dialog: `AlertDialog` and `SimpleDialog` |
| 25 | + - divider: `HorizontalDivider` |
| 26 | + - navigation drawer: `ModalNavigationDrawer` (deprecated, may be replaced with navigation rails in the future) |
| 27 | + - radio button: `RadioButton`, and `RadioButtonRow` and `radioGroup` in `ext`, like the existing ones for Material 2 |
| 28 | + - segmented button: `SingleChoiceSegmentedButtonRow`, `MultiChoiceSegmentedButtonRow`, and scoped `SegmentedButton` in `ext` |
| 29 | + - select: `FilledSelect`, `OutlinedSelect`, and `SelectOption` in `ext` |
| 30 | + - slider: `Slider` and `RangeSlider` |
| 31 | + - tab: `PrimaryTabRow`, `SecondaryTabRow`, and `PrimaryTab`, `SecondaryTab` in `ext` |
| 32 | +- Add the snackbar composables `SnackbarHost`, `SnackbarHostState`, and related types (`SnackbarVisuals`, `SnackbarData`, `SnackbarResult`, `SnackbarDuration`), similar to those for Material 2 (#91, #98). |
| 33 | +- Add the top app bar composables `TopAppBar`, `CenterAlignedTopAppBar`, `MediumTopAppBar`, `LargeTopAppBar` in `ext` (#91, #94). |
| 34 | +- Add the `Scaffold` composable with `FabPosition` enum (#103, #105). |
| 35 | + |
| 36 | +#### Material Icons |
| 37 | + |
| 38 | +- Support all common material icons with core and extended icon modules (#123). |
| 39 | + |
| 40 | +#### Navigation |
| 41 | + |
| 42 | +- Save the ViewModel states on JS DOM, especially during navigation (#55). |
| 43 | + |
| 44 | +#### ViewModel |
| 45 | + |
| 46 | +- Copy and adapt more ViewModel code from Compose Multiplatform, supporting `LocalViewModelStoreOwner` on JS DOM (#55). |
| 47 | + |
| 48 | +### Changed |
| 49 | + |
| 50 | +- Bump dependencies to the latest. |
| 51 | + - Kotlin 2.3.20 |
| 52 | + - Compose Multiplatform 1.10.3 |
| 53 | + - Kobweb 0.24.0 |
| 54 | + - Compose HTML Material 0.5.0 |
| 55 | + - AGP 8.12.3 |
| 56 | + - Gradle 9.4.1 |
| 57 | + - JVM toolchain 17 |
| 58 | + - Android SDK 36 |
| 59 | +- No longer publish the Material 2 module for release due to its decreasing popularity and the underlying KMDC library's incompatible Kotlin and Compose versions (kept for reference purposes). |
| 60 | +- Remove the Maven repository for Kobweb since it's published to Maven Central now. |
| 61 | +- Remove the `iosX64` targets. |
| 62 | +- Support ES2015 compilation target for JS DOM by replacing `require()` with ES module imports. |
| 63 | +- Use `Arrangement.spacedBy` from Kobweb (commit 53ff09f4d2aacfa7ec82c6afb6cfb352e8cc5e3a). |
| 64 | + |
| 65 | +### Deprecated |
| 66 | + |
| 67 | +- Deprecate the `Modifier.verticalScroll` and `Modifier.horizontalScroll` modifiers for external use. Use `VerticalScrollBox`/`VerticalScrollColumn` and `HorizontalScrollBox`/`HorizontalScrollRow` instead (#95). |
| 68 | +- Deprecate `ModalNavigationDrawer` upon review (may be replaced with navigation rails in the future). |
| 69 | + |
| 70 | +### Fixed |
| 71 | + |
| 72 | +- Fix `BoxWithConstraints` to react to size changes on JS DOM using `ResizeObserver` and fix its display issues (#51). |
| 73 | +- Fix `Column` component hiding content on JS DOM by moving max constraints from `imitateComposeUiLayout` to scroll modifiers (#95). |
| 74 | +- Fix typos in deprecation messages, comments, and CHANGELOG dates (#122). |
| 75 | + |
| 76 | +### Internal |
| 77 | + |
| 78 | +#### Added |
| 79 | + |
| 80 | +##### Documentation and Tooling |
| 81 | + |
| 82 | +- Add API documentation generated by Dokka hosted on [GitHub Pages](https://huanshankeji.github.io/compose-multiplatform-html-unified/) (#43). |
| 83 | +- Split GitHub Pages site into landing page, API docs, and side-by-side demo (#116). |
| 84 | +- Add `.github/copilot-instructions.md` for repository onboarding (#62, #65). |
| 85 | +- Add `AGENTS.md` and `copilot-setup-steps.yml`. |
| 86 | +- Add manual `api-dump` workflow on macOS (#128). |
| 87 | + |
| 88 | +#### Changed |
| 89 | + |
| 90 | +- Enable Gradle Configuration Cache (commit f0017ee475477c566d8a04d9280d8cd8d3052ee7). |
| 91 | +- Bump Dokka to 2.1.0 (#43). |
| 92 | +- Enable `kotlin.native.enableKlibsCrossCompilation` (commit 624955ddec49db603af36d52930d4a1417729059). |
| 93 | +- Refactor CI to use extracted actions (#57). |
| 94 | +- Port Maven publishing migration (#113). |
| 95 | +- Code clean-up: nullable composable patterns, null equality, trailing commas (#93). |
| 96 | +- Onboard with GitHub Copilot (#62, #65). |
| 97 | + |
| 98 | +#### Fixed |
| 99 | + |
| 100 | +- Fix the issue that `withAndroidTarget` was put in the wrong `group` in `applyDefaultHierarchyTemplate` (f13a85a). |
2 | 101 |
|
3 | 102 | ## v0.5.0 / 2024-12-05 |
4 | 103 |
|
@@ -77,3 +176,5 @@ Support Material 3. See the Updated README.md for more details. |
77 | 176 | ## v0.2.0 / 2024-04-17 |
78 | 177 |
|
79 | 178 | The project now depends on Kobweb Silk on Kotlin/JS (Compose HTML) and there is a universal multiplatform interface for `Modifier`, scopes, etc. akin to those in `androidx.compose`. Obsolete code including `ModifierOrAttrsScope` is moved to a legacy module. |
| 179 | + |
| 180 | +[Unreleased]: https://github.com/huanshankeji/compose-multiplatform-html-unified/compare/v0.5.0...HEAD |
0 commit comments