RichTextKit Versions Save

RichTextKit is a Swift SDK that helps you use rich text in Swift and SwiftUI.

0.9.0

7 months ago

This version drops support for iOS 14, tvOS 14, macOS 11 and watchOS 7.

This version also consolidates all separate attribute readers and writers into the base attribute reader/writer protocols.

✨ Features

  • RichTextColor is a new enum that defines supported colors that can be set.
  • RichTextColorPicker now works on all platforms.
  • RichTextCommandButton is a new button for commands.
  • RichTextCommandButtonGroup is a new button group for commands.
  • RichTextContext has new enum-based style and color functions.
  • RichTextAttributeReader can handle more colors and superscripting.
  • RichTextAttributeWriter can handle more colors and superscripting.

💡 Adjustments

  • RichTextAttributeReader now has all specific getter functions.
  • RichTextAttributeWriter now has all specific setter functions.
  • RichTextKeyboardToolbar now opens the format sheet in medium size on iPhone.

🗑️ Deprecations

  • All specific attribute reader/writer protocols are deprecated in favor of the base protocols.
  • Many getter/setter functions have been prefixed with richText.
  • RichTextAttributeWriter renames functionality and omits to: param name.
  • RichTextColorPicker initializer has been cleaned up and simplified.
  • RichTextColorPicker.PickerColor has been deprecated.
  • RichTextColorPickerColor has been deprecated.
  • RichTextContext replaces a lot of action-based functions with handle(_:).
  • RichTextIndent has been deprecated.
  • RichTextIndentPicker has been deprecated.
  • RichTextViewComponent and omits to: param name.

💥 Breaking Changes

  • The rich text indent feature has been rewritten to use steps.
  • Some richTextMenu* images are renamed to richTextAction*.
  • RichTextContext replaces a lot of action-based functions with handle(_:).

0.8.0

9 months ago

This version makes the observable trigger properties internal. These properties were never made to be used from the outside, and all have context functions that set them, so use these functions instead.

IMPORTANT The safeRange adjustment may lead to crashes, although I haven't been able to make it crash. If so, investigate. If you use the safe range yourself, to access attributes, make sure to set the new attribute parameter to true. It's hopefully temporary.

✨ Features

  • RichTextContext has a new attributedString property.
  • RichTextContext's paste functions now use the selected range index as default index.

💡 Adjustments

  • RichTextReader safeRange no longer subtracts 1 from the string length.
  • RichTextReader will now move the cursor after the pasted text, if it's pasted at selected range.
  • RichTextViewComponent image pasting has been rewritten.
  • RichTextViewComponent will now clear the selected range when pasting in images using that range.

🐛 Bug Fixes

  • RichTextReader safe range fix makes pasting text at the end behave better.
  • RichTextViewComponent now properly restores the font size after pasting an image.

🗑️ Deprecations

  • RichTextContext trigger properties have been made internal.

0.7.2

11 months ago

This version makes the keyboard toolbar menu prefer fixed menu order.

0.7.1

11 months ago

✨ Features

  • RichTextColorPicker now supports hiding the icon.
  • RichTextColorPicker now supports specifying quick colors.
  • RichTextColorPickerColor is a new enum with curated colors.

💡 Adjustments

  • RichTextFormatSheet adds curated colors to its color pickers.
  • RichTextFormatSidebar adds curated colors to its color pickers.

🗑️ Deprecations

  • RichTextColorPickerStack has been deprecated.

0.7.0

11 months ago

✨ Features

  • RichTextColorPicker now supports hiding the icon.
  • RichTextColorPicker now supports specifying quick colors.
  • RichTextColorPickerColor is a new enum with curated colors.

💡 Adjustments

  • RichTextFormatSheet adds curated colors to its color pickers.
  • RichTextFormatSidebar adds curated colors to its color pickers.

🗑️ Deprecations

  • RichTextColorPickerStack has been deprecated.

0.6.1

11 months ago

This version is a hot fix that fixes some performance issues in 0.6.

✨ Features

  • Thanks to @jamesbradleym, RichTextKit now supports text indentation.

  • Image has new richTextIndentDecrease and richTextIndentIncrease actions.

  • NSTextAttachment has a new attachedImage property.

  • RichTextAction has new increaseIndent and decreaseIndent actions.

  • RichTextActionButtonGroup is a new view that groups multiple action buttons together.

  • RichTextAttributeWriter now supports affecting the entire text by default.

  • RichTextButtonGroup is a new view that groups multiple buttons together.

  • RichTextColorWriter now supports affecting the entire text by default.

  • RichTextContext has new canDecreaseIndent and canIncreaseIndent properties.

  • RichTextContext has new decreaseIndent() and increaseIndent() functions.

  • RichTextContext has new resetAttributedString() and setAttributedString() functions.

  • RichTextFontWriter now supports affecting the entire text by default.

  • RichTextFormatSheet now groups related buttons and also adds indent buttons.

  • RichTextIndent is a new enum for handling text indent changes.

  • RichTextIndentPicker is a new enum for picking a text indent.

  • RichTextIndentReader is a new type for managing text indents.

  • RichTextIndentWriter is a new type for managing text indents.

  • RichTextKeyboardToolbar now supports modofying the format sheet before presenting it.

  • RichTextStyleToggleGroup is a new view that groups multiple toggles together.

  • RichTextStyleWriter now supports affecting the entire text by default.

💡 Adjustments

🐛 Bug Fixes

  • This version fixes a bug where setting up an editor with a text that had image attachments, didn't resize the images until the user typed in the text editor.

💥 Breaking Changes

  • RichTextKeyboardToolbar height and spacing has been moved to RichTextKeyboardToolbarStyle.

0.6.0

11 months ago

✨ Features

  • Thanks to @jamesbradleym, RichTextKit now supports text indentation.

  • Image has new richTextIndentDecrease and richTextIndentIncrease actions.

  • NSTextAttachment has a new attachedImage property.

  • RichTextAction has new increaseIndent and decreaseIndent actions.

  • RichTextActionButtonGroup is a new view that groups multiple action buttons together.

  • RichTextAttributeWriter now supports affecting the entire text by default.

  • RichTextButtonGroup is a new view that groups multiple buttons together.

  • RichTextColorWriter now supports affecting the entire text by default.

  • RichTextContext has new canDecreaseIndent and canIncreaseIndent properties.

  • RichTextContext has new decreaseIndent() and increaseIndent() functions.

  • RichTextContext has new resetAttributedString() and setAttributedString() functions.

  • RichTextFontWriter now supports affecting the entire text by default.

  • RichTextFormatSheet now groups related buttons and also adds indent buttons.

  • RichTextIndent is a new enum for handling text indent changes.

  • RichTextIndentPicker is a new enum for picking a text indent.

  • RichTextIndentReader is a new type for managing text indents.

  • RichTextIndentWriter is a new type for managing text indents.

  • RichTextKeyboardToolbar now supports modofying the format sheet before presenting it.

  • RichTextStyleToggleGroup is a new view that groups multiple toggles together.

  • RichTextStyleWriter now supports affecting the entire text by default.

💡 Adjustments

🐛 Bug Fixes

  • This version fixes a bug where setting up an editor with a text that had image attachments, didn't resize the images until the user typed in the text editor.

💥 Breaking Changes

  • RichTextKeyboardToolbar height and spacing has been moved to RichTextKeyboardToolbarStyle.

0.5.2

1 year ago

🐛 Bug Fixes

  • Initial text color is only applied when setting up rich text with an empty string.

0.5.0

1 year ago

💥 Breaking Changes

  • All deprecated types have been removed.

0.4.0

1 year ago

This release addresses some performance changes, by trying to minimize the number of redraws.

As a result, the RichTextContext's selectedRange is no longer observable, since that caused every input or text position change to redraw the entire app. The library and demo app however still updates way to often, and too much. For instance, switching between having a selected range and not should only redraw the copy button, but now updates the entire screen. If you know how to minimize this, please reach out.

Furthermore, this release adds support for focus values and menu commands. You can see them in action in the demo app.

✨ New Features

  • Commands is a new namespace for app commands.
  • Focus is a new namespace for focus values.
  • RichTextDataFormat has a new fileFormatText property.
  • RichTextDataFormat has a new isArchivedDataFormat property.
  • RichTextDataFormat has a new libraryFormats property that returns all formats except the vendorArchivedData format.
  • RichTextDataFormatMenu is a new menu that triggers an action for various formats.
  • RichTextDataReader now has ways to get data for the current rich text.
  • RichTextExportMenu is a new menu for exporting rich text.
  • RichTextContextFocusedValueKey is a new rich text context focus key.
  • RichTextFormatCommandMenu is a new command menu for adding rich text formatting to the system menu.
  • RichTextNSSharingMenu is a new macOS-specific menu for sharing rich text with NSSharingServices.
  • RichTextShareCommandMenu is a new command menu for adding rich text sharing and exporting to the system menu.
  • RichTextShareMenu is a new menu for sharing rich text.
  • ViewDebug is a new demo app class that is used for view debugging capabilities.
  • The library is now localized in Danish, German and Norwegian, although some translations probably need adjusting.

💡 Behavior changes

  • RichTextCoordinator now checks if properties have changed before it syncs.

🐛 Bug Fixes

  • RichTextKeyboardToolbar no longer allocates width for hidden items.
  • RichTextStyleToggle is no longer tinted by default when inactive.

🗑️ Deprecated

  • PdfDataReader has been renamed to RichTextPdfDataReader.
  • RichTextDataWriter is deprecated.
  • RichTextDataWriter functionality has been moved to RichTextDataReader.

💥 Breaking Changes

  • RichTextContext no longer has a font size in the initializer, use StandardFontSizeProvider (CGFloat, TextEditor etc.) instead.
  • RichTextContext selectedRange is no longer published.
  • RichTextDataReader now implements RichTextReader.
  • RichTextDataReader format-specific data functions have been made private.
  • RichTextStyleToggle.Style inactiveColor is now optional.
  • NSMutableString format-specific initializers have been made private.