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.
- package/lib/{AddonDatasetProvider-B5npf4J4.js → AddonDatasetProvider-CfAw3oMr.js} +2 -2
- package/lib/{AddonDatasetProvider-B5npf4J4.js.map → AddonDatasetProvider-CfAw3oMr.js.map} +1 -1
- package/lib/{CalendarFilter-DYJEZDCP.js → CalendarFilter-OHGevGRx.js} +3 -3
- package/lib/{CalendarFilter-DYJEZDCP.js.map → CalendarFilter-OHGevGRx.js.map} +1 -1
- package/lib/{CommentsDocumentLayout-CTL7lt6a.js → CommentsDocumentLayout-p8p-oNuH.js} +2 -2
- package/lib/{CommentsDocumentLayout-CTL7lt6a.js.map → CommentsDocumentLayout-p8p-oNuH.js.map} +1 -1
- package/lib/{CommentsField-BE_CI2SY.js → CommentsField-CqXs722Y.js} +3 -3
- package/lib/{CommentsField-BE_CI2SY.js.map → CommentsField-CqXs722Y.js.map} +1 -1
- package/lib/{CommentsInput-D_EM-t5a.js → CommentsInput-B3rd8HlF.js} +5 -5
- package/lib/{CommentsInput-D_EM-t5a.js.map → CommentsInput-B3rd8HlF.js.map} +1 -1
- package/lib/{CommentsInspector-DtBIUadl.js → CommentsInspector-DTHmjTFc.js} +5 -5
- package/lib/{CommentsInspector-DtBIUadl.js.map → CommentsInspector-DTHmjTFc.js.map} +1 -1
- package/lib/{CommentsListItem-BFRqZMJ6.js → CommentsListItem-C2Ac0esL.js} +3 -3
- package/lib/{CommentsListItem-BFRqZMJ6.js.map → CommentsListItem-C2Ac0esL.js.map} +1 -1
- package/lib/{CommentsSelectedPathProvider-CIKpHpK3.js → CommentsSelectedPathProvider-DwDw8s-s.js} +3 -3
- package/lib/{CommentsSelectedPathProvider-CIKpHpK3.js.map → CommentsSelectedPathProvider-DwDw8s-s.js.map} +1 -1
- package/lib/{CommentsStudioLayout-Dx0jIDle.js → CommentsStudioLayout-e2hCA_5z.js} +4 -4
- package/lib/{CommentsStudioLayout-Dx0jIDle.js.map → CommentsStudioLayout-e2hCA_5z.js.map} +1 -1
- package/lib/{ReleasesMetadataProvider-hILX90V4.js → ReleasesMetadataProvider-BWsmHWkh.js} +2 -2
- package/lib/{ReleasesMetadataProvider-hILX90V4.js.map → ReleasesMetadataProvider-BWsmHWkh.js.map} +1 -1
- package/lib/{ReleasesNav-DIv-1iR7.js → ReleasesNav-DPSjEs29.js} +14 -14
- package/lib/{ReleasesNav-DIv-1iR7.js.map → ReleasesNav-DPSjEs29.js.map} +1 -1
- package/lib/{ReleasesStudioLayout-DW7fJSfG.js → ReleasesStudioLayout-CtyE88nI.js} +8 -8
- package/lib/{ReleasesStudioLayout-DW7fJSfG.js.map → ReleasesStudioLayout-CtyE88nI.js.map} +1 -1
- package/lib/{ReleasesTool-BQjO7osC.js → ReleasesTool-BjbRMZlc.js} +15 -15
- package/lib/{ReleasesTool-BQjO7osC.js.map → ReleasesTool-BjbRMZlc.js.map} +1 -1
- package/lib/{SchedulePublishingStudioLayout-Cwmdz7HZ.js → SchedulePublishingStudioLayout-gZWH97ZL.js} +3 -3
- package/lib/{SchedulePublishingStudioLayout-Cwmdz7HZ.js.map → SchedulePublishingStudioLayout-gZWH97ZL.js.map} +1 -1
- package/lib/{SchedulePublishingUpsellProvider-C5B21VDh.js → SchedulePublishingUpsellProvider-DsI8OUg-.js} +2 -2
- package/lib/{SchedulePublishingUpsellProvider-C5B21VDh.js.map → SchedulePublishingUpsellProvider-DsI8OUg-.js.map} +1 -1
- package/lib/{ScheduledPublishingEnabledProvider-BNMAVqrS.js → ScheduledPublishingEnabledProvider-BDRtV8OB.js} +3 -3
- package/lib/{ScheduledPublishingEnabledProvider-BNMAVqrS.js.map → ScheduledPublishingEnabledProvider-BDRtV8OB.js.map} +1 -1
- package/lib/{SearchProvider-DkGUk8a6.js → SearchProvider-Hk7IMQqR.js} +4 -4
- package/lib/{SearchProvider-DkGUk8a6.js.map → SearchProvider-Hk7IMQqR.js.map} +1 -1
- package/lib/{SingleDocReleaseLayout-fW8U-ktp.js → SingleDocReleaseLayout-evCp37zs.js} +2 -2
- package/lib/{SingleDocReleaseLayout-fW8U-ktp.js.map → SingleDocReleaseLayout-evCp37zs.js.map} +1 -1
- package/lib/{SingleDocReleaseUpsellProvider-BNF2Rj3j.js → SingleDocReleaseUpsellProvider-BOe2BACb.js} +4 -4
- package/lib/{SingleDocReleaseUpsellProvider-BNF2Rj3j.js.map → SingleDocReleaseUpsellProvider-BOe2BACb.js.map} +1 -1
- package/lib/{TasksStudioActiveToolLayout-CHazNA61.js → TasksStudioActiveToolLayout-Dbs-1GX6.js} +11 -11
- package/lib/{TasksStudioActiveToolLayout-CHazNA61.js.map → TasksStudioActiveToolLayout-Dbs-1GX6.js.map} +1 -1
- package/lib/{TasksStudioLayout-B7bCL28Q.js → TasksStudioLayout-Pn-RwtPi.js} +5 -5
- package/lib/{TasksStudioLayout-B7bCL28Q.js.map → TasksStudioLayout-Pn-RwtPi.js.map} +1 -1
- package/lib/{Tool-rkq_tjXo.js → Tool-D4-WLZtb.js} +12 -12
- package/lib/{Tool-rkq_tjXo.js.map → Tool-D4-WLZtb.js.map} +1 -1
- package/lib/{UnpublishVersionDialog-DWYCXGkz.js → UnpublishVersionDialog-DmFHVqhI.js} +4 -4
- package/lib/{UnpublishVersionDialog-DWYCXGkz.js.map → UnpublishVersionDialog-DmFHVqhI.js.map} +1 -1
- package/lib/{UpsellDialog-BiDSVmne.js → UpsellDialog-DRhOCOce.js} +2 -2
- package/lib/{UpsellDialog-BiDSVmne.js.map → UpsellDialog-DRhOCOce.js.map} +1 -1
- package/lib/{VariantsStudioNavbar-Bae9LOIN.js → VariantsStudioNavbar-CXpr7UUl.js} +7 -7
- package/lib/{VariantsStudioNavbar-Bae9LOIN.js.map → VariantsStudioNavbar-CXpr7UUl.js.map} +1 -1
- package/lib/{VariantsTool-E4ptTHik.js → VariantsTool-BCtrSWfP.js} +7 -7
- package/lib/{VariantsTool-E4ptTHik.js.map → VariantsTool-BCtrSWfP.js.map} +1 -1
- package/lib/{WorkspaceLoader-sdFQ9rkh.js → WorkspaceLoader-_w6NnbDb.js} +21 -21
- package/lib/{WorkspaceLoader-sdFQ9rkh.js.map → WorkspaceLoader-_w6NnbDb.js.map} +1 -1
- package/lib/_createContext.js +1 -1
- package/lib/{buildTextSelectionFromFragment-CuXpitEZ.js → buildTextSelectionFromFragment-Egmw5rNs.js} +3 -3
- package/lib/{buildTextSelectionFromFragment-CuXpitEZ.js.map → buildTextSelectionFromFragment-Egmw5rNs.js.map} +1 -1
- package/lib/{datastores-XTDIa3jc.js → datastores-DpJ5Y313.js} +2 -2
- package/lib/{datastores-XTDIa3jc.js.map → datastores-DpJ5Y313.js.map} +1 -1
- package/lib/index.js +28 -28
- package/lib/{inputResolver-DLP8YZcM.js → inputResolver-BX-VuloN.js} +4 -4
- package/lib/{inputResolver-DLP8YZcM.js.map → inputResolver-BX-VuloN.js.map} +1 -1
- package/lib/{navigation.telemetry-4pppJENG.js → navigation.telemetry-VbqjOek0.js} +7 -7
- package/lib/{navigation.telemetry-4pppJENG.js.map → navigation.telemetry-VbqjOek0.js.map} +1 -1
- package/lib/{plugin-BmARoHKH.js → plugin-DGOEvpWT.js} +4 -4
- package/lib/{plugin-BmARoHKH.js.map → plugin-DGOEvpWT.js.map} +1 -1
- package/lib/{plugin-BUox1zeI.js → plugin-Da_fKb0U.js} +3 -3
- package/lib/{plugin-BUox1zeI.js.map → plugin-Da_fKb0U.js.map} +1 -1
- package/lib/{plugin-CjN39wwt.js → plugin-DqqaZdOH.js} +5 -5
- package/lib/{plugin-CjN39wwt.js.map → plugin-DqqaZdOH.js.map} +1 -1
- package/lib/{plugin-BRnqEpCl.js → plugin-qHXYpO99.js} +6 -6
- package/lib/{plugin-BRnqEpCl.js.map → plugin-qHXYpO99.js.map} +1 -1
- package/lib/{scheduleItem-Dtb26ejO.js → scheduleItem-DcC1HE9G.js} +8 -8
- package/lib/{scheduleItem-Dtb26ejO.js.map → scheduleItem-DcC1HE9G.js.map} +1 -1
- package/lib/{schedules-6qsR7E_I.js → schedules-CbnXaXM9.js} +3 -3
- package/lib/{schedules-6qsR7E_I.js.map → schedules-CbnXaXM9.js.map} +1 -1
- package/lib/{searchDocumentRelease-CUk7BiST.js → searchDocumentRelease-C5sClmGF.js} +4 -4
- package/lib/{searchDocumentRelease-CUk7BiST.js.map → searchDocumentRelease-C5sClmGF.js.map} +1 -1
- package/lib/{studioClient-D1Z2zK3C.js → studioClient-CwMJwOTd.js} +2 -2
- package/lib/{studioClient-D1Z2zK3C.js.map → studioClient-CwMJwOTd.js.map} +1 -1
- package/lib/{useBundleDocuments-BnCBcbdJ.js → useBundleDocuments-DvVAF6cf.js} +7 -7
- package/lib/{useBundleDocuments-BnCBcbdJ.js.map → useBundleDocuments-DvVAF6cf.js.map} +1 -1
- package/lib/{useComments-Bm-0CwNH.js → useComments-DuEOnDkA.js} +2 -2
- package/lib/{useComments-Bm-0CwNH.js.map → useComments-DuEOnDkA.js.map} +1 -1
- package/lib/{useCommentsTelemetry-D1kYRuPU.js → useCommentsTelemetry-BgNdQdz5.js} +3 -3
- package/lib/{useCommentsTelemetry-D1kYRuPU.js.map → useCommentsTelemetry-BgNdQdz5.js.map} +1 -1
- package/lib/{useDocumentPreviewValues-DJvES8Wi.js → useDocumentPreviewValues-B1zNjl_D.js} +3 -3
- package/lib/{useDocumentPreviewValues-DJvES8Wi.js.map → useDocumentPreviewValues-B1zNjl_D.js.map} +1 -1
- package/lib/{useFeatureEnabled-g8eZoiLM.js → useFeatureEnabled-4qCpV_mX.js} +2 -2
- package/lib/{useFeatureEnabled-g8eZoiLM.js.map → useFeatureEnabled-4qCpV_mX.js.map} +1 -1
- package/lib/{useFieldActions-BV_qfe65.js → useFieldActions-uDe2qh98.js} +2 -2
- package/lib/{useFieldActions-BV_qfe65.js.map → useFieldActions-uDe2qh98.js.map} +1 -1
- package/lib/{useReleasesToolAvailable-Duu10qV0.js → useReleasesToolAvailable-DDuNc6HV.js} +3 -3
- package/lib/{useReleasesToolAvailable-Duu10qV0.js.map → useReleasesToolAvailable-DDuNc6HV.js.map} +1 -1
- package/lib/{useScheduledDraftMenuActions-Byiy3-k3.js → useScheduledDraftMenuActions-DqkHlC0c.js} +5 -5
- package/lib/{useScheduledDraftMenuActions-Byiy3-k3.js.map → useScheduledDraftMenuActions-DqkHlC0c.js.map} +1 -1
- package/lib/{useStudioUrl-BEb30_UK.js → useStudioUrl-B4w58A2i.js} +5 -5
- package/lib/{useStudioUrl-BEb30_UK.js.map → useStudioUrl-B4w58A2i.js.map} +1 -1
- package/lib/{useTimeZone-zs0ybzXu.js → useTimeZone-8Wd1UR4j.js} +2 -2
- package/lib/{useTimeZone-zs0ybzXu.js.map → useTimeZone-8Wd1UR4j.js.map} +1 -1
- package/lib/{validationUtils-LdwtMTh5.js → validationUtils-Cuk0jhWJ.js} +4 -4
- package/lib/{validationUtils-LdwtMTh5.js.map → validationUtils-Cuk0jhWJ.js.map} +1 -1
- package/lib/{version-XEmBTnIh.js → version-BVcB_xWL.js} +2 -2
- package/lib/{version-XEmBTnIh.js.map → version-BVcB_xWL.js.map} +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleasesNav-DIv-1iR7.js","names":["useCallback","useRouter","SystemBundle","getVariantId","SystemVariant","ReleaseId","useGetDefaultPerspective","getPerspectiveParam","SetVariant","options","variantId","perspective","useSetVariant","$","_c","router","defaultPerspective","t0","t1","navigate","stickyParams","variant","excludedPerspectives","AddIcon","ComponentProps","ComponentType","useMemo","useObservable","from","MenuItem","useTranslation","useWorkspace","useCreateReleaseMetadata","useActiveReleases","useReleaseOperations","useReleasePermissions","getReleaseDefaults","Props","onCreateRelease","CreateReleaseMenuItem","t0","$","_c","t","createRelease","checkWithPermissionGuard","createReleaseMetadata","t1","hasCreatePermission","activeReleases","activeReleaseCount","data","length","releases","workspaceReleaseLimit","limit","Infinity","isWorkspaceReleaseLimitReached","t2","t3","menuItemProps","t4","t5","count","t6","content","t7","ReleaseDocument","useCallback","useTimeZone","CONTENT_RELEASES_TIME_ZONE_SCOPE","formatRelativeLocalePublishDate","useFormatRelativeLocalePublishDate","$","_c","timeZone","t0","name","release","useMemo","useObservable","useClient","useWorkspace","useProjectStore","useResourceCache","AgentBundlesState","AgentBundlesStore","createAgentBundlesStore","INITIAL_STATE","CLIENT_OPTIONS","apiVersion","const","useAgentBundlesStore","$","_c","resourceCache","workspace","client","projectStore","agentBundlesStore","get","namespace","dependencies","organizationId$","getOrganizationId","set","value","useAgentBundles","state$","HTMLProps","ReactNode","useCallback","RefAttributes","StateLink","useRouterState","ToolLinkProps","children","name","ToolLink","props","$","_c","ref","rest","t0","tool","undefined","state","t1","css","oversizedButtonStyle","Button","useCallback","useObservable","useRouterState","styled","Tooltip","useTranslation","ReleaseAvatarIcon","useReleasesStore","SCHEDULES_TOOL_NAME","ToolLink","oversizedButtonStyle","usePerspective","Dot","div","width","height","borderRadius","boxShadow","OversizedButton","ReleasesToolLink","$","_c","t","errorCount$","errorCount","hasError","selectedPerspective","activeToolName","_temp","t0","t1","t2","t3","backgroundColor","t4","t5","routerState","tool","undefined","motion","ReactNode","useCallback","useLayoutEffect","useRef","useState","AnimatedTextWidth","t0","$","_c","children","text","textRef","containerWidth","setContainerWidth","isAnimating","setIsAnimating","t1","Symbol","for","current","newWidth","offsetWidth","t2","t3","onAnimationStart","t4","onAnimationComplete","t5","t6","t7","display","width","overflow","t8","t9","t10","type","bounce","duration","t11","whiteSpace","verticalAlign","t12","t13","ReleaseDocument","Box","Button","Text","useMemo","RefAttributes","IntentLink","styled","useTranslation","ReleaseTitle","RELEASES_INTENT","isReleaseDocument","getReleaseIdFromReleaseDocumentId","isDraftPerspective","isPublishedPerspective","isAgentBundleName","useAgentBundles","oversizedButtonStyle","TargetPerspective","AnimatedTextWidth","OversizedButton","ReleasesLink","t0","$","_c","selectedPerspective","t","t1","_id","ReleasesIntentLink","t2","ref","children","intentProps","id","metadata","title","t3","t4","t5","displayTitle","maxWidth","CurrentGlobalPerspectiveLabel","bundles","userSelect","overflow","some","b","SparkleIcon","Box","Flex","MenuItem","Stack","Text","CSSProperties","memo","useCallback","useTranslation","AgentBundle","usePerspective","useSetPerspective","iconStyle","AgentBundleMenuItem","t0","$","_c","bundle","t","setPerspective","selectedPerspectiveName","active","id","t1","label","t2","handleClick","t3","Symbol","for","t4","maxWidth","minWidth","t5","t6","t7","t8","useCallback","useMemo","useRouter","usePerspective","ExcludedPerspectiveValue","excludedPerspectives","toggleExcludedPerspective","perspectiveId","isPerspectiveExcluded","useExcludedPerspective","$","_c","navigate","t0","excluded","existingPerspectives","nextExcludedPerspectives","includes","filter","id","stickyParams","toString","t1","Boolean","t2","Box","css","styled","INDICATOR_LEFT_OFFSET","INDICATOR_WIDTH","INDICATOR_COLOR_VAR_NAME","INDICATOR_BOTTOM_OFFSET","GlobalPerspectiveMenuItemIndicator","div","$inRange","$last","$first","$isDefaultPerspective","GlobalPerspectiveMenuLabelIndicator","$withinRange","ReleaseDocument","ErrorOutlineIcon","EyeClosedIcon","EyeOpenIcon","LockIcon","Box","Button","Flex","MenuItem","Stack","Text","MouseEvent","useCallback","useMemo","RefAttributes","css","styled","ToneIcon","Tooltip","useTranslation","useExcludedPerspective","usePerspective","useSetPerspective","ReleaseAvatarIcon","ReleaseTitle","useFormatRelativeLocalePublishDate","isReleaseDocument","LATEST","PUBLISHED","getReleaseIdFromReleaseDocumentId","isDraftPerspective","isReleaseScheduledOrScheduling","useWorkspace","ReleasesNavMenuItemPropsGetter","GlobalPerspectiveMenuItemIndicator","LayerRange","lastIndex","offsets","asap","scheduled","undecided","ToggleLayerButton","$visible","rangePosition","IconWrapperBox","$isExcluded","getRangePosition","range","index","undefined","GlobalPerspectiveMenuItem","props","$","_c","ref","release","document","t0","drafts","t1","enabled","isDraftModelEnabled","defaultPerspective","selectedPerspective","selectedPerspectiveName","setPerspective","toggleExcludedPerspective","isPerspectiveExcluded","formatPublishDate","t2","_id","releaseId","isDefaultPerspective","active","t3","isReleasePerspectiveExcluded","t","t4","event","stopPropagation","handleToggleReleaseVisibility","t5","handleOnReleaseClick","t6","bb0","t7","includes","canReleaseBeExcluded","t8","t9","Boolean","t10","t11","menuItemProps","perspective","t12","t13","t14","t15","opacity","maxWidth","minWidth","t16","Symbol","for","t17","metadata","title","size","weight","style","t18","error","state","t19","t20","releaseType","publishAt","intendedPublishAt","t21","t22","t23","t24","t25","t26","t27","ReleaseDocument","ReleaseType","Card","Flex","Label","Stack","useCallback","useTranslation","usePerspective","getReleaseIdFromReleaseDocumentId","ReleaseId","ReleasesNavMenuItemPropsGetter","getRangePosition","GlobalPerspectiveMenuItem","LayerRange","GlobalPerspectiveMenuLabelIndicator","ScrollElement","RELEASE_TYPE_LABELS","Record","asap","scheduled","undecided","ReleaseTypeMenuSection","t0","$","_c","releaseType","releases","range","currentGlobalBundleMenuItemRef","menuItemProps","t","selectedReleaseId","t1","releaseId","React","RefObject","HTMLDivElement","undefined","getMenuItemRef","length","lastIndex","offsets","releaseTypeOffset","t2","t3","Symbol","for","textTransform","t4","t5","t6","t7","t8","t9","release","index","_id","map","t10","CalendarIcon","useTelemetry","ComponentType","useCallback","useIntentLink","MenuItem","FEATURES","useFeatureEnabled","useTranslation","NavigatedToScheduledDrafts","useScheduledDraftsEnabled","RELEASES_SCHEDULED_DRAFTS_INTENT","useWorkspace","ScheduledDraftsMenuItem","$","_c","t","telemetry","isScheduledDraftsEnabled","enabled","isSingleDocReleaseEnabled","singleDocRelease","document","t0","drafts","t1","isDraftModelEnabled","t2","log","source","logNavigationTelemetry","t3","Symbol","for","view","t4","intent","params","onClick","href","t5","t6","CalendarIcon","useTelemetry","ComponentType","useCallback","useIntentLink","MenuItem","useTranslation","NavigatedToReleasesOverview","RELEASES_INTENT","ViewContentReleasesMenuItem","$","_c","t","telemetry","t0","log","source","logNavigationTelemetry","t1","Symbol","for","t2","intent","params","onClick","href","t3","t4","ReleaseDocument","ReleaseType","Card","Flex","Spinner","Stack","JSX","RefObject","useMemo","styled","CreateReleaseMenuItem","useActiveReleases","LATEST","PUBLISHED","getReleaseIdFromReleaseDocumentId","useAgentBundles","useWorkspace","isCardinalityOneRelease","ReleasesNavMenuItemPropsGetter","AgentBundleMenuItem","getRangePosition","GlobalPerspectiveMenuItem","LayerRange","ReleaseTypeMenuSection","ScheduledDraftsMenuItem","ScrollElement","ViewContentReleasesMenuItem","orderedReleaseTypes","StickyCard","StickyTopCard","StickyBottomCard","ReleasesList","t0","$","_c","areReleasesEnabled","setScrollContainer","isRangeVisible","selectedPerspectiveName","handleOpenBundleDialog","scrollElementRef","menuItemProps","loading","data","allReleases","bundles","agentBundles","t1","filter","_temp","releases","document","t2","drafts","t3","enabled","isDraftModelEnabled","t4","reduce","ReleaseTypeReleases","releaseType","t5","metadata","Record","sortedReleaseTypeReleases","isDraftsPerspective","lastIndex","offsets","flat","systemStack","asap","scheduled","t6","length","t7","t8","undecided","adjustIndexForReleaseType","type","groupSubsetReleases","offset","forEach","release_0","groupReleaseIndex","index","release","_id","range","Symbol","for","undefined","t9","t10","t11","map","releaseType_0","t12","t13","t14","t15","useCallback","useEffect","useMemo","useRef","useState","ScrollElement","HTMLElement","findScrollableAncestor","element","current","parentElement","overflowY","getComputedStyle","isElementVisibleInContainer","container","containerRect","getBoundingClientRect","elementRect","isVisible","top","useScrollIndicatorVisibility","$","_c","scrollElementRef","scrollAncestorRef","isRangeVisible","setIsRangeVisible","t0","Symbol","for","handleScroll","t1","previousAncestor","removeEventListener","scrollableAncestor","addEventListener","passive","setScrollContainer","t2","t3","ancestor","t4","resetRangeVisibility","t5","ChevronDownIcon","Button","Menu","useCallback","useRef","useState","styled","MenuButton","CreateReleaseDialog","useReleasesUpsell","oversizedButtonStyle","ReleasesNavMenuItemPropsGetter","ReleasesList","useScrollIndicatorVisibility","StyledMenu","OversizedButton","GlobalPerspectiveMenu","t0","$","_c","selectedPerspectiveName","areReleasesEnabled","t1","menuItemProps","undefined","createBundleDialogOpen","setCreateBundleDialogOpen","handleOpenDialog","handleOpenReleasesUpsellDialog","mode","releasesUpsellMode","styledMenuRef","isRangeVisible","resetRangeVisibility","setScrollContainer","scrollElementRef","t2","handleOpenBundleDialog","t3","Symbol","for","handleClose","t4","t5","t6","t7","t8","overflow","t9","__unstable_margins","constrainSize","fallbackPlacements","placement","portal","style","React","CSSProperties","tone","zOffset","t10","t11","t12","Card","ComponentType","styled","usePerspective","useReleasesToolAvailable","useWorkspace","ReleasesToolLink","ReleasesNavMenuItemPropsGetter","CurrentGlobalPerspectiveLabel","GlobalPerspectiveMenu","ReleasesNavContainer","Props","withReleasesToolButton","menuItemProps","border","ReleasesNav","t0","$","_c","t1","undefined","releasesToolAvailable","isReleasesEnabled","releases","enabled","selectedPerspective","selectedPerspectiveName","t2","t3","t4","t5","t6"],"sources":["../src/core/perspective/useSetVariant.tsx","../src/core/releases/components/CreateReleaseMenuItem.tsx","../src/core/releases/hooks/useFormatRelativeLocalePublishDate.ts","../src/core/store/agent/useAgentBundles.ts","../src/core/studio/components/navbar/tools/ToolLink.tsx","../src/core/perspective/styles.ts","../src/core/perspective/ReleasesToolLink.tsx","../src/core/perspective/navbar/AnimatedTextWidth.tsx","../src/core/perspective/navbar/currentGlobalPerspectiveLabel.tsx","../src/core/perspective/navbar/AgentBundleMenuItem.tsx","../src/core/perspective/useExcludedPerspective.tsx","../src/core/perspective/navbar/PerspectiveLayerIndicator.tsx","../src/core/perspective/navbar/GlobalPerspectiveMenuItem.tsx","../src/core/perspective/navbar/ReleaseTypeMenuSection.tsx","../src/core/perspective/navbar/ScheduledDraftsMenuItem.tsx","../src/core/perspective/navbar/ViewContentReleasesMenuItem.tsx","../src/core/perspective/navbar/ReleasesList.tsx","../src/core/perspective/navbar/useScrollIndicatorVisibility.ts","../src/core/perspective/navbar/GlobalPerspectiveMenu.tsx","../src/core/perspective/navbar/ReleasesNav.tsx"],"sourcesContent":["import {useCallback} from 'react'\nimport {useRouter} from 'sanity/router'\n\nimport {type SystemBundle} from '../util/draftUtils'\nimport {getVariantId} from '../variants/tool/util'\nimport {type SystemVariant} from '../variants/types'\nimport {type ReleaseId} from './types'\nimport {useGetDefaultPerspective} from './useGetDefaultPerspective'\nimport {getPerspectiveParam} from './useSetPerspective'\n\n/**\n * @internal\n */\nexport type SetVariant = (\n options:\n | {\n variantId: SystemVariant['_id'] | undefined\n perspective?: SystemBundle | ReleaseId\n }\n | {\n variantId?: SystemVariant['_id']\n perspective: SystemBundle | ReleaseId\n },\n) => void\n\n/**\n * React hook to set the variant in the router.\n * Optionally sets the perspective in the same navigation, so both sticky params\n * are updated atomically (a single history entry, no intermediate render).\n * Do not use in production, this can change in any release.\n * @internal\n * @beta\n */\nexport function useSetVariant(): SetVariant {\n const router = useRouter()\n const defaultPerspective = useGetDefaultPerspective()\n\n return useCallback<SetVariant>(\n ({variantId, perspective}) => {\n router.navigate({\n stickyParams: {\n variant: variantId ? getVariantId(variantId) : null,\n ...(perspective\n ? {\n excludedPerspectives: null,\n perspective: getPerspectiveParam(perspective, defaultPerspective),\n }\n : {}),\n },\n })\n },\n [router, defaultPerspective],\n )\n}\n","import {AddIcon} from '@sanity/icons/Add'\nimport {type ComponentProps, type ComponentType, useMemo} from 'react'\nimport {useObservable} from 'react-rx'\nimport {from} from 'rxjs'\n\nimport {MenuItem} from '../../../ui-components/menuItem/MenuItem'\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {useWorkspace} from '../../studio/workspace'\nimport {useCreateReleaseMetadata} from '../hooks/useCreateReleaseMetadata'\nimport {useActiveReleases} from '../store/useActiveReleases'\nimport {useReleaseOperations} from '../store/useReleaseOperations'\nimport {useReleasePermissions} from '../store/useReleasePermissions'\nimport {getReleaseDefaults} from '../util/util'\n\ninterface Props {\n onCreateRelease: () => void\n}\n\nexport const CreateReleaseMenuItem: ComponentType<Props> = ({onCreateRelease}) => {\n const {t} = useTranslation()\n const {createRelease} = useReleaseOperations()\n const {checkWithPermissionGuard} = useReleasePermissions()\n const createReleaseMetadata = useCreateReleaseMetadata()\n\n const hasCreatePermission = useObservable(\n useMemo(\n () =>\n from(checkWithPermissionGuard(createRelease, createReleaseMetadata(getReleaseDefaults()))),\n [checkWithPermissionGuard, createRelease, createReleaseMetadata],\n ),\n )\n\n const activeReleases = useActiveReleases()\n const activeReleaseCount = activeReleases.data.length\n\n const {releases} = useWorkspace()\n const workspaceReleaseLimit = releases?.limit ?? Infinity\n const isWorkspaceReleaseLimitReached = activeReleaseCount >= workspaceReleaseLimit\n\n const menuItemProps: Pick<ComponentProps<typeof MenuItem>, 'icon' | 'onClick' | 'text'> & {\n 'data-testid': string\n } = {\n 'icon': AddIcon,\n 'onClick': onCreateRelease,\n 'data-testid': 'create-new-release-button',\n 'text': t('release.action.create-new'),\n }\n\n if (isWorkspaceReleaseLimitReached) {\n return (\n <MenuItem\n {...menuItemProps}\n text={t('release.action.create-new')}\n tooltipProps={{\n content: t('release.action.new-release.limit-reached', {\n count: workspaceReleaseLimit,\n }),\n }}\n disabled\n />\n )\n }\n\n if (!hasCreatePermission) {\n return (\n <MenuItem\n {...menuItemProps}\n tooltipProps={{\n content: t('release.action.permission.error'),\n }}\n disabled\n />\n )\n }\n\n return <MenuItem {...menuItemProps} />\n}\n","import {type ReleaseDocument} from '@sanity/client'\nimport {useCallback} from 'react'\n\nimport {useTimeZone} from '../../hooks/useTimeZone'\nimport {CONTENT_RELEASES_TIME_ZONE_SCOPE} from '../../studio/constants'\nimport {formatRelativeLocalePublishDate} from '../util/util'\n\n/**\n * Returns a function that formats a release's publish date in the studio's\n * selected content-releases timezone (e.g. \"today at 10:20 AM\"). The returned\n * function is safe to call inside conditional JSX.\n *\n * @internal\n */\nexport function useFormatRelativeLocalePublishDate(): (release: ReleaseDocument) => string {\n const {timeZone} = useTimeZone(CONTENT_RELEASES_TIME_ZONE_SCOPE)\n return useCallback(\n (release: ReleaseDocument) => formatRelativeLocalePublishDate(release, timeZone.name),\n [timeZone.name],\n )\n}\n","import {useMemo} from 'react'\nimport {useObservable} from 'react-rx'\n\nimport {useClient} from '../../hooks/useClient'\nimport {useWorkspace} from '../../studio/workspace'\nimport {useProjectStore} from '../datastores'\nimport {useResourceCache} from '../ResourceCacheProvider'\nimport {\n type AgentBundlesState,\n type AgentBundlesStore,\n createAgentBundlesStore,\n INITIAL_STATE,\n} from './createAgentBundlesStore'\n\nconst CLIENT_OPTIONS = {apiVersion: 'v2025-02-19'} as const\n\n/**\n * Retrieve the shared agent bundles store, instantiating it if necessary.\n *\n * @internal\n */\nexport function useAgentBundlesStore(): AgentBundlesStore {\n const resourceCache = useResourceCache()\n const workspace = useWorkspace()\n const client = useClient(CLIENT_OPTIONS)\n const projectStore = useProjectStore()\n\n return useMemo(() => {\n const agentBundlesStore =\n resourceCache.get<ReturnType<typeof createAgentBundlesStore>>({\n namespace: 'AgentBundlesStore',\n dependencies: [workspace],\n }) ||\n createAgentBundlesStore({\n organizationId$: projectStore.getOrganizationId(),\n client,\n })\n\n resourceCache.set({\n namespace: 'AgentBundlesStore',\n dependencies: [workspace],\n value: agentBundlesStore,\n })\n\n return agentBundlesStore\n }, [resourceCache, workspace, client, projectStore])\n}\n\n/**\n * Returns the current user's active agent bundles, streamed in real time from\n * the agent's SSE endpoint.\n *\n * The underlying SSE connection is shared across all callers within the same\n * workspace (via `useResourceCache`), so mounting this hook in multiple\n * components does not open multiple connections.\n *\n * @internal\n */\nexport function useAgentBundles(): AgentBundlesState {\n const {state$} = useAgentBundlesStore()\n return useObservable(state$, INITIAL_STATE)\n}\n","import {type HTMLProps, type ReactNode, useCallback, type RefAttributes} from 'react'\nimport {StateLink, useRouterState} from 'sanity/router'\n\n/**\n * @hidden\n * @beta */\nexport interface ToolLinkProps {\n children: ReactNode\n name: string\n}\n\n/**\n * @hidden\n * @beta */\nexport function ToolLink(\n props: ToolLinkProps &\n Omit<HTMLProps<HTMLAnchorElement>, 'href' | 'name'> &\n RefAttributes<HTMLAnchorElement>,\n) {\n const {ref, name, ...rest} = props\n const state = useRouterState(\n useCallback(\n () => ({\n tool: name,\n // make sure to clear tool state when navigating to another tool\n [name]: undefined,\n }),\n [name],\n ),\n )\n\n return <StateLink state={state} {...rest} ref={ref} />\n}\n","import {css} from 'styled-components'\n\n/**\n * A CSS helper that extends the clickable area of a component by adding a pseudo-element.\n * This creates a larger hit area for better usability without affecting the visual size.\n */\nexport const oversizedButtonStyle = css`\n position: relative;\n cursor: default;\n &::before {\n content: '';\n position: absolute;\n display: block;\n inset: -4px;\n border-radius: 9999px;\n }\n`\n","// oxlint-disable-next-line no-restricted-imports -- Bundle Button requires more fine-grained styling than studio button\nimport {Button} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {useObservable} from 'react-rx'\nimport {useRouterState} from 'sanity/router'\nimport {styled} from 'styled-components'\n\nimport {Tooltip} from '../../ui-components/tooltip/Tooltip'\nimport {useTranslation} from '../i18n/hooks/useTranslation'\nimport {ReleaseAvatarIcon} from '../releases/components/ReleaseAvatar'\nimport {useReleasesStore} from '../releases/store/useReleasesStore'\nimport {SCHEDULES_TOOL_NAME} from '../schedules/plugin'\nimport {ToolLink} from '../studio/components/navbar/tools/ToolLink'\nimport {oversizedButtonStyle} from './styles'\nimport {usePerspective} from './usePerspective'\n\nconst Dot = styled.div({\n width: 4,\n height: 4,\n borderRadius: 3,\n boxShadow: '0 0 0 1px var(--card-bg-color)',\n})\n\nconst OversizedButton = styled(ToolLink)`\n ${oversizedButtonStyle}\n`\n\n/**\n * represents the calendar icon for the releases tool.\n * It will be hidden if users have turned off releases.\n */\nexport function ReleasesToolLink(): React.JSX.Element {\n const {t} = useTranslation()\n const {errorCount$} = useReleasesStore()\n const errorCount = useObservable(errorCount$)\n const hasError = errorCount !== 0\n const {selectedPerspective} = usePerspective()\n const activeToolName = useRouterState(\n useCallback(\n (routerState) => (typeof routerState.tool === 'string' ? routerState.tool : undefined),\n [],\n ),\n )\n\n return (\n <Tooltip content={t('release.navbar.tooltip')}>\n <Button\n as={OversizedButton}\n name={SCHEDULES_TOOL_NAME}\n data-as=\"a\"\n icon={<ReleaseAvatarIcon release={selectedPerspective} />}\n mode=\"bleed\"\n padding={2}\n radius=\"full\"\n data-testid=\"releases-tool-link\"\n selected={activeToolName === SCHEDULES_TOOL_NAME}\n >\n {hasError && (\n <Dot\n data-ui=\"error-status-icon\"\n style={{\n backgroundColor: `var(--card-badge-critical-dot-color)`,\n }}\n />\n )}\n </Button>\n </Tooltip>\n )\n}\n","import {motion} from 'motion/react'\nimport {type ReactNode, useCallback, useLayoutEffect, useRef, useState} from 'react'\n\n/**\n * Animates width changes when label text changes, e.g. when switching perspectives or variants.\n *\n * @internal\n */\nexport function AnimatedTextWidth({children, text}: {children: ReactNode; text: string}) {\n const textRef = useRef<HTMLDivElement>(null)\n const [containerWidth, setContainerWidth] = useState<null | number>(null)\n const [isAnimating, setIsAnimating] = useState(false)\n\n useLayoutEffect(() => {\n if (!textRef.current) return\n const newWidth = textRef.current.offsetWidth\n setContainerWidth(newWidth)\n }, [text])\n\n const onAnimationStart = useCallback(() => {\n setIsAnimating(true)\n }, [])\n const onAnimationComplete = useCallback(() => {\n setIsAnimating(false)\n }, [])\n\n return (\n <motion.div\n style={{\n display: 'inline-block',\n width: containerWidth === null ? 'auto' : containerWidth,\n overflow: isAnimating ? 'hidden' : 'visible',\n }}\n animate={{width: containerWidth || 'auto'}}\n transition={{type: 'spring', bounce: 0, duration: 0.3}}\n onAnimationStart={onAnimationStart}\n onAnimationComplete={onAnimationComplete}\n >\n <div\n ref={textRef}\n style={{\n display: 'inline-block',\n whiteSpace: 'nowrap',\n verticalAlign: 'middle',\n }}\n >\n {children}\n </div>\n </motion.div>\n )\n}\n","import {type ReleaseDocument} from '@sanity/client'\n// oxlint-disable-next-line no-restricted-imports -- Bundle Button requires more fine-grained styling than studio button\nimport {Box, Button, Text} from '@sanity/ui'\nimport {useMemo, type RefAttributes} from 'react'\nimport {IntentLink} from 'sanity/router'\nimport {styled} from 'styled-components'\n\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {ReleaseTitle} from '../../releases/components/ReleaseTitle'\nimport {RELEASES_INTENT} from '../../releases/plugin'\nimport {isReleaseDocument} from '../../releases/store/types'\nimport {getReleaseIdFromReleaseDocumentId} from '../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {isDraftPerspective, isPublishedPerspective} from '../../releases/util/util'\nimport {isAgentBundleName} from '../../store/agent/createAgentBundlesStore'\nimport {useAgentBundles} from '../../store/agent/useAgentBundles'\nimport {oversizedButtonStyle} from '../styles'\nimport {type TargetPerspective} from '../types'\nimport {AnimatedTextWidth} from './AnimatedTextWidth'\n\nconst OversizedButton = styled(IntentLink)`\n ${oversizedButtonStyle}\n`\n\nconst ReleasesLink = ({selectedPerspective}: {selectedPerspective: ReleaseDocument}) => {\n const {t} = useTranslation()\n\n const ReleasesIntentLink = useMemo(\n () =>\n function ReleasesIntentLink({\n ref,\n children,\n ...intentProps\n }: React.ComponentPropsWithoutRef<'a'> & RefAttributes<HTMLAnchorElement>) {\n return (\n <OversizedButton\n {...intentProps}\n ref={ref}\n intent={RELEASES_INTENT}\n params={{id: getReleaseIdFromReleaseDocumentId(selectedPerspective._id)}}\n >\n {children}\n </OversizedButton>\n )\n },\n [selectedPerspective],\n )\n\n return (\n <ReleaseTitle\n title={selectedPerspective.metadata?.title}\n fallback={t('release.placeholder-untitled-release')}\n >\n {({displayTitle}) => (\n <Button\n as={ReleasesIntentLink}\n data-as=\"a\"\n rel=\"noopener noreferrer\"\n mode=\"bleed\"\n padding={2}\n radius=\"full\"\n style={{maxWidth: '180px'}}\n text={displayTitle}\n />\n )}\n </ReleaseTitle>\n )\n}\n\nexport function CurrentGlobalPerspectiveLabel({\n selectedPerspective,\n}: {\n selectedPerspective: TargetPerspective\n}): React.JSX.Element | null {\n const {t} = useTranslation()\n const {bundles} = useAgentBundles()\n\n return (\n <AnimatedTextWidth\n text={isReleaseDocument(selectedPerspective) ? selectedPerspective._id : selectedPerspective}\n >\n {isPublishedPerspective(selectedPerspective) || isDraftPerspective(selectedPerspective) ? (\n <Box padding={2} style={{userSelect: 'none', overflow: 'hidden'}}>\n <Text size={1} textOverflow=\"ellipsis\" weight=\"medium\">\n {isPublishedPerspective(selectedPerspective)\n ? t('release.chip.published')\n : t('release.chip.global.drafts')}\n </Text>\n </Box>\n ) : isReleaseDocument(selectedPerspective) ? (\n <ReleasesLink selectedPerspective={selectedPerspective} />\n ) : (\n <Box padding={2} style={{userSelect: 'none', overflow: 'hidden'}}>\n <Text size={1} textOverflow=\"ellipsis\" weight=\"medium\">\n {isAgentBundleName(selectedPerspective)\n ? t(\n bundles.some((b) => b.id === selectedPerspective)\n ? 'version.agent-bundle.proposed-changes'\n : 'version.agent-bundle.agent-changes',\n )\n : selectedPerspective}\n </Text>\n </Box>\n )}\n </AnimatedTextWidth>\n )\n}\n","import {SparkleIcon} from '@sanity/icons/Sparkle'\n// oxlint-disable-next-line no-restricted-imports -- MenuItem with custom children not supported by ui-components\nimport {Box, Flex, MenuItem, Stack, Text} from '@sanity/ui'\nimport {type CSSProperties, memo, useCallback} from 'react'\n\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {type AgentBundle} from '../../store/agent/createAgentBundlesStore'\nimport {usePerspective} from '../usePerspective'\nimport {useSetPerspective} from '../useSetPerspective'\n\nconst iconStyle: CSSProperties & {'--card-icon-color': string} = {\n '--card-icon-color': 'var(--card-badge-suggest-icon-color)',\n}\n\n/**\n * Renders a menu item for an active agent bundle in the global perspective\n * picker. Visually matches `GlobalPerspectiveMenuItem` so it blends into the\n * existing release list.\n *\n * @internal\n */\nexport const AgentBundleMenuItem = memo(function AgentBundleMenuItem({\n bundle,\n}: {\n bundle: AgentBundle\n}) {\n const {t} = useTranslation()\n const setPerspective = useSetPerspective()\n const {selectedPerspectiveName} = usePerspective()\n\n const active = selectedPerspectiveName === bundle.id\n const label = t('version.agent-bundle.proposed-changes')\n\n const handleClick = useCallback(() => setPerspective(bundle.id), [bundle.id, setPerspective])\n\n return (\n <MenuItem onClick={handleClick} padding={1} pressed={active} selected={active}>\n <Flex align=\"flex-start\" gap={1}>\n <Box flex=\"none\" paddingX={3} paddingY={2}>\n <Text size={1} style={iconStyle}>\n <SparkleIcon />\n </Text>\n </Box>\n <Stack\n flex={1}\n paddingY={2}\n paddingRight={2}\n gap={2}\n style={{maxWidth: '200px', minWidth: 0}}\n >\n <Flex gap={3} align=\"center\" style={{minWidth: 0}}>\n <Text size={1} weight=\"medium\" style={{minWidth: 0}}>\n {label}\n </Text>\n </Flex>\n </Stack>\n </Flex>\n </MenuItem>\n )\n})\n","import {useCallback, useMemo} from 'react'\nimport {useRouter} from 'sanity/router'\n\nimport {usePerspective} from './usePerspective'\n\nexport interface ExcludedPerspectiveValue {\n /* The excluded perspectives */\n excludedPerspectives: string[]\n /* Add/remove excluded perspectives */\n toggleExcludedPerspective: (perspectiveId: string) => void\n /* Check if a perspective is excluded */\n isPerspectiveExcluded: (perspectiveId: string) => boolean\n}\n\n/**\n * Gets the excluded perspectives.\n \n * @internal\n */\nexport function useExcludedPerspective(): ExcludedPerspectiveValue {\n const {navigate} = useRouter()\n const {excludedPerspectives} = usePerspective()\n\n const toggleExcludedPerspective = useCallback(\n (excluded: string) => {\n const existingPerspectives = excludedPerspectives || []\n\n const nextExcludedPerspectives = existingPerspectives.includes(excluded)\n ? existingPerspectives.filter((id) => id !== excluded)\n : [...existingPerspectives, excluded]\n\n navigate({stickyParams: {excludedPerspectives: nextExcludedPerspectives.toString()}})\n },\n [excludedPerspectives, navigate],\n )\n\n const isPerspectiveExcluded = useCallback(\n (perspectiveId: string) => Boolean(excludedPerspectives?.includes(perspectiveId)),\n [excludedPerspectives],\n )\n\n return useMemo(\n () => ({excludedPerspectives, toggleExcludedPerspective, isPerspectiveExcluded}),\n [excludedPerspectives, toggleExcludedPerspective, isPerspectiveExcluded],\n )\n}\n","import {Box} from '@sanity/ui'\nimport {css, styled} from 'styled-components'\n\nconst INDICATOR_LEFT_OFFSET = 20\nconst INDICATOR_WIDTH = 1\nconst INDICATOR_COLOR_VAR_NAME = '--card-border-color'\nconst INDICATOR_BOTTOM_OFFSET = 4\n\nexport const GlobalPerspectiveMenuItemIndicator = styled.div<{\n $inRange: boolean\n $last: boolean\n $first: boolean\n $isDefaultPerspective: boolean\n}>(\n ({$inRange, $last, $first, $isDefaultPerspective}) => css`\n position: relative;\n\n --indicator-left: ${INDICATOR_LEFT_OFFSET}px;\n --indicator-width: ${INDICATOR_WIDTH}px;\n --indicator-color: var(${INDICATOR_COLOR_VAR_NAME});\n --indicator-bottom: ${INDICATOR_BOTTOM_OFFSET}px;\n\n --indicator-in-range-height: 16.5px;\n\n ${\n $inRange &&\n !$last &&\n css`\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: var(--indicator-left);\n bottom: -var(--indicator-bottom);\n width: var(--indicator-width);\n height: ${\n $isDefaultPerspective\n ? 'calc(var(--indicator-bottom) + 12px)'\n : 'var(--indicator-bottom)'\n };\n background-color: var(--card-border-color);\n }\n `\n }\n\n ${\n $inRange &&\n css`\n > [data-ui='MenuItem'] {\n position: relative;\n\n &:before,\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: var(--indicator-left);\n width: var(--indicator-width);\n background-color: var(--card-border-color);\n }\n\n &:before {\n top: 0;\n height: var(--indicator-in-range-height);\n }\n\n &:after {\n top: var(--indicator-in-range-height);\n bottom: 0;\n }\n }\n `\n }\n\n ${\n $first &&\n css`\n > [data-ui='MenuItem']:after {\n margin-top: -3px;\n border-top-left-radius: ${INDICATOR_WIDTH}px;\n border-top-right-radius: ${INDICATOR_WIDTH}px;\n }\n > [data-ui='MenuItem']:before {\n display: none;\n }\n `\n }\n\n ${\n $last &&\n css`\n > [data-ui='MenuItem']:before {\n // dot diameter (5px) - 1.6px stroke divided by 2\n padding-bottom: 1.7px;\n border-bottom-left-radius: ${INDICATOR_WIDTH}px;\n border-bottom-right-radius: ${INDICATOR_WIDTH}px;\n }\n > [data-ui='MenuItem']:after {\n display: none;\n }\n `\n }\n `,\n)\n\nexport const GlobalPerspectiveMenuLabelIndicator = styled(Box)<{$withinRange: boolean}>(\n ({$withinRange}) => css`\n position: relative;\n // 4px padding + 33px release indicator width + 4px gap\n padding-left: 41px;\n\n ${\n $withinRange &&\n css`\n &:before {\n content: '';\n display: block;\n position: absolute;\n left: ${INDICATOR_LEFT_OFFSET}px;\n top: -8px;\n bottom: -${INDICATOR_BOTTOM_OFFSET}px;\n width: ${INDICATOR_WIDTH}px;\n background-color: var(${INDICATOR_COLOR_VAR_NAME});\n }\n `\n }\n `,\n)\n","import {type ReleaseDocument} from '@sanity/client'\nimport {ErrorOutlineIcon} from '@sanity/icons/ErrorOutline'\nimport {EyeClosedIcon} from '@sanity/icons/EyeClosed'\nimport {EyeOpenIcon} from '@sanity/icons/EyeOpen'\nimport {LockIcon} from '@sanity/icons/Lock'\n// oxlint-disable-next-line no-restricted-imports -- custom use for MenuItem & Button not supported by ui-components\nimport {Box, Button, Flex, MenuItem, Stack, Text} from '@sanity/ui'\nimport {type MouseEvent, useCallback, useMemo, type RefAttributes} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {ToneIcon} from '../../../ui-components/toneIcon/ToneIcon'\nimport {Tooltip} from '../../../ui-components/tooltip/Tooltip'\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {useExcludedPerspective} from '../../perspective/useExcludedPerspective'\nimport {usePerspective} from '../../perspective/usePerspective'\nimport {useSetPerspective} from '../../perspective/useSetPerspective'\nimport {ReleaseAvatarIcon} from '../../releases/components/ReleaseAvatar'\nimport {ReleaseTitle} from '../../releases/components/ReleaseTitle'\nimport {useFormatRelativeLocalePublishDate} from '../../releases/hooks/useFormatRelativeLocalePublishDate'\nimport {isReleaseDocument} from '../../releases/store/types'\nimport {LATEST, PUBLISHED} from '../../releases/util/const'\nimport {getReleaseIdFromReleaseDocumentId} from '../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {isDraftPerspective, isReleaseScheduledOrScheduling} from '../../releases/util/util'\nimport {useWorkspace} from '../../studio/workspace'\nimport {type ReleasesNavMenuItemPropsGetter} from '../types'\nimport {GlobalPerspectiveMenuItemIndicator} from './PerspectiveLayerIndicator'\n\nexport interface LayerRange {\n lastIndex: number\n offsets: {\n asap: number\n scheduled: number\n undecided: number\n }\n}\n\nconst ToggleLayerButton = styled(Button)<{$visible: boolean}>(\n ({$visible}) => css`\n --card-fg-color: inherit;\n --card-icon-color: inherit;\n\n background-color: inherit;\n opacity: ${$visible ? 0 : 1};\n\n @media (hover: hover) {\n &:not([data-disabled='true']):hover {\n --card-fg-color: inherit;\n --card-icon-color: inherit;\n }\n }\n\n [data-ui='MenuItem']:hover & {\n opacity: 1;\n }\n `,\n)\n\ntype rangePosition = 'first' | 'within' | 'last' | undefined\nconst IconWrapperBox = styled(Box)<{$isExcluded: boolean}>(\n ({$isExcluded}) => css`\n position: relative;\n z-index: 1;\n border-radius: 50%;\n /* background-color: var(--card-background-color); */\n opacity: ${$isExcluded ? 0 : 1};\n // The icon needs a white background to visually sit on top of the line indicator\n & svg {\n background-color: var(--card-bg-color);\n }\n `,\n)\n\nexport function getRangePosition(range: LayerRange, index: number): rangePosition {\n const {lastIndex} = range\n\n if (lastIndex === 0) return undefined\n if (index === 0) return 'first'\n if (index === lastIndex) return 'last'\n if (index > 0 && index < lastIndex) return 'within'\n\n return undefined\n}\n\nexport function GlobalPerspectiveMenuItem(\n props: {\n release: ReleaseDocument | 'published' | typeof LATEST\n rangePosition: rangePosition\n menuItemProps?: ReleasesNavMenuItemPropsGetter\n } & RefAttributes<HTMLDivElement>,\n) {\n const {ref, release, rangePosition} = props\n\n const {\n document: {\n drafts: {enabled: isDraftModelEnabled},\n },\n } = useWorkspace()\n\n const defaultPerspective = isDraftModelEnabled ? LATEST : PUBLISHED\n const {selectedPerspective, selectedPerspectiveName} = usePerspective()\n const setPerspective = useSetPerspective()\n const {toggleExcludedPerspective, isPerspectiveExcluded} = useExcludedPerspective()\n const formatPublishDate = useFormatRelativeLocalePublishDate()\n const releaseId = isReleaseDocument(release)\n ? getReleaseIdFromReleaseDocumentId(release._id)\n : release\n\n const isDefaultPerspective = release === defaultPerspective\n\n const active = selectedPerspectiveName\n ? releaseId === selectedPerspectiveName\n : isDefaultPerspective\n\n const isReleasePerspectiveExcluded = isPerspectiveExcluded(releaseId)\n\n const {t} = useTranslation()\n\n const handleToggleReleaseVisibility = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n event.stopPropagation()\n toggleExcludedPerspective(releaseId)\n },\n [toggleExcludedPerspective, releaseId],\n )\n\n const handleOnReleaseClick = useCallback(\n () => setPerspective(releaseId),\n [releaseId, setPerspective],\n )\n\n const canReleaseBeExcluded = useMemo(() => {\n if (release === 'published') return false\n if (isDraftPerspective(release)) return isReleaseDocument(selectedPerspective)\n if (isReleaseScheduledOrScheduling(release)) return false\n return rangePosition && ['first', 'within'].includes(rangePosition)\n }, [rangePosition, release, selectedPerspective])\n\n return (\n <GlobalPerspectiveMenuItemIndicator\n $isDefaultPerspective={isDefaultPerspective}\n $first={rangePosition === 'first'}\n $last={rangePosition === 'last'}\n $inRange={Boolean(rangePosition)}\n ref={ref}\n >\n <MenuItem\n onClick={handleOnReleaseClick}\n padding={1}\n pressed={active}\n selected={active}\n data-testid={`release-${releaseId}`}\n {...props.menuItemProps?.({perspective: release})}\n >\n <Flex align=\"flex-start\" gap={1}>\n <IconWrapperBox\n $isExcluded={isReleasePerspectiveExcluded}\n flex=\"none\"\n data-testid=\"release-indicator-icon\"\n paddingX={3}\n paddingY={2}\n >\n <Text size={1}>\n <ReleaseAvatarIcon release={release} />\n </Text>\n </IconWrapperBox>\n <Stack\n flex={1}\n paddingY={2}\n paddingRight={2}\n gap={2}\n style={{\n opacity: isReleasePerspectiveExcluded ? 0.5 : undefined,\n maxWidth: '200px',\n minWidth: 0,\n }}\n >\n <Flex gap={3} align=\"center\" style={{minWidth: 0}}>\n {isReleaseDocument(release) ? (\n <ReleaseTitle\n title={release.metadata.title}\n fallback={t('release.placeholder-untitled-release')}\n textProps={{size: 1, weight: 'medium', style: {minWidth: 0}}}\n />\n ) : (\n <Text size={1} weight=\"medium\" style={{minWidth: 0}}>\n {isDraftPerspective(release)\n ? t('release.navbar.drafts')\n : t('release.navbar.published')}\n </Text>\n )}\n {isReleaseDocument(release) &&\n typeof release.error !== 'undefined' &&\n release.state === 'active' && (\n <Text size={1} data-testid=\"release-error-icon\">\n <ToneIcon icon={ErrorOutlineIcon} tone=\"critical\" />\n </Text>\n )}\n </Flex>\n {isReleaseDocument(release) &&\n release.metadata.releaseType === 'scheduled' &&\n (release.publishAt || release.metadata.intendedPublishAt) && (\n <Text muted size={1}>\n {formatPublishDate(release)}\n </Text>\n )}\n </Stack>\n <Box flex=\"none\">\n {canReleaseBeExcluded && (\n <Tooltip portal content={t('release.layer.hide')} placement=\"bottom\">\n <ToggleLayerButton\n $visible={!isReleasePerspectiveExcluded}\n forwardedAs=\"div\"\n icon={isReleasePerspectiveExcluded ? EyeClosedIcon : EyeOpenIcon}\n mode=\"bleed\"\n onClick={handleToggleReleaseVisibility}\n padding={2}\n data-testid=\"release-toggle-visibility\"\n />\n </Tooltip>\n )}\n {isReleaseDocument(release) && isReleaseScheduledOrScheduling(release) && (\n <Box padding={2}>\n <Text size={1} data-testid=\"release-lock-icon\">\n <LockIcon />\n </Text>\n </Box>\n )}\n </Box>\n </Flex>\n </MenuItem>\n </GlobalPerspectiveMenuItemIndicator>\n )\n}\n","import {type ReleaseDocument, type ReleaseType} from '@sanity/client'\nimport {Card, Flex, Label, Stack} from '@sanity/ui'\nimport {useCallback} from 'react'\n\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {usePerspective} from '../../perspective/usePerspective'\nimport {getReleaseIdFromReleaseDocumentId} from '../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {type ReleaseId, type ReleasesNavMenuItemPropsGetter} from '../types'\nimport {\n getRangePosition,\n GlobalPerspectiveMenuItem,\n type LayerRange,\n} from './GlobalPerspectiveMenuItem'\nimport {GlobalPerspectiveMenuLabelIndicator} from './PerspectiveLayerIndicator'\nimport {type ScrollElement} from './useScrollIndicatorVisibility'\n\nconst RELEASE_TYPE_LABELS: Record<ReleaseType, string> = {\n asap: 'release.type.asap',\n scheduled: 'release.type.scheduled',\n undecided: 'release.type.undecided',\n}\n\nexport function ReleaseTypeMenuSection({\n releaseType,\n releases,\n range,\n currentGlobalBundleMenuItemRef,\n menuItemProps,\n}: {\n releaseType: ReleaseType\n releases: ReleaseDocument[]\n range: LayerRange\n currentGlobalBundleMenuItemRef: React.RefObject<ScrollElement>\n menuItemProps?: ReleasesNavMenuItemPropsGetter\n}): React.JSX.Element | null {\n const {t} = useTranslation()\n const {selectedReleaseId} = usePerspective()\n\n const getMenuItemRef = useCallback(\n (releaseId: ReleaseId) =>\n selectedReleaseId === releaseId\n ? (currentGlobalBundleMenuItemRef as React.RefObject<HTMLDivElement>)\n : undefined,\n [currentGlobalBundleMenuItemRef, selectedReleaseId],\n )\n\n if (releases.length === 0) return null\n\n const {lastIndex, offsets} = range\n const releaseTypeOffset = offsets[releaseType]\n\n return (\n <Card padding={1} borderBottom>\n <Stack gap={1}>\n <GlobalPerspectiveMenuLabelIndicator\n $withinRange={releaseTypeOffset > 0 && lastIndex >= releaseTypeOffset}\n paddingLeft={2}\n paddingTop={3}\n paddingBottom={1}\n >\n <Label muted style={{textTransform: 'uppercase'}} size={1}>\n {t(RELEASE_TYPE_LABELS[releaseType])}\n </Label>\n </GlobalPerspectiveMenuLabelIndicator>\n <Flex direction=\"column\" gap={1}>\n {releases.map((release, index) => (\n <GlobalPerspectiveMenuItem\n key={release._id}\n release={release}\n ref={getMenuItemRef(getReleaseIdFromReleaseDocumentId(release._id))}\n rangePosition={getRangePosition(range, releaseTypeOffset + index)}\n menuItemProps={menuItemProps}\n />\n ))}\n </Flex>\n </Stack>\n </Card>\n )\n}\n","import {CalendarIcon} from '@sanity/icons/Calendar'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {type ComponentType, useCallback} from 'react'\nimport {useIntentLink} from 'sanity/router'\n\nimport {MenuItem} from '../../../ui-components/menuItem/MenuItem'\nimport {FEATURES, useFeatureEnabled} from '../../hooks/useFeatureEnabled'\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {NavigatedToScheduledDrafts} from '../../releases/__telemetry__/navigation.telemetry'\nimport {useScheduledDraftsEnabled} from '../../singleDocRelease/hooks/useScheduledDraftsEnabled'\nimport {RELEASES_SCHEDULED_DRAFTS_INTENT} from '../../singleDocRelease/plugin'\nimport {useWorkspace} from '../../studio/workspace'\n\nexport const ScheduledDraftsMenuItem: ComponentType = () => {\n const {t} = useTranslation()\n const telemetry = useTelemetry()\n const isScheduledDraftsEnabled = useScheduledDraftsEnabled()\n const {enabled: isSingleDocReleaseEnabled} = useFeatureEnabled(FEATURES.singleDocRelease)\n const {\n document: {\n drafts: {enabled: isDraftModelEnabled},\n },\n } = useWorkspace()\n\n const logNavigationTelemetry = useCallback(() => {\n telemetry.log(NavigatedToScheduledDrafts, {source: 'menu'})\n }, [telemetry])\n\n const {href, onClick} = useIntentLink({\n intent: RELEASES_SCHEDULED_DRAFTS_INTENT,\n params: {view: 'drafts'},\n onClick: logNavigationTelemetry,\n })\n\n if (!isScheduledDraftsEnabled || !isSingleDocReleaseEnabled || !isDraftModelEnabled) return null\n\n return (\n <MenuItem\n as=\"a\"\n href={href}\n onClick={onClick}\n icon={CalendarIcon}\n text={t('release.menu.scheduled-drafts')}\n data-testid=\"scheduled-drafts-menu-item\"\n />\n )\n}\n","import {CalendarIcon} from '@sanity/icons/Calendar'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {type ComponentType, useCallback} from 'react'\nimport {useIntentLink} from 'sanity/router'\n\nimport {MenuItem} from '../../../ui-components/menuItem/MenuItem'\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {NavigatedToReleasesOverview} from '../../releases/__telemetry__/navigation.telemetry'\nimport {RELEASES_INTENT} from '../../releases/plugin'\n\nexport const ViewContentReleasesMenuItem: ComponentType = () => {\n const {t} = useTranslation()\n const telemetry = useTelemetry()\n\n const logNavigationTelemetry = useCallback(() => {\n telemetry.log(NavigatedToReleasesOverview, {source: 'menu'})\n }, [telemetry])\n\n const {href, onClick} = useIntentLink({\n intent: RELEASES_INTENT,\n params: {source: 'menu'},\n onClick: logNavigationTelemetry,\n })\n\n return (\n <MenuItem\n as=\"a\"\n href={href}\n onClick={onClick}\n icon={CalendarIcon}\n text={t('release.menu.view-releases')}\n data-testid=\"view-content-releases-menu-item\"\n />\n )\n}\n","import {type ReleaseDocument, type ReleaseType} from '@sanity/client'\nimport {Card, Flex, Spinner, Stack} from '@sanity/ui'\nimport {type JSX, type RefObject, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {CreateReleaseMenuItem} from '../../releases/components/CreateReleaseMenuItem'\nimport {useActiveReleases} from '../../releases/store/useActiveReleases'\nimport {LATEST, PUBLISHED} from '../../releases/util/const'\nimport {getReleaseIdFromReleaseDocumentId} from '../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {useAgentBundles} from '../../store/agent/useAgentBundles'\nimport {useWorkspace} from '../../studio/workspace'\nimport {isCardinalityOneRelease} from '../../util/releaseUtils'\nimport {type ReleasesNavMenuItemPropsGetter} from '../types'\nimport {AgentBundleMenuItem} from './AgentBundleMenuItem'\nimport {\n getRangePosition,\n GlobalPerspectiveMenuItem,\n type LayerRange,\n} from './GlobalPerspectiveMenuItem'\nimport {ReleaseTypeMenuSection} from './ReleaseTypeMenuSection'\nimport {ScheduledDraftsMenuItem} from './ScheduledDraftsMenuItem'\nimport {type ScrollElement} from './useScrollIndicatorVisibility'\nimport {ViewContentReleasesMenuItem} from './ViewContentReleasesMenuItem'\n\nconst orderedReleaseTypes: ReleaseType[] = ['asap', 'scheduled', 'undecided']\n\nconst StickyCard = styled(Card)`\n position: sticky;\n z-index: 2;\n background: var(--card-bg-color);\n`\n\nconst StickyTopCard = styled(StickyCard)`\n top: 0;\n`\n\nconst StickyBottomCard = styled(StickyCard)`\n bottom: 0;\n`\n\nexport function ReleasesList({\n areReleasesEnabled,\n setScrollContainer,\n isRangeVisible,\n selectedPerspectiveName,\n handleOpenBundleDialog,\n scrollElementRef,\n menuItemProps,\n}: {\n areReleasesEnabled: boolean\n setScrollContainer: (el: HTMLElement | null) => void\n isRangeVisible: boolean\n selectedPerspectiveName: string | undefined\n handleOpenBundleDialog: () => void\n scrollElementRef: RefObject<ScrollElement>\n menuItemProps?: ReleasesNavMenuItemPropsGetter\n}): JSX.Element {\n const {loading, data: allReleases} = useActiveReleases()\n const {bundles: agentBundles} = useAgentBundles()\n\n const releases = useMemo(\n () => allReleases.filter((release) => !isCardinalityOneRelease(release)),\n [allReleases],\n )\n\n const {\n document: {\n drafts: {enabled: isDraftModelEnabled},\n },\n } = useWorkspace()\n\n const sortedReleaseTypeReleases = useMemo(\n () =>\n orderedReleaseTypes.reduce<Record<ReleaseType, ReleaseDocument[]>>(\n (ReleaseTypeReleases, releaseType) => ({\n ...ReleaseTypeReleases,\n [releaseType]: releases.filter(({metadata}) => metadata.releaseType === releaseType),\n }),\n {} as Record<ReleaseType, ReleaseDocument[]>,\n ),\n [releases],\n )\n\n const range: LayerRange = useMemo(() => {\n const isDraftsPerspective = typeof selectedPerspectiveName === 'undefined'\n let lastIndex = isDraftsPerspective ? 1 : 0\n\n const systemStack = [PUBLISHED, isDraftModelEnabled ? LATEST : []].flat()\n const {asap, scheduled} = sortedReleaseTypeReleases\n\n const offsets = {\n asap: systemStack.length,\n scheduled: systemStack.length + asap.length,\n undecided: systemStack.length + asap.length + scheduled.length,\n }\n\n const adjustIndexForReleaseType = (type: ReleaseType) => {\n const groupSubsetReleases = sortedReleaseTypeReleases[type]\n const offset = offsets[type]\n\n groupSubsetReleases.forEach((release, groupReleaseIndex) => {\n const index = offset + groupReleaseIndex\n\n if (selectedPerspectiveName === getReleaseIdFromReleaseDocumentId(release._id)) {\n lastIndex = index\n }\n })\n }\n\n orderedReleaseTypes.forEach(adjustIndexForReleaseType)\n\n return {\n lastIndex,\n offsets,\n }\n }, [isDraftModelEnabled, selectedPerspectiveName, sortedReleaseTypeReleases])\n\n if (loading) {\n return (\n <Flex padding={4} justify=\"center\" data-testid=\"spinner\">\n <Spinner muted />\n </Flex>\n )\n }\n\n return (\n <Card radius={3}>\n <StickyTopCard borderBottom padding={1}>\n <Stack gap={1}>\n <GlobalPerspectiveMenuItem\n rangePosition={isRangeVisible ? getRangePosition(range, 0) : undefined}\n release={'published'}\n menuItemProps={menuItemProps}\n />\n {isDraftModelEnabled && (\n <GlobalPerspectiveMenuItem\n rangePosition={isRangeVisible ? getRangePosition(range, 1) : undefined}\n release={LATEST}\n menuItemProps={menuItemProps}\n />\n )}\n </Stack>\n </StickyTopCard>\n {agentBundles[0] && (\n <Card borderBottom padding={1}>\n <Stack gap={1}>\n <AgentBundleMenuItem bundle={agentBundles[0]} />\n </Stack>\n </Card>\n )}\n {areReleasesEnabled && (\n <Stack ref={setScrollContainer} data-ui=\"scroll-wrapper\">\n {orderedReleaseTypes.map((releaseType) => (\n <ReleaseTypeMenuSection\n key={releaseType}\n releaseType={releaseType}\n releases={sortedReleaseTypeReleases[releaseType]}\n range={range}\n currentGlobalBundleMenuItemRef={scrollElementRef}\n menuItemProps={menuItemProps}\n />\n ))}\n </Stack>\n )}\n <StickyBottomCard borderTop paddingY={1} paddingX={2}>\n <Stack gap={1}>\n <ScheduledDraftsMenuItem />\n {areReleasesEnabled && (\n <>\n <ViewContentReleasesMenuItem />\n <CreateReleaseMenuItem onCreateRelease={handleOpenBundleDialog} />\n </>\n )}\n </Stack>\n </StickyBottomCard>\n </Card>\n )\n}\n","import {useCallback, useEffect, useMemo, useRef, useState} from 'react'\n\nexport type ScrollElement = HTMLElement | null\n\nfunction findScrollableAncestor(element: HTMLElement): HTMLElement | null {\n let current: HTMLElement | null = element.parentElement\n while (current) {\n const {overflowY} = getComputedStyle(current)\n if (overflowY === 'auto' || overflowY === 'scroll') {\n return current\n }\n current = current.parentElement\n }\n return null\n}\n\nfunction isElementVisibleInContainer(container: ScrollElement, element: ScrollElement): boolean {\n if (!container || !element) return true\n\n const containerRect = container.getBoundingClientRect()\n const elementRect = element.getBoundingClientRect()\n\n // 32.5px is padding on published/draft element + padding of perspective/draft menu item\n const isVisible = elementRect.top >= containerRect.top + 32.5 * 2\n\n return isVisible\n}\n\nexport const useScrollIndicatorVisibility = () => {\n const scrollElementRef = useRef<ScrollElement>(null)\n const scrollAncestorRef = useRef<HTMLElement | null>(null)\n\n const [isRangeVisible, setIsRangeVisible] = useState(true)\n\n const handleScroll = useCallback(\n () =>\n setIsRangeVisible(\n isElementVisibleInContainer(scrollAncestorRef.current, scrollElementRef.current),\n ),\n [],\n )\n\n const setScrollContainer = useCallback(\n (container: HTMLElement | null) => {\n const previousAncestor = scrollAncestorRef.current\n if (previousAncestor) {\n previousAncestor.removeEventListener('scroll', handleScroll)\n scrollAncestorRef.current = null\n }\n\n if (container) {\n const scrollableAncestor = findScrollableAncestor(container)\n scrollAncestorRef.current = scrollableAncestor\n\n if (scrollableAncestor) {\n scrollableAncestor.addEventListener('scroll', handleScroll, {passive: true})\n }\n }\n },\n [handleScroll],\n )\n\n useEffect(() => {\n return () => {\n const ancestor = scrollAncestorRef.current\n if (ancestor) {\n ancestor.removeEventListener('scroll', handleScroll)\n }\n }\n }, [handleScroll])\n\n const resetRangeVisibility = useCallback(() => setIsRangeVisible(true), [])\n\n return useMemo(\n () => ({\n resetRangeVisibility,\n isRangeVisible,\n setScrollContainer,\n scrollElementRef,\n }),\n [isRangeVisible, resetRangeVisibility, setScrollContainer],\n )\n}\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\n// oxlint-disable-next-line no-restricted-imports -- Button requires props, only supported by @sanity/ui\nimport {Button, Menu} from '@sanity/ui'\nimport {useCallback, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {MenuButton} from '../../../ui-components/menuButton/MenuButton'\nimport {CreateReleaseDialog} from '../../releases/components/dialog/CreateReleaseDialog'\nimport {useReleasesUpsell} from '../../releases/contexts/upsell/useReleasesUpsell'\nimport {oversizedButtonStyle} from '../styles'\nimport {type ReleasesNavMenuItemPropsGetter} from '../types'\nimport {ReleasesList} from './ReleasesList'\nimport {useScrollIndicatorVisibility} from './useScrollIndicatorVisibility'\n\nconst StyledMenu = styled(Menu)`\n min-width: 200px;\n max-width: 320px;\n /* Remove the default menu gap*/\n > [data-ui='Stack'] {\n gap: 0;\n }\n`\nconst OversizedButton = styled(Button)`\n ${oversizedButtonStyle}\n`\n\nexport function GlobalPerspectiveMenu({\n selectedPerspectiveName,\n areReleasesEnabled = true,\n menuItemProps,\n}: {\n selectedPerspectiveName: string | undefined\n areReleasesEnabled: boolean\n menuItemProps?: ReleasesNavMenuItemPropsGetter\n}): React.JSX.Element {\n const [createBundleDialogOpen, setCreateBundleDialogOpen] = useState(false)\n const {handleOpenDialog: handleOpenReleasesUpsellDialog, mode: releasesUpsellMode} =\n useReleasesUpsell()\n const styledMenuRef = useRef<HTMLDivElement>(null)\n\n const {isRangeVisible, resetRangeVisibility, setScrollContainer, scrollElementRef} =\n useScrollIndicatorVisibility()\n const handleOpenBundleDialog = useCallback(() => {\n if (releasesUpsellMode === 'upsell') {\n handleOpenReleasesUpsellDialog()\n return\n }\n setCreateBundleDialogOpen(true)\n }, [releasesUpsellMode, handleOpenReleasesUpsellDialog])\n\n const handleClose = useCallback(() => {\n setCreateBundleDialogOpen(false)\n }, [])\n\n return (\n <>\n <MenuButton\n button={\n <OversizedButton\n data-testid=\"global-perspective-menu-button\"\n iconRight={ChevronDownIcon}\n mode=\"bleed\"\n padding={2}\n radius=\"full\"\n />\n }\n id=\"releases-menu\"\n onClose={resetRangeVisibility}\n menu={\n <StyledMenu data-testid=\"release-menu\" ref={styledMenuRef} padding={0}>\n <ReleasesList\n areReleasesEnabled={areReleasesEnabled}\n setScrollContainer={setScrollContainer}\n isRangeVisible={isRangeVisible}\n scrollElementRef={scrollElementRef}\n selectedPerspectiveName={selectedPerspectiveName}\n handleOpenBundleDialog={handleOpenBundleDialog}\n menuItemProps={menuItemProps}\n />\n </StyledMenu>\n }\n popover={{\n __unstable_margins: [0, 0, 32, 0],\n constrainSize: true,\n fallbackPlacements: ['bottom-end'],\n placement: 'bottom-end',\n portal: true,\n // @ts-expect-error PopoverProps doesn't include `style`, but the Popover implementation accepts it via React.HTMLProps<HTMLDivElement>\n style: {overflow: 'hidden'} as React.CSSProperties,\n tone: 'default',\n zOffset: 3000,\n }}\n />\n {createBundleDialogOpen && (\n <CreateReleaseDialog onCancel={handleClose} onSubmit={handleClose} origin=\"structure\" />\n )}\n </>\n )\n}\n","import {Card} from '@sanity/ui'\nimport {type ComponentType} from 'react'\nimport {styled} from 'styled-components'\n\nimport {usePerspective} from '../../perspective/usePerspective'\nimport {useReleasesToolAvailable} from '../../schedules/hooks/useReleasesToolAvailable'\nimport {useWorkspace} from '../../studio/workspace'\nimport {ReleasesToolLink} from '../ReleasesToolLink'\nimport {type ReleasesNavMenuItemPropsGetter} from '../types'\nimport {CurrentGlobalPerspectiveLabel} from './currentGlobalPerspectiveLabel'\nimport {GlobalPerspectiveMenu} from './GlobalPerspectiveMenu'\n\nconst ReleasesNavContainer = styled(Card)`\n position: relative;\n display: flex;\n &:not([hidden]) {\n display: flex;\n }\n align-items: center;\n gap: 2px;\n padding: 2px;\n margin: -3px 0;\n\n /* The children in button is rendered inside a span, we need to absolutely position the dot for the error. */\n span:has(> [data-ui='error-status-icon']) {\n position: absolute;\n top: 6px;\n right: 6px;\n padding: 0;\n }\n\n a:hover,\n button:hover {\n position: relative;\n z-index: 2;\n }\n`\n\ninterface Props {\n withReleasesToolButton?: boolean\n menuItemProps?: ReleasesNavMenuItemPropsGetter\n border?: boolean\n}\n\n/**\n * @internal\n */\nexport const ReleasesNav: ComponentType<Props> = ({\n withReleasesToolButton,\n menuItemProps,\n border = true,\n}) => {\n const releasesToolAvailable = useReleasesToolAvailable()\n const isReleasesEnabled = !!useWorkspace().releases?.enabled\n const {selectedPerspective, selectedPerspectiveName} = usePerspective()\n return (\n <ReleasesNavContainer\n flex=\"none\"\n tone=\"inherit\"\n radius=\"full\"\n data-ui=\"ReleasesNav\"\n border={border}\n >\n {withReleasesToolButton && releasesToolAvailable && <ReleasesToolLink />}\n <CurrentGlobalPerspectiveLabel selectedPerspective={selectedPerspective} />\n <GlobalPerspectiveMenu\n selectedPerspectiveName={selectedPerspectiveName}\n areReleasesEnabled={releasesToolAvailable && isReleasesEnabled}\n menuItemProps={menuItemProps}\n />\n </ReleasesNavContainer>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReleasesNav-DPSjEs29.js","names":["useCallback","useRouter","SystemBundle","getVariantId","SystemVariant","ReleaseId","useGetDefaultPerspective","getPerspectiveParam","SetVariant","options","variantId","perspective","useSetVariant","$","_c","router","defaultPerspective","t0","t1","navigate","stickyParams","variant","excludedPerspectives","AddIcon","ComponentProps","ComponentType","useMemo","useObservable","from","MenuItem","useTranslation","useWorkspace","useCreateReleaseMetadata","useActiveReleases","useReleaseOperations","useReleasePermissions","getReleaseDefaults","Props","onCreateRelease","CreateReleaseMenuItem","t0","$","_c","t","createRelease","checkWithPermissionGuard","createReleaseMetadata","t1","hasCreatePermission","activeReleases","activeReleaseCount","data","length","releases","workspaceReleaseLimit","limit","Infinity","isWorkspaceReleaseLimitReached","t2","t3","menuItemProps","t4","t5","count","t6","content","t7","ReleaseDocument","useCallback","useTimeZone","CONTENT_RELEASES_TIME_ZONE_SCOPE","formatRelativeLocalePublishDate","useFormatRelativeLocalePublishDate","$","_c","timeZone","t0","name","release","useMemo","useObservable","useClient","useWorkspace","useProjectStore","useResourceCache","AgentBundlesState","AgentBundlesStore","createAgentBundlesStore","INITIAL_STATE","CLIENT_OPTIONS","apiVersion","const","useAgentBundlesStore","$","_c","resourceCache","workspace","client","projectStore","agentBundlesStore","get","namespace","dependencies","organizationId$","getOrganizationId","set","value","useAgentBundles","state$","HTMLProps","ReactNode","useCallback","RefAttributes","StateLink","useRouterState","ToolLinkProps","children","name","ToolLink","props","$","_c","ref","rest","t0","tool","undefined","state","t1","css","oversizedButtonStyle","Button","useCallback","useObservable","useRouterState","styled","Tooltip","useTranslation","ReleaseAvatarIcon","useReleasesStore","SCHEDULES_TOOL_NAME","ToolLink","oversizedButtonStyle","usePerspective","Dot","div","width","height","borderRadius","boxShadow","OversizedButton","ReleasesToolLink","$","_c","t","errorCount$","errorCount","hasError","selectedPerspective","activeToolName","_temp","t0","t1","t2","t3","backgroundColor","t4","t5","routerState","tool","undefined","motion","ReactNode","useCallback","useLayoutEffect","useRef","useState","AnimatedTextWidth","t0","$","_c","children","text","textRef","containerWidth","setContainerWidth","isAnimating","setIsAnimating","t1","Symbol","for","current","newWidth","offsetWidth","t2","t3","onAnimationStart","t4","onAnimationComplete","t5","t6","t7","display","width","overflow","t8","t9","t10","type","bounce","duration","t11","whiteSpace","verticalAlign","t12","t13","ReleaseDocument","Box","Button","Text","useMemo","RefAttributes","IntentLink","styled","useTranslation","ReleaseTitle","RELEASES_INTENT","isReleaseDocument","getReleaseIdFromReleaseDocumentId","isDraftPerspective","isPublishedPerspective","isAgentBundleName","useAgentBundles","oversizedButtonStyle","TargetPerspective","AnimatedTextWidth","OversizedButton","ReleasesLink","t0","$","_c","selectedPerspective","t","t1","_id","ReleasesIntentLink","t2","ref","children","intentProps","id","metadata","title","t3","t4","t5","displayTitle","maxWidth","CurrentGlobalPerspectiveLabel","bundles","userSelect","overflow","some","b","SparkleIcon","Box","Flex","MenuItem","Stack","Text","CSSProperties","memo","useCallback","useTranslation","AgentBundle","usePerspective","useSetPerspective","iconStyle","AgentBundleMenuItem","t0","$","_c","bundle","t","setPerspective","selectedPerspectiveName","active","id","t1","label","t2","handleClick","t3","Symbol","for","t4","maxWidth","minWidth","t5","t6","t7","t8","useCallback","useMemo","useRouter","usePerspective","ExcludedPerspectiveValue","excludedPerspectives","toggleExcludedPerspective","perspectiveId","isPerspectiveExcluded","useExcludedPerspective","$","_c","navigate","t0","excluded","existingPerspectives","nextExcludedPerspectives","includes","filter","id","stickyParams","toString","t1","Boolean","t2","Box","css","styled","INDICATOR_LEFT_OFFSET","INDICATOR_WIDTH","INDICATOR_COLOR_VAR_NAME","INDICATOR_BOTTOM_OFFSET","GlobalPerspectiveMenuItemIndicator","div","$inRange","$last","$first","$isDefaultPerspective","GlobalPerspectiveMenuLabelIndicator","$withinRange","ReleaseDocument","ErrorOutlineIcon","EyeClosedIcon","EyeOpenIcon","LockIcon","Box","Button","Flex","MenuItem","Stack","Text","MouseEvent","useCallback","useMemo","RefAttributes","css","styled","ToneIcon","Tooltip","useTranslation","useExcludedPerspective","usePerspective","useSetPerspective","ReleaseAvatarIcon","ReleaseTitle","useFormatRelativeLocalePublishDate","isReleaseDocument","LATEST","PUBLISHED","getReleaseIdFromReleaseDocumentId","isDraftPerspective","isReleaseScheduledOrScheduling","useWorkspace","ReleasesNavMenuItemPropsGetter","GlobalPerspectiveMenuItemIndicator","LayerRange","lastIndex","offsets","asap","scheduled","undecided","ToggleLayerButton","$visible","rangePosition","IconWrapperBox","$isExcluded","getRangePosition","range","index","undefined","GlobalPerspectiveMenuItem","props","$","_c","ref","release","document","t0","drafts","t1","enabled","isDraftModelEnabled","defaultPerspective","selectedPerspective","selectedPerspectiveName","setPerspective","toggleExcludedPerspective","isPerspectiveExcluded","formatPublishDate","t2","_id","releaseId","isDefaultPerspective","active","t3","isReleasePerspectiveExcluded","t","t4","event","stopPropagation","handleToggleReleaseVisibility","t5","handleOnReleaseClick","t6","bb0","t7","includes","canReleaseBeExcluded","t8","t9","Boolean","t10","t11","menuItemProps","perspective","t12","t13","t14","t15","opacity","maxWidth","minWidth","t16","Symbol","for","t17","metadata","title","size","weight","style","t18","error","state","t19","t20","releaseType","publishAt","intendedPublishAt","t21","t22","t23","t24","t25","t26","t27","ReleaseDocument","ReleaseType","Card","Flex","Label","Stack","useCallback","useTranslation","usePerspective","getReleaseIdFromReleaseDocumentId","ReleaseId","ReleasesNavMenuItemPropsGetter","getRangePosition","GlobalPerspectiveMenuItem","LayerRange","GlobalPerspectiveMenuLabelIndicator","ScrollElement","RELEASE_TYPE_LABELS","Record","asap","scheduled","undecided","ReleaseTypeMenuSection","t0","$","_c","releaseType","releases","range","currentGlobalBundleMenuItemRef","menuItemProps","t","selectedReleaseId","t1","releaseId","React","RefObject","HTMLDivElement","undefined","getMenuItemRef","length","lastIndex","offsets","releaseTypeOffset","t2","t3","Symbol","for","textTransform","t4","t5","t6","t7","t8","t9","release","index","_id","map","t10","CalendarIcon","useTelemetry","ComponentType","useCallback","useIntentLink","MenuItem","FEATURES","useFeatureEnabled","useTranslation","NavigatedToScheduledDrafts","useScheduledDraftsEnabled","RELEASES_SCHEDULED_DRAFTS_INTENT","useWorkspace","ScheduledDraftsMenuItem","$","_c","t","telemetry","isScheduledDraftsEnabled","enabled","isSingleDocReleaseEnabled","singleDocRelease","document","t0","drafts","t1","isDraftModelEnabled","t2","log","source","logNavigationTelemetry","t3","Symbol","for","view","t4","intent","params","onClick","href","t5","t6","CalendarIcon","useTelemetry","ComponentType","useCallback","useIntentLink","MenuItem","useTranslation","NavigatedToReleasesOverview","RELEASES_INTENT","ViewContentReleasesMenuItem","$","_c","t","telemetry","t0","log","source","logNavigationTelemetry","t1","Symbol","for","t2","intent","params","onClick","href","t3","t4","ReleaseDocument","ReleaseType","Card","Flex","Spinner","Stack","JSX","RefObject","useMemo","styled","CreateReleaseMenuItem","useActiveReleases","LATEST","PUBLISHED","getReleaseIdFromReleaseDocumentId","useAgentBundles","useWorkspace","isCardinalityOneRelease","ReleasesNavMenuItemPropsGetter","AgentBundleMenuItem","getRangePosition","GlobalPerspectiveMenuItem","LayerRange","ReleaseTypeMenuSection","ScheduledDraftsMenuItem","ScrollElement","ViewContentReleasesMenuItem","orderedReleaseTypes","StickyCard","StickyTopCard","StickyBottomCard","ReleasesList","t0","$","_c","areReleasesEnabled","setScrollContainer","isRangeVisible","selectedPerspectiveName","handleOpenBundleDialog","scrollElementRef","menuItemProps","loading","data","allReleases","bundles","agentBundles","t1","filter","_temp","releases","document","t2","drafts","t3","enabled","isDraftModelEnabled","t4","reduce","ReleaseTypeReleases","releaseType","t5","metadata","Record","sortedReleaseTypeReleases","isDraftsPerspective","lastIndex","offsets","flat","systemStack","asap","scheduled","t6","length","t7","t8","undecided","adjustIndexForReleaseType","type","groupSubsetReleases","offset","forEach","release_0","groupReleaseIndex","index","release","_id","range","Symbol","for","undefined","t9","t10","t11","map","releaseType_0","t12","t13","t14","t15","useCallback","useEffect","useMemo","useRef","useState","ScrollElement","HTMLElement","findScrollableAncestor","element","current","parentElement","overflowY","getComputedStyle","isElementVisibleInContainer","container","containerRect","getBoundingClientRect","elementRect","isVisible","top","useScrollIndicatorVisibility","$","_c","scrollElementRef","scrollAncestorRef","isRangeVisible","setIsRangeVisible","t0","Symbol","for","handleScroll","t1","previousAncestor","removeEventListener","scrollableAncestor","addEventListener","passive","setScrollContainer","t2","t3","ancestor","t4","resetRangeVisibility","t5","ChevronDownIcon","Button","Menu","useCallback","useRef","useState","styled","MenuButton","CreateReleaseDialog","useReleasesUpsell","oversizedButtonStyle","ReleasesNavMenuItemPropsGetter","ReleasesList","useScrollIndicatorVisibility","StyledMenu","OversizedButton","GlobalPerspectiveMenu","t0","$","_c","selectedPerspectiveName","areReleasesEnabled","t1","menuItemProps","undefined","createBundleDialogOpen","setCreateBundleDialogOpen","handleOpenDialog","handleOpenReleasesUpsellDialog","mode","releasesUpsellMode","styledMenuRef","isRangeVisible","resetRangeVisibility","setScrollContainer","scrollElementRef","t2","handleOpenBundleDialog","t3","Symbol","for","handleClose","t4","t5","t6","t7","t8","overflow","t9","__unstable_margins","constrainSize","fallbackPlacements","placement","portal","style","React","CSSProperties","tone","zOffset","t10","t11","t12","Card","ComponentType","styled","usePerspective","useReleasesToolAvailable","useWorkspace","ReleasesToolLink","ReleasesNavMenuItemPropsGetter","CurrentGlobalPerspectiveLabel","GlobalPerspectiveMenu","ReleasesNavContainer","Props","withReleasesToolButton","menuItemProps","border","ReleasesNav","t0","$","_c","t1","undefined","releasesToolAvailable","isReleasesEnabled","releases","enabled","selectedPerspective","selectedPerspectiveName","t2","t3","t4","t5","t6"],"sources":["../src/core/perspective/useSetVariant.tsx","../src/core/releases/components/CreateReleaseMenuItem.tsx","../src/core/releases/hooks/useFormatRelativeLocalePublishDate.ts","../src/core/store/agent/useAgentBundles.ts","../src/core/studio/components/navbar/tools/ToolLink.tsx","../src/core/perspective/styles.ts","../src/core/perspective/ReleasesToolLink.tsx","../src/core/perspective/navbar/AnimatedTextWidth.tsx","../src/core/perspective/navbar/currentGlobalPerspectiveLabel.tsx","../src/core/perspective/navbar/AgentBundleMenuItem.tsx","../src/core/perspective/useExcludedPerspective.tsx","../src/core/perspective/navbar/PerspectiveLayerIndicator.tsx","../src/core/perspective/navbar/GlobalPerspectiveMenuItem.tsx","../src/core/perspective/navbar/ReleaseTypeMenuSection.tsx","../src/core/perspective/navbar/ScheduledDraftsMenuItem.tsx","../src/core/perspective/navbar/ViewContentReleasesMenuItem.tsx","../src/core/perspective/navbar/ReleasesList.tsx","../src/core/perspective/navbar/useScrollIndicatorVisibility.ts","../src/core/perspective/navbar/GlobalPerspectiveMenu.tsx","../src/core/perspective/navbar/ReleasesNav.tsx"],"sourcesContent":["import {useCallback} from 'react'\nimport {useRouter} from 'sanity/router'\n\nimport {type SystemBundle} from '../util/draftUtils'\nimport {getVariantId} from '../variants/tool/util'\nimport {type SystemVariant} from '../variants/types'\nimport {type ReleaseId} from './types'\nimport {useGetDefaultPerspective} from './useGetDefaultPerspective'\nimport {getPerspectiveParam} from './useSetPerspective'\n\n/**\n * @internal\n */\nexport type SetVariant = (\n options:\n | {\n variantId: SystemVariant['_id'] | undefined\n perspective?: SystemBundle | ReleaseId\n }\n | {\n variantId?: SystemVariant['_id']\n perspective: SystemBundle | ReleaseId\n },\n) => void\n\n/**\n * React hook to set the variant in the router.\n * Optionally sets the perspective in the same navigation, so both sticky params\n * are updated atomically (a single history entry, no intermediate render).\n * Do not use in production, this can change in any release.\n * @internal\n * @beta\n */\nexport function useSetVariant(): SetVariant {\n const router = useRouter()\n const defaultPerspective = useGetDefaultPerspective()\n\n return useCallback<SetVariant>(\n ({variantId, perspective}) => {\n router.navigate({\n stickyParams: {\n variant: variantId ? getVariantId(variantId) : null,\n ...(perspective\n ? {\n excludedPerspectives: null,\n perspective: getPerspectiveParam(perspective, defaultPerspective),\n }\n : {}),\n },\n })\n },\n [router, defaultPerspective],\n )\n}\n","import {AddIcon} from '@sanity/icons/Add'\nimport {type ComponentProps, type ComponentType, useMemo} from 'react'\nimport {useObservable} from 'react-rx'\nimport {from} from 'rxjs'\n\nimport {MenuItem} from '../../../ui-components/menuItem/MenuItem'\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {useWorkspace} from '../../studio/workspace'\nimport {useCreateReleaseMetadata} from '../hooks/useCreateReleaseMetadata'\nimport {useActiveReleases} from '../store/useActiveReleases'\nimport {useReleaseOperations} from '../store/useReleaseOperations'\nimport {useReleasePermissions} from '../store/useReleasePermissions'\nimport {getReleaseDefaults} from '../util/util'\n\ninterface Props {\n onCreateRelease: () => void\n}\n\nexport const CreateReleaseMenuItem: ComponentType<Props> = ({onCreateRelease}) => {\n const {t} = useTranslation()\n const {createRelease} = useReleaseOperations()\n const {checkWithPermissionGuard} = useReleasePermissions()\n const createReleaseMetadata = useCreateReleaseMetadata()\n\n const hasCreatePermission = useObservable(\n useMemo(\n () =>\n from(checkWithPermissionGuard(createRelease, createReleaseMetadata(getReleaseDefaults()))),\n [checkWithPermissionGuard, createRelease, createReleaseMetadata],\n ),\n )\n\n const activeReleases = useActiveReleases()\n const activeReleaseCount = activeReleases.data.length\n\n const {releases} = useWorkspace()\n const workspaceReleaseLimit = releases?.limit ?? Infinity\n const isWorkspaceReleaseLimitReached = activeReleaseCount >= workspaceReleaseLimit\n\n const menuItemProps: Pick<ComponentProps<typeof MenuItem>, 'icon' | 'onClick' | 'text'> & {\n 'data-testid': string\n } = {\n 'icon': AddIcon,\n 'onClick': onCreateRelease,\n 'data-testid': 'create-new-release-button',\n 'text': t('release.action.create-new'),\n }\n\n if (isWorkspaceReleaseLimitReached) {\n return (\n <MenuItem\n {...menuItemProps}\n text={t('release.action.create-new')}\n tooltipProps={{\n content: t('release.action.new-release.limit-reached', {\n count: workspaceReleaseLimit,\n }),\n }}\n disabled\n />\n )\n }\n\n if (!hasCreatePermission) {\n return (\n <MenuItem\n {...menuItemProps}\n tooltipProps={{\n content: t('release.action.permission.error'),\n }}\n disabled\n />\n )\n }\n\n return <MenuItem {...menuItemProps} />\n}\n","import {type ReleaseDocument} from '@sanity/client'\nimport {useCallback} from 'react'\n\nimport {useTimeZone} from '../../hooks/useTimeZone'\nimport {CONTENT_RELEASES_TIME_ZONE_SCOPE} from '../../studio/constants'\nimport {formatRelativeLocalePublishDate} from '../util/util'\n\n/**\n * Returns a function that formats a release's publish date in the studio's\n * selected content-releases timezone (e.g. \"today at 10:20 AM\"). The returned\n * function is safe to call inside conditional JSX.\n *\n * @internal\n */\nexport function useFormatRelativeLocalePublishDate(): (release: ReleaseDocument) => string {\n const {timeZone} = useTimeZone(CONTENT_RELEASES_TIME_ZONE_SCOPE)\n return useCallback(\n (release: ReleaseDocument) => formatRelativeLocalePublishDate(release, timeZone.name),\n [timeZone.name],\n )\n}\n","import {useMemo} from 'react'\nimport {useObservable} from 'react-rx'\n\nimport {useClient} from '../../hooks/useClient'\nimport {useWorkspace} from '../../studio/workspace'\nimport {useProjectStore} from '../datastores'\nimport {useResourceCache} from '../ResourceCacheProvider'\nimport {\n type AgentBundlesState,\n type AgentBundlesStore,\n createAgentBundlesStore,\n INITIAL_STATE,\n} from './createAgentBundlesStore'\n\nconst CLIENT_OPTIONS = {apiVersion: 'v2025-02-19'} as const\n\n/**\n * Retrieve the shared agent bundles store, instantiating it if necessary.\n *\n * @internal\n */\nexport function useAgentBundlesStore(): AgentBundlesStore {\n const resourceCache = useResourceCache()\n const workspace = useWorkspace()\n const client = useClient(CLIENT_OPTIONS)\n const projectStore = useProjectStore()\n\n return useMemo(() => {\n const agentBundlesStore =\n resourceCache.get<ReturnType<typeof createAgentBundlesStore>>({\n namespace: 'AgentBundlesStore',\n dependencies: [workspace],\n }) ||\n createAgentBundlesStore({\n organizationId$: projectStore.getOrganizationId(),\n client,\n })\n\n resourceCache.set({\n namespace: 'AgentBundlesStore',\n dependencies: [workspace],\n value: agentBundlesStore,\n })\n\n return agentBundlesStore\n }, [resourceCache, workspace, client, projectStore])\n}\n\n/**\n * Returns the current user's active agent bundles, streamed in real time from\n * the agent's SSE endpoint.\n *\n * The underlying SSE connection is shared across all callers within the same\n * workspace (via `useResourceCache`), so mounting this hook in multiple\n * components does not open multiple connections.\n *\n * @internal\n */\nexport function useAgentBundles(): AgentBundlesState {\n const {state$} = useAgentBundlesStore()\n return useObservable(state$, INITIAL_STATE)\n}\n","import {type HTMLProps, type ReactNode, useCallback, type RefAttributes} from 'react'\nimport {StateLink, useRouterState} from 'sanity/router'\n\n/**\n * @hidden\n * @beta */\nexport interface ToolLinkProps {\n children: ReactNode\n name: string\n}\n\n/**\n * @hidden\n * @beta */\nexport function ToolLink(\n props: ToolLinkProps &\n Omit<HTMLProps<HTMLAnchorElement>, 'href' | 'name'> &\n RefAttributes<HTMLAnchorElement>,\n) {\n const {ref, name, ...rest} = props\n const state = useRouterState(\n useCallback(\n () => ({\n tool: name,\n // make sure to clear tool state when navigating to another tool\n [name]: undefined,\n }),\n [name],\n ),\n )\n\n return <StateLink state={state} {...rest} ref={ref} />\n}\n","import {css} from 'styled-components'\n\n/**\n * A CSS helper that extends the clickable area of a component by adding a pseudo-element.\n * This creates a larger hit area for better usability without affecting the visual size.\n */\nexport const oversizedButtonStyle = css`\n position: relative;\n cursor: default;\n &::before {\n content: '';\n position: absolute;\n display: block;\n inset: -4px;\n border-radius: 9999px;\n }\n`\n","// oxlint-disable-next-line no-restricted-imports -- Bundle Button requires more fine-grained styling than studio button\nimport {Button} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {useObservable} from 'react-rx'\nimport {useRouterState} from 'sanity/router'\nimport {styled} from 'styled-components'\n\nimport {Tooltip} from '../../ui-components/tooltip/Tooltip'\nimport {useTranslation} from '../i18n/hooks/useTranslation'\nimport {ReleaseAvatarIcon} from '../releases/components/ReleaseAvatar'\nimport {useReleasesStore} from '../releases/store/useReleasesStore'\nimport {SCHEDULES_TOOL_NAME} from '../schedules/plugin'\nimport {ToolLink} from '../studio/components/navbar/tools/ToolLink'\nimport {oversizedButtonStyle} from './styles'\nimport {usePerspective} from './usePerspective'\n\nconst Dot = styled.div({\n width: 4,\n height: 4,\n borderRadius: 3,\n boxShadow: '0 0 0 1px var(--card-bg-color)',\n})\n\nconst OversizedButton = styled(ToolLink)`\n ${oversizedButtonStyle}\n`\n\n/**\n * represents the calendar icon for the releases tool.\n * It will be hidden if users have turned off releases.\n */\nexport function ReleasesToolLink(): React.JSX.Element {\n const {t} = useTranslation()\n const {errorCount$} = useReleasesStore()\n const errorCount = useObservable(errorCount$)\n const hasError = errorCount !== 0\n const {selectedPerspective} = usePerspective()\n const activeToolName = useRouterState(\n useCallback(\n (routerState) => (typeof routerState.tool === 'string' ? routerState.tool : undefined),\n [],\n ),\n )\n\n return (\n <Tooltip content={t('release.navbar.tooltip')}>\n <Button\n as={OversizedButton}\n name={SCHEDULES_TOOL_NAME}\n data-as=\"a\"\n icon={<ReleaseAvatarIcon release={selectedPerspective} />}\n mode=\"bleed\"\n padding={2}\n radius=\"full\"\n data-testid=\"releases-tool-link\"\n selected={activeToolName === SCHEDULES_TOOL_NAME}\n >\n {hasError && (\n <Dot\n data-ui=\"error-status-icon\"\n style={{\n backgroundColor: `var(--card-badge-critical-dot-color)`,\n }}\n />\n )}\n </Button>\n </Tooltip>\n )\n}\n","import {motion} from 'motion/react'\nimport {type ReactNode, useCallback, useLayoutEffect, useRef, useState} from 'react'\n\n/**\n * Animates width changes when label text changes, e.g. when switching perspectives or variants.\n *\n * @internal\n */\nexport function AnimatedTextWidth({children, text}: {children: ReactNode; text: string}) {\n const textRef = useRef<HTMLDivElement>(null)\n const [containerWidth, setContainerWidth] = useState<null | number>(null)\n const [isAnimating, setIsAnimating] = useState(false)\n\n useLayoutEffect(() => {\n if (!textRef.current) return\n const newWidth = textRef.current.offsetWidth\n setContainerWidth(newWidth)\n }, [text])\n\n const onAnimationStart = useCallback(() => {\n setIsAnimating(true)\n }, [])\n const onAnimationComplete = useCallback(() => {\n setIsAnimating(false)\n }, [])\n\n return (\n <motion.div\n style={{\n display: 'inline-block',\n width: containerWidth === null ? 'auto' : containerWidth,\n overflow: isAnimating ? 'hidden' : 'visible',\n }}\n animate={{width: containerWidth || 'auto'}}\n transition={{type: 'spring', bounce: 0, duration: 0.3}}\n onAnimationStart={onAnimationStart}\n onAnimationComplete={onAnimationComplete}\n >\n <div\n ref={textRef}\n style={{\n display: 'inline-block',\n whiteSpace: 'nowrap',\n verticalAlign: 'middle',\n }}\n >\n {children}\n </div>\n </motion.div>\n )\n}\n","import {type ReleaseDocument} from '@sanity/client'\n// oxlint-disable-next-line no-restricted-imports -- Bundle Button requires more fine-grained styling than studio button\nimport {Box, Button, Text} from '@sanity/ui'\nimport {useMemo, type RefAttributes} from 'react'\nimport {IntentLink} from 'sanity/router'\nimport {styled} from 'styled-components'\n\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {ReleaseTitle} from '../../releases/components/ReleaseTitle'\nimport {RELEASES_INTENT} from '../../releases/plugin'\nimport {isReleaseDocument} from '../../releases/store/types'\nimport {getReleaseIdFromReleaseDocumentId} from '../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {isDraftPerspective, isPublishedPerspective} from '../../releases/util/util'\nimport {isAgentBundleName} from '../../store/agent/createAgentBundlesStore'\nimport {useAgentBundles} from '../../store/agent/useAgentBundles'\nimport {oversizedButtonStyle} from '../styles'\nimport {type TargetPerspective} from '../types'\nimport {AnimatedTextWidth} from './AnimatedTextWidth'\n\nconst OversizedButton = styled(IntentLink)`\n ${oversizedButtonStyle}\n`\n\nconst ReleasesLink = ({selectedPerspective}: {selectedPerspective: ReleaseDocument}) => {\n const {t} = useTranslation()\n\n const ReleasesIntentLink = useMemo(\n () =>\n function ReleasesIntentLink({\n ref,\n children,\n ...intentProps\n }: React.ComponentPropsWithoutRef<'a'> & RefAttributes<HTMLAnchorElement>) {\n return (\n <OversizedButton\n {...intentProps}\n ref={ref}\n intent={RELEASES_INTENT}\n params={{id: getReleaseIdFromReleaseDocumentId(selectedPerspective._id)}}\n >\n {children}\n </OversizedButton>\n )\n },\n [selectedPerspective],\n )\n\n return (\n <ReleaseTitle\n title={selectedPerspective.metadata?.title}\n fallback={t('release.placeholder-untitled-release')}\n >\n {({displayTitle}) => (\n <Button\n as={ReleasesIntentLink}\n data-as=\"a\"\n rel=\"noopener noreferrer\"\n mode=\"bleed\"\n padding={2}\n radius=\"full\"\n style={{maxWidth: '180px'}}\n text={displayTitle}\n />\n )}\n </ReleaseTitle>\n )\n}\n\nexport function CurrentGlobalPerspectiveLabel({\n selectedPerspective,\n}: {\n selectedPerspective: TargetPerspective\n}): React.JSX.Element | null {\n const {t} = useTranslation()\n const {bundles} = useAgentBundles()\n\n return (\n <AnimatedTextWidth\n text={isReleaseDocument(selectedPerspective) ? selectedPerspective._id : selectedPerspective}\n >\n {isPublishedPerspective(selectedPerspective) || isDraftPerspective(selectedPerspective) ? (\n <Box padding={2} style={{userSelect: 'none', overflow: 'hidden'}}>\n <Text size={1} textOverflow=\"ellipsis\" weight=\"medium\">\n {isPublishedPerspective(selectedPerspective)\n ? t('release.chip.published')\n : t('release.chip.global.drafts')}\n </Text>\n </Box>\n ) : isReleaseDocument(selectedPerspective) ? (\n <ReleasesLink selectedPerspective={selectedPerspective} />\n ) : (\n <Box padding={2} style={{userSelect: 'none', overflow: 'hidden'}}>\n <Text size={1} textOverflow=\"ellipsis\" weight=\"medium\">\n {isAgentBundleName(selectedPerspective)\n ? t(\n bundles.some((b) => b.id === selectedPerspective)\n ? 'version.agent-bundle.proposed-changes'\n : 'version.agent-bundle.agent-changes',\n )\n : selectedPerspective}\n </Text>\n </Box>\n )}\n </AnimatedTextWidth>\n )\n}\n","import {SparkleIcon} from '@sanity/icons/Sparkle'\n// oxlint-disable-next-line no-restricted-imports -- MenuItem with custom children not supported by ui-components\nimport {Box, Flex, MenuItem, Stack, Text} from '@sanity/ui'\nimport {type CSSProperties, memo, useCallback} from 'react'\n\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {type AgentBundle} from '../../store/agent/createAgentBundlesStore'\nimport {usePerspective} from '../usePerspective'\nimport {useSetPerspective} from '../useSetPerspective'\n\nconst iconStyle: CSSProperties & {'--card-icon-color': string} = {\n '--card-icon-color': 'var(--card-badge-suggest-icon-color)',\n}\n\n/**\n * Renders a menu item for an active agent bundle in the global perspective\n * picker. Visually matches `GlobalPerspectiveMenuItem` so it blends into the\n * existing release list.\n *\n * @internal\n */\nexport const AgentBundleMenuItem = memo(function AgentBundleMenuItem({\n bundle,\n}: {\n bundle: AgentBundle\n}) {\n const {t} = useTranslation()\n const setPerspective = useSetPerspective()\n const {selectedPerspectiveName} = usePerspective()\n\n const active = selectedPerspectiveName === bundle.id\n const label = t('version.agent-bundle.proposed-changes')\n\n const handleClick = useCallback(() => setPerspective(bundle.id), [bundle.id, setPerspective])\n\n return (\n <MenuItem onClick={handleClick} padding={1} pressed={active} selected={active}>\n <Flex align=\"flex-start\" gap={1}>\n <Box flex=\"none\" paddingX={3} paddingY={2}>\n <Text size={1} style={iconStyle}>\n <SparkleIcon />\n </Text>\n </Box>\n <Stack\n flex={1}\n paddingY={2}\n paddingRight={2}\n gap={2}\n style={{maxWidth: '200px', minWidth: 0}}\n >\n <Flex gap={3} align=\"center\" style={{minWidth: 0}}>\n <Text size={1} weight=\"medium\" style={{minWidth: 0}}>\n {label}\n </Text>\n </Flex>\n </Stack>\n </Flex>\n </MenuItem>\n )\n})\n","import {useCallback, useMemo} from 'react'\nimport {useRouter} from 'sanity/router'\n\nimport {usePerspective} from './usePerspective'\n\nexport interface ExcludedPerspectiveValue {\n /* The excluded perspectives */\n excludedPerspectives: string[]\n /* Add/remove excluded perspectives */\n toggleExcludedPerspective: (perspectiveId: string) => void\n /* Check if a perspective is excluded */\n isPerspectiveExcluded: (perspectiveId: string) => boolean\n}\n\n/**\n * Gets the excluded perspectives.\n \n * @internal\n */\nexport function useExcludedPerspective(): ExcludedPerspectiveValue {\n const {navigate} = useRouter()\n const {excludedPerspectives} = usePerspective()\n\n const toggleExcludedPerspective = useCallback(\n (excluded: string) => {\n const existingPerspectives = excludedPerspectives || []\n\n const nextExcludedPerspectives = existingPerspectives.includes(excluded)\n ? existingPerspectives.filter((id) => id !== excluded)\n : [...existingPerspectives, excluded]\n\n navigate({stickyParams: {excludedPerspectives: nextExcludedPerspectives.toString()}})\n },\n [excludedPerspectives, navigate],\n )\n\n const isPerspectiveExcluded = useCallback(\n (perspectiveId: string) => Boolean(excludedPerspectives?.includes(perspectiveId)),\n [excludedPerspectives],\n )\n\n return useMemo(\n () => ({excludedPerspectives, toggleExcludedPerspective, isPerspectiveExcluded}),\n [excludedPerspectives, toggleExcludedPerspective, isPerspectiveExcluded],\n )\n}\n","import {Box} from '@sanity/ui'\nimport {css, styled} from 'styled-components'\n\nconst INDICATOR_LEFT_OFFSET = 20\nconst INDICATOR_WIDTH = 1\nconst INDICATOR_COLOR_VAR_NAME = '--card-border-color'\nconst INDICATOR_BOTTOM_OFFSET = 4\n\nexport const GlobalPerspectiveMenuItemIndicator = styled.div<{\n $inRange: boolean\n $last: boolean\n $first: boolean\n $isDefaultPerspective: boolean\n}>(\n ({$inRange, $last, $first, $isDefaultPerspective}) => css`\n position: relative;\n\n --indicator-left: ${INDICATOR_LEFT_OFFSET}px;\n --indicator-width: ${INDICATOR_WIDTH}px;\n --indicator-color: var(${INDICATOR_COLOR_VAR_NAME});\n --indicator-bottom: ${INDICATOR_BOTTOM_OFFSET}px;\n\n --indicator-in-range-height: 16.5px;\n\n ${\n $inRange &&\n !$last &&\n css`\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: var(--indicator-left);\n bottom: -var(--indicator-bottom);\n width: var(--indicator-width);\n height: ${\n $isDefaultPerspective\n ? 'calc(var(--indicator-bottom) + 12px)'\n : 'var(--indicator-bottom)'\n };\n background-color: var(--card-border-color);\n }\n `\n }\n\n ${\n $inRange &&\n css`\n > [data-ui='MenuItem'] {\n position: relative;\n\n &:before,\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: var(--indicator-left);\n width: var(--indicator-width);\n background-color: var(--card-border-color);\n }\n\n &:before {\n top: 0;\n height: var(--indicator-in-range-height);\n }\n\n &:after {\n top: var(--indicator-in-range-height);\n bottom: 0;\n }\n }\n `\n }\n\n ${\n $first &&\n css`\n > [data-ui='MenuItem']:after {\n margin-top: -3px;\n border-top-left-radius: ${INDICATOR_WIDTH}px;\n border-top-right-radius: ${INDICATOR_WIDTH}px;\n }\n > [data-ui='MenuItem']:before {\n display: none;\n }\n `\n }\n\n ${\n $last &&\n css`\n > [data-ui='MenuItem']:before {\n // dot diameter (5px) - 1.6px stroke divided by 2\n padding-bottom: 1.7px;\n border-bottom-left-radius: ${INDICATOR_WIDTH}px;\n border-bottom-right-radius: ${INDICATOR_WIDTH}px;\n }\n > [data-ui='MenuItem']:after {\n display: none;\n }\n `\n }\n `,\n)\n\nexport const GlobalPerspectiveMenuLabelIndicator = styled(Box)<{$withinRange: boolean}>(\n ({$withinRange}) => css`\n position: relative;\n // 4px padding + 33px release indicator width + 4px gap\n padding-left: 41px;\n\n ${\n $withinRange &&\n css`\n &:before {\n content: '';\n display: block;\n position: absolute;\n left: ${INDICATOR_LEFT_OFFSET}px;\n top: -8px;\n bottom: -${INDICATOR_BOTTOM_OFFSET}px;\n width: ${INDICATOR_WIDTH}px;\n background-color: var(${INDICATOR_COLOR_VAR_NAME});\n }\n `\n }\n `,\n)\n","import {type ReleaseDocument} from '@sanity/client'\nimport {ErrorOutlineIcon} from '@sanity/icons/ErrorOutline'\nimport {EyeClosedIcon} from '@sanity/icons/EyeClosed'\nimport {EyeOpenIcon} from '@sanity/icons/EyeOpen'\nimport {LockIcon} from '@sanity/icons/Lock'\n// oxlint-disable-next-line no-restricted-imports -- custom use for MenuItem & Button not supported by ui-components\nimport {Box, Button, Flex, MenuItem, Stack, Text} from '@sanity/ui'\nimport {type MouseEvent, useCallback, useMemo, type RefAttributes} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {ToneIcon} from '../../../ui-components/toneIcon/ToneIcon'\nimport {Tooltip} from '../../../ui-components/tooltip/Tooltip'\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {useExcludedPerspective} from '../../perspective/useExcludedPerspective'\nimport {usePerspective} from '../../perspective/usePerspective'\nimport {useSetPerspective} from '../../perspective/useSetPerspective'\nimport {ReleaseAvatarIcon} from '../../releases/components/ReleaseAvatar'\nimport {ReleaseTitle} from '../../releases/components/ReleaseTitle'\nimport {useFormatRelativeLocalePublishDate} from '../../releases/hooks/useFormatRelativeLocalePublishDate'\nimport {isReleaseDocument} from '../../releases/store/types'\nimport {LATEST, PUBLISHED} from '../../releases/util/const'\nimport {getReleaseIdFromReleaseDocumentId} from '../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {isDraftPerspective, isReleaseScheduledOrScheduling} from '../../releases/util/util'\nimport {useWorkspace} from '../../studio/workspace'\nimport {type ReleasesNavMenuItemPropsGetter} from '../types'\nimport {GlobalPerspectiveMenuItemIndicator} from './PerspectiveLayerIndicator'\n\nexport interface LayerRange {\n lastIndex: number\n offsets: {\n asap: number\n scheduled: number\n undecided: number\n }\n}\n\nconst ToggleLayerButton = styled(Button)<{$visible: boolean}>(\n ({$visible}) => css`\n --card-fg-color: inherit;\n --card-icon-color: inherit;\n\n background-color: inherit;\n opacity: ${$visible ? 0 : 1};\n\n @media (hover: hover) {\n &:not([data-disabled='true']):hover {\n --card-fg-color: inherit;\n --card-icon-color: inherit;\n }\n }\n\n [data-ui='MenuItem']:hover & {\n opacity: 1;\n }\n `,\n)\n\ntype rangePosition = 'first' | 'within' | 'last' | undefined\nconst IconWrapperBox = styled(Box)<{$isExcluded: boolean}>(\n ({$isExcluded}) => css`\n position: relative;\n z-index: 1;\n border-radius: 50%;\n /* background-color: var(--card-background-color); */\n opacity: ${$isExcluded ? 0 : 1};\n // The icon needs a white background to visually sit on top of the line indicator\n & svg {\n background-color: var(--card-bg-color);\n }\n `,\n)\n\nexport function getRangePosition(range: LayerRange, index: number): rangePosition {\n const {lastIndex} = range\n\n if (lastIndex === 0) return undefined\n if (index === 0) return 'first'\n if (index === lastIndex) return 'last'\n if (index > 0 && index < lastIndex) return 'within'\n\n return undefined\n}\n\nexport function GlobalPerspectiveMenuItem(\n props: {\n release: ReleaseDocument | 'published' | typeof LATEST\n rangePosition: rangePosition\n menuItemProps?: ReleasesNavMenuItemPropsGetter\n } & RefAttributes<HTMLDivElement>,\n) {\n const {ref, release, rangePosition} = props\n\n const {\n document: {\n drafts: {enabled: isDraftModelEnabled},\n },\n } = useWorkspace()\n\n const defaultPerspective = isDraftModelEnabled ? LATEST : PUBLISHED\n const {selectedPerspective, selectedPerspectiveName} = usePerspective()\n const setPerspective = useSetPerspective()\n const {toggleExcludedPerspective, isPerspectiveExcluded} = useExcludedPerspective()\n const formatPublishDate = useFormatRelativeLocalePublishDate()\n const releaseId = isReleaseDocument(release)\n ? getReleaseIdFromReleaseDocumentId(release._id)\n : release\n\n const isDefaultPerspective = release === defaultPerspective\n\n const active = selectedPerspectiveName\n ? releaseId === selectedPerspectiveName\n : isDefaultPerspective\n\n const isReleasePerspectiveExcluded = isPerspectiveExcluded(releaseId)\n\n const {t} = useTranslation()\n\n const handleToggleReleaseVisibility = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n event.stopPropagation()\n toggleExcludedPerspective(releaseId)\n },\n [toggleExcludedPerspective, releaseId],\n )\n\n const handleOnReleaseClick = useCallback(\n () => setPerspective(releaseId),\n [releaseId, setPerspective],\n )\n\n const canReleaseBeExcluded = useMemo(() => {\n if (release === 'published') return false\n if (isDraftPerspective(release)) return isReleaseDocument(selectedPerspective)\n if (isReleaseScheduledOrScheduling(release)) return false\n return rangePosition && ['first', 'within'].includes(rangePosition)\n }, [rangePosition, release, selectedPerspective])\n\n return (\n <GlobalPerspectiveMenuItemIndicator\n $isDefaultPerspective={isDefaultPerspective}\n $first={rangePosition === 'first'}\n $last={rangePosition === 'last'}\n $inRange={Boolean(rangePosition)}\n ref={ref}\n >\n <MenuItem\n onClick={handleOnReleaseClick}\n padding={1}\n pressed={active}\n selected={active}\n data-testid={`release-${releaseId}`}\n {...props.menuItemProps?.({perspective: release})}\n >\n <Flex align=\"flex-start\" gap={1}>\n <IconWrapperBox\n $isExcluded={isReleasePerspectiveExcluded}\n flex=\"none\"\n data-testid=\"release-indicator-icon\"\n paddingX={3}\n paddingY={2}\n >\n <Text size={1}>\n <ReleaseAvatarIcon release={release} />\n </Text>\n </IconWrapperBox>\n <Stack\n flex={1}\n paddingY={2}\n paddingRight={2}\n gap={2}\n style={{\n opacity: isReleasePerspectiveExcluded ? 0.5 : undefined,\n maxWidth: '200px',\n minWidth: 0,\n }}\n >\n <Flex gap={3} align=\"center\" style={{minWidth: 0}}>\n {isReleaseDocument(release) ? (\n <ReleaseTitle\n title={release.metadata.title}\n fallback={t('release.placeholder-untitled-release')}\n textProps={{size: 1, weight: 'medium', style: {minWidth: 0}}}\n />\n ) : (\n <Text size={1} weight=\"medium\" style={{minWidth: 0}}>\n {isDraftPerspective(release)\n ? t('release.navbar.drafts')\n : t('release.navbar.published')}\n </Text>\n )}\n {isReleaseDocument(release) &&\n typeof release.error !== 'undefined' &&\n release.state === 'active' && (\n <Text size={1} data-testid=\"release-error-icon\">\n <ToneIcon icon={ErrorOutlineIcon} tone=\"critical\" />\n </Text>\n )}\n </Flex>\n {isReleaseDocument(release) &&\n release.metadata.releaseType === 'scheduled' &&\n (release.publishAt || release.metadata.intendedPublishAt) && (\n <Text muted size={1}>\n {formatPublishDate(release)}\n </Text>\n )}\n </Stack>\n <Box flex=\"none\">\n {canReleaseBeExcluded && (\n <Tooltip portal content={t('release.layer.hide')} placement=\"bottom\">\n <ToggleLayerButton\n $visible={!isReleasePerspectiveExcluded}\n forwardedAs=\"div\"\n icon={isReleasePerspectiveExcluded ? EyeClosedIcon : EyeOpenIcon}\n mode=\"bleed\"\n onClick={handleToggleReleaseVisibility}\n padding={2}\n data-testid=\"release-toggle-visibility\"\n />\n </Tooltip>\n )}\n {isReleaseDocument(release) && isReleaseScheduledOrScheduling(release) && (\n <Box padding={2}>\n <Text size={1} data-testid=\"release-lock-icon\">\n <LockIcon />\n </Text>\n </Box>\n )}\n </Box>\n </Flex>\n </MenuItem>\n </GlobalPerspectiveMenuItemIndicator>\n )\n}\n","import {type ReleaseDocument, type ReleaseType} from '@sanity/client'\nimport {Card, Flex, Label, Stack} from '@sanity/ui'\nimport {useCallback} from 'react'\n\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {usePerspective} from '../../perspective/usePerspective'\nimport {getReleaseIdFromReleaseDocumentId} from '../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {type ReleaseId, type ReleasesNavMenuItemPropsGetter} from '../types'\nimport {\n getRangePosition,\n GlobalPerspectiveMenuItem,\n type LayerRange,\n} from './GlobalPerspectiveMenuItem'\nimport {GlobalPerspectiveMenuLabelIndicator} from './PerspectiveLayerIndicator'\nimport {type ScrollElement} from './useScrollIndicatorVisibility'\n\nconst RELEASE_TYPE_LABELS: Record<ReleaseType, string> = {\n asap: 'release.type.asap',\n scheduled: 'release.type.scheduled',\n undecided: 'release.type.undecided',\n}\n\nexport function ReleaseTypeMenuSection({\n releaseType,\n releases,\n range,\n currentGlobalBundleMenuItemRef,\n menuItemProps,\n}: {\n releaseType: ReleaseType\n releases: ReleaseDocument[]\n range: LayerRange\n currentGlobalBundleMenuItemRef: React.RefObject<ScrollElement>\n menuItemProps?: ReleasesNavMenuItemPropsGetter\n}): React.JSX.Element | null {\n const {t} = useTranslation()\n const {selectedReleaseId} = usePerspective()\n\n const getMenuItemRef = useCallback(\n (releaseId: ReleaseId) =>\n selectedReleaseId === releaseId\n ? (currentGlobalBundleMenuItemRef as React.RefObject<HTMLDivElement>)\n : undefined,\n [currentGlobalBundleMenuItemRef, selectedReleaseId],\n )\n\n if (releases.length === 0) return null\n\n const {lastIndex, offsets} = range\n const releaseTypeOffset = offsets[releaseType]\n\n return (\n <Card padding={1} borderBottom>\n <Stack gap={1}>\n <GlobalPerspectiveMenuLabelIndicator\n $withinRange={releaseTypeOffset > 0 && lastIndex >= releaseTypeOffset}\n paddingLeft={2}\n paddingTop={3}\n paddingBottom={1}\n >\n <Label muted style={{textTransform: 'uppercase'}} size={1}>\n {t(RELEASE_TYPE_LABELS[releaseType])}\n </Label>\n </GlobalPerspectiveMenuLabelIndicator>\n <Flex direction=\"column\" gap={1}>\n {releases.map((release, index) => (\n <GlobalPerspectiveMenuItem\n key={release._id}\n release={release}\n ref={getMenuItemRef(getReleaseIdFromReleaseDocumentId(release._id))}\n rangePosition={getRangePosition(range, releaseTypeOffset + index)}\n menuItemProps={menuItemProps}\n />\n ))}\n </Flex>\n </Stack>\n </Card>\n )\n}\n","import {CalendarIcon} from '@sanity/icons/Calendar'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {type ComponentType, useCallback} from 'react'\nimport {useIntentLink} from 'sanity/router'\n\nimport {MenuItem} from '../../../ui-components/menuItem/MenuItem'\nimport {FEATURES, useFeatureEnabled} from '../../hooks/useFeatureEnabled'\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {NavigatedToScheduledDrafts} from '../../releases/__telemetry__/navigation.telemetry'\nimport {useScheduledDraftsEnabled} from '../../singleDocRelease/hooks/useScheduledDraftsEnabled'\nimport {RELEASES_SCHEDULED_DRAFTS_INTENT} from '../../singleDocRelease/plugin'\nimport {useWorkspace} from '../../studio/workspace'\n\nexport const ScheduledDraftsMenuItem: ComponentType = () => {\n const {t} = useTranslation()\n const telemetry = useTelemetry()\n const isScheduledDraftsEnabled = useScheduledDraftsEnabled()\n const {enabled: isSingleDocReleaseEnabled} = useFeatureEnabled(FEATURES.singleDocRelease)\n const {\n document: {\n drafts: {enabled: isDraftModelEnabled},\n },\n } = useWorkspace()\n\n const logNavigationTelemetry = useCallback(() => {\n telemetry.log(NavigatedToScheduledDrafts, {source: 'menu'})\n }, [telemetry])\n\n const {href, onClick} = useIntentLink({\n intent: RELEASES_SCHEDULED_DRAFTS_INTENT,\n params: {view: 'drafts'},\n onClick: logNavigationTelemetry,\n })\n\n if (!isScheduledDraftsEnabled || !isSingleDocReleaseEnabled || !isDraftModelEnabled) return null\n\n return (\n <MenuItem\n as=\"a\"\n href={href}\n onClick={onClick}\n icon={CalendarIcon}\n text={t('release.menu.scheduled-drafts')}\n data-testid=\"scheduled-drafts-menu-item\"\n />\n )\n}\n","import {CalendarIcon} from '@sanity/icons/Calendar'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {type ComponentType, useCallback} from 'react'\nimport {useIntentLink} from 'sanity/router'\n\nimport {MenuItem} from '../../../ui-components/menuItem/MenuItem'\nimport {useTranslation} from '../../i18n/hooks/useTranslation'\nimport {NavigatedToReleasesOverview} from '../../releases/__telemetry__/navigation.telemetry'\nimport {RELEASES_INTENT} from '../../releases/plugin'\n\nexport const ViewContentReleasesMenuItem: ComponentType = () => {\n const {t} = useTranslation()\n const telemetry = useTelemetry()\n\n const logNavigationTelemetry = useCallback(() => {\n telemetry.log(NavigatedToReleasesOverview, {source: 'menu'})\n }, [telemetry])\n\n const {href, onClick} = useIntentLink({\n intent: RELEASES_INTENT,\n params: {source: 'menu'},\n onClick: logNavigationTelemetry,\n })\n\n return (\n <MenuItem\n as=\"a\"\n href={href}\n onClick={onClick}\n icon={CalendarIcon}\n text={t('release.menu.view-releases')}\n data-testid=\"view-content-releases-menu-item\"\n />\n )\n}\n","import {type ReleaseDocument, type ReleaseType} from '@sanity/client'\nimport {Card, Flex, Spinner, Stack} from '@sanity/ui'\nimport {type JSX, type RefObject, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {CreateReleaseMenuItem} from '../../releases/components/CreateReleaseMenuItem'\nimport {useActiveReleases} from '../../releases/store/useActiveReleases'\nimport {LATEST, PUBLISHED} from '../../releases/util/const'\nimport {getReleaseIdFromReleaseDocumentId} from '../../releases/util/getReleaseIdFromReleaseDocumentId'\nimport {useAgentBundles} from '../../store/agent/useAgentBundles'\nimport {useWorkspace} from '../../studio/workspace'\nimport {isCardinalityOneRelease} from '../../util/releaseUtils'\nimport {type ReleasesNavMenuItemPropsGetter} from '../types'\nimport {AgentBundleMenuItem} from './AgentBundleMenuItem'\nimport {\n getRangePosition,\n GlobalPerspectiveMenuItem,\n type LayerRange,\n} from './GlobalPerspectiveMenuItem'\nimport {ReleaseTypeMenuSection} from './ReleaseTypeMenuSection'\nimport {ScheduledDraftsMenuItem} from './ScheduledDraftsMenuItem'\nimport {type ScrollElement} from './useScrollIndicatorVisibility'\nimport {ViewContentReleasesMenuItem} from './ViewContentReleasesMenuItem'\n\nconst orderedReleaseTypes: ReleaseType[] = ['asap', 'scheduled', 'undecided']\n\nconst StickyCard = styled(Card)`\n position: sticky;\n z-index: 2;\n background: var(--card-bg-color);\n`\n\nconst StickyTopCard = styled(StickyCard)`\n top: 0;\n`\n\nconst StickyBottomCard = styled(StickyCard)`\n bottom: 0;\n`\n\nexport function ReleasesList({\n areReleasesEnabled,\n setScrollContainer,\n isRangeVisible,\n selectedPerspectiveName,\n handleOpenBundleDialog,\n scrollElementRef,\n menuItemProps,\n}: {\n areReleasesEnabled: boolean\n setScrollContainer: (el: HTMLElement | null) => void\n isRangeVisible: boolean\n selectedPerspectiveName: string | undefined\n handleOpenBundleDialog: () => void\n scrollElementRef: RefObject<ScrollElement>\n menuItemProps?: ReleasesNavMenuItemPropsGetter\n}): JSX.Element {\n const {loading, data: allReleases} = useActiveReleases()\n const {bundles: agentBundles} = useAgentBundles()\n\n const releases = useMemo(\n () => allReleases.filter((release) => !isCardinalityOneRelease(release)),\n [allReleases],\n )\n\n const {\n document: {\n drafts: {enabled: isDraftModelEnabled},\n },\n } = useWorkspace()\n\n const sortedReleaseTypeReleases = useMemo(\n () =>\n orderedReleaseTypes.reduce<Record<ReleaseType, ReleaseDocument[]>>(\n (ReleaseTypeReleases, releaseType) => ({\n ...ReleaseTypeReleases,\n [releaseType]: releases.filter(({metadata}) => metadata.releaseType === releaseType),\n }),\n {} as Record<ReleaseType, ReleaseDocument[]>,\n ),\n [releases],\n )\n\n const range: LayerRange = useMemo(() => {\n const isDraftsPerspective = typeof selectedPerspectiveName === 'undefined'\n let lastIndex = isDraftsPerspective ? 1 : 0\n\n const systemStack = [PUBLISHED, isDraftModelEnabled ? LATEST : []].flat()\n const {asap, scheduled} = sortedReleaseTypeReleases\n\n const offsets = {\n asap: systemStack.length,\n scheduled: systemStack.length + asap.length,\n undecided: systemStack.length + asap.length + scheduled.length,\n }\n\n const adjustIndexForReleaseType = (type: ReleaseType) => {\n const groupSubsetReleases = sortedReleaseTypeReleases[type]\n const offset = offsets[type]\n\n groupSubsetReleases.forEach((release, groupReleaseIndex) => {\n const index = offset + groupReleaseIndex\n\n if (selectedPerspectiveName === getReleaseIdFromReleaseDocumentId(release._id)) {\n lastIndex = index\n }\n })\n }\n\n orderedReleaseTypes.forEach(adjustIndexForReleaseType)\n\n return {\n lastIndex,\n offsets,\n }\n }, [isDraftModelEnabled, selectedPerspectiveName, sortedReleaseTypeReleases])\n\n if (loading) {\n return (\n <Flex padding={4} justify=\"center\" data-testid=\"spinner\">\n <Spinner muted />\n </Flex>\n )\n }\n\n return (\n <Card radius={3}>\n <StickyTopCard borderBottom padding={1}>\n <Stack gap={1}>\n <GlobalPerspectiveMenuItem\n rangePosition={isRangeVisible ? getRangePosition(range, 0) : undefined}\n release={'published'}\n menuItemProps={menuItemProps}\n />\n {isDraftModelEnabled && (\n <GlobalPerspectiveMenuItem\n rangePosition={isRangeVisible ? getRangePosition(range, 1) : undefined}\n release={LATEST}\n menuItemProps={menuItemProps}\n />\n )}\n </Stack>\n </StickyTopCard>\n {agentBundles[0] && (\n <Card borderBottom padding={1}>\n <Stack gap={1}>\n <AgentBundleMenuItem bundle={agentBundles[0]} />\n </Stack>\n </Card>\n )}\n {areReleasesEnabled && (\n <Stack ref={setScrollContainer} data-ui=\"scroll-wrapper\">\n {orderedReleaseTypes.map((releaseType) => (\n <ReleaseTypeMenuSection\n key={releaseType}\n releaseType={releaseType}\n releases={sortedReleaseTypeReleases[releaseType]}\n range={range}\n currentGlobalBundleMenuItemRef={scrollElementRef}\n menuItemProps={menuItemProps}\n />\n ))}\n </Stack>\n )}\n <StickyBottomCard borderTop paddingY={1} paddingX={2}>\n <Stack gap={1}>\n <ScheduledDraftsMenuItem />\n {areReleasesEnabled && (\n <>\n <ViewContentReleasesMenuItem />\n <CreateReleaseMenuItem onCreateRelease={handleOpenBundleDialog} />\n </>\n )}\n </Stack>\n </StickyBottomCard>\n </Card>\n )\n}\n","import {useCallback, useEffect, useMemo, useRef, useState} from 'react'\n\nexport type ScrollElement = HTMLElement | null\n\nfunction findScrollableAncestor(element: HTMLElement): HTMLElement | null {\n let current: HTMLElement | null = element.parentElement\n while (current) {\n const {overflowY} = getComputedStyle(current)\n if (overflowY === 'auto' || overflowY === 'scroll') {\n return current\n }\n current = current.parentElement\n }\n return null\n}\n\nfunction isElementVisibleInContainer(container: ScrollElement, element: ScrollElement): boolean {\n if (!container || !element) return true\n\n const containerRect = container.getBoundingClientRect()\n const elementRect = element.getBoundingClientRect()\n\n // 32.5px is padding on published/draft element + padding of perspective/draft menu item\n const isVisible = elementRect.top >= containerRect.top + 32.5 * 2\n\n return isVisible\n}\n\nexport const useScrollIndicatorVisibility = () => {\n const scrollElementRef = useRef<ScrollElement>(null)\n const scrollAncestorRef = useRef<HTMLElement | null>(null)\n\n const [isRangeVisible, setIsRangeVisible] = useState(true)\n\n const handleScroll = useCallback(\n () =>\n setIsRangeVisible(\n isElementVisibleInContainer(scrollAncestorRef.current, scrollElementRef.current),\n ),\n [],\n )\n\n const setScrollContainer = useCallback(\n (container: HTMLElement | null) => {\n const previousAncestor = scrollAncestorRef.current\n if (previousAncestor) {\n previousAncestor.removeEventListener('scroll', handleScroll)\n scrollAncestorRef.current = null\n }\n\n if (container) {\n const scrollableAncestor = findScrollableAncestor(container)\n scrollAncestorRef.current = scrollableAncestor\n\n if (scrollableAncestor) {\n scrollableAncestor.addEventListener('scroll', handleScroll, {passive: true})\n }\n }\n },\n [handleScroll],\n )\n\n useEffect(() => {\n return () => {\n const ancestor = scrollAncestorRef.current\n if (ancestor) {\n ancestor.removeEventListener('scroll', handleScroll)\n }\n }\n }, [handleScroll])\n\n const resetRangeVisibility = useCallback(() => setIsRangeVisible(true), [])\n\n return useMemo(\n () => ({\n resetRangeVisibility,\n isRangeVisible,\n setScrollContainer,\n scrollElementRef,\n }),\n [isRangeVisible, resetRangeVisibility, setScrollContainer],\n )\n}\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\n// oxlint-disable-next-line no-restricted-imports -- Button requires props, only supported by @sanity/ui\nimport {Button, Menu} from '@sanity/ui'\nimport {useCallback, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {MenuButton} from '../../../ui-components/menuButton/MenuButton'\nimport {CreateReleaseDialog} from '../../releases/components/dialog/CreateReleaseDialog'\nimport {useReleasesUpsell} from '../../releases/contexts/upsell/useReleasesUpsell'\nimport {oversizedButtonStyle} from '../styles'\nimport {type ReleasesNavMenuItemPropsGetter} from '../types'\nimport {ReleasesList} from './ReleasesList'\nimport {useScrollIndicatorVisibility} from './useScrollIndicatorVisibility'\n\nconst StyledMenu = styled(Menu)`\n min-width: 200px;\n max-width: 320px;\n /* Remove the default menu gap*/\n > [data-ui='Stack'] {\n gap: 0;\n }\n`\nconst OversizedButton = styled(Button)`\n ${oversizedButtonStyle}\n`\n\nexport function GlobalPerspectiveMenu({\n selectedPerspectiveName,\n areReleasesEnabled = true,\n menuItemProps,\n}: {\n selectedPerspectiveName: string | undefined\n areReleasesEnabled: boolean\n menuItemProps?: ReleasesNavMenuItemPropsGetter\n}): React.JSX.Element {\n const [createBundleDialogOpen, setCreateBundleDialogOpen] = useState(false)\n const {handleOpenDialog: handleOpenReleasesUpsellDialog, mode: releasesUpsellMode} =\n useReleasesUpsell()\n const styledMenuRef = useRef<HTMLDivElement>(null)\n\n const {isRangeVisible, resetRangeVisibility, setScrollContainer, scrollElementRef} =\n useScrollIndicatorVisibility()\n const handleOpenBundleDialog = useCallback(() => {\n if (releasesUpsellMode === 'upsell') {\n handleOpenReleasesUpsellDialog()\n return\n }\n setCreateBundleDialogOpen(true)\n }, [releasesUpsellMode, handleOpenReleasesUpsellDialog])\n\n const handleClose = useCallback(() => {\n setCreateBundleDialogOpen(false)\n }, [])\n\n return (\n <>\n <MenuButton\n button={\n <OversizedButton\n data-testid=\"global-perspective-menu-button\"\n iconRight={ChevronDownIcon}\n mode=\"bleed\"\n padding={2}\n radius=\"full\"\n />\n }\n id=\"releases-menu\"\n onClose={resetRangeVisibility}\n menu={\n <StyledMenu data-testid=\"release-menu\" ref={styledMenuRef} padding={0}>\n <ReleasesList\n areReleasesEnabled={areReleasesEnabled}\n setScrollContainer={setScrollContainer}\n isRangeVisible={isRangeVisible}\n scrollElementRef={scrollElementRef}\n selectedPerspectiveName={selectedPerspectiveName}\n handleOpenBundleDialog={handleOpenBundleDialog}\n menuItemProps={menuItemProps}\n />\n </StyledMenu>\n }\n popover={{\n __unstable_margins: [0, 0, 32, 0],\n constrainSize: true,\n fallbackPlacements: ['bottom-end'],\n placement: 'bottom-end',\n portal: true,\n // @ts-expect-error PopoverProps doesn't include `style`, but the Popover implementation accepts it via React.HTMLProps<HTMLDivElement>\n style: {overflow: 'hidden'} as React.CSSProperties,\n tone: 'default',\n zOffset: 3000,\n }}\n />\n {createBundleDialogOpen && (\n <CreateReleaseDialog onCancel={handleClose} onSubmit={handleClose} origin=\"structure\" />\n )}\n </>\n )\n}\n","import {Card} from '@sanity/ui'\nimport {type ComponentType} from 'react'\nimport {styled} from 'styled-components'\n\nimport {usePerspective} from '../../perspective/usePerspective'\nimport {useReleasesToolAvailable} from '../../schedules/hooks/useReleasesToolAvailable'\nimport {useWorkspace} from '../../studio/workspace'\nimport {ReleasesToolLink} from '../ReleasesToolLink'\nimport {type ReleasesNavMenuItemPropsGetter} from '../types'\nimport {CurrentGlobalPerspectiveLabel} from './currentGlobalPerspectiveLabel'\nimport {GlobalPerspectiveMenu} from './GlobalPerspectiveMenu'\n\nconst ReleasesNavContainer = styled(Card)`\n position: relative;\n display: flex;\n &:not([hidden]) {\n display: flex;\n }\n align-items: center;\n gap: 2px;\n padding: 2px;\n margin: -3px 0;\n\n /* The children in button is rendered inside a span, we need to absolutely position the dot for the error. */\n span:has(> [data-ui='error-status-icon']) {\n position: absolute;\n top: 6px;\n right: 6px;\n padding: 0;\n }\n\n a:hover,\n button:hover {\n position: relative;\n z-index: 2;\n }\n`\n\ninterface Props {\n withReleasesToolButton?: boolean\n menuItemProps?: ReleasesNavMenuItemPropsGetter\n border?: boolean\n}\n\n/**\n * @internal\n */\nexport const ReleasesNav: ComponentType<Props> = ({\n withReleasesToolButton,\n menuItemProps,\n border = true,\n}) => {\n const releasesToolAvailable = useReleasesToolAvailable()\n const isReleasesEnabled = !!useWorkspace().releases?.enabled\n const {selectedPerspective, selectedPerspectiveName} = usePerspective()\n return (\n <ReleasesNavContainer\n flex=\"none\"\n tone=\"inherit\"\n radius=\"full\"\n data-ui=\"ReleasesNav\"\n border={border}\n >\n {withReleasesToolButton && releasesToolAvailable && <ReleasesToolLink />}\n <CurrentGlobalPerspectiveLabel selectedPerspective={selectedPerspective} />\n <GlobalPerspectiveMenu\n selectedPerspectiveName={selectedPerspectiveName}\n areReleasesEnabled={releasesToolAvailable && isReleasesEnabled}\n menuItemProps={menuItemProps}\n />\n </ReleasesNavContainer>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { i as Dialog$1 } from "./ConfirmPopover-CD1rDyuk.js";
|
|
2
|
-
import { i as useClient } from "./studioClient-
|
|
3
|
-
import { _ as useResourceCache } from "./datastores-
|
|
2
|
+
import { i as useClient } from "./studioClient-CwMJwOTd.js";
|
|
3
|
+
import { _ as useResourceCache } from "./datastores-DpJ5Y313.js";
|
|
4
4
|
import { t as useTranslation } from "./useTranslation-Cqs6Itwv.js";
|
|
5
|
-
import { Yo as isCardinalityOneRelease, wo as useActiveReleases } from "./useBundleDocuments-
|
|
6
|
-
import { n as useFeatureEnabled, t as FEATURES } from "./useFeatureEnabled-
|
|
7
|
-
import { i as useUpsellData, t as UpsellDialog } from "./UpsellDialog-
|
|
8
|
-
import { t as useReleasesToolAvailable } from "./useReleasesToolAvailable-
|
|
9
|
-
import { t as ReleasesMetadataProvider } from "./ReleasesMetadataProvider-
|
|
5
|
+
import { Yo as isCardinalityOneRelease, wo as useActiveReleases } from "./useBundleDocuments-DvVAF6cf.js";
|
|
6
|
+
import { n as useFeatureEnabled, t as FEATURES } from "./useFeatureEnabled-4qCpV_mX.js";
|
|
7
|
+
import { i as useUpsellData, t as UpsellDialog } from "./UpsellDialog-DRhOCOce.js";
|
|
8
|
+
import { t as useReleasesToolAvailable } from "./useReleasesToolAvailable-DDuNc6HV.js";
|
|
9
|
+
import { t as ReleasesMetadataProvider } from "./ReleasesMetadataProvider-BWsmHWkh.js";
|
|
10
10
|
import { useState } from "react";
|
|
11
11
|
import { BehaviorSubject, catchError, firstValueFrom, map, of, shareReplay, switchMap, tap, timer } from "rxjs";
|
|
12
12
|
import { c } from "react/compiler-runtime";
|
|
@@ -261,4 +261,4 @@ function ReleasesStudioLayout(props) {
|
|
|
261
261
|
}
|
|
262
262
|
export { ReleasesStudioLayout };
|
|
263
263
|
|
|
264
|
-
//# sourceMappingURL=ReleasesStudioLayout-
|
|
264
|
+
//# sourceMappingURL=ReleasesStudioLayout-CtyE88nI.js.map
|