sanity 6.9.2-next.21 → 6.9.2-next.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/lib/{AddonDatasetProvider-B5npf4J4.js → AddonDatasetProvider-CfAw3oMr.js} +2 -2
  2. package/lib/{AddonDatasetProvider-B5npf4J4.js.map → AddonDatasetProvider-CfAw3oMr.js.map} +1 -1
  3. package/lib/{CalendarFilter-DYJEZDCP.js → CalendarFilter-OHGevGRx.js} +3 -3
  4. package/lib/{CalendarFilter-DYJEZDCP.js.map → CalendarFilter-OHGevGRx.js.map} +1 -1
  5. package/lib/{CommentsDocumentLayout-CTL7lt6a.js → CommentsDocumentLayout-p8p-oNuH.js} +2 -2
  6. package/lib/{CommentsDocumentLayout-CTL7lt6a.js.map → CommentsDocumentLayout-p8p-oNuH.js.map} +1 -1
  7. package/lib/{CommentsField-BE_CI2SY.js → CommentsField-CqXs722Y.js} +3 -3
  8. package/lib/{CommentsField-BE_CI2SY.js.map → CommentsField-CqXs722Y.js.map} +1 -1
  9. package/lib/{CommentsInput-D_EM-t5a.js → CommentsInput-B3rd8HlF.js} +5 -5
  10. package/lib/{CommentsInput-D_EM-t5a.js.map → CommentsInput-B3rd8HlF.js.map} +1 -1
  11. package/lib/{CommentsInspector-DtBIUadl.js → CommentsInspector-DTHmjTFc.js} +5 -5
  12. package/lib/{CommentsInspector-DtBIUadl.js.map → CommentsInspector-DTHmjTFc.js.map} +1 -1
  13. package/lib/{CommentsListItem-BFRqZMJ6.js → CommentsListItem-C2Ac0esL.js} +3 -3
  14. package/lib/{CommentsListItem-BFRqZMJ6.js.map → CommentsListItem-C2Ac0esL.js.map} +1 -1
  15. package/lib/{CommentsSelectedPathProvider-CIKpHpK3.js → CommentsSelectedPathProvider-DwDw8s-s.js} +3 -3
  16. package/lib/{CommentsSelectedPathProvider-CIKpHpK3.js.map → CommentsSelectedPathProvider-DwDw8s-s.js.map} +1 -1
  17. package/lib/{CommentsStudioLayout-Dx0jIDle.js → CommentsStudioLayout-e2hCA_5z.js} +4 -4
  18. package/lib/{CommentsStudioLayout-Dx0jIDle.js.map → CommentsStudioLayout-e2hCA_5z.js.map} +1 -1
  19. package/lib/{ReleasesMetadataProvider-hILX90V4.js → ReleasesMetadataProvider-BWsmHWkh.js} +2 -2
  20. package/lib/{ReleasesMetadataProvider-hILX90V4.js.map → ReleasesMetadataProvider-BWsmHWkh.js.map} +1 -1
  21. package/lib/{ReleasesNav-DIv-1iR7.js → ReleasesNav-DPSjEs29.js} +14 -14
  22. package/lib/{ReleasesNav-DIv-1iR7.js.map → ReleasesNav-DPSjEs29.js.map} +1 -1
  23. package/lib/{ReleasesStudioLayout-DW7fJSfG.js → ReleasesStudioLayout-CtyE88nI.js} +8 -8
  24. package/lib/{ReleasesStudioLayout-DW7fJSfG.js.map → ReleasesStudioLayout-CtyE88nI.js.map} +1 -1
  25. package/lib/{ReleasesTool-BQjO7osC.js → ReleasesTool-BjbRMZlc.js} +15 -15
  26. package/lib/{ReleasesTool-BQjO7osC.js.map → ReleasesTool-BjbRMZlc.js.map} +1 -1
  27. package/lib/{SchedulePublishingStudioLayout-Cwmdz7HZ.js → SchedulePublishingStudioLayout-gZWH97ZL.js} +3 -3
  28. package/lib/{SchedulePublishingStudioLayout-Cwmdz7HZ.js.map → SchedulePublishingStudioLayout-gZWH97ZL.js.map} +1 -1
  29. package/lib/{SchedulePublishingUpsellProvider-C5B21VDh.js → SchedulePublishingUpsellProvider-DsI8OUg-.js} +2 -2
  30. package/lib/{SchedulePublishingUpsellProvider-C5B21VDh.js.map → SchedulePublishingUpsellProvider-DsI8OUg-.js.map} +1 -1
  31. package/lib/{ScheduledPublishingEnabledProvider-BNMAVqrS.js → ScheduledPublishingEnabledProvider-BDRtV8OB.js} +3 -3
  32. package/lib/{ScheduledPublishingEnabledProvider-BNMAVqrS.js.map → ScheduledPublishingEnabledProvider-BDRtV8OB.js.map} +1 -1
  33. package/lib/{SearchProvider-DkGUk8a6.js → SearchProvider-Hk7IMQqR.js} +4 -4
  34. package/lib/{SearchProvider-DkGUk8a6.js.map → SearchProvider-Hk7IMQqR.js.map} +1 -1
  35. package/lib/{SingleDocReleaseLayout-fW8U-ktp.js → SingleDocReleaseLayout-evCp37zs.js} +2 -2
  36. package/lib/{SingleDocReleaseLayout-fW8U-ktp.js.map → SingleDocReleaseLayout-evCp37zs.js.map} +1 -1
  37. package/lib/{SingleDocReleaseUpsellProvider-BNF2Rj3j.js → SingleDocReleaseUpsellProvider-BOe2BACb.js} +4 -4
  38. package/lib/{SingleDocReleaseUpsellProvider-BNF2Rj3j.js.map → SingleDocReleaseUpsellProvider-BOe2BACb.js.map} +1 -1
  39. package/lib/{TasksStudioActiveToolLayout-CHazNA61.js → TasksStudioActiveToolLayout-Dbs-1GX6.js} +11 -11
  40. package/lib/{TasksStudioActiveToolLayout-CHazNA61.js.map → TasksStudioActiveToolLayout-Dbs-1GX6.js.map} +1 -1
  41. package/lib/{TasksStudioLayout-B7bCL28Q.js → TasksStudioLayout-Pn-RwtPi.js} +5 -5
  42. package/lib/{TasksStudioLayout-B7bCL28Q.js.map → TasksStudioLayout-Pn-RwtPi.js.map} +1 -1
  43. package/lib/{Tool-rkq_tjXo.js → Tool-D4-WLZtb.js} +12 -12
  44. package/lib/{Tool-rkq_tjXo.js.map → Tool-D4-WLZtb.js.map} +1 -1
  45. package/lib/{UnpublishVersionDialog-DWYCXGkz.js → UnpublishVersionDialog-DmFHVqhI.js} +4 -4
  46. package/lib/{UnpublishVersionDialog-DWYCXGkz.js.map → UnpublishVersionDialog-DmFHVqhI.js.map} +1 -1
  47. package/lib/{UpsellDialog-BiDSVmne.js → UpsellDialog-DRhOCOce.js} +2 -2
  48. package/lib/{UpsellDialog-BiDSVmne.js.map → UpsellDialog-DRhOCOce.js.map} +1 -1
  49. package/lib/{VariantsStudioNavbar-Bae9LOIN.js → VariantsStudioNavbar-CXpr7UUl.js} +7 -7
  50. package/lib/{VariantsStudioNavbar-Bae9LOIN.js.map → VariantsStudioNavbar-CXpr7UUl.js.map} +1 -1
  51. package/lib/{VariantsTool-E4ptTHik.js → VariantsTool-BCtrSWfP.js} +7 -7
  52. package/lib/{VariantsTool-E4ptTHik.js.map → VariantsTool-BCtrSWfP.js.map} +1 -1
  53. package/lib/{WorkspaceLoader-sdFQ9rkh.js → WorkspaceLoader-_w6NnbDb.js} +21 -21
  54. package/lib/{WorkspaceLoader-sdFQ9rkh.js.map → WorkspaceLoader-_w6NnbDb.js.map} +1 -1
  55. package/lib/_createContext.js +1 -1
  56. package/lib/{buildTextSelectionFromFragment-CuXpitEZ.js → buildTextSelectionFromFragment-Egmw5rNs.js} +3 -3
  57. package/lib/{buildTextSelectionFromFragment-CuXpitEZ.js.map → buildTextSelectionFromFragment-Egmw5rNs.js.map} +1 -1
  58. package/lib/{datastores-XTDIa3jc.js → datastores-DpJ5Y313.js} +2 -2
  59. package/lib/{datastores-XTDIa3jc.js.map → datastores-DpJ5Y313.js.map} +1 -1
  60. package/lib/index.js +28 -28
  61. package/lib/{inputResolver-DLP8YZcM.js → inputResolver-BX-VuloN.js} +4 -4
  62. package/lib/{inputResolver-DLP8YZcM.js.map → inputResolver-BX-VuloN.js.map} +1 -1
  63. package/lib/{navigation.telemetry-4pppJENG.js → navigation.telemetry-VbqjOek0.js} +7 -7
  64. package/lib/{navigation.telemetry-4pppJENG.js.map → navigation.telemetry-VbqjOek0.js.map} +1 -1
  65. package/lib/{plugin-BmARoHKH.js → plugin-DGOEvpWT.js} +4 -4
  66. package/lib/{plugin-BmARoHKH.js.map → plugin-DGOEvpWT.js.map} +1 -1
  67. package/lib/{plugin-BUox1zeI.js → plugin-Da_fKb0U.js} +3 -3
  68. package/lib/{plugin-BUox1zeI.js.map → plugin-Da_fKb0U.js.map} +1 -1
  69. package/lib/{plugin-CjN39wwt.js → plugin-DqqaZdOH.js} +5 -5
  70. package/lib/{plugin-CjN39wwt.js.map → plugin-DqqaZdOH.js.map} +1 -1
  71. package/lib/{plugin-BRnqEpCl.js → plugin-qHXYpO99.js} +6 -6
  72. package/lib/{plugin-BRnqEpCl.js.map → plugin-qHXYpO99.js.map} +1 -1
  73. package/lib/{scheduleItem-Dtb26ejO.js → scheduleItem-DcC1HE9G.js} +8 -8
  74. package/lib/{scheduleItem-Dtb26ejO.js.map → scheduleItem-DcC1HE9G.js.map} +1 -1
  75. package/lib/{schedules-6qsR7E_I.js → schedules-CbnXaXM9.js} +3 -3
  76. package/lib/{schedules-6qsR7E_I.js.map → schedules-CbnXaXM9.js.map} +1 -1
  77. package/lib/{searchDocumentRelease-CUk7BiST.js → searchDocumentRelease-C5sClmGF.js} +4 -4
  78. package/lib/{searchDocumentRelease-CUk7BiST.js.map → searchDocumentRelease-C5sClmGF.js.map} +1 -1
  79. package/lib/{studioClient-D1Z2zK3C.js → studioClient-CwMJwOTd.js} +2 -2
  80. package/lib/{studioClient-D1Z2zK3C.js.map → studioClient-CwMJwOTd.js.map} +1 -1
  81. package/lib/{useBundleDocuments-BnCBcbdJ.js → useBundleDocuments-DvVAF6cf.js} +7 -7
  82. package/lib/{useBundleDocuments-BnCBcbdJ.js.map → useBundleDocuments-DvVAF6cf.js.map} +1 -1
  83. package/lib/{useComments-Bm-0CwNH.js → useComments-DuEOnDkA.js} +2 -2
  84. package/lib/{useComments-Bm-0CwNH.js.map → useComments-DuEOnDkA.js.map} +1 -1
  85. package/lib/{useCommentsTelemetry-D1kYRuPU.js → useCommentsTelemetry-BgNdQdz5.js} +3 -3
  86. package/lib/{useCommentsTelemetry-D1kYRuPU.js.map → useCommentsTelemetry-BgNdQdz5.js.map} +1 -1
  87. package/lib/{useDocumentPreviewValues-DJvES8Wi.js → useDocumentPreviewValues-B1zNjl_D.js} +3 -3
  88. package/lib/{useDocumentPreviewValues-DJvES8Wi.js.map → useDocumentPreviewValues-B1zNjl_D.js.map} +1 -1
  89. package/lib/{useFeatureEnabled-g8eZoiLM.js → useFeatureEnabled-4qCpV_mX.js} +2 -2
  90. package/lib/{useFeatureEnabled-g8eZoiLM.js.map → useFeatureEnabled-4qCpV_mX.js.map} +1 -1
  91. package/lib/{useFieldActions-BV_qfe65.js → useFieldActions-uDe2qh98.js} +2 -2
  92. package/lib/{useFieldActions-BV_qfe65.js.map → useFieldActions-uDe2qh98.js.map} +1 -1
  93. package/lib/{useReleasesToolAvailable-Duu10qV0.js → useReleasesToolAvailable-DDuNc6HV.js} +3 -3
  94. package/lib/{useReleasesToolAvailable-Duu10qV0.js.map → useReleasesToolAvailable-DDuNc6HV.js.map} +1 -1
  95. package/lib/{useScheduledDraftMenuActions-Byiy3-k3.js → useScheduledDraftMenuActions-DqkHlC0c.js} +5 -5
  96. package/lib/{useScheduledDraftMenuActions-Byiy3-k3.js.map → useScheduledDraftMenuActions-DqkHlC0c.js.map} +1 -1
  97. package/lib/{useStudioUrl-BEb30_UK.js → useStudioUrl-B4w58A2i.js} +5 -5
  98. package/lib/{useStudioUrl-BEb30_UK.js.map → useStudioUrl-B4w58A2i.js.map} +1 -1
  99. package/lib/{useTimeZone-zs0ybzXu.js → useTimeZone-8Wd1UR4j.js} +2 -2
  100. package/lib/{useTimeZone-zs0ybzXu.js.map → useTimeZone-8Wd1UR4j.js.map} +1 -1
  101. package/lib/{validationUtils-LdwtMTh5.js → validationUtils-Cuk0jhWJ.js} +4 -4
  102. package/lib/{validationUtils-LdwtMTh5.js.map → validationUtils-Cuk0jhWJ.js.map} +1 -1
  103. package/lib/{version-XEmBTnIh.js → version-BVcB_xWL.js} +2 -2
  104. package/lib/{version-XEmBTnIh.js.map → version-BVcB_xWL.js.map} +1 -1
  105. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-BRnqEpCl.js","names":["useMemo","useSyncObservable","useDocumentStore","ValidationStatus","INITIAL","validation","isValidating","useValidationStatus","validationTargetId","docTypeName","requirePublishedReferences","$","_c","documentStore","t0","pair","observable","useContext","SingleDocReleaseContext","SingleDocReleaseContextValue","SingleDocReleaseProviderProps","children","React","ReactNode","onSetScheduledDraftPerspective","releaseId","SingleDocReleaseProvider","t0","$","_c","t1","t2","useSingleDocRelease","context","Error","ReleaseDocument","useCallback","usePerspective","getReleaseIdFromReleaseDocumentId","useSingleDocRelease","useClearScheduledDraftPerspectiveOnDelete","release","$","_c","onSetScheduledDraftPerspective","selectedPerspectiveName","t0","_id","ReleaseDocument","DocumentActionComponent","DocumentActionDescription","DocumentActionProps","useAllReleases","getReleaseIdFromReleaseDocumentId","isPausedCardinalityOneRelease","useClearScheduledDraftPerspectiveOnDelete","useScheduledDraftMenuActions","UseScheduledDraftMenuActionsReturn","createScheduledDraftAction","actionKey","visibilityCheck","release","useScheduledDraftAction","props","$","_c","type","id","data","t0","loading","t1","undefined","releases","t2","t3","r","_id","find","releaseDocument","onDeleteComplete","t4","documentType","documentId","actions","dialogs","actionProps","t5","disabled","t6","component","t7","icon","onClick","text","tone","label","title","dialog","onHandle","PublishScheduledDraftAction","EditScheduledDraftAction","DeleteScheduledDraftAction","displayName","action","useMemo","useDocumentVersions","useActiveReleases","getReleaseIdFromReleaseDocumentId","getVersionFromId","isCardinalityOneRelease","useHasCardinalityOneReleaseVersions","documentId","$","_c","data","allReleases","t0","documentVersions","t1","bb0","t2","documentReleaseIds","map","filter","Boolean","some","release","releaseId","_id","includes","CalendarIcon","isValidationErrorMarker","useToast","useCallback","useMemo","useState","DocumentActionComponent","DocumentActionDescription","DocumentActionProps","useValidationStatus","useTranslation","usePerspective","useActiveReleases","getReleaseIdFromReleaseDocumentId","getDraftId","isPausedCardinalityOneRelease","ScheduleDraftDialog","useSingleDocReleaseEnabled","useSingleDocRelease","useSingleDocReleaseUpsell","useHasCardinalityOneReleaseVersions","useScheduleDraftOperations","singleDocReleaseNamespace","useSchedulePublishAction","props","$","_c","id","type","draft","t","createScheduledDraft","rescheduleScheduledDraft","toast","enabled","singleDocReleaseEnabled","mode","handleOpenDialog","handleOpenUpsellDialog","t0","validationStatus","t1","validation","some","hasValidationErrors","hasCardinalityOneReleaseVersions","dialogOpen","setDialogOpen","isScheduling","setIsScheduling","onSetScheduledDraftPerspective","data","t2","t3","undefined","releases","perspective","isVariantSelected","Boolean","selectedVariantName","t4","selectedReleaseId","t5","r","_id","find","currentRelease","isPaused","t6","metadata","intendedPublishAt","Date","initialDate","t7","t8","Symbol","for","handleCloseDialog","t9","publishAt","run","releaseDocumentId","t10","error","console","push","closable","status","title","description","Error","message","handleSchedule","disabled","bb0","t11","t12","t13","component","t14","icon","label","tone","onHandle","dialog","action","displayName","DocumentActionComponent","DocumentActionsContext","DeleteScheduledDraftAction","EditScheduledDraftAction","PublishScheduledDraftAction","useSchedulePublishAction","resolveDocumentActions","existingActions","context","versionType","actionsExcludingOriginalSchedule","filter","action","publishActionIndex","findIndex","nextAfterPublishIndex","hasPublishAction","actionsBeforePublish","slice","actionsAfterPublish","lazy","definePlugin","singleDocReleaseUsEnglishLocaleBundle","resolveDocumentActions","SingleDocReleaseLayout","then","module","default","SINGLE_DOC_RELEASE_NAME","RELEASES_SCHEDULED_DRAFTS_INTENT","singleDocRelease","name","studio","components","layout","i18n","bundles","document","actions"],"sources":["../src/core/hooks/useValidationStatus.ts","../src/core/singleDocRelease/context/SingleDocReleaseProvider.tsx","../src/core/singleDocRelease/hooks/useClearScheduledDraftPerspectiveOnDelete.ts","../src/core/singleDocRelease/plugin/documentActions/ScheduledDraftDocumentActions.tsx","../src/core/singleDocRelease/hooks/useHasCardinalityOneReleaseVersions.ts","../src/core/singleDocRelease/plugin/documentActions/SchedulePublishAction.tsx","../src/core/singleDocRelease/plugin/documentActions/index.ts","../src/core/singleDocRelease/plugin/index.ts"],"sourcesContent":["import {useMemo} from 'react'\nimport {useSyncObservable} from 'react-rx'\n\nimport {useDocumentStore} from '../store/datastores'\nimport {type ValidationStatus} from '../validation'\n\nconst INITIAL: ValidationStatus = {validation: [], isValidating: false}\n\n/** @internal */\nexport function useValidationStatus(\n validationTargetId: string,\n docTypeName: string,\n requirePublishedReferences: boolean,\n): ValidationStatus {\n const documentStore = useDocumentStore()\n\n const observable = useMemo(\n () =>\n documentStore.pair.validation(validationTargetId, docTypeName, requirePublishedReferences),\n [docTypeName, documentStore.pair, validationTargetId, requirePublishedReferences],\n )\n\n // Kept synchronous: consumers use this as a write-side gate, not just for\n // display. PublishAction enables publish from `hasValidationErrors` and\n // fires `doPublish()` once `isValidating` is false and `revision` matches\n // the live edit revision — and reference-driven revalidation re-runs\n // validation without changing the document revision, so a deferred (stale\n // but revision-matching) \"valid\" snapshot could publish before live errors\n // catch up. Identity-coherent deferral cannot help there: the observable\n // identity is stable while the pane is mounted; only the value lags.\n // Proof: hooks/__tests__/useValidationStatus.test.tsx.\n return useSyncObservable(observable, INITIAL)\n}\n","import {useContext} from 'react'\nimport {SingleDocReleaseContext, type SingleDocReleaseContextValue} from 'sanity/_singletons'\n\ninterface SingleDocReleaseProviderProps {\n children: React.ReactNode\n onSetScheduledDraftPerspective: (releaseId: string) => void\n}\n\n/**\n * Provider for the single doc release context.\n * @internal\n */\nexport function SingleDocReleaseProvider({\n children,\n onSetScheduledDraftPerspective,\n}: SingleDocReleaseProviderProps) {\n return (\n <SingleDocReleaseContext.Provider value={{onSetScheduledDraftPerspective}}>\n {children}\n </SingleDocReleaseContext.Provider>\n )\n}\n\n/**\n * Hook to get the single doc release context\n * @internal\n */\nexport function useSingleDocRelease(): SingleDocReleaseContextValue {\n const context = useContext(SingleDocReleaseContext)\n if (!context) {\n throw new Error('SingleDocReleaseContext not found')\n }\n return context\n}\n","import {type ReleaseDocument} from '@sanity/client'\nimport {useCallback} from 'react'\n\nimport {usePerspective} from '../../perspective/usePerspective'\nimport {getReleaseIdFromReleaseDocumentId} from '../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {useSingleDocRelease} from '../context/SingleDocReleaseProvider'\n\n/**\n * Returns a callback that clears the pane-local scheduled draft perspective when\n * the document pane is currently viewing the given release. Used after deleting\n * a scheduled draft so stale release UI is not left visible.\n *\n * Must be used within a document pane (requires `SingleDocReleaseProvider`).\n *\n * @internal\n */\nexport function useClearScheduledDraftPerspectiveOnDelete(\n release: ReleaseDocument | undefined,\n): () => void {\n const {onSetScheduledDraftPerspective} = useSingleDocRelease()\n const {selectedPerspectiveName} = usePerspective()\n\n return useCallback(() => {\n if (!release) return\n\n if (selectedPerspectiveName === getReleaseIdFromReleaseDocumentId(release._id)) {\n onSetScheduledDraftPerspective('')\n }\n }, [release, selectedPerspectiveName, onSetScheduledDraftPerspective])\n}\n","import {type ReleaseDocument} from '@sanity/client'\n\nimport {\n type DocumentActionComponent,\n type DocumentActionDescription,\n type DocumentActionProps,\n} from '../../../config/document/actions'\nimport {useAllReleases} from '../../../releases/store/useAllReleases'\nimport {getReleaseIdFromReleaseDocumentId} from '../../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {isPausedCardinalityOneRelease} from '../../../util/releaseUtils'\nimport {useClearScheduledDraftPerspectiveOnDelete} from '../../hooks/useClearScheduledDraftPerspectiveOnDelete'\nimport {\n useScheduledDraftMenuActions,\n type UseScheduledDraftMenuActionsReturn,\n} from '../../hooks/useScheduledDraftMenuActions'\n\n/**\n * Higher-order function that creates a scheduled draft document action\n * @internal\n */\nconst createScheduledDraftAction = (\n actionKey: keyof UseScheduledDraftMenuActionsReturn['actions'],\n visibilityCheck?: (release: ReleaseDocument | undefined) => boolean,\n): DocumentActionComponent => {\n // Using hook naming conventions is required for React Compiler to detect this function and memoize it\n const useScheduledDraftAction: DocumentActionComponent = (\n props: DocumentActionProps,\n ): DocumentActionDescription | null => {\n const {type, release, id} = props\n const {data: releases = [], loading} = useAllReleases()\n\n const releaseDocument = releases.find(\n (r) => getReleaseIdFromReleaseDocumentId(r._id) === release,\n )\n\n const onDeleteComplete = useClearScheduledDraftPerspectiveOnDelete(\n actionKey === 'deleteSchedule' ? releaseDocument : undefined,\n )\n\n const {actions, dialogs} = useScheduledDraftMenuActions({\n release: releaseDocument,\n documentType: type,\n documentId: id,\n onDeleteComplete: actionKey === 'deleteSchedule' ? onDeleteComplete : undefined,\n })\n\n if (visibilityCheck && !visibilityCheck(releaseDocument)) {\n return null\n }\n\n // This action is only shown for scheduled-draft version type\n if (!releaseDocument) {\n return null\n }\n\n if (!actions || !actions[actionKey]) {\n return null\n }\n\n const actionProps = actions[actionKey]\n\n return {\n disabled: actionProps.disabled || loading,\n icon: actionProps.icon,\n label: actionProps.text,\n title: actionProps.text,\n tone: actionProps.tone,\n dialog: dialogs\n ? {\n type: 'custom',\n component: dialogs,\n }\n : false,\n onHandle: actionProps.onClick,\n }\n }\n return useScheduledDraftAction\n}\n\n/**\n * Document action for publishing a scheduled draft immediately\n * @internal\n */\nexport const PublishScheduledDraftAction = createScheduledDraftAction('publishNow')\n\n/**\n * Document action for editing schedule of a scheduled draft\n * Only visible when the draft is NOT paused\n * @internal\n */\nexport const EditScheduledDraftAction = createScheduledDraftAction(\n 'editSchedule',\n (release) => !isPausedCardinalityOneRelease(release), // Hide when paused\n)\n\n/**\n * Document action for deleting a scheduled draft\n * @internal\n */\nexport const DeleteScheduledDraftAction = createScheduledDraftAction('deleteSchedule')\n\nPublishScheduledDraftAction.displayName = 'PublishScheduledDraftAction'\nPublishScheduledDraftAction.action = 'publish'\n\nEditScheduledDraftAction.displayName = 'EditScheduledDraftAction'\nEditScheduledDraftAction.action = 'schedule'\n\nDeleteScheduledDraftAction.displayName = 'DeleteScheduledDraftAction'\nDeleteScheduledDraftAction.action = 'discardVersion'\n","import {useMemo} from 'react'\n\nimport {useDocumentVersions} from '../../releases/hooks/useDocumentVersions'\nimport {useActiveReleases} from '../../releases/store/useActiveReleases'\nimport {getReleaseIdFromReleaseDocumentId} from '../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {getVersionFromId} from '../../util/draftUtils'\nimport {isCardinalityOneRelease} from '../../util/releaseUtils'\n\n/**\n * Checks if a document has any versions in scheduled draft (`metadata.cardinality: 'one'`) releases.\n *\n * @param documentId - The ID of the document to check\n * @returns boolean - true if the document has versions in any cardinality one releases\n * @internal\n */\nexport function useHasCardinalityOneReleaseVersions(documentId: string): boolean {\n const {data: allReleases} = useActiveReleases()\n const {data: documentVersions} = useDocumentVersions({documentId})\n\n return useMemo(() => {\n if (!allReleases || !documentVersions) return false\n\n const documentReleaseIds = documentVersions.map(getVersionFromId).filter(Boolean)\n\n return allReleases.some((release) => {\n const releaseId = getReleaseIdFromReleaseDocumentId(release._id)\n\n return documentReleaseIds.includes(releaseId) && isCardinalityOneRelease(release)\n })\n }, [allReleases, documentVersions])\n}\n","import {CalendarIcon} from '@sanity/icons/Calendar'\nimport {isValidationErrorMarker} from '@sanity/types'\nimport {useToast} from '@sanity/ui'\nimport {useCallback, useMemo, useState} from 'react'\n\nimport {\n type DocumentActionComponent,\n type DocumentActionDescription,\n type DocumentActionProps,\n} from '../../../config/document/actions'\nimport {useValidationStatus} from '../../../hooks/useValidationStatus'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {usePerspective} from '../../../perspective/usePerspective'\nimport {useActiveReleases} from '../../../releases/store/useActiveReleases'\nimport {getReleaseIdFromReleaseDocumentId} from '../../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {getDraftId} from '../../../util/draftUtils'\nimport {isPausedCardinalityOneRelease} from '../../../util/releaseUtils'\nimport {ScheduleDraftDialog} from '../../components/ScheduleDraftDialog'\nimport {useSingleDocReleaseEnabled} from '../../context/SingleDocReleaseEnabledProvider'\nimport {useSingleDocRelease} from '../../context/SingleDocReleaseProvider'\nimport {useSingleDocReleaseUpsell} from '../../context/SingleDocReleaseUpsellProvider'\nimport {useHasCardinalityOneReleaseVersions} from '../../hooks/useHasCardinalityOneReleaseVersions'\nimport {useScheduleDraftOperations} from '../../hooks/useScheduleDraftOperations'\nimport {singleDocReleaseNamespace} from '../../i18n'\n\n// React Compiler needs functions that are hooks to have the `use` prefix, pascal case are treated as a component, these are hooks even though they're confusingly named `DocumentActionComponent`\n/** @internal */\nexport const useSchedulePublishAction: DocumentActionComponent = (\n props: DocumentActionProps,\n): DocumentActionDescription | null => {\n const {id, type, draft} = props\n const {t} = useTranslation(singleDocReleaseNamespace)\n const {createScheduledDraft, rescheduleScheduledDraft} = useScheduleDraftOperations()\n const toast = useToast()\n const {enabled: singleDocReleaseEnabled, mode} = useSingleDocReleaseEnabled()\n const {handleOpenDialog: handleOpenUpsellDialog} = useSingleDocReleaseUpsell()\n // Check validation status.\n // No `getTargetScopeId(useTargetDocumentState())` here: scheduling a draft publish deliberately validates the\n // explicit draft of the document, independent of the selected perspective. This is safe because\n // the action is disabled while a variant is selected (see `isVariantSelected` below).\n // TODO: this will be supported in the future, look for SAPP-3986 and SAPP-3987.\n const validationStatus = useValidationStatus(getDraftId(id), type, true)\n const hasValidationErrors = validationStatus.validation.some(isValidationErrorMarker)\n\n // Check if document has versions in cardinality one releases\n const hasCardinalityOneReleaseVersions = useHasCardinalityOneReleaseVersions(id)\n\n const [dialogOpen, setDialogOpen] = useState(false)\n const [isScheduling, setIsScheduling] = useState(false)\n const {onSetScheduledDraftPerspective} = useSingleDocRelease()\n\n // Check if current release is a paused scheduled draft\n const {data: releases = []} = useActiveReleases()\n const perspective = usePerspective()\n\n // Scheduling operates on the base draft, so it is not available while a variant is selected —\n // it would silently schedule the base document instead of the variant (SAPP-3986).\n const isVariantSelected = Boolean(perspective.selectedVariantName)\n\n const currentRelease = useMemo(\n () =>\n releases.find(\n (r) => getReleaseIdFromReleaseDocumentId(r._id) === perspective.selectedReleaseId,\n ),\n [releases, perspective.selectedReleaseId],\n )\n\n const isPaused = isPausedCardinalityOneRelease(currentRelease)\n const initialDate =\n isPaused && currentRelease?.metadata.intendedPublishAt\n ? new Date(currentRelease.metadata.intendedPublishAt)\n : undefined\n const handleOpenDialog = useCallback(() => {\n if (mode === 'upsell') {\n handleOpenUpsellDialog('document_action')\n } else {\n setDialogOpen(true)\n }\n }, [mode, handleOpenUpsellDialog])\n\n const handleCloseDialog = useCallback(() => {\n setDialogOpen(false)\n }, [])\n\n const handleSchedule = useCallback(\n async (publishAt: Date) => {\n setIsScheduling(true)\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = async () => {\n if (isPaused && currentRelease) {\n // Resume paused draft: reschedule with new date\n await rescheduleScheduledDraft(currentRelease, publishAt)\n } else {\n // Normal flow: create new scheduled draft\n const releaseDocumentId = await createScheduledDraft(id, publishAt)\n onSetScheduledDraftPerspective(getReleaseIdFromReleaseDocumentId(releaseDocumentId))\n }\n\n setDialogOpen(false)\n }\n try {\n await run()\n } catch (error) {\n console.error('Failed to schedule document publish:', error)\n\n toast.push({\n closable: true,\n status: 'error',\n title: t('action.schedule-publish-error'),\n description: error instanceof Error ? error.message : 'An unknown error occurred',\n })\n }\n setIsScheduling(false)\n },\n [\n id,\n createScheduledDraft,\n toast,\n t,\n onSetScheduledDraftPerspective,\n isPaused,\n currentRelease,\n rescheduleScheduledDraft,\n ],\n )\n\n const disabled =\n isVariantSelected ||\n (isPaused\n ? hasValidationErrors // Only check validation errors for paused drafts\n : hasCardinalityOneReleaseVersions || hasValidationErrors) // Full check for regular drafts\n\n const title = useMemo(() => {\n if (isVariantSelected) {\n return t('action.schedule-publish.disabled.variant')\n }\n\n if (isPaused && hasValidationErrors) {\n return t('action.schedule-publish.disabled.validation-issues')\n }\n\n if (hasCardinalityOneReleaseVersions) {\n return t('action.schedule-publish.disabled.cardinality-one')\n }\n\n if (hasValidationErrors) {\n return t('action.schedule-publish.disabled.validation-issues')\n }\n\n return t('action.schedule-publish')\n }, [isVariantSelected, isPaused, hasValidationErrors, hasCardinalityOneReleaseVersions, t])\n\n if (!singleDocReleaseEnabled) {\n return null\n }\n\n // Show for drafts OR paused scheduled drafts\n if (!draft && !isPaused) {\n return null\n }\n\n return {\n icon: CalendarIcon,\n disabled,\n label: t('action.schedule-publish'),\n title,\n tone: isPaused ? 'primary' : undefined, // Add primary tone when paused\n onHandle: handleOpenDialog,\n dialog: dialogOpen && {\n type: 'custom',\n component: (\n <ScheduleDraftDialog\n onClose={handleCloseDialog}\n onSchedule={handleSchedule}\n variant=\"schedule\"\n loading={isScheduling}\n initialDate={initialDate}\n />\n ),\n },\n }\n}\n\nuseSchedulePublishAction.action = 'schedule'\nuseSchedulePublishAction.displayName = 'SchedulePublishAction'\n","import {type DocumentActionComponent} from '../../../config/document/actions'\nimport {type DocumentActionsContext} from '../../../config/types'\nimport {\n DeleteScheduledDraftAction,\n EditScheduledDraftAction,\n PublishScheduledDraftAction,\n} from './ScheduledDraftDocumentActions'\nimport {useSchedulePublishAction} from './SchedulePublishAction'\n\nexport default function resolveDocumentActions(\n existingActions: DocumentActionComponent[],\n context: DocumentActionsContext,\n): DocumentActionComponent[] {\n if (context.versionType === 'scheduled-draft') {\n // For paused scheduled drafts: Schedule (primary), Publish Now, Delete Schedule\n // For active scheduled drafts: Publish Now (primary), Edit Schedule, Delete Schedule\n return [\n useSchedulePublishAction, // Shows only when paused\n PublishScheduledDraftAction, // Always shows\n EditScheduledDraftAction, // Shows only when NOT paused\n DeleteScheduledDraftAction, // Always shows\n ]\n }\n\n // Add SchedulePublishAction only for draft documents\n if (context.versionType === 'draft') {\n const actionsExcludingOriginalSchedule = existingActions.filter(\n ({action}) => action !== 'schedule',\n )\n const publishActionIndex = actionsExcludingOriginalSchedule.findIndex(\n ({action}) => action === 'publish',\n )\n const nextAfterPublishIndex = publishActionIndex + 1\n const hasPublishAction = publishActionIndex >= 0\n\n const actionsBeforePublish = hasPublishAction\n ? actionsExcludingOriginalSchedule.slice(0, nextAfterPublishIndex)\n : []\n const actionsAfterPublish = hasPublishAction\n ? actionsExcludingOriginalSchedule.slice(nextAfterPublishIndex)\n : actionsExcludingOriginalSchedule\n\n return [...actionsBeforePublish, useSchedulePublishAction, ...actionsAfterPublish]\n }\n return existingActions\n}\n","import {lazy} from 'react'\n\nimport {definePlugin} from '../../config/definePlugin'\nimport {singleDocReleaseUsEnglishLocaleBundle} from '../i18n'\nimport resolveDocumentActions from './documentActions'\n\nconst SingleDocReleaseLayout = lazy(() =>\n import('./SingleDocReleaseLayout').then((module) => ({default: module.SingleDocReleaseLayout})),\n)\n\n/**\n * @internal\n */\nexport const SINGLE_DOC_RELEASE_NAME = 'sanity/singleDocRelease'\n\n/**\n * @internal\n */\nexport const RELEASES_SCHEDULED_DRAFTS_INTENT = 'releases-scheduled-drafts'\n\n/**\n * @internal\n */\nexport const singleDocRelease = definePlugin({\n name: SINGLE_DOC_RELEASE_NAME,\n studio: {\n components: {\n layout: SingleDocReleaseLayout,\n },\n },\n i18n: {\n bundles: [singleDocReleaseUsEnglishLocaleBundle],\n },\n document: {\n actions: resolveDocumentActions,\n },\n})\n"],"mappings":";;;;;;;;;;;;;;AAMA,MAAMI,UAA4B;CAACC,YAAY,CAAA;CAAIC,cAAc;AAAK;;AAGtE,SAAOC,oBAAAC,oBAAAC,aAAAC,4BAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAKLC,gBAAsBX,iBAAiB,GAACY;CAMvC,OANuCH,EAAA,OAAAF,eAAAE,EAAA,OAAAE,cAAAE,QAAAJ,EAAA,OAAAD,8BAAAC,EAAA,OAAAH,sBAIpCM,KAAAD,cAAaE,KAAKV,WAAYG,oBAAoBC,aAAaC,0BAA0B,GAACC,EAAA,KAAAF,aAAAE,EAAA,KAAAE,cAAAE,MAAAJ,EAAA,KAAAD,4BAAAC,EAAA,KAAAH,oBAAAG,EAAA,KAAAG,MAAAA,KAAAH,EAAA,IAavFV,kBAAkBe,IAAYZ,OAAO;AAAC;;;;;ACnB/C,SAAOsB,yBAAAC,IAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAAkC,EAAAR,UAAAG,mCAAAG,IAGTG;CAAA,AAAAF,EAAA,OAAAJ,iCAE6CM,KAAAF,EAAA,MAAhCE,KAAA,EAAAN,+BAA+B,GAACI,EAAA,KAAAJ,gCAAAI,EAAA,KAAAE;CAAA,IAAAC;CAEtC,OAFsCH,EAAA,OAAAP,YAAAO,EAAA,OAAAE,MAAzEC,KAAA,oBAAA,wBAAA,UAAA;EAAyC,OAAAD;EACtCT;CACH,CAAA,GAAmCO,EAAA,KAAAP,UAAAO,EAAA,KAAAE,IAAAF,EAAA,KAAAG,MAAAA,KAAAH,EAAA,IAFnCG;AAEmC;;;;;AAQvC,SAAOC,sBAAA;CACL,IAAAC,UAAgBhB,WAAWC,uBAAuB;CAClD,IAAI,CAACe,SACH,MAAUC,MAAM,mCAAmC;CACpD,OACMD;AAAO;;;;;;;;;;AChBhB,SAAOO,0CAAAC,SAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAGL,EAAAC,mCAAyCL,oBAAoB,GAC7D,EAAAM,4BAAkCR,eAAe,GAACS;CAQjD,OARiDJ,EAAA,OAAAE,kCAAAF,EAAA,OAAAD,WAAAC,EAAA,OAAAG,2BAE/BC,WAAA;EACZL,WAEDI,4BAA4BP,kCAAkCG,QAAOM,GAAI,KAC3EH,+BAA+B,EAAE;CAClC,GACFF,EAAA,KAAAE,gCAAAF,EAAA,KAAAD,SAAAC,EAAA,KAAAG,yBAAAH,EAAA,KAAAI,MAAAA,KAAAJ,EAAA,IANMI;AAM+D;;;;;ACRxE,MAAMY,8BACJC,WACAC,oBAC4B;CAE5B,IAAME,2BAAmDC,UAAA;EAAA,IAAAC,IAAAC,EAAA,EAAA,GAGvD,EAAAC,MAAAL,SAAAM,OAA4BJ,OAC5B,EAAAK,MAAAC,IAAAC,YAAuClB,eAAe,GAACmB;EAAA,AAAAP,EAAA,OAAAK,KAA7BE,KAAAP,EAAA,MAAbO,KAAAF,OAAAG,KAAAA,IAAA,CAAA,IAAAH,IAAaL,EAAA,KAAAK,IAAAL,EAAA,KAAAO;EAAb,IAAAE,WAAAF,IAAaG;EAAA,IAAAV,EAAA,OAAAH,WAAAG,EAAA,OAAAS,UAAA;GAAA,IAAAE;GAIzBX,AAJyBA,EAAA,OAAAH,UAGmCc,KAAAX,EAAA,MAA3DW,MAAAC,MAAOvB,kCAAkCuB,EAACC,GAAI,MAAMhB,SAAOG,EAAA,KAAAH,SAAAG,EAAA,KAAAW,KADrCD,KAAAD,SAAQK,KAC9BH,EACF,GAACX,EAAA,KAAAH,SAAAG,EAAA,KAAAS,UAAAT,EAAA,KAAAU;EAAA,OAAAA,KAAAV,EAAA;EAFD,IAAAe,kBAAwBL,IAIxBM,mBAAyBzB,0CACvBI,cAAc,mBAAdoB,kBAAAP,KAAAA,CACF,GAMoBG,KAAAhB,cAAc,mBAAdqB,mBAAAR,KAAAA,GAA6DS;EAAA,AAAAjB,EAAA,OAAAG,MAAAH,EAAA,OAAAe,mBAAAf,EAAA,OAAAW,MAAAX,EAAA,QAAAE,QAJzBe,KAAA;GAAApB,SAC7CkB;GAAeG,cACVhB;GAAIiB,YACNhB;GAAEa,kBACIL;EACpB,GAACX,EAAA,KAAAG,IAAAH,EAAA,KAAAe,iBAAAf,EAAA,KAAAW,IAAAX,EAAA,MAAAE,MAAAF,EAAA,MAAAiB,MAAAA,KAAAjB,EAAA;EALD,IAAA,EAAAoB,SAAAC,YAA2B7B,6BAA6ByB,EAKvD;EAWD,IATIrB,mBAAA,CAAoBA,gBAAgBmB,eAAe,KAKnD,CAACA,mBAID,CAACK,WAAD,CAAaA,QAAQzB,YAAU,OAC1B;EAGT,IAAA2B,cAAoBF,QAAQzB,YAGhB4B,KAAAD,YAAWE,YAAXlB,SAA+BmB;EAAA,AAAAzB,EAAA,QAAAqB,UAUhCI,KAAAzB,EAAA,OALDyB,KAAAJ,UAAA;GAAAnB,MAEI;GAAQwB,WACHL;EAET,IALA,IAKCrB,EAAA,MAAAqB,SAAArB,EAAA,MAAAyB;EAAA,IAAAE;EAEV,OAFU3B,EAAA,QAAAsB,YAAAM,QAAA5B,EAAA,QAAAsB,YAAAO,WAAA7B,EAAA,QAAAsB,YAAAQ,QAAA9B,EAAA,QAAAsB,YAAAS,QAAA/B,EAAA,QAAAuB,MAAAvB,EAAA,QAAAyB,MAXJE,KAAA;GAAAH,UACKD;GAA+BK,MACnCN,YAAWM;GAAKI,OACfV,YAAWQ;GAAKG,OAChBX,YAAWQ;GAAKC,MACjBT,YAAWS;GAAKG,QACdT;GAKCU,UACCb,YAAWO;EACvB,GAAC7B,EAAA,MAAAsB,YAAAM,MAAA5B,EAAA,MAAAsB,YAAAO,SAAA7B,EAAA,MAAAsB,YAAAQ,MAAA9B,EAAA,MAAAsB,YAAAS,MAAA/B,EAAA,MAAAuB,IAAAvB,EAAA,MAAAyB,IAAAzB,EAAA,MAAA2B,MAAAA,KAAA3B,EAAA,KAbM2B;CAaN;CAEH,OAAO7B;AACT,GAMasC,8BAA8B1C,2BAA2B,YAAY,GAOrE2C,2BAA2B3C,2BACtC,iBACCG,YAAY,CAACP,8BAA8BO,OAAO,CACrD,GAMayC,6BAA6B5C,2BAA2B,gBAAgB;AAErF0C,4BAA4BG,cAAc,+BAC1CH,4BAA4BI,SAAS,WAErCH,yBAAyBE,cAAc,4BACvCF,yBAAyBG,SAAS,YAElCF,2BAA2BC,cAAc,8BACzCD,2BAA2BE,SAAS;;;;;;;;AC7FpC,SAAOO,oCAAAC,YAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACL,EAAAC,MAAAC,gBAA4BT,kBAAkB,GAACU;CAAA,AAAAJ,EAAA,OAAAD,aACkBK,KAAAJ,EAAA,MAAZI,KAAA,EAAAL,WAAW,GAACC,EAAA,KAAAD,YAAAC,EAAA,KAAAI;CAAjE,IAAA,EAAAF,MAAAG,qBAAiCZ,oBAAoBW,EAAY,GAACE;CAAAC,KAAA;EAGhE,IAAI,CAACJ,eAAD,CAAiBE,kBAAgB;GAAEC,KAAO;GAAP,MAAAC;EAAY;EAAA,IAAAC;EAAA,IAAAR,EAAA,OAAAG,eAAAH,EAAA,OAAAK,kBAAA;GAEnD,IAAAI,qBAA2BJ,iBAAgBK,IAAKd,gBAAgB,CAAC,CAAAe,OAAQC,OAAO;GAM9EZ,AAJKQ,KAAAL,YAAWU,MAAMC,YAAA;IACtB,IAAAC,YAAkBpB,kCAAkCmB,QAAOE,GAAI;IAAC,OAEzDP,mBAAkBQ,SAAUF,SAA6C,KAA/BlB,wBAAwBiB,OAAO;GAAC,CAClF,GAACd,EAAA,KAAAG,aAAAH,EAAA,KAAAK,kBAAAL,EAAA,KAAAQ;EAAA,OAAAA,KAAAR,EAAA;EAJFM,KAAOE;CAIL;CAAA,OATGF;AAU4B;;ACFrC,MAAamC,4BAAoDC,UAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAG/D,EAAAC,IAAAC,MAAAC,UAA0BL,OAC1B,EAAAM,MAAYpB,eAAeY,yBAAyB,GACpD,EAAAS,sBAAAC,6BAAyDX,2BAA2B,GACpFY,QAAc/B,SAAS,GACvB,EAAAgC,SAAAC,yBAAAC,SAAiDnB,2BAA2B,GAC5E,EAAAoB,kBAAAC,2BAAmDnB,0BAA0B,GAACoB;CAAA,AAAAd,EAAA,OAAAE,KAMnBY,KAAAd,EAAA,MAAdc,KAAAzB,WAAWa,EAAE,GAACF,EAAA,KAAAE,IAAAF,EAAA,KAAAc;CAA3D,IAAAC,mBAAyB/B,oBAAoB8B,IAAgBX,MAAM,EAAI,GAACa;CAAA,AAAAhB,EAAA,OAAAe,iBAAAE,aACaD,KAAAhB,EAAA,MAAzDgB,KAAAD,iBAAgBE,WAAWC,KAAM1C,uBAAuB,GAACwB,EAAA,KAAAe,iBAAAE,YAAAjB,EAAA,KAAAgB;CAArF,IAAAG,sBAA4BH,IAG5BI,mCAAyCzB,oCAAoCO,EAAE,GAE/E,CAAAmB,YAAAC,iBAAoC1C,SAAS,EAAK,GAClD,CAAA2C,cAAAC,mBAAwC5C,SAAS,EAAK,GACtD,EAAA6C,mCAAyChC,oBAAoB,GAG7D,EAAAiC,MAAAC,OAA8BxC,kBAAkB,GAACyC;CAAA,AAAA5B,EAAA,OAAA2B,KAAvBC,KAAA5B,EAAA,MAAb4B,KAAAD,OAAAE,KAAAA,IAAA,CAAA,IAAAF,IAAa3B,EAAA,KAAA2B,IAAA3B,EAAA,KAAA4B;CAAb,IAAAE,WAAAF,IACbG,cAAoB7C,eAAe,GAInC8C,oBAA0BC,EAAQF,YAAWG,qBAAqBC;CAAA,IAAAnC,EAAA,OAAA+B,YAAAK,qBAAApC,EAAA,OAAA8B,UAAA;EAAA,IAAAO;EAM7DrC,AAN6DA,EAAA,OAAA+B,YAAAK,oBAKqBC,KAAArC,EAAA,OAAjFqC,MAAAC,MAAOlD,kCAAkCkD,EAACC,GAAI,MAAMR,YAAWK,mBAAkBpC,EAAA,KAAA+B,YAAAK,mBAAApC,EAAA,MAAAqC,KADnFF,KAAAL,SAAQU,KACNH,EACF,GAACrC,EAAA,KAAA+B,YAAAK,mBAAApC,EAAA,KAAA8B,UAAA9B,EAAA,KAAAmC;CAAA,OAAAA,KAAAnC,EAAA;CAJL,IAAAyC,iBAEIN,IAIHE;CAAA,AAAArC,EAAA,QAAAyC,iBAE6DJ,KAAArC,EAAA,OAA7CqC,KAAA/C,8BAA8BmD,cAAc,GAACzC,EAAA,MAAAyC,gBAAAzC,EAAA,MAAAqC;CAA9D,IAAAK,WAAiBL,IAA6CM;CAAA,AAAA3C,EAAA,QAAAyC,kBAAAzC,EAAA,QAAA0C,YAE5DC,KAAAD,YAAYD,gBAAcG,SAA4BC,oBAAtD,IACQC,KAAKL,eAAcG,SAASC,iBACxB,IAFZhB,KAAAA,GAEa7B,EAAA,MAAAyC,gBAAAzC,EAAA,MAAA0C,UAAA1C,EAAA,MAAA2C,MAAAA,KAAA3C,EAAA;CAHf,IAAA+C,cACEJ,IAEaK;CAAA,AAAAhD,EAAA,QAAAa,0BAAAb,EAAA,QAAAW,QACsBqC,WAAA;EACnC,AAAIrC,SAAS,WACXE,uBAAuB,iBAAiB,IAExCS,cAAc,EAAI;CACnB,GACFtB,EAAA,MAAAa,wBAAAb,EAAA,MAAAW,MAAAX,EAAA,MAAAgD,MAAAA,KAAAhD,EAAA;CAND,IAAAY,mBAAyBoC,IAMSC;CAAA,AAAAjD,EAAA,QAAAkD,OAAAC,IAAA,2BAAA,KAEIF,WAAA;EACpC3B,cAAc,EAAK;CAAC,GACrBtB,EAAA,MAAAiD,MAAAA,KAAAjD,EAAA;CAFD,IAAAoD,oBAA0BH,IAEpBI;CAAA,AAAArD,EAAA,QAAAM,wBAAAN,EAAA,QAAAyC,kBAAAzC,EAAA,QAAAE,MAAAF,EAAA,QAAA0C,YAAA1C,EAAA,QAAAyB,kCAAAzB,EAAA,QAAAO,4BAAAP,EAAA,QAAAK,KAAAL,EAAA,QAAAQ,SAGJ6C,KAAA,OAAAC,cAAA;EACE9B,gBAAgB,EAAI;EAEpB,IAAA+B,MAAY,YAAA;GACV,IAAIb,YAAAD,gBAEF,MAAMlC,yBAAyBkC,gBAAgBa,SAAS;QAAC;IAGzD,IAAAE,oBAA0B,MAAMlD,qBAAqBJ,IAAIoD,SAAS;IAClE7B,+BAA+BrC,kCAAkCoE,iBAAiB,CAAC;GAAC;GAGtFlC,cAAc,EAAK;EAAC;EAEtB,IAAA;GACE,MAAMiC,IAAI;EAAC,SAAAE,KAAA;GACJC,IAAAA,QAAAA;GAGPlD,AAFAmD,QAAOD,MAAO,wCAAwCA,KAAK,GAE3DlD,MAAKoD,KAAM;IAAAC,UACC;IAAIC,QACN;IAAOC,OACR1D,EAAE,+BAA+B;IAAC2D,aAC5BN,iBAAiBO,QAAQP,MAAKQ,UAA9B;GACf,CAAC;EAAC;EAEJ1C,gBAAgB,EAAK;CAAC,GACvBxB,EAAA,MAAAM,sBAAAN,EAAA,MAAAyC,gBAAAzC,EAAA,MAAAE,IAAAF,EAAA,MAAA0C,UAAA1C,EAAA,MAAAyB,gCAAAzB,EAAA,MAAAO,0BAAAP,EAAA,MAAAK,GAAAL,EAAA,MAAAQ,OAAAR,EAAA,MAAAqD,MAAAA,KAAArD,EAAA;CA7BH,IAAAmE,iBAAuBd,IA0CvBe,WACEpC,sBACCU,WAAAvB,sBAEGC,oCAAAD,sBAAwDsC;CAAAY,KAAA;EAG5D,IAAIrC,mBAAiB;GAAA,IAAAsC;GACnBb,AADmBzD,EAAA,QAAAK,IACiCiE,MAAAtE,EAAA,OAA7CsE,MAAAjE,EAAE,0CAA0C,GAACL,EAAA,MAAAK,GAAAL,EAAA,MAAAsE,MAApDb,MAAOa;GAAP,MAAAD;EAAoD;EAGtD,IAAI3B,YAAAvB,qBAA+B;GAAA,IAAAmD;GACjCb,AADiCzD,EAAA,QAAAK,IAC6BiE,MAAAtE,EAAA,OAAvDsE,MAAAjE,EAAE,oDAAoD,GAACL,EAAA,MAAAK,GAAAL,EAAA,MAAAsE,MAA9Db,MAAOa;GAAP,MAAAD;EAA8D;EAGhE,IAAIjD,kCAAgC;GAAA,IAAAkD;GAClCb,AADkCzD,EAAA,QAAAK,IAC0BiE,MAAAtE,EAAA,OAArDsE,MAAAjE,EAAE,kDAAkD,GAACL,EAAA,MAAAK,GAAAL,EAAA,MAAAsE,MAA5Db,MAAOa;GAAP,MAAAD;EAA4D;EAG9D,IAAIlD,qBAAmB;GAAA,IAAAmD;GACrBb,AADqBzD,EAAA,QAAAK,IACyCiE,MAAAtE,EAAA,OAAvDsE,MAAAjE,EAAE,oDAAoD,GAACL,EAAA,MAAAK,GAAAL,EAAA,MAAAsE,MAA9Db,MAAOa;GAAP,MAAAD;EAA8D;EAC/D,IAAAC;EAEDb,AAFCzD,EAAA,QAAAK,IAEkCiE,MAAAtE,EAAA,OAA5BsE,MAAAjE,EAAE,yBAAyB,GAACL,EAAA,MAAAK,GAAAL,EAAA,MAAAsE,MAAnCb,MAAOa;CAA4B;CAjBrC,IAAAP,QAAcN;CAyBd,IALI,CAAC/C,2BAKD,CAACN,SAAD,CAAWsC,UAAQ,OACd;CACR,IAAA4B;CAAA,AAAAtE,EAAA,QAAAK,IAKoCiE,MAAAtE,EAAA,OAA5BsE,MAAAjE,EAAE,yBAAyB,GAACL,EAAA,MAAAK,GAAAL,EAAA,MAAAsE;CAE7B,IAAAC,MAAA7B,WAAA,YAAAb,KAAAA,GAAgC2C;CAAA,AAAAxE,EAAA,QAAAqB,cAAArB,EAAA,QAAAmE,kBAAAnE,EAAA,QAAA+C,eAAA/C,EAAA,QAAAuB,gBAE9BiD,MAAAnD,cAAA;EAAAlB,MACA;EAAQsE,WAEZ,oBAAC,qBAAD;GACWrB,SAAAA;GACGe,YAAAA;GACJ,SAAA;GACC5C,SAAAA;GACIwB;EAAW,CAAA;CAG9B,GAAC/C,EAAA,MAAAqB,YAAArB,EAAA,MAAAmE,gBAAAnE,EAAA,MAAA+C,aAAA/C,EAAA,MAAAuB,cAAAvB,EAAA,MAAAwE,OAAAA,MAAAxE,EAAA;CAAA,IAAA0E;CACF,OADE1E,EAAA,QAAAoE,YAAApE,EAAA,QAAAY,oBAAAZ,EAAA,QAAAsE,OAAAtE,EAAA,QAAAuE,OAAAvE,EAAA,QAAAwE,OAAAxE,EAAA,QAAA+D,SAlBIW,MAAA;EAAAC,MACCpG;EAAY6F;EAAAQ,OAEXN;EAA4BP;EAAAc,MAE7BN;EAAgCO,UAC5BlE;EAAgBmE,QAClBP;CAYV,GAACxE,EAAA,MAAAoE,UAAApE,EAAA,MAAAY,kBAAAZ,EAAA,MAAAsE,KAAAtE,EAAA,MAAAuE,KAAAvE,EAAA,MAAAwE,KAAAxE,EAAA,MAAA+D,OAAA/D,EAAA,MAAA0E,OAAAA,MAAA1E,EAAA,KAnBM0E;AAmBN;AAGH5E,yBAAyBkF,SAAS,YAClClF,yBAAyBmF,cAAc;AC/KvC,SAAwBO,uBACtBC,iBACAC,SAC2B;CAC3B,IAAIA,QAAQC,gBAAgB,mBAG1B,OAAO;EACLJ;EACAD;EACAD;EACAD;CAA4B;CAKhC,IAAIM,QAAQC,gBAAgB,SAAS;EACnC,IAAMC,mCAAmCH,gBAAgBI,QACtD,EAACC,aAAYA,WAAW,UAC3B,GACMC,qBAAqBH,iCAAiCI,WACzD,EAACF,aAAYA,WAAW,SAC3B,GACMG,wBAAwBF,qBAAqB,GAC7CG,mBAAmBH,sBAAsB,GAEzCI,uBAAuBD,mBACzBN,iCAAiCQ,MAAM,GAAGH,qBAAqB,IAC/D,CAAA,GACEI,sBAAsBH,mBACxBN,iCAAiCQ,MAAMH,qBAAqB,IAC5DL;EAEJ,OAAO;GAAC,GAAGO;GAAsBZ;GAA0B,GAAGc;EAAmB;CACnF;CACA,OAAOZ;AACT;ACvCA,MAAMiB,yBAAyBJ,WAC7B,OAAO,uCAA2B,CAACK,MAAMC,YAAY,EAACC,SAASD,OAAOF,uBAAsB,EAAE,CAChG,GAKaI,0BAA0B,2BAK1BC,mCAAmC,6BAKnCC,mBAAmBT,aAAa;CAC3CU,MAAMH;CACNI,QAAQ,EACNC,YAAY,EACVC,QAAQV,uBACV,EACF;CACAW,MAAM,EACJC,SAAS,CAACd,qCAAqC,EACjD;CACAe,UAAU,EACRC,SAASf,uBACX;AACF,CAAC"}
1
+ {"version":3,"file":"plugin-qHXYpO99.js","names":["useMemo","useSyncObservable","useDocumentStore","ValidationStatus","INITIAL","validation","isValidating","useValidationStatus","validationTargetId","docTypeName","requirePublishedReferences","$","_c","documentStore","t0","pair","observable","useContext","SingleDocReleaseContext","SingleDocReleaseContextValue","SingleDocReleaseProviderProps","children","React","ReactNode","onSetScheduledDraftPerspective","releaseId","SingleDocReleaseProvider","t0","$","_c","t1","t2","useSingleDocRelease","context","Error","ReleaseDocument","useCallback","usePerspective","getReleaseIdFromReleaseDocumentId","useSingleDocRelease","useClearScheduledDraftPerspectiveOnDelete","release","$","_c","onSetScheduledDraftPerspective","selectedPerspectiveName","t0","_id","ReleaseDocument","DocumentActionComponent","DocumentActionDescription","DocumentActionProps","useAllReleases","getReleaseIdFromReleaseDocumentId","isPausedCardinalityOneRelease","useClearScheduledDraftPerspectiveOnDelete","useScheduledDraftMenuActions","UseScheduledDraftMenuActionsReturn","createScheduledDraftAction","actionKey","visibilityCheck","release","useScheduledDraftAction","props","$","_c","type","id","data","t0","loading","t1","undefined","releases","t2","t3","r","_id","find","releaseDocument","onDeleteComplete","t4","documentType","documentId","actions","dialogs","actionProps","t5","disabled","t6","component","t7","icon","onClick","text","tone","label","title","dialog","onHandle","PublishScheduledDraftAction","EditScheduledDraftAction","DeleteScheduledDraftAction","displayName","action","useMemo","useDocumentVersions","useActiveReleases","getReleaseIdFromReleaseDocumentId","getVersionFromId","isCardinalityOneRelease","useHasCardinalityOneReleaseVersions","documentId","$","_c","data","allReleases","t0","documentVersions","t1","bb0","t2","documentReleaseIds","map","filter","Boolean","some","release","releaseId","_id","includes","CalendarIcon","isValidationErrorMarker","useToast","useCallback","useMemo","useState","DocumentActionComponent","DocumentActionDescription","DocumentActionProps","useValidationStatus","useTranslation","usePerspective","useActiveReleases","getReleaseIdFromReleaseDocumentId","getDraftId","isPausedCardinalityOneRelease","ScheduleDraftDialog","useSingleDocReleaseEnabled","useSingleDocRelease","useSingleDocReleaseUpsell","useHasCardinalityOneReleaseVersions","useScheduleDraftOperations","singleDocReleaseNamespace","useSchedulePublishAction","props","$","_c","id","type","draft","t","createScheduledDraft","rescheduleScheduledDraft","toast","enabled","singleDocReleaseEnabled","mode","handleOpenDialog","handleOpenUpsellDialog","t0","validationStatus","t1","validation","some","hasValidationErrors","hasCardinalityOneReleaseVersions","dialogOpen","setDialogOpen","isScheduling","setIsScheduling","onSetScheduledDraftPerspective","data","t2","t3","undefined","releases","perspective","isVariantSelected","Boolean","selectedVariantName","t4","selectedReleaseId","t5","r","_id","find","currentRelease","isPaused","t6","metadata","intendedPublishAt","Date","initialDate","t7","t8","Symbol","for","handleCloseDialog","t9","publishAt","run","releaseDocumentId","t10","error","console","push","closable","status","title","description","Error","message","handleSchedule","disabled","bb0","t11","t12","t13","component","t14","icon","label","tone","onHandle","dialog","action","displayName","DocumentActionComponent","DocumentActionsContext","DeleteScheduledDraftAction","EditScheduledDraftAction","PublishScheduledDraftAction","useSchedulePublishAction","resolveDocumentActions","existingActions","context","versionType","actionsExcludingOriginalSchedule","filter","action","publishActionIndex","findIndex","nextAfterPublishIndex","hasPublishAction","actionsBeforePublish","slice","actionsAfterPublish","lazy","definePlugin","singleDocReleaseUsEnglishLocaleBundle","resolveDocumentActions","SingleDocReleaseLayout","then","module","default","SINGLE_DOC_RELEASE_NAME","RELEASES_SCHEDULED_DRAFTS_INTENT","singleDocRelease","name","studio","components","layout","i18n","bundles","document","actions"],"sources":["../src/core/hooks/useValidationStatus.ts","../src/core/singleDocRelease/context/SingleDocReleaseProvider.tsx","../src/core/singleDocRelease/hooks/useClearScheduledDraftPerspectiveOnDelete.ts","../src/core/singleDocRelease/plugin/documentActions/ScheduledDraftDocumentActions.tsx","../src/core/singleDocRelease/hooks/useHasCardinalityOneReleaseVersions.ts","../src/core/singleDocRelease/plugin/documentActions/SchedulePublishAction.tsx","../src/core/singleDocRelease/plugin/documentActions/index.ts","../src/core/singleDocRelease/plugin/index.ts"],"sourcesContent":["import {useMemo} from 'react'\nimport {useSyncObservable} from 'react-rx'\n\nimport {useDocumentStore} from '../store/datastores'\nimport {type ValidationStatus} from '../validation'\n\nconst INITIAL: ValidationStatus = {validation: [], isValidating: false}\n\n/** @internal */\nexport function useValidationStatus(\n validationTargetId: string,\n docTypeName: string,\n requirePublishedReferences: boolean,\n): ValidationStatus {\n const documentStore = useDocumentStore()\n\n const observable = useMemo(\n () =>\n documentStore.pair.validation(validationTargetId, docTypeName, requirePublishedReferences),\n [docTypeName, documentStore.pair, validationTargetId, requirePublishedReferences],\n )\n\n // Kept synchronous: consumers use this as a write-side gate, not just for\n // display. PublishAction enables publish from `hasValidationErrors` and\n // fires `doPublish()` once `isValidating` is false and `revision` matches\n // the live edit revision — and reference-driven revalidation re-runs\n // validation without changing the document revision, so a deferred (stale\n // but revision-matching) \"valid\" snapshot could publish before live errors\n // catch up. Identity-coherent deferral cannot help there: the observable\n // identity is stable while the pane is mounted; only the value lags.\n // Proof: hooks/__tests__/useValidationStatus.test.tsx.\n return useSyncObservable(observable, INITIAL)\n}\n","import {useContext} from 'react'\nimport {SingleDocReleaseContext, type SingleDocReleaseContextValue} from 'sanity/_singletons'\n\ninterface SingleDocReleaseProviderProps {\n children: React.ReactNode\n onSetScheduledDraftPerspective: (releaseId: string) => void\n}\n\n/**\n * Provider for the single doc release context.\n * @internal\n */\nexport function SingleDocReleaseProvider({\n children,\n onSetScheduledDraftPerspective,\n}: SingleDocReleaseProviderProps) {\n return (\n <SingleDocReleaseContext.Provider value={{onSetScheduledDraftPerspective}}>\n {children}\n </SingleDocReleaseContext.Provider>\n )\n}\n\n/**\n * Hook to get the single doc release context\n * @internal\n */\nexport function useSingleDocRelease(): SingleDocReleaseContextValue {\n const context = useContext(SingleDocReleaseContext)\n if (!context) {\n throw new Error('SingleDocReleaseContext not found')\n }\n return context\n}\n","import {type ReleaseDocument} from '@sanity/client'\nimport {useCallback} from 'react'\n\nimport {usePerspective} from '../../perspective/usePerspective'\nimport {getReleaseIdFromReleaseDocumentId} from '../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {useSingleDocRelease} from '../context/SingleDocReleaseProvider'\n\n/**\n * Returns a callback that clears the pane-local scheduled draft perspective when\n * the document pane is currently viewing the given release. Used after deleting\n * a scheduled draft so stale release UI is not left visible.\n *\n * Must be used within a document pane (requires `SingleDocReleaseProvider`).\n *\n * @internal\n */\nexport function useClearScheduledDraftPerspectiveOnDelete(\n release: ReleaseDocument | undefined,\n): () => void {\n const {onSetScheduledDraftPerspective} = useSingleDocRelease()\n const {selectedPerspectiveName} = usePerspective()\n\n return useCallback(() => {\n if (!release) return\n\n if (selectedPerspectiveName === getReleaseIdFromReleaseDocumentId(release._id)) {\n onSetScheduledDraftPerspective('')\n }\n }, [release, selectedPerspectiveName, onSetScheduledDraftPerspective])\n}\n","import {type ReleaseDocument} from '@sanity/client'\n\nimport {\n type DocumentActionComponent,\n type DocumentActionDescription,\n type DocumentActionProps,\n} from '../../../config/document/actions'\nimport {useAllReleases} from '../../../releases/store/useAllReleases'\nimport {getReleaseIdFromReleaseDocumentId} from '../../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {isPausedCardinalityOneRelease} from '../../../util/releaseUtils'\nimport {useClearScheduledDraftPerspectiveOnDelete} from '../../hooks/useClearScheduledDraftPerspectiveOnDelete'\nimport {\n useScheduledDraftMenuActions,\n type UseScheduledDraftMenuActionsReturn,\n} from '../../hooks/useScheduledDraftMenuActions'\n\n/**\n * Higher-order function that creates a scheduled draft document action\n * @internal\n */\nconst createScheduledDraftAction = (\n actionKey: keyof UseScheduledDraftMenuActionsReturn['actions'],\n visibilityCheck?: (release: ReleaseDocument | undefined) => boolean,\n): DocumentActionComponent => {\n // Using hook naming conventions is required for React Compiler to detect this function and memoize it\n const useScheduledDraftAction: DocumentActionComponent = (\n props: DocumentActionProps,\n ): DocumentActionDescription | null => {\n const {type, release, id} = props\n const {data: releases = [], loading} = useAllReleases()\n\n const releaseDocument = releases.find(\n (r) => getReleaseIdFromReleaseDocumentId(r._id) === release,\n )\n\n const onDeleteComplete = useClearScheduledDraftPerspectiveOnDelete(\n actionKey === 'deleteSchedule' ? releaseDocument : undefined,\n )\n\n const {actions, dialogs} = useScheduledDraftMenuActions({\n release: releaseDocument,\n documentType: type,\n documentId: id,\n onDeleteComplete: actionKey === 'deleteSchedule' ? onDeleteComplete : undefined,\n })\n\n if (visibilityCheck && !visibilityCheck(releaseDocument)) {\n return null\n }\n\n // This action is only shown for scheduled-draft version type\n if (!releaseDocument) {\n return null\n }\n\n if (!actions || !actions[actionKey]) {\n return null\n }\n\n const actionProps = actions[actionKey]\n\n return {\n disabled: actionProps.disabled || loading,\n icon: actionProps.icon,\n label: actionProps.text,\n title: actionProps.text,\n tone: actionProps.tone,\n dialog: dialogs\n ? {\n type: 'custom',\n component: dialogs,\n }\n : false,\n onHandle: actionProps.onClick,\n }\n }\n return useScheduledDraftAction\n}\n\n/**\n * Document action for publishing a scheduled draft immediately\n * @internal\n */\nexport const PublishScheduledDraftAction = createScheduledDraftAction('publishNow')\n\n/**\n * Document action for editing schedule of a scheduled draft\n * Only visible when the draft is NOT paused\n * @internal\n */\nexport const EditScheduledDraftAction = createScheduledDraftAction(\n 'editSchedule',\n (release) => !isPausedCardinalityOneRelease(release), // Hide when paused\n)\n\n/**\n * Document action for deleting a scheduled draft\n * @internal\n */\nexport const DeleteScheduledDraftAction = createScheduledDraftAction('deleteSchedule')\n\nPublishScheduledDraftAction.displayName = 'PublishScheduledDraftAction'\nPublishScheduledDraftAction.action = 'publish'\n\nEditScheduledDraftAction.displayName = 'EditScheduledDraftAction'\nEditScheduledDraftAction.action = 'schedule'\n\nDeleteScheduledDraftAction.displayName = 'DeleteScheduledDraftAction'\nDeleteScheduledDraftAction.action = 'discardVersion'\n","import {useMemo} from 'react'\n\nimport {useDocumentVersions} from '../../releases/hooks/useDocumentVersions'\nimport {useActiveReleases} from '../../releases/store/useActiveReleases'\nimport {getReleaseIdFromReleaseDocumentId} from '../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {getVersionFromId} from '../../util/draftUtils'\nimport {isCardinalityOneRelease} from '../../util/releaseUtils'\n\n/**\n * Checks if a document has any versions in scheduled draft (`metadata.cardinality: 'one'`) releases.\n *\n * @param documentId - The ID of the document to check\n * @returns boolean - true if the document has versions in any cardinality one releases\n * @internal\n */\nexport function useHasCardinalityOneReleaseVersions(documentId: string): boolean {\n const {data: allReleases} = useActiveReleases()\n const {data: documentVersions} = useDocumentVersions({documentId})\n\n return useMemo(() => {\n if (!allReleases || !documentVersions) return false\n\n const documentReleaseIds = documentVersions.map(getVersionFromId).filter(Boolean)\n\n return allReleases.some((release) => {\n const releaseId = getReleaseIdFromReleaseDocumentId(release._id)\n\n return documentReleaseIds.includes(releaseId) && isCardinalityOneRelease(release)\n })\n }, [allReleases, documentVersions])\n}\n","import {CalendarIcon} from '@sanity/icons/Calendar'\nimport {isValidationErrorMarker} from '@sanity/types'\nimport {useToast} from '@sanity/ui'\nimport {useCallback, useMemo, useState} from 'react'\n\nimport {\n type DocumentActionComponent,\n type DocumentActionDescription,\n type DocumentActionProps,\n} from '../../../config/document/actions'\nimport {useValidationStatus} from '../../../hooks/useValidationStatus'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {usePerspective} from '../../../perspective/usePerspective'\nimport {useActiveReleases} from '../../../releases/store/useActiveReleases'\nimport {getReleaseIdFromReleaseDocumentId} from '../../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {getDraftId} from '../../../util/draftUtils'\nimport {isPausedCardinalityOneRelease} from '../../../util/releaseUtils'\nimport {ScheduleDraftDialog} from '../../components/ScheduleDraftDialog'\nimport {useSingleDocReleaseEnabled} from '../../context/SingleDocReleaseEnabledProvider'\nimport {useSingleDocRelease} from '../../context/SingleDocReleaseProvider'\nimport {useSingleDocReleaseUpsell} from '../../context/SingleDocReleaseUpsellProvider'\nimport {useHasCardinalityOneReleaseVersions} from '../../hooks/useHasCardinalityOneReleaseVersions'\nimport {useScheduleDraftOperations} from '../../hooks/useScheduleDraftOperations'\nimport {singleDocReleaseNamespace} from '../../i18n'\n\n// React Compiler needs functions that are hooks to have the `use` prefix, pascal case are treated as a component, these are hooks even though they're confusingly named `DocumentActionComponent`\n/** @internal */\nexport const useSchedulePublishAction: DocumentActionComponent = (\n props: DocumentActionProps,\n): DocumentActionDescription | null => {\n const {id, type, draft} = props\n const {t} = useTranslation(singleDocReleaseNamespace)\n const {createScheduledDraft, rescheduleScheduledDraft} = useScheduleDraftOperations()\n const toast = useToast()\n const {enabled: singleDocReleaseEnabled, mode} = useSingleDocReleaseEnabled()\n const {handleOpenDialog: handleOpenUpsellDialog} = useSingleDocReleaseUpsell()\n // Check validation status.\n // No `getTargetScopeId(useTargetDocumentState())` here: scheduling a draft publish deliberately validates the\n // explicit draft of the document, independent of the selected perspective. This is safe because\n // the action is disabled while a variant is selected (see `isVariantSelected` below).\n // TODO: this will be supported in the future, look for SAPP-3986 and SAPP-3987.\n const validationStatus = useValidationStatus(getDraftId(id), type, true)\n const hasValidationErrors = validationStatus.validation.some(isValidationErrorMarker)\n\n // Check if document has versions in cardinality one releases\n const hasCardinalityOneReleaseVersions = useHasCardinalityOneReleaseVersions(id)\n\n const [dialogOpen, setDialogOpen] = useState(false)\n const [isScheduling, setIsScheduling] = useState(false)\n const {onSetScheduledDraftPerspective} = useSingleDocRelease()\n\n // Check if current release is a paused scheduled draft\n const {data: releases = []} = useActiveReleases()\n const perspective = usePerspective()\n\n // Scheduling operates on the base draft, so it is not available while a variant is selected —\n // it would silently schedule the base document instead of the variant (SAPP-3986).\n const isVariantSelected = Boolean(perspective.selectedVariantName)\n\n const currentRelease = useMemo(\n () =>\n releases.find(\n (r) => getReleaseIdFromReleaseDocumentId(r._id) === perspective.selectedReleaseId,\n ),\n [releases, perspective.selectedReleaseId],\n )\n\n const isPaused = isPausedCardinalityOneRelease(currentRelease)\n const initialDate =\n isPaused && currentRelease?.metadata.intendedPublishAt\n ? new Date(currentRelease.metadata.intendedPublishAt)\n : undefined\n const handleOpenDialog = useCallback(() => {\n if (mode === 'upsell') {\n handleOpenUpsellDialog('document_action')\n } else {\n setDialogOpen(true)\n }\n }, [mode, handleOpenUpsellDialog])\n\n const handleCloseDialog = useCallback(() => {\n setDialogOpen(false)\n }, [])\n\n const handleSchedule = useCallback(\n async (publishAt: Date) => {\n setIsScheduling(true)\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = async () => {\n if (isPaused && currentRelease) {\n // Resume paused draft: reschedule with new date\n await rescheduleScheduledDraft(currentRelease, publishAt)\n } else {\n // Normal flow: create new scheduled draft\n const releaseDocumentId = await createScheduledDraft(id, publishAt)\n onSetScheduledDraftPerspective(getReleaseIdFromReleaseDocumentId(releaseDocumentId))\n }\n\n setDialogOpen(false)\n }\n try {\n await run()\n } catch (error) {\n console.error('Failed to schedule document publish:', error)\n\n toast.push({\n closable: true,\n status: 'error',\n title: t('action.schedule-publish-error'),\n description: error instanceof Error ? error.message : 'An unknown error occurred',\n })\n }\n setIsScheduling(false)\n },\n [\n id,\n createScheduledDraft,\n toast,\n t,\n onSetScheduledDraftPerspective,\n isPaused,\n currentRelease,\n rescheduleScheduledDraft,\n ],\n )\n\n const disabled =\n isVariantSelected ||\n (isPaused\n ? hasValidationErrors // Only check validation errors for paused drafts\n : hasCardinalityOneReleaseVersions || hasValidationErrors) // Full check for regular drafts\n\n const title = useMemo(() => {\n if (isVariantSelected) {\n return t('action.schedule-publish.disabled.variant')\n }\n\n if (isPaused && hasValidationErrors) {\n return t('action.schedule-publish.disabled.validation-issues')\n }\n\n if (hasCardinalityOneReleaseVersions) {\n return t('action.schedule-publish.disabled.cardinality-one')\n }\n\n if (hasValidationErrors) {\n return t('action.schedule-publish.disabled.validation-issues')\n }\n\n return t('action.schedule-publish')\n }, [isVariantSelected, isPaused, hasValidationErrors, hasCardinalityOneReleaseVersions, t])\n\n if (!singleDocReleaseEnabled) {\n return null\n }\n\n // Show for drafts OR paused scheduled drafts\n if (!draft && !isPaused) {\n return null\n }\n\n return {\n icon: CalendarIcon,\n disabled,\n label: t('action.schedule-publish'),\n title,\n tone: isPaused ? 'primary' : undefined, // Add primary tone when paused\n onHandle: handleOpenDialog,\n dialog: dialogOpen && {\n type: 'custom',\n component: (\n <ScheduleDraftDialog\n onClose={handleCloseDialog}\n onSchedule={handleSchedule}\n variant=\"schedule\"\n loading={isScheduling}\n initialDate={initialDate}\n />\n ),\n },\n }\n}\n\nuseSchedulePublishAction.action = 'schedule'\nuseSchedulePublishAction.displayName = 'SchedulePublishAction'\n","import {type DocumentActionComponent} from '../../../config/document/actions'\nimport {type DocumentActionsContext} from '../../../config/types'\nimport {\n DeleteScheduledDraftAction,\n EditScheduledDraftAction,\n PublishScheduledDraftAction,\n} from './ScheduledDraftDocumentActions'\nimport {useSchedulePublishAction} from './SchedulePublishAction'\n\nexport default function resolveDocumentActions(\n existingActions: DocumentActionComponent[],\n context: DocumentActionsContext,\n): DocumentActionComponent[] {\n if (context.versionType === 'scheduled-draft') {\n // For paused scheduled drafts: Schedule (primary), Publish Now, Delete Schedule\n // For active scheduled drafts: Publish Now (primary), Edit Schedule, Delete Schedule\n return [\n useSchedulePublishAction, // Shows only when paused\n PublishScheduledDraftAction, // Always shows\n EditScheduledDraftAction, // Shows only when NOT paused\n DeleteScheduledDraftAction, // Always shows\n ]\n }\n\n // Add SchedulePublishAction only for draft documents\n if (context.versionType === 'draft') {\n const actionsExcludingOriginalSchedule = existingActions.filter(\n ({action}) => action !== 'schedule',\n )\n const publishActionIndex = actionsExcludingOriginalSchedule.findIndex(\n ({action}) => action === 'publish',\n )\n const nextAfterPublishIndex = publishActionIndex + 1\n const hasPublishAction = publishActionIndex >= 0\n\n const actionsBeforePublish = hasPublishAction\n ? actionsExcludingOriginalSchedule.slice(0, nextAfterPublishIndex)\n : []\n const actionsAfterPublish = hasPublishAction\n ? actionsExcludingOriginalSchedule.slice(nextAfterPublishIndex)\n : actionsExcludingOriginalSchedule\n\n return [...actionsBeforePublish, useSchedulePublishAction, ...actionsAfterPublish]\n }\n return existingActions\n}\n","import {lazy} from 'react'\n\nimport {definePlugin} from '../../config/definePlugin'\nimport {singleDocReleaseUsEnglishLocaleBundle} from '../i18n'\nimport resolveDocumentActions from './documentActions'\n\nconst SingleDocReleaseLayout = lazy(() =>\n import('./SingleDocReleaseLayout').then((module) => ({default: module.SingleDocReleaseLayout})),\n)\n\n/**\n * @internal\n */\nexport const SINGLE_DOC_RELEASE_NAME = 'sanity/singleDocRelease'\n\n/**\n * @internal\n */\nexport const RELEASES_SCHEDULED_DRAFTS_INTENT = 'releases-scheduled-drafts'\n\n/**\n * @internal\n */\nexport const singleDocRelease = definePlugin({\n name: SINGLE_DOC_RELEASE_NAME,\n studio: {\n components: {\n layout: SingleDocReleaseLayout,\n },\n },\n i18n: {\n bundles: [singleDocReleaseUsEnglishLocaleBundle],\n },\n document: {\n actions: resolveDocumentActions,\n },\n})\n"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { i as Dialog$1, r as Popover$1 } from "./ConfirmPopover-CD1rDyuk.js";
2
2
  import { a as Button$1, o as Tooltip$1, r as MenuButton$1, t as MenuItem$1 } from "./MenuItem-BWdL61CI.js";
3
3
  import { l as getPublishedId, s as getDraftId } from "./draftUtils-D3HJGQaW.js";
4
- import { c as useWorkspace } from "./studioClient-D1Z2zK3C.js";
5
- import { gn as useSchema, p as useCurrentUser, r as useDocumentPreviewStore } from "./datastores-XTDIa3jc.js";
4
+ import { c as useWorkspace } from "./studioClient-CwMJwOTd.js";
5
+ import { gn as useSchema, p as useCurrentUser, r as useDocumentPreviewStore } from "./datastores-DpJ5Y313.js";
6
6
  import { t as useTranslation } from "./useTranslation-Cqs6Itwv.js";
7
- import { $a as UserAvatar, An as SanityDefaultPreview, Co as DocumentStatus, Et as LazyTextInput, Rn as FormField, So as DocumentStatusIndicator, bt as TimeZoneButton, ci as useDocumentPairPermissions, d as Preview, hn as getDocumentVersionInfoFromVersions, vi as useDocumentVersions, xo as InsufficientPermissionsMessage } from "./useBundleDocuments-BnCBcbdJ.js";
7
+ import { $a as UserAvatar, An as SanityDefaultPreview, Co as DocumentStatus, Et as LazyTextInput, Rn as FormField, So as DocumentStatusIndicator, bt as TimeZoneButton, ci as useDocumentPairPermissions, d as Preview, hn as getDocumentVersionInfoFromVersions, vi as useDocumentVersions, xo as InsufficientPermissionsMessage } from "./useBundleDocuments-DvVAF6cf.js";
8
8
  import { t as ContextMenuButton } from "./ContextMenuButton-i3QSjB9U.js";
9
- import { r as DATE_FORMAT, t as useTimeZone } from "./useTimeZone-zs0ybzXu.js";
10
- import { a as useScheduleOperation, d as SCHEDULED_PUBLISHING_TIME_ZONE_SCOPE, m as SCHEDULE_FAILED_TEXT, n as useValidationState, p as SCHEDULE_ACTION_DICTIONARY, r as usePublishedId, s as getLastExecuteDate, t as EMPTY_VALIDATION_STATUS } from "./validationUtils-LdwtMTh5.js";
11
- import { n as useScheduledPublishingEnabled } from "./ScheduledPublishingEnabledProvider-BNMAVqrS.js";
12
- import { s as useValidationStatus } from "./plugin-BRnqEpCl.js";
9
+ import { r as DATE_FORMAT, t as useTimeZone } from "./useTimeZone-8Wd1UR4j.js";
10
+ import { a as useScheduleOperation, d as SCHEDULED_PUBLISHING_TIME_ZONE_SCOPE, m as SCHEDULE_FAILED_TEXT, n as useValidationState, p as SCHEDULE_ACTION_DICTIONARY, r as usePublishedId, s as getLastExecuteDate, t as EMPTY_VALIDATION_STATUS } from "./validationUtils-Cuk0jhWJ.js";
11
+ import { n as useScheduledPublishingEnabled } from "./ScheduledPublishingEnabledProvider-BDRtV8OB.js";
12
+ import { s as useValidationStatus } from "./plugin-qHXYpO99.js";
13
13
  import { useContext, useEffect, useId, useImperativeHandle, useMemo, useRef, useState } from "react";
14
14
  import { combineLatest, of } from "rxjs";
15
15
  import { c } from "react/compiler-runtime";
@@ -1879,4 +1879,4 @@ const DocumentPreview = (props) => {
1879
1879
  };
1880
1880
  export { DocumentActionPropsProvider as a, DialogHeader as c, useScheduleForm as i, TimeZoneButtonElementQuery as l, useSchemaType as n, ErrorCallout as o, ValidationInfo as r, EditScheduleForm as s, ScheduleItem as t };
1881
1881
 
1882
- //# sourceMappingURL=scheduleItem-Dtb26ejO.js.map
1882
+ //# sourceMappingURL=scheduleItem-DcC1HE9G.js.map