From 4fe352fea1aa0648787d95f019007e262c3af282 Mon Sep 17 00:00:00 2001 From: RitaDias Date: Wed, 17 Jul 2024 15:25:44 +0200 Subject: [PATCH] refactor: update document badge logic and navigation (#7175) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(sanity): add support for sticky query params * feat(sanity): add 'perspective' dropdown * feat(sanity): include `_version` field in search results * feat(types): add `_version` field to `SanityDocument` and `SanityDocumentLike` * fix(sanity): global perspective state restoration * feat(sanity): hardcode `summerDrop` and `autumnDrop` bundles * wip: allow pairs to include multiple drafts * feat(sanity): support versioned document ids in `getPublishedId` function * feat(sanity): add `_version` field to preview observation * feat(sanity): reflect checked out bundle in document lists and list previews * debug(sanity): add version debug output to list previews * feat(sanity): add action to create new version based on an doc id * feat(sanity): update document title + version popover - add new and from existing versions * chore(sanity): move versions menu to versions folder * chore(sanity): update check for checking version * fix(sanity): ability to add new versions to doc * feat(sanity): add dumb bundle and version data, add icons and hues * feat(sanity): update styles and don't rely on random * update isVersion * docs(sanity): update comments * feat(sanity): add "latest version" menu button * refactor(sanity): update comments * chore(sanity): remove import from format date. will use something else * fix(sanity): allow uppercase characters in version identifiers * feat(sanity): add tag to list document versions request * feat(corel): integrate bundles store (#7040) * feat(corel): add bundles store * feat(corel): doc and structure updates (#7039) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(sanity): update method * refactor(sanity): update drafts name (draft -> drafts) in LATEST & context * refactor(sanity): use handleBundleChange instead of two separate methods * refactor(sanity): update title to use LATEST const * refactor(sanity): update draft filtering and checks (global and document level) * refactor(sanity): update context to rely on router & update query to match existing bundles (MOCK) * refactor(sanity): update handle methods to have callback * feat(sanity): add guardrails for title naming on bundle create * docs(sanity): update comments to potentially move things to plugin * refactor(sanity): merge version badges & icons * refactor(sanity): use speakingurl instead of toSlug * feat(releases): initialising releases plugin (#7048) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * feat(releases): create releases tool as default plugin * feat(releases): styling and components for basic releases overview * feat(releases): adding release detail page and routing * feat(releases): uri decoding releaseID * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * feat(corel): add bundles store * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * chore(corel): use rxjs in bundlesStore listener * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(corel): add retry to initialFetch * feat(releases): remove the ready concepts * feat(corel): include useBundleOperations and story * fix(corel): update imports paths * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(releases): refactor releases to bundles * feat(releases): using bundle ops to fetch and create add-on bundles * refactor(releases): type guard for at least one bundle returned * fix(releases): fixing issue where overview header not hidden when no bundles * feat(releases): search filters list of releases * refactor(releases): minor refactor of hooks in BundlesOverview * refactor(sanity): update method * feat(releases): addijg concept loosely of bundle documents * feat(releases): testing for BundlesTable * feat(releases): testing for BundlesTable * feat(releases): testing for releases overview page * refactor(release): fixing types on the custom queries * refactor(releases): Creating BundleIcon * refactor(releases): minor refactor and tidy to component logic * refactor(releases): minor format changes * refactor(releases): create bundle dialog creates itself and then returns * refactor(releases): create bundle dialog creates itself and then returns * feat(releases): minor style update to match prototype on the mode picker * feat(releases): minor style update to match prototype on the mode picker * refactor(releases): moving search into table header as per prototype * chore(corel): add eslintrc change, remove progress icon and update types (#7050) --------- Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> * refactor(releases): removing shortRelativeDate (#7051) * chore(corel): add bundles provider (#7054) * chore(corel): add bundles provider * fix(corel): update bundles overview tests * feat(COREL): update types to bundle + add create bundle functionality (#7047) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): only show the list of bundles if it has more than published / drafts * chore(sanity): remove warnings comments * refactor(COREL): refactor version context & renaming (#7071) * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * chore(sanity): update LATEST type to Partial * refactor(sanity): make single bundle menu + clean up * chore(sanity): remove warnings comments * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * chore(sanity): remove isDraft from usePerspective, add new util * refactor(sanity): remove isDraft * refactor(sanity): use current global in the bundle badge * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider (#7074) * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider * fix(corel): update imports for bundleRow test * chore(corel): disable publish tests * fix(corel): update failing tests * fix(corel): update bundle actions definition * fix(corel): remove not used file * fix(corel): update DocumentHeaderTitle test * fix(corel): fix lint issues * feat(releases): archive and unarchive releases (#7072) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * feat(releases): support for (un)archive * chore(releases): updating testing for BundlesOverview * chore(releases): new tests for BundleMenuButton and (un)archive * fix(releases): disabling bundle menu btn when action is performed --------- Co-authored-by: RitaDias Co-authored-by: RitaDias * refactor(sanity): move bundle metadata store to resource cache Co-authored-by: Pedro Bonamin * feat(corel): remove version documents when deleting bundle (#7107) * feat(corel): releases details screen. (#7092) * fix(corel): update releases router to use bundle name * feat(corel): add bundle details screen * chore: update @sanity/icons package * feat(corel): releases DocumentRow updates * fix(corel): update BundleIconEditorPicker types * fix(corel): update bundles table test * fix(corel): add filter in documents table * chore(corel): update file location and naming * feat(corel): add document actions to document row * fix(core): remove references to bundles in useListener hook * fix(corel): add search params to IntentLink * chore(corel): remove router type change and restore previous pnpm-lock file * fix(corel): update bundlesTable tests * test(COREL): add core tests (#7119) * test(sanity): try to find solution for test * wip: add theme provider to test * test(sanity): add test to bundleForm & add createWrapper in core * test(sanity): add test to BundleIconEditorPicker * chore(sanity): update createWrapper * test(sanity): update bundleForm test * test(sanity) add createBundleDialog tests * test(sanity) add BundleMenu tests * refactor(sanity): add prop to createWrapper to access TestProviderOptions --------- Co-authored-by: Ash * feat(sanity): #TEMPORARY #DELETE handle versions in `DocumentPaneProvider` * fix(sanity): avoid fetching in a loop * fix(corel): refactor version history to fetch all release documents (#7150) * refactor(COREL): update title & date validation (#7148) * refactor(sanity): refactor error setting * refactor(sanity): refactor title error setting * refactor(sanity): refactor date error setting * docs(sanity): update comments * chore(sanity): clean up * test(sanity): update bundleiconeditorpicker test * test(sanity): update bundleForm test * test(sanity): update bundleForm & createBundleDialog test * test: update form and update tests * chore: hide publish date (#7162) * feat(releases): last edited and document count in bundle (#7124) * feat(sanity): add support for sticky query params * feat(sanity): add 'perspective' dropdown * feat(sanity): include `_version` field in search results * feat(types): add `_version` field to `SanityDocument` and `SanityDocumentLike` * fix(sanity): global perspective state restoration * feat(sanity): hardcode `summerDrop` and `autumnDrop` bundles * wip: allow pairs to include multiple drafts * feat(sanity): support versioned document ids in `getPublishedId` function * feat(sanity): add `_version` field to preview observation * feat(sanity): reflect checked out bundle in document lists and list previews * debug(sanity): add version debug output to list previews * feat(sanity): add action to create new version based on an doc id * feat(sanity): update document title + version popover - add new and from existing versions * chore(sanity): move versions menu to versions folder * chore(sanity): update check for checking version * fix(sanity): ability to add new versions to doc * feat(sanity): add dumb bundle and version data, add icons and hues * feat(sanity): update styles and don't rely on random * update isVersion * docs(sanity): update comments * feat(sanity): add "latest version" menu button * refactor(sanity): update comments * chore(sanity): remove import from format date. will use something else * fix(sanity): allow uppercase characters in version identifiers * feat(sanity): add tag to list document versions request * feat(corel): integrate bundles store (#7040) * feat(corel): add bundles store * feat(corel): doc and structure updates (#7039) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(sanity): update method * refactor(sanity): update drafts name (draft -> drafts) in LATEST & context * refactor(sanity): use handleBundleChange instead of two separate methods * refactor(sanity): update title to use LATEST const * refactor(sanity): update draft filtering and checks (global and document level) * refactor(sanity): update context to rely on router & update query to match existing bundles (MOCK) * refactor(sanity): update handle methods to have callback * feat(sanity): add guardrails for title naming on bundle create * docs(sanity): update comments to potentially move things to plugin * refactor(sanity): merge version badges & icons * refactor(sanity): use speakingurl instead of toSlug * feat(releases): initialising releases plugin (#7048) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * feat(releases): create releases tool as default plugin * feat(releases): styling and components for basic releases overview * feat(releases): adding release detail page and routing * feat(releases): uri decoding releaseID * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * feat(corel): add bundles store * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * chore(corel): use rxjs in bundlesStore listener * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(corel): add retry to initialFetch * feat(releases): remove the ready concepts * feat(corel): include useBundleOperations and story * fix(corel): update imports paths * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(releases): refactor releases to bundles * feat(releases): using bundle ops to fetch and create add-on bundles * refactor(releases): type guard for at least one bundle returned * fix(releases): fixing issue where overview header not hidden when no bundles * feat(releases): search filters list of releases * refactor(releases): minor refactor of hooks in BundlesOverview * refactor(sanity): update method * feat(releases): addijg concept loosely of bundle documents * feat(releases): testing for BundlesTable * feat(releases): testing for BundlesTable * feat(releases): testing for releases overview page * refactor(release): fixing types on the custom queries * refactor(releases): Creating BundleIcon * refactor(releases): minor refactor and tidy to component logic * refactor(releases): minor format changes * refactor(releases): create bundle dialog creates itself and then returns * refactor(releases): create bundle dialog creates itself and then returns * feat(releases): minor style update to match prototype on the mode picker * feat(releases): minor style update to match prototype on the mode picker * refactor(releases): moving search into table header as per prototype * chore(corel): add eslintrc change, remove progress icon and update types (#7050) --------- Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> * refactor(releases): removing shortRelativeDate (#7051) * chore(corel): add bundles provider (#7054) * chore(corel): add bundles provider * fix(corel): update bundles overview tests * feat(COREL): update types to bundle + add create bundle functionality (#7047) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): only show the list of bundles if it has more than published / drafts * chore(sanity): remove warnings comments * refactor(COREL): refactor version context & renaming (#7071) * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * chore(sanity): update LATEST type to Partial * refactor(sanity): make single bundle menu + clean up * chore(sanity): remove warnings comments * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * chore(sanity): remove isDraft from usePerspective, add new util * refactor(sanity): remove isDraft * refactor(sanity): use current global in the bundle badge * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider (#7074) * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider * fix(corel): update imports for bundleRow test * chore(corel): disable publish tests * fix(corel): update failing tests * fix(corel): update bundle actions definition * fix(corel): remove not used file * fix(corel): update DocumentHeaderTitle test * fix(corel): fix lint issues * feat(releases): archive and unarchive releases (#7072) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * feat(releases): support for (un)archive * chore(releases): updating testing for BundlesOverview * chore(releases): new tests for BundleMenuButton and (un)archive * fix(releases): disabling bundle menu btn when action is performed --------- Co-authored-by: RitaDias Co-authored-by: RitaDias * refactor(sanity): move bundle metadata store to resource cache Co-authored-by: Pedro Bonamin * feat(releases): bundle store starts to support bundle metadata * feat(releases): loading state only on initial fetch of metadata * feat(releases): added created at col * feat(releases): patching mutated bundle slugs * feat(releases): aggregate all metadata listening calls * fix(releases): fixing empty observed result state * refactor(releases): move to slugs; split agg from createBundleStore * fix(deps): Update dev-non-major (#7100) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency get-it to ^8.6.3 (#7108) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency @sanity/client to ^6.20.2 (#7111) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * refactor(sanity): remove "features" (#7097) * fix(deps): update dependency @sanity/client to ^6.20.2 (#7110) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency @sanity/bifur-client to ^0.4.1 (#7102) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency @sanity/ui to ^2.6.3 (#7104) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency react-rx to ^3.1.1 (#7113) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @sanity/tsdoc to v1.0.83 (#7080) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency esbuild to ^0.23.0 (#7106) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * test(cli): use separate tarball location for cursor export test (#7118) * fix(core): minor typo fix in i18n comment (#7115) * fix(core): minor typo fix in i18n comment * refactor(structure): add missing space to tsdoc * feat(router): update router to support query params in intent links (#7095) * feat(router): update router to support query params in intent links * fix(core): update RouterStateEvent interface * chore(core): add tests for query param intents * feat(sanity): add 'perspective' dropdown * fix(sanity): global perspective state restoration * feat(sanity): hardcode `summerDrop` and `autumnDrop` bundles * feat(sanity): reflect checked out bundle in document lists and list previews * debug(sanity): add version debug output to list previews * feat(sanity): add action to create new version based on an doc id * feat(sanity): update document title + version popover - add new and from existing versions * chore(sanity): move versions menu to versions folder * chore(sanity): update check for checking version * fix(sanity): ability to add new versions to doc * feat(sanity): add dumb bundle and version data, add icons and hues * feat(sanity): update styles and don't rely on random * update isVersion * docs(sanity): update comments * feat(sanity): add "latest version" menu button * refactor(sanity): update comments * chore(sanity): remove import from format date. will use something else * fix(sanity): allow uppercase characters in version identifiers * feat(sanity): add tag to list document versions request * feat(corel): integrate bundles store (#7040) * feat(corel): add bundles store * feat(corel): doc and structure updates (#7039) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(sanity): update method * refactor(sanity): update drafts name (draft -> drafts) in LATEST & context * refactor(sanity): use handleBundleChange instead of two separate methods * refactor(sanity): update title to use LATEST const * refactor(sanity): update draft filtering and checks (global and document level) * refactor(sanity): update context to rely on router & update query to match existing bundles (MOCK) * refactor(sanity): update handle methods to have callback * feat(sanity): add guardrails for title naming on bundle create * docs(sanity): update comments to potentially move things to plugin * refactor(sanity): merge version badges & icons * refactor(sanity): use speakingurl instead of toSlug * feat(releases): initialising releases plugin (#7048) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * feat(releases): create releases tool as default plugin * feat(releases): styling and components for basic releases overview * feat(releases): adding release detail page and routing * feat(releases): uri decoding releaseID * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * feat(corel): add bundles store * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * chore(corel): use rxjs in bundlesStore listener * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(corel): add retry to initialFetch * feat(releases): remove the ready concepts * feat(corel): include useBundleOperations and story * fix(corel): update imports paths * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(releases): refactor releases to bundles * feat(releases): using bundle ops to fetch and create add-on bundles * refactor(releases): type guard for at least one bundle returned * fix(releases): fixing issue where overview header not hidden when no bundles * feat(releases): search filters list of releases * refactor(releases): minor refactor of hooks in BundlesOverview * refactor(sanity): update method * feat(releases): addijg concept loosely of bundle documents * feat(releases): testing for BundlesTable * feat(releases): testing for BundlesTable * feat(releases): testing for releases overview page * refactor(release): fixing types on the custom queries * refactor(releases): Creating BundleIcon * refactor(releases): minor refactor and tidy to component logic * refactor(releases): minor format changes * refactor(releases): create bundle dialog creates itself and then returns * refactor(releases): create bundle dialog creates itself and then returns * feat(releases): minor style update to match prototype on the mode picker * feat(releases): minor style update to match prototype on the mode picker * refactor(releases): moving search into table header as per prototype * chore(corel): add eslintrc change, remove progress icon and update types (#7050) --------- Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> * refactor(releases): removing shortRelativeDate (#7051) * chore(corel): add bundles provider (#7054) * chore(corel): add bundles provider * fix(corel): update bundles overview tests * feat(COREL): update types to bundle + add create bundle functionality (#7047) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): only show the list of bundles if it has more than published / drafts * chore(sanity): remove warnings comments * refactor(COREL): refactor version context & renaming (#7071) * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * chore(sanity): update LATEST type to Partial * refactor(sanity): make single bundle menu + clean up * chore(sanity): remove warnings comments * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * chore(sanity): remove isDraft from usePerspective, add new util * refactor(sanity): remove isDraft * refactor(sanity): use current global in the bundle badge * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider (#7074) * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider * fix(corel): update imports for bundleRow test * chore(corel): disable publish tests * fix(corel): update failing tests * fix(corel): update bundle actions definition * fix(corel): remove not used file * fix(corel): update DocumentHeaderTitle test * fix(corel): fix lint issues * feat(releases): archive and unarchive releases (#7072) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * feat(releases): support for (un)archive * chore(releases): updating testing for BundlesOverview * chore(releases): new tests for BundleMenuButton and (un)archive * fix(releases): disabling bundle menu btn when action is performed --------- Co-authored-by: RitaDias Co-authored-by: RitaDias * refactor(sanity): move bundle metadata store to resource cache Co-authored-by: Pedro Bonamin * refactor(releases): only adding metadata context when not already existing * refactor(releases): only adding metadata context when not already existing * refactor(releases): creating tableBundles in BundlesOverview * refactor(releases): renaming projection of query for metadata * chore(releases): code comments * fix(releases): fixing issue with removing bundles from aggregator listener * refactor(releases): nesting bundle doc metadata in TableBunde * fix(corel): update releases router to use bundle name * feat(corel): add bundle details screen * chore: update @sanity/icons package * feat(corel): releases DocumentRow updates * fix(corel): update BundleIconEditorPicker types * fix(corel): update bundles table test * fix(corel): add filter in documents table * chore(corel): update file location and naming * feat(corel): add document actions to document row * fix(core): remove references to bundles in useListener hook * fix(corel): add search params to IntentLink * chore(corel): remove router type change and restore previous pnpm-lock file * fix(releases): fixing tests for BundlesTable * fix(releases):adding tests for doc count and updated time to bundles table * fix(corel): update bundlesTable tests * fix(releases): fixing BundlesOverview tests * feat(releases): delete bundle confirm lists document count in bundle * refactor(releases): update BundlesMetadataContext to export interface * fix(releases): fix BundlesTable tests * refactor(releases): rename components and files to releases rather than bundles * feat(releases): assigning authorId on release creation * fix(releases): update BundleMenuButton test with hue and icon properties * feat(releases): release detail delete uses documents count in bundle * fix(releases): using short and temporal version of relative time * refactor(releases): startWith to handle initial loading state on fetch --------- Co-authored-by: Bjørge Næss Co-authored-by: Ash Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Espen Hovlandsdal * feat(corel): Add review changes screen (#7155) * fix(corel): add prepareForPreview in useDocumentPreviewValues * feat(corel): add review changes screen * fix(corel): update ReleaseReview to use new documents history data * feat(corel): add published document listener to review changes screen * feat(core): add new useObserveDocument hook * feat(corel): move active screen state to query params * chore(corel): make documentDiff component agnostic to releases * fix(corel): update document diff is changed check * fix(corel): update useObserveDocument hook, export it as unstable * chore(corel): add tests to release review screen * test(sanity): add tests * chore(corel): rename bundle.name to bundle.slug (#7171) * chore(corel): rename bundle.name to bundle.slug * chore(corel): add migration script and handlers * fix(corel): update BundleDocument interface definition * refactor(COREL): refactor version context & renaming (#7071) * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * chore(sanity): update LATEST type to Partial * refactor(sanity): make single bundle menu + clean up * chore(sanity): remove warnings comments * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * chore(sanity): remove isDraft from usePerspective, add new util * refactor(sanity): remove isDraft * refactor(sanity): use current global in the bundle badge * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider (#7074) * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider * fix(corel): update imports for bundleRow test * chore(corel): disable publish tests * fix(corel): update failing tests * fix(corel): update bundle actions definition * fix(corel): remove not used file * fix(corel): update DocumentHeaderTitle test * fix(corel): fix lint issues * feat(releases): archive and unarchive releases (#7072) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * feat(releases): support for (un)archive * chore(releases): updating testing for BundlesOverview * chore(releases): new tests for BundleMenuButton and (un)archive * fix(releases): disabling bundle menu btn when action is performed --------- Co-authored-by: RitaDias Co-authored-by: RitaDias * refactor(sanity): move bundle metadata store to resource cache Co-authored-by: Pedro Bonamin * feat(corel): remove version documents when deleting bundle (#7107) * feat(corel): releases details screen. (#7092) * fix(corel): update releases router to use bundle name * feat(corel): add bundle details screen * chore: update @sanity/icons package * feat(corel): releases DocumentRow updates * fix(corel): update BundleIconEditorPicker types * fix(corel): update bundles table test * fix(corel): add filter in documents table * chore(corel): update file location and naming * feat(corel): add document actions to document row * fix(core): remove references to bundles in useListener hook * fix(corel): add search params to IntentLink * chore(corel): remove router type change and restore previous pnpm-lock file * fix(corel): update bundlesTable tests * test(COREL): add core tests (#7119) * test(sanity): try to find solution for test * wip: add theme provider to test * test(sanity): add test to bundleForm & add createWrapper in core * test(sanity): add test to BundleIconEditorPicker * chore(sanity): update createWrapper * test(sanity): update bundleForm test * test(sanity) add createBundleDialog tests * test(sanity) add BundleMenu tests * refactor(sanity): add prop to createWrapper to access TestProviderOptions --------- Co-authored-by: Ash * feat(sanity): #TEMPORARY #DELETE handle versions in `DocumentPaneProvider` * fix(sanity): avoid fetching in a loop * fix(corel): refactor version history to fetch all release documents (#7150) * refactor(COREL): update title & date validation (#7148) * refactor(sanity): refactor error setting * refactor(sanity): refactor title error setting * refactor(sanity): refactor date error setting * docs(sanity): update comments * chore(sanity): clean up * test(sanity): update bundleiconeditorpicker test * test(sanity): update bundleForm test * test(sanity): update bundleForm & createBundleDialog test * test: update form and update tests * chore: hide publish date (#7162) * feat(releases): last edited and document count in bundle (#7124) * feat(sanity): add support for sticky query params * feat(sanity): add 'perspective' dropdown * feat(sanity): include `_version` field in search results * feat(types): add `_version` field to `SanityDocument` and `SanityDocumentLike` * fix(sanity): global perspective state restoration * feat(sanity): hardcode `summerDrop` and `autumnDrop` bundles * wip: allow pairs to include multiple drafts * feat(sanity): support versioned document ids in `getPublishedId` function * feat(sanity): add `_version` field to preview observation * feat(sanity): reflect checked out bundle in document lists and list previews * debug(sanity): add version debug output to list previews * feat(sanity): add action to create new version based on an doc id * feat(sanity): update document title + version popover - add new and from existing versions * chore(sanity): move versions menu to versions folder * chore(sanity): update check for checking version * fix(sanity): ability to add new versions to doc * feat(sanity): add dumb bundle and version data, add icons and hues * feat(sanity): update styles and don't rely on random * update isVersion * docs(sanity): update comments * feat(sanity): add "latest version" menu button * refactor(sanity): update comments * chore(sanity): remove import from format date. will use something else * fix(sanity): allow uppercase characters in version identifiers * feat(sanity): add tag to list document versions request * feat(corel): integrate bundles store (#7040) * feat(corel): add bundles store * feat(corel): doc and structure updates (#7039) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(sanity): update method * refactor(sanity): update drafts name (draft -> drafts) in LATEST & context * refactor(sanity): use handleBundleChange instead of two separate methods * refactor(sanity): update title to use LATEST const * refactor(sanity): update draft filtering and checks (global and document level) * refactor(sanity): update context to rely on router & update query to match existing bundles (MOCK) * refactor(sanity): update handle methods to have callback * feat(sanity): add guardrails for title naming on bundle create * docs(sanity): update comments to potentially move things to plugin * refactor(sanity): merge version badges & icons * refactor(sanity): use speakingurl instead of toSlug * feat(releases): initialising releases plugin (#7048) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * feat(releases): create releases tool as default plugin * feat(releases): styling and components for basic releases overview * feat(releases): adding release detail page and routing * feat(releases): uri decoding releaseID * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * feat(corel): add bundles store * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * chore(corel): use rxjs in bundlesStore listener * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(corel): add retry to initialFetch * feat(releases): remove the ready concepts * feat(corel): include useBundleOperations and story * fix(corel): update imports paths * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(releases): refactor releases to bundles * feat(releases): using bundle ops to fetch and create add-on bundles * refactor(releases): type guard for at least one bundle returned * fix(releases): fixing issue where overview header not hidden when no bundles * feat(releases): search filters list of releases * refactor(releases): minor refactor of hooks in BundlesOverview * refactor(sanity): update method * feat(releases): addijg concept loosely of bundle documents * feat(releases): testing for BundlesTable * feat(releases): testing for BundlesTable * feat(releases): testing for releases overview page * refactor(release): fixing types on the custom queries * refactor(releases): Creating BundleIcon * refactor(releases): minor refactor and tidy to component logic * refactor(releases): minor format changes * refactor(releases): create bundle dialog creates itself and then returns * refactor(releases): create bundle dialog creates itself and then returns * feat(releases): minor style update to match prototype on the mode picker * feat(releases): minor style update to match prototype on the mode picker * refactor(releases): moving search into table header as per prototype * chore(corel): add eslintrc change, remove progress icon and update types (#7050) --------- Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> * refactor(releases): removing shortRelativeDate (#7051) * chore(corel): add bundles provider (#7054) * chore(corel): add bundles provider * fix(corel): update bundles overview tests * feat(COREL): update types to bundle + add create bundle functionality (#7047) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): only show the list of bundles if it has more than published / drafts * chore(sanity): remove warnings comments * refactor(COREL): refactor version context & renaming (#7071) * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * chore(sanity): update LATEST type to Partial * refactor(sanity): make single bundle menu + clean up * chore(sanity): remove warnings comments * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * chore(sanity): remove isDraft from usePerspective, add new util * refactor(sanity): remove isDraft * refactor(sanity): use current global in the bundle badge * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider (#7074) * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider * fix(corel): update imports for bundleRow test * chore(corel): disable publish tests * fix(corel): update failing tests * fix(corel): update bundle actions definition * fix(corel): remove not used file * fix(corel): update DocumentHeaderTitle test * fix(corel): fix lint issues * feat(releases): archive and unarchive releases (#7072) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * feat(releases): support for (un)archive * chore(releases): updating testing for BundlesOverview * chore(releases): new tests for BundleMenuButton and (un)archive * fix(releases): disabling bundle menu btn when action is performed --------- Co-authored-by: RitaDias Co-authored-by: RitaDias * refactor(sanity): move bundle metadata store to resource cache Co-authored-by: Pedro Bonamin * feat(releases): bundle store starts to support bundle metadata * feat(releases): loading state only on initial fetch of metadata * feat(releases): added created at col * feat(releases): patching mutated bundle slugs * feat(releases): aggregate all metadata listening calls * fix(releases): fixing empty observed result state * refactor(releases): move to slugs; split agg from createBundleStore * fix(deps): Update dev-non-major (#7100) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency get-it to ^8.6.3 (#7108) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency @sanity/client to ^6.20.2 (#7111) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * refactor(sanity): remove "features" (#7097) * fix(deps): update dependency @sanity/client to ^6.20.2 (#7110) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency @sanity/bifur-client to ^0.4.1 (#7102) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency @sanity/ui to ^2.6.3 (#7104) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency react-rx to ^3.1.1 (#7113) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @sanity/tsdoc to v1.0.83 (#7080) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency esbuild to ^0.23.0 (#7106) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * test(cli): use separate tarball location for cursor export test (#7118) * fix(core): minor typo fix in i18n comment (#7115) * fix(core): minor typo fix in i18n comment * refactor(structure): add missing space to tsdoc * feat(router): update router to support query params in intent links (#7095) * feat(router): update router to support query params in intent links * fix(core): update RouterStateEvent interface * chore(core): add tests for query param intents * feat(sanity): add 'perspective' dropdown * fix(sanity): global perspective state restoration * feat(sanity): hardcode `summerDrop` and `autumnDrop` bundles * feat(sanity): reflect checked out bundle in document lists and list previews * debug(sanity): add version debug output to list previews * feat(sanity): add action to create new version based on an doc id * feat(sanity): update document title + version popover - add new and from existing versions * chore(sanity): move versions menu to versions folder * chore(sanity): update check for checking version * fix(sanity): ability to add new versions to doc * feat(sanity): add dumb bundle and version data, add icons and hues * feat(sanity): update styles and don't rely on random * update isVersion * docs(sanity): update comments * feat(sanity): add "latest version" menu button * refactor(sanity): update comments * chore(sanity): remove import from format date. will use something else * fix(sanity): allow uppercase characters in version identifiers * feat(sanity): add tag to list document versions request * feat(corel): integrate bundles store (#7040) * feat(corel): add bundles store * feat(corel): doc and structure updates (#7039) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(sanity): update method * refactor(sanity): update drafts name (draft -> drafts) in LATEST & context * refactor(sanity): use handleBundleChange instead of two separate methods * refactor(sanity): update title to use LATEST const * refactor(sanity): update draft filtering and checks (global and document level) * refactor(sanity): update context to rely on router & update query to match existing bundles (MOCK) * refactor(sanity): update handle methods to have callback * feat(sanity): add guardrails for title naming on bundle create * docs(sanity): update comments to potentially move things to plugin * refactor(sanity): merge version badges & icons * refactor(sanity): use speakingurl instead of toSlug * feat(releases): initialising releases plugin (#7048) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * feat(releases): create releases tool as default plugin * feat(releases): styling and components for basic releases overview * feat(releases): adding release detail page and routing * feat(releases): uri decoding releaseID * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * feat(corel): add bundles store * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * chore(corel): use rxjs in bundlesStore listener * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(corel): add retry to initialFetch * feat(releases): remove the ready concepts * feat(corel): include useBundleOperations and story * fix(corel): update imports paths * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(releases): refactor releases to bundles * feat(releases): using bundle ops to fetch and create add-on bundles * refactor(releases): type guard for at least one bundle returned * fix(releases): fixing issue where overview header not hidden when no bundles * feat(releases): search filters list of releases * refactor(releases): minor refactor of hooks in BundlesOverview * refactor(sanity): update method * feat(releases): addijg concept loosely of bundle documents * feat(releases): testing for BundlesTable * feat(releases): testing for BundlesTable * feat(releases): testing for releases overview page * refactor(release): fixing types on the custom queries * refactor(releases): Creating BundleIcon * refactor(releases): minor refactor and tidy to component logic * refactor(releases): minor format changes * refactor(releases): create bundle dialog creates itself and then returns * refactor(releases): create bundle dialog creates itself and then returns * feat(releases): minor style update to match prototype on the mode picker * feat(releases): minor style update to match prototype on the mode picker * refactor(releases): moving search into table header as per prototype * chore(corel): add eslintrc change, remove progress icon and update types (#7050) --------- Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> * refactor(releases): removing shortRelativeDate (#7051) * chore(corel): add bundles provider (#7054) * chore(corel): add bundles provider * fix(corel): update bundles overview tests * feat(COREL): update types to bundle + add create bundle functionality (#7047) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): only show the list of bundles if it has more than published / drafts * chore(sanity): remove warnings comments * refactor(COREL): refactor version context & renaming (#7071) * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * chore(sanity): update LATEST type to Partial * refactor(sanity): make single bundle menu + clean up * chore(sanity): remove warnings comments * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * chore(sanity): remove isDraft from usePerspective, add new util * refactor(sanity): remove isDraft * refactor(sanity): use current global in the bundle badge * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider (#7074) * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider * fix(corel): update imports for bundleRow test * chore(corel): disable publish tests * fix(corel): update failing tests * fix(corel): update bundle actions definition * fix(corel): remove not used file * fix(corel): update DocumentHeaderTitle test * fix(corel): fix lint issues * feat(releases): archive and unarchive releases (#7072) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * feat(releases): support for (un)archive * chore(releases): updating testing for BundlesOverview * chore(releases): new tests for BundleMenuButton and (un)archive * fix(releases): disabling bundle menu btn when action is performed --------- Co-authored-by: RitaDias Co-authored-by: RitaDias * refactor(sanity): move bundle metadata store to resource cache Co-authored-by: Pedro Bonamin * refactor(releases): only adding metadata context when not already existing * refactor(releases): only adding metadata context when not already existing * refactor(releases): creating tableBundles in BundlesOverview * refactor(releases): renaming projection of query for metadata * chore(releases): code comments * fix(releases): fixing issue with removing bundles from aggregator listener * refactor(releases): nesting bundle doc metadata in TableBunde * fix(corel): update releases router to use bundle name * feat(corel): add bundle details screen * chore: update @sanity/icons package * feat(corel): releases DocumentRow updates * fix(corel): update BundleIconEditorPicker types * fix(corel): update bundles table test * fix(corel): add filter in documents table * chore(corel): update file location and naming * feat(corel): add document actions to document row * fix(core): remove references to bundles in useListener hook * fix(corel): add search params to IntentLink * chore(corel): remove router type change and restore previous pnpm-lock file * fix(releases): fixing tests for BundlesTable * fix(releases):adding tests for doc count and updated time to bundles table * fix(corel): update bundlesTable tests * fix(releases): fixing BundlesOverview tests * feat(releases): delete bundle confirm lists document count in bundle * refactor(releases): update BundlesMetadataContext to export interface * fix(releases): fix BundlesTable tests * refactor(releases): rename components and files to releases rather than bundles * feat(releases): assigning authorId on release creation * fix(releases): update BundleMenuButton test with hue and icon properties * feat(releases): release detail delete uses documents count in bundle * fix(releases): using short and temporal version of relative time * refactor(releases): startWith to handle initial loading state on fetch --------- Co-authored-by: Bjørge Næss Co-authored-by: Ash Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Espen Hovlandsdal * feat(corel): Add review changes screen (#7155) * fix(corel): add prepareForPreview in useDocumentPreviewValues * feat(corel): add review changes screen * fix(corel): update ReleaseReview to use new documents history data * feat(corel): add published document listener to review changes screen * feat(core): add new useObserveDocument hook * feat(corel): move active screen state to query params * chore(corel): make documentDiff component agnostic to releases * fix(corel): update document diff is changed check * fix(corel): update useObserveDocument hook, export it as unstable * chore(corel): add tests to release review screen * chore(corel): rename bundle.name to bundle.slug (#7171) * chore(corel): rename bundle.name to bundle.slug * chore(corel): add migration script and handlers * fix(corel): update BundleDocument interface definition * refactor: update from name to slug * chore: update pnpm * refactor: add missing bundleSlug * refactor(COREL): refactor version context & renaming (#7071) * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * chore(sanity): update LATEST type to Partial * refactor(sanity): make single bundle menu + clean up * chore(sanity): remove warnings comments * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * chore(sanity): remove isDraft from usePerspective, add new util * refactor(sanity): remove isDraft * refactor(sanity): use current global in the bundle badge * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider (#7074) * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider * fix(corel): update imports for bundleRow test * chore(corel): disable publish tests * fix(corel): update failing tests * fix(corel): update bundle actions definition * fix(corel): remove not used file * fix(corel): update DocumentHeaderTitle test * fix(corel): fix lint issues * feat(releases): archive and unarchive releases (#7072) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * feat(releases): support for (un)archive * chore(releases): updating testing for BundlesOverview * chore(releases): new tests for BundleMenuButton and (un)archive * fix(releases): disabling bundle menu btn when action is performed --------- Co-authored-by: RitaDias Co-authored-by: RitaDias * refactor(sanity): move bundle metadata store to resource cache Co-authored-by: Pedro Bonamin * feat(corel): remove version documents when deleting bundle (#7107) * feat(corel): releases details screen. (#7092) * fix(corel): update releases router to use bundle name * feat(corel): add bundle details screen * chore: update @sanity/icons package * feat(corel): releases DocumentRow updates * fix(corel): update BundleIconEditorPicker types * fix(corel): update bundles table test * fix(corel): add filter in documents table * chore(corel): update file location and naming * feat(corel): add document actions to document row * fix(core): remove references to bundles in useListener hook * fix(corel): add search params to IntentLink * chore(corel): remove router type change and restore previous pnpm-lock file * fix(corel): update bundlesTable tests * test(COREL): add core tests (#7119) * test(sanity): try to find solution for test * wip: add theme provider to test * test(sanity): add test to bundleForm & add createWrapper in core * test(sanity): add test to BundleIconEditorPicker * chore(sanity): update createWrapper * test(sanity): update bundleForm test * test(sanity) add createBundleDialog tests * test(sanity) add BundleMenu tests * refactor(sanity): add prop to createWrapper to access TestProviderOptions --------- Co-authored-by: Ash * feat(sanity): #TEMPORARY #DELETE handle versions in `DocumentPaneProvider` * fix(sanity): avoid fetching in a loop * fix(corel): refactor version history to fetch all release documents (#7150) * refactor(COREL): update title & date validation (#7148) * refactor(sanity): refactor error setting * refactor(sanity): refactor title error setting * refactor(sanity): refactor date error setting * docs(sanity): update comments * chore(sanity): clean up * test(sanity): update bundleiconeditorpicker test * test(sanity): update bundleForm test * test(sanity): update bundleForm & createBundleDialog test * test: update form and update tests * chore: hide publish date (#7162) * feat(releases): last edited and document count in bundle (#7124) * feat(sanity): add support for sticky query params * feat(sanity): add 'perspective' dropdown * feat(sanity): include `_version` field in search results * feat(types): add `_version` field to `SanityDocument` and `SanityDocumentLike` * fix(sanity): global perspective state restoration * feat(sanity): hardcode `summerDrop` and `autumnDrop` bundles * wip: allow pairs to include multiple drafts * feat(sanity): support versioned document ids in `getPublishedId` function * feat(sanity): add `_version` field to preview observation * feat(sanity): reflect checked out bundle in document lists and list previews * debug(sanity): add version debug output to list previews * feat(sanity): add action to create new version based on an doc id * feat(sanity): update document title + version popover - add new and from existing versions * chore(sanity): move versions menu to versions folder * chore(sanity): update check for checking version * fix(sanity): ability to add new versions to doc * feat(sanity): add dumb bundle and version data, add icons and hues * feat(sanity): update styles and don't rely on random * update isVersion * docs(sanity): update comments * feat(sanity): add "latest version" menu button * refactor(sanity): update comments * chore(sanity): remove import from format date. will use something else * fix(sanity): allow uppercase characters in version identifiers * feat(sanity): add tag to list document versions request * feat(corel): integrate bundles store (#7040) * feat(corel): add bundles store * feat(corel): doc and structure updates (#7039) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(sanity): update method * refactor(sanity): update drafts name (draft -> drafts) in LATEST & context * refactor(sanity): use handleBundleChange instead of two separate methods * refactor(sanity): update title to use LATEST const * refactor(sanity): update draft filtering and checks (global and document level) * refactor(sanity): update context to rely on router & update query to match existing bundles (MOCK) * refactor(sanity): update handle methods to have callback * feat(sanity): add guardrails for title naming on bundle create * docs(sanity): update comments to potentially move things to plugin * refactor(sanity): merge version badges & icons * refactor(sanity): use speakingurl instead of toSlug * feat(releases): initialising releases plugin (#7048) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * feat(releases): create releases tool as default plugin * feat(releases): styling and components for basic releases overview * feat(releases): adding release detail page and routing * feat(releases): uri decoding releaseID * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * feat(corel): add bundles store * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * chore(corel): use rxjs in bundlesStore listener * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(corel): add retry to initialFetch * feat(releases): remove the ready concepts * feat(corel): include useBundleOperations and story * fix(corel): update imports paths * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(releases): refactor releases to bundles * feat(releases): using bundle ops to fetch and create add-on bundles * refactor(releases): type guard for at least one bundle returned * fix(releases): fixing issue where overview header not hidden when no bundles * feat(releases): search filters list of releases * refactor(releases): minor refactor of hooks in BundlesOverview * refactor(sanity): update method * feat(releases): addijg concept loosely of bundle documents * feat(releases): testing for BundlesTable * feat(releases): testing for BundlesTable * feat(releases): testing for releases overview page * refactor(release): fixing types on the custom queries * refactor(releases): Creating BundleIcon * refactor(releases): minor refactor and tidy to component logic * refactor(releases): minor format changes * refactor(releases): create bundle dialog creates itself and then returns * refactor(releases): create bundle dialog creates itself and then returns * feat(releases): minor style update to match prototype on the mode picker * feat(releases): minor style update to match prototype on the mode picker * refactor(releases): moving search into table header as per prototype * chore(corel): add eslintrc change, remove progress icon and update types (#7050) --------- Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> * refactor(releases): removing shortRelativeDate (#7051) * chore(corel): add bundles provider (#7054) * chore(corel): add bundles provider * fix(corel): update bundles overview tests * feat(COREL): update types to bundle + add create bundle functionality (#7047) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): only show the list of bundles if it has more than published / drafts * chore(sanity): remove warnings comments * refactor(COREL): refactor version context & renaming (#7071) * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * chore(sanity): update LATEST type to Partial * refactor(sanity): make single bundle menu + clean up * chore(sanity): remove warnings comments * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * chore(sanity): remove isDraft from usePerspective, add new util * refactor(sanity): remove isDraft * refactor(sanity): use current global in the bundle badge * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider (#7074) * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider * fix(corel): update imports for bundleRow test * chore(corel): disable publish tests * fix(corel): update failing tests * fix(corel): update bundle actions definition * fix(corel): remove not used file * fix(corel): update DocumentHeaderTitle test * fix(corel): fix lint issues * feat(releases): archive and unarchive releases (#7072) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * feat(releases): support for (un)archive * chore(releases): updating testing for BundlesOverview * chore(releases): new tests for BundleMenuButton and (un)archive * fix(releases): disabling bundle menu btn when action is performed --------- Co-authored-by: RitaDias Co-authored-by: RitaDias * refactor(sanity): move bundle metadata store to resource cache Co-authored-by: Pedro Bonamin * feat(releases): bundle store starts to support bundle metadata * feat(releases): loading state only on initial fetch of metadata * feat(releases): added created at col * feat(releases): patching mutated bundle slugs * feat(releases): aggregate all metadata listening calls * fix(releases): fixing empty observed result state * refactor(releases): move to slugs; split agg from createBundleStore * fix(deps): Update dev-non-major (#7100) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency get-it to ^8.6.3 (#7108) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency @sanity/client to ^6.20.2 (#7111) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * refactor(sanity): remove "features" (#7097) * fix(deps): update dependency @sanity/client to ^6.20.2 (#7110) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency @sanity/bifur-client to ^0.4.1 (#7102) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency @sanity/ui to ^2.6.3 (#7104) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency react-rx to ^3.1.1 (#7113) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @sanity/tsdoc to v1.0.83 (#7080) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency esbuild to ^0.23.0 (#7106) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * test(cli): use separate tarball location for cursor export test (#7118) * fix(core): minor typo fix in i18n comment (#7115) * fix(core): minor typo fix in i18n comment * refactor(structure): add missing space to tsdoc * feat(router): update router to support query params in intent links (#7095) * feat(router): update router to support query params in intent links * fix(core): update RouterStateEvent interface * chore(core): add tests for query param intents * feat(sanity): add 'perspective' dropdown * fix(sanity): global perspective state restoration * feat(sanity): hardcode `summerDrop` and `autumnDrop` bundles * feat(sanity): reflect checked out bundle in document lists and list previews * debug(sanity): add version debug output to list previews * feat(sanity): add action to create new version based on an doc id * feat(sanity): update document title + version popover - add new and from existing versions * chore(sanity): move versions menu to versions folder * chore(sanity): update check for checking version * fix(sanity): ability to add new versions to doc * feat(sanity): add dumb bundle and version data, add icons and hues * feat(sanity): update styles and don't rely on random * update isVersion * docs(sanity): update comments * feat(sanity): add "latest version" menu button * refactor(sanity): update comments * chore(sanity): remove import from format date. will use something else * fix(sanity): allow uppercase characters in version identifiers * feat(sanity): add tag to list document versions request * feat(corel): integrate bundles store (#7040) * feat(corel): add bundles store * feat(corel): doc and structure updates (#7039) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(sanity): update method * refactor(sanity): update drafts name (draft -> drafts) in LATEST & context * refactor(sanity): use handleBundleChange instead of two separate methods * refactor(sanity): update title to use LATEST const * refactor(sanity): update draft filtering and checks (global and document level) * refactor(sanity): update context to rely on router & update query to match existing bundles (MOCK) * refactor(sanity): update handle methods to have callback * feat(sanity): add guardrails for title naming on bundle create * docs(sanity): update comments to potentially move things to plugin * refactor(sanity): merge version badges & icons * refactor(sanity): use speakingurl instead of toSlug * feat(releases): initialising releases plugin (#7048) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * feat(releases): create releases tool as default plugin * feat(releases): styling and components for basic releases overview * feat(releases): adding release detail page and routing * feat(releases): uri decoding releaseID * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * feat(corel): add bundles store * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * chore(corel): use rxjs in bundlesStore listener * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(corel): add retry to initialFetch * feat(releases): remove the ready concepts * feat(corel): include useBundleOperations and story * fix(corel): update imports paths * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(releases): refactor releases to bundles * feat(releases): using bundle ops to fetch and create add-on bundles * refactor(releases): type guard for at least one bundle returned * fix(releases): fixing issue where overview header not hidden when no bundles * feat(releases): search filters list of releases * refactor(releases): minor refactor of hooks in BundlesOverview * refactor(sanity): update method * feat(releases): addijg concept loosely of bundle documents * feat(releases): testing for BundlesTable * feat(releases): testing for BundlesTable * feat(releases): testing for releases overview page * refactor(release): fixing types on the custom queries * refactor(releases): Creating BundleIcon * refactor(releases): minor refactor and tidy to component logic * refactor(releases): minor format changes * refactor(releases): create bundle dialog creates itself and then returns * refactor(releases): create bundle dialog creates itself and then returns * feat(releases): minor style update to match prototype on the mode picker * feat(releases): minor style update to match prototype on the mode picker * refactor(releases): moving search into table header as per prototype * chore(corel): add eslintrc change, remove progress icon and update types (#7050) --------- Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> * refactor(releases): removing shortRelativeDate (#7051) * chore(corel): add bundles provider (#7054) * chore(corel): add bundles provider * fix(corel): update bundles overview tests * feat(COREL): update types to bundle + add create bundle functionality (#7047) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): only show the list of bundles if it has more than published / drafts * chore(sanity): remove warnings comments * refactor(COREL): refactor version context & renaming (#7071) * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * chore(sanity): update LATEST type to Partial * refactor(sanity): make single bundle menu + clean up * chore(sanity): remove warnings comments * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * chore(sanity): remove isDraft from usePerspective, add new util * refactor(sanity): remove isDraft * refactor(sanity): use current global in the bundle badge * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider (#7074) * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider * fix(corel): update imports for bundleRow test * chore(corel): disable publish tests * fix(corel): update failing tests * fix(corel): update bundle actions definition * fix(corel): remove not used file * fix(corel): update DocumentHeaderTitle test * fix(corel): fix lint issues * feat(releases): archive and unarchive releases (#7072) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * feat(releases): support for (un)archive * chore(releases): updating testing for BundlesOverview * chore(releases): new tests for BundleMenuButton and (un)archive * fix(releases): disabling bundle menu btn when action is performed --------- Co-authored-by: RitaDias Co-authored-by: RitaDias * refactor(sanity): move bundle metadata store to resource cache Co-authored-by: Pedro Bonamin * refactor(releases): only adding metadata context when not already existing * refactor(releases): only adding metadata context when not already existing * refactor(releases): creating tableBundles in BundlesOverview * refactor(releases): renaming projection of query for metadata * chore(releases): code comments * fix(releases): fixing issue with removing bundles from aggregator listener * refactor(releases): nesting bundle doc metadata in TableBunde * fix(corel): update releases router to use bundle name * feat(corel): add bundle details screen * chore: update @sanity/icons package * feat(corel): releases DocumentRow updates * fix(corel): update BundleIconEditorPicker types * fix(corel): update bundles table test * fix(corel): add filter in documents table * chore(corel): update file location and naming * feat(corel): add document actions to document row * fix(core): remove references to bundles in useListener hook * fix(corel): add search params to IntentLink * chore(corel): remove router type change and restore previous pnpm-lock file * fix(releases): fixing tests for BundlesTable * fix(releases):adding tests for doc count and updated time to bundles table * fix(corel): update bundlesTable tests * fix(releases): fixing BundlesOverview tests * feat(releases): delete bundle confirm lists document count in bundle * refactor(releases): update BundlesMetadataContext to export interface * fix(releases): fix BundlesTable tests * refactor(releases): rename components and files to releases rather than bundles * feat(releases): assigning authorId on release creation * fix(releases): update BundleMenuButton test with hue and icon properties * feat(releases): release detail delete uses documents count in bundle * fix(releases): using short and temporal version of relative time * refactor(releases): startWith to handle initial loading state on fetch --------- Co-authored-by: Bjørge Næss Co-authored-by: Ash Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Espen Hovlandsdal * feat(corel): Add review changes screen (#7155) * fix(corel): add prepareForPreview in useDocumentPreviewValues * feat(corel): add review changes screen * fix(corel): update ReleaseReview to use new documents history data * feat(corel): add published document listener to review changes screen * feat(core): add new useObserveDocument hook * feat(corel): move active screen state to query params * chore(corel): make documentDiff component agnostic to releases * fix(corel): update document diff is changed check * fix(corel): update useObserveDocument hook, export it as unstable * chore(corel): add tests to release review screen * chore(corel): rename bundle.name to bundle.slug (#7171) * chore(corel): rename bundle.name to bundle.slug * chore(corel): add migration script and handlers * fix(corel): update BundleDocument interface definition * chore: use corel pnpm lock file * chore: update styling * refactor(COREL): refactor version context & renaming (#7071) * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * chore(sanity): update LATEST type to Partial * refactor(sanity): make single bundle menu + clean up * chore(sanity): remove warnings comments * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * chore(sanity): remove isDraft from usePerspective, add new util * refactor(sanity): remove isDraft * refactor(sanity): use current global in the bundle badge * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider (#7074) * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider * fix(corel): update imports for bundleRow test * chore(corel): disable publish tests * fix(corel): update failing tests * fix(corel): update bundle actions definition * fix(corel): remove not used file * fix(corel): update DocumentHeaderTitle test * fix(corel): fix lint issues * feat(releases): archive and unarchive releases (#7072) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * feat(releases): support for (un)archive * chore(releases): updating testing for BundlesOverview * chore(releases): new tests for BundleMenuButton and (un)archive * fix(releases): disabling bundle menu btn when action is performed --------- Co-authored-by: RitaDias Co-authored-by: RitaDias * refactor(sanity): move bundle metadata store to resource cache Co-authored-by: Pedro Bonamin * feat(corel): remove version documents when deleting bundle (#7107) * feat(corel): releases details screen. (#7092) * fix(corel): update releases router to use bundle name * feat(corel): add bundle details screen * chore: update @sanity/icons package * feat(corel): releases DocumentRow updates * fix(corel): update BundleIconEditorPicker types * fix(corel): update bundles table test * fix(corel): add filter in documents table * chore(corel): update file location and naming * feat(corel): add document actions to document row * fix(core): remove references to bundles in useListener hook * fix(corel): add search params to IntentLink * chore(corel): remove router type change and restore previous pnpm-lock file * fix(corel): update bundlesTable tests * test(COREL): add core tests (#7119) * test(sanity): try to find solution for test * wip: add theme provider to test * test(sanity): add test to bundleForm & add createWrapper in core * test(sanity): add test to BundleIconEditorPicker * chore(sanity): update createWrapper * test(sanity): update bundleForm test * test(sanity) add createBundleDialog tests * test(sanity) add BundleMenu tests * refactor(sanity): add prop to createWrapper to access TestProviderOptions --------- Co-authored-by: Ash * feat(sanity): #TEMPORARY #DELETE handle versions in `DocumentPaneProvider` * fix(sanity): avoid fetching in a loop * fix(corel): refactor version history to fetch all release documents (#7150) * refactor(COREL): update title & date validation (#7148) * refactor(sanity): refactor error setting * refactor(sanity): refactor title error setting * refactor(sanity): refactor date error setting * docs(sanity): update comments * chore(sanity): clean up * test(sanity): update bundleiconeditorpicker test * test(sanity): update bundleForm test * test(sanity): update bundleForm & createBundleDialog test * test: update form and update tests * chore: hide publish date (#7162) * feat(releases): last edited and document count in bundle (#7124) * feat(sanity): add support for sticky query params * feat(sanity): add 'perspective' dropdown * feat(sanity): include `_version` field in search results * feat(types): add `_version` field to `SanityDocument` and `SanityDocumentLike` * fix(sanity): global perspective state restoration * feat(sanity): hardcode `summerDrop` and `autumnDrop` bundles * wip: allow pairs to include multiple drafts * feat(sanity): support versioned document ids in `getPublishedId` function * feat(sanity): add `_version` field to preview observation * feat(sanity): reflect checked out bundle in document lists and list previews * debug(sanity): add version debug output to list previews * feat(sanity): add action to create new version based on an doc id * feat(sanity): update document title + version popover - add new and from existing versions * chore(sanity): move versions menu to versions folder * chore(sanity): update check for checking version * fix(sanity): ability to add new versions to doc * feat(sanity): add dumb bundle and version data, add icons and hues * feat(sanity): update styles and don't rely on random * update isVersion * docs(sanity): update comments * feat(sanity): add "latest version" menu button * refactor(sanity): update comments * chore(sanity): remove import from format date. will use something else * fix(sanity): allow uppercase characters in version identifiers * feat(sanity): add tag to list document versions request * feat(corel): integrate bundles store (#7040) * feat(corel): add bundles store * feat(corel): doc and structure updates (#7039) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(sanity): update method * refactor(sanity): update drafts name (draft -> drafts) in LATEST & context * refactor(sanity): use handleBundleChange instead of two separate methods * refactor(sanity): update title to use LATEST const * refactor(sanity): update draft filtering and checks (global and document level) * refactor(sanity): update context to rely on router & update query to match existing bundles (MOCK) * refactor(sanity): update handle methods to have callback * feat(sanity): add guardrails for title naming on bundle create * docs(sanity): update comments to potentially move things to plugin * refactor(sanity): merge version badges & icons * refactor(sanity): use speakingurl instead of toSlug * feat(releases): initialising releases plugin (#7048) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * feat(releases): create releases tool as default plugin * feat(releases): styling and components for basic releases overview * feat(releases): adding release detail page and routing * feat(releases): uri decoding releaseID * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * feat(corel): add bundles store * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * chore(corel): use rxjs in bundlesStore listener * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(corel): add retry to initialFetch * feat(releases): remove the ready concepts * feat(corel): include useBundleOperations and story * fix(corel): update imports paths * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(releases): refactor releases to bundles * feat(releases): using bundle ops to fetch and create add-on bundles * refactor(releases): type guard for at least one bundle returned * fix(releases): fixing issue where overview header not hidden when no bundles * feat(releases): search filters list of releases * refactor(releases): minor refactor of hooks in BundlesOverview * refactor(sanity): update method * feat(releases): addijg concept loosely of bundle documents * feat(releases): testing for BundlesTable * feat(releases): testing for BundlesTable * feat(releases): testing for releases overview page * refactor(release): fixing types on the custom queries * refactor(releases): Creating BundleIcon * refactor(releases): minor refactor and tidy to component logic * refactor(releases): minor format changes * refactor(releases): create bundle dialog creates itself and then returns * refactor(releases): create bundle dialog creates itself and then returns * feat(releases): minor style update to match prototype on the mode picker * feat(releases): minor style update to match prototype on the mode picker * refactor(releases): moving search into table header as per prototype * chore(corel): add eslintrc change, remove progress icon and update types (#7050) --------- Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> * refactor(releases): removing shortRelativeDate (#7051) * chore(corel): add bundles provider (#7054) * chore(corel): add bundles provider * fix(corel): update bundles overview tests * feat(COREL): update types to bundle + add create bundle functionality (#7047) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): only show the list of bundles if it has more than published / drafts * chore(sanity): remove warnings comments * refactor(COREL): refactor version context & renaming (#7071) * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * chore(sanity): update LATEST type to Partial * refactor(sanity): make single bundle menu + clean up * chore(sanity): remove warnings comments * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * chore(sanity): remove isDraft from usePerspective, add new util * refactor(sanity): remove isDraft * refactor(sanity): use current global in the bundle badge * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider (#7074) * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider * fix(corel): update imports for bundleRow test * chore(corel): disable publish tests * fix(corel): update failing tests * fix(corel): update bundle actions definition * fix(corel): remove not used file * fix(corel): update DocumentHeaderTitle test * fix(corel): fix lint issues * feat(releases): archive and unarchive releases (#7072) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * feat(releases): support for (un)archive * chore(releases): updating testing for BundlesOverview * chore(releases): new tests for BundleMenuButton and (un)archive * fix(releases): disabling bundle menu btn when action is performed --------- Co-authored-by: RitaDias Co-authored-by: RitaDias * refactor(sanity): move bundle metadata store to resource cache Co-authored-by: Pedro Bonamin * feat(releases): bundle store starts to support bundle metadata * feat(releases): loading state only on initial fetch of metadata * feat(releases): added created at col * feat(releases): patching mutated bundle slugs * feat(releases): aggregate all metadata listening calls * fix(releases): fixing empty observed result state * refactor(releases): move to slugs; split agg from createBundleStore * fix(deps): Update dev-non-major (#7100) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency get-it to ^8.6.3 (#7108) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency @sanity/client to ^6.20.2 (#7111) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * refactor(sanity): remove "features" (#7097) * fix(deps): update dependency @sanity/client to ^6.20.2 (#7110) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency @sanity/bifur-client to ^0.4.1 (#7102) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency @sanity/ui to ^2.6.3 (#7104) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency react-rx to ^3.1.1 (#7113) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @sanity/tsdoc to v1.0.83 (#7080) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency esbuild to ^0.23.0 (#7106) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * test(cli): use separate tarball location for cursor export test (#7118) * fix(core): minor typo fix in i18n comment (#7115) * fix(core): minor typo fix in i18n comment * refactor(structure): add missing space to tsdoc * feat(router): update router to support query params in intent links (#7095) * feat(router): update router to support query params in intent links * fix(core): update RouterStateEvent interface * chore(core): add tests for query param intents * feat(sanity): add 'perspective' dropdown * fix(sanity): global perspective state restoration * feat(sanity): hardcode `summerDrop` and `autumnDrop` bundles * feat(sanity): reflect checked out bundle in document lists and list previews * debug(sanity): add version debug output to list previews * feat(sanity): add action to create new version based on an doc id * feat(sanity): update document title + version popover - add new and from existing versions * chore(sanity): move versions menu to versions folder * chore(sanity): update check for checking version * fix(sanity): ability to add new versions to doc * feat(sanity): add dumb bundle and version data, add icons and hues * feat(sanity): update styles and don't rely on random * update isVersion * docs(sanity): update comments * feat(sanity): add "latest version" menu button * refactor(sanity): update comments * chore(sanity): remove import from format date. will use something else * fix(sanity): allow uppercase characters in version identifiers * feat(sanity): add tag to list document versions request * feat(corel): integrate bundles store (#7040) * feat(corel): add bundles store * feat(corel): doc and structure updates (#7039) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(sanity): update method * refactor(sanity): update drafts name (draft -> drafts) in LATEST & context * refactor(sanity): use handleBundleChange instead of two separate methods * refactor(sanity): update title to use LATEST const * refactor(sanity): update draft filtering and checks (global and document level) * refactor(sanity): update context to rely on router & update query to match existing bundles (MOCK) * refactor(sanity): update handle methods to have callback * feat(sanity): add guardrails for title naming on bundle create * docs(sanity): update comments to potentially move things to plugin * refactor(sanity): merge version badges & icons * refactor(sanity): use speakingurl instead of toSlug * feat(releases): initialising releases plugin (#7048) * docs(sanity): update comment on getAllVersionsOfDocument * fix(sanity): listing existing versions didn't account for published * chore(sanity): move latest version up (temp) * feat(sanity): update navigation of perspective + add "current badge" * feat(sanity): add global version navigation * refactor(sanity): hide document version picker, update the document icon * feat(sanity): update studio nav bar (reduce create button + spacing) * chore(sanity): general cleanup * feat(sanity): add version provider, hide only the version picker in document * feat(releases): create releases tool as default plugin * feat(releases): styling and components for basic releases overview * feat(releases): adding release detail page and routing * feat(releases): uri decoding releaseID * chore(sanity): clean up version context * chore(sanity): clean up, move components & files to single folder * chore(sanity): clean up, move components & files to single folder * feat(corel): add bundles store * chore(sanity): add ready button to document footer * refactor(sanity): remove isVersion and add frontend guardrails * chore(sanity): clean duplicate component * chore(sanity): clean up missing dependencies * refactor(sanity): update button * chore(corel): use rxjs in bundlesStore listener * refactor(sanity): clear up naming * chore(sanity): hide ready * chore(sanity): ready todos * feat(corel): add retry to initialFetch * feat(releases): remove the ready concepts * feat(corel): include useBundleOperations and story * fix(corel): update imports paths * feat(sanity): add bundle modal + update colours + remove add new version from doc * refactor(sanity): rename from release to bundle * refactor(sanity): clean up code for types (bundleform) * refactor(releases): refactor releases to bundles * feat(releases): using bundle ops to fetch and create add-on bundles * refactor(releases): type guard for at least one bundle returned * fix(releases): fixing issue where overview header not hidden when no bundles * feat(releases): search filters list of releases * refactor(releases): minor refactor of hooks in BundlesOverview * refactor(sanity): update method * feat(releases): addijg concept loosely of bundle documents * feat(releases): testing for BundlesTable * feat(releases): testing for BundlesTable * feat(releases): testing for releases overview page * refactor(release): fixing types on the custom queries * refactor(releases): Creating BundleIcon * refactor(releases): minor refactor and tidy to component logic * refactor(releases): minor format changes * refactor(releases): create bundle dialog creates itself and then returns * refactor(releases): create bundle dialog creates itself and then returns * feat(releases): minor style update to match prototype on the mode picker * feat(releases): minor style update to match prototype on the mode picker * refactor(releases): moving search into table header as per prototype * chore(corel): add eslintrc change, remove progress icon and update types (#7050) --------- Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> * refactor(releases): removing shortRelativeDate (#7051) * chore(corel): add bundles provider (#7054) * chore(corel): add bundles provider * fix(corel): update bundles overview tests * feat(COREL): update types to bundle + add create bundle functionality (#7047) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): only show the list of bundles if it has more than published / drafts * chore(sanity): remove warnings comments * refactor(COREL): refactor version context & renaming (#7071) * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * chore(sanity): update LATEST type to Partial * refactor(sanity): make single bundle menu + clean up * chore(sanity): remove warnings comments * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * chore(sanity): remove isDraft from usePerspective, add new util * refactor(sanity): remove isDraft * refactor(sanity): use current global in the bundle badge * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider (#7074) * fix(corel): update uses of collate, add typeguard for bundles and add release tag to addonDatasetProvider * fix(corel): update imports for bundleRow test * chore(corel): disable publish tests * fix(corel): update failing tests * fix(corel): update bundle actions definition * fix(corel): remove not used file * fix(corel): update DocumentHeaderTitle test * fix(corel): fix lint issues * feat(releases): archive and unarchive releases (#7072) * refactor(sanity): update types to bundle * feat(sanity): add ability to create releases from dialog + update types * feat(sanity): update list on global and document to use store * feat(sanity): update types, add icon and hue picker to bundles, update uis * feat(sanity): add date picker to bundleform * refactor(sanity): update publishAt fields in menus * refactor(sanity): update type in dummyGetter * chore(sanity): remove BUNDLES const * chore(sanity): update LATEST type to Partial * chore(sanity): update validation for bundle date creation * chore(sanity): clean up code * refactor(sanity): add archived filter * refactor(sanity): make single bundle menu + clean up * chore(sanity): add missing properties * feat(sanity): add loading & remove unused code * feat(sanity): add loading to document version, update filter * chore(sanity): rename VersionBadge to BundleBadge * chore(sanity): clean up methods and style * chore(sanity): remove unused import * refactor(sanity): use Bundle provider instead of store * chore(sanity): update bundleRow to use the new name for badge * chore(sanity): clean up code * refactor(sanity): re-add oncancel and oncreate props in dialog * refactor(sanity): add scroll to bundle menu * refactor(sanity): move from archived to archivedAt * refactor(sanity): move version provider to its own file + organise + add useVersion * refactor(sanity): remove provider + context, move logic to hook * chore(sanity): remove comments + change name from setCurrentVersion to setGlobalBundle * chore(sanity): rename useVersion to useBundle * chore(sanity): update comments * chore(sanity): Rename currentVersion * refactor(sanity): rename currentBudnle and setGlobalBundle * chore(sanity): rename versions to bundles in core directory * chore(sanity): rename to GlobalPerspectiveMenu and move to navbar directory * chore(sanity): rename to DocumentPerspectiveMenu and move to navbar directory * feat(releases): support for (un)archive * chore(releases): updating testing for BundlesOverview * chore(releases): new tests for BundleMenuButton and (un)archive * fix(releases): disabling bundle menu btn when action is performed --------- Co-authored-by: RitaDias Co-authored-by: RitaDias * refactor(sanity): move bundle metadata store to resource cache Co-authored-by: Pedro Bonamin * refactor(releases): only adding metadata context when not already existing * refactor(releases): only adding metadata context when not already existing * refactor(releases): creating tableBundles in BundlesOverview * refactor(releases): renaming projection of query for metadata * chore(releases): code comments * fix(releases): fixing issue with removing bundles from aggregator listener * refactor(releases): nesting bundle doc metadata in TableBunde * fix(corel): update releases router to use bundle name * feat(corel): add bundle details screen * chore: update @sanity/icons package * feat(corel): releases DocumentRow updates * fix(corel): update BundleIconEditorPicker types * fix(corel): update bundles table test * fix(corel): add filter in documents table * chore(corel): update file location and naming * feat(corel): add document actions to document row * fix(core): remove references to bundles in useListener hook * fix(corel): add search params to IntentLink * chore(corel): remove router type change and restore previous pnpm-lock file * fix(releases): fixing tests for BundlesTable * fix(releases):adding tests for doc count and updated time to bundles table * fix(corel): update bundlesTable tests * fix(releases): fixing BundlesOverview tests * feat(releases): delete bundle confirm lists document count in bundle * refactor(releases): update BundlesMetadataContext to export interface * fix(releases): fix BundlesTable tests * refactor(releases): rename components and files to releases rather than bundles * feat(releases): assigning authorId on release creation * fix(releases): update BundleMenuButton test with hue and icon properties * feat(releases): release detail delete uses documents count in bundle * fix(releases): using short and temporal version of relative time * refactor(releases): startWith to handle initial loading state on fetch --------- Co-authored-by: Bjørge Næss Co-authored-by: Ash Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> Co-authored-by: RitaDias Co-authored-by: Pedro Bonamin Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Espen Hovlandsdal * feat(corel): Add review changes screen (#7155) * fix(corel): add prepareForPreview in useDocumentPreviewValues * feat(corel): add review changes screen * fix(corel): update ReleaseReview to use new documents history data * feat(corel): add published document listener to review changes screen * feat(core): add new useObserveDocument hook * feat(corel): move active screen state to query params * chore(corel): make documentDiff component agnostic to releases * fix(corel): update document diff is changed check * fix(corel): update useObserveDocument hook, export it as unstable * chore(corel): add tests to release review screen * chore(corel): rename bundle.name to bundle.slug (#7171) * chore(corel): rename bundle.name to bundle.slug * chore(corel): add migration script and handlers * fix(corel): update BundleDocument interface definition * chore: update styling * docs: update tags * chore: update linting * test: update DocumentHeaderTitle test & add guardrails --------- Co-authored-by: Bjørge Næss Co-authored-by: Ash Co-authored-by: Pedro Bonamin <46196328+pedrobonamin@users.noreply.github.com> Co-authored-by: Jordan Lawrence Co-authored-by: Pedro Bonamin Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Espen Hovlandsdal --- .../src/core/bundles/util/dummyGetters.ts | 8 +- .../core/bundles/util/tests/createWrapper.tsx | 4 + packages/sanity/src/core/index.ts | 2 + .../sanity/src/core/releases/plugin/index.ts | 9 + .../header/DocumentHeaderTitle.test.tsx | 16 +- .../DocumentPerspectiveMenu.test.tsx | 164 ++++++++++++++++++ .../perspective/DocumentPerspectiveMenu.tsx | 55 ++++-- 7 files changed, 236 insertions(+), 22 deletions(-) create mode 100644 packages/sanity/src/structure/panes/document/documentPanel/header/perspective/DocumentPerspectiveMenu.test.tsx diff --git a/packages/sanity/src/core/bundles/util/dummyGetters.ts b/packages/sanity/src/core/bundles/util/dummyGetters.ts index b12cf2d436b..e6aee37afdb 100644 --- a/packages/sanity/src/core/bundles/util/dummyGetters.ts +++ b/packages/sanity/src/core/bundles/util/dummyGetters.ts @@ -25,7 +25,7 @@ export async function getAllVersionsOfDocument( return await client.fetch(query, {}, {tag: 'document.list-versions'}).then((documents) => { return documents.map((doc: SanityDocument) => { - const sluggedName = getVersionName(doc._id) + const sluggedName = getBundleSlug(doc._id) const bundle = bundles?.find((b) => b.slug === sluggedName) return { name: speakingurl(sluggedName), @@ -38,7 +38,11 @@ export async function getAllVersionsOfDocument( }) } -export function getVersionName(documentId: string): string { +/** + * @internal + * @hidden + */ +export function getBundleSlug(documentId: string): string { if (documentId.indexOf('.') === -1) return 'Published' const version = documentId.slice(0, documentId.indexOf('.')) return version diff --git a/packages/sanity/src/core/bundles/util/tests/createWrapper.tsx b/packages/sanity/src/core/bundles/util/tests/createWrapper.tsx index 120caff9290..f190aee7cb2 100644 --- a/packages/sanity/src/core/bundles/util/tests/createWrapper.tsx +++ b/packages/sanity/src/core/bundles/util/tests/createWrapper.tsx @@ -6,6 +6,10 @@ import { type TestProviderOptions, } from '../../../../../test/testUtils/TestProvider' +/** + * @internal + * @hidden + */ export const createWrapper = async (options?: TestProviderOptions) => { const TestProvider = await createTestProvider(options) return function Wrapper({children}: {children: ReactNode}): JSX.Element { diff --git a/packages/sanity/src/core/index.ts b/packages/sanity/src/core/index.ts index 341df7781cd..06cc369f1b0 100644 --- a/packages/sanity/src/core/index.ts +++ b/packages/sanity/src/core/index.ts @@ -2,7 +2,9 @@ export { BundleActions, BundleBadge, BundleMenu, + createWrapper, getAllVersionsOfDocument, + getBundleSlug, LATEST, usePerspective, } from './bundles' diff --git a/packages/sanity/src/core/releases/plugin/index.ts b/packages/sanity/src/core/releases/plugin/index.ts index 6fb23ab6b6c..09b5fe5be98 100644 --- a/packages/sanity/src/core/releases/plugin/index.ts +++ b/packages/sanity/src/core/releases/plugin/index.ts @@ -25,6 +25,15 @@ export const releases = definePlugin({ title: 'Releases', component: ReleasesTool, router: route.create('/', [route.create('/:bundleSlug')]), + canHandleIntent: (intent, params) => { + return Boolean(intent === 'release' && params.slug) + }, + getIntentState(intent, params) { + if (intent === 'release') { + return {bundleSlug: params.slug} + } + return null + }, }, ], }) diff --git a/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentHeaderTitle.test.tsx b/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentHeaderTitle.test.tsx index e6f489789d1..de78fa0d9d9 100644 --- a/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentHeaderTitle.test.tsx +++ b/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentHeaderTitle.test.tsx @@ -1,6 +1,11 @@ import {afterEach, beforeEach, describe, expect, it, jest} from '@jest/globals' import {render, waitFor} from '@testing-library/react' -import {defineConfig, type SanityClient, unstable_useValuePreview as useValuePreview} from 'sanity' +import { + defineConfig, + type SanityClient, + unstable_useValuePreview as useValuePreview, + useBundles, +} from 'sanity' import {useRouter} from 'sanity/router' import {createMockSanityClient} from '../../../../../../test/mocks/mockSanityClient' @@ -31,6 +36,8 @@ jest.mock('sanity', () => { return { ...actual, unstable_useValuePreview: jest.fn(), + useBundles: jest.fn(), + getBundleSlug: jest.fn(() => ''), } }) @@ -39,6 +46,8 @@ jest.mock('../../../../../core/bundles/util/dummyGetters', () => ({ getAllVersionsOfDocument: jest.fn(() => []), })) +const mockUseBundles = useBundles as jest.Mock + describe('DocumentHeaderTitle', () => { const mockUseDocumentPane = useDocumentPane as jest.MockedFunction const mockUseValuePreview = useValuePreview as jest.MockedFunction @@ -59,6 +68,11 @@ describe('DocumentHeaderTitle', () => { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore mockUseRouter.mockReturnValue({stickyParams: {}, state: {}, navigate: jest.fn()}) + mockUseBundles.mockReturnValue({ + data: [], + loading: false, + dispatch: jest.fn(), + }) }) afterEach(() => { diff --git a/packages/sanity/src/structure/panes/document/documentPanel/header/perspective/DocumentPerspectiveMenu.test.tsx b/packages/sanity/src/structure/panes/document/documentPanel/header/perspective/DocumentPerspectiveMenu.test.tsx new file mode 100644 index 00000000000..875ab948b33 --- /dev/null +++ b/packages/sanity/src/structure/panes/document/documentPanel/header/perspective/DocumentPerspectiveMenu.test.tsx @@ -0,0 +1,164 @@ +import {beforeEach, describe, expect, it, jest} from '@jest/globals' +import {fireEvent, render, screen} from '@testing-library/react' +import { + BundleBadge, + type BundleDocument, + createWrapper, + getAllVersionsOfDocument, + getBundleSlug, + type SanityClient, + useBundles, + useClient, + usePerspective, +} from 'sanity' +import {useRouter} from 'sanity/router' + +import {DocumentPerspectiveMenu} from './DocumentPerspectiveMenu' + +type getBundleSlugType = (documentId: string) => string +type GetAllVersionsOfDocumentType = ( + bundles: BundleDocument[] | null, + client: SanityClient, + documentId: string, +) => Promise[]> + +jest.mock('sanity', () => ({ + useClient: jest.fn(), + usePerspective: jest.fn().mockReturnValue({ + currentGlobalBundle: {}, + setPerspective: jest.fn(), + }), + getAllVersionsOfDocument: jest.fn(() => + Promise.resolve([ + { + name: 'spring-drop', + title: 'Spring Drop', + hue: 'magenta', + icon: 'heart-filled', + }, + ]), + ), + BundleBadge: jest.fn(), + useBundles: jest.fn(), + getBundleSlug: jest.fn(() => ''), +})) + +jest.mock('sanity/router', () => ({ + useRouter: jest.fn().mockReturnValue({ + navigateIntent: jest.fn(), + }), + route: { + create: jest.fn(), + }, + IntentLink: jest.fn(), +})) + +const mockUseClient = useClient as jest.Mock +const mockUseRouter = useRouter as jest.MockedFunction +const navigateIntent = mockUseRouter().navigateIntent as jest.Mock + +const mockUseBundles = useBundles as jest.Mock +const mockUsePerspective = usePerspective as jest.Mock +const mockGetBundleSlug = getBundleSlug as jest.MockedFunction +const mockGetAllVersionsOfDocument = + getAllVersionsOfDocument as jest.MockedFunction +const mockBundleBadge = BundleBadge as jest.Mock + +describe('DocumentPerspectiveMenu', () => { + const mockCurrent: BundleDocument = { + description: 'What a spring drop, allergies galore 🌸', + _updatedAt: '2024-07-12T10:39:32Z', + _rev: 'HdJONGqRccLIid3oECLjYZ', + authorId: 'pzAhBTkNX', + title: 'Spring Drop', + icon: 'heart-filled', + _id: 'db76c50e-358b-445c-a57c-8344c588a5d5', + _type: 'bundle', + slug: 'spring-drop', + hue: 'magenta', + _createdAt: '2024-07-02T11:37:51Z', + } + + beforeEach(() => { + jest.clearAllMocks() + + mockUseClient.mockReturnValue({}) + + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + + mockBundleBadge.mockImplementation(() =>
"test"
) + + // Mock the data returned by useBundles hook + const mockData: BundleDocument[] = [mockCurrent] + + mockUseBundles.mockReturnValue({ + data: mockData, + loading: false, + dispatch: jest.fn(), + }) + + mockUsePerspective.mockReturnValue({ + currentGlobalBundle: mockCurrent, + setPerspective: jest.fn(), + }) + }) + + it('should render the bundle badge if the document exists in the global bundle', async () => { + // Dummy Getters + mockGetBundleSlug.mockReturnValue('spring-drop') + + mockGetAllVersionsOfDocument.mockImplementationOnce( + (): Promise => + Promise.resolve([ + { + name: 'spring-drop', + title: 'Spring Drop', + hue: 'magenta', + icon: 'heart-filled', + }, + ]), + ) + + const wrapper = await createWrapper() + render(, {wrapper}) + + expect(screen.getByTestId('button-document-release')).toBeInTheDocument() + }) + + it('should not render the bundle badge if the document does not exist in the bundle', async () => { + // Dummy Getters + mockGetBundleSlug.mockReturnValue('no-bundle') + + const wrapper = await createWrapper() + render(, {wrapper}) + + expect(screen.queryByTestId('button-document-release')).toBeNull() + }) + + it('should navigate to the release intent when the bundle badge is clicked', async () => { + // Dummy Getters + mockGetBundleSlug.mockReturnValue('spring-drop') + + mockGetAllVersionsOfDocument.mockImplementationOnce( + (): Promise => + Promise.resolve([ + { + name: 'spring-drop', + title: 'Spring Drop', + hue: 'magenta', + icon: 'heart-filled', + }, + ]), + ) + + const wrapper = await createWrapper() + render(, {wrapper}) + + expect(screen.queryByTestId('button-document-release')).toBeInTheDocument() + fireEvent.click(screen.getByTestId('button-document-release')) + + expect(navigateIntent).toHaveBeenCalledTimes(1) + expect(navigateIntent).toHaveBeenCalledWith('release', {slug: 'spring-drop'}) + }) +}) diff --git a/packages/sanity/src/structure/panes/document/documentPanel/header/perspective/DocumentPerspectiveMenu.tsx b/packages/sanity/src/structure/panes/document/documentPanel/header/perspective/DocumentPerspectiveMenu.tsx index 05cb4d571fd..53bdee5527c 100644 --- a/packages/sanity/src/structure/panes/document/documentPanel/header/perspective/DocumentPerspectiveMenu.tsx +++ b/packages/sanity/src/structure/panes/document/documentPanel/header/perspective/DocumentPerspectiveMenu.tsx @@ -1,30 +1,35 @@ import {ChevronDownIcon} from '@sanity/icons' import {Box, Button} from '@sanity/ui' -import {useCallback, useEffect, useState} from 'react' +import {useCallback, useEffect, useMemo, useState} from 'react' import { BundleBadge, type BundleDocument, BundleMenu, DEFAULT_STUDIO_CLIENT_OPTIONS, getAllVersionsOfDocument, - LATEST, + getBundleSlug, + useBundles, useClient, usePerspective, } from 'sanity' +import {useRouter} from 'sanity/router' +import {styled} from 'styled-components' -// FIXME -// eslint-disable-next-line boundaries/element-types -import {useBundles} from '../../../../../../core/store/bundles/useBundles' +const BadgeButton = styled(Button)({ + cursor: 'pointer', +}) export function DocumentPerspectiveMenu(props: {documentId: string}): JSX.Element { const {documentId} = props const client = useClient(DEFAULT_STUDIO_CLIENT_OPTIONS) - + const {data} = useBundles() const {currentGlobalBundle} = usePerspective() + const bundles = useMemo(() => data ?? [], [data]) - const {title, hue, icon} = currentGlobalBundle + const existsInBundle = bundles.some((bundle) => bundle.slug === getBundleSlug(documentId)) + const {title, hue, icon, slug} = currentGlobalBundle - const {data: bundles} = useBundles() + const router = useRouter() // TODO MAKE SURE THIS IS HOW WE WANT TO DO THIS const [documentVersions, setDocumentVersions] = useState([]) @@ -43,21 +48,33 @@ export function DocumentPerspectiveMenu(props: {documentId: string}): JSX.Elemen fetchVersionsInner() }, [fetchVersions]) + const handleBundleClick = useCallback(() => { + router.navigateIntent('release', {slug}) + }, [router, slug]) + return ( <> - {/* FIXME Version Badge should only show when the current opened document is in a version, RIGHT - NOW IT'S USING THE GLOBAL */} - {currentGlobalBundle && currentGlobalBundle.slug === LATEST.slug && ( - + {currentGlobalBundle && existsInBundle && ( + + + )} {/** TODO IS THIS STILL NEEDED? VS THE PICKER IN STUDIO NAVBAR? */} - - } - bundles={documentVersions} - loading={!documentVersions} - /> - + {documentVersions.length > 0 && ( + + } + bundles={documentVersions} + loading={!documentVersions} + /> + + )} ) }