Skip to content

Conversation

@Sanlorng
Copy link
Collaborator

@Sanlorng Sanlorng commented Nov 15, 2024

Tasks

  • Fix merge conflicts
  • Fix color usage
  • Slider Refactor
  • Update package name

Changelog

Build

  1. More kotlin target support (WASM, JS, iOS), thanks @terrakok ! (Added WASM, JS and iOS support #74 )

Breakinng Change

  1. Change the package name from com.konyaco.fluentto io.github.composefluent
  2. Typo fixed: rename training to trailing ([fluent] [Break Change] rename training to trailing. #62 )
  3. Rename AcrylicContainer to MaterialContainer

Design System

  1. Fluent Design System Elevation support ([fluent] Elevation support #64 )
  2. Material Layer support (Sync master target #77 )
  3. Shell System Color support. ([fluent] feat: Implement system colors #81 )
  4. Update Color System values ([Color] Update Color System & Add Design Guide/ Color #84 )

New Components

  1. FluentTheme.shapes and FluentTheme.cornerRadius ([fluent] Add Geometry to FluentTheme #56 )
  2. Expander, ExpanderItem, ExpanderItemSeparator and CardExpanderItem ([fluent] Add Expander and ExpanderItem. #58 )
  3. PillButton and LiteFilter ([fluent] Add PillButton and LiteFilter. #59 )
  4. SegmentedControl ([fluent] Add SegmentedControl and SegmentedButton. #60 )
  5. AutoSuggestionBox ([fluent] Update TextField API. #61 )
  6. TabRow and TabViewItem ([fluent] Add TabView. #66 )
  7. BreadcrumBar, CommandBar, CommandBarFlyout, TopNav and NavigationView (Components Based on OverflowRow #72 )
  8. MenuBar and OverflowMenuBar ([fluent] feat: Implement MenuBar component #100 )
  9. InfoBar and Badge ([fluent] feat: Add InfoBar and Badge component #97 )
  10. SelectorBar ([fluent] Add SelectorBar component #99 )
  11. TooltipBox ([fluent] Add TooltipBox and FlyoutAnchorScope #90 )
  12. GridViewItem, FlipView and PipsPager. ([fluent] feat: Implement GridViewItem ,FlipView and PipsPager component #98 )
  13. FontIconPrimitives ([fluent] refactor: Migrate to new FontIcon #86 )

Components Update

  1. Add documents.
  2. Refactor Slider([fluent] Refactor Slider component #83, Seperate slider to Slider and BasicSlider #101 )
  3. Refactor TextFieldDecoration(feat: Add SecureTextField component and update TextField #107 )
  4. Add TextField(state: TextFieldState), TextField(value: String) and SecureTexField(state: TextFieldState) overload(feat: Add SecureTextField component and update TextField #107 )
  5. Make Flyout focusable.

Bug fixes

  1. [fluent] Fixed Dialog can't gain focus. #70
  2. Add context menu key modifiers mapping for macOS. #91
  3. Modifier handling on TextField #114

Gallery

  1. Support Windows mica effects and navigate back.([gallery] UI Improve. #57 )
  2. Support custom titlebar in macOS([gallery] Update macOS window frame effect. #115 ).
  3. Add missing components page. ([gallery] Add missing component pages. #92 , [Color] Update Color System & Add Design Guide/ Color #84 )

Sanlorng and others added 30 commits October 28, 2024 19:11
(cherry picked from commit ae4e735)
…imports in the common

(cherry picked from commit 8f6d4f7)
(cherry picked from commit 9d9f310)
(cherry picked from commit fcb5d8d)
(cherry picked from commit b4ce6ca)
(cherry picked from commit 3829f33)
(cherry picked from commit 115d3a7)
(cherry picked from commit 2952227)
(cherry picked from commit 08b9cb1)
(cherry picked from commit 1d0a139)
(cherry picked from commit 045b30c)
(cherry picked from commit 292bf50)
(cherry picked from commit 38014b1)
(cherry picked from commit 69aae4d)
(cherry picked from commit d9400be)
(cherry picked from commit e1af648)
(cherry picked from commit b257b40)
Sanlorng and others added 26 commits June 9, 2025 14:42
…tle_bar

[gallery] Update windows title bar
…rNode`

This commit replaces the deprecated `BringIntoViewResponder` with the new `BringIntoViewModifierNode` in the `TabView` and `LiteFilter` components.

This change aligns with the latest Compose Foundation APIs and improves the implementation of bringing child elements into view within scrollable containers.
Update InfoBar layout to align title using baselines
feat: Add SecureTextField component and update TextField
The `textFieldModifier` was being applied twice in the `BasicTextField` and `BasicSecureTextField` components, once in the `TextField` itself and again within the basic text field implementations. This commit removes the redundant application from the basic text field implementations, as it's already handled in the `TextField` composable.
feat: Add initial date parameter to CalendarDatePickerState
… Popup behavior.

Introduced a `focusable` parameter to the `Flyout`, `MenuFlyout`, and related components to control whether the flyout is focusable. This allows interaction with areas outside the flyout when set to `false`. Updated default focus behavior across components for consistency. Adjusted `FluentDialog` and `Dropdown` to align with the new focusable defaults.
This commit refactors how mouse coordinates are obtained from the `LPARAM` in `ComposeWindowProcedure.kt` and `SkiaLayerWindowProcedure.kt`.

- Introduced `lowWord` and `highWord` extension properties for `Int` in `User32Extend.kt` to simplify extracting X and Y coordinates from `LPARAM`.
- In `ComposeWindowProcedure.kt`, updated `WM_CONTEXTMENU` handling to use the new `lowWord` and `highWord` properties for mouse position.
- In `SkiaLayerWindowProcedure.kt`:
    - Introduced an inline function `useMousePoint` on `WinDef.LPARAM` to encapsulate the logic of converting screen coordinates to client coordinates and providing them to a block.
    - Updated `WM_NCHITTEST` handling to use `useMousePoint` for cleaner coordinate retrieval and processing.
- Removed trailing blank lines in `ComposeWindowProcedure.kt`.
This commit updates several project dependencies:

- **Kotlin:** 2.1.20 -> 2.2.0
- **KSP:** 2.1.20-2.0.0 -> 2.2.0-2.0.2
- **Compose:** 1.8.0 -> 1.8.2
- **Android Gradle Plugin:** 8.10.0
- **Android Build Tools:** 31.7.2
- **Haze:** 1.5.2 -> 1.6.6
- **Window Styler:** 0.3.3-SNAPSHOT
- **Highlights:** 1.0.0
- **Kotlinx Datetime:** 0.6.1 -> 0.7.0
- **JNA:** 5.16.0
- **BuildKonfig:** 0.15.2 -> 0.17.1
- **Maven Publish:** 0.32.0 -> 0.33.0
- **Hot Reload:** 1.0.0-alpha10 -> 1.0.0-beta03
- **Activity Compose:** 1.9.3 -> 1.10.1

Additionally, the `SonatypeHost.CENTRAL_PORTAL` in the Maven publish configuration has been changed to `publishToMavenCentral()`.

The `kotlin.time.ExperimentalTime` annotation has been added to `CalendarDatePicker` and `CalendarView` due to changes in `kotlinx-datetime` and its usage of `kotlin.time.Clock` and `kotlin.time.Instant`. The way month and day are accessed from `LocalDateTime` has also been updated (e.g., `monthNumber` to `month.number`, `dayOfMonth` to `day`).
Add `focusable` parameter to `Flyout` and defaults to `true`
This commit migrates the project to use the `com.android.kotlin.multiplatform.library` plugin, replacing the previous `com.android.library` plugin. This change aligns with the recommended approach for Kotlin Multiplatform projects targeting Android.

Key changes include:

- **Build Plugin:**
    - Updated `build-plugin` to use `com.android.kotlin.multiplatform.library`.
    - Refactored `BuildExtension.kt` to:
        - Use `androidLibrary` for Android-specific configurations.
        - Introduce a `namespaceModule` parameter to `applyTargets` for better namespace management.
        - Handle potential `IllegalStateException` when the Android library plugin is not applied.
        - Renamed source set groups for clarity (e.g., `desktopAndAndroid` to `jvm`, `jsAndWasm` to `web`).
- **Module Build Files:**
    - Replaced `com.android.library` with `com.android.kotlin.multiplatform.library` in `fluent`, `fluent-icons-core`, `fluent-icons-extended`, and `source-generated` modules.
    - Removed explicit `android {}` blocks from these modules as configurations are now handled by `applyTargets` and `androidLibrary`.
    - Simplified `sourceSets` configuration by removing redundant `getting` calls.
- **Root Build File:**
    - Updated plugin alias from `libs.plugins.android.library` to `libs.plugins.android.kotlin.multiplatform.library`.
- **Source File Renaming:**
    - Renamed `jsAndWasmMain` source directories and files to `webMain` for consistency with the source set group renaming.
- **Dependency Updates:**
    - Added `google()` repository to `build-plugin`.
    - Made minor adjustments to dependency declarations for conciseness.
This commit sets `kotlin.js.yarn=false` in `gradle.properties`.
This change is related to an issue where Yarn usage might cause problems.
…napshot build workflow

This commit removes the `update_project_structure` branch from the trigger conditions of the `multiplatform_snapshot_build.yml` GitHub Actions workflow. The workflow will now only trigger on pushes to the `dev` branch.
Fixed: snapshot version
@Konyaco Konyaco self-requested a review August 8, 2025 08:35
@Konyaco Konyaco merged commit 4053f93 into master Aug 10, 2025
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants