Added partial translations for French (fr), Korean (ko), and Russian (ru)
Color editor: Added a dedicated "Set Color" button for colors in the palette list layout
Color editor: Added a random color button
Gradient editor: Added a "Reset" button for gradient precision
Companion: Added settings importing and exporting
API: Added API.IsColorPromptAvailable to check if calling API.PromptForColor will succeed or immediately reject (replaces API.IsColorEditorOpen)
API: Added API.IsGradientPromptAvailable to check if calling API.PromptForGradient will succeed or immediately reject (replaces API.IsGradientEditorOpen)
Script injection is no longer a required plugin permission
Settings: Invalid palettes will no longer cause the entire list of palettes to be removed, just the invalid palettes
Color editor: Duplicating palettes with the same name will now create or increment a counter instead of naming it "Palette (1) (1) (1) ..."
Color Properties: Changing color properties now uses the Recording API
API: Promises from the API no longer cancel if the user closes the prompt, they will now instead reject with PromptError.PromptCancelled
API: For GradientPromptOptions, the type of InitialGradient and the value of GradientType are no longer required to match
API: For ColorPromptOptions, the type of InitialColor and the value of ColorType are no longer required to match
API: The API.PromptError enum has been re-named to API.PromptRejection
API: The API.PromptForColor Promise now rejects with SameAsInitial instead of PromptCancelled if the initial and new colors are the same
API: The API.PromptForGradient Promise now rejects with SameAsInitial instead of PromptCancelled if the initial and new gradients are the same
API: The color tools of ColorPane have been spun off into their own library, and the old method of using ColorPane will no longer work. Please read the Integration page of the documentation for details on the updated integration method.
API: API.PromptForColorSequence (deprecated) now returns a Promise as expected
API: Promises returned by API.PromptForColor will no longer reject when the initial and new colors are the same even though you didn't specify an initial color
API: Promises returned by API.PromptForGradient will no longer reject when the initial and new gradients are the same even though you didn't specify an initial gradient
Holding down either Shift key when selecting the option to delete a palette will now bypass the confirmation dialog
Users can now use the arrow keys to traverse palettes when a color is selected, as well as switch between keypoints in the ColorSequence editor when one is selected
Setting data will now automatically save instead of only when the plugin is unloaded or when the Settings window is closed, with options to disable this or modify the interval in the Settings
Users now have the option to cache the Roblox API data so that Color Properties can be used during testing or offline with the "Cache Roblox API data" setting
Added a gradient palette
Added a toolbar button to summon the Gradient Editor
Added a setting to toggle previewing color changes before applying them when using Color Properties
Fixed a bug that occurred when the API script was modified while the API wasn't loaded
Fixed a bug where trying to use the scroll wheel on the palette page picker would break the palettes page if the user didn't have any User Palettes
Fixed a bug that occurred if Color Properties tried referencing an object property that existed in the API dump but didn't exist on the object, most likely because the Studio and API dump versions were mismatched
Fixed a bug that occurred when a text input was focused and destroyed due to a re-render
API loading is no longer occurs at startup by default, the user must now explicitly load it or set the option to automatically load it in the Settings
Color Properties: You can now click anywhere inside a property list item to edit the color, not just on the item's color indicator
Changed the behaviour of the palette grid double-click shortcut: clicking on the color at any time after it has been selected will set the current color, not just within the amount of time that would be considered a "double click"
When searching for a palette color, if the selected color is included in the filtered list, it will now stay selected instead of being deselected
You will now be asked to input a name before creating new palettes, with the option to disable this in the Settings
The palette naming prompt will now show you what the actual new name will be if the inputted name is already being used
The titles of the editor windows now reset to an identifiable name once they are closed
Setting the initial prompt value when calling PromptForColor no longer causes OnColorChanged to be called
Improved the performance of multiple components, the effects of which will be particularly noticable when resizing editor windows or using the palettes page
The editor page bar in the color editor window now correctly highlights the currently-chosen editor page
Editor pages in the color editor now have the proper minimum width, previously the calculations did not take padding into account and ended up making them slightly smaller than the minimum
Fixed improper behaviour in the color wheel due to some misplaced code: the color value should have updated when the left mouse button was pressed down on the saturation-brightness square, however it occurred when the mouse button was released instead
If you close the Color Properties window while editing a property, the color editor window(s) should now close