Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: statusButton requires provided aria-label #6430

Merged
merged 102 commits into from
Apr 29, 2024

Conversation

jordanl17
Copy link
Member

@jordanl17 jordanl17 commented Apr 19, 2024

Description

statusButton generic aria-label was not specific enough in all usages. This PR makes aria-label a required prop on statusButton and defines all current usages a value

What to review

The only ambiguous usage is in packages/sanity/src/structure/components/pane/PaneHeaderActionButton.tsx where the fallback has been the original label used in statusButton

Testing

Notes for release

Fixes ambiguous aria-labels on some Status buttons

Copy link

vercel bot commented Apr 19, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
performance-studio ✅ Ready (Inspect) Visit Preview Apr 29, 2024 11:23am
test-next-studio ✅ Ready (Inspect) Visit Preview 💬 Add feedback Apr 29, 2024 11:23am
test-studio ✅ Ready (Inspect) Visit Preview 💬 Add feedback Apr 29, 2024 11:23am
1 Ignored Deployment
Name Status Preview Comments Updated (UTC)
studio-workshop ⬜️ Ignored (Inspect) Visit Preview Apr 29, 2024 11:23am

Copy link
Contributor

No changes to documentation

Copy link
Contributor

github-actions bot commented Apr 19, 2024

Component Testing Report Updated Apr 29, 2024 11:23 AM (UTC)

File Status Duration Passed Skipped Failed
comments/CommentInput.spec.tsx ✅ Passed (Inspect) 39s 15 0 0
formBuilder/ArrayInput.spec.tsx ✅ Passed (Inspect) 6s 3 0 0
formBuilder/inputs/PortableText/Annotations.spec.tsx ✅ Passed (Inspect) 26s 6 0 0
formBuilder/inputs/PortableText/copyPaste/CopyPaste.spec.tsx ✅ Passed (Inspect) 20s 6 3 0
formBuilder/inputs/PortableText/Decorators.spec.tsx ✅ Passed (Inspect) 13s 6 0 0
formBuilder/inputs/PortableText/FocusTracking.spec.tsx ✅ Passed (Inspect) 35s 15 0 0
formBuilder/inputs/PortableText/Input.spec.tsx ✅ Passed (Inspect) 1m 2s 14 0 0
formBuilder/inputs/PortableText/ObjectBlock.spec.tsx ✅ Passed (Inspect) 1m 4s 18 0 0
formBuilder/inputs/PortableText/RangeDecoration.spec.tsx ✅ Passed (Inspect) 20s 9 0 0
formBuilder/inputs/PortableText/Styles.spec.tsx ✅ Passed (Inspect) 14s 6 0 0
formBuilder/inputs/PortableText/Toolbar.spec.tsx ✅ Passed (Inspect) 21s 9 0 0

@jordanl17 jordanl17 marked this pull request as ready for review April 19, 2024 14:12
@jordanl17 jordanl17 requested review from a team as code owners April 19, 2024 14:12
@jordanl17 jordanl17 requested review from jtpetty and removed request for a team April 19, 2024 14:12
ecospark bot and others added 3 commits April 23, 2024 19:24
Co-authored-by: cngonzalez <3969996+cngonzalez@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
sgulseth and others added 6 commits April 24, 2024 07:59
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* feat(typegen): also search for queries in app and sanity folders

* feat(typegen): format generated types with prettier
* chore: upgrade groq-js

* chore: always bump groq-js
renovate bot and others added 7 commits April 29, 2024 10:46
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): add tests for range decorations rendering

* fixup! feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): improve some minor test things

* fix(core): update z-index on PTE activate overlay

* feat(core): extend presence data model with `selection`

* feat(structure): include `selection` in presence data

* feat(core): implement presence cursors in PTE

* test(core): add presence cursor workshop story

* refactor(core): use `getTheme_v2` to access theme values

* fix(core): introduce `OnPathFocusPayload` to improve typing

* fix(form/inputs): perf optimization for PT-input decorators

* refactor(form/inputs): also display user presence when user is selecting a range, but only the focus point of it

* fix(core): render presence cursors inline instead of in a portal

* fix(core): broken workshop story

* feat(core): reset presence selection on blur in PTE

* fix(structure): add accidentially removed setFocusPath (DocumentPaneProvider)

This seems to have been lost in a rebase.

* fix(core): use `useFormFieldPresence` in `usePresenceCursorDecorations`

* fix(core): set `focusPath` when receiving a mutation event if there are pending patches

* fix(form/inputs): break don't return

* fix(form/inputs): remove ref that should not be set here

This ref is supposed to be set elsewhere (on the PTE Editable component)
See eca960e

* fix(form/inputs): sort hook deps list

* fix(form/inputs): reconcile presence decorations for PT-Input

Make sure these objects stays as stable as possible in order to not
redraw any range decorations unnecessary.

* fix(form/inputs): return early if focusPath is already selected in PT-Input

* refactor(form/inputs): throttle reporting of focusPath and presence updates for PT-input

* fix(core): import of `FormNodePresence`

* fix(form/inputs): remove lastActive as dep for PT-presence range decorations uniqueness

We are not using this value anyway, and it complicates the reconciliation of the presence decorators

* test(core): add presence cursor workshop story

* fix(core): remove unnecessary z-index in PTE activate overlay

* fix(core): prevent presence cursor user name from being selected

* fix(form/inputs): fix issue where perf opt on focusPath tracking broke tests

This perf opt. broke some tests. It's not clear if it is a problem with the test
or the func. so restoring the old behaviour for now.

* test(core): update snapshots in `Studio.test`

* refactor(core): move presence decorations according to user edits

Use a own state for this.

* refactor(core/form): remove complexity from PortableTextInput

Handle debouncing in the DocumentProvider instead. Setting focusPath must be synchronous

* refactor(structure): announce presence throttled

When we introduced presence in the PortableTextInput, we risk calling the presence updates very often.
There should be no reason for not doing this throttled, as long as we have leading true.

* refactor(core): clean up presence cursors code + add comments

---------

