RichTextKit is a Swift SDK that helps you use rich text in Swift and SwiftUI.
This release removes all deprecated code and cleans up the library.
RichTextFormat
is a new namespace with format types and views.RichTextContext
has more intuitive ways to paste text content.RichTextContext
has a new observable paragraphStyle
property.RichTextInsertion
has new static convenience insertion builders.RichTextViewer
is a new SwiftUI view that can be used to view rich text.RichTextView
no longer resets font and styles when setting up the macOS text view.RichTextContextFocusedValueKey
is renamed to RichTextContext.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 to RichTextFormat.Sheet
to trim SDK surface area.RichTextFormatSidebar
has been renamed to RichTextFormat.Sidebar
to trim SDK surface area.RichTextFormatToolbar
has been renamed to RichTextFormat.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.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.
FontRepresentable
has new extensions.RichTextAction
has a new label
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 new hasRichTextStyle
function.RichTextViewComponent
has a new toggleRichTextStyle
function.RichTextViewComponent
now handles superscript changes properly.RichTextFormatToolbar
is no longer navigation wrapped by default.RichTextFormatToolbar
has a new asSheet()
function that does this.RichTextColor
icon
is no longer optional.RichTextColor
has a new titleKey
property.RichTextContext
makes coordinator handle alignment.RichTextCoordinator
now syncs an extra time at ends editing.RichTextAlignment
now behaves better.RichTextAlignment.Picker
now uses provided values.RichTextCoordinator
now handles indentation changes.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 single colors
.RichTextContext
replaces individual styles with a single styles
.RichTextContext
userActionPublisher
is renamed to actionPublisher
.RichTextCoordinator
functions calling handle(_:)
have been deprecated.RichTextFormatSheet
has been renamed to RichTextFormatToolbar
.RTKL10n.bundle
has been deprecated since we can use the .module
bundle.RichTextColor.undefined
was no longer used and has been removed.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.
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.RichTextLabelValue
to get a label
property.RichTextLabelValue
get a label
that has improved accessibility.RichTextColor
.adjust
now takes an optional color.RichTextColor
.allCases
no longer returns undefined
.RichTextFormatSheet
no longer hard-codes an accent color.RichTextStyle
views no longer use a style - use foregroundStyle
, tint
and accentColor
instead.Image.symbol(...)
removes palette
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.RichTextAction*
views have been renamed to RichTextAction.Button*
.RichTextAlignment*
views have been renamed to RichTextAlignment.*
.RichTextArgumentReader
deprecates the font name and size functions.RichTextArgumentWriter
deprecates the font name and size functions.RichTextColor*
views have been renamed to RichTextColor.*
.RichTextCommand
views are now nested within the new RichTextCommand
type.RichTextComponent
deprecates the font name and size functions.RichTextDataFormatMenu
has been renamed to RichTextDataFormat.Menu
.RichTextFont*
views have been renamed to RichTextFont.*
.RichTextStyle*
views have been renamed to RichTextStyle.*
.Thanks to @ropellanda, RichTextKit now supports Vision OS.
Thanks to @screenworker, RichTextEditor now has a config
that can disable scrolling.
Image
has a new rich text-specific image builders.RichTextEditor
has a new config
value parameter that can disable scrolling.RichTextView
has a new configuration
property that can disable scrolling.RichTextAction
static properties have been deprecated in favor of their corresponding functions.RichTextReader
.richTextRange
has been renamed to .richTextFullRange
.RichTextAction
corrects some icons and localized strings.RichTextAttributeReader
now use range
correctly in setRichTextSuperscriptLevel
.RichTextCoordinator
now sets correct underline
color instead of foreground
color.RichTextAttributeReader/Writer
functions now require a range.Thanks to @DominikBucher12 and @msrutek-paylocity, some bugs have been fixed and some formatting adjusted.
RichTextColor
has a new attribute
property.RichTextColor
has a new underline
color.RichTextFormatSheet
has a new colorPickers
init parameter.RichTextFormatSidebar
has a new colorPickers
init parameter.RichTextAttributeReader
now allows providing a nil
range.RichTextAttributeWriter
now handles setRichTextStyle
with a switch.RichTextAttributeWriter
and RichTextViewComponent
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 handles setCurrentRichTextStyle
with a switch.RichTextViewComponent
now handles setCurrentRichTextStyle
with a switch.RichTextViewComponent
uses the new color attribute
to optimize some code.SwiftFormat
now uses consecutiveSpaces
.RichTextAttributeWriter
now handles strikethrough
with a switch.RichTextView
now handles initial drag & drop better on iOS.RichTextAttributeReader
color functions are replaced with a single richTextColor(_:at:)
.RichTextAttributeWriter
color functions are replaced with a single setRichTextColor(_:to:at:)
.Thanks to @Mcrich23, the RichTextColorPicker
now adjusts foreground and background color for the current color scheme.
RichTextColor
has a new .undefined
type.RichTextColor
has a new color adjust function.RichTextColorPicker
now takes an RichTextColor
.RichTextColorPicker
now uses the color type icon by default.RichTextColorPicker
now uses the color type color adjustment.Thanks to @Mcrich23, RichTextKit now supports Mac Catalyst.
Thanks to @msrutek-paylocity the unit tests are in a much better shape.
This version adjusts some display issues when changing text style.
This version reverts the .presentationBackgroundInteraction
addition that caused the format sheet to appear behind the keyboard.