FluidFramework/.changeset
Tony Murphy d54b9dde14
SharedString DDS annotateAdjustRange (#22751)
This update introduces a new feature to the `SharedString` DDS, allowing
for the adjustment of properties over a specified range. The
`annotateAdjustRange` method enables users to apply adjustments to
properties within a given range, providing more flexibility and control
over property modifications.

An adjustment is a modification applied to a property value within a
specified range. Adjustments can be used to increment or decrement
property values dynamically. They are particularly useful in scenarios
where property values need to be updated based on user interactions or
other events. For example, in a rich text editor, adjustments can be
used for modifying indentation levels or font sizes, where multiple
users could apply differing numerical adjustments.

### Key Features and Use Cases:
- **Adjustments with Constraints**: Adjustments can include optional
minimum and maximum constraints to ensure the final value falls within
specified bounds. This is particularly useful for maintaining consistent
formatting in rich text editors.
- **Consistent Property Changes**: The feature ensures that property
changes are consistent, managing both local and remote changes
effectively. This is essential for collaborative rich text editing where
multiple users may be making adjustments simultaneously.
- **Rich Text Formatting**: Adjustments can be used to modify text
properties such as font size, indentation, or other formatting
attributes dynamically based on user actions.

### Configuration and Compatibility Requirements:
This feature is only available when the configuration
`Fluid.Sequence.mergeTreeEnableAnnotateAdjust` is set to `true`.
Additionally, all collaborating clients must have this feature enabled
to use it. If any client does not have this feature enabled, it will
lead to the client exiting collaboration. A future major version of
Fluid will enable this feature by default.

### Usage Example:
```typescript
sharedString.annotateAdjustRange(start, end, {
    key: { value: 5, min: 0, max: 10 }
});
```


[AB#11819](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/11819)

---------

Co-authored-by: Tyler Butler <tylerbu@microsoft.com>
2024-11-15 13:21:18 -08:00
..
README.md
config.json
fifty-showers-divide.md
fruity-sites-boil.md
full-places-know.md
icy-webs-help.md
loud-lemons-switch.md
lovely-taxis-notice.md
moody-flies-fly.md
nice-flies-brake.md
ninety-dragons-fold.md
rude-views-bake.md
stinky-cars-fart.md
twenty-cameras-take.md

README.md

Changesets

This folder contains changesets, which are markdown files that hold two key bits of information:

  1. a version type (following semver), and
  2. change information to be added to a changelog. You can find the full documentation for it in the changesets section of our wiki or in the official changesets documentation.

There is also a list of frequently asked questions in the wiki.

Updating changelogs from changesets

See flub generate changelog, which is built on top of @fluid-private/changelog-generator.