Skip to content

Commit

Permalink
Feat docs (#274)
Browse files Browse the repository at this point in the history
* Add Tooltip view

* Refactor Tooltip style

* Can adjust tooltip position

* Add tooltip playground for testing

* Refine layout tips logic

* Refine layout logic

* Update CharcoalTooltip.swift

* Refine tooltip spacing

* Add CharcoalIdentifiableOverlayView

* Use Actor to prevent Data Race

* Remove CharcoalIdentifiableOverlayView out

* Clean code

* Only update view when it is isPresenting

* Clean access control

* Add TooltipsView

* Fix tooltipY layout logic

* Use main actor and remove CharcoalContainerManagerKey

* Fix access control on CharcoalContainerManager

* Make viewID as @State

* Use EnviromentObject to create CharcoalContainerManager for each container

* Use ObservedObject on  CharcoalContainerManager

* Add use charcoal button as demo trigger

* Add arrow logic on tooltip

* Refine arrow logic

* Refine arrow layout logic

* Use StateObject to prevent unexpected reinit

* Refactor TooltipBubbleShape

* Fix edge layout logic

* Add comment

* Format code

* Use new approach to remove adaptiveMaxWidth

* Fix the tip bubble's position latency

* Add dismiss when interaction

* Reformat

* Add initial Snackbar

* Add thumbnail image

* Add support for thumbnailImage and action

* Clean code

* Reformat code

* Rename ActionContent

* Replace thumbnailImage type

* Add dismissOnTouchOutside control

* Add comment on CharcoalIdentifiableOverlayView

* Update CharcoalTooltip.swift

* Add SnackBar demo

* Replace thumbnail with charcoal logo

* Use @ViewBuilder

* Clean Code

* Made code more readable

* Update ToastsView.swift

* Add auto dismiss logic

* Fix dismiss comment

* Add Identifiable to CharcoalIdentifiableOverlayView

* Make all CharcoalPopupView identifiable

* Move all control logic into CharcoalPopupView

* Reformat

* Refine CharcoalOverlayContainerChild logic of updating view

* Rename to CharcoalOverlayUpdaterContainer

* Add CharcoalToast

* Refine toast control

* Refine screen edge of toast

* Refine comments

* Rename CharcoalPopupProtocol

* Refine isActuallyPresenting logic

* Clean animation

* Add animation configuration

* Add custom animation

* Add CharcoalToastProtocol

* Makes CharcoalSnackBar adapt CharcoalToastProtocol

* Remove time delay

* Refine SnackBar Animation logic

* Add CharcoalToastAnimationModifier

* Reformat code

* Update CharcoalPopupViewEdge of direction

* Refine demo

* Fix missing animation

* Rename charcoalAnimatedToast to charcoalAnimatableToast

* Rename CharcoalAnimatableToastProtocol

* Rename for clean

* Simplify protocols

* Add drag control

* Add Dismiss timer control logic

* Refine drag damping logic

* Add CharcoalToastDraggable

* Use CharcoalToastDraggableModifier on CharcoalSnackBar

* Format code

* Add init structure

* Add action button

* Replace placeholder with ja text

* Use CGPath union for iOS 16

* Update TooltipBubbleShape.swift

* Update CharcoalTooltip.swift

* Use GeometryReader on overlay

* Use new path draw logic

* Refine arrow width

* Refine arrow width

* Clean Code

* Refine preview

* Use timer instead of DispatchQueue

* Refine layout logic

* Refine arrow logic

* Refine layout logic

* Add missing charcoalOverlayContainer

* Add Balloon to examples

* Add default tutorials

* Remove overlay when disappear

* Refine charcoalOverlayContainer place

* Refine

* Update CharcoalSnackBar.swift

* Add Charcoal Hint

* Use surface 3

* Add isPresenting

* Add hints to sample

* Format code

* Init CharcoalTooltipView

* Init Bubble shape

* Refine tooltip preview

* Rename as Charcoal Bubble Shape

* Add Label to tooltip

* Update text frame when traitCollection did change

* Update CharcoalTooltipView.swift

* Add CharcoalTooltip

* Can debug show on method

* Can layout point

* Can redraw target point

* Update CharcoalTooltip.swift

* Refine tooltip display

* Share the logic

* Use interaction mode

* Use CharcoalOverlayContainerView

* Update CharcoalOverlay.swift

* Refactor to ChacoalOverlayManager

* Makes CharcoalIdentifiableOverlayView  Identifiable

* Refine layout logic

* Add display(view: CharcoalIdentifiableOverlayView)

* Add tooltip to uikit example

* Update Tooltips.swift

* Add CharcoalIdentifiableOverlayDelegate

* Reformat

* Update StringExtension.swift

* Add to UIKitSample

* Fix public requirements

* Reformat

* Use touch began to handle dismiss on touch

* Update CharcoalIdentifiableOverlayView.swift

* Add CharcoalToastView

* change cornerRadius

* Add CharcoalToast

* Move show logic out

* Reformat

* Refine dismiss method

* Update CharcoalToast.swift

* Add ActionContent and ActionComplete callback

* Update CharcoalToast.swift

* Update CharcoalBubbleShape_UIKit.swift

* Refine layout animation logic

* Refine animation

* Add dismiss

* Add example

* Reformat

* Add toasts example

* Add CharcoalSnackBarView

* Update project.pbxproj

* Clean code

* Refine layout logic

* Add CharcoalSnackBar

* Update CharcoalSnackBar.swift

* Update CharcoalSnackBar.swift

* Refine layout logic

* Refine toasts text

* Update CharcoalToastDraggableModifier.swift

* Add CharcoalRubberGesture

* use id to notify did dismiss

* Add rubber gesture

* Refactor

* Refactor

* Fix memory leak

* Format

* Fix memory leak

* Add example

* Refine snackbar

* Update project.pbxproj

* Add CharcoalHintView

* Update HintView.swift

* Update HintView.swift

* Add example

* Refine swift lint

* Refactor CharcoalToastView

* Refactor CharcoalSnackBarView

* Reformat

* Refine self logic

* Add buttons and dynamic types

* Add Typographies

* Add tooltip

* Add usage

* Add spinners docs

* Update Spinners.md

* Add charcoal toasts

* Add balloons

* Add textfield

* Add modals

* Fix typo

* Add switches

* Update Modals.md

* Refine dark mode images

* Update project.pbxproj

* Fix case

* Squashed commit of the following:

commit 53e42d7fa0fb4dd9697c031337b3e053f88b3414
Author: Kevin <[email protected]>
Date:   Tue Oct 15 16:32:15 2024 +0900

    Feat SwiftUI Hint (#269)

    * Add Tooltip view

    * Refactor Tooltip style

    * Can adjust tooltip position

    * Add tooltip playground for testing

    * Refine layout tips logic

    * Refine layout logic

    * Update CharcoalTooltip.swift

    * Refine tooltip spacing

    * Add CharcoalIdentifiableOverlayView

    * Use Actor to prevent Data Race

    * Remove CharcoalIdentifiableOverlayView out

    * Clean code

    * Only update view when it is isPresenting

    * Clean access control

    * Add TooltipsView

    * Fix tooltipY layout logic

    * Use main actor and remove CharcoalContainerManagerKey

    * Fix access control on CharcoalContainerManager

    * Make viewID as @State

    * Use EnviromentObject to create CharcoalContainerManager for each container

    * Use ObservedObject on  CharcoalContainerManager

    * Add use charcoal button as demo trigger

    * Add arrow logic on tooltip

    * Refine arrow logic

    * Refine arrow layout logic

    * Use StateObject to prevent unexpected reinit

    * Refactor TooltipBubbleShape

    * Fix edge layout logic

    * Add comment

    * Format code

    * Use new approach to remove adaptiveMaxWidth

    * Fix the tip bubble's position latency

    * Add dismiss when interaction

    * Reformat

    * Add initial Snackbar

    * Add thumbnail image

    * Add support for thumbnailImage and action

    * Clean code

    * Reformat code

    * Rename ActionContent

    * Replace thumbnailImage type

    * Add dismissOnTouchOutside control

    * Add comment on CharcoalIdentifiableOverlayView

    * Update CharcoalTooltip.swift

    * Add SnackBar demo

    * Replace thumbnail with charcoal logo

    * Use @ViewBuilder

    * Clean Code

    * Made code more readable

    * Update ToastsView.swift

    * Add auto dismiss logic

    * Fix dismiss comment

    * Add Identifiable to CharcoalIdentifiableOverlayView

    * Make all CharcoalPopupView identifiable

    * Move all control logic into CharcoalPopupView

    * Reformat

    * Refine CharcoalOverlayContainerChild logic of updating view

    * Rename to CharcoalOverlayUpdaterContainer

    * Add CharcoalToast

    * Refine toast control

    * Refine screen edge of toast

    * Refine comments

    * Rename CharcoalPopupProtocol

    * Refine isActuallyPresenting logic

    * Clean animation

    * Add animation configuration

    * Add custom animation

    * Add CharcoalToastProtocol

    * Makes CharcoalSnackBar adapt CharcoalToastProtocol

    * Remove time delay

    * Refine SnackBar Animation logic

    * Add CharcoalToastAnimationModifier

    * Reformat code

    * Update CharcoalPopupViewEdge of direction

    * Refine demo

    * Fix missing animation

    * Rename charcoalAnimatedToast to charcoalAnimatableToast

    * Rename CharcoalAnimatableToastProtocol

    * Rename for clean

    * Simplify protocols

    * Add drag control

    * Add Dismiss timer control logic

    * Refine drag damping logic

    * Add CharcoalToastDraggable

    * Use CharcoalToastDraggableModifier on CharcoalSnackBar

    * Format code

    * Add init structure

    * Add action button

    * Replace placeholder with ja text

    * Use CGPath union for iOS 16

    * Update TooltipBubbleShape.swift

    * Update CharcoalTooltip.swift

    * Use GeometryReader on overlay

    * Use new path draw logic

    * Refine arrow width

    * Refine arrow width

    * Clean Code

    * Refine preview

    * Use timer instead of DispatchQueue

    * Refine layout logic

    * Refine arrow logic

    * Refine layout logic

    * Add missing charcoalOverlayContainer

    * Add Balloon to examples

    * Add default tutorials

    * Remove overlay when disappear

    * Refine charcoalOverlayContainer place

    * Refine

    * Update CharcoalSnackBar.swift

    * Add Charcoal Hint

    * Use surface 3

    * Add isPresenting

    * Add hints to sample

    * Format code

    * Init CharcoalTooltipView

    * Init Bubble shape

    * Refine tooltip preview

    * Rename as Charcoal Bubble Shape

    * Add Label to tooltip

    * Update text frame when traitCollection did change

    * Update CharcoalTooltipView.swift

    * Add CharcoalTooltip

    * Can debug show on method

    * Can layout point

    * Can redraw target point

    * Update CharcoalTooltip.swift

    * Refine tooltip display

    * Share the logic

    * Use interaction mode

    * Use CharcoalOverlayContainerView

    * Update CharcoalOverlay.swift

    * Refactor to ChacoalOverlayManager

    * Makes CharcoalIdentifiableOverlayView  Identifiable

    * Refine layout logic

    * Add display(view: CharcoalIdentifiableOverlayView)

    * Add tooltip to uikit example

    * Update Tooltips.swift

    * Add CharcoalIdentifiableOverlayDelegate

    * Reformat

    * Update StringExtension.swift

    * Add to UIKitSample

    * Fix public requirements

    * Reformat

    * Use touch began to handle dismiss on touch

    * Update CharcoalIdentifiableOverlayView.swift

    * Add CharcoalToastView

    * change cornerRadius

    * Add CharcoalToast

    * Move show logic out

    * Reformat

    * Refine dismiss method

    * Update CharcoalToast.swift

    * Add ActionContent and ActionComplete callback

    * Update CharcoalToast.swift

    * Update CharcoalBubbleShape_UIKit.swift

    * Refine layout animation logic

    * Refine animation

    * Add dismiss

    * Add example

    * Reformat

    * Add toasts example

    * Add CharcoalSnackBarView

    * Update project.pbxproj

    * Clean code

    * Refine layout logic

    * Add CharcoalSnackBar

    * Update CharcoalSnackBar.swift

    * Update CharcoalSnackBar.swift

    * Refine layout logic

    * Refine toasts text

    * Update CharcoalToastDraggableModifier.swift

    * Add CharcoalRubberGesture

    * use id to notify did dismiss

    * Add rubber gesture

    * Refactor

    * Refactor

    * Fix memory leak

    * Format

    * Fix memory leak

    * Add example

    * Refine snackbar

    * Refine swift lint

    * Refactor CharcoalToastView

    * Refactor CharcoalSnackBarView

    * Reformat

    * Refine self logic

    * Delete スクリーンショット 2024-02-21 17.28.10.png

    * Remove duplicated balloons

    * Delete スクリーンショット 2024-02-21 17.28.10.png

    * Clean extensions

    * Clean CharcoalRubberGesture

    * Delete ConditionalViewModifier.swift

    * Refactor Preview

    * Fix h spacing

    * Fix info16 icon

    * Use CharcoalAction

    * Reformat

    * Omit trailing closure

commit 95af5cc5b2e96da2417eda6a1c4bae426ccbe746
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Oct 15 13:25:09 2024 +0900

    Bump github.com/nicklockwood/swiftformat in /BuildTools (#271)

    Bumps [github.com/nicklockwood/swiftformat](https://github.com/nicklockwood/SwiftFormat) from 0.54.5 to 0.54.6.
    - [Release notes](https://github.com/nicklockwood/SwiftFormat/releases)
    - [Commits](https://github.com/nicklockwood/SwiftFormat/compare/0.54.5...0.54.6)

    ---
    updated-dependencies:
    - dependency-name: github.com/nicklockwood/swiftformat
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit e734c3dc87b39e3c638d0429a227e1706e29dfec
Author: Kevin <[email protected]>
Date:   Tue Oct 15 13:24:56 2024 +0900

    Fix docs build (#270)

    * Fix docs build

    * Update generate_doc.yml

commit e782fd5baca50fdc037d11214369eedcd54e333b
Author: Kevin <[email protected]>
Date:   Wed Oct 9 15:49:28 2024 +0900

    Clean Xcode 16 warning (#266)

    * Reapply "Clean Xcode 16 warning"

    This reverts commit f5c671070279e1c7d13152776a0d5e479b4a30d8.

    * Reformat

    * Use @Previewable to make preview more clean

commit a24e6adb058fe6ddf8a4c0391821657bd88998a9
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Oct 9 13:43:19 2024 +0900

    Bump @babel/runtime from 7.25.6 to 7.25.7 in /scripts/xcasset-gen (#268)

    Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.25.6 to 7.25.7.
    - [Release notes](https://github.com/babel/babel/releases)
    - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/babel/babel/commits/v7.25.7/packages/babel-runtime)

    ---
    updated-dependencies:
    - dependency-name: "@babel/runtime"
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit af55efc1b7544619c88cc6349bc1e81e62152d7e
Author: Kevin <[email protected]>
Date:   Wed Oct 9 13:42:52 2024 +0900

    Feat UIKit Balloon (#252)

    * Add Tooltip view

    * Refactor Tooltip style

    * Can adjust tooltip position

    * Add tooltip playground for testing

    * Refine layout tips logic

    * Refine layout logic

    * Update CharcoalTooltip.swift

    * Refine tooltip spacing

    * Add CharcoalIdentifiableOverlayView

    * Use Actor to prevent Data Race

    * Remove CharcoalIdentifiableOverlayView out

    * Clean code

    * Only update view when it is isPresenting

    * Clean access control

    * Add TooltipsView

    * Fix tooltipY layout logic

    * Use main actor and remove CharcoalContainerManagerKey

    * Fix access control on CharcoalContainerManager

    * Make viewID as @State

    * Use EnviromentObject to create CharcoalContainerManager for each container

    * Use ObservedObject on  CharcoalContainerManager

    * Add use charcoal button as demo trigger

    * Add arrow logic on tooltip

    * Refine arrow logic

    * Refine arrow layout logic

    * Use StateObject to prevent unexpected reinit

    * Refactor TooltipBubbleShape

    * Fix edge layout logic

    * Add comment

    * Format code

    * Use new approach to remove adaptiveMaxWidth

    * Fix the tip bubble's position latency

    * Add dismiss when interaction

    * Reformat

    * Add initial Snackbar

    * Add thumbnail image

    * Add support for thumbnailImage and action

    * Clean code

    * Reformat code

    * Rename ActionContent

    * Replace thumbnailImage type

    * Add dismissOnTouchOutside control

    * Add comment on CharcoalIdentifiableOverlayView

    * Update CharcoalTooltip.swift

    * Add SnackBar demo

    * Replace thumbnail with charcoal logo

    * Use @ViewBuilder

    * Clean Code

    * Made code more readable

    * Update ToastsView.swift

    * Add auto dismiss logic

    * Fix dismiss comment

    * Add Identifiable to CharcoalIdentifiableOverlayView

    * Make all CharcoalPopupView identifiable

    * Move all control logic into CharcoalPopupView

    * Reformat

    * Refine CharcoalOverlayContainerChild logic of updating view

    * Rename to CharcoalOverlayUpdaterContainer

    * Add CharcoalToast

    * Refine toast control

    * Refine screen edge of toast

    * Refine comments

    * Rename CharcoalPopupProtocol

    * Refine isActuallyPresenting logic

    * Clean animation

    * Add animation configuration

    * Add custom animation

    * Add CharcoalToastProtocol

    * Makes CharcoalSnackBar adapt CharcoalToastProtocol

    * Remove time delay

    * Refine SnackBar Animation logic

    * Add CharcoalToastAnimationModifier

    * Reformat code

    * Update CharcoalPopupViewEdge of direction

    * Refine demo

    * Fix missing animation

    * Rename charcoalAnimatedToast to charcoalAnimatableToast

    * Rename CharcoalAnimatableToastProtocol

    * Rename for clean

    * Simplify protocols

    * Add drag control

    * Add Dismiss timer control logic

    * Refine drag damping logic

    * Add CharcoalToastDraggable

    * Use CharcoalToastDraggableModifier on CharcoalSnackBar

    * Format code

    * Add init structure

    * Add action button

    * Replace placeholder with ja text

    * Use CGPath union for iOS 16

    * Update TooltipBubbleShape.swift

    * Update CharcoalTooltip.swift

    * Use GeometryReader on overlay

    * Use new path draw logic

    * Refine arrow width

    * Refine arrow width

    * Clean Code

    * Refine preview

    * Use timer instead of DispatchQueue

    * Refine layout logic

    * Refine arrow logic

    * Refine layout logic

    * Add missing charcoalOverlayContainer

    * Add Balloon to examples

    * Add default tutorials

    * Remove overlay when disappear

    * Refine charcoalOverlayContainer place

    * Refine

    * Update CharcoalSnackBar.swift

    * Init CharcoalTooltipView

    * Init Bubble shape

    * Refine tooltip preview

    * Rename as Charcoal Bubble Shape

    * Add Label to tooltip

    * Update text frame when traitCollection did change

    * Update CharcoalTooltipView.swift

    * Add CharcoalTooltip

    * Can debug show on method

    * Can layout point

    * Can redraw target point

    * Update CharcoalTooltip.swift

    * Refine tooltip display

    * Share the logic

    * Use interaction mode

    * Use CharcoalOverlayContainerView

    * Update CharcoalOverlay.swift

    * Refactor to ChacoalOverlayManager

    * Makes CharcoalIdentifiableOverlayView  Identifiable

    * Refine layout logic

    * Add display(view: CharcoalIdentifiableOverlayView)

    * Add tooltip to uikit example

    * Update Tooltips.swift

    * Add CharcoalIdentifiableOverlayDelegate

    * Reformat

    * Update StringExtension.swift

    * Add to UIKitSample

    * Fix public requirements

    * Reformat

    * Use touch began to handle dismiss on touch

    * Update CharcoalIdentifiableOverlayView.swift

    * Add CharcoalToastView

    * change cornerRadius

    * Add CharcoalToast

    * Move show logic out

    * Reformat

    * Refine dismiss method

    * Update CharcoalToast.swift

    * Add ActionContent and ActionComplete callback

    * Update CharcoalToast.swift

    * Update CharcoalBubbleShape_UIKit.swift

    * Refine layout animation logic

    * Refine animation

    * Add dismiss

    * Add example

    * Reformat

    * Add toasts example

    * Add CharcoalSnackBarView

    * Update project.pbxproj

    * Clean code

    * Refine layout logic

    * Add CharcoalSnackBar

    * Update CharcoalSnackBar.swift

    * Update CharcoalSnackBar.swift

    * Refine layout logic

    * Refine toasts text

    * Update CharcoalToastDraggableModifier.swift

    * Add CharcoalRubberGesture

    * use id to notify did dismiss

    * Add rubber gesture

    * Refactor

    * Refactor

    * Fix memory leak

    * Format

    * Fix memory leak

    * Add example

    * Refine snackbar

    * Refine swift lint

    * Refactor CharcoalToastView

    * Refactor CharcoalSnackBarView

    * Reformat

    * Refine self logic

    * Add initial Balloon

    * Add line stroke

    * Refine radius

    * Fix the baseline alignment

    * Layout balloon elements

    * Clean

    * Add balloon view

    * Update layout logic

    * Refine balloon layout logic

    * Update CharcoalBalloonView.swift

    * Add demo

    * Add anchor view tracking

    * Move logics into updateConstraint

    * Update CharcoalBalloon.swift

    * Reformat code

    * reformat

    * Update formats and documents

    * Clean code

    * Refine documents

    * Update CharcoalBalloon.swift

    * Update CharcoalBalloon.swift

    * Reformat

    * Fix name

    * Fix geometry

    * Revert "Fix geometry"

    This reverts commit a89bf66feb82de8b2da1ba8c242ef4ac09d8f99c.

    * Fix proxy name

    * Adjust unused text

    * Replace charcoal logo

    * Remove conditional modifier

    * Add default dismiss time to toasts

    * Reformat

    * Reformat

    * Fix logo image

    * Fix balloon name

    * Update Balloons.swift

    * Remove CharcoalRubberGesture

    * Remove unused UIColor Extension

    * Clean Code

    * Clean proxy usage

    * Update Package.resolved

    * Add example to dismiss balloons with view

commit 5fdd8e93904ca61461de3de2407cddb2db119e9c
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Sep 24 17:00:40 2024 +0900

    Bump github.com/nicklockwood/swiftformat in /BuildTools (#267)

    Bumps [github.com/nicklockwood/swiftformat](https://github.com/nicklockwood/SwiftFormat) from 0.54.4 to 0.54.5.
    - [Release notes](https://github.com/nicklockwood/SwiftFormat/releases)
    - [Commits](https://github.com/nicklockwood/SwiftFormat/compare/0.54.4...0.54.5)

    ---
    updated-dependencies:
    - dependency-name: github.com/nicklockwood/swiftformat
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 5ccd42a771c78ada65f9df4d2ab9a59afe813639
Author: Kevin <[email protected]>
Date:   Tue Sep 10 16:39:50 2024 +0900

    Clean @warn_unqualified_access (#265)

    * clean warn_unqualified_access

    * Revert "clean warn_unqualified_access"

    This reverts commit 9613620b0a69ebbe68f921eccbecb8848c6658b5.

    * Reformat

commit f5c671070279e1c7d13152776a0d5e479b4a30d8
Author: Kevin <[email protected]>
Date:   Tue Sep 10 15:49:51 2024 +0900

    Revert "Clean Xcode 16 warning"

    This reverts commit 7168c655bf805ecb18615eacb48c3886daed3498.

commit 7168c655bf805ecb18615eacb48c3886daed3498
Author: Kevin <[email protected]>
Date:   Tue Sep 10 15:46:16 2024 +0900

    Clean Xcode 16 warning

commit 3725d99ac16403c4239895831180e5ab54977993
Author: Kevin <[email protected]>
Date:   Tue Sep 10 15:05:55 2024 +0900

    Feat SwiftUI Balloon (#251)

    * Add Tooltip view

    * Refactor Tooltip style

    * Can adjust tooltip position

    * Add tooltip playground for testing

    * Refine layout tips logic

    * Refine layout logic

    * Update CharcoalTooltip.swift

    * Refine tooltip spacing

    * Add CharcoalIdentifiableOverlayView

    * Use Actor to prevent Data Race

    * Remove CharcoalIdentifiableOverlayView out

    * Clean code

    * Only update view when it is isPresenting

    * Clean access control

    * Add TooltipsView

    * Fix tooltipY layout logic

    * Use main actor and remove CharcoalContainerManagerKey

    * Fix access control on CharcoalContainerManager

    * Make viewID as @State

    * Use EnviromentObject to create CharcoalContainerManager for each container

    * Use ObservedObject on  CharcoalContainerManager

    * Add use charcoal button as demo trigger

    * Add arrow logic on tooltip

    * Refine arrow logic

    * Refine arrow layout logic

    * Use StateObject to prevent unexpected reinit

    * Refactor TooltipBubbleShape

    * Fix edge layout logic

    * Add comment

    * Format code

    * Use new approach to remove adaptiveMaxWidth

    * Fix the tip bubble's position latency

    * Add dismiss when interaction

    * Reformat

    * Add initial Snackbar

    * Add thumbnail image

    * Add support for thumbnailImage and action

    * Clean code

    * Reformat code

    * Rename ActionContent

    * Replace thumbnailImage type

    * Add dismissOnTouchOutside control

    * Add comment on CharcoalIdentifiableOverlayView

    * Update CharcoalTooltip.swift

    * Add SnackBar demo

    * Replace thumbnail with charcoal logo

    * Use @ViewBuilder

    * Clean Code

    * Made code more readable

    * Update ToastsView.swift

    * Add auto dismiss logic

    * Fix dismiss comment

    * Add Identifiable to CharcoalIdentifiableOverlayView

    * Make all CharcoalPopupView identifiable

    * Move all control logic into CharcoalPopupView

    * Reformat

    * Refine CharcoalOverlayContainerChild logic of updating view

    * Rename to CharcoalOverlayUpdaterContainer

    * Add CharcoalToast

    * Refine toast control

    * Refine screen edge of toast

    * Refine comments

    * Rename CharcoalPopupProtocol

    * Refine isActuallyPresenting logic

    * Clean animation

    * Add animation configuration

    * Add custom animation

    * Add CharcoalToastProtocol

    * Makes CharcoalSnackBar adapt CharcoalToastProtocol

    * Remove time delay

    * Refine SnackBar Animation logic

    * Add CharcoalToastAnimationModifier

    * Reformat code

    * Update CharcoalPopupViewEdge of direction

    * Refine demo

    * Fix missing animation

    * Rename charcoalAnimatedToast to charcoalAnimatableToast

    * Rename CharcoalAnimatableToastProtocol

    * Rename for clean

    * Simplify protocols

    * Add drag control

    * Add Dismiss timer control logic

    * Refine drag damping logic

    * Add CharcoalToastDraggable

    * Use CharcoalToastDraggableModifier on CharcoalSnackBar

    * Format code

    * Add init structure

    * Add action button

    * Replace placeholder with ja text

    * Use CGPath union for iOS 16

    * Update TooltipBubbleShape.swift

    * Update CharcoalTooltip.swift

    * Use GeometryReader on overlay

    * Use new path draw logic

    * Refine arrow width

    * Refine arrow width

    * Clean Code

    * Refine preview

    * Use timer instead of DispatchQueue

    * Refine layout logic

    * Refine arrow logic

    * Refine layout logic

    * Add missing charcoalOverlayContainer

    * Add Balloon to examples

    * Add default tutorials

    * Remove overlay when disappear

    * Refine charcoalOverlayContainer place

    * Refine

    * Update CharcoalSnackBar.swift

    * Init CharcoalTooltipView

    * Init Bubble shape

    * Refine tooltip preview

    * Rename as Charcoal Bubble Shape

    * Add Label to tooltip

    * Update text frame when traitCollection did change

    * Update CharcoalTooltipView.swift

    * Add CharcoalTooltip

    * Can debug show on method

    * Can layout point

    * Can redraw target point

    * Update CharcoalTooltip.swift

    * Refine tooltip display

    * Share the logic

    * Use interaction mode

    * Use CharcoalOverlayContainerView

    * Update CharcoalOverlay.swift

    * Refactor to ChacoalOverlayManager

    * Makes CharcoalIdentifiableOverlayView  Identifiable

    * Refine layout logic

    * Add display(view: CharcoalIdentifiableOverlayView)

    * Add tooltip to uikit example

    * Update Tooltips.swift

    * Add CharcoalIdentifiableOverlayDelegate

    * Reformat

    * Update StringExtension.swift

    * Add to UIKitSample

    * Fix public requirements

    * Reformat

    * Use touch began to handle dismiss on touch

    * Update CharcoalIdentifiableOverlayView.swift

    * Add CharcoalToastView

    * change cornerRadius

    * Add CharcoalToast

    * Move show logic out

    * Reformat

    * Refine dismiss method

    * Update CharcoalToast.swift

    * Add ActionContent and ActionComplete callback

    * Update CharcoalToast.swift

    * Update CharcoalBubbleShape_UIKit.swift

    * Refine layout animation logic

    * Refine animation

    * Add dismiss

    * Add example

    * Reformat

    * Add toasts example

    * Add CharcoalSnackBarView

    * Update project.pbxproj

    * Clean code

    * Refine layout logic

    * Add CharcoalSnackBar

    * Update CharcoalSnackBar.swift

    * Update CharcoalSnackBar.swift

    * Refine layout logic

    * Refine toasts text

    * Update CharcoalToastDraggableModifier.swift

    * Add CharcoalRubberGesture

    * use id to notify did dismiss

    * Add rubber gesture

    * Refactor

    * Refactor

    * Fix memory leak

    * Format

    * Fix memory leak

    * Add example

    * Refine snackbar

    * Refine swift lint

    * Refactor CharcoalToastView

    * Refactor CharcoalSnackBarView

    * Reformat

    * Refine self logic

    * Reformat

    * Fix name

    * Fix geometry

    * Revert "Fix geometry"

    This reverts commit a89bf66feb82de8b2da1ba8c242ef4ac09d8f99c.

    * Fix proxy name

    * Adjust unused text

    * Replace charcoal logo

    * Remove conditional modifier

    * Add default dismiss time to toasts

    * Reformat

    * Reformat

    * Fix logo image

    * Fix balloon name

    * Remove CharcoalRubberGesture

    * Remove unused UIColor Extension

    * Clean Code

    * Clean proxy usage

    * Update Package.resolved

commit 40a982f5a87d1c4bb5b1f4fc292c2f49963e3e6d
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Sep 10 14:54:24 2024 +0900

    Bump github.com/nicklockwood/swiftformat in /BuildTools (#264)

    Bumps [github.com/nicklockwood/swiftformat](https://github.com/nicklockwood/SwiftFormat) from 0.54.3 to 0.54.4.
    - [Release notes](https://github.com/nicklockwood/SwiftFormat/releases)
    - [Commits](https://github.com/nicklockwood/SwiftFormat/compare/0.54.3...0.54.4)

    ---
    updated-dependencies:
    - dependency-name: github.com/nicklockwood/swiftformat
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit f2990c90cc26cb5e027dac06e62c627388bac91e
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Sep 10 14:54:12 2024 +0900

    Bump github.com/realm/swiftlint from 0.56.2 to 0.57.0 in /BuildTools (#263)

    Bumps [github.com/realm/swiftlint](https://github.com/realm/SwiftLint) from 0.56.2 to 0.57.0.
    - [Release notes](https://github.com/realm/SwiftLint/releases)
    - [Commits](https://github.com/realm/SwiftLint/compare/0.56.2...0.57.0)

    ---
    updated-dependencies:
    - dependency-name: github.com/realm/swiftlint
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit e5f593223f269fbbea277feeb5d261a6719fe26b
Author: Kevin <[email protected]>
Date:   Wed Sep 4 14:56:00 2024 +0900

    Fix dark mode support (#261)

    * Fix tooltip demo cell label dark mode

    * Fix dark mode enable logic

    * Use color to fix dynmaic color on iOS 17

    * Fix iOS 17 cgColor manually update

    * Fix traitCollectionDidChange

    * Fix cgColorUsage

    * Clean code

    * Reformat code

commit 1e0a061df0eb62bfd9beb4c0ab78405686545616
Author: Kevin <[email protected]>
Date:   Tue Sep 3 16:23:31 2024 +0800

    Refine auto dismiss to make it easier to test (#262)

    * Makes toast shows longer

    * Increase to 4 seconds

commit 23b472b7e128286f0ec1b98102973307c41f3eb2
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Sep 3 14:44:06 2024 +0900

    Bump @babel/runtime from 7.25.4 to 7.25.6 in /scripts/xcasset-gen (#260)

    Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.25.4 to 7.25.6.
    - [Release notes](https://github.com/babel/babel/releases)
    - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/babel/babel/commits/v7.25.6/packages/babel-runtime)

    ---
    updated-dependencies:
    - dependency-name: "@babel/runtime"
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 55a9659bb86ba0b900e18933796f1054438adb95
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Aug 30 15:54:02 2024 +0900

    Bump micromatch from 4.0.5 to 4.0.8 in /scripts/xcasset-gen (#259)

    Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.5 to 4.0.8.
    - [Release notes](https://github.com/micromatch/micromatch/releases)
    - [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/micromatch/compare/4.0.5...4.0.8)

    ---
    updated-dependencies:
    - dependency-name: micromatch
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 387fe9217b96c6321a8b5766e18cbbdcf531ac26
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Aug 27 10:18:54 2024 +0800

    Bump github.com/realm/swiftlint from 0.56.1 to 0.56.2 in /BuildTools (#258)

    Bumps [github.com/realm/swiftlint](https://github.com/realm/SwiftLint) from 0.56.1 to 0.56.2.
    - [Release notes](https://github.com/realm/SwiftLint/releases)
    - [Commits](https://github.com/realm/SwiftLint/compare/0.56.1...0.56.2)

    ---
    updated-dependencies:
    - dependency-name: github.com/realm/swiftlint
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit b56f347aff10f91815c7e52a50a3694abbab3a0c
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Aug 27 10:18:44 2024 +0800

    Bump @babel/runtime from 7.25.0 to 7.25.4 in /scripts/xcasset-gen (#257)

    Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.25.0 to 7.25.4.
    - [Release notes](https://github.com/babel/babel/releases)
    - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/babel/babel/commits/v7.25.4/packages/babel-runtime)

    ---
    updated-dependencies:
    - dependency-name: "@babel/runtime"
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 3ef31c3c3d50b0dd3e5c19bd858738ca942a2a68
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Aug 27 10:18:33 2024 +0800

    Bump @octokit/rest from 21.0.1 to 21.0.2 in /scripts/create-pull-request (#256)

    Bumps [@octokit/rest](https://github.com/octokit/rest.js) from 21.0.1 to 21.0.2.
    - [Release notes](https://github.com/octokit/rest.js/releases)
    - [Commits](https://github.com/octokit/rest.js/compare/v21.0.1...v21.0.2)

    ---
    updated-dependencies:
    - dependency-name: "@octokit/rest"
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit a4d9c27441f1414e41d62c38fe524152a1d6b47e
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Aug 14 13:49:31 2024 +0800

    Bump github.com/realm/swiftlint from 0.55.1 to 0.56.1 in /BuildTools (#255)

    Bumps [github.com/realm/swiftlint](https://github.com/realm/SwiftLint) from 0.55.1 to 0.56.1.
    - [Release notes](https://github.com/realm/SwiftLint/releases)
    - [Commits](https://github.com/realm/SwiftLint/compare/0.55.1...0.56.1)

    ---
    updated-dependencies:
    - dependency-name: github.com/realm/swiftlint
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit ce38d640e33c6fc3756fe605a7748485aff663eb
Author: Kevin <[email protected]>
Date:   Wed Aug 7 15:24:27 2024 +0800

    Feat UIKit Toast (#250)

    * Add Tooltip view

    * Refactor Tooltip style

    * Can adjust tooltip position

    * Add tooltip playground for testing

    * Refine layout tips logic

    * Refine layout logic

    * Update CharcoalTooltip.swift

    * Refine tooltip spacing

    * Add CharcoalIdentifiableOverlayView

    * Use Actor to prevent Data Race

    * Remove CharcoalIdentifiableOverlayView out

    * Clean code

    * Only update view when it is isPresenting

    * Clean access control

    * Add TooltipsView

    * Fix tooltipY layout logic

    * Use main actor and remove CharcoalContainerManagerKey

    * Fix access control on CharcoalContainerManager

    * Make viewID as @State

    * Use EnviromentObject to create CharcoalContainerManager for each container

    * Use ObservedObject on  CharcoalContainerManager

    * Add use charcoal button as demo trigger

    * Add arrow logic on tooltip

    * Refine arrow logic

    * Refine arrow layout logic

    * Use StateObject to prevent unexpected reinit

    * Refactor TooltipBubbleShape

    * Fix edge layout logic

    * Add comment

    * Format code

    * Use new approach to remove adaptiveMaxWidth

    * Fix the tip bubble's position latency

    * Add dismiss when interaction

    * Reformat

    * Add initial Snackbar

    * Add thumbnail image

    * Add support for thumbnailImage and action

    * Clean code

    * Reformat code

    * Rename ActionContent

    * Replace thumbnailImage type

    * Add dismissOnTouchOutside control

    * Add comment on CharcoalIdentifiableOverlayView

    * Update CharcoalTooltip.swift

    * Add SnackBar demo

    * Replace thumbnail with charcoal logo

    * Use @ViewBuilder

    * Clean Code

    * Made code more readable

    * Update ToastsView.swift

    * Add auto dismiss logic

    * Fix dismiss comment

    * Add Identifiable to CharcoalIdentifiableOverlayView

    * Make all CharcoalPopupView identifiable

    * Move all control logic into CharcoalPopupView

    * Reformat

    * Refine CharcoalOverlayContainerChild logic of updating view

    * Rename to CharcoalOverlayUpdaterContainer

    * Add CharcoalToast

    * Refine toast control

    * Refine screen edge of toast

    * Refine comments

    * Rename CharcoalPopupProtocol

    * Refine isActuallyPresenting logic

    * Clean animation

    * Add animation configuration

    * Add custom animation

    * Add CharcoalToastProtocol

    * Makes CharcoalSnackBar adapt CharcoalToastProtocol

    * Remove time delay

    * Refine SnackBar Animation logic

    * Add CharcoalToastAnimationModifier

    * Reformat code

    * Update CharcoalPopupViewEdge of direction

    * Refine demo

    * Fix missing animation

    * Rename charcoalAnimatedToast to charcoalAnimatableToast

    * Rename CharcoalAnimatableToastProtocol

    * Rename for clean

    * Simplify protocols

    * Add drag control

    * Add Dismiss timer control logic

    * Refine drag damping logic

    * Add CharcoalToastDraggable

    * Use CharcoalToastDraggableModifier on CharcoalSnackBar

    * Format code

    * Init CharcoalTooltipView

    * Init Bubble shape

    * Refine tooltip preview

    * Rename as Charcoal Bubble Shape

    * Add Label to tooltip

    * Update text frame when traitCollection did change

    * Update CharcoalTooltipView.swift

    * Add CharcoalTooltip

    * Can debug show on method

    * Can layout point

    * Can redraw target point

    * Update CharcoalTooltip.swift

    * Refine tooltip display

    * Share the logic

    * Use interaction mode

    * Use CharcoalOverlayContainerView

    * Update CharcoalOverlay.swift

    * Refactor to ChacoalOverlayManager

    * Makes CharcoalIdentifiableOverlayView  Identifiable

    * Refine layout logic

    * Add display(view: CharcoalIdentifiableOverlayView)

    * Add tooltip to uikit example

    * Update Tooltips.swift

    * Add CharcoalIdentifiableOverlayDelegate

    * Reformat

    * Update StringExtension.swift

    * Add to UIKitSample

    * Fix public requirements

    * Reformat

    * Use touch began to handle dismiss on touch

    * Update CharcoalIdentifiableOverlayView.swift

    * Add CharcoalToastView

    * change cornerRadius

    * Add CharcoalToast

    * Move show logic out

    * Reformat

    * Refine dismiss method

    * Update CharcoalToast.swift

    * Add ActionContent and ActionComplete callback

    * Update CharcoalToast.swift

    * Update CharcoalBubbleShape_UIKit.swift

    * Refine layout animation logic

    * Refine animation

    * Add dismiss

    * Add example

    * Reformat

    * Add toasts example

    * Add CharcoalSnackBarView

    * Update project.pbxproj

    * Clean code

    * Refine layout logic

    * Add CharcoalSnackBar

    * Update CharcoalSnackBar.swift

    * Update CharcoalSnackBar.swift

    * Refine layout logic

    * Refine toasts text

    * Update CharcoalToastDraggableModifier.swift

    * Add CharcoalRubberGesture

    * use id to notify did dismiss

    * Add rubber gesture

    * Refactor

    * Refactor

    * Fix memory leak

    * Format

    * Fix memory leak

    * Add example

    * Refine snackbar

    * Refine swift lint

    * Refactor CharcoalToastView

    * Refactor CharcoalSnackBarView

    * Reformat

    * Refine self logic

    * Reformat

    * Fix name

    * Fix geometry

    * Revert "Fix geometry"

    This reverts commit a89bf66feb82de8b2da1ba8c242ef4ac09d8f99c.

    * Fix proxy name

    * Adjust unused text

    * Replace charcoal logo

    * Remove conditional modifier

    * Add default dismiss time to toasts

    * Reformat

    * Fix logo image

    * Move imageWithColor out of shared

    * Refine toast with action callback

    * Clean code

    * Refine toasts looking

    * Reformat

    * Update CharcoalToast.swift

    * Refine gesture animator

    * Rename toast as snackbar

    * Remove deinit

commit 5c0761b147c2f7c60737c211930ef38ed5c052ee
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Aug 6 14:52:23 2024 +0800

    Bump @babel/runtime from 7.24.8 to 7.25.0 in /scripts/xcasset-gen (#253)

    Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.24.8 to 7.25.0.
    - [Release notes](https://github.com/babel/babel/releases)
    - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/babel/babel/commits/v7.25.0/packages/babel-runtime)

    ---
    updated-dependencies:
    - dependency-name: "@babel/runtime"
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 5a64efd6f7117faa4a212f0986b7f7e54434bbb9
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Aug 6 14:51:54 2024 +0800

    Bump github.com/nicklockwood/swiftformat in /BuildTools (#254)

    Bumps [github.com/nicklockwood/swiftformat](https://github.com/nicklockwood/SwiftFormat) from 0.54.1 to 0.54.3.
    - [Release notes](https://github.com/nicklockwood/SwiftFormat/releases)
    - [Commits](https://github.com/nicklockwood/SwiftFormat/compare/0.54.1...0.54.3)

    ---
    updated-dependencies:
    - dependency-name: github.com/nicklockwood/swiftformat
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit b238c37e0cbcebccaf2e5be4cdaad466624f73f3
Author: Kevin <[email protected]>
Date:   Wed Jul 24 14:03:52 2024 +0800

    Feat SwiftUI Toast (#245)

    * Add Tooltip view

    * Refactor Tooltip style

    * Can adjust tooltip position

    * Add tooltip playground for testing

    * Refine layout tips logic

    * Refine layout logic

    * Update CharcoalTooltip.swift

    * Refine tooltip spacing

    * Add CharcoalIdentifiableOverlayView

    * Use Actor to prevent Data Race

    * Remove CharcoalIdentifiableOverlayView out

    * Clean code

    * Only update view when it is isPresenting

    * Clean access control

    * Add TooltipsView

    * Fix tooltipY layout logic

    * Use main actor and remove CharcoalContainerManagerKey

    * Fix access control on CharcoalContainerManager

    * Make viewID as @State

    * Use EnviromentObject to create CharcoalContainerManager for each container

    * Use ObservedObject on  CharcoalContainerManager

    * Add use charcoal button as demo trigger

    * Add arrow logic on tooltip

    * Refine arrow logic

    * Refine arrow layout logic

    * Use StateObject to prevent unexpected reinit

    * Refactor TooltipBubbleShape

    * Fix edge layout logic

    * Add comment

    * Format code

    * Use new approach to remove adaptiveMaxWidth

    * Fix the tip bubble's position latency

    * Add dismiss when interaction

    * Reformat

    * Add initial Snackbar

    * Add thumbnail image

    * Add support for thumbnailImage and action

    * Clean code

    * Reformat code

    * Rename ActionContent

    * Replace thumbnailImage type

    * Add dismissOnTouchOutside control

    * Add comment on CharcoalIdentifiableOverlayView

    * Update CharcoalTooltip.swift

    * Add SnackBar demo

    * Replace thumbnail with charcoal logo

    * Use @ViewBuilder

    * Clean Code

    * Made code more readable

    * Update ToastsView.swift

    * Add auto dismiss logic

    * Fix dismiss comment

    * Add Identifiable to CharcoalIdentifiableOverlayView

    * Make all CharcoalPopupView identifiable

    * Move all control logic into CharcoalPopupView

    * Reformat

    * Refine CharcoalOverlayContainerChild logic of updating view

    * Rename to CharcoalOverlayUpdaterContainer

    * Add CharcoalToast

    * Refine toast control

    * Refine screen edge of toast

    * Refine comments

    * Rename CharcoalPopupProtocol

    * Refine isActuallyPresenting logic

    * Clean animation

    * Add animation configuration

    * Add custom animation

    * Add CharcoalToastProtocol

    * Makes CharcoalSnackBar adapt CharcoalToastProtocol

    * Remove time delay

    * Refine SnackBar Animation logic

    * Add CharcoalToastAnimationModifier

    * Reformat code

    * Update CharcoalPopupViewEdge of direction

    * Refine demo

    * Fix missing animation

    * Rename charcoalAnimatedToast to charcoalAnimatableToast

    * Rename CharcoalAnimatableToastProtocol

    * Rename for clean

    * Simplify protocols

    * Add drag control

    * Add Dismiss timer control logic

    * Refine drag damping logic

    * Add CharcoalToastDraggable

    * Use CharcoalToastDraggableModifier on CharcoalSnackBar

    * Format code

    * Init CharcoalTooltipView

    * Init Bubble shape

    * Refine tooltip preview

    * Rename as Charcoal Bubble Shape

    * Add Label to tooltip

    * Update text frame when traitCollection did change

    * Update CharcoalTooltipView.swift

    * Add CharcoalTooltip

    * Can debug show on method

    * Can layout point

    * Can redraw target point

    * Update CharcoalTooltip.swift

    * Refine tooltip display

    * Share the logic

    * Use interaction mode

    * Use CharcoalOverlayContainerView

    * Update CharcoalOverlay.swift

    * Refactor to ChacoalOverlayManager

    * Makes CharcoalIdentifiableOverlayView  Identifiable

    * Refine layout logic

    * Add display(view: CharcoalIdentifiableOverlayView)

    * Add tooltip to uikit example

    * Update Tooltips.swift

    * Add CharcoalIdentifiableOverlayDelegate

    * Reformat

    * Update StringExtension.swift

    * Add to UIKitSample

    * Fix public requirements

    * Reformat

    * Use touch began to handle dismiss on touch

    * Update CharcoalIdentifiableOverlayView.swift

    * Move show logic out

    * Reformat

    * Refine dismiss method

    * Add ActionContent and ActionComplete callback

    * Update CharcoalBubbleShape_UIKit.swift

    * Reformat

    * Fix name

    * Fix geometry

    * Revert "Fix geometry"

    This reverts commit a89bf66feb82de8b2da1ba8c242ef4ac09d8f99c.

    * Fix proxy name

    * Adjust unused text

    * Replace charcoal logo

    * Remove conditional modifier

    * Add default dismiss time to toasts

    * Reformat

commit 5cfd721f2d891de56496de3e953f6b5819279899
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Jul 23 12:41:23 2024 +0800

    Bump @octokit/rest from 21.0.0 to 21.0.1 in /scripts/create-pull-request (#249)

    Bumps [@octokit/rest](https://github.com/octokit/rest.js) from 21.0.0 to 21.0.1.
    - [Release notes](https://github.com/octokit/rest.js/releases)
    - [Commits](https://github.com/octokit/rest.js/compare/v21.0.0...v21.0.1)

    ---
    updated-dependencies:
    - dependency-name: "@octokit/rest"
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 9e3a42da1f52f70c9d0a68f2af5d43972da5a934
Author: Kevin <[email protected]>
Date:   Tue Jul 23 13:41:03 2024 +0900

    Feat tooltip unit test (#246)

    * Add tooltip unit test

    * Reformat

commit dc8b1de207b5c1ffe7aee4ee7d67b31f1ec8f900
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Jul 16 13:10:22 2024 +0800

    Bump github.com/nicklockwood/swiftformat in /BuildTools (#248)

    Bumps [github.com/nicklockwood/swiftformat](https://github.com/nicklockwood/SwiftFormat) from 0.54.0 to 0.54.1.
    - [Release notes](https://github.com/nicklockwood/SwiftFormat/releases)
    - [Commits](https://github.com/nicklockwood/SwiftFormat/compare/0.54.0...0.54.1)

    ---
    updated-dependencies:
    - dependency-name: github.com/nicklockwood/swiftformat
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit d79cae70c5255b904db21f6942d39a09d6bf94ce
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Jul 16 13:10:11 2024 +0800

    Bump @babel/runtime from 7.24.7 to 7.24.8 in /scripts/xcasset-gen (#247)

    Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.24.7 to 7.24.8.
    - [Release notes](https://github.com/babel/babel/releases)
    - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/babel/babel/commits/v7.24.8/packages/babel-runtime)

    ---
    updated-dependencies:
    - dependency-name: "@babel/runtime"
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit babc0d47b6a25af5c75677274a4c4090865ad5fc
Author: Kevin <[email protected]>
Date:   Wed Jul 10 16:43:29 2024 +0900

    Feat UIKit Tooltip (#232)

    * Add Tooltip view

    * Refactor Tooltip style

    * Can adjust tooltip position

    * Add tooltip playground for testing

    * Refine layout tips logic

    * Refine layout logic

    * Update CharcoalTooltip.swift

    * Refine tooltip spacing

    * Add CharcoalIdentifiableOverlayView

    * Use Actor to prevent Data Race

    * Remove CharcoalIdentifiableOverlayView out

    * Clean code

    * Only update view when it is isPresenting

    * Clean access control

    * Add TooltipsView

    * Fix tooltipY layout logic

    * Use main actor and remove CharcoalContainerManagerKey

    * Fix access control on CharcoalContainerManager

    * Make viewID as @State

    * Use EnviromentObject to create CharcoalContainerManager for each container

    * Use ObservedObject on  CharcoalContainerManager

    * Add use charcoal button as demo trigger

    * Add arrow logic on tooltip

    * Refine arrow logic

    * Refine arrow layout logic

    * Use StateObject to prevent unexpected reinit

    * Refactor TooltipBubbleShape

    * Fix edge layout logic

    * Add comment

    * Format code

    * Use new approach to remove adaptiveMaxWidth

    * Fix the tip bubble's position latency

    * Add dismiss when interaction

    * Reformat

    * Init CharcoalTooltipView

    * Init Bubble shape

    * Refine tooltip preview

    * Rename as Charcoal Bubble Shape

    * Add Label to tooltip

    * Update text frame when traitCollection did change

    * Update CharcoalTooltipView.swift

    * Add CharcoalTooltip

    * Can debug show on method

    * Can layout point

    * Can redraw target point

    * Update CharcoalTooltip.swift

    * Refine tooltip display

    * Share the logic

    * Use interaction mode

    * Use CharcoalOverlayContainerView

    * Update CharcoalOverlay.swift

    * Refactor to ChacoalOverlayManager

    * Makes CharcoalIdentifiableOverlayView  Identifiable

    * Refine layout logic

    * Add display(view: CharcoalIdentifiableOverlayView)

    * Add tooltip to uikit example

    * Update Tooltips.swift

    * Add CharcoalIdentifiableOverlayDelegate

    * Reformat

    * Update StringExtension.swift

    * Add to UIKitSample

    * Fix public requirements

    * Reformat

    * Use touch began to handle dismiss on touch

    * Update CharcoalIdentifiableOverlayView.swift

    * Move show logic out

    * Reformat

    * Refine dismiss method

    * Add ActionContent and ActionComplete callback

    * Update CharcoalBubbleShape_UIKit.swift

    * Make use of Autolayout logic

    * Reformat

    * Refine deinit

    * Move config cell to TooltipTableViewCell

    * guard backgroundView == nil

    * Remove public of ChacoalOverlayManager

    * Make tooltipXY private

    * Reformat

    * refactor backgroundView

commit 5da0586ec659d14f048cd46f29eb75c329f59ea4
Author: Kevin <[email protected]>
Date:   Tue Jul 9 15:45:14 2024 +0900

    Update swiftlint from kwzr (#244)

commit 7f77d3f77e9e3abb3a08a9c12542e987f81d59d8
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Jul 3 16:48:37 2024 +0900

    Bump globby from 14.0.1 to 14.0.2 in /scripts/xcasset-gen (#242)

    Bumps [globby](https://github.com/sindresorhus/globby) from 14.0.1 to 14.0.2.
    - [Release notes](https://github.com/sindresorhus/globby/releases)
    - [Commits](https://github.com/sindresorhus/globby/compare/v14.0.1...v14.0.2)

    ---
    updated-dependencies:
    - dependency-name: globby
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 4f48445bf6a0ca4cf5d0033cabf5c8095e085e04
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Jun 25 14:39:18 2024 +0900

    Bump @octokit/rest from 20.1.1 to 21.0.0 in /scripts/create-pull-request (#241)

    Bumps [@octokit/rest](https://github.com/octokit/rest.js) from 20.1.1 to 21.0.0.
    - [Release notes](https://github.com/octokit/rest.js/releases)
    - [Commits](https://github.com/octokit/rest.js/compare/v20.1.1...v21.0.0)

    ---
    updated-dependencies:
    - dependency-name: "@octokit/rest"
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 9e4120412ee234d1298524bbad63b28a03b323d0
Author: Kevin <[email protected]>
Date:   Tue Jun 25 14:08:01 2024 +0900

    Feat SwiftUI Tooltip (#231)

    * Add Tooltip view

    * Refactor Tooltip style

    * Can adjust tooltip position

    * Add tooltip playground for testing

    * Refine layout tips logic

    * Refine layout logic

    * Update CharcoalTooltip.swift

    * Refine tooltip spacing

    * Add CharcoalIdentifiableOverlayView

    * Use Actor to prevent Data Race

    * Remove CharcoalIdentifiableOverlayView out

    * Clean code

    * Only update view when it is isPresenting

    * Clean access control

    * Add TooltipsView

    * Fix tooltipY layout logic

    * Use main actor and remove CharcoalContainerManagerKey

    * Fix access control on CharcoalContainerManager

    * Make viewID as @State

    * Use EnviromentObject to create CharcoalContainerManager for each container

    * Use ObservedObject on  CharcoalContainerManager

    * Add use charcoal button as demo trigger

    * Add arrow logic on tooltip

    * Refine arrow logic

    * Refine arrow layout logic

    * Use StateObject to prevent unexpected reinit

    * Refactor TooltipBubbleShape

    * Fix edge layout logic

    * Add comment

    * Format code

    * Use new approach to remove adaptiveMaxWidth

    * Fix the tip bubble's position latency

    * Add dismiss when interaction

    * Reformat

    * Fix public requirements

    * Rename all as proxy

commit 8ca7890cb6329782cb7aac5672cf00c85bf3bcaf
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Jun 18 17:32:19 2024 +0900

    Bump github.com/nicklockwood/swiftformat in /BuildTools (#239)

    Bumps [github.com/nicklockwood/swiftformat](https://github.com/nicklockwood/SwiftFormat) from 0.53.10 to 0.54.0.
    - [Release notes](https://github.com/nicklockwood/SwiftFormat/releases)
    - [Commits](https://github.com/nicklockwood/SwiftFormat/compare/0.53.10...0.54.0)

    ---
    updated-dependencies:
    - dependency-name: github.com/nicklockwood/swiftformat
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 09d369d79a099d8495d4712683e5f6eefdf978e3
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Jun 18 14:39:42 2024 +0900

    Bump @babel/runtime from 7.24.6 to 7.24.7 in /scripts/xcasset-gen (#240)

    Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.24.6 to 7.24.7.
    - [Release notes](https://github.com/babel/babel/releases)
    - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/babel/babel/commits/v7.24.7/packages/babel-runtime)

    ---
    updated-dependencies:
    - dependency-name: "@babel/runtime"
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit b7b97a914fdd36141f460b22308545146199f89f
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Jun 18 14:39:11 2024 +0900

    Bump braces from 3.0.2 to 3.0.3 in /scripts/xcasset-gen (#235)

    Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
    - [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

    ---
    updated-dependencies:
    - dependency-name: braces
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit fd813f45d4162a4fca5b5108e38837f90d974b92
Author: Kevin <[email protected]>
Date:   Tue Jun 18 14:38:45 2024 +0900

    override overrideUserInterfaceStyle (#236)

commit 5f670cadeb5e34889ab621ecd9b8b642a39ef864
Author: Kevin <[email protected]>
Date:   Wed Jun 12 21:13:25 2024 +0900

    Revert "Bump @babel/runti…
  • Loading branch information
kevinneko authored Nov 19, 2024
1 parent 0dd1853 commit 5344c48
Show file tree
Hide file tree
Showing 37 changed files with 502 additions and 24 deletions.
38 changes: 14 additions & 24 deletions Sources/Charcoal/Charcoal.docc/Charcoal.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,30 +9,20 @@ PIXIV Design System
alt: "A technology icon representing the Charcoal framework.")
}

## Usage

### SwiftUI

```swift
Text("Hello")
.charcoalTypography20Bold()

Button("OK") {}
.charcoalPrimaryButton(size: .medium)
```

### UIKit

Storyboardとコードから利用可能です。

```swift
let label = CharcoalTypography20()
label.isBold = true
label.text = "Hello"

let button = CharcoalPrimaryMButton()
button.setTitle("OK", for: .normal)
```
### Featured

@Links(visualStyle: detailedGrid) {
- <doc:Typographies>
- <doc:Buttons>
- <doc:Tooltips>
- <doc:Spinners>
- <doc:Toasts>
- <doc:Balloons>
- <doc:Textfields>
- <doc:Modals>
- <doc:Hints>
- <doc:Switch>
}

### Installation

Expand Down
25 changes: 25 additions & 0 deletions Sources/Charcoal/Charcoal.docc/Components/Balloons.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Charocal Balloons

Charcoal Balloons are designed to show a message in a balloon-shaped container.

@Metadata {
@PageImage(
purpose: card,
source: "Balloon",
alt: "Charcoal Balloons are designed to show a message in a balloon-shaped container.")
}


## Usage

### SwiftUI

```swift
VStack {}
.charcoalBalloon(isPresenting: $isPresenting, text: "Hello", dismissAfter: 2)
```

## Topics

### Creating SwiftUI Balloons
- ``SwiftUI/View/charcoalBalloon(isPresenting:text:dismissAfter:action:)``
48 changes: 48 additions & 0 deletions Sources/Charcoal/Charcoal.docc/Components/Buttons.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Charocal Buttons

Charcoal Buttons are designed to be used in a variety of contexts and are highly customizable.

@Metadata {
@PageImage(
purpose: card,
source: "Buttons",
alt: "Charcoal buttons are designed to be used in a variety of contexts and are highly customizable.")
}

## Usage

### SwiftUI Buttons

```swift
Button("Primary Button") {}
.charcoalPrimaryButton()
```

### UIKit Buttons

```swift
let button = CharcoalPrimaryMButton()
```

## Topics

### Creating SwiftUI buttons

- ``SwiftUI/View/charcoalPrimaryButton(size:isFixed:primaryColor:)``
- ``SwiftUI/View/charcoalDefaultButton(size:isFixed:)``
- ``SwiftUI/View/charcoalDefaultOverlayButton(size:isFixed:)``
- ``SwiftUI/View/charcoalLinkButton()``
- ``SwiftUI/View/charcoalNavigationButton(size:isFixed:)``

### Creating UIKit buttons

- ``CharcoalDefaultMButton``
- ``CharcoalDefaultSButton``
- ``CharcoalDefaultOverlayMButton``
- ``CharcoalDefaultOverlaySButton``
- ``CharcoalLinkButton``
- ``CharcoalNavigationMButton``
- ``CharcoalNavigationSButton``
- ``CharcoalPrimaryMButton``
- ``CharcoalPrimarySButton``
- ``CharcoalSwitchingButton``
37 changes: 37 additions & 0 deletions Sources/Charcoal/Charcoal.docc/Components/Hints.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Charocal Hints

Charcoal Hints are designed to display in page hints and tips to the user.

@Metadata {
@PageImage(
purpose: card,
source: "Hints",
alt: "Charcoal Hints are designed to display in page hints and tips to the user.")
}

## Usage

### SwiftUI Hints

```swift
CharcoalHint(text: "ヒントテキストヒントテキスト", isPresenting: $isPresenting2)
```

### UIKit Hints

```swift
let hintView = CharcoalHintView(text: "ブックマークしました", action: CharcoalAction(title: "編集", actionCallback: {
print("編集 taped")
}))
```

## Topics

### Creating SwiftUI Hints

- ``CharcoalHint``


### Creating UIKit Hints

- ``CharcoalHintView``
44 changes: 44 additions & 0 deletions Sources/Charcoal/Charcoal.docc/Components/Modals.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Charocal Modals

Charcoal Modals are designed to show a message in a modal container.

@Metadata {
@PageImage(
purpose: card,
source: "Modals",
alt: "Charcoal Modals are designed to show a message in a modal container.")
}

## Usage

### SwiftUI

```swift
.charcoalModal(
title: "Title",
style: .center,
isPresented: $isPresented,
actions: {
Button(action: {
isPresented = false
}, label: {
Text("OK").frame(maxWidth: .infinity)
}).charcoalPrimaryButton(size: .medium)

Button(action: {
isPresented = false
}, label: {
Text("Dismiss").frame(maxWidth: .infinity)
}).charcoalDefaultButton(size: .medium)
}
) {
Text("Hello This is a center dialog from Charcoal")
}

```

## Topics

### Creating SwiftUI Modals

- ``SwiftUI/View/charcoalModal(title:style:tapBackgroundToDismiss:duration:maxWidth:isPresented:actions:content:)``
36 changes: 36 additions & 0 deletions Sources/Charcoal/Charcoal.docc/Components/Spinners.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Charocal Spinners

Charcoal Spinners are designed to display a loading state.

@Metadata {
@PageImage(
purpose: card,
source: "Spinners",
alt: "Charcoal spinners are designed to display a loading state.")
}

## Usage

### SwiftUI Spinners

```swift
VStack {}
.charcoalSpinner(isLoading: $isLoading)
```

### UIKit Spinners

```swift
CharcoalSpinner.show(spinnerSize: .medium, transparentBackground: true, interactionPassthrough: true, on: view)
```

## Topics

### Creating SwiftUI Spinners

- ``SwiftUI/View/charcoalSpinner(isPresenting:spinnerSize:transparentBackground:interactionPassthrough:)``

### Creating UIKit Spinners

- ``CharcoalSpinner/show(spinnerSize:transparentBackground:interactionPassthrough:on:)``
- ``CharcoalSpinner/dismiss()``
38 changes: 38 additions & 0 deletions Sources/Charcoal/Charcoal.docc/Components/Switch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Charocal Switches

Charcoal Switches are designed to allow the user to toggle between two states.

@Metadata {
@PageImage(
purpose: card,
source: "Switch",
alt: "Charcoal Switches are designed to allow the user to toggle between two states.")
}

## Usage

### SwiftUI Toggle

```swift
Toggle(isOn: $vibrateOnRing) {
Text("Vibrate on Ring")
}
.charcoalToggle()
```

### UIKit Switch

```swift
let button = CharcoalSwitch()
```

## Topics

### Creating SwiftUI Toggle

- ``SwiftUI/View/charcoalToggle()``


### Creating UIKit Switch

- ``CharcoalSwitch``
39 changes: 39 additions & 0 deletions Sources/Charcoal/Charcoal.docc/Components/Textfields.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Charocal TextFields

Charcoal Textfields are designed to be used in a variety of contexts and are highly customizable.

@Metadata {
@PageImage(
purpose: card,
source: "TextFields",
alt: "Charcoal Textfields are designed to be used in a variety of contexts and are highly customizable.")
}

## Usage

### SwiftUI

```swift
TextField("", text: .constant("Text"))
.charcoalTextField(
label: .constant("Label"),
countLabel: .constant("0/10"),
assistiveText: .constant("Assistive text")
)
```

### UIKit

```swift
let textField = CharcoalTextField()
```

## Topics

### Creating SwiftUI TextFields

- ``SwiftUI/View/charcoalTextField(label:countLabel:assistiveText:hasError:)``

### Creating UIKit TextFields

- ``CharcoalTextField``
57 changes: 57 additions & 0 deletions Sources/Charcoal/Charcoal.docc/Components/Toasts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Charocal Toasts

Charcoal Toasts can be used to display a message and Snackbar to the user.

@Metadata {
@PageImage(
purpose: card,
source: "Toasts",
alt: "Charcoal Toasts can be used to display a message and Snackbar to the user.")
}

## Usage

### SwiftUI Toasts

```swift
VStack {}
.charcoalToast(isPresenting: $isPresenting, text: "Hello", dismissAfter: 2)
```

### SwiftUI Snackbars

```swift
VStack {}
.charcoalSnackbar(isPresenting: $isPresenting, text: "Hello", dismissAfter: 2)
```

### UIKit Toasts

```swift
CharcoalToast.show(text: "Hello", on: view)
```

### UIKit Snackbars

```swift
CharcoalSnackBar.show(text: "Hello", on: view)
```

## Topics

### Creating SwiftUI Toasts

- ``SwiftUI/View/charcoalToast(isPresenting:screenEdge:screenEdgeSpacing:text:dismissAfter:appearance:animationConfiguration:action:)``

### Creating SwiftUI Snackbars

- ``SwiftUI/View/charcoalSnackBar(isPresenting:screenEdge:screenEdgeSpacing:text:thumbnailImage:dismissAfter:action:)``


### Creating UIKit Toasts

- ``CharcoalToast``

### Creating UIKit Snackbars

- ``CharcoalSnackBar``
Loading

0 comments on commit 5344c48

Please sign in to comment.