Skip to content

[Release] 0.1.0 #82

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 284 commits into
base: master
Choose a base branch
from
Open

[Release] 0.1.0 #82

wants to merge 284 commits into from

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 )

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 September 23, 2024 21:27
[fluent] Fixed `Dialog` can't gain focus.
(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)
Konyaco and others added 30 commits June 5, 2025 23:47
This commit introduces a new optional parameter to the `CalendarDatePickerState` constructor. Users can now specify an initial `instant` (of type `kotlinx.datetime.Instant`) and `timeZone` (of type `kotlinx.datetime.TimeZone`) to set the starting date of the calendar.

If no values are provided, the calendar will default to the current system time and time zone, maintaining the previous behavior.
This commit updates the package names and project identifiers across the codebase.

- The bundle identifier for the iOS app has been changed from `com.konyaco.fluent.gallery.iosApp` to `io.github.composefluent.gallery.iosApp`.
- Package names in the gallery app's IconsScreen and in the contribution guidelines have been updated from `com.konyaco.*` to `io.github.composefluent.*` or `io.github.compose-fluent.*` where appropriate.
- Dependency identifiers in IconsScreen for `fluent-icons-core` and `fluent-icons-extended` have been updated from `com.konyaco:*` to `io.github.compose-fluent:*`.
This commit updates the package name in the `CONTRIBUTION.md` file from `io.github.composefluent.fluent.gallery.screen.basicinput` to `io.github.composefluent.gallery.screen.basicinput`.
[docs](README) Update badges, dependency coordinates, and formatting …
This commit enhances the incremental processing capabilities of the KSP (Kotlin Symbol Processing) for generated source files.

Key changes:
- In `SourceFilePathProcessor` and `IconSourceProcessor`, track the source `KSFile`s that contribute to the generated output.
- When creating new generated files using `codeGenerator.createNewFileByPath`, provide the collected `KSFile`s as dependencies. This allows KSP to better understand the relationship between source and generated files, enabling more efficient incremental builds.
[KSP] Improve incremental processing for generated files
Refactored title alignment logic to utilize FirstBaseline and LastBaseline for improved accuracy. This ensures better vertical positioning of the title relative to constraints and alignment specifications. The change enhances layout precision and maintains consistent display behavior.
This commit introduces the `SecureTextField` component, which is a text input field designed for securely entering private text like passwords. It also updates the `TextField` component with enhanced functionality.

Key changes:

-   **SecureTextField**:
    -   Adds a new `SecureTextField` component that obscures the entered text.
    -   Provides options to customize text obfuscation using `textObfuscationMode` and `textObfuscationCharacter`.
    -   Includes `BasicSecureTextField` for the core text field functionality.
    -   Uses `KeyboardType.Password` by default.
-   **TextField**:
+   **TextField Update**:
     -   Update the `TextField` component and add support `TextFieldState`, `header`, `placeholder`, `trailing`, `leadingIcon`, `clear`.
     -   Refactor `TextField` use new `TextFieldState`.
-   **Sample**:
+   **Gallery Sample**:
     -   Adds a new sample screen that include `SecureTextField` and `TextField` in the Gallery app.
-   Add Password guide in the README.md.
This commit refactors the TextField component by moving the header logic into the `DecorationBox`.

Key changes:

-   The `HeaderContainer` composable is updated to use a custom `Layout` with a `HeaderMeasurePolicy` to correctly measure and position the header and content.
-   The `TextField` and `SecureTextField` composables now pass the `header` directly to the `DecorationBox`.
-   The `DecorationBox` in `TextFieldDefaults` is updated to accept and display the `header`.
-   A new `Container` composable is introduced within `TextFieldDefaults.DecorationBox` to encapsulate the visual styling of the TextField, including border and background.
-   The `modifier` parameter for drawing the bottom line is removed from `TextFieldDefaults.DecorationBox` as this is now handled by the new `Container`.
This update fix support for minimize and close buttons in the Windows UI implementation. Changes include hit testing, layout adjustments, and handling for these buttons, alongside improvements to error handling in layout node hit testing. These updates enhance functionality and robustness of the window management system.
Fix inability to close, minimize or move the Gallery on Windows 11
This commit adds the Compose Hot Reload plugin to the gallery.
[gallery] feat: Add Compose Hot Reload plugin
This commit refactors `LayoutHitTestOwner` and its implementations to align with changes in Compose 1.8. It also updates Proguard rules.

Key changes:

- **LayoutHitTestOwner:**
    - Replaced reflection-based access to `ComposeScene` with `LocalComposeScene.current`.
    - Updated `ReflectLayoutHitTestOwner` to use direct API calls for `LayoutNode` and `HitTestResult` instead of reflection, simplifying the hit-testing logic.
    - `PlatformLayersLayoutHitTestOwner` now directly accesses `mainOwner.owner.root` for hit testing.
    - `CanvasLayersLayoutHitTestOwner` now uses the `_layersCopyCache` field (of type `CopiedList`) directly and casts retrieved owners to `RootNodeOwner`.
- **Proguard Rules:**
    - Added new keep rules for classes and members related to `HoverableNode`, `ScrollableNode`, `PlatformLayersComposeSceneImpl`, `CanvasLayersComposeSceneImpl`, and `CanvasLayersComposeSceneImpl$AttachedComposeSceneLayer` to ensure they are not removed or obfuscated during Proguard processing. This is necessary due to the reflection and internal API usage.
- **Suppressions:**
    - Added `@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE", "DEPRECATED")` to `LayoutHitTestOwner.kt` to handle new API visibility and deprecations.
This commit updates the `ComposeWindowProcedure.kt` to ensure window information (DPI, frame dimensions, and window size) is refreshed during hit testing.

This addresses an issue where hit test results could be incorrect after moving the window to a different monitor by explicitly calling a new `updateWindowInfo()` function within the `hitTest` lambda. The `updateWindowInfo()` function retrieves the latest DPI, system metrics for frame dimensions, and window rectangle.
…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
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.

7 participants