Releases: danielsaidi/RichTextKit
1.1.1
1.1.0
This release makes RichTextKit use Swift 6.
This will involve a few breaking changes, but they are so minor that they (hopefully) didn't warrant a major version bump.
Reach out if you think that this version changes too much for a minor bump, or if you see any Swift 6 changes you don't agree with.
✨ Features
RichTextAction
has a newdeleteSelectedText
action.RichTextAction
has a newdeleteText(at:)
action.RichTextAction
has a newreplaceSelectedText(with:)
action.RichTextAction
has a newreplaceText(at:with:)
action.RichTextView
has a newdeleteText(at:)
function.RichTextView.Configuration
has a newisScrollBarsVisible
property for macOS.
💡 Adjustments
- Many protocols now use
@preconcurrency @MainActor
. - All mutable
Image
andColor
extensions are now computed. - All standard style and configuration values are now computed.
🐛 Bug Fixes
RichTextView
only sets image configuration if it's not manually set before.
1.0.0
This release removes all deprecated code and cleans up the library.
✨ Features
- There are new view style and config modifiers for components.
RichTextFormat
is a new namespace with format types and views.RichTextContext
has more intuitive ways to paste text content.RichTextContext
has a new observableparagraphStyle
property.RichTextInsertion
has new static convenience insertion builders.RichTextViewer
is a new SwiftUI view that can be used to view rich text.
🐛 Bug Fixes
RichTextView
no longer resets font and styles when setting up the macOS text view.
💥 Breaking Changes
- All previously deprecated code has been deleted.
- Many localization keys have been renamed to be easier to use.
RichTextContextFocusedValueKey
is renamed toRichTextContext.FocusedValueKey
.RichTextEditor
is now configured and styled with modifiers instead of the init.RichTextFont
pickers are now configured with a shared modifier instead of the init.RichTextFont
size picker is now configured with a shared modifier instead of the init.RichTextFormat
components are now configured with a shared modifier instead of the init.RichTextFormatSheet
has been renamed toRichTextFormat.Sheet
to trim SDK surface area.RichTextFormatSidebar
has been renamed toRichTextFormat.Sidebar
to trim SDK surface area.RichTextFormatToolbar
has been renamed toRichTextFormat.Toolbar
to trim SDK surface area.RichTextLine.SpacingPicker
is now configured with a shared view modifier instead of the init.RichTextKeyboardToolbar
is now configured and styled with two view modifiers instead of the init.
0.9.9
This release adds a lot of new RichTextAction
cases and adjusts the context and coordinator subscription.
This release also deprecates RichTextAttributeReader
and RichTextAttributeWriter
functionality that are not used by the library, in favor of RichTextViewComponent
, to reduce the complexity of the library.
Until now, these functions mostly did the same thing, but sometimes the RichTextViewComponent
have to use its text storage or layout manager, or update the typing attributes. This caused the code to diverge and mostly identical copies had co-exist, where the reader and writer versions were not even used by the library.
By deprecating these functions, we can simplify the library in 1.0, and focus more on unifying the different RichTextViewComponent
implementations (UITextView
in iOS and NSTextView
in macOS), rather than providing a low level string handling interface.
✨ Features
FontRepresentable
has new extensions.RichTextAction
has a newlabel
property.RichTextCommand.ActionButtonGroup
has new inits.RichTextCommand.FormatMenu
is a lot more configurable.RichTextFormatSheet
is now available on all platforms.RichTextFormatSheet
has new configuration and style types.RichTextFormatSidebar
has new configuration and style types.RichTextFormatToolbar
is a new rich text formatting toolbar.RichTextKeyboardToolbar
has a new config to always be shown.RichTextLine
is a new namespace with support for linespacing.RichTextStyle.Button
now supports using custom button styles.RichTextView
has a new theme that lets you define its style.RichTextViewComponent
has a newhasRichTextStyle
function.RichTextViewComponent
has a newtoggleRichTextStyle
function.RichTextViewComponent
now handles superscript changes properly.
🚨 Important
RichTextFormatToolbar
is no longer navigation wrapped by default.RichTextFormatToolbar
has a newasSheet()
function that does this.
💡 Adjustments
RichTextColor
icon
is no longer optional.RichTextColor
has a newtitleKey
property.RichTextContext
makes coordinator handle alignment.RichTextCoordinator
now syncs an extra time at ends editing.
🐛 Bug Fixes
- The library once again builds on visionOS.
RichTextAlignment
now behaves better.RichTextAlignment.Picker
now uses provided values.RichTextCoordinator
now handles indentation changes.
🗑️ Deprecations
RichTextAttributeReader
has deprecated a lot of functions.RichTextAttributeWriter
has deprecated a lot of functions.RichTextCommand.AlignmentOptionsGroup
has been deprecated.RichTextCommand.FontSizeOptionsGroup
has been deprecated.RichTextCommand.IndentOptionsGroup
has been deprecated.RichTextCommand.StyleOptionsGroup
has been deprecated.RichTextCommand.SuperscriptOptionsGroup
has been deprecated.RichTextContext
replaces individual colors with a singlecolors
.RichTextContext
replaces individual styles with a singlestyles
.RichTextContext
userActionPublisher
is renamed toactionPublisher
.RichTextCoordinator
functions callinghandle(_:)
have been deprecated.RichTextFormatSheet
has been renamed toRichTextFormatToolbar
.RTKL10n.bundle
has been deprecated since we can use the.module
bundle.
💥 Breaking Changes
RichTextColor.undefined
was no longer used and has been removed.
0.9.8
This release starts moving types and views that relate to other types into the type namespaces, to make the surface area of the library smaller.
✨ Features
RichTextAlignment.Picker
has a new style parameter.RichTextCommand
is a new namespace for command-related views.RichTextColor.Picker
now shows a quick button to reset the color.RichTextLabelValue
is a new protocol to harmonize label-compatible label values.
💡 Adjustments
- Many value types implement
RichTextLabelValue
to get alabel
property. - All types that implement
RichTextLabelValue
get alabel
that has improved accessibility. RichTextColor
.adjust
now takes an optional color.RichTextColor
.allCases
no longer returnsundefined
.RichTextFormatSheet
no longer hard-codes an accent color.RichTextStyle
views no longer use a style - useforegroundStyle
,tint
andaccentColor
instead.
🐛 Bug Fixes
Image.symbol(...)
removespalette
rendering mode to fix incorrect color scheme behavior.RichTextAlignment.Picker
now hides its picker label.RichTextColor.Picker
no longer auto-adjusts black and white to make it possible to actually set those colors.
🗑️ Deprecations
RichTextAction*
views have been renamed toRichTextAction.Button*
.RichTextAlignment*
views have been renamed toRichTextAlignment.*
.RichTextArgumentReader
deprecates the font name and size functions.RichTextArgumentWriter
deprecates the font name and size functions.RichTextColor*
views have been renamed toRichTextColor.*
.RichTextCommand
views are now nested within the newRichTextCommand
type.RichTextComponent
deprecates the font name and size functions.RichTextDataFormatMenu
has been renamed toRichTextDataFormat.Menu
.RichTextFont*
views have been renamed toRichTextFont.*
.RichTextStyle*
views have been renamed toRichTextStyle.*
.
0.9.7
Thanks to @ropellanda, RichTextKit now supports Vision OS.
Thanks to @screenworker, RichTextEditor now has a config
that can disable scrolling.
✨ Features
Image
has a new rich text-specific image builders.RichTextEditor
has a newconfig
value parameter that can disable scrolling.RichTextView
has a newconfiguration
property that can disable scrolling.
🗑️ Deprecations
RichTextAction
static properties have been deprecated in favor of their corresponding functions.RichTextReader
.richTextRange
has been renamed to.richTextFullRange
.
🐛 Bug Fixes
RichTextAction
corrects some icons and localized strings.RichTextAttributeReader
now userange
correctly insetRichTextSuperscriptLevel
.RichTextCoordinator
now sets correctunderline
color instead offoreground
color.
💥 Breaking Changes
RichTextAttributeReader/Writer
functions now require a range.
0.9.6
Thanks to @DominikBucher12, fonts and pasting images behave a lot better than before!
💡 Adjustments
pasteImage(_:at:moveCursorToPastedContent:)
now usestrue
as default move parameter.
0.9.5
Thanks to @DominikBucher12 and @msrutek-paylocity, some bugs have been fixed and some formatting adjusted.
✨ Features
RichTextColor
has a newattribute
property.RichTextColor
has a newunderline
color.RichTextFormatSheet
has a newcolorPickers
init parameter.RichTextFormatSidebar
has a newcolorPickers
init parameter.
💡 Adjustments
RichTextAttributeReader
now allows providing anil
range.RichTextAttributeWriter
now handlessetRichTextStyle
with a switch.RichTextAttributeWriter
andRichTextViewComponent
shares more code.RichTextFormatSheet
now exposes its init params as mutable properties.RichTextFormatSidebar
now handles keyboard focus way better than before.RichTextFormatSidebar
now exposes its init params as mutable properties.RichTextViewComponent
now handlessetCurrentRichTextStyle
with a switch.RichTextViewComponent
now handlessetCurrentRichTextStyle
with a switch.RichTextViewComponent
uses the new colorattribute
to optimize some code.SwiftFormat
now usesconsecutiveSpaces
.
🐛 Bug Fixes
RichTextAttributeWriter
now handlesstrikethrough
with a switch.RichTextView
now handles initial drag & drop better on iOS.
🗑️ Deprecations
RichTextAttributeReader
color functions are replaced with a singlerichTextColor(_:at:)
.RichTextAttributeWriter
color functions are replaced with a singlesetRichTextColor(_:to:at:)
.
0.9.4
Thanks to @Mcrich23, the RichTextColorPicker
now adjusts foreground and background color for the current color scheme.
✨ Features
RichTextColor
has a new.undefined
type.RichTextColor
has a new color adjust function.RichTextColorPicker
now takes anRichTextColor
.
💡 Adjustments
RichTextColorPicker
now uses the color type icon by default.RichTextColorPicker
now uses the color type color adjustment.
0.9.3
Thanks to @Mcrich23, RichTextKit now supports Mac Catalyst.
Thanks to @msrutek-paylocity the unit tests are in a much better shape.