Co-authored-by: Per-Kristian Nordnes <per.kristian.nordnes@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: rexxars <48200+rexxars@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@@ -48,7 +55,7 @@ export const StatusButton = forwardRef(function StatusButton(
<StyledButton
data-ui="StatusButton"
{...restProps}
aria-label={label || t('status-button.aria-label')}
aria-label={label}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I'm misunderstanding, but in this case wouldn't it be wise to still have a fall back on the StatusButton itself (outside of making sure that the labels exist where the StatusButton is used?)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would a fallback be necessary given that the aria-label is now a required prop?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yeah that's true! 🤔
I guess my follow up question is whether this should be something that we should require of all buttons then (if we don't already). Since it might be strange that we're only requiring this on a StatusButton vs everywhere else.

But maybe it's a question for another time and out of scope for this PR? 🤔

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a fair point! I'm not sure the situation with all other buttons but I can take a look after this PR. I'm not sure the exact process that surfaced this particular status button issue, but perhaps this was seem most commonly for now

@RitaDias
Copy link
Contributor

RitaDias commented Apr 29, 2024

Possible nitpick but for making things easier for folks on release/editorial:

Notes for release
Specific usages of StatusButton labels

If we're working on a fix the way Editorial tends to pose it is like "Fixes (...)"
For this I would try to reword it in a way that someone could understand without going too deeply into the weeds what this fix actually does which (imo) is not super understandable. There are some issues where that is not possible (and this might end up being one of them) but in that case it might end up with a message closer to "Fixes some issues with aria-labels in the StatusButton" for example :)

Copy link
Contributor

@jtpetty jtpetty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jordanl17 jordanl17 added this pull request to the merge queue Apr 29, 2024
Merged via the queue into next with commit 06c67fc Apr 29, 2024
39 checks passed
@jordanl17 jordanl17 deleted the EDX-1147-statusButton-aria-label branch April 29, 2024 18:22
cngonzalez added a commit that referenced this pull request May 8, 2024
* fix: statusButton requires provided aria-label

* fix: commenting on the new translation mapping added

* chore(deps): dedupe pnpm-lock.yaml (#6463)

Co-authored-by: cngonzalez <3969996+cngonzalez@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.4 (#6460)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(cli): mock matchMedia window function (#6472)

* chore: add perf runner to workspace (#6427)

* fix(typegen): fixes a bug where we imported the wrong relative path (#6457)

* chore(deps): update dependency @sanity/tsdoc to v1.0.39 (#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(typegen): also search for queries in app and sanity folders (#6475)

* feat(typegen): also search for queries in app and sanity folders

* feat(typegen): format generated types with prettier

* chore: upgrade groq-js (#6474)

* chore: upgrade groq-js

* chore: always bump groq-js

* chore(deps): dedupe pnpm-lock.yaml (#6476)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/visual-editing to v1.8.15 (#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.14 (#6466)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency date-fns-tz to v2.0.1 (#6467)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency i18next to v23.11.2 (#6468)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency zod to v3.23.4 (#6470)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency next to v14.2.2 (#6469)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency react-focus-lock to v2.12.1 (#6471)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.6 (#6482)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo (#6484)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/tsdoc to v1.0.40 (#6483)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.8 (#6485)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo to ^18.3.0 (#6490)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @types/react-is to v18.3.0 (#6491)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: setup next test that embeds the test studio (#6487)

* chore: setup next test that embeds the test studio

* chore: support HMR same way test-studio does

* refactor: replace deprecated `empty()` with `EMPTY`

* refactor: shorter `pnpm dev:next-studio` alias

* chore: add `dev:turbo-studio` to test with turbopack

* chore: remove unused

* fix(test): remove hydrateroot warning test (#6494)

* chore(deps): dedupe pnpm-lock.yaml (#6493)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* feat: set print width to 40 (#6068)

* chore(deps): update dependency @sanity/pkg-utils to v6.8.7 (#6496)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency turbo to ^1.13.3 (#6497)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/logos to v2.1.11 (#6498)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.15 (#6499)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(cli): remove comments from moviedb template, hide location field (#6488)

* fix(search): revert to old search API for now (#6503)

* v3.39.1

* chore(deps): dedupe pnpm-lock.yaml (#6463)

Co-authored-by: cngonzalez <3969996+cngonzalez@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.4 (#6460)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: add perf runner to workspace (#6427)

* chore(deps): update dependency @sanity/tsdoc to v1.0.39 (#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: upgrade groq-js (#6474)

* chore: upgrade groq-js

* chore: always bump groq-js

* chore(deps): dedupe pnpm-lock.yaml (#6476)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.14 (#6466)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency i18next to v23.11.2 (#6468)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency zod to v3.23.4 (#6470)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency next to v14.2.2 (#6469)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency react-focus-lock to v2.12.1 (#6471)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.6 (#6482)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo (#6484)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/tsdoc to v1.0.40 (#6483)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.8 (#6485)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo to ^18.3.0 (#6490)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: setup next test that embeds the test studio (#6487)

* chore: setup next test that embeds the test studio

* chore: support HMR same way test-studio does

* refactor: replace deprecated `empty()` with `EMPTY`

* refactor: shorter `pnpm dev:next-studio` alias

* chore: add `dev:turbo-studio` to test with turbopack

* chore: remove unused

* chore(deps): dedupe pnpm-lock.yaml (#6493)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.7 (#6496)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/logos to v2.1.11 (#6498)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.15 (#6499)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/visual-editing to v1.8.16 (#6500)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.10 (#6501)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(core): implement presence cursors (#6081)

* feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): add tests for range decorations rendering

* fixup! feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): improve some minor test things

* fix(core): update z-index on PTE activate overlay

* feat(core): extend presence data model with `selection`

* feat(structure): include `selection` in presence data

* feat(core): implement presence cursors in PTE

* test(core): add presence cursor workshop story

* refactor(core): use `getTheme_v2` to access theme values

* fix(core): introduce `OnPathFocusPayload` to improve typing

* fix(form/inputs): perf optimization for PT-input decorators

* refactor(form/inputs): also display user presence when user is selecting a range, but only the focus point of it

* fix(core): render presence cursors inline instead of in a portal

* fix(core): broken workshop story

* feat(core): reset presence selection on blur in PTE

* fix(structure): add accidentially removed setFocusPath (DocumentPaneProvider)

This seems to have been lost in a rebase.

* fix(core): use `useFormFieldPresence` in `usePresenceCursorDecorations`

* fix(core): set `focusPath` when receiving a mutation event if there are pending patches

* fix(form/inputs): break don't return

* fix(form/inputs): remove ref that should not be set here

This ref is supposed to be set elsewhere (on the PTE Editable component)
See eca960e

* fix(form/inputs): sort hook deps list

* fix(form/inputs): reconcile presence decorations for PT-Input

Make sure these objects stays as stable as possible in order to not
redraw any range decorations unnecessary.

* fix(form/inputs): return early if focusPath is already selected in PT-Input

* refactor(form/inputs): throttle reporting of focusPath and presence updates for PT-input

* fix(core): import of `FormNodePresence`

* fix(form/inputs): remove lastActive as dep for PT-presence range decorations uniqueness

We are not using this value anyway, and it complicates the reconciliation of the presence decorators

* test(core): add presence cursor workshop story

* fix(core): remove unnecessary z-index in PTE activate overlay

* fix(core): prevent presence cursor user name from being selected

* fix(form/inputs): fix issue where perf opt on focusPath tracking broke tests

This perf opt. broke some tests. It's not clear if it is a problem with the test
or the func. so restoring the old behaviour for now.

* test(core): update snapshots in `Studio.test`

* refactor(core): move presence decorations according to user edits

Use a own state for this.

* refactor(core/form): remove complexity from PortableTextInput

Handle debouncing in the DocumentProvider instead. Setting focusPath must be synchronous

* refactor(structure): announce presence throttled

When we introduced presence in the PortableTextInput, we risk calling the presence updates very often.
There should be no reason for not doing this throttled, as long as we have leading true.

* refactor(core): clean up presence cursors code + add comments

---------

Co-authored-by: Per-Kristian Nordnes <per.kristian.nordnes@gmail.com>

* fix(deps): Update react monorepo (#6502)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lint): add certain unicorn eslint rules (#6352)

* chore(lint): add certain unicorn eslint rules

* chore: fix lint errors

* test: increase timeout for cross-dataset reference test

* chore: fix incorrect path used in workshop story

* chore(deps): dedupe pnpm-lock.yaml (#6506)

Co-authored-by: rexxars <48200+rexxars@users.noreply.github.com>

* fix(structure): uncaught error while swapping images in array in PTE (#6399)

* chore(test-studio): add schema for fix

* fix(structure): console error for when selection is zero

* chore(test-studio): update test schema

* chore(core): remove try catch

* test(pte): add test for usecase

* chore(sanity): remove ? since it will always be defined

Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com>

* chore(test): fix test file to have .spec.

---------

Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com>

* chore(deps): update dependency @types/react to v18.3.1 (#6507)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* v3.39.1

* chore(deps): dedupe pnpm-lock.yaml (#6463)

Co-authored-by: cngonzalez <3969996+cngonzalez@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.4 (#6460)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: add perf runner to workspace (#6427)

* chore(deps): update dependency @sanity/tsdoc to v1.0.39 (#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: upgrade groq-js (#6474)

* chore: upgrade groq-js

* chore: always bump groq-js

* chore(deps): dedupe pnpm-lock.yaml (#6476)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/visual-editing to v1.8.15 (#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.14 (#6466)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency i18next to v23.11.2 (#6468)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency zod to v3.23.4 (#6470)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency next to v14.2.2 (#6469)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency react-focus-lock to v2.12.1 (#6471)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.6 (#6482)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo (#6484)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/tsdoc to v1.0.40 (#6483)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.8 (#6485)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo to ^18.3.0 (#6490)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: setup next test that embeds the test studio (#6487)

* chore: setup next test that embeds the test studio

* chore: support HMR same way test-studio does

* refactor: replace deprecated `empty()` with `EMPTY`

* refactor: shorter `pnpm dev:next-studio` alias

* chore: add `dev:turbo-studio` to test with turbopack

* chore: remove unused

* chore(deps): dedupe pnpm-lock.yaml (#6493)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.7 (#6496)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/logos to v2.1.11 (#6498)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.15 (#6499)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/visual-editing to v1.8.16 (#6500)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.10 (#6501)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(core): implement presence cursors (#6081)

* feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): add tests for range decorations rendering

* fixup! feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): improve some minor test things

* fix(core): update z-index on PTE activate overlay

* feat(core): extend presence data model with `selection`

* feat(structure): include `selection` in presence data

* feat(core): implement presence cursors in PTE

* test(core): add presence cursor workshop story

* refactor(core): use `getTheme_v2` to access theme values

* fix(core): introduce `OnPathFocusPayload` to improve typing

* fix(form/inputs): perf optimization for PT-input decorators

* refactor(form/inputs): also display user presence when user is selecting a range, but only the focus point of it

* fix(core): render presence cursors inline instead of in a portal

* fix(core): broken workshop story

* feat(core): reset presence selection on blur in PTE

* fix(structure): add accidentially removed setFocusPath (DocumentPaneProvider)

This seems to have been lost in a rebase.

* fix(core): use `useFormFieldPresence` in `usePresenceCursorDecorations`

* fix(core): set `focusPath` when receiving a mutation event if there are pending patches

* fix(form/inputs): break don't return

* fix(form/inputs): remove ref that should not be set here

This ref is supposed to be set elsewhere (on the PTE Editable component)
See eca960e

* fix(form/inputs): sort hook deps list

* fix(form/inputs): reconcile presence decorations for PT-Input

Make sure these objects stays as stable as possible in order to not
redraw any range decorations unnecessary.

* fix(form/inputs): return early if focusPath is already selected in PT-Input

* refactor(form/inputs): throttle reporting of focusPath and presence updates for PT-input

* fix(core): import of `FormNodePresence`

* fix(form/inputs): remove lastActive as dep for PT-presence range decorations uniqueness

We are not using this value anyway, and it complicates the reconciliation of the presence decorators

* test(core): add presence cursor workshop story

* fix(core): remove unnecessary z-index in PTE activate overlay

* fix(core): prevent presence cursor user name from being selected

* fix(form/inputs): fix issue where perf opt on focusPath tracking broke tests

This perf opt. broke some tests. It's not clear if it is a problem with the test
or the func. so restoring the old behaviour for now.

* test(core): update snapshots in `Studio.test`

* refactor(core): move presence decorations according to user edits

Use a own state for this.

* refactor(core/form): remove complexity from PortableTextInput

Handle debouncing in the DocumentProvider instead. Setting focusPath must be synchronous

* refactor(structure): announce presence throttled

When we introduced presence in the PortableTextInput, we risk calling the presence updates very often.
There should be no reason for not doing this throttled, as long as we have leading true.

* refactor(core): clean up presence cursors code + add comments

---------

Co-authored-by: Per-Kristian Nordnes <per.kristian.nordnes@gmail.com>

* fix(deps): Update react monorepo (#6502)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: fix incorrect path used in workshop story

* chore(deps): dedupe pnpm-lock.yaml (#6506)

Co-authored-by: rexxars <48200+rexxars@users.noreply.github.com>

* chore(deps): update dependency @types/react to v18.3.1 (#6507)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

---------

Co-authored-by: ecospark[bot] <128108030+ecospark[bot]@users.noreply.github.com>
Co-authored-by: cngonzalez <3969996+cngonzalez@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Sindre Gulseth <sgulseth@gmail.com>
Co-authored-by: Bjørge Næss <bjoerge@gmail.com>
Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
Co-authored-by: Cody Olsen <81981+stipsan@users.noreply.github.com>
Co-authored-by: Rostislav Melkumyan <hello@rosti.no>
Co-authored-by: Espen Hovlandsdal <espen@hovlandsdal.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Herman Wikner <wiknerherman@gmail.com>
Co-authored-by: Per-Kristian Nordnes <per.kristian.nordnes@gmail.com>
Co-authored-by: rexxars <48200+rexxars@users.noreply.github.com>
Co-authored-by: RitaDias <rita@sanity.io>
Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants