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":"TasksStudioActiveToolLayout-CHazNA61.js","names":["SanityDocument","useMemo","useState","MentionUserContext","useUserListWithPermissions","MentionUserProvider","props","$","_c","selectedDocument","setSelectedDocument","t0","documentValue","permission","mentionOptions","t1","value","t2","children","useContext","MentionUserContext","MentionUserContextValue","useMentionUser","context","Error","DEFAULT_STUDIO_CLIENT_OPTIONS","API_VERSION","apiVersion","CheckmarkCircleIcon","CircleIcon","TASK_STATUS","value","title","icon","UserIcon","User","AvatarSize","Text","getTheme_v2","css","styled","Tooltip","AvatarSkeleton","UserAvatar","useUser","AvatarRoot","div","$size","$border","$removeBg","props","theme","avatar","sizes","size","TasksUserAvatar","$","_c","user","t0","border","t1","undefined","loadedUser","loading","id","t2","Symbol","for","t3","t4","withTooltip","imageUrl","t5","color","t6","title","t7","t8","t9","displayName","UserIcon","Badge","Box","Container","Flex","Menu","MenuItem","Text","TextInput","VirtualList","deburr","ChangeEvent","KeyboardEvent","useCallback","useMemo","useRef","useState","styled","MenuButton","LoadingBlock","UserWithPermission","useTranslation","useMentionUser","tasksLocaleNamespace","TasksUserAvatar","SelectItemHandler","id","MentionUserMenuItem","props","$","_c","user","onSelect","pressed","t","t0","handleSelect","t1","granted","t2","undefined","t3","t4","displayName","t5","t6","t7","t8","StyledMenu","IGNORED_KEYS","NO_ASSIGNEE_OPTION","MentionsMenu","value","searchTerm","setSearchTerm","mentionOptions","inputRef","Symbol","for","data","concat","options","event","currentTarget","handleSearchChange","bb0","deburredSearchTerm","toLocaleLowerCase","deburredOptions","map","_temp","filter","option_0","option","searchName","includes","sort","a","b","matchA","startsWith","matchB","filtered","filteredOptions","renderItem","event_0","target","current","key","focus","handleKeyDown","loading","t9","t10","maxHeight","overflowY","paddingTop","t11","length","t12","AssigneeSelectionMenu","menuButton","placement","fallbackPlacements","portal","constrainSize","Badge","Card","Flex","Text","TextSkeleton","getTheme_v2","useCallback","useMemo","css","styled","set","StringInputProps","useTranslation","useMentionUser","tasksLocaleNamespace","TasksUserAvatar","AssigneeSelectionMenu","FocusableCard","props","theme","color","input","default","enabled","placeholder","AssigneeCreateFormField","$","_c","value","onChange","mentionOptions","t0","data","find","u","id","mentionedUser","t1","userId","onSelect","t","t2","bb0","loading","t3","Symbol","for","width","displayName","email","displayText","t4","t5","t6","t7","granted","t8","t9","Box","Text","ReactNode","styled","NormalText","NormalBlockProps","children","DescriptionInputBlock","props","$","_c","t0","RenderBlockFunction","DescriptionInputBlock","renderBlock","blockProps","children","PortableTextBlock","getTheme_v2","startTransition","useCallback","useEffect","useState","css","styled","CommentInput","set","ArrayFieldProps","useTranslation","useCurrentUser","useMentionUser","tasksLocaleNamespace","FormMode","renderBlock","DescriptionInputRoot","div","$mode","$minHeight","props","theme","verticalPadding","space","minHeight","Math","max","DescriptionInput","$","_c","value","_propValue","mode","inputProps","t0","onChange","currentUser","mentionOptions","t1","next","handleChange","rootRef","setRootRef","textBoxScrollHeight","setTextBoxScrollHeight","t2","Symbol","for","ref","textBox","querySelector","height","scrollHeight","setTextboxHeight","t3","ref_0","handleSetRootRef","t","t4","t5","t6","t7","t8","_temp","t9","getTheme_v2","css","styled","StringFieldProps","FieldWrapperRoot","div","props","theme","font","text","weights","regular","FieldWrapper","$","_c","t0","renderDefault","t1","LoadingBlock","WorkspaceLoader","ConfigErrorsScreen","$","_c","t0","Symbol","for","CurrentWorkspaceProvider","children","t1","CloseIcon","DocumentIcon","Box","Card","Flex","LayerProvider","Stack","Text","getTheme_v2","useCallback","useMemo","useState","RefAttributes","IntentLink","css","styled","Button","FormFieldHeaderText","set","unset","ObjectFieldProps","useSchema","useTranslation","useDocumentPresence","SearchPopover","SearchResultItemPreview","SearchProvider","useWorkspace","getPublishedId","getVersionFromId","tasksLocaleNamespace","FormMode","TaskTarget","CurrentWorkspaceProvider","getTargetValue","FieldWrapperRoot","EmptyReferenceRoot","props","theme","color","input","default","hovered","border","Placeholder","enabled","placeholder","TargetRoot","StyledIntentLink","Preview","$","_c","value","handleRemove","documentId","document","_ref","documentType","schema","t0","get","schemaType","documentPresence","t","t1","LinkComponent","linkProps","ref","rest","versionId","id","type","undefined","CardLink","t2","t3","t4","t5","content","t6","t7","TargetField","open","setOpen","dataset","projectId","mode","inputProps","_propValue","onChange","item","_id","_type","handleItemSelect","Symbol","for","handleOpenSearch","handleCloseSearch","event","key","handleKeyDown","t8","description","inputId","title","validation","t9","t10","t11","t12","t13","Path","getTheme_v2","ChangeEvent","useCallback","useEffect","useRef","css","styled","set","unset","PatchEvent","FormPatch","StringFieldProps","Root","div","props","theme","space","TitleInput","textarea","color","font","text","family","weights","semibold","sizes","fontSize","lineHeight","input","default","enabled","fg","placeholder","Title","$","_c","value","onChange","path","ref","t0","Symbol","for","current","style","height","scrollHeight","t1","t2","event","inputValue","currentTarget","replace","handleChange","t3","t4","TitleField","inputProps","schemaType","useCallback","useMemo","useCurrentUser","useAddonDataset","TaskCreatePayload","TaskDocument","TaskEditPayload","TaskOperations","create","task","Promise","edit","id","remove","useTaskOperations","$","_c","client","createAddonDataset","currentUser","t0","payload","Error","authorId","_type","Partial","newCreatedClient","created","created_0","handleCreate","t1","set","edited","patch","commit","handleEdit","t2","id_0","delete","handleRemove","t3","operations","useCallback","useState","useTaskOperations","RemoveTaskOptions","id","onError","message","onRemoved","RemoveTasksHookValue","removeStatus","showDialog","error","handleRemove","handleOpenDialog","handleCloseDialog","useRemoveTask","t0","$","_c","setRemoveStatus","setShowDialog","setError","operations","t1","run","remove","Promise","_temp","t2","e","Symbol","for","t3","t4","resolve","setTimeout","TrashIcon","useTelemetry","Box","Flex","Switch","Text","useToast","useCallback","useEffect","useState","useEffectEvent","Button","set","ObjectInputProps","useTranslation","TaskCreated","useTasksNavigation","useTasks","useRemoveTask","tasksLocaleNamespace","TaskDocument","getMentionedUsers","getTaskSubscribers","task","subscribers","description","forEach","user","includes","push","assignedTo","FormCreate","props","$","_c","creating","setCreating","onChange","setViewMode","setActiveTab","toast","telemetry","createMore","setCreateMore","t0","Symbol","for","_temp","handleCreateMore","value","t1","type","onRemove","t2","_id","id","onRemoved","handleRemove","removeStatus","t","data","t3","t4","find","savedTask","log","closable","status","title","handleCreatingSuccess","t5","createdByUser","t6","t7","t8","handleCreatingTimeout","t9","timeoutId","setTimeout","clearTimeout","t10","t11","Date","toISOString","handleCreate","t12","renderDefault","t13","_rev","content","t14","t15","t16","t17","t18","t19","t20","t21","p","TaskDocument","FieldChange","FIELDS_TO_GROUP","GROUP_TIME","groupChanges","changes","groupedChanges","change","lastChangeProcessed","length","push","includes","field","author","lastChangeDate","Date","timestamp","changeDate","diff","Math","abs","getTime","to","TransactionLogEventWithEffects","applyPatch","TaskDocument","groupChanges","FieldChange","field","from","to","timestamp","author","omitRev","document","_rev","doc","trackFieldChanges","newestDocument","transactions","fieldsToTrack","Omit","currentDocument","changes","previousDocument","transaction","effects","documentId","documentIDs","effect","revert","forEach","push","changesSortedByTimestamp","sort","a","b","localeCompare","createdByUserIndex","findIndex","change","slice","useCallback","useEffect","useState","useEffectEvent","useClient","getTransactionsLogs","getPublishedId","FieldChange","trackFieldChanges","API_VERSION","TaskDocument","useActivityLog","task","$","_c","t0","Symbol","for","changes","setChanges","t1","apiVersion","client","t2","_id","t3","publishedId","t4","newestTaskDocument","transactions","tag","effectFormat","reverse","fieldsToTrack","parsedChanges","t5","error","console","fetchAndParse","_rev","handleFetchAndParse","t6","t7","t8","CalendarIcon","CircleIcon","EditIcon","LinkIcon","UserIcon","TextSkeleton","IntentLink","styled","useDateTimeFormat","UseDateTimeFormatOptions","RelativeTimeOptions","useRelativeTime","useSchema","usePerspective","useUser","TASK_STATUS","useDocumentPreviewValues","TaskTarget","FieldChange","DATE_FORMAT_OPTIONS","month","day","minute","hour","second","RELATIVE_TIME_OPTIONS","minimal","useTemporalPhrase","Strong","strong","NoWrap","span","useUpdatedTimeAgo","timestamp","$","_c","date","Date","dateFormatter","formattedDate","format","updatedTimeAgo","t0","timeAgo","UserName","userId","user","isLoading","t1","displayName","width","DUE_BY_DATE_OPTIONS","timeZone","DueByChange","dueBy","LinkWrapper","TargetContentChange","target","schema","documentId","document","_ref","documentType","documentSchema","get","perspectiveStack","selectedVariantName","variant","value","t2","Symbol","for","id","type","t3","title","t4","getChangeDetails","activity","text","icon","React","JSX","Element","changeTo","field","statusTitle","find","s","to","undefined","from","Box","Flex","Text","memo","Tooltip","getChangeDetails","NoWrap","UserName","useUpdatedTimeAgo","FieldChange","EditedAtProps","activity","EditedAt","props","$","_c","formattedDate","timeAgo","timestamp","t0","icon","text","changeTo","t1","t2","author","t3","t4","t5","t6","prevProps","nextProps","Box","Flex","styled","TasksUserAvatar","ActivityChildrenRoot","ActivityItemChildrenContainer","div","ActivityItemProps","userId","children","React","ReactNode","avatarPaddingTop","ActivityItem","t0","$","_c","t1","undefined","t2","id","t3","t4","t5","Card","useCallback","useMemo","useRef","useState","CommentInput","CommentInputHandle","CommentInputProps","hasCommentMessageValue","useTranslation","useTasksEnabled","tasksLocaleNamespace","ActivityItem","TasksCommentActivityInputProps","currentUser","mentionOptions","onSubmit","message","TasksActivityCommentInput","props","$","_c","mode","value","setValue","editorRef","t0","hasValue","t1","Symbol","for","nextValue","handleChange","t2","handleSubmit","t3","current","discardDialogController","close","handleDiscardCancel","t4","handleDiscardConfirm","t5","e","key","preventDefault","stopPropagation","open","handleKeyDown","t","t6","t7","t8","t9","id","getTheme_v2","css","styled","CommentsListItem","CommentsListItemProps","useTasksEnabled","ActivityItem","COMMENTS_LIST_ITEM_AVATAR_CONFIG","parentCommentAvatar","threadCommentsAvatar","replyAvatar","avatarSize","TasksActivityCommentItemProps","Omit","CommentListItemRoot","div","props","theme","space","TasksActivityCommentItem","$","_c","parentComment","mode","t0","t1","t2","authorId","Flex","Text","TextSkeleton","memo","styled","Tooltip","useTranslation","useUser","tasksLocaleNamespace","NoWrap","useUpdatedTimeAgo","ActivityItem","UserSkeleton","TasksActivityCreatedAtProps","createdAt","authorId","TasksActivityCreatedAt","props","$","_c","user","loading","timeAgo","formattedDate","t","t0","Symbol","for","fontWeight","t1","displayName","t2","t3","t4","t5","t6","t7","prevProps","nextProps","Path","AvatarStack","Flex","AnimatePresence","motion","useCallback","useMemo","Button","set","PatchEvent","FormPatch","TaskDocument","TasksUserAvatar","TasksSubscriberProps","value","path","onChange","patch","currentUserId","TasksSubscribers","props","$","_c","userIsSubscribed","subscribers","includes","buttonText","t0","concat","filter","subscriberId","handleToggleSubscribe","t1","t2","length","t3","EMPTY_ARRAY","TasksSubscriberAvatarsProps","subscriberIds","TasksSubscriberAvatars","subscriberIdsProp","Boolean","map","_temp","opacity","x","scale","transition","type","visualDuration","id","Path","Box","Flex","Stack","Text","uuid","AnimatePresence","motion","Variants","useMemo","useState","styled","CommentDeleteDialog","CommentInputProps","useComments","CommentBaseCreatePayload","CommentCreatePayload","CommentReactionOption","CommentThreadItem","CommentUpdatePayload","LoadingBlock","set","PatchEvent","FormPatch","useTranslation","useCurrentUser","useWorkspace","TASKS_SELECTED_TASK_SEARCH_PARAM","TASKS_SIDEBAR_SEARCH_PARAM","TASKS_VIEW_MODE_SEARCH_PARAM","tasksLocaleNamespace","TaskDocument","getMentionedUsers","FieldChange","EditedAt","TasksActivityCommentInput","TasksActivityCommentItem","TasksActivityCreatedAt","TasksSubscribers","EMPTY_ARRAY","VARIANTS","hidden","opacity","x","visible","MotionStack","create","TasksActivityLogProps","onChange","patch","path","value","activityData","Activity","_type","payload","timestamp","TasksActivityLog","props","$","_c","t0","t1","undefined","currentUser","title","workspaceTitle","basePath","name","workspaceName","comments","mentionOptions","operation","getComment","commentToDeleteId","setCommentToDeleteId","commentDeleteError","setCommentDeleteError","commentDeleteLoading","setCommentDeleteLoading","loading","taskComments","data","open","t2","_id","subscribers","message","commentId","studioUrl","URL","window","location","origin","searchParams","mentionedUsers","Array","from","Set","documentTitle","url","toString","handleGetNotificationValue","t3","message_0","commentId_0","notification","nextComment","id","type","parentCommentId","reactions","status","threadId","context","handleCommentCreate","t4","nextComment_0","commentId_1","notification_0","handleCommentReply","t5","comment","notification_1","handleCommentCreateRetry","t6","id_0","reaction","react","handleCommentReact","t7","Symbol","for","id_1","handleDeleteCommentStart","t8","handleDeleteCommentCancel","t9","id_2","remove","t10","err","handleDeleteCommentConfirm","id_3","next","update","handleCommentEdit","t11","taskActivity","map","_temp","commentsActivity","_temp2","concat","sort","_temp3","activity","t","t12","t13","c","parentComment","find","parent","isParent","Boolean","replies","length","commentToDeleteIsParent","t14","t15","t16","t17","t18","t19","authorId","createdByUser","item_0","item","t20","t21","t22","a","b","Date","getTime","comment_0","const","_createdAt","Path","Badge","Box","Button","Flex","Text","TextSkeleton","useCallback","useMemo","styled","Tooltip","useFormValue","set","PatchEvent","FormPatch","useTranslation","useMentionUser","tasksLocaleNamespace","TasksUserAvatar","AssigneeSelectionMenu","StyledButton","AssigneeEditFormFieldProps","value","path","onChange","patch","AssigneeEditFormField","props","$","_c","t0","Symbol","for","subscribers","mentionOptions","t1","data","find","u","id","mentionedUser","t","t2","userId","includes","onSelect","t3","bb0","loading","t4","width","displayName","email","displayText","t5","t6","t7","t8","granted","t9","t10","t11","CalendarIcon","Path","Box","Flex","useClickOutsideEvent","DEFAULT_DATE_FORMAT","format","parse","KeyboardEvent","useCallback","useMemo","useRef","useState","ReactFocusLock","Button","Popover","CalendarLabels","DatePicker","getCalendarLabels","set","unset","PatchEvent","FormPatch","useDateTimeFormat","UseDateTimeFormatOptions","useTranslation","SCHEDULED_PUBLISHING_TIME_ZONE_SCOPE","tasksLocaleNamespace","serialize","date","Date","deserialize","value","DUE_BY_DATE_OPTIONS","dateStyle","timeZone","SHORT_DATE_OPTIONS","month","day","DateEditFormField","props","$","_c","onChange","path","t","coreT","pickerOpen","setPickerOpen","popoverRef","buttonRef","longDateFormatter","shortDateFormatter","t0","bb0","t1","Symbol","for","short","full","dueFormatted","t2","shortDueFormatted","t3","dueByeDisplayValue","current","e","key","handleKeyUp","t4","_temp","handleClick","t5","calendarLabels","t6","nextDate","handleChange","deserializedValue","handleDeactivation","t7","t8","focus","getFullYear","dueDateIsThisYear","t9","t10","t11","t12","t13","t14","content","t15","t16","p","CheckmarkIcon","CircleIcon","useTelemetry","Path","TitledListValue","Menu","useCallback","RefAttributes","Button","MenuButton","MenuItem","set","PatchEvent","FormPatch","useTranslation","TaskStatusChanged","TASK_STATUS","tasksLocaleNamespace","StatusMenuButton","props","$","_c","t","options","ref","rest","value","t0","t1","option","find","selectedOption","status","icon","t2","t3","content","t4","title","t5","StatusSelectorProps","path","onChange","patch","StatusSelector","telemetry","next","log","from","to","handleStatusChange","isSelected","map","Stack","Text","Dialog","useTranslation","useRemoveTask","tasksLocaleNamespace","RemoveTaskDialog","props","$","_c","handleCloseDialog","handleRemove","removeStatus","showDialog","t","t0","t1","t2","text","onClick","t3","t4","t5","tone","loading","t6","cancelButton","confirmButton","t7","t8","t9","CopyIcon","LinkIcon","TrashIcon","useTelemetry","PortableTextBlock","Box","Card","Flex","Menu","MenuDivider","Stack","getTheme_v2","useCallback","useMemo","css","styled","MenuButton","MenuItem","TooltipDelayGroupProvider","CommentsProvider","ContextMenuButton","LoadingBlock","set","PatchEvent","FormPatch","ObjectInputProps","TransformPatches","useTranslation","useCurrentUser","TaskDuplicated","TaskRemoved","useTasksEnabled","useTasksNavigation","useActivityLog","useRemoveTask","tasksLocaleNamespace","TaskDocument","TasksActivityLog","CurrentWorkspaceProvider","AssigneeEditFormField","DateEditFormField","StatusSelector","Title","RemoveTaskDialog","getMentionedUsers","FirstRow","props","theme","space","FormActionsMenu","t0","$","_c","id","value","setViewMode","handleCopyLinkToTask","mode","telemetry","t1","type","log","onTaskRemoved","t2","onRemoved","removeTask","t3","duplicateTaskValues","duplicateTask","t","t4","Symbol","for","t5","placement","fallbackPlacements","t6","t7","content","undefined","t8","t9","t10","t11","t12","t13","t14","handleOpenDialog","t15","t16","t17","FormEditInner","schemaType","fields","find","_temp","statusField","currentUser","activityData","changes","subscribers","patch","onChange","includes","handleChangeAndSubscribe","Error","_id","title","status","options","list","assignedTo","dueBy","t18","t19","renderDefault","t20","t21","t22","t23","f","name","FormEdit","description","patches","some","_temp2","_temp3","newSubscribers","changeAssigneePatch","_temp4","push","changedDescriptionPatch","_temp5","prevMentionedUser","newDescription","newMentionedUser","diff","filter","user","forEach","user_0","length","transformPatches","patch_2","path","patch_1","patch_0","isImageSource","createImageUrlBuilder","useCallback","useEffect","useMemo","deepEquals","useRouterState","isDev","useFormValue","set","ObjectFieldProps","useClient","usePerspective","useWorkspace","DEFAULT_STUDIO_CLIENT_OPTIONS","TASKS_SELECTED_TASK_SEARCH_PARAM","TASKS_SIDEBAR_SEARCH_PARAM","TASKS_VIEW_MODE_SEARCH_PARAM","useDocumentPreviewValues","TaskContext","TaskDocument","CurrentWorkspaceProvider","getTaskURL","taskId","basePath","toolName","path","window","location","origin","currentUrl","URL","searchParams","toString","TasksNotificationTargetInner","props","$","_c","inputProps","onChange","activeToolName","_temp","t0","Symbol","for","target","_id","context","_rev","title","workspaceTitle","name","workspaceName","client","t1","imageBuilder","documentId","document","_ref","documentType","perspectiveStack","selectedVariantName","t2","variant","isLoading","previewValuesLoading","value","targetContentTitle","t3","media","image","width","height","url","imageUrl","notification","contextUrl","t4","studioUrl","t5","targetContentImageUrl","notificationTarget","t6","t7","routerState","tool","undefined","TasksNotificationTarget","defineField","defineType","ArrayFieldProps","ObjectFieldProps","TASK_STATUS","FormMode","AssigneeCreateFormField","DescriptionInput","FieldWrapper","TargetField","TitleField","FormCreate","FormEdit","TasksNotificationTarget","targetContentField","mode","type","name","title","components","field","props","fields","dataset","weak","studioUrl","id","to","preview","select","hidden","descriptionInputField","of","marks","annotations","styles","value","lists","taskSchema","liveEdit","input","placeholder","options","list","map","s","useEffect","useMemo","LoadingBlock","prepareConfig","Config","useClient","ResourceCacheProvider","useAddonDataset","SourceProvider","useSource","WorkspaceProvider","useWorkspaceLoader","API_VERSION","FormMode","taskSchema","TasksAddonWorkspaceProviderInner","t0","$","_c","children","mode","addonDataset","t1","Symbol","for","apiVersion","client","t2","config","apiHost","basePath","source","t3","t4","projectId","t5","t6","types","t7","dataset","name","schema","addonDatasetConfig","t8","workspaces","addonWorkspace","t9","t10","unstable_sources","t11","TasksAddonWorkspaceProvider","props","addonDatasetClient","ready","createAddonDataset","SanityDocument","SanityDocumentLike","Box","rem","getTheme_v2","motion","Variants","useEffect","useMemo","useState","styled","LoadingBlock","createPatchChannel","FormBuilder","useDocumentForm","PerspectiveProvider","useCurrentUser","useWorkspace","MentionUserProvider","useMentionUser","useTasksNavigation","useTasks","TaskDocument","TaskTarget","TasksAddonWorkspaceProvider","getTargetValue","VARIANTS","hidden","opacity","visible","transition","duration","delay","FormBuilderRoot","div","props","theme","space","TaskDocumentInitialValue","Partial","TasksFormBuilderInner","t0","$","_c","documentId","initialValue","patchChannel","_temp","t1","loading","value","error","undefined","t2","documentType","formState","onChange","onPathOpen","onFocus","onBlur","onSetActiveFieldGroup","onSetCollapsedFieldSet","onSetCollapsedPath","collapsedFieldSets","ready","collapsedPaths","schemaType","isLoading","setSelectedDocument","target","targetId","document","_ref","targetType","t3","t4","documentValue","_id","_type","t5","focusPath","changed","focused","groups","validation","members","presence","TasksFormBuilder","currentUser","activeDocument","dataset","projectId","state","selectedTask","viewMode","duplicateTaskValues","bb0","title","id","createdByUser","authorId","status","subscribers","Symbol","for","AddIcon","Box","Flex","Stack","Text","useCallback","styled","Button","useTranslation","useTasksEnabled","SidebarTabsIds","useTasksNavigation","useTasks","tasksLocaleNamespace","TaskStatus","HEADING_BY_STATUS","Record","heading","text","open","assigned","document","subscribed","closed","EmptyStatusListState","t0","$","_c","status","state","t1","activeTabId","t","t2","t3","t4","t5","t6","EMPTY_TASK_LIST","noActiveDocument","Root","div","AnimatedText","EmptyTasksListState","activeDocument","mode","setViewMode","key","type","handleTaskCreate","t7","DocumentIcon","Flex","Text","TextSkeleton","getTheme_v2","useMemo","RefAttributes","IntentLink","styled","useSchema","usePerspective","useDocumentPreviewValues","StyledIntentLink","props","theme","color","input","default","enabled","border","DocumentPreview","t0","$","_c","documentId","documentType","schema","documentSchema","get","perspectiveStack","selectedVariantName","t1","variant","isLoading","value","t2","LinkComponent","linkProps","ref","rest","id","type","Link","t3","Symbol","for","t4","title","maxWidth","Checkbox","Flex","Spinner","useCallback","useState","useTaskOperations","TasksStatusProps","documentId","status","TasksStatus","props","$","_c","operations","checkboxValue","setCheckboxValue","isLoading","setIsLoading","t0","event","isChecked","target","checked","edit","t1","error","console","handleCheckboxChange","height","width","marginLeft","marginRight","marginTop","Box","Button","UIButton","Card","Flex","Stack","Text","isThisISOWeek","isToday","useMemo","styled","Tooltip","useDateTimeFormat","UseDateTimeFormatOptions","TaskDocument","TasksUserAvatar","DocumentPreview","TasksStatus","TasksListItemProps","Pick","documentId","onSelect","TitleButton","TaskDetailsRoot","getTargetDocumentMeta","target","document","_ref","undefined","_type","documentType","FULL_DATE_FORMAT_OPTIONS","dateStyle","timeZone","MONTH_AND_DAY_FORMAT_OPTIONS","month","day","DAY_FORMAT_OPTIONS","weekday","TaskDueDate","t0","$","_c","dueBy","fullDateFormatter","monthAndDayFormatter","dayFormatter","t1","t2","t3","t4","t5","date","Date","format","t6","fullDate","monthAndDay","isDueByToday","isDueThisWeek","dateOptions","t7","t8","t9","t10","t11","TasksListItem","props","assignedTo","title","status","targetDocument","id","ChevronDownIcon","Box","Flex","MenuDivider","Stack","Text","Fragment","useMemo","styled","TASK_STATUS","TaskDocument","TaskStatus","EmptyStatusListState","EmptyTasksListState","TasksListItem","EMPTY_ARRAY","getLabelForStatus","status","statusConfig","find","item","value","title","DetailsFlex","SummaryBox","TaskListProps","tasks","onTaskSelect","id","TaskList","props","$","_c","t0","t1","t2","t3","Symbol","for","t4","t5","length","map","task","index","showDivider","_id","dueBy","assignedTo","target","t6","t7","TasksListProps","items","TasksList","undefined","reduce","_temp","tasksByStatus","hasOpenTasks","open","hasClosedTasks","closed","acc","push","Box","Container","UpsellPanel","useTasksUpsell","TasksUpsellPanel","$","_c","upsellData","data","telemetryLogs","t0","panelPrimaryClicked","onPrimaryClick","panelSecondaryClicked","onSecondaryClick","t1","TabList","Text","useCallback","useMemo","CSSProperties","Tab","useTranslation","SidebarTabsIds","tasksLocaleNamespace","LIST_STYLES","marginLeft","justifyContent","display","TasksListTabsProps","activeTabId","onChange","id","TasksListTab","label","TasksListTabs","t0","$","_c","t","t1","t2","t3","t4","t5","t6","t7","tabs","t8","tab","handleTabChange","t9","map","tab_0","ChevronLeftIcon","ChevronRightIcon","Box","Flex","Text","getTheme_v2","useCallback","styled","Button","Tooltip","TooltipDelayGroupProvider","useTranslation","useTasksNavigation","tasksLocaleNamespace","TaskDocument","TasksActiveTabNavigationProps","items","Divider","div","props","theme","color","input","default","enabled","border","TasksActiveTabNavigation","$","_c","allItems","state","setViewMode","selectedTask","t0","filter","_temp","t1","item","_id","findIndex","currentItemIndex","prevTaskId","length","type","id","goToPreviousTask","t2","nextTaskId","goToNextTask","t","t_0","t3","t4","content","t5","t6","t7","t8","t9","t10","t11","t12","t13","Symbol","for","t14","status","CheckmarkIcon","ChevronDownIcon","Box","Menu","MenuDivider","Text","useCallback","styled","Button","MenuButton","MenuButtonProps","MenuItem","useTranslation","useCurrentUser","EMPTY_ARRAY","useTasksNavigation","useTasks","tasksLocaleNamespace","TaskDocument","MENU_BUTTON_POPOVER_PROPS","constrainSize","fallbackPlacements","placement","portal","StyledMenu","TasksDraftsMenuItemProps","isSelected","item","onSelect","id","TasksDraftsMenuItem","props","$","_c","t0","_id","handleClick","iconRight","undefined","text","title","t1","TasksHeaderDraftsMenu","data","state","setViewMode","viewMode","selectedTask","currentUser","draftTasks","filter","task","isAuthoredByUser","authorId","isDraft","createdByUser","hasEdits","_updatedAt","_createdAt","isNotTheTaskBeingCreated","type","handleSelectTask","t","length","T0","t2","t3","T1","t4","t5","t6","Symbol","for","t7","map","task_0","t8","t9","AddIcon","ChevronRightIcon","CloseIcon","Box","Button","UIButton","Flex","Text","useCallback","useTranslation","useTasksEnabled","useTasksNavigation","tasksLocaleNamespace","TaskDocument","TasksActiveTabNavigation","TasksHeaderDraftsMenu","TasksSidebarHeaderProps","items","TasksSidebarHeader","props","$","_c","allItems","mode","state","setViewMode","handleCloseTasks","viewMode","activeTabId","t0","type","handleTaskCreate","t1","handleGoBack","t","t2","textTransform","t3","t4","t5","content","undefined","t6","t7","t8","t9","t10","Card","Flex","Spinner","Stack","motion","useCallback","useMemo","styled","useCurrentUser","useTasksEnabled","useTasksNavigation","useTasks","TasksFormBuilder","getTargetDocumentId","TasksList","TasksUpsellPanel","TasksListTabs","TasksSidebarHeader","MotionCard","create","RootCard","HeaderStack","ContentFlex","TasksStudioSidebarInner","$","_c","mode","activeDocument","data","isLoading","state","setActiveTab","setViewMode","activeTabId","viewMode","selectedTask","currentUser","t0","id","type","onTaskSelect","t1","t2","item","createdByUser","assignedTo","subscribers","includes","documentId","target","filter","filteredList","bb0","t3","Symbol","for","t4","t5","content","opacity","transition","duration","t6","t7","t8","t9","TasksStudioSidebar","enabled","Box","Flex","Layer","useMediaIndex","AnimatePresence","css","styled","ActiveToolLayoutProps","TasksStudioSidebar","useTasksEnabled","useTasksNavigation","FULLSCREEN_MEDIA_INDEX","POSITION_ABSOLUTE_MEDIA_INDEX","RootFlex","theme","media","sanity","SidebarMotionLayer","TasksStudioActiveToolLayoutInner","props","$","_c","mediaIndex","state","t0","isOpen","scrollLock","t1","t2","renderDefault","t3","t4","t5","t6","TasksStudioActiveToolLayout","enabled"],"sources":["../src/core/tasks/context/mentionUser/MentionUserProvider.tsx","../src/core/tasks/context/mentionUser/useMentionUser.ts","../src/core/tasks/constants/API_VERSION.ts","../src/core/tasks/constants/TaskStatus.tsx","../src/core/tasks/components/TasksUserAvatar.tsx","../src/core/tasks/components/form/fields/assignee/AssigneeSelectionMenu.tsx","../src/core/tasks/components/form/fields/assignee/AssigneeCreateFormField.tsx","../src/core/tasks/components/form/fields/descriptionInput/blocks/DescriptionInputBlock.tsx","../src/core/tasks/components/form/fields/descriptionInput/render/renderBlock.tsx","../src/core/tasks/components/form/fields/descriptionInput/DescriptionInput.tsx","../src/core/tasks/components/form/fields/FieldWrapper.tsx","../src/core/tasks/components/form/CurrentWorkspaceProvider.tsx","../src/core/tasks/components/form/fields/TargetField.tsx","../src/core/tasks/components/form/fields/TitleField.tsx","../src/core/tasks/hooks/useTaskOperations.ts","../src/core/tasks/hooks/useRemoveTask.ts","../src/core/tasks/components/form/tasksFormBuilder/FormCreate.tsx","../src/core/tasks/components/activity/helpers/groupChanges.ts","../src/core/tasks/components/activity/helpers/parseTransactions.ts","../src/core/tasks/hooks/useActivityLog.ts","../src/core/tasks/components/activity/helpers/index.tsx","../src/core/tasks/components/activity/TaskActivityEditedAt.tsx","../src/core/tasks/components/activity/TasksActivityItem.tsx","../src/core/tasks/components/activity/TasksActivityCommentInput.tsx","../src/core/tasks/components/activity/TasksActivityCommentItem.tsx","../src/core/tasks/components/activity/TasksActivityCreatedAt.tsx","../src/core/tasks/components/activity/TasksSubscribers.tsx","../src/core/tasks/components/activity/TasksActivityLog.tsx","../src/core/tasks/components/form/fields/assignee/AssigneeEditFormField.tsx","../src/core/tasks/components/form/fields/DateEditFormField.tsx","../src/core/tasks/components/form/fields/StatusSelector.tsx","../src/core/tasks/components/form/RemoveTaskDialog.tsx","../src/core/tasks/components/form/tasksFormBuilder/FormEdit.tsx","../src/core/tasks/components/form/tasksFormBuilder/TasksNotificationTarget.tsx","../src/core/tasks/components/form/addonWorkspace/taskSchema.tsx","../src/core/tasks/components/form/addonWorkspace/TasksAddOnWorkspaceProvider.tsx","../src/core/tasks/components/form/tasksFormBuilder/TasksFormBuilder.tsx","../src/core/tasks/components/list/EmptyStates.tsx","../src/core/tasks/components/list/DocumentPreview.tsx","../src/core/tasks/components/list/TasksStatus.tsx","../src/core/tasks/components/list/TasksListItem.tsx","../src/core/tasks/components/list/TasksList.tsx","../src/core/tasks/components/upsell/TasksUpsellPanel.tsx","../src/core/tasks/components/sidebar/TasksListTabs.tsx","../src/core/tasks/components/sidebar/TasksActiveTabNavigation.tsx","../src/core/tasks/components/sidebar/TasksHeaderDraftsMenu.tsx","../src/core/tasks/components/sidebar/TasksSidebarHeader.tsx","../src/core/tasks/components/sidebar/TasksSidebar.tsx","../src/core/tasks/plugin/TasksStudioActiveToolLayout.tsx"],"sourcesContent":["import {type SanityDocument} from '@sanity/client'\nimport {useMemo, useState} from 'react'\nimport {MentionUserContext} from 'sanity/_singletons'\n\nimport {useUserListWithPermissions} from '../../../hooks/useUserListWithPermissions'\n\n/**\n * @internal\n */\nexport function MentionUserProvider(props: {children: React.ReactNode}) {\n const [selectedDocument, setSelectedDocument] = useState<SanityDocument | null>(null)\n const mentionOptions = useUserListWithPermissions({\n documentValue: selectedDocument,\n permission: 'read',\n })\n\n const value = useMemo(\n () => ({\n mentionOptions,\n selectedDocument,\n setSelectedDocument,\n }),\n [mentionOptions, selectedDocument, setSelectedDocument],\n )\n\n return <MentionUserContext.Provider value={value}>{props.children}</MentionUserContext.Provider>\n}\n","import {useContext} from 'react'\nimport {MentionUserContext} from 'sanity/_singletons'\n\nimport {type MentionUserContextValue} from './types'\n\n/**\n * @internal\n */\nexport function useMentionUser(): MentionUserContextValue {\n const context = useContext(MentionUserContext)\n if (!context) {\n throw new Error('useMentionUser must be used within a MentionUserProvider')\n }\n return context\n}\n","import {DEFAULT_STUDIO_CLIENT_OPTIONS} from '../../studioClient'\n\nexport const API_VERSION = DEFAULT_STUDIO_CLIENT_OPTIONS.apiVersion\n","import {CheckmarkCircleIcon} from '@sanity/icons/CheckmarkCircle'\nimport {CircleIcon} from '@sanity/icons/Circle'\n\nexport const TASK_STATUS = [\n {value: 'open', title: 'To Do', icon: <CircleIcon />},\n {value: 'closed', title: 'Done', icon: <CheckmarkCircleIcon />},\n]\n","import {UserIcon} from '@sanity/icons/User'\nimport {type User} from '@sanity/types'\nimport {type AvatarSize, Text} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {css, styled} from 'styled-components'\n\nimport {Tooltip} from '../../../ui-components/tooltip/Tooltip'\nimport {AvatarSkeleton, UserAvatar} from '../../components/userAvatar/UserAvatar'\nimport {useUser} from '../../store/user/hooks'\n\nconst AvatarRoot = styled.div<{$size: AvatarSize; $border?: boolean; $removeBg?: boolean}>(\n (props) => {\n const theme = getTheme_v2(props.theme)\n return css`\n min-height: ${theme.avatar.sizes[props.$size]?.size}px;\n min-width: ${theme.avatar.sizes[props.$size]?.size}px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n ${props.$border ? 'box-shadow: inset 0 0 0 1px var(--card-border-color);' : ''};\n ${props.$removeBg ? '--card-avatar-gray-bg-color: transparent;' : ''}\n `\n },\n)\n\nexport function TasksUserAvatar(props: {\n user?: User\n size?: AvatarSize\n border?: boolean\n withTooltip?: boolean\n}) {\n const {user, size = 0, border = true} = props\n const [loadedUser, loading] = useUser(user?.id || '')\n\n if (loading) {\n return <AvatarSkeleton $size={size} animated />\n }\n\n if (!user || !loadedUser) {\n return (\n <AvatarRoot $size={size} $border={border}>\n <Text size={size}>\n <UserIcon />\n </Text>\n </AvatarRoot>\n )\n }\n\n return (\n <Tooltip\n content={loadedUser.displayName}\n disabled={!props.withTooltip}\n portal\n fallbackPlacements={['top', 'top-start']}\n placement=\"top-end\"\n >\n <AvatarRoot $size={size} $removeBg={!!loadedUser?.imageUrl}>\n <UserAvatar\n user={loadedUser}\n size={size}\n {...(loadedUser?.imageUrl ? {color: undefined} : {})}\n {...(props.withTooltip ? {title: null} : {})}\n />\n </AvatarRoot>\n </Tooltip>\n )\n}\n","import {UserIcon} from '@sanity/icons/User'\nimport {\n Badge,\n Box,\n Container,\n Flex,\n Menu,\n // oxlint-disable-next-line no-restricted-imports\n MenuItem,\n Text,\n TextInput,\n VirtualList,\n} from '@sanity/ui'\nimport deburr from 'lodash-es/deburr.js'\nimport {type ChangeEvent, type KeyboardEvent, useCallback, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {MenuButton} from '../../../../../../ui-components/menuButton/MenuButton'\nimport {LoadingBlock} from '../../../../../components/loadingBlock/LoadingBlock'\nimport {type UserWithPermission} from '../../../../../hooks/useUserListWithPermissions'\nimport {useTranslation} from '../../../../../i18n/hooks/useTranslation'\nimport {useMentionUser} from '../../../../context/mentionUser/useMentionUser'\nimport {tasksLocaleNamespace} from '../../../../i18n'\nimport {TasksUserAvatar} from '../../../TasksUserAvatar'\n\ntype SelectItemHandler = (id: string) => void\n\nfunction MentionUserMenuItem(props: {\n user: UserWithPermission\n onSelect: SelectItemHandler\n pressed: boolean\n}) {\n const {user, onSelect, pressed} = props\n const {t} = useTranslation(tasksLocaleNamespace)\n const handleSelect = useCallback(() => onSelect(user.id), [user, onSelect])\n return (\n <MenuItem onClick={handleSelect} padding={1} disabled={!user.granted} pressed={pressed}>\n <Flex align=\"center\" gap={3}>\n <Flex align=\"center\" gap={2} flex={1}>\n <TasksUserAvatar user={user.id ? user : undefined} size={1} />\n <Text size={1} textOverflow=\"ellipsis\" title={user.displayName}>\n {user.displayName}\n </Text>\n </Flex>\n\n {!user.granted && <Badge fontSize={1}>{t('form.input.assignee.unauthorized.text')}</Badge>}\n </Flex>\n </MenuItem>\n )\n}\n\nconst StyledMenu = styled(Menu)`\n width: 308px;\n border-radius: 3px;\n`\n\nconst IGNORED_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\nconst NO_ASSIGNEE_OPTION: UserWithPermission = {\n id: '',\n displayName: 'No assignee',\n granted: true,\n}\nfunction MentionsMenu({onSelect, value = ''}: {onSelect: SelectItemHandler; value?: string}) {\n const [searchTerm, setSearchTerm] = useState<string>('')\n const {mentionOptions} = useMentionUser()\n const inputRef = useRef<HTMLInputElement | null>(null)\n const options = [NO_ASSIGNEE_OPTION].concat(mentionOptions.data || [])\n const handleSearchChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n setSearchTerm(event.currentTarget.value)\n }, [])\n\n const filteredOptions = useMemo(() => {\n if (!searchTerm) return options || []\n\n // We deburr the search term and the display names so that when searching\n // for e.g \"bjorge\" we also get results for \"bjørge\"\n const deburredSearchTerm = deburr(searchTerm).toLocaleLowerCase()\n\n const deburredOptions = options?.map((option) => ({\n ...option,\n searchName: deburr(option.displayName || '').toLocaleLowerCase(),\n }))\n\n const filtered = deburredOptions\n ?.filter((option) => {\n return option?.searchName.includes(deburredSearchTerm)\n })\n // Sort by whether the displayName starts with the search term to get more relevant results first\n ?.sort((a, b) => {\n const matchA = a.searchName.startsWith(deburredSearchTerm)\n const matchB = b.searchName.startsWith(deburredSearchTerm)\n\n if (matchA && !matchB) return -1\n if (!matchA && matchB) return 1\n\n return 0\n })\n\n return filtered || []\n }, [options, searchTerm])\n\n const renderItem = useCallback(\n (user: UserWithPermission) => {\n return (\n <MentionUserMenuItem\n key={user.id}\n user={user}\n onSelect={onSelect}\n pressed={user.id === value}\n />\n )\n },\n [onSelect, value],\n )\n const handleKeyDown = useCallback((event: KeyboardEvent<HTMLElement>) => {\n // If target is input don't do anything\n if (event.target === inputRef.current) {\n return\n }\n\n if (!IGNORED_KEYS.includes(event.key)) {\n inputRef.current?.focus()\n }\n }, [])\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n if (mentionOptions.loading) {\n return (\n <Container width={0}>\n <LoadingBlock showText />\n </Container>\n )\n }\n\n return (\n <div onKeyDown={handleKeyDown}>\n <TextInput\n placeholder={t('form.input.assignee.search.placeholder')}\n autoFocus\n border={false}\n onChange={handleSearchChange}\n value={searchTerm}\n fontSize={1}\n icon={UserIcon}\n ref={inputRef}\n name=\"assigneeSearch\"\n autoComplete=\"off\"\n />\n\n <div style={{maxHeight: '320px', overflowY: 'scroll', paddingTop: '8px'}}>\n {filteredOptions.length === 0 ? (\n <Box padding={3}>\n <Text align=\"center\" size={1} muted>\n {t('form.input.assignee.search.no-users.text')}\n </Text>\n </Box>\n ) : (\n <VirtualList items={filteredOptions} renderItem={renderItem} />\n )}\n </div>\n </div>\n )\n}\n\nexport function AssigneeSelectionMenu(props: {\n onSelect: (userId: string) => void\n menuButton: React.JSX.Element\n value?: string\n}) {\n const {onSelect, menuButton, value} = props\n\n return (\n <MenuButton\n button={menuButton}\n id=\"assign-user-menu\"\n menu={\n <StyledMenu>\n <MentionsMenu onSelect={onSelect} value={value} />\n </StyledMenu>\n }\n popover={{\n placement: 'bottom',\n fallbackPlacements: ['bottom'],\n portal: true,\n constrainSize: true,\n }}\n />\n )\n}\n","import {Badge, Card, Flex, Text, TextSkeleton} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {useCallback, useMemo} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {set} from '../../../../../form/patch/patch'\nimport {type StringInputProps} from '../../../../../form/types/inputProps'\nimport {useTranslation} from '../../../../../i18n/hooks/useTranslation'\nimport {useMentionUser} from '../../../../context/mentionUser/useMentionUser'\nimport {tasksLocaleNamespace} from '../../../../i18n'\nimport {TasksUserAvatar} from '../../../TasksUserAvatar'\nimport {AssigneeSelectionMenu} from './AssigneeSelectionMenu'\n\nconst FocusableCard = styled(Card)((props) => {\n const theme = getTheme_v2(props.theme)\n return css`\n &[data-as='button'] {\n border: 1px solid var(--card-border-color);\n &:focus-within {\n border: 1px solid var(--card-focus-ring-color);\n }\n --card-muted-fg-color: ${theme.color.input.default.enabled.placeholder};\n }\n `\n})\n\nexport function AssigneeCreateFormField(props: StringInputProps) {\n const {value, onChange} = props\n const {mentionOptions} = useMentionUser()\n const mentionedUser = useMemo(\n () => mentionOptions.data?.find((u) => u.id === value),\n [mentionOptions.data, value],\n )\n\n const onSelect = useCallback((userId: string) => onChange(set(userId)), [onChange])\n const {t} = useTranslation(tasksLocaleNamespace)\n const displayText = useMemo(() => {\n if (value) {\n if (mentionOptions.loading) return <TextSkeleton animated style={{width: '10ch'}} />\n if (mentionedUser) return mentionedUser.displayName || mentionedUser.email\n if (!mentionedUser) return t('form.input.assignee.user-not-found.text')\n }\n return t('form.input.assignee.search.placeholder')\n }, [mentionOptions.loading, mentionedUser, value, t])\n\n return (\n <AssigneeSelectionMenu\n onSelect={onSelect}\n value={value}\n menuButton={\n <FocusableCard data-as=\"button\" padding={1} radius={2} tabIndex={0}>\n <Flex align=\"center\" gap={3}>\n <Flex align=\"center\" gap={1} flex={1}>\n <TasksUserAvatar user={mentionedUser} size={1} border={false} />\n <Text size={1} textOverflow=\"ellipsis\" muted={!mentionedUser}>\n {displayText}\n </Text>\n </Flex>\n\n {value && mentionedUser && !mentionedUser.granted && (\n <Badge fontSize={1}>{t('form.input.assignee.unauthorized.text')}</Badge>\n )}\n </Flex>\n </FocusableCard>\n }\n />\n )\n}\n","import {Box, Text} from '@sanity/ui'\nimport {type ReactNode} from 'react'\nimport {styled} from 'styled-components'\n\nconst NormalText = styled(Text)`\n word-break: break-word;\n`\n\ninterface NormalBlockProps {\n children: ReactNode\n}\n\nexport function DescriptionInputBlock(props: NormalBlockProps) {\n const {children} = props\n\n return (\n <Box paddingTop={2} paddingBottom={3}>\n <NormalText size={1}>{children}</NormalText>\n </Box>\n )\n}\n","import {type RenderBlockFunction} from '@portabletext/editor'\n\nimport {DescriptionInputBlock} from '../blocks/DescriptionInputBlock'\n\nexport const renderBlock: RenderBlockFunction = (blockProps) => {\n const {children} = blockProps\n\n return <DescriptionInputBlock>{children}</DescriptionInputBlock>\n}\n","import {type PortableTextBlock} from '@sanity/types'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {startTransition, useCallback, useEffect, useState} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {CommentInput} from '../../../../../comments/components/pte/comment-input/CommentInput'\nimport {set} from '../../../../../form/patch/patch'\nimport {type ArrayFieldProps} from '../../../../../form/types/fieldProps'\nimport {useTranslation} from '../../../../../i18n/hooks/useTranslation'\nimport {useCurrentUser} from '../../../../../store/user/hooks'\nimport {useMentionUser} from '../../../../context/mentionUser/useMentionUser'\nimport {tasksLocaleNamespace} from '../../../../i18n'\nimport {type FormMode} from '../../../../types'\nimport {renderBlock} from './render/renderBlock'\n\nconst DescriptionInputRoot = styled.div<{$mode: FormMode; $minHeight: number}>((props) => {\n const theme = getTheme_v2(props.theme)\n const verticalPadding = props.$mode === 'edit' ? theme.space[1] : theme.space[3]\n const minHeight = props.$mode === 'edit' ? 120 : 200\n return css`\n /* select CommentInputEditableWrap and change the padding */\n [data-ui='CommentInputEditableWrap'] {\n overflow: hidden;\n padding: ${\n props.$mode === 'edit'\n ? `${verticalPadding}px 0px`\n : `${verticalPadding}px ${theme.space[2]}px`\n };\n min-height: ${Math.max(props.$minHeight + verticalPadding, minHeight)}px !important;\n }\n #comment-input-root {\n box-shadow: ${props.$mode === 'edit' ? 'none' : ''};\n }\n [data-ui='CommentInputActions'] {\n display: none !important;\n }\n `\n})\n\nexport function DescriptionInput(props: ArrayFieldProps & {mode: FormMode}) {\n const {\n value: _propValue,\n mode,\n inputProps: {onChange},\n } = props\n const value = _propValue as PortableTextBlock[] | undefined\n const currentUser = useCurrentUser()\n const {mentionOptions} = useMentionUser()\n\n const handleChange = useCallback((next: PortableTextBlock[]) => onChange(set(next)), [onChange])\n\n const [rootRef, setRootRef] = useState<HTMLDivElement | null>(null)\n const [textBoxScrollHeight, setTextBoxScrollHeight] = useState<number>(200)\n const setTextboxHeight = useCallback((ref: HTMLDivElement) => {\n const textBox = ref.querySelector('[role=\"textbox\"]')\n if (!textBox) return\n\n const height = textBox.scrollHeight\n setTextBoxScrollHeight(height)\n }, [])\n\n const handleSetRootRef = useCallback((ref: HTMLDivElement) => {\n if (!ref) return\n startTransition(() => {\n setRootRef(ref)\n })\n }, [])\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n useEffect(() => {\n if (!rootRef) return\n // oxlint-disable-next-line react/react-compiler\n setTextboxHeight(rootRef)\n }, [value, setTextboxHeight, rootRef])\n\n if (!currentUser) return null\n return (\n <DescriptionInputRoot $mode={mode} ref={handleSetRootRef} $minHeight={textBoxScrollHeight}>\n <CommentInput\n expandOnFocus={false}\n currentUser={currentUser}\n mentionOptions={mentionOptions}\n onChange={handleChange}\n value={value ?? []}\n withAvatar={false}\n placeholder={t('form.input.description.placeholder')}\n onDiscardConfirm={() => null}\n renderBlock={renderBlock}\n />\n </DescriptionInputRoot>\n )\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, styled} from 'styled-components'\n\nimport {type StringFieldProps} from '../../../../form/types/fieldProps'\n\n/**\n * @internal\n * Updates the padding and font weight of the field header content box.\n */\nexport const FieldWrapperRoot = styled.div((props) => {\n const theme = getTheme_v2(props.theme)\n\n return css`\n // Reset the padding of the field header content box\n [data-ui='fieldHeaderContentBox'] {\n padding: 0;\n label {\n font-weight: ${theme.font.text.weights.regular};\n }\n }\n `\n})\n\nexport function FieldWrapper(props: StringFieldProps) {\n return <FieldWrapperRoot>{props.renderDefault(props)}</FieldWrapperRoot>\n}\n","import {LoadingBlock} from '../../../components/loadingBlock/LoadingBlock'\nimport {WorkspaceLoader} from '../../../studio/workspaceLoader/WorkspaceLoader'\n\nfunction ConfigErrorsScreen() {\n // oxlint-disable-next-line i18next/no-literal-string\n return <div>Config errors</div>\n}\n\nexport function CurrentWorkspaceProvider({children}: {children: React.ReactNode}) {\n return (\n <WorkspaceLoader LoadingComponent={LoadingBlock} ConfigErrorsComponent={ConfigErrorsScreen}>\n {children}\n </WorkspaceLoader>\n )\n}\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {DocumentIcon} from '@sanity/icons/Document'\nimport {Box, Card, Flex, LayerProvider, Stack, Text} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {useCallback, useMemo, useState, type RefAttributes} from 'react'\nimport {IntentLink} from 'sanity/router'\nimport {css, styled} from 'styled-components'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {FormFieldHeaderText} from '../../../../form/components/formField/FormFieldHeaderText'\nimport {set, unset} from '../../../../form/patch/patch'\nimport {type ObjectFieldProps} from '../../../../form/types/fieldProps'\nimport {useSchema} from '../../../../hooks/useSchema'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {useDocumentPresence} from '../../../../store/presence/useDocumentPresence'\nimport {SearchPopover} from '../../../../studio/components/navbar/search/components/SearchPopover'\nimport {SearchResultItemPreview} from '../../../../studio/components/navbar/search/components/searchResults/item/SearchResultItemPreview'\nimport {SearchProvider} from '../../../../studio/components/navbar/search/contexts/search/SearchProvider'\nimport {useWorkspace} from '../../../../studio/workspace'\nimport {getPublishedId, getVersionFromId} from '../../../../util/draftUtils'\nimport {tasksLocaleNamespace} from '../../../i18n'\nimport {type FormMode, type TaskTarget} from '../../../types'\nimport {CurrentWorkspaceProvider} from '../CurrentWorkspaceProvider'\nimport {getTargetValue} from '../utils'\nimport {FieldWrapperRoot} from './FieldWrapper'\n\nconst EmptyReferenceRoot = styled(Card)((props) => {\n const theme = getTheme_v2(props.theme)\n\n return css`\n &:focus {\n border: 1px solid var(--card-focus-ring-color);\n }\n &:focus-visible {\n outline: none;\n border: 1px solid var(--card-focus-ring-color);\n }\n &:hover {\n border-color: ${theme.color.input.default.hovered.border};\n }\n `\n})\n\nconst Placeholder = styled(Text)((props) => {\n const theme = getTheme_v2(props.theme)\n return `\n color: ${theme.color.input.default.enabled.placeholder};\n margin-left: 3px;\n `\n})\n\n// This allows to hide and show the remove button on hover or focus.\nconst TargetRoot = styled(Card)`\n position: relative;\n [data-ui='show-on-hover'] {\n opacity: 0;\n position: absolute;\n right: 6px;\n top: 4px;\n display: flex;\n }\n &:focus-within,\n &:hover {\n padding-right: 36px;\n /* Hides the preview status dot, the button will take it's position. */\n [data-testid='compact-preview__status'] {\n opacity: 0;\n }\n [data-ui='show-on-hover'] {\n transition: opacity 200ms;\n opacity: 1;\n }\n }\n`\nconst StyledIntentLink = styled(IntentLink)(() => {\n return css`\n text-decoration: none;\n width: 100%;\n overflow: hidden;\n cursor: pointer;\n &:focus {\n box-shadow: 0 0 0 1px var(--card-focus-ring-color);\n }\n &:focus-visible {\n outline: none;\n box-shadow: 0 0 0 1px var(--card-focus-ring-color);\n }\n `\n})\n\nfunction Preview(props: {value: TaskTarget; handleRemove: () => void}) {\n const {value, handleRemove} = props\n const documentId = value.document._ref\n const documentType = value.documentType\n const schema = useSchema()\n const schemaType = schema.get(value.documentType)\n const documentPresence = useDocumentPresence(documentId)\n const {t} = useTranslation(tasksLocaleNamespace)\n const CardLink = useMemo(\n () =>\n function LinkComponent(\n linkProps: React.ComponentPropsWithoutRef<'a'> & RefAttributes<HTMLAnchorElement>,\n ) {\n const {ref, ...rest} = linkProps\n const versionId = getVersionFromId(documentId)\n\n return (\n <StyledIntentLink\n {...rest}\n intent=\"edit\"\n params={{id: getPublishedId(documentId), type: documentType}}\n ref={ref}\n searchParams={versionId ? [['perspective', versionId]] : undefined}\n />\n )\n },\n [documentId, documentType],\n )\n if (!schemaType) {\n return <Text>{t('form.input.target.error.schema-not-found')}</Text>\n }\n\n return (\n <TargetRoot border radius={2} data-testid=\"task-target-field-preview\">\n <Flex gap={1} align={'center'} justify={'space-between'}>\n <Card as={CardLink} radius={2} data-as=\"button\">\n <SearchResultItemPreview\n documentType={documentType}\n documentId={value.document._ref}\n layout={'compact'}\n presence={documentPresence}\n schemaType={schemaType}\n showBadge={false}\n />\n </Card>\n\n <div data-ui=\"show-on-hover\">\n <Button\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={handleRemove}\n tooltipProps={{content: t('form.input.target.buttons.remove.text')}}\n />\n </div>\n </Flex>\n </TargetRoot>\n )\n}\n\nexport function TargetField(\n props: ObjectFieldProps & {\n mode: FormMode\n },\n) {\n const [open, setOpen] = useState(false)\n const {dataset, projectId} = useWorkspace()\n const {\n mode,\n inputProps: {onChange},\n value: _propValue,\n } = props\n\n const value = _propValue as unknown as TaskTarget | undefined\n\n const handleItemSelect = useCallback(\n (item: {_id: string; _type: string}) => {\n onChange(\n set(\n getTargetValue({\n documentId: item._id,\n documentType: item._type,\n dataset,\n projectId,\n }),\n ),\n )\n },\n [dataset, projectId, onChange],\n )\n\n const handleRemove = useCallback(() => {\n onChange(unset())\n }, [onChange])\n\n const handleOpenSearch = useCallback(() => {\n setOpen(true)\n }, [setOpen])\n\n const handleCloseSearch = useCallback(() => {\n setOpen(false)\n }, [setOpen])\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') setOpen(true)\n }, [])\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n return (\n <Card borderBottom={mode === 'edit'} paddingBottom={mode === 'edit' ? 4 : 0}>\n <FieldWrapperRoot>\n <LayerProvider zOffset={100}>\n <CurrentWorkspaceProvider>\n <SearchProvider>\n <Stack gap={2}>\n {mode === 'create' && (\n <Box data-ui=\"fieldHeaderContentBox\">\n <FormFieldHeaderText\n description={props.description}\n inputId={props.inputId}\n title={props.title}\n validation={props.validation}\n deprecated={undefined}\n />\n </Box>\n )}\n\n {value ? (\n <Preview value={value} handleRemove={handleRemove} />\n ) : (\n <EmptyReferenceRoot\n border\n radius={2}\n paddingX={2}\n paddingY={3}\n onClick={handleOpenSearch}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n >\n <Flex gap={1} justify={'flex-start'} align={'center'}>\n <Box paddingX={1}>\n <Text size={1}>\n <DocumentIcon />\n </Text>\n </Box>\n <Placeholder size={1}>\n {t('form.input.target.search.placeholder')}\n </Placeholder>\n </Flex>\n </EmptyReferenceRoot>\n )}\n </Stack>\n <SearchPopover\n open={open}\n onClose={handleCloseSearch}\n onItemSelect={handleItemSelect}\n disableIntentLink\n />\n </SearchProvider>\n </CurrentWorkspaceProvider>\n </LayerProvider>\n </FieldWrapperRoot>\n </Card>\n )\n}\n","import {type Path} from '@sanity/types'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {type ChangeEvent, useCallback, useEffect, useRef} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {set, unset} from '../../../../form/patch/patch'\nimport {type PatchEvent} from '../../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../../form/patch/types'\nimport {type StringFieldProps} from '../../../../form/types/fieldProps'\n\nconst Root = styled.div((props) => {\n const theme = getTheme_v2(props.theme)\n return `\n display: grid;\n grid-template-columns: 1fr;\n padding-top: ${theme.space[3]}px;\n `\n})\nconst TitleInput = styled.textarea((props) => {\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n resize: none;\n overflow: hidden;\n appearance: none;\n background: none;\n border: 0;\n padding: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${font.text.weights.semibold};\n font-size: ${font.text.sizes[3].fontSize}px;\n line-height: ${font.text.sizes[3].lineHeight}px;\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n transition: height 500ms;\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n color: ${color.input.default.enabled.fg};\n\n &::placeholder {\n color: ${color.input.default.enabled.placeholder};\n }\n `\n})\n\nexport function Title(props: {\n value: string | undefined\n path?: Path\n onChange: (patch: FormPatch | PatchEvent | FormPatch[]) => void\n placeholder?: string\n}) {\n const {value, onChange, placeholder, path} = props\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n useEffect(() => {\n // Set the height of the title to make it auto grow.\n if (!ref.current) return\n ref.current.style.height = 'auto'\n ref.current.style.height = `${ref.current.scrollHeight}px`\n }, [value])\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLTextAreaElement>) => {\n const inputValue = event.currentTarget.value\n if (!inputValue) onChange(unset(path))\n return onChange(set(inputValue.replace(/\\n/g, ''), path))\n },\n [onChange, path],\n )\n\n return (\n <Root>\n <TitleInput\n ref={ref}\n autoFocus={!value}\n value={value}\n placeholder={placeholder}\n onChange={handleChange}\n rows={1}\n />\n </Root>\n )\n}\n\nexport function TitleField(props: StringFieldProps) {\n const {value, inputProps} = props\n const {onChange, schemaType} = inputProps\n\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n return <Title value={value} onChange={onChange} placeholder={schemaType.placeholder} />\n}\n","import {useCallback, useMemo} from 'react'\n\nimport {useCurrentUser} from '../../store/user/hooks'\nimport {useAddonDataset} from '../../studio/addonDataset/useAddonDataset'\nimport {type TaskCreatePayload, type TaskDocument, type TaskEditPayload} from '../types'\n\n/**\n * @beta\n * @hidden\n */\nexport interface TaskOperations {\n create: (task: TaskCreatePayload) => Promise<TaskDocument>\n edit: (id: string, task: TaskEditPayload) => Promise<TaskDocument>\n remove: (id: string) => Promise<void>\n}\n\n/**\n * @beta\n * @hidden\n */\nexport function useTaskOperations(): TaskOperations {\n const {client, createAddonDataset} = useAddonDataset()\n const currentUser = useCurrentUser()\n\n const handleCreate = useCallback(\n async (payload: TaskCreatePayload): Promise<TaskDocument> => {\n if (!currentUser) {\n throw new Error('No current user found. Unable to create task.')\n }\n\n const task = {\n ...payload,\n authorId: currentUser.id,\n _type: 'tasks.task',\n } satisfies Partial<TaskDocument>\n\n if (!client) {\n const newCreatedClient = await createAddonDataset()\n if (!newCreatedClient) throw new Error('No addon client found. Unable to create task.')\n const created = await newCreatedClient.create(task)\n return created\n }\n\n const created = await client.create(task)\n return created\n },\n [client, createAddonDataset, currentUser],\n )\n\n const handleEdit = useCallback(\n async (id: string, set: TaskEditPayload) => {\n if (!client) {\n throw new Error('No client. Unable to create task.')\n }\n const edited = (await client.patch(id).set(set).commit()) as TaskDocument\n return edited\n },\n [client],\n )\n const handleRemove = useCallback(\n async (id: string) => {\n if (!client) {\n throw new Error('No client. Unable to create task.')\n }\n await client.delete(id)\n },\n [client],\n )\n\n const operations: TaskOperations = useMemo(\n () => ({\n create: handleCreate,\n edit: handleEdit,\n remove: handleRemove,\n }),\n [handleCreate, handleEdit, handleRemove],\n )\n return operations\n}\n","import {useCallback, useState} from 'react'\n\nimport {useTaskOperations} from './useTaskOperations'\n\ninterface RemoveTaskOptions {\n id: string\n onError?: (message: string) => void\n onRemoved?: () => void\n}\n\ninterface RemoveTasksHookValue {\n removeStatus: 'idle' | 'loading' | 'error'\n showDialog: boolean\n error: string | null\n handleRemove: () => void\n handleOpenDialog: () => void\n handleCloseDialog: () => void\n}\n\nexport function useRemoveTask({id, onError, onRemoved}: RemoveTaskOptions): RemoveTasksHookValue {\n const [removeStatus, setRemoveStatus] = useState<'idle' | 'loading' | 'error'>('idle')\n const [showDialog, setShowDialog] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const operations = useTaskOperations()\n\n const handleRemove = useCallback(async () => {\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = async () => {\n setRemoveStatus('loading')\n await operations.remove(id)\n onRemoved?.()\n setRemoveStatus('idle')\n await new Promise((resolve) => setTimeout(resolve, 300))\n setShowDialog(false)\n }\n try {\n await run()\n } catch (e) {\n onError?.(e.message)\n setError(e.message)\n setRemoveStatus('error')\n }\n setRemoveStatus('idle')\n }, [id, operations, onError, onRemoved])\n\n const handleOpenDialog = useCallback(() => {\n setShowDialog(true)\n }, [setShowDialog])\n const handleCloseDialog = useCallback(() => {\n setShowDialog(false)\n }, [setShowDialog])\n\n return {\n removeStatus,\n showDialog,\n error,\n handleRemove,\n handleOpenDialog,\n handleCloseDialog,\n }\n}\n","import {TrashIcon} from '@sanity/icons/Trash'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {Box, Flex, Switch, Text, useToast} from '@sanity/ui'\nimport {useCallback, useEffect, useState} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {set} from '../../../../form/patch/patch'\nimport {type ObjectInputProps} from '../../../../form/types/inputProps'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {TaskCreated} from '../../../__telemetry__/tasks.telemetry'\nimport {useTasksNavigation} from '../../../context/navigation/useTasksNavigation'\nimport {useTasks} from '../../../context/tasks/useTasks'\nimport {useRemoveTask} from '../../../hooks/useRemoveTask'\nimport {tasksLocaleNamespace} from '../../../i18n'\nimport {type TaskDocument} from '../../../types'\nimport {getMentionedUsers} from '../utils'\n\nconst getTaskSubscribers = (task: TaskDocument): string[] => {\n const subscribers = task.subscribers || []\n\n getMentionedUsers(task.description).forEach((user) => {\n if (!subscribers.includes(user)) subscribers.push(user)\n })\n\n // Check if the task has been assigned, add the assignee to the subscribers list.\n if (task.assignedTo) {\n if (!subscribers.includes(task.assignedTo)) {\n subscribers.push(task.assignedTo)\n }\n }\n return subscribers\n}\nexport function FormCreate(props: ObjectInputProps) {\n const [creating, setCreating] = useState(false)\n const {onChange} = props\n const {setViewMode, setActiveTab} = useTasksNavigation()\n const toast = useToast()\n const telemetry = useTelemetry()\n\n const [createMore, setCreateMore] = useState(false)\n const handleCreateMore = useCallback(() => setCreateMore((p) => !p), [])\n\n const value = props.value as TaskDocument\n const onRemove = useCallback(() => {\n setViewMode({type: 'list'})\n }, [setViewMode])\n const {handleRemove, removeStatus} = useRemoveTask({id: value._id, onRemoved: onRemove})\n const {t} = useTranslation(tasksLocaleNamespace)\n const {data} = useTasks()\n const savedTask = data.find((task) => task._id === value._id)\n\n const handleCreatingSuccess = useEffectEvent(() => {\n telemetry.log(TaskCreated)\n toast.push({\n closable: true,\n status: 'success',\n title: t('form.status.success'),\n })\n\n setCreating(false)\n if (createMore) {\n setViewMode({type: 'create'})\n } else {\n setActiveTab('subscribed')\n }\n })\n useEffect(() => {\n // This useEffect takes care of closing the form when a task entered the \"creation\" state.\n // That action is async and we don't have access to the promise, once the value is updated in the form we will close the form.\n if (creating && savedTask?.createdByUser) {\n handleCreatingSuccess()\n }\n }, [creating, savedTask?.createdByUser])\n\n const handleCreatingTimeout = useEffectEvent(() => {\n setCreating(false)\n toast.push({\n closable: true,\n status: 'error',\n title: t('form.status.error.creation-failed'),\n })\n })\n useEffect(() => {\n // If after 10 seconds the task is still in the \"creating\" state, show an error and reset the creating state.\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n if (creating) {\n timeoutId = setTimeout(() => handleCreatingTimeout(), 10000)\n }\n // Cleanup function to clear the timeout\n return () => {\n if (timeoutId) clearTimeout(timeoutId)\n }\n }, [creating])\n\n const handleCreate = useCallback(async () => {\n setCreating(true)\n if (!value?.title) {\n toast.push({\n closable: true,\n status: 'error',\n title: t('form.status.error.title-required'),\n })\n return\n }\n onChange([\n set(getTaskSubscribers(value), ['subscribers']),\n set(new Date().toISOString(), ['createdByUser']),\n ])\n }, [value, onChange, t, toast])\n\n return (\n <>\n {props.renderDefault(props)}\n\n <Box paddingY={5}>\n <Flex paddingTop={1} gap={4}>\n {value._rev && (\n <Button\n onClick={handleRemove}\n mode=\"bleed\"\n icon={TrashIcon}\n tooltipProps={{\n content: t('buttons.discard.text'),\n }}\n disabled={removeStatus === 'loading'}\n loading={removeStatus === 'loading'}\n />\n )}\n\n <Flex align=\"center\" gap={2} justify={'flex-end'} flex={1}>\n <Switch onChange={handleCreateMore} checked={createMore} />\n <Text size={1} muted>\n {t('form.input.create-more.text')}\n </Text>\n </Flex>\n\n <Button\n text={t('buttons.create.text')}\n onClick={handleCreate}\n disabled={creating}\n loading={creating}\n />\n </Flex>\n </Box>\n </>\n )\n}\n","import {type TaskDocument} from '../../../types'\nimport {type FieldChange} from './parseTransactions'\n\nconst FIELDS_TO_GROUP: (keyof TaskDocument)[] = [\n 'title',\n 'status',\n 'assignedTo',\n 'dueBy',\n 'target',\n 'description',\n]\nconst GROUP_TIME = 2 * 60 * 1000 // 2 minutes\nexport function groupChanges(changes: FieldChange[]): FieldChange[] {\n // If we have two or more changes done by the same user in a similar timestamp +- X time, in any of the fields specified we group them together.\n const groupedChanges: FieldChange[] = []\n for (const change of changes) {\n const lastChangeProcessed = groupedChanges[groupedChanges.length - 1]\n if (!lastChangeProcessed) {\n groupedChanges.push(change)\n continue\n }\n if (!FIELDS_TO_GROUP.includes(change.field)) {\n groupedChanges.push(change)\n continue\n }\n if (\n lastChangeProcessed.author === change.author &&\n lastChangeProcessed.field === change.field\n ) {\n // Check the timestamp difference\n const lastChangeDate = new Date(lastChangeProcessed.timestamp)\n const changeDate = new Date(change.timestamp)\n const diff = Math.abs(lastChangeDate.getTime() - changeDate.getTime())\n if (diff <= GROUP_TIME) {\n // We keep the from value and update the to value, and the date.\n lastChangeProcessed.to = change.to\n lastChangeProcessed.timestamp = change.timestamp\n continue\n }\n }\n groupedChanges.push(change)\n }\n\n return groupedChanges\n}\n","import {type TransactionLogEventWithEffects} from '@sanity/types'\nimport {applyPatch} from 'mendoza'\n\nimport {type TaskDocument} from '../../../types'\nimport {groupChanges} from './groupChanges'\n\nexport interface FieldChange {\n field: keyof TaskDocument\n from: any\n to: any\n timestamp: string\n author: string\n}\n\nfunction omitRev(document: TaskDocument) {\n const {_rev, ...doc} = document\n return doc\n}\n\n/**\n * Tracks changes to specified fields across document versions by applying patches in reverse.\n * @param newestDocument - The latest state of the document.\n * @param transactions - An array of transactions containing patches.\n * @param fieldsToTrack - The fields to track for changes.\n * @returns An array of changes for the tracked fields.\n */\nexport function trackFieldChanges(\n newestDocument: TaskDocument,\n transactions: TransactionLogEventWithEffects[],\n fieldsToTrack: (keyof Omit<TaskDocument, '_rev'>)[],\n): FieldChange[] {\n let currentDocument: Omit<TaskDocument, '_rev'> = omitRev(newestDocument)\n const changes: FieldChange[] = []\n let previousDocument = currentDocument\n\n for (const transaction of transactions) {\n const {timestamp, effects} = transaction\n\n // Assuming there's a single document being tracked in this transaction\n const documentId = transaction.documentIDs[0]\n const effect = effects[documentId]\n if (!effect || !effect.revert) continue\n\n previousDocument = applyPatch(currentDocument, effect.revert)\n\n // Track changes for specified fields\n fieldsToTrack.forEach((field) => {\n if (previousDocument?.[field] !== currentDocument?.[field]) {\n changes.push({\n field,\n from: previousDocument?.[field],\n to: currentDocument?.[field],\n timestamp,\n author: transaction.author,\n })\n }\n })\n\n // Prepare for next iteration\n currentDocument = previousDocument\n }\n\n const changesSortedByTimestamp = changes.sort((a, b) => a.timestamp.localeCompare(b.timestamp))\n // Find the moment the task was created by the user.\n const createdByUserIndex = changesSortedByTimestamp.findIndex(\n (change) => change.field === 'createdByUser',\n )\n\n // Return changes sorted by timestamp in ascending order from the moment the task was created.\n return groupChanges(changesSortedByTimestamp.slice(createdByUserIndex + 1))\n}\n","import {useCallback, useEffect, useState} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {useClient} from '../../hooks/useClient'\nimport {getTransactionsLogs} from '../../store/translog/getTransactionsLogs'\nimport {getPublishedId} from '../../util/draftUtils'\nimport {type FieldChange, trackFieldChanges} from '../components/activity/helpers/parseTransactions'\nimport {API_VERSION} from '../constants/API_VERSION'\nimport {type TaskDocument} from '../types'\n\nexport function useActivityLog(task: TaskDocument): {\n changes: FieldChange[]\n} {\n const [changes, setChanges] = useState<FieldChange[]>([])\n const client = useClient({apiVersion: API_VERSION})\n const publishedId = getPublishedId(task?._id ?? '')\n\n const fetchAndParse = useCallback(\n async (newestTaskDocument: TaskDocument) => {\n try {\n if (!publishedId) return\n\n const transactions = await getTransactionsLogs(client, publishedId, {\n tag: 'sanity.studio.tasks.history',\n effectFormat: 'mendoza',\n reverse: true,\n })\n\n const fieldsToTrack: (keyof Omit<TaskDocument, '_rev'>)[] = [\n 'createdByUser',\n 'title',\n 'description',\n 'dueBy',\n 'assignedTo',\n 'status',\n 'target',\n ]\n\n const parsedChanges = trackFieldChanges(\n newestTaskDocument,\n [...transactions],\n fieldsToTrack,\n )\n\n setChanges(parsedChanges)\n } catch (error) {\n console.error('Failed to fetch and parse activity log', error)\n }\n },\n [publishedId, client],\n )\n\n const handleFetchAndParse = useEffectEvent((_rev: string) => fetchAndParse(task))\n useEffect(() => {\n // Task is updated on every change, wait until the revision changes to update the activity log.\n void handleFetchAndParse(task._rev)\n }, [task._rev])\n return {changes}\n}\n","import {CalendarIcon} from '@sanity/icons/Calendar'\nimport {CircleIcon} from '@sanity/icons/Circle'\nimport {EditIcon} from '@sanity/icons/Edit'\nimport {LinkIcon} from '@sanity/icons/Link'\nimport {UserIcon} from '@sanity/icons/User'\nimport {TextSkeleton} from '@sanity/ui'\nimport {IntentLink} from 'sanity/router'\nimport {styled} from 'styled-components'\n\nimport {useDateTimeFormat, type UseDateTimeFormatOptions} from '../../../../hooks/useDateTimeFormat'\nimport {type RelativeTimeOptions, useRelativeTime} from '../../../../hooks/useRelativeTime'\nimport {useSchema} from '../../../../hooks/useSchema'\nimport {usePerspective} from '../../../../perspective/usePerspective'\nimport {useUser} from '../../../../store/user/hooks'\nimport {TASK_STATUS} from '../../../constants/TaskStatus'\nimport {useDocumentPreviewValues} from '../../../hooks/useDocumentPreviewValues'\nimport {type TaskTarget} from '../../../types'\nimport {type FieldChange} from './parseTransactions'\n\nconst DATE_FORMAT_OPTIONS: UseDateTimeFormatOptions = {\n month: 'long',\n day: '2-digit',\n minute: '2-digit',\n hour: '2-digit',\n second: '2-digit',\n}\n\nconst RELATIVE_TIME_OPTIONS: RelativeTimeOptions = {\n minimal: true,\n useTemporalPhrase: true,\n}\n\nconst Strong = styled.strong`\n font-weight: 600;\n`\nexport const NoWrap = styled.span`\n white-space: nowrap;\n`\n\nexport function useUpdatedTimeAgo(timestamp: string) {\n const date = new Date(timestamp)\n const dateFormatter = useDateTimeFormat(DATE_FORMAT_OPTIONS)\n const formattedDate = dateFormatter.format(date)\n\n const updatedTimeAgo = useRelativeTime(date || '', RELATIVE_TIME_OPTIONS)\n\n return {timeAgo: updatedTimeAgo, formattedDate}\n}\n\nexport function UserName({userId}: {userId: string}) {\n const [user, isLoading] = useUser(userId)\n return isLoading ? <TextSkeleton style={{width: '15ch'}} /> : <Strong>{user?.displayName}</Strong>\n}\n\nconst DUE_BY_DATE_OPTIONS: UseDateTimeFormatOptions = {\n month: 'short',\n day: 'numeric',\n timeZone: 'UTC',\n}\n\nfunction DueByChange({date}: {date: string}) {\n const dueBy = new Date(date)\n const dateFormatter = useDateTimeFormat(DUE_BY_DATE_OPTIONS)\n const formattedDate = dateFormatter.format(dueBy)\n\n return (\n <Strong>\n <NoWrap>{formattedDate}</NoWrap>\n </Strong>\n )\n}\n\nconst LinkWrapper = styled.span`\n > a {\n color: var(--card-fg-muted-color);\n text-decoration: underline;\n text-underline-offset: 1px;\n font-weight: 600;\n }\n`\n\nfunction TargetContentChange({target}: {target: TaskTarget}) {\n const schema = useSchema()\n const documentId = target.document._ref\n const documentType = target.documentType\n const documentSchema = schema.get(documentType)\n const {perspectiveStack, selectedVariantName} = usePerspective()\n const {isLoading, value} = useDocumentPreviewValues({\n documentId,\n documentType,\n perspectiveStack,\n variant: selectedVariantName,\n })\n\n if (isLoading) {\n return <TextSkeleton style={{width: '15ch'}} />\n }\n if (!documentSchema) {\n return null\n }\n\n return (\n <LinkWrapper>\n <IntentLink intent=\"edit\" params={{id: documentId, type: documentType}}>\n {value?.title}\n </IntentLink>\n </LinkWrapper>\n )\n}\n\nexport function getChangeDetails(activity: FieldChange): {\n text: string\n icon: React.JSX.Element\n changeTo?: React.JSX.Element\n} {\n switch (activity.field) {\n case 'status': {\n const statusTitle = TASK_STATUS.find((s) => s.value === activity.to)?.title\n return {\n text: 'changed status to',\n icon: TASK_STATUS.find((s) => s.value === activity.to)?.icon || <CircleIcon />,\n changeTo: <Strong>{statusTitle}</Strong>,\n }\n }\n case 'target':\n if (!activity.to)\n return {\n text: 'removed target content',\n icon: <LinkIcon />,\n changeTo: undefined,\n }\n return {\n text: 'set target content to',\n icon: <LinkIcon />,\n changeTo: <TargetContentChange target={activity.to} />,\n }\n case 'dueBy':\n if (!activity.from) {\n return {\n text: 'set the due date to',\n icon: <CalendarIcon />,\n changeTo: <DueByChange date={activity.to} />,\n }\n }\n if (!activity.to) {\n return {\n text: 'removed the due date',\n icon: <CalendarIcon />,\n changeTo: undefined,\n }\n }\n return {\n text: 'changed the due date to',\n icon: <CalendarIcon />,\n changeTo: <DueByChange date={activity.to} />,\n }\n case 'assignedTo':\n if (!activity.to) {\n return {\n text: 'unassigned this task',\n icon: <UserIcon />,\n changeTo: undefined,\n }\n }\n return {\n text: 'assigned to',\n icon: <UserIcon />,\n changeTo: <UserName userId={activity.to} />,\n }\n case 'description':\n return {\n text: 'updated the task description',\n icon: <EditIcon />,\n changeTo: undefined,\n }\n case 'title':\n return {\n text: 'updated the task title',\n icon: <EditIcon />,\n changeTo: undefined,\n }\n default:\n return {\n text: '',\n icon: <CircleIcon />,\n }\n }\n}\n","import {Box, Flex, Text} from '@sanity/ui'\nimport {memo} from 'react'\n\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport {getChangeDetails, NoWrap, UserName, useUpdatedTimeAgo} from './helpers'\nimport {type FieldChange} from './helpers/parseTransactions'\n\ninterface EditedAtProps {\n activity: FieldChange\n}\n\nexport const EditedAt = memo(\n function EditedAt(props: EditedAtProps) {\n const {activity} = props\n const {formattedDate, timeAgo} = useUpdatedTimeAgo(activity.timestamp)\n const {icon, text, changeTo} = getChangeDetails(activity)\n\n return (\n <Flex gap={1}>\n <Box marginTop={1} marginLeft={1} marginRight={3}>\n <Box marginRight={1}>\n <Text>{icon}</Text>\n </Box>\n </Box>\n <Text muted size={1}>\n <UserName userId={activity.author} /> {text} {changeTo} •{' '}\n <Tooltip content={formattedDate} placement=\"top-end\">\n <NoWrap>\n <time dateTime={formattedDate}>{timeAgo}</time>\n </NoWrap>\n </Tooltip>\n </Text>\n </Flex>\n )\n },\n (prevProps, nextProps) => {\n return prevProps.activity.timestamp === nextProps.activity.timestamp\n },\n)\n","import {Box, Flex} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nimport {TasksUserAvatar} from '../TasksUserAvatar'\n\nconst ActivityChildrenRoot = styled(Flex)`\n height: 100%;\n`\nconst ActivityItemChildrenContainer = styled.div`\n width: 100%;\n`\n\ninterface ActivityItemProps {\n userId: string\n children: React.ReactNode\n avatarPaddingTop?: number\n}\nexport function ActivityItem({avatarPaddingTop = 1, userId, children}: ActivityItemProps) {\n return (\n <Flex>\n <Box marginRight={3} paddingTop={avatarPaddingTop}>\n <TasksUserAvatar user={{id: userId}} size={0} />\n </Box>\n <ActivityChildrenRoot align=\"center\" flex={1}>\n <ActivityItemChildrenContainer>{children}</ActivityItemChildrenContainer>\n </ActivityChildrenRoot>\n </Flex>\n )\n}\n","import {Card} from '@sanity/ui'\nimport {useCallback, useMemo, useRef, useState} from 'react'\n\nimport {\n CommentInput,\n type CommentInputHandle,\n type CommentInputProps,\n} from '../../../comments/components/pte/comment-input/CommentInput'\nimport {hasCommentMessageValue} from '../../../comments/helpers'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useTasksEnabled} from '../../context/enabled/useTasksEnabled'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {ActivityItem} from './TasksActivityItem'\n\ninterface TasksCommentActivityInputProps {\n currentUser: CommentInputProps['currentUser']\n mentionOptions: CommentInputProps['mentionOptions']\n onSubmit: (message: CommentInputProps['value']) => void\n}\n\nexport function TasksActivityCommentInput(props: TasksCommentActivityInputProps) {\n const {mentionOptions, currentUser, onSubmit} = props\n const {mode} = useTasksEnabled()\n const [value, setValue] = useState<CommentInputProps['value']>(null)\n const editorRef = useRef<CommentInputHandle>(null)\n\n const hasValue = useMemo(() => hasCommentMessageValue(value), [value])\n\n const handleChange = useCallback((nextValue: CommentInputProps['value']) => {\n setValue(nextValue)\n }, [])\n\n const handleSubmit = useCallback(() => {\n if (hasValue) {\n onSubmit(value)\n setValue(null)\n }\n }, [hasValue, onSubmit, value])\n\n const handleDiscardCancel = useCallback(() => {\n editorRef.current?.discardDialogController.close()\n }, [])\n\n const handleDiscardConfirm = useCallback(() => {\n editorRef.current?.discardDialogController.close()\n setValue(null)\n }, [])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.preventDefault()\n e.stopPropagation()\n\n if (hasValue) {\n editorRef.current?.discardDialogController.open()\n } else {\n editorRef.current?.discardDialogController.close()\n setValue(null)\n }\n }\n },\n [hasValue],\n )\n const {t} = useTranslation(tasksLocaleNamespace)\n\n return (\n <ActivityItem userId={currentUser.id} avatarPaddingTop={3}>\n <Card tone=\"transparent\" radius={3} padding={2}>\n <CommentInput\n withAvatar={false}\n currentUser={currentUser}\n expandOnFocus\n mentionOptions={mentionOptions}\n onChange={handleChange}\n onDiscardConfirm={handleDiscardConfirm}\n onDiscardCancel={handleDiscardCancel}\n onKeyDown={handleKeyDown}\n onSubmit={handleSubmit}\n readOnly={mode === 'upsell'}\n placeholder={\n mode === 'upsell'\n ? t('panel.comment.placeholder.upsell')\n : t('panel.comment.placeholder')\n }\n ref={editorRef}\n value={value}\n />\n </Card>\n </ActivityItem>\n )\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, styled} from 'styled-components'\n\nimport {\n CommentsListItem,\n type CommentsListItemProps,\n} from '../../../comments/components/list/CommentsListItem'\nimport {useTasksEnabled} from '../../context/enabled/useTasksEnabled'\nimport {ActivityItem} from './TasksActivityItem'\n\nconst COMMENTS_LIST_ITEM_AVATAR_CONFIG: CommentsListItemProps['avatarConfig'] = {\n parentCommentAvatar: false,\n threadCommentsAvatar: true,\n replyAvatar: true,\n avatarSize: 0,\n}\n\ninterface TasksActivityCommentItemProps extends Omit<CommentsListItemProps, 'mode' | 'isSelected'> {\n // ...\n}\n\nconst CommentListItemRoot = styled.div((props) => {\n const theme = getTheme_v2(props.theme)\n return css`\n [data-ui='CommentsListItem'] {\n padding-right: ${theme.space[2]}px;\n }\n\n // Increase the padding when the comment input is focused\n [data-ui='CommentInputEditableWrap']:focus-within {\n padding-bottom: ${theme.space[2]}px;\n }\n `\n})\nexport function TasksActivityCommentItem(props: TasksActivityCommentItemProps) {\n const {parentComment} = props\n const {mode} = useTasksEnabled()\n\n return (\n <ActivityItem userId={parentComment.authorId} avatarPaddingTop={3}>\n <CommentListItemRoot>\n <CommentsListItem\n {...props}\n avatarConfig={COMMENTS_LIST_ITEM_AVATAR_CONFIG}\n canReply\n isSelected={false}\n mode={mode ?? 'default'}\n />\n </CommentListItemRoot>\n </ActivityItem>\n )\n}\n","import {Flex, Text, TextSkeleton} from '@sanity/ui'\nimport {memo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useUser} from '../../../store/user/hooks'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {NoWrap, useUpdatedTimeAgo} from './helpers'\nimport {ActivityItem} from './TasksActivityItem'\n\nconst UserSkeleton = styled(TextSkeleton)`\n max-width: 15ch;\n width: '100%';\n`\n\ninterface TasksActivityCreatedAtProps {\n createdAt: string\n authorId: string\n}\n\nexport const TasksActivityCreatedAt = memo(\n function TasksActivityCreatedAt(props: TasksActivityCreatedAtProps) {\n const {createdAt, authorId} = props\n const [user, loading] = useUser(authorId)\n const {timeAgo, formattedDate} = useUpdatedTimeAgo(createdAt)\n const {t} = useTranslation(tasksLocaleNamespace)\n return (\n <ActivityItem userId={authorId}>\n <Flex align=\"center\" paddingTop={1}>\n <Text size={1} muted>\n <strong style={{fontWeight: 600}}>\n {loading ? (\n <UserSkeleton />\n ) : (\n (user?.displayName ?? t('panel.activity.unknown-user'))\n )}{' '}\n </strong>\n {t('panel.activity.created-fragment')} •{' '}\n <Tooltip content={formattedDate} placement=\"top-end\">\n <NoWrap>\n <time dateTime={createdAt}>{timeAgo}</time>\n </NoWrap>\n </Tooltip>\n </Text>\n </Flex>\n </ActivityItem>\n )\n },\n (prevProps, nextProps) => {\n return prevProps.createdAt === nextProps.createdAt\n },\n)\n","import {type Path} from '@sanity/types'\nimport {AvatarStack, Flex} from '@sanity/ui'\nimport {AnimatePresence, motion} from 'motion/react'\nimport {useCallback, useMemo} from 'react'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {set} from '../../../form/patch/patch'\nimport {type PatchEvent} from '../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../form/patch/types'\nimport {type TaskDocument} from '../../types'\nimport {TasksUserAvatar} from '../TasksUserAvatar'\n\ninterface TasksSubscriberProps {\n value: TaskDocument\n path?: Path\n onChange: (patch: FormPatch | PatchEvent | FormPatch[]) => void\n currentUserId: string\n}\n\nexport function TasksSubscribers(props: TasksSubscriberProps) {\n const {value, onChange, path, currentUserId} = props\n\n const userIsSubscribed = value.subscribers?.includes(currentUserId)\n\n const buttonText = userIsSubscribed ? 'Unsubscribe' : 'Subscribe'\n\n const handleToggleSubscribe = useCallback(() => {\n const subscribers = value.subscribers || []\n\n if (!subscribers.includes(currentUserId)) {\n onChange(set(subscribers.concat(currentUserId), path))\n }\n if (subscribers.includes(currentUserId)) {\n onChange(\n set(\n subscribers.filter((subscriberId) => subscriberId !== currentUserId),\n path,\n ),\n )\n }\n }, [value.subscribers, currentUserId, onChange, path])\n\n return (\n <Flex gap={1} align=\"center\">\n <Button mode=\"bleed\" text={buttonText} onClick={handleToggleSubscribe} />\n {value.subscribers && value.subscribers?.length > 0 && (\n <TasksSubscriberAvatars subscriberIds={value.subscribers} />\n )}\n </Flex>\n )\n}\n\nconst EMPTY_ARRAY: [] = []\n\ninterface TasksSubscriberAvatarsProps {\n subscriberIds?: string[]\n}\n\nfunction TasksSubscriberAvatars(props: TasksSubscriberAvatarsProps) {\n const {subscriberIds: subscriberIdsProp} = props\n\n const subscriberIds = useMemo(() => {\n // Make sure we have valid subscriber IDs\n return subscriberIdsProp?.filter(Boolean) || EMPTY_ARRAY\n }, [subscriberIdsProp])\n\n return (\n <AnimatePresence initial={false}>\n <AvatarStack maxLength={3} size={0}>\n {subscriberIds.map((subscriberId) => (\n <motion.div\n key={subscriberId}\n exit={{opacity: 0, x: '2px', scale: 0.9}}\n animate={{\n opacity: 1,\n x: 0,\n scale: 1,\n transition: {type: 'spring', visualDuration: 0.2},\n }}\n initial={{opacity: 0, x: '2px', scale: 0.9}}\n >\n <TasksUserAvatar user={{id: subscriberId}} size={0} />\n </motion.div>\n ))}\n </AvatarStack>\n </AnimatePresence>\n )\n}\n","import {type Path} from '@sanity/types'\nimport {Box, Flex, Stack, Text} from '@sanity/ui'\nimport {uuid} from '@sanity/uuid'\nimport {AnimatePresence, motion, type Variants} from 'motion/react'\nimport {useMemo, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {CommentDeleteDialog} from '../../../comments/components/CommentDeleteDialog'\nimport {type CommentInputProps} from '../../../comments/components/pte/comment-input/CommentInput'\nimport {useComments} from '../../../comments/hooks/useComments'\nimport {\n type CommentBaseCreatePayload,\n type CommentCreatePayload,\n type CommentReactionOption,\n type CommentThreadItem,\n type CommentUpdatePayload,\n} from '../../../comments/types'\nimport {LoadingBlock} from '../../../components/loadingBlock/LoadingBlock'\nimport {set} from '../../../form/patch/patch'\nimport {type PatchEvent} from '../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../form/patch/types'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useCurrentUser} from '../../../store/user/hooks'\nimport {useWorkspace} from '../../../studio/workspace'\nimport {\n TASKS_SELECTED_TASK_SEARCH_PARAM,\n TASKS_SIDEBAR_SEARCH_PARAM,\n TASKS_VIEW_MODE_SEARCH_PARAM,\n} from '../../context/navigation/types'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {type TaskDocument} from '../../types'\nimport {getMentionedUsers} from '../form/utils'\nimport {type FieldChange} from './helpers/parseTransactions'\nimport {EditedAt} from './TaskActivityEditedAt'\nimport {TasksActivityCommentInput} from './TasksActivityCommentInput'\nimport {TasksActivityCommentItem} from './TasksActivityCommentItem'\nimport {TasksActivityCreatedAt} from './TasksActivityCreatedAt'\nimport {TasksSubscribers} from './TasksSubscribers'\n\nconst EMPTY_ARRAY: [] = []\n\nconst VARIANTS: Variants = {\n hidden: {opacity: 0, x: 0},\n visible: {opacity: 1, x: 0},\n}\n\nconst MotionStack = styled(motion.create(Stack))``\n\ninterface TasksActivityLogProps {\n onChange: (patch: FormPatch | PatchEvent | FormPatch[]) => void\n path?: Path\n value: TaskDocument\n activityData: FieldChange[]\n}\n\ntype Activity =\n | {\n _type: 'comment'\n payload: CommentThreadItem\n timestamp: string\n }\n | {\n _type: 'activity'\n payload: FieldChange\n timestamp: string\n }\n\nexport function TasksActivityLog(props: TasksActivityLogProps) {\n const {value, onChange, path, activityData = []} = props\n const currentUser = useCurrentUser()\n\n const {title: workspaceTitle, basePath, name: workspaceName} = useWorkspace()\n const {comments, mentionOptions, operation, getComment} = useComments()\n const [commentToDeleteId, setCommentToDeleteId] = useState<string | null>(null)\n const [commentDeleteError, setCommentDeleteError] = useState<Error | null>(null)\n const [commentDeleteLoading, setCommentDeleteLoading] = useState(false)\n\n const loading = comments.loading\n const taskComments = comments.data.open\n const handleGetNotificationValue = (message: CommentInputProps['value'], commentId: string) => {\n const studioUrl = new URL(`${window.location.origin}${basePath ? `${basePath}/` : ''}`)\n\n studioUrl.searchParams.set(TASKS_SIDEBAR_SEARCH_PARAM, 'tasks')\n studioUrl.searchParams.set(TASKS_SELECTED_TASK_SEARCH_PARAM, value?._id)\n studioUrl.searchParams.set(TASKS_VIEW_MODE_SEARCH_PARAM, 'edit')\n studioUrl.searchParams.set('commentId', commentId)\n\n const mentionedUsers = getMentionedUsers(message)\n const subscribers = Array.from(new Set([...(value.subscribers || []), ...mentionedUsers]))\n\n return {\n documentTitle: value.title || 'Sanity task',\n url: studioUrl.toString(),\n workspaceTitle,\n workspaceName,\n subscribers,\n }\n }\n\n const handleCommentCreate = async (message: CommentInputProps['value']) => {\n const commentId = uuid()\n const notification = handleGetNotificationValue(message, commentId)\n\n const nextComment: CommentCreatePayload = {\n id: commentId,\n type: 'task',\n message,\n parentCommentId: undefined,\n reactions: EMPTY_ARRAY,\n status: 'open',\n threadId: uuid(),\n context: {\n notification,\n },\n }\n\n onChange(set(notification.subscribers, ['subscribers']))\n\n await operation.create(nextComment)\n }\n\n const handleCommentReply = async (nextComment: CommentBaseCreatePayload) => {\n const commentId = uuid()\n\n const notification = handleGetNotificationValue(nextComment.message, commentId)\n\n onChange(set(notification.subscribers, ['subscribers']))\n\n await operation.create({\n id: commentId,\n type: 'task',\n message: nextComment.message,\n parentCommentId: nextComment.parentCommentId,\n reactions: EMPTY_ARRAY,\n status: 'open',\n threadId: nextComment.threadId,\n context: {\n notification,\n },\n })\n }\n\n const handleCommentCreateRetry = async (id: string) => {\n // Get the optimistically created comment and use it\n // when retrying the creation.\n const comment = getComment(id)\n if (!comment) return\n\n const notification = handleGetNotificationValue(comment.message, comment._id)\n\n onChange(set(notification.subscribers, ['subscribers']))\n\n await operation.create({\n type: 'task',\n id: comment._id,\n message: comment.message,\n parentCommentId: comment.parentCommentId,\n reactions: comment.reactions || EMPTY_ARRAY,\n status: comment.status,\n threadId: comment.threadId,\n context: {\n notification,\n },\n })\n }\n\n const handleCommentReact = async (id: string, reaction: CommentReactionOption) => {\n await operation.react(id, reaction)\n }\n\n const handleDeleteCommentStart = (id: string) => setCommentToDeleteId(id)\n const handleDeleteCommentCancel = () => setCommentToDeleteId(null)\n\n const handleDeleteCommentConfirm = async (id: string) => {\n try {\n setCommentDeleteLoading(true)\n setCommentDeleteError(null)\n await operation.remove(id)\n setCommentToDeleteId(null)\n } catch (err) {\n setCommentDeleteError(err)\n }\n setCommentDeleteLoading(false)\n }\n\n const handleCommentEdit = async (id: string, next: CommentUpdatePayload) => {\n await operation.update(id, next)\n }\n\n const activity: Activity[] = useMemo(() => {\n const taskActivity: Activity[] = activityData.map((item) => ({\n _type: 'activity' as const,\n payload: item,\n timestamp: item.timestamp,\n }))\n const commentsActivity: Activity[] = taskComments.map((comment) => ({\n _type: 'comment' as const,\n payload: comment,\n timestamp: comment.parentComment._createdAt,\n }))\n\n return taskActivity\n .concat(commentsActivity)\n .sort((a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime())\n }, [activityData, taskComments])\n const {t} = useTranslation(tasksLocaleNamespace)\n\n const commentToDeleteIsParent = useMemo(() => {\n const parent = taskComments.find((c) => c.parentComment?._id === commentToDeleteId)\n const isParent = Boolean(parent && parent?.replies?.length > 0)\n\n return isParent\n }, [commentToDeleteId, taskComments])\n\n return (\n <>\n {commentToDeleteId && (\n <CommentDeleteDialog\n commentId={commentToDeleteId}\n error={commentDeleteError}\n isParent={commentToDeleteIsParent}\n loading={commentDeleteLoading}\n onClose={handleDeleteCommentCancel}\n onConfirm={handleDeleteCommentConfirm}\n />\n )}\n\n <Stack gap={5}>\n <Flex align=\"center\">\n <Box flex={1}>\n <Text size={2} weight=\"semibold\">\n {t('panel.activity.title')}\n </Text>\n </Box>\n\n {currentUser?.id && (\n <TasksSubscribers\n currentUserId={currentUser.id}\n value={value}\n onChange={onChange}\n path={path}\n />\n )}\n </Flex>\n\n {loading && <LoadingBlock showText title=\"Loading activity\" />}\n\n <AnimatePresence>\n {!loading && (\n <MotionStack animate=\"visible\" initial=\"hidden\" gap={4} variants={VARIANTS}>\n {value.createdByUser && (\n <Stack paddingBottom={1}>\n <TasksActivityCreatedAt\n createdAt={value.createdByUser}\n authorId={value.authorId}\n />\n </Stack>\n )}\n\n {currentUser && (\n <Stack gap={4} marginTop={1}>\n {activity.map((item) => {\n if (item._type === 'activity') {\n return <EditedAt key={item.timestamp} activity={item.payload} />\n }\n\n return (\n <TasksActivityCommentItem\n key={item.payload.parentComment._id}\n currentUser={currentUser}\n mentionOptions={mentionOptions}\n onCreateRetry={handleCommentCreateRetry}\n onDelete={handleDeleteCommentStart}\n onEdit={handleCommentEdit}\n onReactionSelect={handleCommentReact}\n onReply={handleCommentReply}\n parentComment={item.payload.parentComment}\n replies={item.payload.replies}\n />\n )\n })}\n\n <TasksActivityCommentInput\n currentUser={currentUser}\n mentionOptions={mentionOptions}\n onSubmit={handleCommentCreate}\n />\n </Stack>\n )}\n </MotionStack>\n )}\n </AnimatePresence>\n </Stack>\n </>\n )\n}\n","import {type Path} from '@sanity/types'\nimport {\n Badge,\n Box,\n // oxlint-disable-next-line no-restricted-imports\n Button,\n Flex,\n Text,\n TextSkeleton,\n} from '@sanity/ui'\nimport {useCallback, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Tooltip} from '../../../../../../ui-components/tooltip/Tooltip'\nimport {useFormValue} from '../../../../../form/contexts/FormValue'\nimport {set} from '../../../../../form/patch/patch'\nimport {type PatchEvent} from '../../../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../../../form/patch/types'\nimport {useTranslation} from '../../../../../i18n/hooks/useTranslation'\nimport {useMentionUser} from '../../../../context/mentionUser/useMentionUser'\nimport {tasksLocaleNamespace} from '../../../../i18n'\nimport {TasksUserAvatar} from '../../../TasksUserAvatar'\nimport {AssigneeSelectionMenu} from './AssigneeSelectionMenu'\n\nconst StyledButton = styled(Button)`\n padding: 3px 6px;\n`\n\ninterface AssigneeEditFormFieldProps {\n value: string | undefined\n path: Path\n onChange: (patch: FormPatch | PatchEvent | FormPatch[]) => void\n}\n\nexport function AssigneeEditFormField(props: AssigneeEditFormFieldProps) {\n const {value, onChange, path} = props\n const subscribers = useFormValue(['subscribers']) as string[] | undefined\n const {mentionOptions} = useMentionUser()\n const mentionedUser = useMemo(\n () => mentionOptions.data?.find((u) => u.id === value),\n [mentionOptions.data, value],\n )\n const {t} = useTranslation(tasksLocaleNamespace)\n\n const onSelect = useCallback(\n (userId: string) => {\n onChange(set(userId, path))\n if (subscribers && !subscribers.includes(userId) && userId) {\n onChange(set([...subscribers, userId], ['subscribers']))\n }\n },\n [onChange, path, subscribers],\n )\n\n const displayText = useMemo(() => {\n if (value) {\n if (mentionOptions.loading) return <TextSkeleton animated style={{width: '10ch'}} />\n if (mentionedUser) return mentionedUser.displayName || mentionedUser.email\n if (!mentionedUser) return t('form.input.assignee.user-not-found.text')\n }\n return t('form.input.assignee.no-user-assigned.text')\n }, [mentionOptions.loading, mentionedUser, value, t])\n\n return (\n <AssigneeSelectionMenu\n onSelect={onSelect}\n value={value}\n menuButton={\n <StyledButton mode=\"ghost\" padding={0}>\n <Tooltip\n content={\n value\n ? t('form.input.assignee.user-assigned.tooltip')\n : t('form.input.assignee.no-user-assigned.tooltip')\n }\n >\n <Flex align=\"center\" gap={3}>\n <Flex align=\"center\" gap={2} flex={1}>\n <TasksUserAvatar user={mentionedUser} size={0} />\n <Box>\n <Text size={1} textOverflow=\"ellipsis\">\n {displayText}\n </Text>\n </Box>\n </Flex>\n\n {value && mentionedUser && !mentionedUser.granted && (\n <Badge fontSize={1}>{t('form.input.assignee.unauthorized.text')}</Badge>\n )}\n </Flex>\n </Tooltip>\n </StyledButton>\n }\n />\n )\n}\n","import {CalendarIcon} from '@sanity/icons/Calendar'\nimport {type Path} from '@sanity/types'\nimport {Box, Flex, useClickOutsideEvent} from '@sanity/ui'\nimport {DEFAULT_DATE_FORMAT, format, parse} from '@sanity/util/legacyDateFormat'\nimport {type KeyboardEvent, useCallback, useMemo, useRef, useState} from 'react'\nimport ReactFocusLock from 'react-focus-lock'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {Popover} from '../../../../../ui-components/popover/Popover'\nimport {type CalendarLabels} from '../../../../components/inputs/DateInputs/calendar/types'\nimport {DatePicker} from '../../../../components/inputs/DateInputs/DatePicker'\nimport {getCalendarLabels} from '../../../../form/inputs/DateInputs/utils'\nimport {set, unset} from '../../../../form/patch/patch'\nimport {type PatchEvent} from '../../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../../form/patch/types'\nimport {useDateTimeFormat, type UseDateTimeFormatOptions} from '../../../../hooks/useDateTimeFormat'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {SCHEDULED_PUBLISHING_TIME_ZONE_SCOPE} from '../../../../studio/constants'\nimport {tasksLocaleNamespace} from '../../../i18n'\n\nconst serialize = (date: Date) => format(date, DEFAULT_DATE_FORMAT)\nconst deserialize = (value: string | undefined) => parse(value || '', DEFAULT_DATE_FORMAT)\n\nconst DUE_BY_DATE_OPTIONS: UseDateTimeFormatOptions = {\n dateStyle: 'long',\n timeZone: 'UTC',\n}\nconst SHORT_DATE_OPTIONS: UseDateTimeFormatOptions = {\n month: 'short',\n day: 'numeric',\n timeZone: 'UTC',\n}\nexport function DateEditFormField(props: {\n value: string | undefined\n onChange: (patch: FormPatch | PatchEvent | FormPatch[]) => void\n path: Path\n}) {\n const {value, onChange, path} = props\n const {t: coreT} = useTranslation()\n const {t} = useTranslation(tasksLocaleNamespace)\n\n const [pickerOpen, setPickerOpen] = useState(false)\n const popoverRef = useRef<HTMLDivElement | null>(null)\n const buttonRef = useRef<HTMLButtonElement | null>(null)\n const longDateFormatter = useDateTimeFormat(DUE_BY_DATE_OPTIONS)\n const shortDateFormatter = useDateTimeFormat(SHORT_DATE_OPTIONS)\n const dueByeDisplayValue = useMemo(() => {\n if (!value) return {short: '----', full: '----'}\n const dueFormatted = longDateFormatter.format(new Date(value))\n const shortDueFormatted = shortDateFormatter.format(new Date(value))\n return {short: shortDueFormatted, full: dueFormatted}\n }, [longDateFormatter, shortDateFormatter, value])\n\n useClickOutsideEvent(\n () => setPickerOpen(false),\n () => [popoverRef.current],\n )\n\n const handleKeyUp = useCallback((e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape') {\n setPickerOpen(false)\n }\n }, [])\n const handleClick = useCallback(() => setPickerOpen((p) => !p), [])\n const calendarLabels: CalendarLabels = useMemo(() => getCalendarLabels(coreT), [coreT])\n const handleChange = useCallback(\n (nextDate: Date | null) => {\n if (nextDate) {\n onChange(set(serialize(nextDate), path))\n } else {\n onChange(unset(path))\n }\n setPickerOpen(false)\n },\n [onChange, path],\n )\n\n const deserializedValue = deserialize(value)\n const handleDeactivation = useCallback(() => {\n buttonRef.current?.focus()\n }, [buttonRef])\n const dueDateIsThisYear = deserializedValue?.date?.getFullYear() === new Date().getFullYear()\n\n return (\n <Popover\n constrainSize\n data-testid=\"date-input-dialog\"\n portal\n ref={popoverRef}\n content={\n <Box overflow=\"auto\">\n <ReactFocusLock onDeactivation={handleDeactivation}>\n <DatePicker\n calendarLabels={calendarLabels}\n selectTime={false}\n timeStep={1}\n onKeyUp={handleKeyUp}\n value={deserializedValue.date}\n onChange={handleChange}\n timeZoneScope={SCHEDULED_PUBLISHING_TIME_ZONE_SCOPE}\n />\n {value && (\n <Flex justify={'flex-start'} padding={3} paddingTop={0}>\n <Button\n mode=\"bleed\"\n text={t('form.input.date.buttons.remove.text')}\n onClick={() => handleChange(null)}\n tone=\"critical\"\n />\n </Flex>\n )}\n </ReactFocusLock>\n </Box>\n }\n open={pickerOpen}\n placement=\"bottom\"\n fallbackPlacements={['bottom-start', 'bottom-end']}\n >\n <Button\n icon={CalendarIcon}\n mode=\"ghost\"\n text={dueDateIsThisYear ? dueByeDisplayValue.short : dueByeDisplayValue.full}\n onClick={handleClick}\n ref={buttonRef}\n tooltipProps={{\n content: value\n ? t('form.input.date.buttons.tooltip')\n : t('form.input.date.buttons.empty.tooltip'),\n }}\n />\n </Popover>\n )\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {CircleIcon} from '@sanity/icons/Circle'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {type Path, type TitledListValue} from '@sanity/types'\nimport {Menu} from '@sanity/ui'\nimport {useCallback, type RefAttributes} from 'react'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {MenuButton} from '../../../../../ui-components/menuButton/MenuButton'\nimport {MenuItem} from '../../../../../ui-components/menuItem/MenuItem'\nimport {set} from '../../../../form/patch/patch'\nimport {type PatchEvent} from '../../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../../form/patch/types'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {TaskStatusChanged} from '../../../__telemetry__/tasks.telemetry'\nimport {TASK_STATUS} from '../../../constants/TaskStatus'\nimport {tasksLocaleNamespace} from '../../../i18n'\n\nfunction StatusMenuButton(\n props: {\n value: string | undefined\n options: TitledListValue<string>[]\n } & RefAttributes<HTMLButtonElement>,\n) {\n const {t} = useTranslation(tasksLocaleNamespace)\n const {ref, value, options, ...rest} = props\n const selectedOption = options.find((option) => option.value === value)\n const icon = TASK_STATUS.find((status) => status.value === value)?.icon\n return (\n <Button\n {...rest}\n ref={ref}\n tooltipProps={{content: t('form.input.status.button.tooltip')}}\n icon={icon}\n text={selectedOption?.title || value}\n tone=\"default\"\n mode=\"ghost\"\n />\n )\n}\n\ninterface StatusSelectorProps {\n value: string | undefined\n path: Path\n options: TitledListValue<string>[]\n onChange: (patch: FormPatch | PatchEvent | FormPatch[]) => void\n}\n\nexport function StatusSelector(props: StatusSelectorProps) {\n const {value, onChange, options, path} = props\n const telemetry = useTelemetry()\n\n const handleStatusChange = useCallback(\n (next?: string) => {\n onChange(set(next, path))\n telemetry.log(TaskStatusChanged, {from: value, to: next})\n },\n [onChange, path, telemetry, value],\n )\n\n return (\n <MenuButton\n button={<StatusMenuButton value={value} options={options} />}\n id={`reference-menuButton`}\n menu={\n <Menu>\n {options.map((option) => {\n const isSelected = value === option.value\n const icon = TASK_STATUS.find((status) => status.value === option.value)?.icon\n return (\n <MenuItem\n key={option.title}\n icon={typeof option.value === 'string' ? icon || CircleIcon : CircleIcon}\n text={option.title || option.value}\n pressed={isSelected}\n iconRight={isSelected && <CheckmarkIcon />}\n onClick={() => handleStatusChange(option.value)}\n />\n )\n })}\n </Menu>\n }\n />\n )\n}\n","import {Stack, Text} from '@sanity/ui'\n\nimport {Dialog} from '../../../../ui-components/dialog/Dialog'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {type useRemoveTask} from '../../hooks/useRemoveTask'\nimport {tasksLocaleNamespace} from '../../i18n'\n\nexport function RemoveTaskDialog(props: ReturnType<typeof useRemoveTask>) {\n const {handleCloseDialog, handleRemove, removeStatus, showDialog} = props\n const {t} = useTranslation(tasksLocaleNamespace)\n if (showDialog) {\n return (\n <Dialog\n id=\"remove-task\"\n header={t('dialog.remove-task.title')}\n onClose={handleCloseDialog}\n footer={{\n cancelButton: {\n text: t('dialog.remove-task.buttons.cancel.text'),\n onClick: handleCloseDialog,\n },\n confirmButton: {\n text: t('dialog.remove-task.buttons.confirm.text'),\n tone: 'critical',\n onClick: handleRemove,\n loading: removeStatus === 'loading',\n },\n }}\n >\n <Stack gap={3}>\n <Text as=\"p\">{t('dialog.remove-task.body')}</Text>\n </Stack>\n </Dialog>\n )\n }\n return null\n}\n","import {CopyIcon} from '@sanity/icons/Copy'\nimport {LinkIcon} from '@sanity/icons/Link'\nimport {TrashIcon} from '@sanity/icons/Trash'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {type PortableTextBlock} from '@sanity/types'\nimport {Box, Card, Flex, Menu, MenuDivider, Stack} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {useCallback, useMemo} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {MenuButton} from '../../../../../ui-components/menuButton/MenuButton'\nimport {MenuItem} from '../../../../../ui-components/menuItem/MenuItem'\nimport {TooltipDelayGroupProvider} from '../../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {CommentsProvider} from '../../../../comments/context/comments/CommentsProvider'\nimport {ContextMenuButton} from '../../../../components/contextMenuButton/ContextMenuButton'\nimport {LoadingBlock} from '../../../../components/loadingBlock/LoadingBlock'\nimport {set} from '../../../../form/patch/patch'\nimport {type PatchEvent} from '../../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../../form/patch/types'\nimport {type ObjectInputProps} from '../../../../form/types/inputProps'\nimport {TransformPatches} from '../../../../form/utils/TransformPatches'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {useCurrentUser} from '../../../../store/user/hooks'\nimport {TaskDuplicated, TaskRemoved} from '../../../__telemetry__/tasks.telemetry'\nimport {useTasksEnabled} from '../../../context/enabled/useTasksEnabled'\nimport {useTasksNavigation} from '../../../context/navigation/useTasksNavigation'\nimport {useActivityLog} from '../../../hooks/useActivityLog'\nimport {useRemoveTask} from '../../../hooks/useRemoveTask'\nimport {tasksLocaleNamespace} from '../../../i18n'\nimport {type TaskDocument} from '../../../types'\nimport {TasksActivityLog} from '../../activity/TasksActivityLog'\nimport {CurrentWorkspaceProvider} from '../CurrentWorkspaceProvider'\nimport {AssigneeEditFormField} from '../fields/assignee/AssigneeEditFormField'\nimport {DateEditFormField} from '../fields/DateEditFormField'\nimport {StatusSelector} from '../fields/StatusSelector'\nimport {Title} from '../fields/TitleField'\nimport {RemoveTaskDialog} from '../RemoveTaskDialog'\nimport {getMentionedUsers} from '../utils'\n\nconst FirstRow = styled(Flex)((props) => {\n const theme = getTheme_v2(props.theme)\n return css`\n column-gap: ${theme.space[2]}px;\n row-gap: ${theme.space[3]}px;\n `\n})\n\nfunction FormActionsMenu({id, value}: {id: string; value: TaskDocument}) {\n const {setViewMode, handleCopyLinkToTask} = useTasksNavigation()\n const {mode} = useTasksEnabled()\n const telemetry = useTelemetry()\n\n const onTaskRemoved = useCallback(() => {\n setViewMode({type: 'list'})\n telemetry.log(TaskRemoved)\n }, [setViewMode, telemetry])\n const removeTask = useRemoveTask({id, onRemoved: onTaskRemoved})\n\n const duplicateTask = useCallback(() => {\n setViewMode({type: 'duplicate', duplicateTaskValues: value})\n telemetry.log(TaskDuplicated)\n }, [setViewMode, telemetry, value])\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n return (\n <>\n <Box paddingTop={3}>\n <MenuButton\n id=\"edit-task-menu\"\n button={<ContextMenuButton />}\n popover={{\n placement: 'bottom',\n fallbackPlacements: ['bottom-end', 'bottom-start'],\n }}\n menu={\n <Menu>\n <MenuItem\n text={t('menuitem.duplicate.text')}\n icon={CopyIcon}\n onClick={duplicateTask}\n tooltipProps={\n mode === 'upsell' ? {content: t('menuitem.duplicate.upsell-tooltip')} : undefined\n }\n disabled={mode === 'upsell'}\n />\n <MenuItem\n text={t('menuitem.copylink.text')}\n icon={LinkIcon}\n onClick={handleCopyLinkToTask}\n />\n <MenuDivider />\n <MenuItem\n text={t('menuitem.delete.text')}\n icon={TrashIcon}\n onClick={removeTask.handleOpenDialog}\n tone=\"critical\"\n />\n </Menu>\n }\n />\n </Box>\n <RemoveTaskDialog {...removeTask} />\n </>\n )\n}\n\nfunction FormEditInner(props: ObjectInputProps) {\n const statusField = props.schemaType.fields.find((f) => f.name === 'status')\n const value = props.value as TaskDocument\n const currentUser = useCurrentUser()\n const {t} = useTranslation(tasksLocaleNamespace)\n const activityData = useActivityLog(value).changes\n const handleChangeAndSubscribe = useCallback(\n (patch: FormPatch | PatchEvent | FormPatch[]) => {\n const subscribers = value.subscribers || []\n props.onChange(patch)\n if (!currentUser) return\n if (!subscribers.includes(currentUser.id)) {\n props.onChange(set([...subscribers, currentUser.id], ['subscribers']))\n }\n },\n [currentUser, props, value.subscribers],\n )\n if (!statusField) {\n throw new Error('Status field not found')\n }\n if (!value?._id) {\n return <LoadingBlock />\n }\n\n return (\n <>\n <Flex align=\"flex-start\" gap={3}>\n <Stack flex={1}>\n <Title\n onChange={handleChangeAndSubscribe}\n value={props.value?.title}\n path={['title']}\n placeholder={t('form.input.title.placeholder')}\n />\n </Stack>\n <FormActionsMenu id={props.value?._id} value={value} />\n </Flex>\n\n <Card borderTop marginTop={3}>\n <FirstRow\n paddingBottom={3}\n paddingTop={4}\n align=\"flex-start\"\n justify=\"flex-start\"\n wrap=\"wrap\"\n >\n <TooltipDelayGroupProvider>\n <StatusSelector\n value={props.value?.status}\n path={['status']}\n onChange={handleChangeAndSubscribe}\n options={statusField.type.options.list}\n />\n <AssigneeEditFormField\n value={props.value?.assignedTo}\n onChange={handleChangeAndSubscribe}\n path={['assignedTo']}\n />\n <DateEditFormField\n value={props.value?.dueBy}\n onChange={handleChangeAndSubscribe}\n path={['dueBy']}\n />\n </TooltipDelayGroupProvider>\n </FirstRow>\n </Card>\n\n {props.renderDefault(props)}\n <CurrentWorkspaceProvider>\n <CommentsProvider\n documentId={value._id}\n documentType=\"tasks.task\"\n sortOrder=\"asc\"\n type=\"task\"\n >\n <Card borderTop paddingTop={4} marginTop={4} paddingBottom={6}>\n <TasksActivityLog\n value={value}\n onChange={props.onChange}\n path={['subscribers']}\n activityData={activityData}\n />\n </Card>\n </CommentsProvider>\n </CurrentWorkspaceProvider>\n </>\n )\n}\n\nexport function FormEdit(props: ObjectInputProps) {\n const value = props.value as TaskDocument\n const currentUser = useCurrentUser()\n const subscribers = useMemo(() => value.subscribers || [], [value.subscribers])\n\n const transformPatches = useCallback(\n (patches: FormPatch[]) => {\n if (!currentUser) return patches\n if (patches.some((patch) => patch.path[0] === 'subscribers')) {\n return patches\n }\n if (\n patches.some((patch) => patch.path[0] === 'context' && patch.path[1] === 'notification')\n ) {\n return patches\n }\n\n const newSubscribers = [...subscribers]\n\n // If the assignee field is changing, we should subscribe the new assignee to the task.\n const changeAssigneePatch = patches.find((patch) => patch.path[0] === 'assignedTo')\n if (\n changeAssigneePatch &&\n changeAssigneePatch.type === 'set' &&\n typeof changeAssigneePatch.value === 'string' &&\n !newSubscribers.includes(changeAssigneePatch.value)\n ) {\n newSubscribers.push(changeAssigneePatch.value)\n }\n\n // When the user edits the form it should be subscribed to it, unless he is changing the subscribers list.\n if (!newSubscribers.includes(currentUser.id)) {\n newSubscribers.push(currentUser.id)\n }\n\n // Check if the description field changed, and new mentions have been added.\n const changedDescriptionPatch = patches.find(\n (patch) => patch.path[0] === 'description' && patch.type === 'set',\n )\n if (changedDescriptionPatch) {\n const prevMentionedUser = getMentionedUsers(value.description)\n const newDescription =\n changedDescriptionPatch.type === 'set'\n ? (changedDescriptionPatch.value as PortableTextBlock[] | undefined)\n : undefined\n\n const newMentionedUser = getMentionedUsers(newDescription)\n\n const diff = newMentionedUser.filter((user) => !prevMentionedUser.includes(user))\n diff.forEach((user) => {\n if (!newSubscribers.includes(user)) {\n newSubscribers.push(user)\n }\n })\n }\n\n // If the subscribers list has changed, we should update the subscribers list.\n if (newSubscribers.length !== subscribers.length) {\n patches.push(set(newSubscribers, ['subscribers']))\n }\n\n return patches\n },\n [currentUser, subscribers, value.description],\n )\n\n return (\n <TransformPatches transform={transformPatches}>\n <FormEditInner {...props} />\n </TransformPatches>\n )\n}\n","import {isImageSource} from '@sanity/asset-utils'\nimport {createImageUrlBuilder} from '@sanity/image-url'\nimport {useCallback, useEffect, useMemo} from 'react'\nimport deepEquals from 'react-fast-compare'\nimport {useRouterState} from 'sanity/router'\n\nimport {isDev} from '../../../../environment'\nimport {useFormValue} from '../../../../form/contexts/FormValue'\nimport {set} from '../../../../form/patch/patch'\nimport {type ObjectFieldProps} from '../../../../form/types/fieldProps'\nimport {useClient} from '../../../../hooks/useClient'\nimport {usePerspective} from '../../../../perspective/usePerspective'\nimport {useWorkspace} from '../../../../studio/workspace'\nimport {DEFAULT_STUDIO_CLIENT_OPTIONS} from '../../../../studioClient'\nimport {\n TASKS_SELECTED_TASK_SEARCH_PARAM,\n TASKS_SIDEBAR_SEARCH_PARAM,\n TASKS_VIEW_MODE_SEARCH_PARAM,\n} from '../../../context/navigation/types'\nimport {useDocumentPreviewValues} from '../../../hooks/useDocumentPreviewValues'\nimport {type TaskContext, type TaskDocument} from '../../../types'\nimport {CurrentWorkspaceProvider} from '../CurrentWorkspaceProvider'\n\nexport function getTaskURL(taskId: string, basePath?: string, toolName: string = ''): string {\n let path = window.location.origin\n if (basePath) path += basePath\n if (toolName) path += `/${toolName}`\n\n const currentUrl = new URL(`${path}/`)\n\n currentUrl.searchParams.set(TASKS_SIDEBAR_SEARCH_PARAM, 'tasks')\n currentUrl.searchParams.set(TASKS_SELECTED_TASK_SEARCH_PARAM, taskId)\n currentUrl.searchParams.set(TASKS_VIEW_MODE_SEARCH_PARAM, 'edit')\n return currentUrl.toString()\n}\n\nfunction TasksNotificationTargetInner(props: ObjectFieldProps<TaskDocument>) {\n const {inputProps} = props\n const {onChange} = inputProps\n const activeToolName = useRouterState(\n useCallback(\n (routerState) => (typeof routerState.tool === 'string' ? routerState.tool : undefined),\n [],\n ),\n )\n const {target, _id, context, _rev} = useFormValue([]) as TaskDocument\n const {title: workspaceTitle, basePath, name: workspaceName} = useWorkspace()\n const client = useClient(DEFAULT_STUDIO_CLIENT_OPTIONS)\n const imageBuilder = useMemo(() => createImageUrlBuilder(client), [client])\n const documentId = target?.document?._ref ?? ''\n const documentType = target?.documentType ?? ''\n\n const {perspectiveStack, selectedVariantName} = usePerspective()\n const {isLoading: previewValuesLoading, value} = useDocumentPreviewValues({\n documentId,\n documentType,\n perspectiveStack,\n variant: selectedVariantName,\n })\n const targetContentTitle = value?.title || null\n const imageUrl = isImageSource(value?.media)\n ? imageBuilder.image(value.media).width(96).height(96).url()\n : null\n\n const notificationTarget: TaskContext['notification'] = useMemo(() => {\n const contextUrl = context?.notification?.url\n const studioUrl =\n // Avoid updating the contextURL in dev mode if it already exists, persist the deployed one.\n contextUrl && isDev ? contextUrl : getTaskURL(_id, basePath, activeToolName)\n\n return {\n url: studioUrl,\n workspaceTitle,\n targetContentImageUrl: imageUrl,\n targetContentTitle: targetContentTitle,\n workspaceName,\n }\n }, [\n context?.notification?.url,\n _id,\n basePath,\n activeToolName,\n workspaceTitle,\n workspaceName,\n imageUrl,\n targetContentTitle,\n ])\n\n useEffect(() => {\n if (documentId && documentType && previewValuesLoading) {\n // Wait until the preview values are loaded\n return\n }\n\n // If the task doesn't have a _rev it means it's not created, don't add the notification target yet.\n if (!_rev) {\n return\n }\n\n if (deepEquals(context?.notification, notificationTarget)) {\n return\n }\n // Something changed, update the notification target\n onChange(set(notificationTarget, ['notification']))\n }, [_rev, context, documentId, documentType, notificationTarget, previewValuesLoading, onChange])\n\n return null\n}\n\n// This component is listening to the changes to the form value and will update the notification target in the task document.\nexport function TasksNotificationTarget(props: ObjectFieldProps<TaskDocument>) {\n return (\n <CurrentWorkspaceProvider>\n <TasksNotificationTargetInner {...props} />\n </CurrentWorkspaceProvider>\n )\n}\n","import {defineField, defineType} from '@sanity/types'\n\nimport {type ArrayFieldProps, type ObjectFieldProps} from '../../../../form/types/fieldProps'\nimport {TASK_STATUS} from '../../../constants/TaskStatus'\nimport {type FormMode} from '../../../types'\nimport {AssigneeCreateFormField} from '../fields/assignee/AssigneeCreateFormField'\nimport {DescriptionInput} from '../fields/descriptionInput/DescriptionInput'\nimport {FieldWrapper} from '../fields/FieldWrapper'\nimport {TargetField} from '../fields/TargetField'\nimport {TitleField} from '../fields/TitleField'\nimport {FormCreate} from '../tasksFormBuilder/FormCreate'\nimport {FormEdit} from '../tasksFormBuilder/FormEdit'\nimport {TasksNotificationTarget} from '../tasksFormBuilder/TasksNotificationTarget'\n\nconst targetContentField = (mode: FormMode) =>\n defineField({\n type: 'object',\n name: 'target',\n title: 'Target',\n components: {\n field: (props: ObjectFieldProps) => <TargetField {...props} mode={mode} />,\n },\n fields: [\n {\n name: 'document',\n type: 'crossDatasetReference',\n dataset: 'playground',\n weak: true,\n studioUrl: ({id, type}) => `intent/edit/id=${id};type=${type}/`,\n to: [\n {\n type: 'any_document',\n preview: {\n select: {title: 'title'},\n },\n },\n ],\n },\n {\n name: 'documentType',\n type: 'string',\n title: 'Document type',\n },\n {\n // The version segment of the targeted document id (release id or variant scope id) when\n // the task was created for a version document. See `TaskTarget.documentVersionId`.\n name: 'documentVersionId',\n type: 'string',\n hidden: true,\n },\n ],\n })\n\nconst descriptionInputField = (mode: FormMode) =>\n defineField({\n type: 'array',\n name: 'description',\n title: 'Description',\n components: {\n field: (props: ArrayFieldProps) => <DescriptionInput {...props} mode={mode} />,\n },\n of: [\n {\n type: 'block',\n name: 'block',\n of: [\n {\n name: 'mention',\n type: 'object',\n fields: [\n {\n name: 'userId',\n type: 'string',\n },\n ],\n },\n ],\n marks: {\n annotations: [],\n },\n styles: [{title: 'Normal', value: 'normal'}],\n lists: [],\n },\n ],\n })\nexport const taskSchema = (mode: FormMode) =>\n defineType({\n type: 'document',\n name: 'tasks.task',\n liveEdit: true,\n components: {\n input: mode === 'edit' ? FormEdit : FormCreate,\n },\n fields: [\n {\n type: 'string',\n title: 'Title',\n name: 'title',\n placeholder: 'Task title',\n components: {\n field: TitleField,\n },\n hidden: mode === 'edit',\n },\n ...(mode === 'edit'\n ? [targetContentField(mode), descriptionInputField(mode)]\n : [descriptionInputField(mode), targetContentField(mode)]),\n {\n type: 'string',\n name: 'assignedTo',\n title: 'Assign to',\n placeholder: 'Select assignee',\n components: {\n field: FieldWrapper,\n input: AssigneeCreateFormField,\n },\n hidden: mode === 'edit',\n },\n {\n type: 'date',\n name: 'dueBy',\n title: 'Deadline',\n placeholder: 'yyyy-mm-dd',\n components: {\n field: FieldWrapper,\n },\n hidden: mode === 'edit',\n },\n {\n type: 'string',\n name: 'authorId',\n hidden: true,\n },\n {\n type: 'string',\n name: 'createdByUser',\n hidden: true,\n },\n {\n type: 'array',\n of: [{type: 'string'}],\n name: 'subscribers',\n hidden: true,\n },\n {\n type: 'string',\n name: 'status',\n title: 'Status',\n options: {\n list: TASK_STATUS.map((s) => ({value: s.value, title: s.title})),\n },\n hidden: true,\n },\n {\n type: 'object',\n name: 'context',\n components: {\n field: TasksNotificationTarget,\n },\n fields: [\n {\n type: 'object',\n name: 'notification',\n fields: [\n {\n type: 'string',\n name: 'url',\n },\n {\n type: 'string',\n name: 'workspaceTitle',\n },\n {\n type: 'string',\n name: 'targetContentImageUrl',\n },\n {\n type: 'string',\n name: 'targetContentTitle',\n },\n ],\n },\n ],\n },\n ],\n })\n","import {useEffect, useMemo} from 'react'\n\nimport {LoadingBlock} from '../../../../components/loadingBlock/LoadingBlock'\nimport {prepareConfig} from '../../../../config/prepareConfig'\nimport {type Config} from '../../../../config/types'\nimport {useClient} from '../../../../hooks/useClient'\nimport {ResourceCacheProvider} from '../../../../store/ResourceCacheProvider'\nimport {useAddonDataset} from '../../../../studio/addonDataset/useAddonDataset'\nimport {SourceProvider, useSource} from '../../../../studio/source'\nimport {WorkspaceProvider} from '../../../../studio/workspace'\nimport {useWorkspaceLoader} from '../../../../studio/workspaceLoader/WorkspaceLoader'\nimport {API_VERSION} from '../../../constants/API_VERSION'\nimport {type FormMode} from '../../../types'\nimport {taskSchema} from './taskSchema'\n\nfunction TasksAddonWorkspaceProviderInner({\n children,\n mode,\n addonDataset,\n}: {\n addonDataset: string\n children: React.ReactNode\n mode: FormMode\n}) {\n const client = useClient({apiVersion: API_VERSION})\n const apiHost = client.config().apiHost\n // TODO: Is basePath necessary here?\n const basePath = ''\n\n // Parent workspace source, we want to use the same project id\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n const source = useSource()\n const addonDatasetConfig: Config = useMemo(\n () => ({\n basePath,\n dataset: addonDataset,\n name: `addon-dataset-${addonDataset}`,\n projectId: source.projectId,\n apiHost,\n schema: {\n types: [taskSchema(mode)],\n },\n }),\n [source.projectId, mode, apiHost, addonDataset, basePath],\n )\n\n const {workspaces} = useMemo(\n () => prepareConfig(addonDatasetConfig, {basePath}),\n [addonDatasetConfig, basePath],\n )\n const addonWorkspace = useWorkspaceLoader(workspaces[0])\n if (!addonWorkspace) return null\n return (\n <WorkspaceProvider workspace={addonWorkspace}>\n <SourceProvider source={addonWorkspace.unstable_sources[0]}>\n <ResourceCacheProvider>{children}</ResourceCacheProvider>\n </SourceProvider>\n </WorkspaceProvider>\n )\n}\n\n/**\n * Provides a workspace for the addon dataset, with the correct schema for tasks.\n * It also, creates the addon dataset if it doesn't exist.\n */\nexport function TasksAddonWorkspaceProvider(props: {children: React.ReactNode; mode: FormMode}) {\n const {client: addonDatasetClient, ready, createAddonDataset} = useAddonDataset()\n const addonDataset = addonDatasetClient?.config().dataset\n\n useEffect(() => {\n if (!addonDataset && ready) {\n // The user is trying to use the addon dataset form, but it hasn't been created yet.\n // We should create it.\n void createAddonDataset()\n }\n }, [addonDataset, ready, createAddonDataset])\n\n if (!addonDataset) {\n return <LoadingBlock />\n }\n\n return <TasksAddonWorkspaceProviderInner {...props} addonDataset={addonDataset} />\n}\n","import {type SanityDocument, type SanityDocumentLike} from '@sanity/types'\nimport {Box, rem} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {motion, type Variants} from 'motion/react'\nimport {useEffect, useMemo, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {LoadingBlock} from '../../../../components/loadingBlock/LoadingBlock'\nimport {createPatchChannel} from '../../../../form/patch/PatchChannel'\nimport {FormBuilder} from '../../../../form/studio/FormBuilder'\nimport {useDocumentForm} from '../../../../form/useDocumentForm'\nimport {PerspectiveProvider} from '../../../../perspective/PerspectiveProvider'\nimport {useCurrentUser} from '../../../../store/user/hooks'\nimport {useWorkspace} from '../../../../studio/workspace'\nimport {MentionUserProvider} from '../../../context/mentionUser/MentionUserProvider'\nimport {useMentionUser} from '../../../context/mentionUser/useMentionUser'\nimport {useTasksNavigation} from '../../../context/navigation/useTasksNavigation'\nimport {useTasks} from '../../../context/tasks/useTasks'\nimport {type TaskDocument, type TaskTarget} from '../../../types'\nimport {TasksAddonWorkspaceProvider} from '../addonWorkspace/TasksAddOnWorkspaceProvider'\nimport {getTargetValue} from '../utils'\n\nconst VARIANTS: Variants = {\n hidden: {opacity: 0},\n visible: {\n opacity: 1,\n transition: {duration: 0.2, delay: 0.2},\n },\n}\n\nconst FormBuilderRoot = styled(motion.div)((props) => {\n const theme = getTheme_v2(props.theme)\n\n return `\n // Update spacing for the form builder\n & > [data-ui='Stack'] {\n grid-gap: ${rem(theme.space[4])};\n }\n`\n})\n\n/**\n * A partial task document with the `_id` and `_type` fields.\n */\ntype TaskDocumentInitialValue = Partial<TaskDocument> & SanityDocumentLike\n\nconst TasksFormBuilderInner = ({\n documentId,\n initialValue,\n}: {\n documentId: string\n initialValue?: TaskDocumentInitialValue\n}) => {\n const [patchChannel] = useState(() => createPatchChannel())\n\n const {\n formState,\n onChange,\n onPathOpen,\n onFocus,\n onBlur,\n onSetActiveFieldGroup,\n onSetCollapsedFieldSet,\n onSetCollapsedPath,\n collapsedFieldSets,\n ready,\n collapsedPaths,\n schemaType,\n value,\n } = useDocumentForm({\n documentId,\n documentType: 'tasks.task',\n initialValue: initialValue\n ? {\n loading: false,\n value: initialValue,\n error: null,\n }\n : undefined,\n })\n\n const isLoading = formState === null || !ready\n\n // Updates the selected document in the mention user context - to verify the user permissions.\n const {setSelectedDocument} = useMentionUser()\n\n const target = isLoading ? undefined : (value?.target as TaskTarget)\n\n const targetId = target?.document?._ref\n const targetType = target?.documentType\n\n useEffect(() => {\n const documentValue =\n targetId && targetType ? ({_id: targetId, _type: targetType} as SanityDocument) : null\n\n setSelectedDocument(documentValue)\n }, [targetId, targetType, setSelectedDocument])\n\n return (\n <Box>\n {isLoading ? (\n <LoadingBlock showText />\n ) : (\n <FormBuilderRoot id=\"wrapper\" initial=\"hidden\" animate=\"visible\" variants={VARIANTS}>\n <FormBuilder\n __internal_patchChannel={patchChannel}\n id=\"root\"\n onChange={onChange}\n onPathFocus={onFocus}\n onPathOpen={onPathOpen}\n onPathBlur={onBlur}\n onFieldGroupSelect={onSetActiveFieldGroup}\n onSetFieldSetCollapsed={onSetCollapsedFieldSet}\n onSetPathCollapsed={onSetCollapsedPath}\n collapsedPaths={collapsedPaths}\n collapsedFieldSets={collapsedFieldSets}\n focusPath={formState.focusPath}\n changed={formState.changed}\n focused={formState.focused}\n groups={formState.groups}\n validation={formState.validation}\n members={formState.members}\n presence={formState.presence}\n schemaType={schemaType}\n value={value}\n hasUpstreamVersion={false}\n />\n </FormBuilderRoot>\n )}\n </Box>\n )\n}\n\n/**\n * @internal\n */\nexport function TasksFormBuilder() {\n const currentUser = useCurrentUser()\n const {activeDocument} = useTasks()\n const {dataset, projectId} = useWorkspace()\n const {\n state: {selectedTask, viewMode, duplicateTaskValues},\n } = useTasksNavigation()\n\n const initialValue: TaskDocumentInitialValue | undefined = useMemo(() => {\n if (!currentUser) return undefined\n if (!selectedTask) return undefined\n if (viewMode === 'duplicate') {\n return {\n ...duplicateTaskValues,\n title: `${duplicateTaskValues?.title} (copy)`, // Set the new task title\n createdByUser: undefined, // Remove the createdByUser field\n _id: selectedTask, // Set the new task ID\n _type: 'tasks.task',\n authorId: currentUser.id, // Set the author ID\n status: 'open',\n }\n }\n if (viewMode === 'create') {\n return {\n _id: selectedTask,\n _type: 'tasks.task',\n authorId: currentUser.id,\n status: 'open',\n subscribers: [currentUser.id],\n target: activeDocument\n ? getTargetValue({\n documentId: activeDocument.documentId,\n documentType: activeDocument.documentType,\n dataset,\n projectId,\n })\n : undefined,\n }\n }\n // For edit and draft mode, the initial value is undefined.\n return undefined\n }, [activeDocument, currentUser, dataset, duplicateTaskValues, projectId, selectedTask, viewMode])\n if (!currentUser) return <LoadingBlock showText title=\"Loading current user\" />\n if (!selectedTask) return null\n\n return (\n // This provider needs to be mounted before the TasksAddonWorkspaceProvider.\n <MentionUserProvider>\n {/* Task documents live in the addon dataset and never have release- or variant-scoped\n versions, so the form must not inherit the globally selected perspective: a selected\n variant makes `useDocumentForm` treat the task's variant target as missing (blocking all\n edits), and a selected release makes it check permissions against a nonexistent version\n document. Tasks always edit the base document, so the form gets a neutral perspective. */}\n <PerspectiveProvider selectedPerspectiveName={undefined}>\n <TasksAddonWorkspaceProvider mode={viewMode === 'edit' ? 'edit' : 'create'}>\n <TasksFormBuilderInner documentId={selectedTask} initialValue={initialValue} />\n </TasksAddonWorkspaceProvider>\n </PerspectiveProvider>\n </MentionUserProvider>\n )\n}\n","import {AddIcon} from '@sanity/icons/Add'\nimport {Box, Flex, Stack, Text} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useTasksEnabled} from '../../context/enabled/useTasksEnabled'\nimport {type SidebarTabsIds} from '../../context/navigation/types'\nimport {useTasksNavigation} from '../../context/navigation/useTasksNavigation'\nimport {useTasks} from '../../context/tasks/useTasks'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {type TaskStatus} from '../../types'\n\nconst HEADING_BY_STATUS: Record<\n TaskStatus,\n Record<\n SidebarTabsIds,\n {\n heading: string\n text: string\n }\n >\n> = {\n open: {\n assigned: {\n heading: 'empty-state.status.list.open.assigned.heading',\n text: 'empty-state.status.list.open.assigned.text',\n },\n document: {heading: 'empty-state.status.list.open.document.heading', text: ''},\n subscribed: {\n heading: 'empty-state.status.list.open.subscribed.heading',\n text: 'empty-state.status.list.open.subscribed.text',\n },\n },\n closed: {\n assigned: {\n heading: 'empty-state.status.list.closed.assigned.heading',\n text: 'empty-state.status.list.closed.assigned.text',\n },\n document: {heading: 'empty-state.status.list.closed.document.heading', text: ''},\n subscribed: {\n heading: 'empty-state.status.list.closed.subscribed.heading',\n text: 'empty-state.status.list.closed.subscribed.text',\n },\n },\n}\n\nexport function EmptyStatusListState({status}: {status: TaskStatus}) {\n const {\n state: {activeTabId},\n } = useTasksNavigation()\n const {t} = useTranslation(tasksLocaleNamespace)\n const {heading, text} = HEADING_BY_STATUS[status][activeTabId]\n return (\n <Stack gap={3}>\n <Text size={1} weight=\"semibold\">\n {t(heading)}\n </Text>\n <Text size={1}>{t(text)}</Text>\n </Stack>\n )\n}\n\nconst EMPTY_TASK_LIST: Record<\n SidebarTabsIds | 'noActiveDocument',\n {\n heading: string\n text: string\n }\n> = {\n assigned: {\n heading: 'empty-state.list.assigned.heading',\n text: 'empty-state.list.assigned.text',\n },\n subscribed: {\n heading: 'empty-state.list.subscribed.heading',\n text: 'empty-state.list.subscribed.text',\n },\n document: {\n heading: 'empty-state.list.document.heading',\n text: 'empty-state.list.document.text',\n },\n noActiveDocument: {\n heading: 'empty-state.list.no-active-document.heading',\n text: 'empty-state.list.no-active-document.text',\n },\n}\n\nconst Root = styled.div`\n max-width: 268px;\n margin: 0 auto;\n height: 100%;\n margin-top: 40%;\n`\n\nconst AnimatedText = styled(Text)`\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n animation: fadeIn 0.2s ease-in-out;\n`\n\nexport function EmptyTasksListState() {\n const {activeDocument} = useTasks()\n const {mode} = useTasksEnabled()\n const {\n state: {activeTabId},\n setViewMode,\n } = useTasksNavigation()\n\n const key = !activeDocument && activeTabId === 'document' ? 'noActiveDocument' : activeTabId\n\n const {heading, text} = EMPTY_TASK_LIST[key]\n const {t} = useTranslation(tasksLocaleNamespace)\n\n const handleTaskCreate = useCallback(() => {\n setViewMode({type: 'create'})\n }, [setViewMode])\n return (\n <Root>\n <Flex direction={'column'} gap={3} align={'center'} flex={1} justify={'center'}>\n <AnimatedText key={key} size={1} weight=\"semibold\">\n {t(heading)}\n </AnimatedText>\n <Box paddingBottom={6} paddingTop={1}>\n <AnimatedText key={key} size={1} align=\"center\">\n {t(text)}\n </AnimatedText>\n </Box>\n {mode !== 'upsell' && (\n <Button\n icon={AddIcon}\n text={t('empty-state.list.create-new')}\n onClick={handleTaskCreate}\n />\n )}\n </Flex>\n </Root>\n )\n}\n","import {DocumentIcon} from '@sanity/icons/Document'\nimport {Flex, Text, TextSkeleton} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {useMemo, type RefAttributes} from 'react'\nimport {IntentLink} from 'sanity/router'\nimport {styled} from 'styled-components'\n\nimport {useSchema} from '../../../hooks/useSchema'\nimport {usePerspective} from '../../../perspective/usePerspective'\nimport {useDocumentPreviewValues} from '../../hooks/useDocumentPreviewValues'\n\nconst StyledIntentLink = styled(IntentLink)((props) => {\n const theme = getTheme_v2(props.theme)\n\n return `\n text-decoration: underline;\n text-decoration-color: ${theme.color.input.default.enabled.border};\n text-underline-offset: 2px;\n`\n})\nexport function DocumentPreview({\n documentId,\n documentType,\n}: {\n documentId: string\n documentType: string\n}) {\n const schema = useSchema()\n const documentSchema = schema.get(documentType)\n const {perspectiveStack, selectedVariantName} = usePerspective()\n const {isLoading, value} = useDocumentPreviewValues({\n documentId,\n documentType,\n perspectiveStack,\n variant: selectedVariantName,\n })\n\n const Link = useMemo(\n () =>\n function LinkComponent(\n linkProps: React.ComponentPropsWithoutRef<'a'> & RefAttributes<HTMLAnchorElement>,\n ) {\n const {ref, ...rest} = linkProps\n return (\n <StyledIntentLink\n {...rest}\n intent=\"edit\"\n params={{id: documentId, type: documentType}}\n ref={ref}\n />\n )\n },\n [documentId, documentType],\n )\n\n if (!documentSchema) {\n return null\n }\n\n return (\n <Flex align=\"center\" gap={2}>\n <Text size={1}>\n <DocumentIcon />\n </Text>\n {isLoading ? (\n <TextSkeleton size={1} muted />\n ) : (\n <Text size={1} as={Link} weight=\"medium\" style={{maxWidth: '20ch'}} textOverflow=\"ellipsis\">\n {value?.title || 'Untitled'}\n </Text>\n )}\n </Flex>\n )\n}\n","import {Checkbox, Flex, Spinner} from '@sanity/ui'\nimport {useCallback, useState} from 'react'\n\nimport {useTaskOperations} from '../../hooks/useTaskOperations'\n\ninterface TasksStatusProps {\n documentId: string\n status?: string\n}\n\nexport function TasksStatus(props: TasksStatusProps) {\n const operations = useTaskOperations()\n const {documentId, status} = props\n\n const [checkboxValue, setCheckboxValue] = useState(status === 'closed')\n const [isLoading, setIsLoading] = useState(false)\n\n const handleCheckboxChange = useCallback(\n async (event: React.ChangeEvent<HTMLInputElement>) => {\n const isChecked = event.target.checked\n setCheckboxValue(isChecked)\n setIsLoading(true)\n\n try {\n if (isChecked) {\n await operations.edit(documentId, {status: 'closed'})\n } else if (!isChecked) {\n await operations.edit(documentId, {status: 'open'})\n }\n } catch (error) {\n console.error('An error occurred while updating the task status', error)\n }\n setIsLoading(false)\n },\n [documentId, operations],\n )\n\n return (\n <Flex>\n {isLoading ? (\n <div style={{height: '17px', width: '17px'}}>\n <Spinner style={{marginLeft: '3.5px', marginRight: '3.5px', marginTop: '3.5px'}} />\n </div>\n ) : (\n <Checkbox onChange={handleCheckboxChange} checked={checkboxValue} disabled={isLoading} />\n )}\n </Flex>\n )\n}\n","import {\n Box,\n // oxlint-disable-next-line no-restricted-imports\n Button as UIButton,\n Card,\n Flex,\n Stack,\n Text,\n} from '@sanity/ui'\nimport {isThisISOWeek} from 'date-fns/isThisISOWeek'\nimport {isToday} from 'date-fns/isToday'\nimport {useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport {useDateTimeFormat, type UseDateTimeFormatOptions} from '../../../hooks/useDateTimeFormat'\nimport {type TaskDocument} from '../../types'\nimport {TasksUserAvatar} from '../TasksUserAvatar'\nimport {DocumentPreview} from './DocumentPreview'\nimport {TasksStatus} from './TasksStatus'\n\ninterface TasksListItemProps extends Pick<\n TaskDocument,\n 'title' | 'assignedTo' | 'dueBy' | 'target' | 'status'\n> {\n documentId: string\n onSelect: () => void\n}\n\nconst TitleButton = styled(UIButton)`\n width: 100%;\n max-width: 100%;\n`\n\nconst TaskDetailsRoot = styled(Flex)`\n /* Checkbox width is 17px and first row gap is 12px. */\n margin-left: 29px;\n`\n\nfunction getTargetDocumentMeta(target?: TaskDocument['target']) {\n if (!target?.document?._ref) {\n return undefined\n }\n\n return {\n _ref: target?.document._ref,\n _type: target?.documentType,\n }\n}\nconst FULL_DATE_FORMAT_OPTIONS: UseDateTimeFormatOptions = {\n dateStyle: 'medium',\n timeZone: 'UTC',\n}\nconst MONTH_AND_DAY_FORMAT_OPTIONS: UseDateTimeFormatOptions = {\n month: 'short',\n day: 'numeric',\n timeZone: 'UTC',\n}\nconst DAY_FORMAT_OPTIONS: UseDateTimeFormatOptions = {\n weekday: 'long',\n timeZone: 'UTC',\n}\nfunction TaskDueDate({dueBy}: {dueBy: string}) {\n const fullDateFormatter = useDateTimeFormat(FULL_DATE_FORMAT_OPTIONS)\n const monthAndDayFormatter = useDateTimeFormat(MONTH_AND_DAY_FORMAT_OPTIONS)\n const dayFormatter = useDateTimeFormat(DAY_FORMAT_OPTIONS)\n\n const dateOptions = useMemo(() => {\n const date = new Date(dueBy)\n return {\n fullDate: fullDateFormatter.format(date),\n monthAndDay: monthAndDayFormatter.format(date),\n day: dayFormatter.format(date),\n isDueByToday: isToday(date),\n isDueThisWeek: isThisISOWeek(date),\n }\n }, [dayFormatter, dueBy, fullDateFormatter, monthAndDayFormatter])\n const {fullDate, monthAndDay, day, isDueByToday, isDueThisWeek} = dateOptions\n\n return (\n <Tooltip content={fullDate}>\n <Card tone={isDueByToday ? 'critical' : 'transparent'} padding={1} radius={2}>\n <Flex align=\"center\" gap={2}>\n <Text as=\"time\" size={1} dateTime={dueBy} muted>\n {isDueByToday ? 'Today' : isDueThisWeek ? day : monthAndDay}\n </Text>\n </Flex>\n </Card>\n </Tooltip>\n )\n}\n\nexport function TasksListItem(props: TasksListItemProps) {\n const {assignedTo, title, dueBy, target, onSelect, documentId, status} = props\n const targetDocument = useMemo(() => getTargetDocumentMeta(target), [target])\n\n return (\n <Stack gap={3} data-testid=\"tasks-list-item\">\n <Flex align=\"center\" gap={1}>\n <Box>\n <TasksStatus documentId={documentId} status={status} />\n </Box>\n\n <Flex flex={1}>\n <TitleButton onClick={onSelect} mode=\"bleed\" padding={2}>\n <Text size={1} textOverflow=\"ellipsis\" weight=\"semibold\">\n {title || 'Untitled'}\n </Text>\n </TitleButton>\n </Flex>\n\n <TasksUserAvatar user={assignedTo ? {id: assignedTo} : undefined} withTooltip />\n </Flex>\n\n {(dueBy || targetDocument) && (\n <TaskDetailsRoot align=\"center\" gap={2} paddingX={0}>\n {dueBy && <TaskDueDate dueBy={dueBy} />}\n\n {targetDocument && (\n <Box marginLeft={1}>\n <DocumentPreview\n documentId={targetDocument._ref}\n documentType={targetDocument._type}\n />\n </Box>\n )}\n </TaskDetailsRoot>\n )}\n </Stack>\n )\n}\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {Box, Flex, MenuDivider, Stack, Text} from '@sanity/ui'\nimport {Fragment, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {TASK_STATUS} from '../../constants/TaskStatus'\nimport {type TaskDocument, type TaskStatus} from '../../types'\nimport {EmptyStatusListState, EmptyTasksListState} from './EmptyStates'\nimport {TasksListItem} from './TasksListItem'\n\nconst EMPTY_ARRAY: [] = []\n\nconst getLabelForStatus = (status: string) => {\n const statusConfig = TASK_STATUS.find((item) => item.value === status)\n return statusConfig?.title\n}\n\nconst DetailsFlex = styled(Flex)`\n [data-ui='summary-icon'] {\n transition: transform 0.2s;\n transform: rotate(-90deg);\n }\n &[open] [data-ui='summary-icon'] {\n transform: rotate(0);\n }\n > summary::-webkit-details-marker {\n display: none;\n }\n`\nconst SummaryBox = styled(Box)`\n list-style: none;\n`\n\ninterface TaskListProps {\n status: TaskStatus\n tasks: TaskDocument[]\n onTaskSelect: (id: string) => void\n}\n\nfunction TaskList(props: TaskListProps) {\n const {status, tasks, onTaskSelect} = props\n\n return (\n <DetailsFlex forwardedAs=\"details\" direction=\"column\" open={status === 'open'}>\n <SummaryBox forwardedAs=\"summary\" paddingY={1}>\n <Flex align=\"center\" gap={1} paddingY={1}>\n <Text size={1} weight=\"medium\" muted>\n {getLabelForStatus(status)}\n </Text>\n\n <Text muted size={1}>\n <ChevronDownIcon data-ui=\"summary-icon\" />\n </Text>\n </Flex>\n </SummaryBox>\n\n <Stack gap={4} marginTop={3} paddingBottom={5}>\n {tasks?.length > 0 ? (\n tasks.map((task, index) => {\n const showDivider = index < tasks.length - 1\n\n return (\n <Fragment key={task._id}>\n <TasksListItem\n documentId={task._id}\n title={task.title}\n dueBy={task.dueBy}\n assignedTo={task.assignedTo}\n target={task.target}\n onSelect={() => onTaskSelect(task._id)}\n status={task.status}\n />\n\n {showDivider && <MenuDivider />}\n </Fragment>\n )\n })\n ) : (\n <EmptyStatusListState status={status} />\n )}\n </Stack>\n </DetailsFlex>\n )\n}\n\ninterface TasksListProps {\n onTaskSelect: (id: string) => void\n items: TaskDocument[]\n}\n\n/**\n * @internal\n */\nexport function TasksList(props: TasksListProps) {\n const {items = EMPTY_ARRAY, onTaskSelect} = props\n\n const tasksByStatus = useMemo(\n () =>\n items.reduce((acc: Record<string, TaskDocument[]>, task) => {\n if (!acc[task.status]) {\n acc[task.status] = []\n }\n acc[task.status].push(task)\n return acc\n }, {}),\n [items],\n )\n\n const hasOpenTasks = tasksByStatus.open?.length > 0\n const hasClosedTasks = tasksByStatus.closed?.length > 0\n\n return (\n <Stack gap={4} flex={1}>\n {!hasOpenTasks && !hasClosedTasks ? (\n <EmptyTasksListState />\n ) : (\n <>\n <TaskList status=\"open\" tasks={tasksByStatus.open} onTaskSelect={onTaskSelect} />\n\n <TaskList status=\"closed\" tasks={tasksByStatus.closed} onTaskSelect={onTaskSelect} />\n </>\n )}\n </Stack>\n )\n}\n","import {Box, Container} from '@sanity/ui'\n\nimport {UpsellPanel} from '../../../studio/upsell/UpsellPanel'\nimport {useTasksUpsell} from '../../context/upsell/useTasksUpsell'\n\nexport function TasksUpsellPanel() {\n const {\n upsellData: data,\n telemetryLogs: {panelPrimaryClicked: onPrimaryClick, panelSecondaryClicked: onSecondaryClick},\n } = useTasksUpsell()\n\n if (!data) return null\n return (\n <Container width={1}>\n <Box marginBottom={6}>\n <UpsellPanel\n data={data}\n onPrimaryClick={onPrimaryClick}\n onSecondaryClick={onSecondaryClick}\n />\n </Box>\n </Container>\n )\n}\n","import {TabList, Text} from '@sanity/ui'\nimport {useCallback, useMemo} from 'react'\nimport {type CSSProperties} from 'styled-components'\n\nimport {Tab} from '../../../../ui-components/tab/Tab'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {type SidebarTabsIds} from '../../context/navigation/types'\nimport {tasksLocaleNamespace} from '../../i18n'\n\nconst LIST_STYLES: CSSProperties = {\n marginLeft: '-0.5em',\n justifyContent: 'space-between',\n display: 'flex',\n}\n\ninterface TasksListTabsProps {\n activeTabId: string\n onChange: (id: SidebarTabsIds) => void\n}\n\ninterface TasksListTab {\n id: SidebarTabsIds\n label: string\n}\n\n/**\n * @internal\n */\nexport function TasksListTabs({activeTabId, onChange}: TasksListTabsProps) {\n const {t} = useTranslation(tasksLocaleNamespace)\n\n const tabs: TasksListTab[] = useMemo(\n () => [\n {\n id: 'assigned',\n label: t('tab.assigned.label'),\n },\n {\n id: 'subscribed',\n label: t('tab.subscribed.label'),\n },\n {\n id: 'document',\n label: t('tab.document.label'),\n },\n ],\n [t],\n )\n\n const handleTabChange = useCallback(\n (tab: TasksListTab) => {\n onChange(tab.id)\n },\n [onChange],\n )\n\n return (\n <TabList gap={2} style={LIST_STYLES}>\n {tabs.map((tab) => (\n <Tab\n key={`${tab.id}-tab`}\n aria-controls={`${tab.id}-panel`}\n id={`${tab.id}-tab`}\n onClick={() => handleTabChange(tab)}\n selected={tab.id === activeTabId}\n >\n <Text size={1} weight=\"medium\">\n {tab.label}\n </Text>\n </Tab>\n ))}\n </TabList>\n )\n}\n","import {ChevronLeftIcon} from '@sanity/icons/ChevronLeft'\nimport {ChevronRightIcon} from '@sanity/icons/ChevronRight'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {useCallback} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport {TooltipDelayGroupProvider} from '../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useTasksNavigation} from '../../context/navigation/useTasksNavigation'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {type TaskDocument} from '../../types'\n\ninterface TasksActiveTabNavigationProps {\n items: TaskDocument[]\n}\n\nconst Divider = styled.div((props) => {\n const theme = getTheme_v2(props.theme)\n\n return `\n height: 25px;\n width: 1px;\n background-color: ${theme.color.input.default.enabled.border};\n `\n})\n\n/**\n * @internal\n * Navigation buttons for the active tab the user selected, will be shown when editing a task.\n */\nexport function TasksActiveTabNavigation(props: TasksActiveTabNavigationProps) {\n const {items: allItems} = props\n const {state, setViewMode} = useTasksNavigation()\n const {selectedTask} = state\n const items = allItems.filter((t) => t.status === 'open')\n const currentItemIndex = items.findIndex((item) => item._id === selectedTask)\n\n const goToPreviousTask = useCallback(() => {\n const prevTaskId =\n currentItemIndex > 0 ? items[currentItemIndex - 1]._id : items[items.length - 1]._id\n setViewMode({type: 'edit', id: prevTaskId})\n }, [currentItemIndex, items, setViewMode])\n\n const goToNextTask = useCallback(() => {\n const nextTaskId =\n currentItemIndex < items.length - 1 ? items[currentItemIndex + 1]._id : items[0]._id\n setViewMode({type: 'edit', id: nextTaskId})\n }, [currentItemIndex, items, setViewMode])\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n if (!items.length) return null\n return (\n <TooltipDelayGroupProvider>\n <Flex gap={1} align=\"center\">\n <Button\n tooltipProps={{content: t('buttons.previous.tooltip')}}\n mode=\"bleed\"\n icon={ChevronLeftIcon}\n onClick={goToPreviousTask}\n />\n <Tooltip content={t('panel.navigation.tooltip')}>\n <Box paddingY={2}>\n <Text size={1}>\n {currentItemIndex + 1} / {items.length}\n </Text>\n </Box>\n </Tooltip>\n <Button\n tooltipProps={{content: t('buttons.next.tooltip')}}\n mode=\"bleed\"\n icon={ChevronRightIcon}\n onClick={goToNextTask}\n />\n <Divider />\n </Flex>\n </TooltipDelayGroupProvider>\n )\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {Box, Menu, MenuDivider, Text} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {MenuButton, type MenuButtonProps} from '../../../../ui-components/menuButton/MenuButton'\nimport {MenuItem} from '../../../../ui-components/menuItem/MenuItem'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useCurrentUser} from '../../../store/user/hooks'\nimport {EMPTY_ARRAY} from '../../../util/empty'\nimport {useTasksNavigation} from '../../context/navigation/useTasksNavigation'\nimport {useTasks} from '../../context/tasks/useTasks'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {type TaskDocument} from '../../types'\n\nconst MENU_BUTTON_POPOVER_PROPS: MenuButtonProps['popover'] = {\n constrainSize: true,\n fallbackPlacements: ['bottom-end'],\n placement: 'bottom-end',\n portal: true,\n}\n\nconst StyledMenu = styled(Menu)`\n width: 220px;\n`\n\ninterface TasksDraftsMenuItemProps {\n isSelected: boolean\n item: TaskDocument\n onSelect: (id: string) => void\n}\n\nfunction TasksDraftsMenuItem(props: TasksDraftsMenuItemProps) {\n const {isSelected, item, onSelect} = props\n\n const handleClick = useCallback(() => {\n onSelect(item._id)\n }, [item._id, onSelect])\n\n const iconRight = isSelected ? CheckmarkIcon : undefined\n const text = item.title || 'Untitled'\n\n return (\n <MenuItem\n iconRight={iconRight}\n onClick={handleClick}\n pressed={isSelected}\n selected={isSelected}\n text={text}\n />\n )\n}\n\nexport function TasksHeaderDraftsMenu() {\n const {data} = useTasks()\n const {state, setViewMode} = useTasksNavigation()\n const {viewMode, selectedTask} = state\n\n const currentUser = useCurrentUser()\n\n const draftTasks = currentUser?.id\n ? data.filter((task) => {\n const isAuthoredByUser = task.authorId === currentUser.id\n const isDraft = !task.createdByUser\n const hasEdits = task._updatedAt !== task._createdAt\n const isNotTheTaskBeingCreated = viewMode === 'create' ? task._id !== selectedTask : true\n return isAuthoredByUser && isDraft && isNotTheTaskBeingCreated && hasEdits\n })\n : EMPTY_ARRAY\n\n const handleSelectTask = useCallback(\n (id: string) => {\n setViewMode({type: 'draft', id})\n },\n [setViewMode],\n )\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n if (!draftTasks.length) return null\n\n return (\n <MenuButton\n button={<Button text={t('buttons.draft.text')} mode=\"ghost\" iconRight={ChevronDownIcon} />}\n id=\"edit-task-menu\"\n menu={\n <StyledMenu>\n <Box padding={3}>\n <Text size={1} weight=\"semibold\">\n {t('panel.drafts.title')}\n </Text>\n </Box>\n\n <MenuDivider />\n\n {draftTasks?.map((task) => {\n return (\n <TasksDraftsMenuItem\n key={task._id}\n isSelected={selectedTask === task._id}\n item={task}\n onSelect={handleSelectTask}\n />\n )\n })}\n </StyledMenu>\n }\n popover={MENU_BUTTON_POPOVER_PROPS}\n />\n )\n}\n","import {AddIcon} from '@sanity/icons/Add'\nimport {ChevronRightIcon} from '@sanity/icons/ChevronRight'\nimport {CloseIcon} from '@sanity/icons/Close'\nimport {\n Box,\n // oxlint-disable-next-line no-restricted-imports\n Button as UIButton,\n Flex,\n Text,\n} from '@sanity/ui'\nimport {useCallback} from 'react'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useTasksEnabled} from '../../context/enabled/useTasksEnabled'\nimport {useTasksNavigation} from '../../context/navigation/useTasksNavigation'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {type TaskDocument} from '../../types'\nimport {TasksActiveTabNavigation} from './TasksActiveTabNavigation'\nimport {TasksHeaderDraftsMenu} from './TasksHeaderDraftsMenu'\n\ninterface TasksSidebarHeaderProps {\n items: TaskDocument[]\n}\n\n/**\n * @internal\n */\nexport function TasksSidebarHeader(props: TasksSidebarHeaderProps) {\n const {items: allItems} = props\n const {mode} = useTasksEnabled()\n const {state, setViewMode, handleCloseTasks} = useTasksNavigation()\n const {viewMode, activeTabId} = state\n\n const handleTaskCreate = useCallback(() => {\n setViewMode({type: 'create'})\n }, [setViewMode])\n\n const handleGoBack = useCallback(() => {\n setViewMode({type: 'list'})\n }, [setViewMode])\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n return (\n <Flex justify=\"space-between\" align=\"center\" gap={1}>\n <Flex align=\"center\" flex={1}>\n {viewMode === 'list' ? (\n <Box padding={2}>\n <Text size={2} weight=\"semibold\">\n {t('panel.title')}\n </Text>\n </Box>\n ) : (\n <>\n <UIButton mode=\"bleed\" gap={2} padding={2} onClick={handleGoBack}>\n <Text size={1}>{t('panel.title')}</Text>\n </UIButton>\n <ChevronRightIcon />\n <Box paddingX={2}>\n <Text size={1} weight=\"semibold\" style={{textTransform: 'capitalize'}}>\n {viewMode === 'create' || viewMode === 'draft'\n ? t('panel.create.title')\n : activeTabId}\n </Text>\n </Box>\n </>\n )}\n </Flex>\n {(viewMode === 'create' || viewMode === 'draft') && <TasksHeaderDraftsMenu />}\n {viewMode === 'edit' && <TasksActiveTabNavigation items={allItems} />}\n <Flex gap={1}>\n {viewMode === 'list' && (\n <Button\n icon={AddIcon}\n onClick={handleTaskCreate}\n mode=\"bleed\"\n text={t('buttons.new.text')}\n disabled={mode === 'upsell'}\n tooltipProps={\n mode === 'upsell'\n ? {\n content: t('buttons.new.upsell-tooltip'),\n }\n : undefined\n }\n />\n )}\n\n <Button\n tooltipProps={{\n content: t('panel.close.tooltip'),\n }}\n iconRight={CloseIcon}\n mode=\"bleed\"\n onClick={handleCloseTasks}\n />\n </Flex>\n </Flex>\n )\n}\n","import {Card, Flex, Spinner, Stack} from '@sanity/ui'\nimport {motion} from 'motion/react'\nimport {useCallback, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCurrentUser} from '../../../store/user/hooks'\nimport {useTasksEnabled} from '../../context/enabled/useTasksEnabled'\nimport {useTasksNavigation} from '../../context/navigation/useTasksNavigation'\nimport {useTasks} from '../../context/tasks/useTasks'\nimport {TasksFormBuilder} from '../form/tasksFormBuilder/TasksFormBuilder'\nimport {getTargetDocumentId} from '../form/utils'\nimport {TasksList} from '../list/TasksList'\nimport {TasksUpsellPanel} from '../upsell/TasksUpsellPanel'\nimport {TasksListTabs} from './TasksListTabs'\nimport {TasksSidebarHeader} from './TasksSidebarHeader'\n\nconst MotionCard = motion.create(Card)\nconst RootCard = styled(MotionCard)`\n flex: 1;\n flex-direction: column;\n`\n\nconst HeaderStack = styled(Stack)`\n border-bottom: 1px solid var(--card-border-color);\n`\n\nconst ContentFlex = styled(Flex)`\n overflow-y: scroll;\n overflow-x: hidden;\n`\n\n/**\n * @internal\n */\nfunction TasksStudioSidebarInner() {\n const {mode} = useTasksEnabled()\n const {activeDocument, data, isLoading} = useTasks()\n const {state, setActiveTab, setViewMode} = useTasksNavigation()\n const {activeTabId, viewMode, selectedTask} = state\n const currentUser = useCurrentUser()\n\n const onTaskSelect = useCallback((id: string) => setViewMode({type: 'edit', id}), [setViewMode])\n\n const filteredList = data.filter((item) => {\n if (!item.createdByUser) return false\n if (activeTabId === 'assigned') {\n return item.assignedTo === currentUser?.id\n }\n if (activeTabId === 'subscribed') {\n return currentUser?.id && item.subscribers?.includes(currentUser.id)\n }\n if (activeTabId === 'document') {\n return (\n activeDocument?.documentId && getTargetDocumentId(item.target) === activeDocument.documentId\n )\n }\n return false\n })\n\n const content = useMemo(() => {\n if (viewMode !== 'list') {\n return <TasksFormBuilder key={selectedTask} />\n }\n\n if (isLoading) {\n return (\n <Flex align=\"center\" justify=\"center\">\n <Spinner />\n </Flex>\n )\n }\n\n return (\n <>\n {mode === 'upsell' && <TasksUpsellPanel />}\n <TasksList items={filteredList} onTaskSelect={onTaskSelect} />\n </>\n )\n }, [filteredList, isLoading, onTaskSelect, selectedTask, viewMode, mode])\n\n return (\n <RootCard\n display=\"flex\"\n height=\"fill\"\n flex={1}\n overflow=\"hidden\"\n initial={{opacity: 0}}\n animate={{opacity: 1, transition: {duration: 0.2}}}\n >\n <HeaderStack gap={3} padding={3} sizing=\"border\">\n <TasksSidebarHeader items={filteredList} />\n {viewMode === 'list' && !isLoading && (\n <TasksListTabs activeTabId={activeTabId} onChange={setActiveTab} />\n )}\n </HeaderStack>\n\n <ContentFlex\n direction=\"column\"\n flex={1}\n overflow=\"auto\"\n padding={3}\n paddingTop={4}\n paddingX={4}\n sizing=\"border\"\n >\n {content}\n </ContentFlex>\n </RootCard>\n )\n}\n\n/**\n * @internal\n */\nexport function TasksStudioSidebar() {\n const {enabled} = useTasksEnabled()\n\n if (!enabled) {\n return null\n }\n\n return <TasksStudioSidebarInner />\n}\n","import {Box, Flex, Layer, useMediaIndex} from '@sanity/ui'\nimport {AnimatePresence} from 'motion/react'\nimport {css, styled} from 'styled-components'\n\nimport {type ActiveToolLayoutProps} from '../../config/studio/types'\nimport {TasksStudioSidebar} from '../components/sidebar/TasksSidebar'\nimport {useTasksEnabled} from '../context/enabled/useTasksEnabled'\nimport {useTasksNavigation} from '../context/navigation/useTasksNavigation'\n\nconst FULLSCREEN_MEDIA_INDEX = 1\nconst POSITION_ABSOLUTE_MEDIA_INDEX = 3\n\nconst RootFlex = styled(Flex)(({theme}) => {\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n const media = theme.sanity.media\n\n return css`\n min-height: 100%;\n\n @media (max-width: ${media[POSITION_ABSOLUTE_MEDIA_INDEX]}px) {\n position: relative;\n }\n `\n})\nconst SidebarMotionLayer = styled(Layer)(({theme}) => {\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n const media = theme.sanity.media\n\n return css`\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 360px;\n border-left: 1px solid var(--card-border-color);\n box-sizing: border-box;\n overflow: hidden;\n\n box-shadow:\n 0px 6px 8px -4px var(--card-shadow-umbra-color),\n 0px 12px 17px -1px var(--card-shadow-penumbra-color);\n\n @media (max-width: ${media[POSITION_ABSOLUTE_MEDIA_INDEX]}px) {\n bottom: 0;\n position: absolute;\n right: 0;\n top: 0;\n }\n\n @media (max-width: ${media[FULLSCREEN_MEDIA_INDEX]}px) {\n border-left: 0;\n min-width: 100%;\n left: 0;\n }\n `\n})\n\nfunction TasksStudioActiveToolLayoutInner(props: ActiveToolLayoutProps) {\n const mediaIndex = useMediaIndex()\n const {\n state: {isOpen},\n } = useTasksNavigation()\n\n // Lock the scroll when the sidebar is open in fullscreen mode\n const scrollLock = mediaIndex <= FULLSCREEN_MEDIA_INDEX && isOpen\n return (\n <RootFlex sizing=\"border\" height=\"fill\">\n <Box flex={1} height=\"fill\" overflow={scrollLock ? 'hidden' : 'auto'}>\n {props.renderDefault(props)}\n </Box>\n\n <AnimatePresence initial={false}>\n {isOpen && (\n <SidebarMotionLayer zOffset={100} height=\"fill\">\n <TasksStudioSidebar />\n </SidebarMotionLayer>\n )}\n </AnimatePresence>\n </RootFlex>\n )\n}\n\nexport function TasksStudioActiveToolLayout(props: ActiveToolLayoutProps) {\n const {enabled} = useTasksEnabled()\n if (!enabled) {\n return props.renderDefault(props)\n }\n\n return <TasksStudioActiveToolLayoutInner {...props} />\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TasksStudioActiveToolLayout-Dbs-1GX6.js","names":["SanityDocument","useMemo","useState","MentionUserContext","useUserListWithPermissions","MentionUserProvider","props","$","_c","selectedDocument","setSelectedDocument","t0","documentValue","permission","mentionOptions","t1","value","t2","children","useContext","MentionUserContext","MentionUserContextValue","useMentionUser","context","Error","DEFAULT_STUDIO_CLIENT_OPTIONS","API_VERSION","apiVersion","CheckmarkCircleIcon","CircleIcon","TASK_STATUS","value","title","icon","UserIcon","User","AvatarSize","Text","getTheme_v2","css","styled","Tooltip","AvatarSkeleton","UserAvatar","useUser","AvatarRoot","div","$size","$border","$removeBg","props","theme","avatar","sizes","size","TasksUserAvatar","$","_c","user","t0","border","t1","undefined","loadedUser","loading","id","t2","Symbol","for","t3","t4","withTooltip","imageUrl","t5","color","t6","title","t7","t8","t9","displayName","UserIcon","Badge","Box","Container","Flex","Menu","MenuItem","Text","TextInput","VirtualList","deburr","ChangeEvent","KeyboardEvent","useCallback","useMemo","useRef","useState","styled","MenuButton","LoadingBlock","UserWithPermission","useTranslation","useMentionUser","tasksLocaleNamespace","TasksUserAvatar","SelectItemHandler","id","MentionUserMenuItem","props","$","_c","user","onSelect","pressed","t","t0","handleSelect","t1","granted","t2","undefined","t3","t4","displayName","t5","t6","t7","t8","StyledMenu","IGNORED_KEYS","NO_ASSIGNEE_OPTION","MentionsMenu","value","searchTerm","setSearchTerm","mentionOptions","inputRef","Symbol","for","data","concat","options","event","currentTarget","handleSearchChange","bb0","deburredSearchTerm","toLocaleLowerCase","deburredOptions","map","_temp","filter","option_0","option","searchName","includes","sort","a","b","matchA","startsWith","matchB","filtered","filteredOptions","renderItem","event_0","target","current","key","focus","handleKeyDown","loading","t9","t10","maxHeight","overflowY","paddingTop","t11","length","t12","AssigneeSelectionMenu","menuButton","placement","fallbackPlacements","portal","constrainSize","Badge","Card","Flex","Text","TextSkeleton","getTheme_v2","useCallback","useMemo","css","styled","set","StringInputProps","useTranslation","useMentionUser","tasksLocaleNamespace","TasksUserAvatar","AssigneeSelectionMenu","FocusableCard","props","theme","color","input","default","enabled","placeholder","AssigneeCreateFormField","$","_c","value","onChange","mentionOptions","t0","data","find","u","id","mentionedUser","t1","userId","onSelect","t","t2","bb0","loading","t3","Symbol","for","width","displayName","email","displayText","t4","t5","t6","t7","granted","t8","t9","Box","Text","ReactNode","styled","NormalText","NormalBlockProps","children","DescriptionInputBlock","props","$","_c","t0","RenderBlockFunction","DescriptionInputBlock","renderBlock","blockProps","children","PortableTextBlock","getTheme_v2","startTransition","useCallback","useEffect","useState","css","styled","CommentInput","set","ArrayFieldProps","useTranslation","useCurrentUser","useMentionUser","tasksLocaleNamespace","FormMode","renderBlock","DescriptionInputRoot","div","$mode","$minHeight","props","theme","verticalPadding","space","minHeight","Math","max","DescriptionInput","$","_c","value","_propValue","mode","inputProps","t0","onChange","currentUser","mentionOptions","t1","next","handleChange","rootRef","setRootRef","textBoxScrollHeight","setTextBoxScrollHeight","t2","Symbol","for","ref","textBox","querySelector","height","scrollHeight","setTextboxHeight","t3","ref_0","handleSetRootRef","t","t4","t5","t6","t7","t8","_temp","t9","getTheme_v2","css","styled","StringFieldProps","FieldWrapperRoot","div","props","theme","font","text","weights","regular","FieldWrapper","$","_c","t0","renderDefault","t1","LoadingBlock","WorkspaceLoader","ConfigErrorsScreen","$","_c","t0","Symbol","for","CurrentWorkspaceProvider","children","t1","CloseIcon","DocumentIcon","Box","Card","Flex","LayerProvider","Stack","Text","getTheme_v2","useCallback","useMemo","useState","RefAttributes","IntentLink","css","styled","Button","FormFieldHeaderText","set","unset","ObjectFieldProps","useSchema","useTranslation","useDocumentPresence","SearchPopover","SearchResultItemPreview","SearchProvider","useWorkspace","getPublishedId","getVersionFromId","tasksLocaleNamespace","FormMode","TaskTarget","CurrentWorkspaceProvider","getTargetValue","FieldWrapperRoot","EmptyReferenceRoot","props","theme","color","input","default","hovered","border","Placeholder","enabled","placeholder","TargetRoot","StyledIntentLink","Preview","$","_c","value","handleRemove","documentId","document","_ref","documentType","schema","t0","get","schemaType","documentPresence","t","t1","LinkComponent","linkProps","ref","rest","versionId","id","type","undefined","CardLink","t2","t3","t4","t5","content","t6","t7","TargetField","open","setOpen","dataset","projectId","mode","inputProps","_propValue","onChange","item","_id","_type","handleItemSelect","Symbol","for","handleOpenSearch","handleCloseSearch","event","key","handleKeyDown","t8","description","inputId","title","validation","t9","t10","t11","t12","t13","Path","getTheme_v2","ChangeEvent","useCallback","useEffect","useRef","css","styled","set","unset","PatchEvent","FormPatch","StringFieldProps","Root","div","props","theme","space","TitleInput","textarea","color","font","text","family","weights","semibold","sizes","fontSize","lineHeight","input","default","enabled","fg","placeholder","Title","$","_c","value","onChange","path","ref","t0","Symbol","for","current","style","height","scrollHeight","t1","t2","event","inputValue","currentTarget","replace","handleChange","t3","t4","TitleField","inputProps","schemaType","useCallback","useMemo","useCurrentUser","useAddonDataset","TaskCreatePayload","TaskDocument","TaskEditPayload","TaskOperations","create","task","Promise","edit","id","remove","useTaskOperations","$","_c","client","createAddonDataset","currentUser","t0","payload","Error","authorId","_type","Partial","newCreatedClient","created","created_0","handleCreate","t1","set","edited","patch","commit","handleEdit","t2","id_0","delete","handleRemove","t3","operations","useCallback","useState","useTaskOperations","RemoveTaskOptions","id","onError","message","onRemoved","RemoveTasksHookValue","removeStatus","showDialog","error","handleRemove","handleOpenDialog","handleCloseDialog","useRemoveTask","t0","$","_c","setRemoveStatus","setShowDialog","setError","operations","t1","run","remove","Promise","_temp","t2","e","Symbol","for","t3","t4","resolve","setTimeout","TrashIcon","useTelemetry","Box","Flex","Switch","Text","useToast","useCallback","useEffect","useState","useEffectEvent","Button","set","ObjectInputProps","useTranslation","TaskCreated","useTasksNavigation","useTasks","useRemoveTask","tasksLocaleNamespace","TaskDocument","getMentionedUsers","getTaskSubscribers","task","subscribers","description","forEach","user","includes","push","assignedTo","FormCreate","props","$","_c","creating","setCreating","onChange","setViewMode","setActiveTab","toast","telemetry","createMore","setCreateMore","t0","Symbol","for","_temp","handleCreateMore","value","t1","type","onRemove","t2","_id","id","onRemoved","handleRemove","removeStatus","t","data","t3","t4","find","savedTask","log","closable","status","title","handleCreatingSuccess","t5","createdByUser","t6","t7","t8","handleCreatingTimeout","t9","timeoutId","setTimeout","clearTimeout","t10","t11","Date","toISOString","handleCreate","t12","renderDefault","t13","_rev","content","t14","t15","t16","t17","t18","t19","t20","t21","p","TaskDocument","FieldChange","FIELDS_TO_GROUP","GROUP_TIME","groupChanges","changes","groupedChanges","change","lastChangeProcessed","length","push","includes","field","author","lastChangeDate","Date","timestamp","changeDate","diff","Math","abs","getTime","to","TransactionLogEventWithEffects","applyPatch","TaskDocument","groupChanges","FieldChange","field","from","to","timestamp","author","omitRev","document","_rev","doc","trackFieldChanges","newestDocument","transactions","fieldsToTrack","Omit","currentDocument","changes","previousDocument","transaction","effects","documentId","documentIDs","effect","revert","forEach","push","changesSortedByTimestamp","sort","a","b","localeCompare","createdByUserIndex","findIndex","change","slice","useCallback","useEffect","useState","useEffectEvent","useClient","getTransactionsLogs","getPublishedId","FieldChange","trackFieldChanges","API_VERSION","TaskDocument","useActivityLog","task","$","_c","t0","Symbol","for","changes","setChanges","t1","apiVersion","client","t2","_id","t3","publishedId","t4","newestTaskDocument","transactions","tag","effectFormat","reverse","fieldsToTrack","parsedChanges","t5","error","console","fetchAndParse","_rev","handleFetchAndParse","t6","t7","t8","CalendarIcon","CircleIcon","EditIcon","LinkIcon","UserIcon","TextSkeleton","IntentLink","styled","useDateTimeFormat","UseDateTimeFormatOptions","RelativeTimeOptions","useRelativeTime","useSchema","usePerspective","useUser","TASK_STATUS","useDocumentPreviewValues","TaskTarget","FieldChange","DATE_FORMAT_OPTIONS","month","day","minute","hour","second","RELATIVE_TIME_OPTIONS","minimal","useTemporalPhrase","Strong","strong","NoWrap","span","useUpdatedTimeAgo","timestamp","$","_c","date","Date","dateFormatter","formattedDate","format","updatedTimeAgo","t0","timeAgo","UserName","userId","user","isLoading","t1","displayName","width","DUE_BY_DATE_OPTIONS","timeZone","DueByChange","dueBy","LinkWrapper","TargetContentChange","target","schema","documentId","document","_ref","documentType","documentSchema","get","perspectiveStack","selectedVariantName","variant","value","t2","Symbol","for","id","type","t3","title","t4","getChangeDetails","activity","text","icon","React","JSX","Element","changeTo","field","statusTitle","find","s","to","undefined","from","Box","Flex","Text","memo","Tooltip","getChangeDetails","NoWrap","UserName","useUpdatedTimeAgo","FieldChange","EditedAtProps","activity","EditedAt","props","$","_c","formattedDate","timeAgo","timestamp","t0","icon","text","changeTo","t1","t2","author","t3","t4","t5","t6","prevProps","nextProps","Box","Flex","styled","TasksUserAvatar","ActivityChildrenRoot","ActivityItemChildrenContainer","div","ActivityItemProps","userId","children","React","ReactNode","avatarPaddingTop","ActivityItem","t0","$","_c","t1","undefined","t2","id","t3","t4","t5","Card","useCallback","useMemo","useRef","useState","CommentInput","CommentInputHandle","CommentInputProps","hasCommentMessageValue","useTranslation","useTasksEnabled","tasksLocaleNamespace","ActivityItem","TasksCommentActivityInputProps","currentUser","mentionOptions","onSubmit","message","TasksActivityCommentInput","props","$","_c","mode","value","setValue","editorRef","t0","hasValue","t1","Symbol","for","nextValue","handleChange","t2","handleSubmit","t3","current","discardDialogController","close","handleDiscardCancel","t4","handleDiscardConfirm","t5","e","key","preventDefault","stopPropagation","open","handleKeyDown","t","t6","t7","t8","t9","id","getTheme_v2","css","styled","CommentsListItem","CommentsListItemProps","useTasksEnabled","ActivityItem","COMMENTS_LIST_ITEM_AVATAR_CONFIG","parentCommentAvatar","threadCommentsAvatar","replyAvatar","avatarSize","TasksActivityCommentItemProps","Omit","CommentListItemRoot","div","props","theme","space","TasksActivityCommentItem","$","_c","parentComment","mode","t0","t1","t2","authorId","Flex","Text","TextSkeleton","memo","styled","Tooltip","useTranslation","useUser","tasksLocaleNamespace","NoWrap","useUpdatedTimeAgo","ActivityItem","UserSkeleton","TasksActivityCreatedAtProps","createdAt","authorId","TasksActivityCreatedAt","props","$","_c","user","loading","timeAgo","formattedDate","t","t0","Symbol","for","fontWeight","t1","displayName","t2","t3","t4","t5","t6","t7","prevProps","nextProps","Path","AvatarStack","Flex","AnimatePresence","motion","useCallback","useMemo","Button","set","PatchEvent","FormPatch","TaskDocument","TasksUserAvatar","TasksSubscriberProps","value","path","onChange","patch","currentUserId","TasksSubscribers","props","$","_c","userIsSubscribed","subscribers","includes","buttonText","t0","concat","filter","subscriberId","handleToggleSubscribe","t1","t2","length","t3","EMPTY_ARRAY","TasksSubscriberAvatarsProps","subscriberIds","TasksSubscriberAvatars","subscriberIdsProp","Boolean","map","_temp","opacity","x","scale","transition","type","visualDuration","id","Path","Box","Flex","Stack","Text","uuid","AnimatePresence","motion","Variants","useMemo","useState","styled","CommentDeleteDialog","CommentInputProps","useComments","CommentBaseCreatePayload","CommentCreatePayload","CommentReactionOption","CommentThreadItem","CommentUpdatePayload","LoadingBlock","set","PatchEvent","FormPatch","useTranslation","useCurrentUser","useWorkspace","TASKS_SELECTED_TASK_SEARCH_PARAM","TASKS_SIDEBAR_SEARCH_PARAM","TASKS_VIEW_MODE_SEARCH_PARAM","tasksLocaleNamespace","TaskDocument","getMentionedUsers","FieldChange","EditedAt","TasksActivityCommentInput","TasksActivityCommentItem","TasksActivityCreatedAt","TasksSubscribers","EMPTY_ARRAY","VARIANTS","hidden","opacity","x","visible","MotionStack","create","TasksActivityLogProps","onChange","patch","path","value","activityData","Activity","_type","payload","timestamp","TasksActivityLog","props","$","_c","t0","t1","undefined","currentUser","title","workspaceTitle","basePath","name","workspaceName","comments","mentionOptions","operation","getComment","commentToDeleteId","setCommentToDeleteId","commentDeleteError","setCommentDeleteError","commentDeleteLoading","setCommentDeleteLoading","loading","taskComments","data","open","t2","_id","subscribers","message","commentId","studioUrl","URL","window","location","origin","searchParams","mentionedUsers","Array","from","Set","documentTitle","url","toString","handleGetNotificationValue","t3","message_0","commentId_0","notification","nextComment","id","type","parentCommentId","reactions","status","threadId","context","handleCommentCreate","t4","nextComment_0","commentId_1","notification_0","handleCommentReply","t5","comment","notification_1","handleCommentCreateRetry","t6","id_0","reaction","react","handleCommentReact","t7","Symbol","for","id_1","handleDeleteCommentStart","t8","handleDeleteCommentCancel","t9","id_2","remove","t10","err","handleDeleteCommentConfirm","id_3","next","update","handleCommentEdit","t11","taskActivity","map","_temp","commentsActivity","_temp2","concat","sort","_temp3","activity","t","t12","t13","c","parentComment","find","parent","isParent","Boolean","replies","length","commentToDeleteIsParent","t14","t15","t16","t17","t18","t19","authorId","createdByUser","item_0","item","t20","t21","t22","a","b","Date","getTime","comment_0","const","_createdAt","Path","Badge","Box","Button","Flex","Text","TextSkeleton","useCallback","useMemo","styled","Tooltip","useFormValue","set","PatchEvent","FormPatch","useTranslation","useMentionUser","tasksLocaleNamespace","TasksUserAvatar","AssigneeSelectionMenu","StyledButton","AssigneeEditFormFieldProps","value","path","onChange","patch","AssigneeEditFormField","props","$","_c","t0","Symbol","for","subscribers","mentionOptions","t1","data","find","u","id","mentionedUser","t","t2","userId","includes","onSelect","t3","bb0","loading","t4","width","displayName","email","displayText","t5","t6","t7","t8","granted","t9","t10","t11","CalendarIcon","Path","Box","Flex","useClickOutsideEvent","DEFAULT_DATE_FORMAT","format","parse","KeyboardEvent","useCallback","useMemo","useRef","useState","ReactFocusLock","Button","Popover","CalendarLabels","DatePicker","getCalendarLabels","set","unset","PatchEvent","FormPatch","useDateTimeFormat","UseDateTimeFormatOptions","useTranslation","SCHEDULED_PUBLISHING_TIME_ZONE_SCOPE","tasksLocaleNamespace","serialize","date","Date","deserialize","value","DUE_BY_DATE_OPTIONS","dateStyle","timeZone","SHORT_DATE_OPTIONS","month","day","DateEditFormField","props","$","_c","onChange","path","t","coreT","pickerOpen","setPickerOpen","popoverRef","buttonRef","longDateFormatter","shortDateFormatter","t0","bb0","t1","Symbol","for","short","full","dueFormatted","t2","shortDueFormatted","t3","dueByeDisplayValue","current","e","key","handleKeyUp","t4","_temp","handleClick","t5","calendarLabels","t6","nextDate","handleChange","deserializedValue","handleDeactivation","t7","t8","focus","getFullYear","dueDateIsThisYear","t9","t10","t11","t12","t13","t14","content","t15","t16","p","CheckmarkIcon","CircleIcon","useTelemetry","Path","TitledListValue","Menu","useCallback","RefAttributes","Button","MenuButton","MenuItem","set","PatchEvent","FormPatch","useTranslation","TaskStatusChanged","TASK_STATUS","tasksLocaleNamespace","StatusMenuButton","props","$","_c","t","options","ref","rest","value","t0","t1","option","find","selectedOption","status","icon","t2","t3","content","t4","title","t5","StatusSelectorProps","path","onChange","patch","StatusSelector","telemetry","next","log","from","to","handleStatusChange","isSelected","map","Stack","Text","Dialog","useTranslation","useRemoveTask","tasksLocaleNamespace","RemoveTaskDialog","props","$","_c","handleCloseDialog","handleRemove","removeStatus","showDialog","t","t0","t1","t2","text","onClick","t3","t4","t5","tone","loading","t6","cancelButton","confirmButton","t7","t8","t9","CopyIcon","LinkIcon","TrashIcon","useTelemetry","PortableTextBlock","Box","Card","Flex","Menu","MenuDivider","Stack","getTheme_v2","useCallback","useMemo","css","styled","MenuButton","MenuItem","TooltipDelayGroupProvider","CommentsProvider","ContextMenuButton","LoadingBlock","set","PatchEvent","FormPatch","ObjectInputProps","TransformPatches","useTranslation","useCurrentUser","TaskDuplicated","TaskRemoved","useTasksEnabled","useTasksNavigation","useActivityLog","useRemoveTask","tasksLocaleNamespace","TaskDocument","TasksActivityLog","CurrentWorkspaceProvider","AssigneeEditFormField","DateEditFormField","StatusSelector","Title","RemoveTaskDialog","getMentionedUsers","FirstRow","props","theme","space","FormActionsMenu","t0","$","_c","id","value","setViewMode","handleCopyLinkToTask","mode","telemetry","t1","type","log","onTaskRemoved","t2","onRemoved","removeTask","t3","duplicateTaskValues","duplicateTask","t","t4","Symbol","for","t5","placement","fallbackPlacements","t6","t7","content","undefined","t8","t9","t10","t11","t12","t13","t14","handleOpenDialog","t15","t16","t17","FormEditInner","schemaType","fields","find","_temp","statusField","currentUser","activityData","changes","subscribers","patch","onChange","includes","handleChangeAndSubscribe","Error","_id","title","status","options","list","assignedTo","dueBy","t18","t19","renderDefault","t20","t21","t22","t23","f","name","FormEdit","description","patches","some","_temp2","_temp3","newSubscribers","changeAssigneePatch","_temp4","push","changedDescriptionPatch","_temp5","prevMentionedUser","newDescription","newMentionedUser","diff","filter","user","forEach","user_0","length","transformPatches","patch_2","path","patch_1","patch_0","isImageSource","createImageUrlBuilder","useCallback","useEffect","useMemo","deepEquals","useRouterState","isDev","useFormValue","set","ObjectFieldProps","useClient","usePerspective","useWorkspace","DEFAULT_STUDIO_CLIENT_OPTIONS","TASKS_SELECTED_TASK_SEARCH_PARAM","TASKS_SIDEBAR_SEARCH_PARAM","TASKS_VIEW_MODE_SEARCH_PARAM","useDocumentPreviewValues","TaskContext","TaskDocument","CurrentWorkspaceProvider","getTaskURL","taskId","basePath","toolName","path","window","location","origin","currentUrl","URL","searchParams","toString","TasksNotificationTargetInner","props","$","_c","inputProps","onChange","activeToolName","_temp","t0","Symbol","for","target","_id","context","_rev","title","workspaceTitle","name","workspaceName","client","t1","imageBuilder","documentId","document","_ref","documentType","perspectiveStack","selectedVariantName","t2","variant","isLoading","previewValuesLoading","value","targetContentTitle","t3","media","image","width","height","url","imageUrl","notification","contextUrl","t4","studioUrl","t5","targetContentImageUrl","notificationTarget","t6","t7","routerState","tool","undefined","TasksNotificationTarget","defineField","defineType","ArrayFieldProps","ObjectFieldProps","TASK_STATUS","FormMode","AssigneeCreateFormField","DescriptionInput","FieldWrapper","TargetField","TitleField","FormCreate","FormEdit","TasksNotificationTarget","targetContentField","mode","type","name","title","components","field","props","fields","dataset","weak","studioUrl","id","to","preview","select","hidden","descriptionInputField","of","marks","annotations","styles","value","lists","taskSchema","liveEdit","input","placeholder","options","list","map","s","useEffect","useMemo","LoadingBlock","prepareConfig","Config","useClient","ResourceCacheProvider","useAddonDataset","SourceProvider","useSource","WorkspaceProvider","useWorkspaceLoader","API_VERSION","FormMode","taskSchema","TasksAddonWorkspaceProviderInner","t0","$","_c","children","mode","addonDataset","t1","Symbol","for","apiVersion","client","t2","config","apiHost","basePath","source","t3","t4","projectId","t5","t6","types","t7","dataset","name","schema","addonDatasetConfig","t8","workspaces","addonWorkspace","t9","t10","unstable_sources","t11","TasksAddonWorkspaceProvider","props","addonDatasetClient","ready","createAddonDataset","SanityDocument","SanityDocumentLike","Box","rem","getTheme_v2","motion","Variants","useEffect","useMemo","useState","styled","LoadingBlock","createPatchChannel","FormBuilder","useDocumentForm","PerspectiveProvider","useCurrentUser","useWorkspace","MentionUserProvider","useMentionUser","useTasksNavigation","useTasks","TaskDocument","TaskTarget","TasksAddonWorkspaceProvider","getTargetValue","VARIANTS","hidden","opacity","visible","transition","duration","delay","FormBuilderRoot","div","props","theme","space","TaskDocumentInitialValue","Partial","TasksFormBuilderInner","t0","$","_c","documentId","initialValue","patchChannel","_temp","t1","loading","value","error","undefined","t2","documentType","formState","onChange","onPathOpen","onFocus","onBlur","onSetActiveFieldGroup","onSetCollapsedFieldSet","onSetCollapsedPath","collapsedFieldSets","ready","collapsedPaths","schemaType","isLoading","setSelectedDocument","target","targetId","document","_ref","targetType","t3","t4","documentValue","_id","_type","t5","focusPath","changed","focused","groups","validation","members","presence","TasksFormBuilder","currentUser","activeDocument","dataset","projectId","state","selectedTask","viewMode","duplicateTaskValues","bb0","title","id","createdByUser","authorId","status","subscribers","Symbol","for","AddIcon","Box","Flex","Stack","Text","useCallback","styled","Button","useTranslation","useTasksEnabled","SidebarTabsIds","useTasksNavigation","useTasks","tasksLocaleNamespace","TaskStatus","HEADING_BY_STATUS","Record","heading","text","open","assigned","document","subscribed","closed","EmptyStatusListState","t0","$","_c","status","state","t1","activeTabId","t","t2","t3","t4","t5","t6","EMPTY_TASK_LIST","noActiveDocument","Root","div","AnimatedText","EmptyTasksListState","activeDocument","mode","setViewMode","key","type","handleTaskCreate","t7","DocumentIcon","Flex","Text","TextSkeleton","getTheme_v2","useMemo","RefAttributes","IntentLink","styled","useSchema","usePerspective","useDocumentPreviewValues","StyledIntentLink","props","theme","color","input","default","enabled","border","DocumentPreview","t0","$","_c","documentId","documentType","schema","documentSchema","get","perspectiveStack","selectedVariantName","t1","variant","isLoading","value","t2","LinkComponent","linkProps","ref","rest","id","type","Link","t3","Symbol","for","t4","title","maxWidth","Checkbox","Flex","Spinner","useCallback","useState","useTaskOperations","TasksStatusProps","documentId","status","TasksStatus","props","$","_c","operations","checkboxValue","setCheckboxValue","isLoading","setIsLoading","t0","event","isChecked","target","checked","edit","t1","error","console","handleCheckboxChange","height","width","marginLeft","marginRight","marginTop","Box","Button","UIButton","Card","Flex","Stack","Text","isThisISOWeek","isToday","useMemo","styled","Tooltip","useDateTimeFormat","UseDateTimeFormatOptions","TaskDocument","TasksUserAvatar","DocumentPreview","TasksStatus","TasksListItemProps","Pick","documentId","onSelect","TitleButton","TaskDetailsRoot","getTargetDocumentMeta","target","document","_ref","undefined","_type","documentType","FULL_DATE_FORMAT_OPTIONS","dateStyle","timeZone","MONTH_AND_DAY_FORMAT_OPTIONS","month","day","DAY_FORMAT_OPTIONS","weekday","TaskDueDate","t0","$","_c","dueBy","fullDateFormatter","monthAndDayFormatter","dayFormatter","t1","t2","t3","t4","t5","date","Date","format","t6","fullDate","monthAndDay","isDueByToday","isDueThisWeek","dateOptions","t7","t8","t9","t10","t11","TasksListItem","props","assignedTo","title","status","targetDocument","id","ChevronDownIcon","Box","Flex","MenuDivider","Stack","Text","Fragment","useMemo","styled","TASK_STATUS","TaskDocument","TaskStatus","EmptyStatusListState","EmptyTasksListState","TasksListItem","EMPTY_ARRAY","getLabelForStatus","status","statusConfig","find","item","value","title","DetailsFlex","SummaryBox","TaskListProps","tasks","onTaskSelect","id","TaskList","props","$","_c","t0","t1","t2","t3","Symbol","for","t4","t5","length","map","task","index","showDivider","_id","dueBy","assignedTo","target","t6","t7","TasksListProps","items","TasksList","undefined","reduce","_temp","tasksByStatus","hasOpenTasks","open","hasClosedTasks","closed","acc","push","Box","Container","UpsellPanel","useTasksUpsell","TasksUpsellPanel","$","_c","upsellData","data","telemetryLogs","t0","panelPrimaryClicked","onPrimaryClick","panelSecondaryClicked","onSecondaryClick","t1","TabList","Text","useCallback","useMemo","CSSProperties","Tab","useTranslation","SidebarTabsIds","tasksLocaleNamespace","LIST_STYLES","marginLeft","justifyContent","display","TasksListTabsProps","activeTabId","onChange","id","TasksListTab","label","TasksListTabs","t0","$","_c","t","t1","t2","t3","t4","t5","t6","t7","tabs","t8","tab","handleTabChange","t9","map","tab_0","ChevronLeftIcon","ChevronRightIcon","Box","Flex","Text","getTheme_v2","useCallback","styled","Button","Tooltip","TooltipDelayGroupProvider","useTranslation","useTasksNavigation","tasksLocaleNamespace","TaskDocument","TasksActiveTabNavigationProps","items","Divider","div","props","theme","color","input","default","enabled","border","TasksActiveTabNavigation","$","_c","allItems","state","setViewMode","selectedTask","t0","filter","_temp","t1","item","_id","findIndex","currentItemIndex","prevTaskId","length","type","id","goToPreviousTask","t2","nextTaskId","goToNextTask","t","t_0","t3","t4","content","t5","t6","t7","t8","t9","t10","t11","t12","t13","Symbol","for","t14","status","CheckmarkIcon","ChevronDownIcon","Box","Menu","MenuDivider","Text","useCallback","styled","Button","MenuButton","MenuButtonProps","MenuItem","useTranslation","useCurrentUser","EMPTY_ARRAY","useTasksNavigation","useTasks","tasksLocaleNamespace","TaskDocument","MENU_BUTTON_POPOVER_PROPS","constrainSize","fallbackPlacements","placement","portal","StyledMenu","TasksDraftsMenuItemProps","isSelected","item","onSelect","id","TasksDraftsMenuItem","props","$","_c","t0","_id","handleClick","iconRight","undefined","text","title","t1","TasksHeaderDraftsMenu","data","state","setViewMode","viewMode","selectedTask","currentUser","draftTasks","filter","task","isAuthoredByUser","authorId","isDraft","createdByUser","hasEdits","_updatedAt","_createdAt","isNotTheTaskBeingCreated","type","handleSelectTask","t","length","T0","t2","t3","T1","t4","t5","t6","Symbol","for","t7","map","task_0","t8","t9","AddIcon","ChevronRightIcon","CloseIcon","Box","Button","UIButton","Flex","Text","useCallback","useTranslation","useTasksEnabled","useTasksNavigation","tasksLocaleNamespace","TaskDocument","TasksActiveTabNavigation","TasksHeaderDraftsMenu","TasksSidebarHeaderProps","items","TasksSidebarHeader","props","$","_c","allItems","mode","state","setViewMode","handleCloseTasks","viewMode","activeTabId","t0","type","handleTaskCreate","t1","handleGoBack","t","t2","textTransform","t3","t4","t5","content","undefined","t6","t7","t8","t9","t10","Card","Flex","Spinner","Stack","motion","useCallback","useMemo","styled","useCurrentUser","useTasksEnabled","useTasksNavigation","useTasks","TasksFormBuilder","getTargetDocumentId","TasksList","TasksUpsellPanel","TasksListTabs","TasksSidebarHeader","MotionCard","create","RootCard","HeaderStack","ContentFlex","TasksStudioSidebarInner","$","_c","mode","activeDocument","data","isLoading","state","setActiveTab","setViewMode","activeTabId","viewMode","selectedTask","currentUser","t0","id","type","onTaskSelect","t1","t2","item","createdByUser","assignedTo","subscribers","includes","documentId","target","filter","filteredList","bb0","t3","Symbol","for","t4","t5","content","opacity","transition","duration","t6","t7","t8","t9","TasksStudioSidebar","enabled","Box","Flex","Layer","useMediaIndex","AnimatePresence","css","styled","ActiveToolLayoutProps","TasksStudioSidebar","useTasksEnabled","useTasksNavigation","FULLSCREEN_MEDIA_INDEX","POSITION_ABSOLUTE_MEDIA_INDEX","RootFlex","theme","media","sanity","SidebarMotionLayer","TasksStudioActiveToolLayoutInner","props","$","_c","mediaIndex","state","t0","isOpen","scrollLock","t1","t2","renderDefault","t3","t4","t5","t6","TasksStudioActiveToolLayout","enabled"],"sources":["../src/core/tasks/context/mentionUser/MentionUserProvider.tsx","../src/core/tasks/context/mentionUser/useMentionUser.ts","../src/core/tasks/constants/API_VERSION.ts","../src/core/tasks/constants/TaskStatus.tsx","../src/core/tasks/components/TasksUserAvatar.tsx","../src/core/tasks/components/form/fields/assignee/AssigneeSelectionMenu.tsx","../src/core/tasks/components/form/fields/assignee/AssigneeCreateFormField.tsx","../src/core/tasks/components/form/fields/descriptionInput/blocks/DescriptionInputBlock.tsx","../src/core/tasks/components/form/fields/descriptionInput/render/renderBlock.tsx","../src/core/tasks/components/form/fields/descriptionInput/DescriptionInput.tsx","../src/core/tasks/components/form/fields/FieldWrapper.tsx","../src/core/tasks/components/form/CurrentWorkspaceProvider.tsx","../src/core/tasks/components/form/fields/TargetField.tsx","../src/core/tasks/components/form/fields/TitleField.tsx","../src/core/tasks/hooks/useTaskOperations.ts","../src/core/tasks/hooks/useRemoveTask.ts","../src/core/tasks/components/form/tasksFormBuilder/FormCreate.tsx","../src/core/tasks/components/activity/helpers/groupChanges.ts","../src/core/tasks/components/activity/helpers/parseTransactions.ts","../src/core/tasks/hooks/useActivityLog.ts","../src/core/tasks/components/activity/helpers/index.tsx","../src/core/tasks/components/activity/TaskActivityEditedAt.tsx","../src/core/tasks/components/activity/TasksActivityItem.tsx","../src/core/tasks/components/activity/TasksActivityCommentInput.tsx","../src/core/tasks/components/activity/TasksActivityCommentItem.tsx","../src/core/tasks/components/activity/TasksActivityCreatedAt.tsx","../src/core/tasks/components/activity/TasksSubscribers.tsx","../src/core/tasks/components/activity/TasksActivityLog.tsx","../src/core/tasks/components/form/fields/assignee/AssigneeEditFormField.tsx","../src/core/tasks/components/form/fields/DateEditFormField.tsx","../src/core/tasks/components/form/fields/StatusSelector.tsx","../src/core/tasks/components/form/RemoveTaskDialog.tsx","../src/core/tasks/components/form/tasksFormBuilder/FormEdit.tsx","../src/core/tasks/components/form/tasksFormBuilder/TasksNotificationTarget.tsx","../src/core/tasks/components/form/addonWorkspace/taskSchema.tsx","../src/core/tasks/components/form/addonWorkspace/TasksAddOnWorkspaceProvider.tsx","../src/core/tasks/components/form/tasksFormBuilder/TasksFormBuilder.tsx","../src/core/tasks/components/list/EmptyStates.tsx","../src/core/tasks/components/list/DocumentPreview.tsx","../src/core/tasks/components/list/TasksStatus.tsx","../src/core/tasks/components/list/TasksListItem.tsx","../src/core/tasks/components/list/TasksList.tsx","../src/core/tasks/components/upsell/TasksUpsellPanel.tsx","../src/core/tasks/components/sidebar/TasksListTabs.tsx","../src/core/tasks/components/sidebar/TasksActiveTabNavigation.tsx","../src/core/tasks/components/sidebar/TasksHeaderDraftsMenu.tsx","../src/core/tasks/components/sidebar/TasksSidebarHeader.tsx","../src/core/tasks/components/sidebar/TasksSidebar.tsx","../src/core/tasks/plugin/TasksStudioActiveToolLayout.tsx"],"sourcesContent":["import {type SanityDocument} from '@sanity/client'\nimport {useMemo, useState} from 'react'\nimport {MentionUserContext} from 'sanity/_singletons'\n\nimport {useUserListWithPermissions} from '../../../hooks/useUserListWithPermissions'\n\n/**\n * @internal\n */\nexport function MentionUserProvider(props: {children: React.ReactNode}) {\n const [selectedDocument, setSelectedDocument] = useState<SanityDocument | null>(null)\n const mentionOptions = useUserListWithPermissions({\n documentValue: selectedDocument,\n permission: 'read',\n })\n\n const value = useMemo(\n () => ({\n mentionOptions,\n selectedDocument,\n setSelectedDocument,\n }),\n [mentionOptions, selectedDocument, setSelectedDocument],\n )\n\n return <MentionUserContext.Provider value={value}>{props.children}</MentionUserContext.Provider>\n}\n","import {useContext} from 'react'\nimport {MentionUserContext} from 'sanity/_singletons'\n\nimport {type MentionUserContextValue} from './types'\n\n/**\n * @internal\n */\nexport function useMentionUser(): MentionUserContextValue {\n const context = useContext(MentionUserContext)\n if (!context) {\n throw new Error('useMentionUser must be used within a MentionUserProvider')\n }\n return context\n}\n","import {DEFAULT_STUDIO_CLIENT_OPTIONS} from '../../studioClient'\n\nexport const API_VERSION = DEFAULT_STUDIO_CLIENT_OPTIONS.apiVersion\n","import {CheckmarkCircleIcon} from '@sanity/icons/CheckmarkCircle'\nimport {CircleIcon} from '@sanity/icons/Circle'\n\nexport const TASK_STATUS = [\n {value: 'open', title: 'To Do', icon: <CircleIcon />},\n {value: 'closed', title: 'Done', icon: <CheckmarkCircleIcon />},\n]\n","import {UserIcon} from '@sanity/icons/User'\nimport {type User} from '@sanity/types'\nimport {type AvatarSize, Text} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {css, styled} from 'styled-components'\n\nimport {Tooltip} from '../../../ui-components/tooltip/Tooltip'\nimport {AvatarSkeleton, UserAvatar} from '../../components/userAvatar/UserAvatar'\nimport {useUser} from '../../store/user/hooks'\n\nconst AvatarRoot = styled.div<{$size: AvatarSize; $border?: boolean; $removeBg?: boolean}>(\n (props) => {\n const theme = getTheme_v2(props.theme)\n return css`\n min-height: ${theme.avatar.sizes[props.$size]?.size}px;\n min-width: ${theme.avatar.sizes[props.$size]?.size}px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n ${props.$border ? 'box-shadow: inset 0 0 0 1px var(--card-border-color);' : ''};\n ${props.$removeBg ? '--card-avatar-gray-bg-color: transparent;' : ''}\n `\n },\n)\n\nexport function TasksUserAvatar(props: {\n user?: User\n size?: AvatarSize\n border?: boolean\n withTooltip?: boolean\n}) {\n const {user, size = 0, border = true} = props\n const [loadedUser, loading] = useUser(user?.id || '')\n\n if (loading) {\n return <AvatarSkeleton $size={size} animated />\n }\n\n if (!user || !loadedUser) {\n return (\n <AvatarRoot $size={size} $border={border}>\n <Text size={size}>\n <UserIcon />\n </Text>\n </AvatarRoot>\n )\n }\n\n return (\n <Tooltip\n content={loadedUser.displayName}\n disabled={!props.withTooltip}\n portal\n fallbackPlacements={['top', 'top-start']}\n placement=\"top-end\"\n >\n <AvatarRoot $size={size} $removeBg={!!loadedUser?.imageUrl}>\n <UserAvatar\n user={loadedUser}\n size={size}\n {...(loadedUser?.imageUrl ? {color: undefined} : {})}\n {...(props.withTooltip ? {title: null} : {})}\n />\n </AvatarRoot>\n </Tooltip>\n )\n}\n","import {UserIcon} from '@sanity/icons/User'\nimport {\n Badge,\n Box,\n Container,\n Flex,\n Menu,\n // oxlint-disable-next-line no-restricted-imports\n MenuItem,\n Text,\n TextInput,\n VirtualList,\n} from '@sanity/ui'\nimport deburr from 'lodash-es/deburr.js'\nimport {type ChangeEvent, type KeyboardEvent, useCallback, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {MenuButton} from '../../../../../../ui-components/menuButton/MenuButton'\nimport {LoadingBlock} from '../../../../../components/loadingBlock/LoadingBlock'\nimport {type UserWithPermission} from '../../../../../hooks/useUserListWithPermissions'\nimport {useTranslation} from '../../../../../i18n/hooks/useTranslation'\nimport {useMentionUser} from '../../../../context/mentionUser/useMentionUser'\nimport {tasksLocaleNamespace} from '../../../../i18n'\nimport {TasksUserAvatar} from '../../../TasksUserAvatar'\n\ntype SelectItemHandler = (id: string) => void\n\nfunction MentionUserMenuItem(props: {\n user: UserWithPermission\n onSelect: SelectItemHandler\n pressed: boolean\n}) {\n const {user, onSelect, pressed} = props\n const {t} = useTranslation(tasksLocaleNamespace)\n const handleSelect = useCallback(() => onSelect(user.id), [user, onSelect])\n return (\n <MenuItem onClick={handleSelect} padding={1} disabled={!user.granted} pressed={pressed}>\n <Flex align=\"center\" gap={3}>\n <Flex align=\"center\" gap={2} flex={1}>\n <TasksUserAvatar user={user.id ? user : undefined} size={1} />\n <Text size={1} textOverflow=\"ellipsis\" title={user.displayName}>\n {user.displayName}\n </Text>\n </Flex>\n\n {!user.granted && <Badge fontSize={1}>{t('form.input.assignee.unauthorized.text')}</Badge>}\n </Flex>\n </MenuItem>\n )\n}\n\nconst StyledMenu = styled(Menu)`\n width: 308px;\n border-radius: 3px;\n`\n\nconst IGNORED_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\nconst NO_ASSIGNEE_OPTION: UserWithPermission = {\n id: '',\n displayName: 'No assignee',\n granted: true,\n}\nfunction MentionsMenu({onSelect, value = ''}: {onSelect: SelectItemHandler; value?: string}) {\n const [searchTerm, setSearchTerm] = useState<string>('')\n const {mentionOptions} = useMentionUser()\n const inputRef = useRef<HTMLInputElement | null>(null)\n const options = [NO_ASSIGNEE_OPTION].concat(mentionOptions.data || [])\n const handleSearchChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n setSearchTerm(event.currentTarget.value)\n }, [])\n\n const filteredOptions = useMemo(() => {\n if (!searchTerm) return options || []\n\n // We deburr the search term and the display names so that when searching\n // for e.g \"bjorge\" we also get results for \"bjørge\"\n const deburredSearchTerm = deburr(searchTerm).toLocaleLowerCase()\n\n const deburredOptions = options?.map((option) => ({\n ...option,\n searchName: deburr(option.displayName || '').toLocaleLowerCase(),\n }))\n\n const filtered = deburredOptions\n ?.filter((option) => {\n return option?.searchName.includes(deburredSearchTerm)\n })\n // Sort by whether the displayName starts with the search term to get more relevant results first\n ?.sort((a, b) => {\n const matchA = a.searchName.startsWith(deburredSearchTerm)\n const matchB = b.searchName.startsWith(deburredSearchTerm)\n\n if (matchA && !matchB) return -1\n if (!matchA && matchB) return 1\n\n return 0\n })\n\n return filtered || []\n }, [options, searchTerm])\n\n const renderItem = useCallback(\n (user: UserWithPermission) => {\n return (\n <MentionUserMenuItem\n key={user.id}\n user={user}\n onSelect={onSelect}\n pressed={user.id === value}\n />\n )\n },\n [onSelect, value],\n )\n const handleKeyDown = useCallback((event: KeyboardEvent<HTMLElement>) => {\n // If target is input don't do anything\n if (event.target === inputRef.current) {\n return\n }\n\n if (!IGNORED_KEYS.includes(event.key)) {\n inputRef.current?.focus()\n }\n }, [])\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n if (mentionOptions.loading) {\n return (\n <Container width={0}>\n <LoadingBlock showText />\n </Container>\n )\n }\n\n return (\n <div onKeyDown={handleKeyDown}>\n <TextInput\n placeholder={t('form.input.assignee.search.placeholder')}\n autoFocus\n border={false}\n onChange={handleSearchChange}\n value={searchTerm}\n fontSize={1}\n icon={UserIcon}\n ref={inputRef}\n name=\"assigneeSearch\"\n autoComplete=\"off\"\n />\n\n <div style={{maxHeight: '320px', overflowY: 'scroll', paddingTop: '8px'}}>\n {filteredOptions.length === 0 ? (\n <Box padding={3}>\n <Text align=\"center\" size={1} muted>\n {t('form.input.assignee.search.no-users.text')}\n </Text>\n </Box>\n ) : (\n <VirtualList items={filteredOptions} renderItem={renderItem} />\n )}\n </div>\n </div>\n )\n}\n\nexport function AssigneeSelectionMenu(props: {\n onSelect: (userId: string) => void\n menuButton: React.JSX.Element\n value?: string\n}) {\n const {onSelect, menuButton, value} = props\n\n return (\n <MenuButton\n button={menuButton}\n id=\"assign-user-menu\"\n menu={\n <StyledMenu>\n <MentionsMenu onSelect={onSelect} value={value} />\n </StyledMenu>\n }\n popover={{\n placement: 'bottom',\n fallbackPlacements: ['bottom'],\n portal: true,\n constrainSize: true,\n }}\n />\n )\n}\n","import {Badge, Card, Flex, Text, TextSkeleton} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {useCallback, useMemo} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {set} from '../../../../../form/patch/patch'\nimport {type StringInputProps} from '../../../../../form/types/inputProps'\nimport {useTranslation} from '../../../../../i18n/hooks/useTranslation'\nimport {useMentionUser} from '../../../../context/mentionUser/useMentionUser'\nimport {tasksLocaleNamespace} from '../../../../i18n'\nimport {TasksUserAvatar} from '../../../TasksUserAvatar'\nimport {AssigneeSelectionMenu} from './AssigneeSelectionMenu'\n\nconst FocusableCard = styled(Card)((props) => {\n const theme = getTheme_v2(props.theme)\n return css`\n &[data-as='button'] {\n border: 1px solid var(--card-border-color);\n &:focus-within {\n border: 1px solid var(--card-focus-ring-color);\n }\n --card-muted-fg-color: ${theme.color.input.default.enabled.placeholder};\n }\n `\n})\n\nexport function AssigneeCreateFormField(props: StringInputProps) {\n const {value, onChange} = props\n const {mentionOptions} = useMentionUser()\n const mentionedUser = useMemo(\n () => mentionOptions.data?.find((u) => u.id === value),\n [mentionOptions.data, value],\n )\n\n const onSelect = useCallback((userId: string) => onChange(set(userId)), [onChange])\n const {t} = useTranslation(tasksLocaleNamespace)\n const displayText = useMemo(() => {\n if (value) {\n if (mentionOptions.loading) return <TextSkeleton animated style={{width: '10ch'}} />\n if (mentionedUser) return mentionedUser.displayName || mentionedUser.email\n if (!mentionedUser) return t('form.input.assignee.user-not-found.text')\n }\n return t('form.input.assignee.search.placeholder')\n }, [mentionOptions.loading, mentionedUser, value, t])\n\n return (\n <AssigneeSelectionMenu\n onSelect={onSelect}\n value={value}\n menuButton={\n <FocusableCard data-as=\"button\" padding={1} radius={2} tabIndex={0}>\n <Flex align=\"center\" gap={3}>\n <Flex align=\"center\" gap={1} flex={1}>\n <TasksUserAvatar user={mentionedUser} size={1} border={false} />\n <Text size={1} textOverflow=\"ellipsis\" muted={!mentionedUser}>\n {displayText}\n </Text>\n </Flex>\n\n {value && mentionedUser && !mentionedUser.granted && (\n <Badge fontSize={1}>{t('form.input.assignee.unauthorized.text')}</Badge>\n )}\n </Flex>\n </FocusableCard>\n }\n />\n )\n}\n","import {Box, Text} from '@sanity/ui'\nimport {type ReactNode} from 'react'\nimport {styled} from 'styled-components'\n\nconst NormalText = styled(Text)`\n word-break: break-word;\n`\n\ninterface NormalBlockProps {\n children: ReactNode\n}\n\nexport function DescriptionInputBlock(props: NormalBlockProps) {\n const {children} = props\n\n return (\n <Box paddingTop={2} paddingBottom={3}>\n <NormalText size={1}>{children}</NormalText>\n </Box>\n )\n}\n","import {type RenderBlockFunction} from '@portabletext/editor'\n\nimport {DescriptionInputBlock} from '../blocks/DescriptionInputBlock'\n\nexport const renderBlock: RenderBlockFunction = (blockProps) => {\n const {children} = blockProps\n\n return <DescriptionInputBlock>{children}</DescriptionInputBlock>\n}\n","import {type PortableTextBlock} from '@sanity/types'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {startTransition, useCallback, useEffect, useState} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {CommentInput} from '../../../../../comments/components/pte/comment-input/CommentInput'\nimport {set} from '../../../../../form/patch/patch'\nimport {type ArrayFieldProps} from '../../../../../form/types/fieldProps'\nimport {useTranslation} from '../../../../../i18n/hooks/useTranslation'\nimport {useCurrentUser} from '../../../../../store/user/hooks'\nimport {useMentionUser} from '../../../../context/mentionUser/useMentionUser'\nimport {tasksLocaleNamespace} from '../../../../i18n'\nimport {type FormMode} from '../../../../types'\nimport {renderBlock} from './render/renderBlock'\n\nconst DescriptionInputRoot = styled.div<{$mode: FormMode; $minHeight: number}>((props) => {\n const theme = getTheme_v2(props.theme)\n const verticalPadding = props.$mode === 'edit' ? theme.space[1] : theme.space[3]\n const minHeight = props.$mode === 'edit' ? 120 : 200\n return css`\n /* select CommentInputEditableWrap and change the padding */\n [data-ui='CommentInputEditableWrap'] {\n overflow: hidden;\n padding: ${\n props.$mode === 'edit'\n ? `${verticalPadding}px 0px`\n : `${verticalPadding}px ${theme.space[2]}px`\n };\n min-height: ${Math.max(props.$minHeight + verticalPadding, minHeight)}px !important;\n }\n #comment-input-root {\n box-shadow: ${props.$mode === 'edit' ? 'none' : ''};\n }\n [data-ui='CommentInputActions'] {\n display: none !important;\n }\n `\n})\n\nexport function DescriptionInput(props: ArrayFieldProps & {mode: FormMode}) {\n const {\n value: _propValue,\n mode,\n inputProps: {onChange},\n } = props\n const value = _propValue as PortableTextBlock[] | undefined\n const currentUser = useCurrentUser()\n const {mentionOptions} = useMentionUser()\n\n const handleChange = useCallback((next: PortableTextBlock[]) => onChange(set(next)), [onChange])\n\n const [rootRef, setRootRef] = useState<HTMLDivElement | null>(null)\n const [textBoxScrollHeight, setTextBoxScrollHeight] = useState<number>(200)\n const setTextboxHeight = useCallback((ref: HTMLDivElement) => {\n const textBox = ref.querySelector('[role=\"textbox\"]')\n if (!textBox) return\n\n const height = textBox.scrollHeight\n setTextBoxScrollHeight(height)\n }, [])\n\n const handleSetRootRef = useCallback((ref: HTMLDivElement) => {\n if (!ref) return\n startTransition(() => {\n setRootRef(ref)\n })\n }, [])\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n useEffect(() => {\n if (!rootRef) return\n // oxlint-disable-next-line react/react-compiler\n setTextboxHeight(rootRef)\n }, [value, setTextboxHeight, rootRef])\n\n if (!currentUser) return null\n return (\n <DescriptionInputRoot $mode={mode} ref={handleSetRootRef} $minHeight={textBoxScrollHeight}>\n <CommentInput\n expandOnFocus={false}\n currentUser={currentUser}\n mentionOptions={mentionOptions}\n onChange={handleChange}\n value={value ?? []}\n withAvatar={false}\n placeholder={t('form.input.description.placeholder')}\n onDiscardConfirm={() => null}\n renderBlock={renderBlock}\n />\n </DescriptionInputRoot>\n )\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, styled} from 'styled-components'\n\nimport {type StringFieldProps} from '../../../../form/types/fieldProps'\n\n/**\n * @internal\n * Updates the padding and font weight of the field header content box.\n */\nexport const FieldWrapperRoot = styled.div((props) => {\n const theme = getTheme_v2(props.theme)\n\n return css`\n // Reset the padding of the field header content box\n [data-ui='fieldHeaderContentBox'] {\n padding: 0;\n label {\n font-weight: ${theme.font.text.weights.regular};\n }\n }\n `\n})\n\nexport function FieldWrapper(props: StringFieldProps) {\n return <FieldWrapperRoot>{props.renderDefault(props)}</FieldWrapperRoot>\n}\n","import {LoadingBlock} from '../../../components/loadingBlock/LoadingBlock'\nimport {WorkspaceLoader} from '../../../studio/workspaceLoader/WorkspaceLoader'\n\nfunction ConfigErrorsScreen() {\n // oxlint-disable-next-line i18next/no-literal-string\n return <div>Config errors</div>\n}\n\nexport function CurrentWorkspaceProvider({children}: {children: React.ReactNode}) {\n return (\n <WorkspaceLoader LoadingComponent={LoadingBlock} ConfigErrorsComponent={ConfigErrorsScreen}>\n {children}\n </WorkspaceLoader>\n )\n}\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {DocumentIcon} from '@sanity/icons/Document'\nimport {Box, Card, Flex, LayerProvider, Stack, Text} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {useCallback, useMemo, useState, type RefAttributes} from 'react'\nimport {IntentLink} from 'sanity/router'\nimport {css, styled} from 'styled-components'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {FormFieldHeaderText} from '../../../../form/components/formField/FormFieldHeaderText'\nimport {set, unset} from '../../../../form/patch/patch'\nimport {type ObjectFieldProps} from '../../../../form/types/fieldProps'\nimport {useSchema} from '../../../../hooks/useSchema'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {useDocumentPresence} from '../../../../store/presence/useDocumentPresence'\nimport {SearchPopover} from '../../../../studio/components/navbar/search/components/SearchPopover'\nimport {SearchResultItemPreview} from '../../../../studio/components/navbar/search/components/searchResults/item/SearchResultItemPreview'\nimport {SearchProvider} from '../../../../studio/components/navbar/search/contexts/search/SearchProvider'\nimport {useWorkspace} from '../../../../studio/workspace'\nimport {getPublishedId, getVersionFromId} from '../../../../util/draftUtils'\nimport {tasksLocaleNamespace} from '../../../i18n'\nimport {type FormMode, type TaskTarget} from '../../../types'\nimport {CurrentWorkspaceProvider} from '../CurrentWorkspaceProvider'\nimport {getTargetValue} from '../utils'\nimport {FieldWrapperRoot} from './FieldWrapper'\n\nconst EmptyReferenceRoot = styled(Card)((props) => {\n const theme = getTheme_v2(props.theme)\n\n return css`\n &:focus {\n border: 1px solid var(--card-focus-ring-color);\n }\n &:focus-visible {\n outline: none;\n border: 1px solid var(--card-focus-ring-color);\n }\n &:hover {\n border-color: ${theme.color.input.default.hovered.border};\n }\n `\n})\n\nconst Placeholder = styled(Text)((props) => {\n const theme = getTheme_v2(props.theme)\n return `\n color: ${theme.color.input.default.enabled.placeholder};\n margin-left: 3px;\n `\n})\n\n// This allows to hide and show the remove button on hover or focus.\nconst TargetRoot = styled(Card)`\n position: relative;\n [data-ui='show-on-hover'] {\n opacity: 0;\n position: absolute;\n right: 6px;\n top: 4px;\n display: flex;\n }\n &:focus-within,\n &:hover {\n padding-right: 36px;\n /* Hides the preview status dot, the button will take it's position. */\n [data-testid='compact-preview__status'] {\n opacity: 0;\n }\n [data-ui='show-on-hover'] {\n transition: opacity 200ms;\n opacity: 1;\n }\n }\n`\nconst StyledIntentLink = styled(IntentLink)(() => {\n return css`\n text-decoration: none;\n width: 100%;\n overflow: hidden;\n cursor: pointer;\n &:focus {\n box-shadow: 0 0 0 1px var(--card-focus-ring-color);\n }\n &:focus-visible {\n outline: none;\n box-shadow: 0 0 0 1px var(--card-focus-ring-color);\n }\n `\n})\n\nfunction Preview(props: {value: TaskTarget; handleRemove: () => void}) {\n const {value, handleRemove} = props\n const documentId = value.document._ref\n const documentType = value.documentType\n const schema = useSchema()\n const schemaType = schema.get(value.documentType)\n const documentPresence = useDocumentPresence(documentId)\n const {t} = useTranslation(tasksLocaleNamespace)\n const CardLink = useMemo(\n () =>\n function LinkComponent(\n linkProps: React.ComponentPropsWithoutRef<'a'> & RefAttributes<HTMLAnchorElement>,\n ) {\n const {ref, ...rest} = linkProps\n const versionId = getVersionFromId(documentId)\n\n return (\n <StyledIntentLink\n {...rest}\n intent=\"edit\"\n params={{id: getPublishedId(documentId), type: documentType}}\n ref={ref}\n searchParams={versionId ? [['perspective', versionId]] : undefined}\n />\n )\n },\n [documentId, documentType],\n )\n if (!schemaType) {\n return <Text>{t('form.input.target.error.schema-not-found')}</Text>\n }\n\n return (\n <TargetRoot border radius={2} data-testid=\"task-target-field-preview\">\n <Flex gap={1} align={'center'} justify={'space-between'}>\n <Card as={CardLink} radius={2} data-as=\"button\">\n <SearchResultItemPreview\n documentType={documentType}\n documentId={value.document._ref}\n layout={'compact'}\n presence={documentPresence}\n schemaType={schemaType}\n showBadge={false}\n />\n </Card>\n\n <div data-ui=\"show-on-hover\">\n <Button\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={handleRemove}\n tooltipProps={{content: t('form.input.target.buttons.remove.text')}}\n />\n </div>\n </Flex>\n </TargetRoot>\n )\n}\n\nexport function TargetField(\n props: ObjectFieldProps & {\n mode: FormMode\n },\n) {\n const [open, setOpen] = useState(false)\n const {dataset, projectId} = useWorkspace()\n const {\n mode,\n inputProps: {onChange},\n value: _propValue,\n } = props\n\n const value = _propValue as unknown as TaskTarget | undefined\n\n const handleItemSelect = useCallback(\n (item: {_id: string; _type: string}) => {\n onChange(\n set(\n getTargetValue({\n documentId: item._id,\n documentType: item._type,\n dataset,\n projectId,\n }),\n ),\n )\n },\n [dataset, projectId, onChange],\n )\n\n const handleRemove = useCallback(() => {\n onChange(unset())\n }, [onChange])\n\n const handleOpenSearch = useCallback(() => {\n setOpen(true)\n }, [setOpen])\n\n const handleCloseSearch = useCallback(() => {\n setOpen(false)\n }, [setOpen])\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') setOpen(true)\n }, [])\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n return (\n <Card borderBottom={mode === 'edit'} paddingBottom={mode === 'edit' ? 4 : 0}>\n <FieldWrapperRoot>\n <LayerProvider zOffset={100}>\n <CurrentWorkspaceProvider>\n <SearchProvider>\n <Stack gap={2}>\n {mode === 'create' && (\n <Box data-ui=\"fieldHeaderContentBox\">\n <FormFieldHeaderText\n description={props.description}\n inputId={props.inputId}\n title={props.title}\n validation={props.validation}\n deprecated={undefined}\n />\n </Box>\n )}\n\n {value ? (\n <Preview value={value} handleRemove={handleRemove} />\n ) : (\n <EmptyReferenceRoot\n border\n radius={2}\n paddingX={2}\n paddingY={3}\n onClick={handleOpenSearch}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n >\n <Flex gap={1} justify={'flex-start'} align={'center'}>\n <Box paddingX={1}>\n <Text size={1}>\n <DocumentIcon />\n </Text>\n </Box>\n <Placeholder size={1}>\n {t('form.input.target.search.placeholder')}\n </Placeholder>\n </Flex>\n </EmptyReferenceRoot>\n )}\n </Stack>\n <SearchPopover\n open={open}\n onClose={handleCloseSearch}\n onItemSelect={handleItemSelect}\n disableIntentLink\n />\n </SearchProvider>\n </CurrentWorkspaceProvider>\n </LayerProvider>\n </FieldWrapperRoot>\n </Card>\n )\n}\n","import {type Path} from '@sanity/types'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {type ChangeEvent, useCallback, useEffect, useRef} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {set, unset} from '../../../../form/patch/patch'\nimport {type PatchEvent} from '../../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../../form/patch/types'\nimport {type StringFieldProps} from '../../../../form/types/fieldProps'\n\nconst Root = styled.div((props) => {\n const theme = getTheme_v2(props.theme)\n return `\n display: grid;\n grid-template-columns: 1fr;\n padding-top: ${theme.space[3]}px;\n `\n})\nconst TitleInput = styled.textarea((props) => {\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n resize: none;\n overflow: hidden;\n appearance: none;\n background: none;\n border: 0;\n padding: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${font.text.weights.semibold};\n font-size: ${font.text.sizes[3].fontSize}px;\n line-height: ${font.text.sizes[3].lineHeight}px;\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n transition: height 500ms;\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n color: ${color.input.default.enabled.fg};\n\n &::placeholder {\n color: ${color.input.default.enabled.placeholder};\n }\n `\n})\n\nexport function Title(props: {\n value: string | undefined\n path?: Path\n onChange: (patch: FormPatch | PatchEvent | FormPatch[]) => void\n placeholder?: string\n}) {\n const {value, onChange, placeholder, path} = props\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n useEffect(() => {\n // Set the height of the title to make it auto grow.\n if (!ref.current) return\n ref.current.style.height = 'auto'\n ref.current.style.height = `${ref.current.scrollHeight}px`\n }, [value])\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLTextAreaElement>) => {\n const inputValue = event.currentTarget.value\n if (!inputValue) onChange(unset(path))\n return onChange(set(inputValue.replace(/\\n/g, ''), path))\n },\n [onChange, path],\n )\n\n return (\n <Root>\n <TitleInput\n ref={ref}\n autoFocus={!value}\n value={value}\n placeholder={placeholder}\n onChange={handleChange}\n rows={1}\n />\n </Root>\n )\n}\n\nexport function TitleField(props: StringFieldProps) {\n const {value, inputProps} = props\n const {onChange, schemaType} = inputProps\n\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n return <Title value={value} onChange={onChange} placeholder={schemaType.placeholder} />\n}\n","import {useCallback, useMemo} from 'react'\n\nimport {useCurrentUser} from '../../store/user/hooks'\nimport {useAddonDataset} from '../../studio/addonDataset/useAddonDataset'\nimport {type TaskCreatePayload, type TaskDocument, type TaskEditPayload} from '../types'\n\n/**\n * @beta\n * @hidden\n */\nexport interface TaskOperations {\n create: (task: TaskCreatePayload) => Promise<TaskDocument>\n edit: (id: string, task: TaskEditPayload) => Promise<TaskDocument>\n remove: (id: string) => Promise<void>\n}\n\n/**\n * @beta\n * @hidden\n */\nexport function useTaskOperations(): TaskOperations {\n const {client, createAddonDataset} = useAddonDataset()\n const currentUser = useCurrentUser()\n\n const handleCreate = useCallback(\n async (payload: TaskCreatePayload): Promise<TaskDocument> => {\n if (!currentUser) {\n throw new Error('No current user found. Unable to create task.')\n }\n\n const task = {\n ...payload,\n authorId: currentUser.id,\n _type: 'tasks.task',\n } satisfies Partial<TaskDocument>\n\n if (!client) {\n const newCreatedClient = await createAddonDataset()\n if (!newCreatedClient) throw new Error('No addon client found. Unable to create task.')\n const created = await newCreatedClient.create(task)\n return created\n }\n\n const created = await client.create(task)\n return created\n },\n [client, createAddonDataset, currentUser],\n )\n\n const handleEdit = useCallback(\n async (id: string, set: TaskEditPayload) => {\n if (!client) {\n throw new Error('No client. Unable to create task.')\n }\n const edited = (await client.patch(id).set(set).commit()) as TaskDocument\n return edited\n },\n [client],\n )\n const handleRemove = useCallback(\n async (id: string) => {\n if (!client) {\n throw new Error('No client. Unable to create task.')\n }\n await client.delete(id)\n },\n [client],\n )\n\n const operations: TaskOperations = useMemo(\n () => ({\n create: handleCreate,\n edit: handleEdit,\n remove: handleRemove,\n }),\n [handleCreate, handleEdit, handleRemove],\n )\n return operations\n}\n","import {useCallback, useState} from 'react'\n\nimport {useTaskOperations} from './useTaskOperations'\n\ninterface RemoveTaskOptions {\n id: string\n onError?: (message: string) => void\n onRemoved?: () => void\n}\n\ninterface RemoveTasksHookValue {\n removeStatus: 'idle' | 'loading' | 'error'\n showDialog: boolean\n error: string | null\n handleRemove: () => void\n handleOpenDialog: () => void\n handleCloseDialog: () => void\n}\n\nexport function useRemoveTask({id, onError, onRemoved}: RemoveTaskOptions): RemoveTasksHookValue {\n const [removeStatus, setRemoveStatus] = useState<'idle' | 'loading' | 'error'>('idle')\n const [showDialog, setShowDialog] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const operations = useTaskOperations()\n\n const handleRemove = useCallback(async () => {\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = async () => {\n setRemoveStatus('loading')\n await operations.remove(id)\n onRemoved?.()\n setRemoveStatus('idle')\n await new Promise((resolve) => setTimeout(resolve, 300))\n setShowDialog(false)\n }\n try {\n await run()\n } catch (e) {\n onError?.(e.message)\n setError(e.message)\n setRemoveStatus('error')\n }\n setRemoveStatus('idle')\n }, [id, operations, onError, onRemoved])\n\n const handleOpenDialog = useCallback(() => {\n setShowDialog(true)\n }, [setShowDialog])\n const handleCloseDialog = useCallback(() => {\n setShowDialog(false)\n }, [setShowDialog])\n\n return {\n removeStatus,\n showDialog,\n error,\n handleRemove,\n handleOpenDialog,\n handleCloseDialog,\n }\n}\n","import {TrashIcon} from '@sanity/icons/Trash'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {Box, Flex, Switch, Text, useToast} from '@sanity/ui'\nimport {useCallback, useEffect, useState} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {set} from '../../../../form/patch/patch'\nimport {type ObjectInputProps} from '../../../../form/types/inputProps'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {TaskCreated} from '../../../__telemetry__/tasks.telemetry'\nimport {useTasksNavigation} from '../../../context/navigation/useTasksNavigation'\nimport {useTasks} from '../../../context/tasks/useTasks'\nimport {useRemoveTask} from '../../../hooks/useRemoveTask'\nimport {tasksLocaleNamespace} from '../../../i18n'\nimport {type TaskDocument} from '../../../types'\nimport {getMentionedUsers} from '../utils'\n\nconst getTaskSubscribers = (task: TaskDocument): string[] => {\n const subscribers = task.subscribers || []\n\n getMentionedUsers(task.description).forEach((user) => {\n if (!subscribers.includes(user)) subscribers.push(user)\n })\n\n // Check if the task has been assigned, add the assignee to the subscribers list.\n if (task.assignedTo) {\n if (!subscribers.includes(task.assignedTo)) {\n subscribers.push(task.assignedTo)\n }\n }\n return subscribers\n}\nexport function FormCreate(props: ObjectInputProps) {\n const [creating, setCreating] = useState(false)\n const {onChange} = props\n const {setViewMode, setActiveTab} = useTasksNavigation()\n const toast = useToast()\n const telemetry = useTelemetry()\n\n const [createMore, setCreateMore] = useState(false)\n const handleCreateMore = useCallback(() => setCreateMore((p) => !p), [])\n\n const value = props.value as TaskDocument\n const onRemove = useCallback(() => {\n setViewMode({type: 'list'})\n }, [setViewMode])\n const {handleRemove, removeStatus} = useRemoveTask({id: value._id, onRemoved: onRemove})\n const {t} = useTranslation(tasksLocaleNamespace)\n const {data} = useTasks()\n const savedTask = data.find((task) => task._id === value._id)\n\n const handleCreatingSuccess = useEffectEvent(() => {\n telemetry.log(TaskCreated)\n toast.push({\n closable: true,\n status: 'success',\n title: t('form.status.success'),\n })\n\n setCreating(false)\n if (createMore) {\n setViewMode({type: 'create'})\n } else {\n setActiveTab('subscribed')\n }\n })\n useEffect(() => {\n // This useEffect takes care of closing the form when a task entered the \"creation\" state.\n // That action is async and we don't have access to the promise, once the value is updated in the form we will close the form.\n if (creating && savedTask?.createdByUser) {\n handleCreatingSuccess()\n }\n }, [creating, savedTask?.createdByUser])\n\n const handleCreatingTimeout = useEffectEvent(() => {\n setCreating(false)\n toast.push({\n closable: true,\n status: 'error',\n title: t('form.status.error.creation-failed'),\n })\n })\n useEffect(() => {\n // If after 10 seconds the task is still in the \"creating\" state, show an error and reset the creating state.\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n if (creating) {\n timeoutId = setTimeout(() => handleCreatingTimeout(), 10000)\n }\n // Cleanup function to clear the timeout\n return () => {\n if (timeoutId) clearTimeout(timeoutId)\n }\n }, [creating])\n\n const handleCreate = useCallback(async () => {\n setCreating(true)\n if (!value?.title) {\n toast.push({\n closable: true,\n status: 'error',\n title: t('form.status.error.title-required'),\n })\n return\n }\n onChange([\n set(getTaskSubscribers(value), ['subscribers']),\n set(new Date().toISOString(), ['createdByUser']),\n ])\n }, [value, onChange, t, toast])\n\n return (\n <>\n {props.renderDefault(props)}\n\n <Box paddingY={5}>\n <Flex paddingTop={1} gap={4}>\n {value._rev && (\n <Button\n onClick={handleRemove}\n mode=\"bleed\"\n icon={TrashIcon}\n tooltipProps={{\n content: t('buttons.discard.text'),\n }}\n disabled={removeStatus === 'loading'}\n loading={removeStatus === 'loading'}\n />\n )}\n\n <Flex align=\"center\" gap={2} justify={'flex-end'} flex={1}>\n <Switch onChange={handleCreateMore} checked={createMore} />\n <Text size={1} muted>\n {t('form.input.create-more.text')}\n </Text>\n </Flex>\n\n <Button\n text={t('buttons.create.text')}\n onClick={handleCreate}\n disabled={creating}\n loading={creating}\n />\n </Flex>\n </Box>\n </>\n )\n}\n","import {type TaskDocument} from '../../../types'\nimport {type FieldChange} from './parseTransactions'\n\nconst FIELDS_TO_GROUP: (keyof TaskDocument)[] = [\n 'title',\n 'status',\n 'assignedTo',\n 'dueBy',\n 'target',\n 'description',\n]\nconst GROUP_TIME = 2 * 60 * 1000 // 2 minutes\nexport function groupChanges(changes: FieldChange[]): FieldChange[] {\n // If we have two or more changes done by the same user in a similar timestamp +- X time, in any of the fields specified we group them together.\n const groupedChanges: FieldChange[] = []\n for (const change of changes) {\n const lastChangeProcessed = groupedChanges[groupedChanges.length - 1]\n if (!lastChangeProcessed) {\n groupedChanges.push(change)\n continue\n }\n if (!FIELDS_TO_GROUP.includes(change.field)) {\n groupedChanges.push(change)\n continue\n }\n if (\n lastChangeProcessed.author === change.author &&\n lastChangeProcessed.field === change.field\n ) {\n // Check the timestamp difference\n const lastChangeDate = new Date(lastChangeProcessed.timestamp)\n const changeDate = new Date(change.timestamp)\n const diff = Math.abs(lastChangeDate.getTime() - changeDate.getTime())\n if (diff <= GROUP_TIME) {\n // We keep the from value and update the to value, and the date.\n lastChangeProcessed.to = change.to\n lastChangeProcessed.timestamp = change.timestamp\n continue\n }\n }\n groupedChanges.push(change)\n }\n\n return groupedChanges\n}\n","import {type TransactionLogEventWithEffects} from '@sanity/types'\nimport {applyPatch} from 'mendoza'\n\nimport {type TaskDocument} from '../../../types'\nimport {groupChanges} from './groupChanges'\n\nexport interface FieldChange {\n field: keyof TaskDocument\n from: any\n to: any\n timestamp: string\n author: string\n}\n\nfunction omitRev(document: TaskDocument) {\n const {_rev, ...doc} = document\n return doc\n}\n\n/**\n * Tracks changes to specified fields across document versions by applying patches in reverse.\n * @param newestDocument - The latest state of the document.\n * @param transactions - An array of transactions containing patches.\n * @param fieldsToTrack - The fields to track for changes.\n * @returns An array of changes for the tracked fields.\n */\nexport function trackFieldChanges(\n newestDocument: TaskDocument,\n transactions: TransactionLogEventWithEffects[],\n fieldsToTrack: (keyof Omit<TaskDocument, '_rev'>)[],\n): FieldChange[] {\n let currentDocument: Omit<TaskDocument, '_rev'> = omitRev(newestDocument)\n const changes: FieldChange[] = []\n let previousDocument = currentDocument\n\n for (const transaction of transactions) {\n const {timestamp, effects} = transaction\n\n // Assuming there's a single document being tracked in this transaction\n const documentId = transaction.documentIDs[0]\n const effect = effects[documentId]\n if (!effect || !effect.revert) continue\n\n previousDocument = applyPatch(currentDocument, effect.revert)\n\n // Track changes for specified fields\n fieldsToTrack.forEach((field) => {\n if (previousDocument?.[field] !== currentDocument?.[field]) {\n changes.push({\n field,\n from: previousDocument?.[field],\n to: currentDocument?.[field],\n timestamp,\n author: transaction.author,\n })\n }\n })\n\n // Prepare for next iteration\n currentDocument = previousDocument\n }\n\n const changesSortedByTimestamp = changes.sort((a, b) => a.timestamp.localeCompare(b.timestamp))\n // Find the moment the task was created by the user.\n const createdByUserIndex = changesSortedByTimestamp.findIndex(\n (change) => change.field === 'createdByUser',\n )\n\n // Return changes sorted by timestamp in ascending order from the moment the task was created.\n return groupChanges(changesSortedByTimestamp.slice(createdByUserIndex + 1))\n}\n","import {useCallback, useEffect, useState} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {useClient} from '../../hooks/useClient'\nimport {getTransactionsLogs} from '../../store/translog/getTransactionsLogs'\nimport {getPublishedId} from '../../util/draftUtils'\nimport {type FieldChange, trackFieldChanges} from '../components/activity/helpers/parseTransactions'\nimport {API_VERSION} from '../constants/API_VERSION'\nimport {type TaskDocument} from '../types'\n\nexport function useActivityLog(task: TaskDocument): {\n changes: FieldChange[]\n} {\n const [changes, setChanges] = useState<FieldChange[]>([])\n const client = useClient({apiVersion: API_VERSION})\n const publishedId = getPublishedId(task?._id ?? '')\n\n const fetchAndParse = useCallback(\n async (newestTaskDocument: TaskDocument) => {\n try {\n if (!publishedId) return\n\n const transactions = await getTransactionsLogs(client, publishedId, {\n tag: 'sanity.studio.tasks.history',\n effectFormat: 'mendoza',\n reverse: true,\n })\n\n const fieldsToTrack: (keyof Omit<TaskDocument, '_rev'>)[] = [\n 'createdByUser',\n 'title',\n 'description',\n 'dueBy',\n 'assignedTo',\n 'status',\n 'target',\n ]\n\n const parsedChanges = trackFieldChanges(\n newestTaskDocument,\n [...transactions],\n fieldsToTrack,\n )\n\n setChanges(parsedChanges)\n } catch (error) {\n console.error('Failed to fetch and parse activity log', error)\n }\n },\n [publishedId, client],\n )\n\n const handleFetchAndParse = useEffectEvent((_rev: string) => fetchAndParse(task))\n useEffect(() => {\n // Task is updated on every change, wait until the revision changes to update the activity log.\n void handleFetchAndParse(task._rev)\n }, [task._rev])\n return {changes}\n}\n","import {CalendarIcon} from '@sanity/icons/Calendar'\nimport {CircleIcon} from '@sanity/icons/Circle'\nimport {EditIcon} from '@sanity/icons/Edit'\nimport {LinkIcon} from '@sanity/icons/Link'\nimport {UserIcon} from '@sanity/icons/User'\nimport {TextSkeleton} from '@sanity/ui'\nimport {IntentLink} from 'sanity/router'\nimport {styled} from 'styled-components'\n\nimport {useDateTimeFormat, type UseDateTimeFormatOptions} from '../../../../hooks/useDateTimeFormat'\nimport {type RelativeTimeOptions, useRelativeTime} from '../../../../hooks/useRelativeTime'\nimport {useSchema} from '../../../../hooks/useSchema'\nimport {usePerspective} from '../../../../perspective/usePerspective'\nimport {useUser} from '../../../../store/user/hooks'\nimport {TASK_STATUS} from '../../../constants/TaskStatus'\nimport {useDocumentPreviewValues} from '../../../hooks/useDocumentPreviewValues'\nimport {type TaskTarget} from '../../../types'\nimport {type FieldChange} from './parseTransactions'\n\nconst DATE_FORMAT_OPTIONS: UseDateTimeFormatOptions = {\n month: 'long',\n day: '2-digit',\n minute: '2-digit',\n hour: '2-digit',\n second: '2-digit',\n}\n\nconst RELATIVE_TIME_OPTIONS: RelativeTimeOptions = {\n minimal: true,\n useTemporalPhrase: true,\n}\n\nconst Strong = styled.strong`\n font-weight: 600;\n`\nexport const NoWrap = styled.span`\n white-space: nowrap;\n`\n\nexport function useUpdatedTimeAgo(timestamp: string) {\n const date = new Date(timestamp)\n const dateFormatter = useDateTimeFormat(DATE_FORMAT_OPTIONS)\n const formattedDate = dateFormatter.format(date)\n\n const updatedTimeAgo = useRelativeTime(date || '', RELATIVE_TIME_OPTIONS)\n\n return {timeAgo: updatedTimeAgo, formattedDate}\n}\n\nexport function UserName({userId}: {userId: string}) {\n const [user, isLoading] = useUser(userId)\n return isLoading ? <TextSkeleton style={{width: '15ch'}} /> : <Strong>{user?.displayName}</Strong>\n}\n\nconst DUE_BY_DATE_OPTIONS: UseDateTimeFormatOptions = {\n month: 'short',\n day: 'numeric',\n timeZone: 'UTC',\n}\n\nfunction DueByChange({date}: {date: string}) {\n const dueBy = new Date(date)\n const dateFormatter = useDateTimeFormat(DUE_BY_DATE_OPTIONS)\n const formattedDate = dateFormatter.format(dueBy)\n\n return (\n <Strong>\n <NoWrap>{formattedDate}</NoWrap>\n </Strong>\n )\n}\n\nconst LinkWrapper = styled.span`\n > a {\n color: var(--card-fg-muted-color);\n text-decoration: underline;\n text-underline-offset: 1px;\n font-weight: 600;\n }\n`\n\nfunction TargetContentChange({target}: {target: TaskTarget}) {\n const schema = useSchema()\n const documentId = target.document._ref\n const documentType = target.documentType\n const documentSchema = schema.get(documentType)\n const {perspectiveStack, selectedVariantName} = usePerspective()\n const {isLoading, value} = useDocumentPreviewValues({\n documentId,\n documentType,\n perspectiveStack,\n variant: selectedVariantName,\n })\n\n if (isLoading) {\n return <TextSkeleton style={{width: '15ch'}} />\n }\n if (!documentSchema) {\n return null\n }\n\n return (\n <LinkWrapper>\n <IntentLink intent=\"edit\" params={{id: documentId, type: documentType}}>\n {value?.title}\n </IntentLink>\n </LinkWrapper>\n )\n}\n\nexport function getChangeDetails(activity: FieldChange): {\n text: string\n icon: React.JSX.Element\n changeTo?: React.JSX.Element\n} {\n switch (activity.field) {\n case 'status': {\n const statusTitle = TASK_STATUS.find((s) => s.value === activity.to)?.title\n return {\n text: 'changed status to',\n icon: TASK_STATUS.find((s) => s.value === activity.to)?.icon || <CircleIcon />,\n changeTo: <Strong>{statusTitle}</Strong>,\n }\n }\n case 'target':\n if (!activity.to)\n return {\n text: 'removed target content',\n icon: <LinkIcon />,\n changeTo: undefined,\n }\n return {\n text: 'set target content to',\n icon: <LinkIcon />,\n changeTo: <TargetContentChange target={activity.to} />,\n }\n case 'dueBy':\n if (!activity.from) {\n return {\n text: 'set the due date to',\n icon: <CalendarIcon />,\n changeTo: <DueByChange date={activity.to} />,\n }\n }\n if (!activity.to) {\n return {\n text: 'removed the due date',\n icon: <CalendarIcon />,\n changeTo: undefined,\n }\n }\n return {\n text: 'changed the due date to',\n icon: <CalendarIcon />,\n changeTo: <DueByChange date={activity.to} />,\n }\n case 'assignedTo':\n if (!activity.to) {\n return {\n text: 'unassigned this task',\n icon: <UserIcon />,\n changeTo: undefined,\n }\n }\n return {\n text: 'assigned to',\n icon: <UserIcon />,\n changeTo: <UserName userId={activity.to} />,\n }\n case 'description':\n return {\n text: 'updated the task description',\n icon: <EditIcon />,\n changeTo: undefined,\n }\n case 'title':\n return {\n text: 'updated the task title',\n icon: <EditIcon />,\n changeTo: undefined,\n }\n default:\n return {\n text: '',\n icon: <CircleIcon />,\n }\n }\n}\n","import {Box, Flex, Text} from '@sanity/ui'\nimport {memo} from 'react'\n\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport {getChangeDetails, NoWrap, UserName, useUpdatedTimeAgo} from './helpers'\nimport {type FieldChange} from './helpers/parseTransactions'\n\ninterface EditedAtProps {\n activity: FieldChange\n}\n\nexport const EditedAt = memo(\n function EditedAt(props: EditedAtProps) {\n const {activity} = props\n const {formattedDate, timeAgo} = useUpdatedTimeAgo(activity.timestamp)\n const {icon, text, changeTo} = getChangeDetails(activity)\n\n return (\n <Flex gap={1}>\n <Box marginTop={1} marginLeft={1} marginRight={3}>\n <Box marginRight={1}>\n <Text>{icon}</Text>\n </Box>\n </Box>\n <Text muted size={1}>\n <UserName userId={activity.author} /> {text} {changeTo} •{' '}\n <Tooltip content={formattedDate} placement=\"top-end\">\n <NoWrap>\n <time dateTime={formattedDate}>{timeAgo}</time>\n </NoWrap>\n </Tooltip>\n </Text>\n </Flex>\n )\n },\n (prevProps, nextProps) => {\n return prevProps.activity.timestamp === nextProps.activity.timestamp\n },\n)\n","import {Box, Flex} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nimport {TasksUserAvatar} from '../TasksUserAvatar'\n\nconst ActivityChildrenRoot = styled(Flex)`\n height: 100%;\n`\nconst ActivityItemChildrenContainer = styled.div`\n width: 100%;\n`\n\ninterface ActivityItemProps {\n userId: string\n children: React.ReactNode\n avatarPaddingTop?: number\n}\nexport function ActivityItem({avatarPaddingTop = 1, userId, children}: ActivityItemProps) {\n return (\n <Flex>\n <Box marginRight={3} paddingTop={avatarPaddingTop}>\n <TasksUserAvatar user={{id: userId}} size={0} />\n </Box>\n <ActivityChildrenRoot align=\"center\" flex={1}>\n <ActivityItemChildrenContainer>{children}</ActivityItemChildrenContainer>\n </ActivityChildrenRoot>\n </Flex>\n )\n}\n","import {Card} from '@sanity/ui'\nimport {useCallback, useMemo, useRef, useState} from 'react'\n\nimport {\n CommentInput,\n type CommentInputHandle,\n type CommentInputProps,\n} from '../../../comments/components/pte/comment-input/CommentInput'\nimport {hasCommentMessageValue} from '../../../comments/helpers'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useTasksEnabled} from '../../context/enabled/useTasksEnabled'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {ActivityItem} from './TasksActivityItem'\n\ninterface TasksCommentActivityInputProps {\n currentUser: CommentInputProps['currentUser']\n mentionOptions: CommentInputProps['mentionOptions']\n onSubmit: (message: CommentInputProps['value']) => void\n}\n\nexport function TasksActivityCommentInput(props: TasksCommentActivityInputProps) {\n const {mentionOptions, currentUser, onSubmit} = props\n const {mode} = useTasksEnabled()\n const [value, setValue] = useState<CommentInputProps['value']>(null)\n const editorRef = useRef<CommentInputHandle>(null)\n\n const hasValue = useMemo(() => hasCommentMessageValue(value), [value])\n\n const handleChange = useCallback((nextValue: CommentInputProps['value']) => {\n setValue(nextValue)\n }, [])\n\n const handleSubmit = useCallback(() => {\n if (hasValue) {\n onSubmit(value)\n setValue(null)\n }\n }, [hasValue, onSubmit, value])\n\n const handleDiscardCancel = useCallback(() => {\n editorRef.current?.discardDialogController.close()\n }, [])\n\n const handleDiscardConfirm = useCallback(() => {\n editorRef.current?.discardDialogController.close()\n setValue(null)\n }, [])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.preventDefault()\n e.stopPropagation()\n\n if (hasValue) {\n editorRef.current?.discardDialogController.open()\n } else {\n editorRef.current?.discardDialogController.close()\n setValue(null)\n }\n }\n },\n [hasValue],\n )\n const {t} = useTranslation(tasksLocaleNamespace)\n\n return (\n <ActivityItem userId={currentUser.id} avatarPaddingTop={3}>\n <Card tone=\"transparent\" radius={3} padding={2}>\n <CommentInput\n withAvatar={false}\n currentUser={currentUser}\n expandOnFocus\n mentionOptions={mentionOptions}\n onChange={handleChange}\n onDiscardConfirm={handleDiscardConfirm}\n onDiscardCancel={handleDiscardCancel}\n onKeyDown={handleKeyDown}\n onSubmit={handleSubmit}\n readOnly={mode === 'upsell'}\n placeholder={\n mode === 'upsell'\n ? t('panel.comment.placeholder.upsell')\n : t('panel.comment.placeholder')\n }\n ref={editorRef}\n value={value}\n />\n </Card>\n </ActivityItem>\n )\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, styled} from 'styled-components'\n\nimport {\n CommentsListItem,\n type CommentsListItemProps,\n} from '../../../comments/components/list/CommentsListItem'\nimport {useTasksEnabled} from '../../context/enabled/useTasksEnabled'\nimport {ActivityItem} from './TasksActivityItem'\n\nconst COMMENTS_LIST_ITEM_AVATAR_CONFIG: CommentsListItemProps['avatarConfig'] = {\n parentCommentAvatar: false,\n threadCommentsAvatar: true,\n replyAvatar: true,\n avatarSize: 0,\n}\n\ninterface TasksActivityCommentItemProps extends Omit<CommentsListItemProps, 'mode' | 'isSelected'> {\n // ...\n}\n\nconst CommentListItemRoot = styled.div((props) => {\n const theme = getTheme_v2(props.theme)\n return css`\n [data-ui='CommentsListItem'] {\n padding-right: ${theme.space[2]}px;\n }\n\n // Increase the padding when the comment input is focused\n [data-ui='CommentInputEditableWrap']:focus-within {\n padding-bottom: ${theme.space[2]}px;\n }\n `\n})\nexport function TasksActivityCommentItem(props: TasksActivityCommentItemProps) {\n const {parentComment} = props\n const {mode} = useTasksEnabled()\n\n return (\n <ActivityItem userId={parentComment.authorId} avatarPaddingTop={3}>\n <CommentListItemRoot>\n <CommentsListItem\n {...props}\n avatarConfig={COMMENTS_LIST_ITEM_AVATAR_CONFIG}\n canReply\n isSelected={false}\n mode={mode ?? 'default'}\n />\n </CommentListItemRoot>\n </ActivityItem>\n )\n}\n","import {Flex, Text, TextSkeleton} from '@sanity/ui'\nimport {memo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useUser} from '../../../store/user/hooks'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {NoWrap, useUpdatedTimeAgo} from './helpers'\nimport {ActivityItem} from './TasksActivityItem'\n\nconst UserSkeleton = styled(TextSkeleton)`\n max-width: 15ch;\n width: '100%';\n`\n\ninterface TasksActivityCreatedAtProps {\n createdAt: string\n authorId: string\n}\n\nexport const TasksActivityCreatedAt = memo(\n function TasksActivityCreatedAt(props: TasksActivityCreatedAtProps) {\n const {createdAt, authorId} = props\n const [user, loading] = useUser(authorId)\n const {timeAgo, formattedDate} = useUpdatedTimeAgo(createdAt)\n const {t} = useTranslation(tasksLocaleNamespace)\n return (\n <ActivityItem userId={authorId}>\n <Flex align=\"center\" paddingTop={1}>\n <Text size={1} muted>\n <strong style={{fontWeight: 600}}>\n {loading ? (\n <UserSkeleton />\n ) : (\n (user?.displayName ?? t('panel.activity.unknown-user'))\n )}{' '}\n </strong>\n {t('panel.activity.created-fragment')} •{' '}\n <Tooltip content={formattedDate} placement=\"top-end\">\n <NoWrap>\n <time dateTime={createdAt}>{timeAgo}</time>\n </NoWrap>\n </Tooltip>\n </Text>\n </Flex>\n </ActivityItem>\n )\n },\n (prevProps, nextProps) => {\n return prevProps.createdAt === nextProps.createdAt\n },\n)\n","import {type Path} from '@sanity/types'\nimport {AvatarStack, Flex} from '@sanity/ui'\nimport {AnimatePresence, motion} from 'motion/react'\nimport {useCallback, useMemo} from 'react'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {set} from '../../../form/patch/patch'\nimport {type PatchEvent} from '../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../form/patch/types'\nimport {type TaskDocument} from '../../types'\nimport {TasksUserAvatar} from '../TasksUserAvatar'\n\ninterface TasksSubscriberProps {\n value: TaskDocument\n path?: Path\n onChange: (patch: FormPatch | PatchEvent | FormPatch[]) => void\n currentUserId: string\n}\n\nexport function TasksSubscribers(props: TasksSubscriberProps) {\n const {value, onChange, path, currentUserId} = props\n\n const userIsSubscribed = value.subscribers?.includes(currentUserId)\n\n const buttonText = userIsSubscribed ? 'Unsubscribe' : 'Subscribe'\n\n const handleToggleSubscribe = useCallback(() => {\n const subscribers = value.subscribers || []\n\n if (!subscribers.includes(currentUserId)) {\n onChange(set(subscribers.concat(currentUserId), path))\n }\n if (subscribers.includes(currentUserId)) {\n onChange(\n set(\n subscribers.filter((subscriberId) => subscriberId !== currentUserId),\n path,\n ),\n )\n }\n }, [value.subscribers, currentUserId, onChange, path])\n\n return (\n <Flex gap={1} align=\"center\">\n <Button mode=\"bleed\" text={buttonText} onClick={handleToggleSubscribe} />\n {value.subscribers && value.subscribers?.length > 0 && (\n <TasksSubscriberAvatars subscriberIds={value.subscribers} />\n )}\n </Flex>\n )\n}\n\nconst EMPTY_ARRAY: [] = []\n\ninterface TasksSubscriberAvatarsProps {\n subscriberIds?: string[]\n}\n\nfunction TasksSubscriberAvatars(props: TasksSubscriberAvatarsProps) {\n const {subscriberIds: subscriberIdsProp} = props\n\n const subscriberIds = useMemo(() => {\n // Make sure we have valid subscriber IDs\n return subscriberIdsProp?.filter(Boolean) || EMPTY_ARRAY\n }, [subscriberIdsProp])\n\n return (\n <AnimatePresence initial={false}>\n <AvatarStack maxLength={3} size={0}>\n {subscriberIds.map((subscriberId) => (\n <motion.div\n key={subscriberId}\n exit={{opacity: 0, x: '2px', scale: 0.9}}\n animate={{\n opacity: 1,\n x: 0,\n scale: 1,\n transition: {type: 'spring', visualDuration: 0.2},\n }}\n initial={{opacity: 0, x: '2px', scale: 0.9}}\n >\n <TasksUserAvatar user={{id: subscriberId}} size={0} />\n </motion.div>\n ))}\n </AvatarStack>\n </AnimatePresence>\n )\n}\n","import {type Path} from '@sanity/types'\nimport {Box, Flex, Stack, Text} from '@sanity/ui'\nimport {uuid} from '@sanity/uuid'\nimport {AnimatePresence, motion, type Variants} from 'motion/react'\nimport {useMemo, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {CommentDeleteDialog} from '../../../comments/components/CommentDeleteDialog'\nimport {type CommentInputProps} from '../../../comments/components/pte/comment-input/CommentInput'\nimport {useComments} from '../../../comments/hooks/useComments'\nimport {\n type CommentBaseCreatePayload,\n type CommentCreatePayload,\n type CommentReactionOption,\n type CommentThreadItem,\n type CommentUpdatePayload,\n} from '../../../comments/types'\nimport {LoadingBlock} from '../../../components/loadingBlock/LoadingBlock'\nimport {set} from '../../../form/patch/patch'\nimport {type PatchEvent} from '../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../form/patch/types'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useCurrentUser} from '../../../store/user/hooks'\nimport {useWorkspace} from '../../../studio/workspace'\nimport {\n TASKS_SELECTED_TASK_SEARCH_PARAM,\n TASKS_SIDEBAR_SEARCH_PARAM,\n TASKS_VIEW_MODE_SEARCH_PARAM,\n} from '../../context/navigation/types'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {type TaskDocument} from '../../types'\nimport {getMentionedUsers} from '../form/utils'\nimport {type FieldChange} from './helpers/parseTransactions'\nimport {EditedAt} from './TaskActivityEditedAt'\nimport {TasksActivityCommentInput} from './TasksActivityCommentInput'\nimport {TasksActivityCommentItem} from './TasksActivityCommentItem'\nimport {TasksActivityCreatedAt} from './TasksActivityCreatedAt'\nimport {TasksSubscribers} from './TasksSubscribers'\n\nconst EMPTY_ARRAY: [] = []\n\nconst VARIANTS: Variants = {\n hidden: {opacity: 0, x: 0},\n visible: {opacity: 1, x: 0},\n}\n\nconst MotionStack = styled(motion.create(Stack))``\n\ninterface TasksActivityLogProps {\n onChange: (patch: FormPatch | PatchEvent | FormPatch[]) => void\n path?: Path\n value: TaskDocument\n activityData: FieldChange[]\n}\n\ntype Activity =\n | {\n _type: 'comment'\n payload: CommentThreadItem\n timestamp: string\n }\n | {\n _type: 'activity'\n payload: FieldChange\n timestamp: string\n }\n\nexport function TasksActivityLog(props: TasksActivityLogProps) {\n const {value, onChange, path, activityData = []} = props\n const currentUser = useCurrentUser()\n\n const {title: workspaceTitle, basePath, name: workspaceName} = useWorkspace()\n const {comments, mentionOptions, operation, getComment} = useComments()\n const [commentToDeleteId, setCommentToDeleteId] = useState<string | null>(null)\n const [commentDeleteError, setCommentDeleteError] = useState<Error | null>(null)\n const [commentDeleteLoading, setCommentDeleteLoading] = useState(false)\n\n const loading = comments.loading\n const taskComments = comments.data.open\n const handleGetNotificationValue = (message: CommentInputProps['value'], commentId: string) => {\n const studioUrl = new URL(`${window.location.origin}${basePath ? `${basePath}/` : ''}`)\n\n studioUrl.searchParams.set(TASKS_SIDEBAR_SEARCH_PARAM, 'tasks')\n studioUrl.searchParams.set(TASKS_SELECTED_TASK_SEARCH_PARAM, value?._id)\n studioUrl.searchParams.set(TASKS_VIEW_MODE_SEARCH_PARAM, 'edit')\n studioUrl.searchParams.set('commentId', commentId)\n\n const mentionedUsers = getMentionedUsers(message)\n const subscribers = Array.from(new Set([...(value.subscribers || []), ...mentionedUsers]))\n\n return {\n documentTitle: value.title || 'Sanity task',\n url: studioUrl.toString(),\n workspaceTitle,\n workspaceName,\n subscribers,\n }\n }\n\n const handleCommentCreate = async (message: CommentInputProps['value']) => {\n const commentId = uuid()\n const notification = handleGetNotificationValue(message, commentId)\n\n const nextComment: CommentCreatePayload = {\n id: commentId,\n type: 'task',\n message,\n parentCommentId: undefined,\n reactions: EMPTY_ARRAY,\n status: 'open',\n threadId: uuid(),\n context: {\n notification,\n },\n }\n\n onChange(set(notification.subscribers, ['subscribers']))\n\n await operation.create(nextComment)\n }\n\n const handleCommentReply = async (nextComment: CommentBaseCreatePayload) => {\n const commentId = uuid()\n\n const notification = handleGetNotificationValue(nextComment.message, commentId)\n\n onChange(set(notification.subscribers, ['subscribers']))\n\n await operation.create({\n id: commentId,\n type: 'task',\n message: nextComment.message,\n parentCommentId: nextComment.parentCommentId,\n reactions: EMPTY_ARRAY,\n status: 'open',\n threadId: nextComment.threadId,\n context: {\n notification,\n },\n })\n }\n\n const handleCommentCreateRetry = async (id: string) => {\n // Get the optimistically created comment and use it\n // when retrying the creation.\n const comment = getComment(id)\n if (!comment) return\n\n const notification = handleGetNotificationValue(comment.message, comment._id)\n\n onChange(set(notification.subscribers, ['subscribers']))\n\n await operation.create({\n type: 'task',\n id: comment._id,\n message: comment.message,\n parentCommentId: comment.parentCommentId,\n reactions: comment.reactions || EMPTY_ARRAY,\n status: comment.status,\n threadId: comment.threadId,\n context: {\n notification,\n },\n })\n }\n\n const handleCommentReact = async (id: string, reaction: CommentReactionOption) => {\n await operation.react(id, reaction)\n }\n\n const handleDeleteCommentStart = (id: string) => setCommentToDeleteId(id)\n const handleDeleteCommentCancel = () => setCommentToDeleteId(null)\n\n const handleDeleteCommentConfirm = async (id: string) => {\n try {\n setCommentDeleteLoading(true)\n setCommentDeleteError(null)\n await operation.remove(id)\n setCommentToDeleteId(null)\n } catch (err) {\n setCommentDeleteError(err)\n }\n setCommentDeleteLoading(false)\n }\n\n const handleCommentEdit = async (id: string, next: CommentUpdatePayload) => {\n await operation.update(id, next)\n }\n\n const activity: Activity[] = useMemo(() => {\n const taskActivity: Activity[] = activityData.map((item) => ({\n _type: 'activity' as const,\n payload: item,\n timestamp: item.timestamp,\n }))\n const commentsActivity: Activity[] = taskComments.map((comment) => ({\n _type: 'comment' as const,\n payload: comment,\n timestamp: comment.parentComment._createdAt,\n }))\n\n return taskActivity\n .concat(commentsActivity)\n .sort((a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime())\n }, [activityData, taskComments])\n const {t} = useTranslation(tasksLocaleNamespace)\n\n const commentToDeleteIsParent = useMemo(() => {\n const parent = taskComments.find((c) => c.parentComment?._id === commentToDeleteId)\n const isParent = Boolean(parent && parent?.replies?.length > 0)\n\n return isParent\n }, [commentToDeleteId, taskComments])\n\n return (\n <>\n {commentToDeleteId && (\n <CommentDeleteDialog\n commentId={commentToDeleteId}\n error={commentDeleteError}\n isParent={commentToDeleteIsParent}\n loading={commentDeleteLoading}\n onClose={handleDeleteCommentCancel}\n onConfirm={handleDeleteCommentConfirm}\n />\n )}\n\n <Stack gap={5}>\n <Flex align=\"center\">\n <Box flex={1}>\n <Text size={2} weight=\"semibold\">\n {t('panel.activity.title')}\n </Text>\n </Box>\n\n {currentUser?.id && (\n <TasksSubscribers\n currentUserId={currentUser.id}\n value={value}\n onChange={onChange}\n path={path}\n />\n )}\n </Flex>\n\n {loading && <LoadingBlock showText title=\"Loading activity\" />}\n\n <AnimatePresence>\n {!loading && (\n <MotionStack animate=\"visible\" initial=\"hidden\" gap={4} variants={VARIANTS}>\n {value.createdByUser && (\n <Stack paddingBottom={1}>\n <TasksActivityCreatedAt\n createdAt={value.createdByUser}\n authorId={value.authorId}\n />\n </Stack>\n )}\n\n {currentUser && (\n <Stack gap={4} marginTop={1}>\n {activity.map((item) => {\n if (item._type === 'activity') {\n return <EditedAt key={item.timestamp} activity={item.payload} />\n }\n\n return (\n <TasksActivityCommentItem\n key={item.payload.parentComment._id}\n currentUser={currentUser}\n mentionOptions={mentionOptions}\n onCreateRetry={handleCommentCreateRetry}\n onDelete={handleDeleteCommentStart}\n onEdit={handleCommentEdit}\n onReactionSelect={handleCommentReact}\n onReply={handleCommentReply}\n parentComment={item.payload.parentComment}\n replies={item.payload.replies}\n />\n )\n })}\n\n <TasksActivityCommentInput\n currentUser={currentUser}\n mentionOptions={mentionOptions}\n onSubmit={handleCommentCreate}\n />\n </Stack>\n )}\n </MotionStack>\n )}\n </AnimatePresence>\n </Stack>\n </>\n )\n}\n","import {type Path} from '@sanity/types'\nimport {\n Badge,\n Box,\n // oxlint-disable-next-line no-restricted-imports\n Button,\n Flex,\n Text,\n TextSkeleton,\n} from '@sanity/ui'\nimport {useCallback, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Tooltip} from '../../../../../../ui-components/tooltip/Tooltip'\nimport {useFormValue} from '../../../../../form/contexts/FormValue'\nimport {set} from '../../../../../form/patch/patch'\nimport {type PatchEvent} from '../../../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../../../form/patch/types'\nimport {useTranslation} from '../../../../../i18n/hooks/useTranslation'\nimport {useMentionUser} from '../../../../context/mentionUser/useMentionUser'\nimport {tasksLocaleNamespace} from '../../../../i18n'\nimport {TasksUserAvatar} from '../../../TasksUserAvatar'\nimport {AssigneeSelectionMenu} from './AssigneeSelectionMenu'\n\nconst StyledButton = styled(Button)`\n padding: 3px 6px;\n`\n\ninterface AssigneeEditFormFieldProps {\n value: string | undefined\n path: Path\n onChange: (patch: FormPatch | PatchEvent | FormPatch[]) => void\n}\n\nexport function AssigneeEditFormField(props: AssigneeEditFormFieldProps) {\n const {value, onChange, path} = props\n const subscribers = useFormValue(['subscribers']) as string[] | undefined\n const {mentionOptions} = useMentionUser()\n const mentionedUser = useMemo(\n () => mentionOptions.data?.find((u) => u.id === value),\n [mentionOptions.data, value],\n )\n const {t} = useTranslation(tasksLocaleNamespace)\n\n const onSelect = useCallback(\n (userId: string) => {\n onChange(set(userId, path))\n if (subscribers && !subscribers.includes(userId) && userId) {\n onChange(set([...subscribers, userId], ['subscribers']))\n }\n },\n [onChange, path, subscribers],\n )\n\n const displayText = useMemo(() => {\n if (value) {\n if (mentionOptions.loading) return <TextSkeleton animated style={{width: '10ch'}} />\n if (mentionedUser) return mentionedUser.displayName || mentionedUser.email\n if (!mentionedUser) return t('form.input.assignee.user-not-found.text')\n }\n return t('form.input.assignee.no-user-assigned.text')\n }, [mentionOptions.loading, mentionedUser, value, t])\n\n return (\n <AssigneeSelectionMenu\n onSelect={onSelect}\n value={value}\n menuButton={\n <StyledButton mode=\"ghost\" padding={0}>\n <Tooltip\n content={\n value\n ? t('form.input.assignee.user-assigned.tooltip')\n : t('form.input.assignee.no-user-assigned.tooltip')\n }\n >\n <Flex align=\"center\" gap={3}>\n <Flex align=\"center\" gap={2} flex={1}>\n <TasksUserAvatar user={mentionedUser} size={0} />\n <Box>\n <Text size={1} textOverflow=\"ellipsis\">\n {displayText}\n </Text>\n </Box>\n </Flex>\n\n {value && mentionedUser && !mentionedUser.granted && (\n <Badge fontSize={1}>{t('form.input.assignee.unauthorized.text')}</Badge>\n )}\n </Flex>\n </Tooltip>\n </StyledButton>\n }\n />\n )\n}\n","import {CalendarIcon} from '@sanity/icons/Calendar'\nimport {type Path} from '@sanity/types'\nimport {Box, Flex, useClickOutsideEvent} from '@sanity/ui'\nimport {DEFAULT_DATE_FORMAT, format, parse} from '@sanity/util/legacyDateFormat'\nimport {type KeyboardEvent, useCallback, useMemo, useRef, useState} from 'react'\nimport ReactFocusLock from 'react-focus-lock'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {Popover} from '../../../../../ui-components/popover/Popover'\nimport {type CalendarLabels} from '../../../../components/inputs/DateInputs/calendar/types'\nimport {DatePicker} from '../../../../components/inputs/DateInputs/DatePicker'\nimport {getCalendarLabels} from '../../../../form/inputs/DateInputs/utils'\nimport {set, unset} from '../../../../form/patch/patch'\nimport {type PatchEvent} from '../../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../../form/patch/types'\nimport {useDateTimeFormat, type UseDateTimeFormatOptions} from '../../../../hooks/useDateTimeFormat'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {SCHEDULED_PUBLISHING_TIME_ZONE_SCOPE} from '../../../../studio/constants'\nimport {tasksLocaleNamespace} from '../../../i18n'\n\nconst serialize = (date: Date) => format(date, DEFAULT_DATE_FORMAT)\nconst deserialize = (value: string | undefined) => parse(value || '', DEFAULT_DATE_FORMAT)\n\nconst DUE_BY_DATE_OPTIONS: UseDateTimeFormatOptions = {\n dateStyle: 'long',\n timeZone: 'UTC',\n}\nconst SHORT_DATE_OPTIONS: UseDateTimeFormatOptions = {\n month: 'short',\n day: 'numeric',\n timeZone: 'UTC',\n}\nexport function DateEditFormField(props: {\n value: string | undefined\n onChange: (patch: FormPatch | PatchEvent | FormPatch[]) => void\n path: Path\n}) {\n const {value, onChange, path} = props\n const {t: coreT} = useTranslation()\n const {t} = useTranslation(tasksLocaleNamespace)\n\n const [pickerOpen, setPickerOpen] = useState(false)\n const popoverRef = useRef<HTMLDivElement | null>(null)\n const buttonRef = useRef<HTMLButtonElement | null>(null)\n const longDateFormatter = useDateTimeFormat(DUE_BY_DATE_OPTIONS)\n const shortDateFormatter = useDateTimeFormat(SHORT_DATE_OPTIONS)\n const dueByeDisplayValue = useMemo(() => {\n if (!value) return {short: '----', full: '----'}\n const dueFormatted = longDateFormatter.format(new Date(value))\n const shortDueFormatted = shortDateFormatter.format(new Date(value))\n return {short: shortDueFormatted, full: dueFormatted}\n }, [longDateFormatter, shortDateFormatter, value])\n\n useClickOutsideEvent(\n () => setPickerOpen(false),\n () => [popoverRef.current],\n )\n\n const handleKeyUp = useCallback((e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape') {\n setPickerOpen(false)\n }\n }, [])\n const handleClick = useCallback(() => setPickerOpen((p) => !p), [])\n const calendarLabels: CalendarLabels = useMemo(() => getCalendarLabels(coreT), [coreT])\n const handleChange = useCallback(\n (nextDate: Date | null) => {\n if (nextDate) {\n onChange(set(serialize(nextDate), path))\n } else {\n onChange(unset(path))\n }\n setPickerOpen(false)\n },\n [onChange, path],\n )\n\n const deserializedValue = deserialize(value)\n const handleDeactivation = useCallback(() => {\n buttonRef.current?.focus()\n }, [buttonRef])\n const dueDateIsThisYear = deserializedValue?.date?.getFullYear() === new Date().getFullYear()\n\n return (\n <Popover\n constrainSize\n data-testid=\"date-input-dialog\"\n portal\n ref={popoverRef}\n content={\n <Box overflow=\"auto\">\n <ReactFocusLock onDeactivation={handleDeactivation}>\n <DatePicker\n calendarLabels={calendarLabels}\n selectTime={false}\n timeStep={1}\n onKeyUp={handleKeyUp}\n value={deserializedValue.date}\n onChange={handleChange}\n timeZoneScope={SCHEDULED_PUBLISHING_TIME_ZONE_SCOPE}\n />\n {value && (\n <Flex justify={'flex-start'} padding={3} paddingTop={0}>\n <Button\n mode=\"bleed\"\n text={t('form.input.date.buttons.remove.text')}\n onClick={() => handleChange(null)}\n tone=\"critical\"\n />\n </Flex>\n )}\n </ReactFocusLock>\n </Box>\n }\n open={pickerOpen}\n placement=\"bottom\"\n fallbackPlacements={['bottom-start', 'bottom-end']}\n >\n <Button\n icon={CalendarIcon}\n mode=\"ghost\"\n text={dueDateIsThisYear ? dueByeDisplayValue.short : dueByeDisplayValue.full}\n onClick={handleClick}\n ref={buttonRef}\n tooltipProps={{\n content: value\n ? t('form.input.date.buttons.tooltip')\n : t('form.input.date.buttons.empty.tooltip'),\n }}\n />\n </Popover>\n )\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {CircleIcon} from '@sanity/icons/Circle'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {type Path, type TitledListValue} from '@sanity/types'\nimport {Menu} from '@sanity/ui'\nimport {useCallback, type RefAttributes} from 'react'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {MenuButton} from '../../../../../ui-components/menuButton/MenuButton'\nimport {MenuItem} from '../../../../../ui-components/menuItem/MenuItem'\nimport {set} from '../../../../form/patch/patch'\nimport {type PatchEvent} from '../../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../../form/patch/types'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {TaskStatusChanged} from '../../../__telemetry__/tasks.telemetry'\nimport {TASK_STATUS} from '../../../constants/TaskStatus'\nimport {tasksLocaleNamespace} from '../../../i18n'\n\nfunction StatusMenuButton(\n props: {\n value: string | undefined\n options: TitledListValue<string>[]\n } & RefAttributes<HTMLButtonElement>,\n) {\n const {t} = useTranslation(tasksLocaleNamespace)\n const {ref, value, options, ...rest} = props\n const selectedOption = options.find((option) => option.value === value)\n const icon = TASK_STATUS.find((status) => status.value === value)?.icon\n return (\n <Button\n {...rest}\n ref={ref}\n tooltipProps={{content: t('form.input.status.button.tooltip')}}\n icon={icon}\n text={selectedOption?.title || value}\n tone=\"default\"\n mode=\"ghost\"\n />\n )\n}\n\ninterface StatusSelectorProps {\n value: string | undefined\n path: Path\n options: TitledListValue<string>[]\n onChange: (patch: FormPatch | PatchEvent | FormPatch[]) => void\n}\n\nexport function StatusSelector(props: StatusSelectorProps) {\n const {value, onChange, options, path} = props\n const telemetry = useTelemetry()\n\n const handleStatusChange = useCallback(\n (next?: string) => {\n onChange(set(next, path))\n telemetry.log(TaskStatusChanged, {from: value, to: next})\n },\n [onChange, path, telemetry, value],\n )\n\n return (\n <MenuButton\n button={<StatusMenuButton value={value} options={options} />}\n id={`reference-menuButton`}\n menu={\n <Menu>\n {options.map((option) => {\n const isSelected = value === option.value\n const icon = TASK_STATUS.find((status) => status.value === option.value)?.icon\n return (\n <MenuItem\n key={option.title}\n icon={typeof option.value === 'string' ? icon || CircleIcon : CircleIcon}\n text={option.title || option.value}\n pressed={isSelected}\n iconRight={isSelected && <CheckmarkIcon />}\n onClick={() => handleStatusChange(option.value)}\n />\n )\n })}\n </Menu>\n }\n />\n )\n}\n","import {Stack, Text} from '@sanity/ui'\n\nimport {Dialog} from '../../../../ui-components/dialog/Dialog'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {type useRemoveTask} from '../../hooks/useRemoveTask'\nimport {tasksLocaleNamespace} from '../../i18n'\n\nexport function RemoveTaskDialog(props: ReturnType<typeof useRemoveTask>) {\n const {handleCloseDialog, handleRemove, removeStatus, showDialog} = props\n const {t} = useTranslation(tasksLocaleNamespace)\n if (showDialog) {\n return (\n <Dialog\n id=\"remove-task\"\n header={t('dialog.remove-task.title')}\n onClose={handleCloseDialog}\n footer={{\n cancelButton: {\n text: t('dialog.remove-task.buttons.cancel.text'),\n onClick: handleCloseDialog,\n },\n confirmButton: {\n text: t('dialog.remove-task.buttons.confirm.text'),\n tone: 'critical',\n onClick: handleRemove,\n loading: removeStatus === 'loading',\n },\n }}\n >\n <Stack gap={3}>\n <Text as=\"p\">{t('dialog.remove-task.body')}</Text>\n </Stack>\n </Dialog>\n )\n }\n return null\n}\n","import {CopyIcon} from '@sanity/icons/Copy'\nimport {LinkIcon} from '@sanity/icons/Link'\nimport {TrashIcon} from '@sanity/icons/Trash'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {type PortableTextBlock} from '@sanity/types'\nimport {Box, Card, Flex, Menu, MenuDivider, Stack} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {useCallback, useMemo} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {MenuButton} from '../../../../../ui-components/menuButton/MenuButton'\nimport {MenuItem} from '../../../../../ui-components/menuItem/MenuItem'\nimport {TooltipDelayGroupProvider} from '../../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {CommentsProvider} from '../../../../comments/context/comments/CommentsProvider'\nimport {ContextMenuButton} from '../../../../components/contextMenuButton/ContextMenuButton'\nimport {LoadingBlock} from '../../../../components/loadingBlock/LoadingBlock'\nimport {set} from '../../../../form/patch/patch'\nimport {type PatchEvent} from '../../../../form/patch/PatchEvent'\nimport {type FormPatch} from '../../../../form/patch/types'\nimport {type ObjectInputProps} from '../../../../form/types/inputProps'\nimport {TransformPatches} from '../../../../form/utils/TransformPatches'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {useCurrentUser} from '../../../../store/user/hooks'\nimport {TaskDuplicated, TaskRemoved} from '../../../__telemetry__/tasks.telemetry'\nimport {useTasksEnabled} from '../../../context/enabled/useTasksEnabled'\nimport {useTasksNavigation} from '../../../context/navigation/useTasksNavigation'\nimport {useActivityLog} from '../../../hooks/useActivityLog'\nimport {useRemoveTask} from '../../../hooks/useRemoveTask'\nimport {tasksLocaleNamespace} from '../../../i18n'\nimport {type TaskDocument} from '../../../types'\nimport {TasksActivityLog} from '../../activity/TasksActivityLog'\nimport {CurrentWorkspaceProvider} from '../CurrentWorkspaceProvider'\nimport {AssigneeEditFormField} from '../fields/assignee/AssigneeEditFormField'\nimport {DateEditFormField} from '../fields/DateEditFormField'\nimport {StatusSelector} from '../fields/StatusSelector'\nimport {Title} from '../fields/TitleField'\nimport {RemoveTaskDialog} from '../RemoveTaskDialog'\nimport {getMentionedUsers} from '../utils'\n\nconst FirstRow = styled(Flex)((props) => {\n const theme = getTheme_v2(props.theme)\n return css`\n column-gap: ${theme.space[2]}px;\n row-gap: ${theme.space[3]}px;\n `\n})\n\nfunction FormActionsMenu({id, value}: {id: string; value: TaskDocument}) {\n const {setViewMode, handleCopyLinkToTask} = useTasksNavigation()\n const {mode} = useTasksEnabled()\n const telemetry = useTelemetry()\n\n const onTaskRemoved = useCallback(() => {\n setViewMode({type: 'list'})\n telemetry.log(TaskRemoved)\n }, [setViewMode, telemetry])\n const removeTask = useRemoveTask({id, onRemoved: onTaskRemoved})\n\n const duplicateTask = useCallback(() => {\n setViewMode({type: 'duplicate', duplicateTaskValues: value})\n telemetry.log(TaskDuplicated)\n }, [setViewMode, telemetry, value])\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n return (\n <>\n <Box paddingTop={3}>\n <MenuButton\n id=\"edit-task-menu\"\n button={<ContextMenuButton />}\n popover={{\n placement: 'bottom',\n fallbackPlacements: ['bottom-end', 'bottom-start'],\n }}\n menu={\n <Menu>\n <MenuItem\n text={t('menuitem.duplicate.text')}\n icon={CopyIcon}\n onClick={duplicateTask}\n tooltipProps={\n mode === 'upsell' ? {content: t('menuitem.duplicate.upsell-tooltip')} : undefined\n }\n disabled={mode === 'upsell'}\n />\n <MenuItem\n text={t('menuitem.copylink.text')}\n icon={LinkIcon}\n onClick={handleCopyLinkToTask}\n />\n <MenuDivider />\n <MenuItem\n text={t('menuitem.delete.text')}\n icon={TrashIcon}\n onClick={removeTask.handleOpenDialog}\n tone=\"critical\"\n />\n </Menu>\n }\n />\n </Box>\n <RemoveTaskDialog {...removeTask} />\n </>\n )\n}\n\nfunction FormEditInner(props: ObjectInputProps) {\n const statusField = props.schemaType.fields.find((f) => f.name === 'status')\n const value = props.value as TaskDocument\n const currentUser = useCurrentUser()\n const {t} = useTranslation(tasksLocaleNamespace)\n const activityData = useActivityLog(value).changes\n const handleChangeAndSubscribe = useCallback(\n (patch: FormPatch | PatchEvent | FormPatch[]) => {\n const subscribers = value.subscribers || []\n props.onChange(patch)\n if (!currentUser) return\n if (!subscribers.includes(currentUser.id)) {\n props.onChange(set([...subscribers, currentUser.id], ['subscribers']))\n }\n },\n [currentUser, props, value.subscribers],\n )\n if (!statusField) {\n throw new Error('Status field not found')\n }\n if (!value?._id) {\n return <LoadingBlock />\n }\n\n return (\n <>\n <Flex align=\"flex-start\" gap={3}>\n <Stack flex={1}>\n <Title\n onChange={handleChangeAndSubscribe}\n value={props.value?.title}\n path={['title']}\n placeholder={t('form.input.title.placeholder')}\n />\n </Stack>\n <FormActionsMenu id={props.value?._id} value={value} />\n </Flex>\n\n <Card borderTop marginTop={3}>\n <FirstRow\n paddingBottom={3}\n paddingTop={4}\n align=\"flex-start\"\n justify=\"flex-start\"\n wrap=\"wrap\"\n >\n <TooltipDelayGroupProvider>\n <StatusSelector\n value={props.value?.status}\n path={['status']}\n onChange={handleChangeAndSubscribe}\n options={statusField.type.options.list}\n />\n <AssigneeEditFormField\n value={props.value?.assignedTo}\n onChange={handleChangeAndSubscribe}\n path={['assignedTo']}\n />\n <DateEditFormField\n value={props.value?.dueBy}\n onChange={handleChangeAndSubscribe}\n path={['dueBy']}\n />\n </TooltipDelayGroupProvider>\n </FirstRow>\n </Card>\n\n {props.renderDefault(props)}\n <CurrentWorkspaceProvider>\n <CommentsProvider\n documentId={value._id}\n documentType=\"tasks.task\"\n sortOrder=\"asc\"\n type=\"task\"\n >\n <Card borderTop paddingTop={4} marginTop={4} paddingBottom={6}>\n <TasksActivityLog\n value={value}\n onChange={props.onChange}\n path={['subscribers']}\n activityData={activityData}\n />\n </Card>\n </CommentsProvider>\n </CurrentWorkspaceProvider>\n </>\n )\n}\n\nexport function FormEdit(props: ObjectInputProps) {\n const value = props.value as TaskDocument\n const currentUser = useCurrentUser()\n const subscribers = useMemo(() => value.subscribers || [], [value.subscribers])\n\n const transformPatches = useCallback(\n (patches: FormPatch[]) => {\n if (!currentUser) return patches\n if (patches.some((patch) => patch.path[0] === 'subscribers')) {\n return patches\n }\n if (\n patches.some((patch) => patch.path[0] === 'context' && patch.path[1] === 'notification')\n ) {\n return patches\n }\n\n const newSubscribers = [...subscribers]\n\n // If the assignee field is changing, we should subscribe the new assignee to the task.\n const changeAssigneePatch = patches.find((patch) => patch.path[0] === 'assignedTo')\n if (\n changeAssigneePatch &&\n changeAssigneePatch.type === 'set' &&\n typeof changeAssigneePatch.value === 'string' &&\n !newSubscribers.includes(changeAssigneePatch.value)\n ) {\n newSubscribers.push(changeAssigneePatch.value)\n }\n\n // When the user edits the form it should be subscribed to it, unless he is changing the subscribers list.\n if (!newSubscribers.includes(currentUser.id)) {\n newSubscribers.push(currentUser.id)\n }\n\n // Check if the description field changed, and new mentions have been added.\n const changedDescriptionPatch = patches.find(\n (patch) => patch.path[0] === 'description' && patch.type === 'set',\n )\n if (changedDescriptionPatch) {\n const prevMentionedUser = getMentionedUsers(value.description)\n const newDescription =\n changedDescriptionPatch.type === 'set'\n ? (changedDescriptionPatch.value as PortableTextBlock[] | undefined)\n : undefined\n\n const newMentionedUser = getMentionedUsers(newDescription)\n\n const diff = newMentionedUser.filter((user) => !prevMentionedUser.includes(user))\n diff.forEach((user) => {\n if (!newSubscribers.includes(user)) {\n newSubscribers.push(user)\n }\n })\n }\n\n // If the subscribers list has changed, we should update the subscribers list.\n if (newSubscribers.length !== subscribers.length) {\n patches.push(set(newSubscribers, ['subscribers']))\n }\n\n return patches\n },\n [currentUser, subscribers, value.description],\n )\n\n return (\n <TransformPatches transform={transformPatches}>\n <FormEditInner {...props} />\n </TransformPatches>\n )\n}\n","import {isImageSource} from '@sanity/asset-utils'\nimport {createImageUrlBuilder} from '@sanity/image-url'\nimport {useCallback, useEffect, useMemo} from 'react'\nimport deepEquals from 'react-fast-compare'\nimport {useRouterState} from 'sanity/router'\n\nimport {isDev} from '../../../../environment'\nimport {useFormValue} from '../../../../form/contexts/FormValue'\nimport {set} from '../../../../form/patch/patch'\nimport {type ObjectFieldProps} from '../../../../form/types/fieldProps'\nimport {useClient} from '../../../../hooks/useClient'\nimport {usePerspective} from '../../../../perspective/usePerspective'\nimport {useWorkspace} from '../../../../studio/workspace'\nimport {DEFAULT_STUDIO_CLIENT_OPTIONS} from '../../../../studioClient'\nimport {\n TASKS_SELECTED_TASK_SEARCH_PARAM,\n TASKS_SIDEBAR_SEARCH_PARAM,\n TASKS_VIEW_MODE_SEARCH_PARAM,\n} from '../../../context/navigation/types'\nimport {useDocumentPreviewValues} from '../../../hooks/useDocumentPreviewValues'\nimport {type TaskContext, type TaskDocument} from '../../../types'\nimport {CurrentWorkspaceProvider} from '../CurrentWorkspaceProvider'\n\nexport function getTaskURL(taskId: string, basePath?: string, toolName: string = ''): string {\n let path = window.location.origin\n if (basePath) path += basePath\n if (toolName) path += `/${toolName}`\n\n const currentUrl = new URL(`${path}/`)\n\n currentUrl.searchParams.set(TASKS_SIDEBAR_SEARCH_PARAM, 'tasks')\n currentUrl.searchParams.set(TASKS_SELECTED_TASK_SEARCH_PARAM, taskId)\n currentUrl.searchParams.set(TASKS_VIEW_MODE_SEARCH_PARAM, 'edit')\n return currentUrl.toString()\n}\n\nfunction TasksNotificationTargetInner(props: ObjectFieldProps<TaskDocument>) {\n const {inputProps} = props\n const {onChange} = inputProps\n const activeToolName = useRouterState(\n useCallback(\n (routerState) => (typeof routerState.tool === 'string' ? routerState.tool : undefined),\n [],\n ),\n )\n const {target, _id, context, _rev} = useFormValue([]) as TaskDocument\n const {title: workspaceTitle, basePath, name: workspaceName} = useWorkspace()\n const client = useClient(DEFAULT_STUDIO_CLIENT_OPTIONS)\n const imageBuilder = useMemo(() => createImageUrlBuilder(client), [client])\n const documentId = target?.document?._ref ?? ''\n const documentType = target?.documentType ?? ''\n\n const {perspectiveStack, selectedVariantName} = usePerspective()\n const {isLoading: previewValuesLoading, value} = useDocumentPreviewValues({\n documentId,\n documentType,\n perspectiveStack,\n variant: selectedVariantName,\n })\n const targetContentTitle = value?.title || null\n const imageUrl = isImageSource(value?.media)\n ? imageBuilder.image(value.media).width(96).height(96).url()\n : null\n\n const notificationTarget: TaskContext['notification'] = useMemo(() => {\n const contextUrl = context?.notification?.url\n const studioUrl =\n // Avoid updating the contextURL in dev mode if it already exists, persist the deployed one.\n contextUrl && isDev ? contextUrl : getTaskURL(_id, basePath, activeToolName)\n\n return {\n url: studioUrl,\n workspaceTitle,\n targetContentImageUrl: imageUrl,\n targetContentTitle: targetContentTitle,\n workspaceName,\n }\n }, [\n context?.notification?.url,\n _id,\n basePath,\n activeToolName,\n workspaceTitle,\n workspaceName,\n imageUrl,\n targetContentTitle,\n ])\n\n useEffect(() => {\n if (documentId && documentType && previewValuesLoading) {\n // Wait until the preview values are loaded\n return\n }\n\n // If the task doesn't have a _rev it means it's not created, don't add the notification target yet.\n if (!_rev) {\n return\n }\n\n if (deepEquals(context?.notification, notificationTarget)) {\n return\n }\n // Something changed, update the notification target\n onChange(set(notificationTarget, ['notification']))\n }, [_rev, context, documentId, documentType, notificationTarget, previewValuesLoading, onChange])\n\n return null\n}\n\n// This component is listening to the changes to the form value and will update the notification target in the task document.\nexport function TasksNotificationTarget(props: ObjectFieldProps<TaskDocument>) {\n return (\n <CurrentWorkspaceProvider>\n <TasksNotificationTargetInner {...props} />\n </CurrentWorkspaceProvider>\n )\n}\n","import {defineField, defineType} from '@sanity/types'\n\nimport {type ArrayFieldProps, type ObjectFieldProps} from '../../../../form/types/fieldProps'\nimport {TASK_STATUS} from '../../../constants/TaskStatus'\nimport {type FormMode} from '../../../types'\nimport {AssigneeCreateFormField} from '../fields/assignee/AssigneeCreateFormField'\nimport {DescriptionInput} from '../fields/descriptionInput/DescriptionInput'\nimport {FieldWrapper} from '../fields/FieldWrapper'\nimport {TargetField} from '../fields/TargetField'\nimport {TitleField} from '../fields/TitleField'\nimport {FormCreate} from '../tasksFormBuilder/FormCreate'\nimport {FormEdit} from '../tasksFormBuilder/FormEdit'\nimport {TasksNotificationTarget} from '../tasksFormBuilder/TasksNotificationTarget'\n\nconst targetContentField = (mode: FormMode) =>\n defineField({\n type: 'object',\n name: 'target',\n title: 'Target',\n components: {\n field: (props: ObjectFieldProps) => <TargetField {...props} mode={mode} />,\n },\n fields: [\n {\n name: 'document',\n type: 'crossDatasetReference',\n dataset: 'playground',\n weak: true,\n studioUrl: ({id, type}) => `intent/edit/id=${id};type=${type}/`,\n to: [\n {\n type: 'any_document',\n preview: {\n select: {title: 'title'},\n },\n },\n ],\n },\n {\n name: 'documentType',\n type: 'string',\n title: 'Document type',\n },\n {\n // The version segment of the targeted document id (release id or variant scope id) when\n // the task was created for a version document. See `TaskTarget.documentVersionId`.\n name: 'documentVersionId',\n type: 'string',\n hidden: true,\n },\n ],\n })\n\nconst descriptionInputField = (mode: FormMode) =>\n defineField({\n type: 'array',\n name: 'description',\n title: 'Description',\n components: {\n field: (props: ArrayFieldProps) => <DescriptionInput {...props} mode={mode} />,\n },\n of: [\n {\n type: 'block',\n name: 'block',\n of: [\n {\n name: 'mention',\n type: 'object',\n fields: [\n {\n name: 'userId',\n type: 'string',\n },\n ],\n },\n ],\n marks: {\n annotations: [],\n },\n styles: [{title: 'Normal', value: 'normal'}],\n lists: [],\n },\n ],\n })\nexport const taskSchema = (mode: FormMode) =>\n defineType({\n type: 'document',\n name: 'tasks.task',\n liveEdit: true,\n components: {\n input: mode === 'edit' ? FormEdit : FormCreate,\n },\n fields: [\n {\n type: 'string',\n title: 'Title',\n name: 'title',\n placeholder: 'Task title',\n components: {\n field: TitleField,\n },\n hidden: mode === 'edit',\n },\n ...(mode === 'edit'\n ? [targetContentField(mode), descriptionInputField(mode)]\n : [descriptionInputField(mode), targetContentField(mode)]),\n {\n type: 'string',\n name: 'assignedTo',\n title: 'Assign to',\n placeholder: 'Select assignee',\n components: {\n field: FieldWrapper,\n input: AssigneeCreateFormField,\n },\n hidden: mode === 'edit',\n },\n {\n type: 'date',\n name: 'dueBy',\n title: 'Deadline',\n placeholder: 'yyyy-mm-dd',\n components: {\n field: FieldWrapper,\n },\n hidden: mode === 'edit',\n },\n {\n type: 'string',\n name: 'authorId',\n hidden: true,\n },\n {\n type: 'string',\n name: 'createdByUser',\n hidden: true,\n },\n {\n type: 'array',\n of: [{type: 'string'}],\n name: 'subscribers',\n hidden: true,\n },\n {\n type: 'string',\n name: 'status',\n title: 'Status',\n options: {\n list: TASK_STATUS.map((s) => ({value: s.value, title: s.title})),\n },\n hidden: true,\n },\n {\n type: 'object',\n name: 'context',\n components: {\n field: TasksNotificationTarget,\n },\n fields: [\n {\n type: 'object',\n name: 'notification',\n fields: [\n {\n type: 'string',\n name: 'url',\n },\n {\n type: 'string',\n name: 'workspaceTitle',\n },\n {\n type: 'string',\n name: 'targetContentImageUrl',\n },\n {\n type: 'string',\n name: 'targetContentTitle',\n },\n ],\n },\n ],\n },\n ],\n })\n","import {useEffect, useMemo} from 'react'\n\nimport {LoadingBlock} from '../../../../components/loadingBlock/LoadingBlock'\nimport {prepareConfig} from '../../../../config/prepareConfig'\nimport {type Config} from '../../../../config/types'\nimport {useClient} from '../../../../hooks/useClient'\nimport {ResourceCacheProvider} from '../../../../store/ResourceCacheProvider'\nimport {useAddonDataset} from '../../../../studio/addonDataset/useAddonDataset'\nimport {SourceProvider, useSource} from '../../../../studio/source'\nimport {WorkspaceProvider} from '../../../../studio/workspace'\nimport {useWorkspaceLoader} from '../../../../studio/workspaceLoader/WorkspaceLoader'\nimport {API_VERSION} from '../../../constants/API_VERSION'\nimport {type FormMode} from '../../../types'\nimport {taskSchema} from './taskSchema'\n\nfunction TasksAddonWorkspaceProviderInner({\n children,\n mode,\n addonDataset,\n}: {\n addonDataset: string\n children: React.ReactNode\n mode: FormMode\n}) {\n const client = useClient({apiVersion: API_VERSION})\n const apiHost = client.config().apiHost\n // TODO: Is basePath necessary here?\n const basePath = ''\n\n // Parent workspace source, we want to use the same project id\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n const source = useSource()\n const addonDatasetConfig: Config = useMemo(\n () => ({\n basePath,\n dataset: addonDataset,\n name: `addon-dataset-${addonDataset}`,\n projectId: source.projectId,\n apiHost,\n schema: {\n types: [taskSchema(mode)],\n },\n }),\n [source.projectId, mode, apiHost, addonDataset, basePath],\n )\n\n const {workspaces} = useMemo(\n () => prepareConfig(addonDatasetConfig, {basePath}),\n [addonDatasetConfig, basePath],\n )\n const addonWorkspace = useWorkspaceLoader(workspaces[0])\n if (!addonWorkspace) return null\n return (\n <WorkspaceProvider workspace={addonWorkspace}>\n <SourceProvider source={addonWorkspace.unstable_sources[0]}>\n <ResourceCacheProvider>{children}</ResourceCacheProvider>\n </SourceProvider>\n </WorkspaceProvider>\n )\n}\n\n/**\n * Provides a workspace for the addon dataset, with the correct schema for tasks.\n * It also, creates the addon dataset if it doesn't exist.\n */\nexport function TasksAddonWorkspaceProvider(props: {children: React.ReactNode; mode: FormMode}) {\n const {client: addonDatasetClient, ready, createAddonDataset} = useAddonDataset()\n const addonDataset = addonDatasetClient?.config().dataset\n\n useEffect(() => {\n if (!addonDataset && ready) {\n // The user is trying to use the addon dataset form, but it hasn't been created yet.\n // We should create it.\n void createAddonDataset()\n }\n }, [addonDataset, ready, createAddonDataset])\n\n if (!addonDataset) {\n return <LoadingBlock />\n }\n\n return <TasksAddonWorkspaceProviderInner {...props} addonDataset={addonDataset} />\n}\n","import {type SanityDocument, type SanityDocumentLike} from '@sanity/types'\nimport {Box, rem} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {motion, type Variants} from 'motion/react'\nimport {useEffect, useMemo, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {LoadingBlock} from '../../../../components/loadingBlock/LoadingBlock'\nimport {createPatchChannel} from '../../../../form/patch/PatchChannel'\nimport {FormBuilder} from '../../../../form/studio/FormBuilder'\nimport {useDocumentForm} from '../../../../form/useDocumentForm'\nimport {PerspectiveProvider} from '../../../../perspective/PerspectiveProvider'\nimport {useCurrentUser} from '../../../../store/user/hooks'\nimport {useWorkspace} from '../../../../studio/workspace'\nimport {MentionUserProvider} from '../../../context/mentionUser/MentionUserProvider'\nimport {useMentionUser} from '../../../context/mentionUser/useMentionUser'\nimport {useTasksNavigation} from '../../../context/navigation/useTasksNavigation'\nimport {useTasks} from '../../../context/tasks/useTasks'\nimport {type TaskDocument, type TaskTarget} from '../../../types'\nimport {TasksAddonWorkspaceProvider} from '../addonWorkspace/TasksAddOnWorkspaceProvider'\nimport {getTargetValue} from '../utils'\n\nconst VARIANTS: Variants = {\n hidden: {opacity: 0},\n visible: {\n opacity: 1,\n transition: {duration: 0.2, delay: 0.2},\n },\n}\n\nconst FormBuilderRoot = styled(motion.div)((props) => {\n const theme = getTheme_v2(props.theme)\n\n return `\n // Update spacing for the form builder\n & > [data-ui='Stack'] {\n grid-gap: ${rem(theme.space[4])};\n }\n`\n})\n\n/**\n * A partial task document with the `_id` and `_type` fields.\n */\ntype TaskDocumentInitialValue = Partial<TaskDocument> & SanityDocumentLike\n\nconst TasksFormBuilderInner = ({\n documentId,\n initialValue,\n}: {\n documentId: string\n initialValue?: TaskDocumentInitialValue\n}) => {\n const [patchChannel] = useState(() => createPatchChannel())\n\n const {\n formState,\n onChange,\n onPathOpen,\n onFocus,\n onBlur,\n onSetActiveFieldGroup,\n onSetCollapsedFieldSet,\n onSetCollapsedPath,\n collapsedFieldSets,\n ready,\n collapsedPaths,\n schemaType,\n value,\n } = useDocumentForm({\n documentId,\n documentType: 'tasks.task',\n initialValue: initialValue\n ? {\n loading: false,\n value: initialValue,\n error: null,\n }\n : undefined,\n })\n\n const isLoading = formState === null || !ready\n\n // Updates the selected document in the mention user context - to verify the user permissions.\n const {setSelectedDocument} = useMentionUser()\n\n const target = isLoading ? undefined : (value?.target as TaskTarget)\n\n const targetId = target?.document?._ref\n const targetType = target?.documentType\n\n useEffect(() => {\n const documentValue =\n targetId && targetType ? ({_id: targetId, _type: targetType} as SanityDocument) : null\n\n setSelectedDocument(documentValue)\n }, [targetId, targetType, setSelectedDocument])\n\n return (\n <Box>\n {isLoading ? (\n <LoadingBlock showText />\n ) : (\n <FormBuilderRoot id=\"wrapper\" initial=\"hidden\" animate=\"visible\" variants={VARIANTS}>\n <FormBuilder\n __internal_patchChannel={patchChannel}\n id=\"root\"\n onChange={onChange}\n onPathFocus={onFocus}\n onPathOpen={onPathOpen}\n onPathBlur={onBlur}\n onFieldGroupSelect={onSetActiveFieldGroup}\n onSetFieldSetCollapsed={onSetCollapsedFieldSet}\n onSetPathCollapsed={onSetCollapsedPath}\n collapsedPaths={collapsedPaths}\n collapsedFieldSets={collapsedFieldSets}\n focusPath={formState.focusPath}\n changed={formState.changed}\n focused={formState.focused}\n groups={formState.groups}\n validation={formState.validation}\n members={formState.members}\n presence={formState.presence}\n schemaType={schemaType}\n value={value}\n hasUpstreamVersion={false}\n />\n </FormBuilderRoot>\n )}\n </Box>\n )\n}\n\n/**\n * @internal\n */\nexport function TasksFormBuilder() {\n const currentUser = useCurrentUser()\n const {activeDocument} = useTasks()\n const {dataset, projectId} = useWorkspace()\n const {\n state: {selectedTask, viewMode, duplicateTaskValues},\n } = useTasksNavigation()\n\n const initialValue: TaskDocumentInitialValue | undefined = useMemo(() => {\n if (!currentUser) return undefined\n if (!selectedTask) return undefined\n if (viewMode === 'duplicate') {\n return {\n ...duplicateTaskValues,\n title: `${duplicateTaskValues?.title} (copy)`, // Set the new task title\n createdByUser: undefined, // Remove the createdByUser field\n _id: selectedTask, // Set the new task ID\n _type: 'tasks.task',\n authorId: currentUser.id, // Set the author ID\n status: 'open',\n }\n }\n if (viewMode === 'create') {\n return {\n _id: selectedTask,\n _type: 'tasks.task',\n authorId: currentUser.id,\n status: 'open',\n subscribers: [currentUser.id],\n target: activeDocument\n ? getTargetValue({\n documentId: activeDocument.documentId,\n documentType: activeDocument.documentType,\n dataset,\n projectId,\n })\n : undefined,\n }\n }\n // For edit and draft mode, the initial value is undefined.\n return undefined\n }, [activeDocument, currentUser, dataset, duplicateTaskValues, projectId, selectedTask, viewMode])\n if (!currentUser) return <LoadingBlock showText title=\"Loading current user\" />\n if (!selectedTask) return null\n\n return (\n // This provider needs to be mounted before the TasksAddonWorkspaceProvider.\n <MentionUserProvider>\n {/* Task documents live in the addon dataset and never have release- or variant-scoped\n versions, so the form must not inherit the globally selected perspective: a selected\n variant makes `useDocumentForm` treat the task's variant target as missing (blocking all\n edits), and a selected release makes it check permissions against a nonexistent version\n document. Tasks always edit the base document, so the form gets a neutral perspective. */}\n <PerspectiveProvider selectedPerspectiveName={undefined}>\n <TasksAddonWorkspaceProvider mode={viewMode === 'edit' ? 'edit' : 'create'}>\n <TasksFormBuilderInner documentId={selectedTask} initialValue={initialValue} />\n </TasksAddonWorkspaceProvider>\n </PerspectiveProvider>\n </MentionUserProvider>\n )\n}\n","import {AddIcon} from '@sanity/icons/Add'\nimport {Box, Flex, Stack, Text} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useTasksEnabled} from '../../context/enabled/useTasksEnabled'\nimport {type SidebarTabsIds} from '../../context/navigation/types'\nimport {useTasksNavigation} from '../../context/navigation/useTasksNavigation'\nimport {useTasks} from '../../context/tasks/useTasks'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {type TaskStatus} from '../../types'\n\nconst HEADING_BY_STATUS: Record<\n TaskStatus,\n Record<\n SidebarTabsIds,\n {\n heading: string\n text: string\n }\n >\n> = {\n open: {\n assigned: {\n heading: 'empty-state.status.list.open.assigned.heading',\n text: 'empty-state.status.list.open.assigned.text',\n },\n document: {heading: 'empty-state.status.list.open.document.heading', text: ''},\n subscribed: {\n heading: 'empty-state.status.list.open.subscribed.heading',\n text: 'empty-state.status.list.open.subscribed.text',\n },\n },\n closed: {\n assigned: {\n heading: 'empty-state.status.list.closed.assigned.heading',\n text: 'empty-state.status.list.closed.assigned.text',\n },\n document: {heading: 'empty-state.status.list.closed.document.heading', text: ''},\n subscribed: {\n heading: 'empty-state.status.list.closed.subscribed.heading',\n text: 'empty-state.status.list.closed.subscribed.text',\n },\n },\n}\n\nexport function EmptyStatusListState({status}: {status: TaskStatus}) {\n const {\n state: {activeTabId},\n } = useTasksNavigation()\n const {t} = useTranslation(tasksLocaleNamespace)\n const {heading, text} = HEADING_BY_STATUS[status][activeTabId]\n return (\n <Stack gap={3}>\n <Text size={1} weight=\"semibold\">\n {t(heading)}\n </Text>\n <Text size={1}>{t(text)}</Text>\n </Stack>\n )\n}\n\nconst EMPTY_TASK_LIST: Record<\n SidebarTabsIds | 'noActiveDocument',\n {\n heading: string\n text: string\n }\n> = {\n assigned: {\n heading: 'empty-state.list.assigned.heading',\n text: 'empty-state.list.assigned.text',\n },\n subscribed: {\n heading: 'empty-state.list.subscribed.heading',\n text: 'empty-state.list.subscribed.text',\n },\n document: {\n heading: 'empty-state.list.document.heading',\n text: 'empty-state.list.document.text',\n },\n noActiveDocument: {\n heading: 'empty-state.list.no-active-document.heading',\n text: 'empty-state.list.no-active-document.text',\n },\n}\n\nconst Root = styled.div`\n max-width: 268px;\n margin: 0 auto;\n height: 100%;\n margin-top: 40%;\n`\n\nconst AnimatedText = styled(Text)`\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n animation: fadeIn 0.2s ease-in-out;\n`\n\nexport function EmptyTasksListState() {\n const {activeDocument} = useTasks()\n const {mode} = useTasksEnabled()\n const {\n state: {activeTabId},\n setViewMode,\n } = useTasksNavigation()\n\n const key = !activeDocument && activeTabId === 'document' ? 'noActiveDocument' : activeTabId\n\n const {heading, text} = EMPTY_TASK_LIST[key]\n const {t} = useTranslation(tasksLocaleNamespace)\n\n const handleTaskCreate = useCallback(() => {\n setViewMode({type: 'create'})\n }, [setViewMode])\n return (\n <Root>\n <Flex direction={'column'} gap={3} align={'center'} flex={1} justify={'center'}>\n <AnimatedText key={key} size={1} weight=\"semibold\">\n {t(heading)}\n </AnimatedText>\n <Box paddingBottom={6} paddingTop={1}>\n <AnimatedText key={key} size={1} align=\"center\">\n {t(text)}\n </AnimatedText>\n </Box>\n {mode !== 'upsell' && (\n <Button\n icon={AddIcon}\n text={t('empty-state.list.create-new')}\n onClick={handleTaskCreate}\n />\n )}\n </Flex>\n </Root>\n )\n}\n","import {DocumentIcon} from '@sanity/icons/Document'\nimport {Flex, Text, TextSkeleton} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {useMemo, type RefAttributes} from 'react'\nimport {IntentLink} from 'sanity/router'\nimport {styled} from 'styled-components'\n\nimport {useSchema} from '../../../hooks/useSchema'\nimport {usePerspective} from '../../../perspective/usePerspective'\nimport {useDocumentPreviewValues} from '../../hooks/useDocumentPreviewValues'\n\nconst StyledIntentLink = styled(IntentLink)((props) => {\n const theme = getTheme_v2(props.theme)\n\n return `\n text-decoration: underline;\n text-decoration-color: ${theme.color.input.default.enabled.border};\n text-underline-offset: 2px;\n`\n})\nexport function DocumentPreview({\n documentId,\n documentType,\n}: {\n documentId: string\n documentType: string\n}) {\n const schema = useSchema()\n const documentSchema = schema.get(documentType)\n const {perspectiveStack, selectedVariantName} = usePerspective()\n const {isLoading, value} = useDocumentPreviewValues({\n documentId,\n documentType,\n perspectiveStack,\n variant: selectedVariantName,\n })\n\n const Link = useMemo(\n () =>\n function LinkComponent(\n linkProps: React.ComponentPropsWithoutRef<'a'> & RefAttributes<HTMLAnchorElement>,\n ) {\n const {ref, ...rest} = linkProps\n return (\n <StyledIntentLink\n {...rest}\n intent=\"edit\"\n params={{id: documentId, type: documentType}}\n ref={ref}\n />\n )\n },\n [documentId, documentType],\n )\n\n if (!documentSchema) {\n return null\n }\n\n return (\n <Flex align=\"center\" gap={2}>\n <Text size={1}>\n <DocumentIcon />\n </Text>\n {isLoading ? (\n <TextSkeleton size={1} muted />\n ) : (\n <Text size={1} as={Link} weight=\"medium\" style={{maxWidth: '20ch'}} textOverflow=\"ellipsis\">\n {value?.title || 'Untitled'}\n </Text>\n )}\n </Flex>\n )\n}\n","import {Checkbox, Flex, Spinner} from '@sanity/ui'\nimport {useCallback, useState} from 'react'\n\nimport {useTaskOperations} from '../../hooks/useTaskOperations'\n\ninterface TasksStatusProps {\n documentId: string\n status?: string\n}\n\nexport function TasksStatus(props: TasksStatusProps) {\n const operations = useTaskOperations()\n const {documentId, status} = props\n\n const [checkboxValue, setCheckboxValue] = useState(status === 'closed')\n const [isLoading, setIsLoading] = useState(false)\n\n const handleCheckboxChange = useCallback(\n async (event: React.ChangeEvent<HTMLInputElement>) => {\n const isChecked = event.target.checked\n setCheckboxValue(isChecked)\n setIsLoading(true)\n\n try {\n if (isChecked) {\n await operations.edit(documentId, {status: 'closed'})\n } else if (!isChecked) {\n await operations.edit(documentId, {status: 'open'})\n }\n } catch (error) {\n console.error('An error occurred while updating the task status', error)\n }\n setIsLoading(false)\n },\n [documentId, operations],\n )\n\n return (\n <Flex>\n {isLoading ? (\n <div style={{height: '17px', width: '17px'}}>\n <Spinner style={{marginLeft: '3.5px', marginRight: '3.5px', marginTop: '3.5px'}} />\n </div>\n ) : (\n <Checkbox onChange={handleCheckboxChange} checked={checkboxValue} disabled={isLoading} />\n )}\n </Flex>\n )\n}\n","import {\n Box,\n // oxlint-disable-next-line no-restricted-imports\n Button as UIButton,\n Card,\n Flex,\n Stack,\n Text,\n} from '@sanity/ui'\nimport {isThisISOWeek} from 'date-fns/isThisISOWeek'\nimport {isToday} from 'date-fns/isToday'\nimport {useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport {useDateTimeFormat, type UseDateTimeFormatOptions} from '../../../hooks/useDateTimeFormat'\nimport {type TaskDocument} from '../../types'\nimport {TasksUserAvatar} from '../TasksUserAvatar'\nimport {DocumentPreview} from './DocumentPreview'\nimport {TasksStatus} from './TasksStatus'\n\ninterface TasksListItemProps extends Pick<\n TaskDocument,\n 'title' | 'assignedTo' | 'dueBy' | 'target' | 'status'\n> {\n documentId: string\n onSelect: () => void\n}\n\nconst TitleButton = styled(UIButton)`\n width: 100%;\n max-width: 100%;\n`\n\nconst TaskDetailsRoot = styled(Flex)`\n /* Checkbox width is 17px and first row gap is 12px. */\n margin-left: 29px;\n`\n\nfunction getTargetDocumentMeta(target?: TaskDocument['target']) {\n if (!target?.document?._ref) {\n return undefined\n }\n\n return {\n _ref: target?.document._ref,\n _type: target?.documentType,\n }\n}\nconst FULL_DATE_FORMAT_OPTIONS: UseDateTimeFormatOptions = {\n dateStyle: 'medium',\n timeZone: 'UTC',\n}\nconst MONTH_AND_DAY_FORMAT_OPTIONS: UseDateTimeFormatOptions = {\n month: 'short',\n day: 'numeric',\n timeZone: 'UTC',\n}\nconst DAY_FORMAT_OPTIONS: UseDateTimeFormatOptions = {\n weekday: 'long',\n timeZone: 'UTC',\n}\nfunction TaskDueDate({dueBy}: {dueBy: string}) {\n const fullDateFormatter = useDateTimeFormat(FULL_DATE_FORMAT_OPTIONS)\n const monthAndDayFormatter = useDateTimeFormat(MONTH_AND_DAY_FORMAT_OPTIONS)\n const dayFormatter = useDateTimeFormat(DAY_FORMAT_OPTIONS)\n\n const dateOptions = useMemo(() => {\n const date = new Date(dueBy)\n return {\n fullDate: fullDateFormatter.format(date),\n monthAndDay: monthAndDayFormatter.format(date),\n day: dayFormatter.format(date),\n isDueByToday: isToday(date),\n isDueThisWeek: isThisISOWeek(date),\n }\n }, [dayFormatter, dueBy, fullDateFormatter, monthAndDayFormatter])\n const {fullDate, monthAndDay, day, isDueByToday, isDueThisWeek} = dateOptions\n\n return (\n <Tooltip content={fullDate}>\n <Card tone={isDueByToday ? 'critical' : 'transparent'} padding={1} radius={2}>\n <Flex align=\"center\" gap={2}>\n <Text as=\"time\" size={1} dateTime={dueBy} muted>\n {isDueByToday ? 'Today' : isDueThisWeek ? day : monthAndDay}\n </Text>\n </Flex>\n </Card>\n </Tooltip>\n )\n}\n\nexport function TasksListItem(props: TasksListItemProps) {\n const {assignedTo, title, dueBy, target, onSelect, documentId, status} = props\n const targetDocument = useMemo(() => getTargetDocumentMeta(target), [target])\n\n return (\n <Stack gap={3} data-testid=\"tasks-list-item\">\n <Flex align=\"center\" gap={1}>\n <Box>\n <TasksStatus documentId={documentId} status={status} />\n </Box>\n\n <Flex flex={1}>\n <TitleButton onClick={onSelect} mode=\"bleed\" padding={2}>\n <Text size={1} textOverflow=\"ellipsis\" weight=\"semibold\">\n {title || 'Untitled'}\n </Text>\n </TitleButton>\n </Flex>\n\n <TasksUserAvatar user={assignedTo ? {id: assignedTo} : undefined} withTooltip />\n </Flex>\n\n {(dueBy || targetDocument) && (\n <TaskDetailsRoot align=\"center\" gap={2} paddingX={0}>\n {dueBy && <TaskDueDate dueBy={dueBy} />}\n\n {targetDocument && (\n <Box marginLeft={1}>\n <DocumentPreview\n documentId={targetDocument._ref}\n documentType={targetDocument._type}\n />\n </Box>\n )}\n </TaskDetailsRoot>\n )}\n </Stack>\n )\n}\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {Box, Flex, MenuDivider, Stack, Text} from '@sanity/ui'\nimport {Fragment, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {TASK_STATUS} from '../../constants/TaskStatus'\nimport {type TaskDocument, type TaskStatus} from '../../types'\nimport {EmptyStatusListState, EmptyTasksListState} from './EmptyStates'\nimport {TasksListItem} from './TasksListItem'\n\nconst EMPTY_ARRAY: [] = []\n\nconst getLabelForStatus = (status: string) => {\n const statusConfig = TASK_STATUS.find((item) => item.value === status)\n return statusConfig?.title\n}\n\nconst DetailsFlex = styled(Flex)`\n [data-ui='summary-icon'] {\n transition: transform 0.2s;\n transform: rotate(-90deg);\n }\n &[open] [data-ui='summary-icon'] {\n transform: rotate(0);\n }\n > summary::-webkit-details-marker {\n display: none;\n }\n`\nconst SummaryBox = styled(Box)`\n list-style: none;\n`\n\ninterface TaskListProps {\n status: TaskStatus\n tasks: TaskDocument[]\n onTaskSelect: (id: string) => void\n}\n\nfunction TaskList(props: TaskListProps) {\n const {status, tasks, onTaskSelect} = props\n\n return (\n <DetailsFlex forwardedAs=\"details\" direction=\"column\" open={status === 'open'}>\n <SummaryBox forwardedAs=\"summary\" paddingY={1}>\n <Flex align=\"center\" gap={1} paddingY={1}>\n <Text size={1} weight=\"medium\" muted>\n {getLabelForStatus(status)}\n </Text>\n\n <Text muted size={1}>\n <ChevronDownIcon data-ui=\"summary-icon\" />\n </Text>\n </Flex>\n </SummaryBox>\n\n <Stack gap={4} marginTop={3} paddingBottom={5}>\n {tasks?.length > 0 ? (\n tasks.map((task, index) => {\n const showDivider = index < tasks.length - 1\n\n return (\n <Fragment key={task._id}>\n <TasksListItem\n documentId={task._id}\n title={task.title}\n dueBy={task.dueBy}\n assignedTo={task.assignedTo}\n target={task.target}\n onSelect={() => onTaskSelect(task._id)}\n status={task.status}\n />\n\n {showDivider && <MenuDivider />}\n </Fragment>\n )\n })\n ) : (\n <EmptyStatusListState status={status} />\n )}\n </Stack>\n </DetailsFlex>\n )\n}\n\ninterface TasksListProps {\n onTaskSelect: (id: string) => void\n items: TaskDocument[]\n}\n\n/**\n * @internal\n */\nexport function TasksList(props: TasksListProps) {\n const {items = EMPTY_ARRAY, onTaskSelect} = props\n\n const tasksByStatus = useMemo(\n () =>\n items.reduce((acc: Record<string, TaskDocument[]>, task) => {\n if (!acc[task.status]) {\n acc[task.status] = []\n }\n acc[task.status].push(task)\n return acc\n }, {}),\n [items],\n )\n\n const hasOpenTasks = tasksByStatus.open?.length > 0\n const hasClosedTasks = tasksByStatus.closed?.length > 0\n\n return (\n <Stack gap={4} flex={1}>\n {!hasOpenTasks && !hasClosedTasks ? (\n <EmptyTasksListState />\n ) : (\n <>\n <TaskList status=\"open\" tasks={tasksByStatus.open} onTaskSelect={onTaskSelect} />\n\n <TaskList status=\"closed\" tasks={tasksByStatus.closed} onTaskSelect={onTaskSelect} />\n </>\n )}\n </Stack>\n )\n}\n","import {Box, Container} from '@sanity/ui'\n\nimport {UpsellPanel} from '../../../studio/upsell/UpsellPanel'\nimport {useTasksUpsell} from '../../context/upsell/useTasksUpsell'\n\nexport function TasksUpsellPanel() {\n const {\n upsellData: data,\n telemetryLogs: {panelPrimaryClicked: onPrimaryClick, panelSecondaryClicked: onSecondaryClick},\n } = useTasksUpsell()\n\n if (!data) return null\n return (\n <Container width={1}>\n <Box marginBottom={6}>\n <UpsellPanel\n data={data}\n onPrimaryClick={onPrimaryClick}\n onSecondaryClick={onSecondaryClick}\n />\n </Box>\n </Container>\n )\n}\n","import {TabList, Text} from '@sanity/ui'\nimport {useCallback, useMemo} from 'react'\nimport {type CSSProperties} from 'styled-components'\n\nimport {Tab} from '../../../../ui-components/tab/Tab'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {type SidebarTabsIds} from '../../context/navigation/types'\nimport {tasksLocaleNamespace} from '../../i18n'\n\nconst LIST_STYLES: CSSProperties = {\n marginLeft: '-0.5em',\n justifyContent: 'space-between',\n display: 'flex',\n}\n\ninterface TasksListTabsProps {\n activeTabId: string\n onChange: (id: SidebarTabsIds) => void\n}\n\ninterface TasksListTab {\n id: SidebarTabsIds\n label: string\n}\n\n/**\n * @internal\n */\nexport function TasksListTabs({activeTabId, onChange}: TasksListTabsProps) {\n const {t} = useTranslation(tasksLocaleNamespace)\n\n const tabs: TasksListTab[] = useMemo(\n () => [\n {\n id: 'assigned',\n label: t('tab.assigned.label'),\n },\n {\n id: 'subscribed',\n label: t('tab.subscribed.label'),\n },\n {\n id: 'document',\n label: t('tab.document.label'),\n },\n ],\n [t],\n )\n\n const handleTabChange = useCallback(\n (tab: TasksListTab) => {\n onChange(tab.id)\n },\n [onChange],\n )\n\n return (\n <TabList gap={2} style={LIST_STYLES}>\n {tabs.map((tab) => (\n <Tab\n key={`${tab.id}-tab`}\n aria-controls={`${tab.id}-panel`}\n id={`${tab.id}-tab`}\n onClick={() => handleTabChange(tab)}\n selected={tab.id === activeTabId}\n >\n <Text size={1} weight=\"medium\">\n {tab.label}\n </Text>\n </Tab>\n ))}\n </TabList>\n )\n}\n","import {ChevronLeftIcon} from '@sanity/icons/ChevronLeft'\nimport {ChevronRightIcon} from '@sanity/icons/ChevronRight'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {useCallback} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport {TooltipDelayGroupProvider} from '../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useTasksNavigation} from '../../context/navigation/useTasksNavigation'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {type TaskDocument} from '../../types'\n\ninterface TasksActiveTabNavigationProps {\n items: TaskDocument[]\n}\n\nconst Divider = styled.div((props) => {\n const theme = getTheme_v2(props.theme)\n\n return `\n height: 25px;\n width: 1px;\n background-color: ${theme.color.input.default.enabled.border};\n `\n})\n\n/**\n * @internal\n * Navigation buttons for the active tab the user selected, will be shown when editing a task.\n */\nexport function TasksActiveTabNavigation(props: TasksActiveTabNavigationProps) {\n const {items: allItems} = props\n const {state, setViewMode} = useTasksNavigation()\n const {selectedTask} = state\n const items = allItems.filter((t) => t.status === 'open')\n const currentItemIndex = items.findIndex((item) => item._id === selectedTask)\n\n const goToPreviousTask = useCallback(() => {\n const prevTaskId =\n currentItemIndex > 0 ? items[currentItemIndex - 1]._id : items[items.length - 1]._id\n setViewMode({type: 'edit', id: prevTaskId})\n }, [currentItemIndex, items, setViewMode])\n\n const goToNextTask = useCallback(() => {\n const nextTaskId =\n currentItemIndex < items.length - 1 ? items[currentItemIndex + 1]._id : items[0]._id\n setViewMode({type: 'edit', id: nextTaskId})\n }, [currentItemIndex, items, setViewMode])\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n if (!items.length) return null\n return (\n <TooltipDelayGroupProvider>\n <Flex gap={1} align=\"center\">\n <Button\n tooltipProps={{content: t('buttons.previous.tooltip')}}\n mode=\"bleed\"\n icon={ChevronLeftIcon}\n onClick={goToPreviousTask}\n />\n <Tooltip content={t('panel.navigation.tooltip')}>\n <Box paddingY={2}>\n <Text size={1}>\n {currentItemIndex + 1} / {items.length}\n </Text>\n </Box>\n </Tooltip>\n <Button\n tooltipProps={{content: t('buttons.next.tooltip')}}\n mode=\"bleed\"\n icon={ChevronRightIcon}\n onClick={goToNextTask}\n />\n <Divider />\n </Flex>\n </TooltipDelayGroupProvider>\n )\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {Box, Menu, MenuDivider, Text} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {MenuButton, type MenuButtonProps} from '../../../../ui-components/menuButton/MenuButton'\nimport {MenuItem} from '../../../../ui-components/menuItem/MenuItem'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useCurrentUser} from '../../../store/user/hooks'\nimport {EMPTY_ARRAY} from '../../../util/empty'\nimport {useTasksNavigation} from '../../context/navigation/useTasksNavigation'\nimport {useTasks} from '../../context/tasks/useTasks'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {type TaskDocument} from '../../types'\n\nconst MENU_BUTTON_POPOVER_PROPS: MenuButtonProps['popover'] = {\n constrainSize: true,\n fallbackPlacements: ['bottom-end'],\n placement: 'bottom-end',\n portal: true,\n}\n\nconst StyledMenu = styled(Menu)`\n width: 220px;\n`\n\ninterface TasksDraftsMenuItemProps {\n isSelected: boolean\n item: TaskDocument\n onSelect: (id: string) => void\n}\n\nfunction TasksDraftsMenuItem(props: TasksDraftsMenuItemProps) {\n const {isSelected, item, onSelect} = props\n\n const handleClick = useCallback(() => {\n onSelect(item._id)\n }, [item._id, onSelect])\n\n const iconRight = isSelected ? CheckmarkIcon : undefined\n const text = item.title || 'Untitled'\n\n return (\n <MenuItem\n iconRight={iconRight}\n onClick={handleClick}\n pressed={isSelected}\n selected={isSelected}\n text={text}\n />\n )\n}\n\nexport function TasksHeaderDraftsMenu() {\n const {data} = useTasks()\n const {state, setViewMode} = useTasksNavigation()\n const {viewMode, selectedTask} = state\n\n const currentUser = useCurrentUser()\n\n const draftTasks = currentUser?.id\n ? data.filter((task) => {\n const isAuthoredByUser = task.authorId === currentUser.id\n const isDraft = !task.createdByUser\n const hasEdits = task._updatedAt !== task._createdAt\n const isNotTheTaskBeingCreated = viewMode === 'create' ? task._id !== selectedTask : true\n return isAuthoredByUser && isDraft && isNotTheTaskBeingCreated && hasEdits\n })\n : EMPTY_ARRAY\n\n const handleSelectTask = useCallback(\n (id: string) => {\n setViewMode({type: 'draft', id})\n },\n [setViewMode],\n )\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n if (!draftTasks.length) return null\n\n return (\n <MenuButton\n button={<Button text={t('buttons.draft.text')} mode=\"ghost\" iconRight={ChevronDownIcon} />}\n id=\"edit-task-menu\"\n menu={\n <StyledMenu>\n <Box padding={3}>\n <Text size={1} weight=\"semibold\">\n {t('panel.drafts.title')}\n </Text>\n </Box>\n\n <MenuDivider />\n\n {draftTasks?.map((task) => {\n return (\n <TasksDraftsMenuItem\n key={task._id}\n isSelected={selectedTask === task._id}\n item={task}\n onSelect={handleSelectTask}\n />\n )\n })}\n </StyledMenu>\n }\n popover={MENU_BUTTON_POPOVER_PROPS}\n />\n )\n}\n","import {AddIcon} from '@sanity/icons/Add'\nimport {ChevronRightIcon} from '@sanity/icons/ChevronRight'\nimport {CloseIcon} from '@sanity/icons/Close'\nimport {\n Box,\n // oxlint-disable-next-line no-restricted-imports\n Button as UIButton,\n Flex,\n Text,\n} from '@sanity/ui'\nimport {useCallback} from 'react'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useTasksEnabled} from '../../context/enabled/useTasksEnabled'\nimport {useTasksNavigation} from '../../context/navigation/useTasksNavigation'\nimport {tasksLocaleNamespace} from '../../i18n'\nimport {type TaskDocument} from '../../types'\nimport {TasksActiveTabNavigation} from './TasksActiveTabNavigation'\nimport {TasksHeaderDraftsMenu} from './TasksHeaderDraftsMenu'\n\ninterface TasksSidebarHeaderProps {\n items: TaskDocument[]\n}\n\n/**\n * @internal\n */\nexport function TasksSidebarHeader(props: TasksSidebarHeaderProps) {\n const {items: allItems} = props\n const {mode} = useTasksEnabled()\n const {state, setViewMode, handleCloseTasks} = useTasksNavigation()\n const {viewMode, activeTabId} = state\n\n const handleTaskCreate = useCallback(() => {\n setViewMode({type: 'create'})\n }, [setViewMode])\n\n const handleGoBack = useCallback(() => {\n setViewMode({type: 'list'})\n }, [setViewMode])\n\n const {t} = useTranslation(tasksLocaleNamespace)\n\n return (\n <Flex justify=\"space-between\" align=\"center\" gap={1}>\n <Flex align=\"center\" flex={1}>\n {viewMode === 'list' ? (\n <Box padding={2}>\n <Text size={2} weight=\"semibold\">\n {t('panel.title')}\n </Text>\n </Box>\n ) : (\n <>\n <UIButton mode=\"bleed\" gap={2} padding={2} onClick={handleGoBack}>\n <Text size={1}>{t('panel.title')}</Text>\n </UIButton>\n <ChevronRightIcon />\n <Box paddingX={2}>\n <Text size={1} weight=\"semibold\" style={{textTransform: 'capitalize'}}>\n {viewMode === 'create' || viewMode === 'draft'\n ? t('panel.create.title')\n : activeTabId}\n </Text>\n </Box>\n </>\n )}\n </Flex>\n {(viewMode === 'create' || viewMode === 'draft') && <TasksHeaderDraftsMenu />}\n {viewMode === 'edit' && <TasksActiveTabNavigation items={allItems} />}\n <Flex gap={1}>\n {viewMode === 'list' && (\n <Button\n icon={AddIcon}\n onClick={handleTaskCreate}\n mode=\"bleed\"\n text={t('buttons.new.text')}\n disabled={mode === 'upsell'}\n tooltipProps={\n mode === 'upsell'\n ? {\n content: t('buttons.new.upsell-tooltip'),\n }\n : undefined\n }\n />\n )}\n\n <Button\n tooltipProps={{\n content: t('panel.close.tooltip'),\n }}\n iconRight={CloseIcon}\n mode=\"bleed\"\n onClick={handleCloseTasks}\n />\n </Flex>\n </Flex>\n )\n}\n","import {Card, Flex, Spinner, Stack} from '@sanity/ui'\nimport {motion} from 'motion/react'\nimport {useCallback, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCurrentUser} from '../../../store/user/hooks'\nimport {useTasksEnabled} from '../../context/enabled/useTasksEnabled'\nimport {useTasksNavigation} from '../../context/navigation/useTasksNavigation'\nimport {useTasks} from '../../context/tasks/useTasks'\nimport {TasksFormBuilder} from '../form/tasksFormBuilder/TasksFormBuilder'\nimport {getTargetDocumentId} from '../form/utils'\nimport {TasksList} from '../list/TasksList'\nimport {TasksUpsellPanel} from '../upsell/TasksUpsellPanel'\nimport {TasksListTabs} from './TasksListTabs'\nimport {TasksSidebarHeader} from './TasksSidebarHeader'\n\nconst MotionCard = motion.create(Card)\nconst RootCard = styled(MotionCard)`\n flex: 1;\n flex-direction: column;\n`\n\nconst HeaderStack = styled(Stack)`\n border-bottom: 1px solid var(--card-border-color);\n`\n\nconst ContentFlex = styled(Flex)`\n overflow-y: scroll;\n overflow-x: hidden;\n`\n\n/**\n * @internal\n */\nfunction TasksStudioSidebarInner() {\n const {mode} = useTasksEnabled()\n const {activeDocument, data, isLoading} = useTasks()\n const {state, setActiveTab, setViewMode} = useTasksNavigation()\n const {activeTabId, viewMode, selectedTask} = state\n const currentUser = useCurrentUser()\n\n const onTaskSelect = useCallback((id: string) => setViewMode({type: 'edit', id}), [setViewMode])\n\n const filteredList = data.filter((item) => {\n if (!item.createdByUser) return false\n if (activeTabId === 'assigned') {\n return item.assignedTo === currentUser?.id\n }\n if (activeTabId === 'subscribed') {\n return currentUser?.id && item.subscribers?.includes(currentUser.id)\n }\n if (activeTabId === 'document') {\n return (\n activeDocument?.documentId && getTargetDocumentId(item.target) === activeDocument.documentId\n )\n }\n return false\n })\n\n const content = useMemo(() => {\n if (viewMode !== 'list') {\n return <TasksFormBuilder key={selectedTask} />\n }\n\n if (isLoading) {\n return (\n <Flex align=\"center\" justify=\"center\">\n <Spinner />\n </Flex>\n )\n }\n\n return (\n <>\n {mode === 'upsell' && <TasksUpsellPanel />}\n <TasksList items={filteredList} onTaskSelect={onTaskSelect} />\n </>\n )\n }, [filteredList, isLoading, onTaskSelect, selectedTask, viewMode, mode])\n\n return (\n <RootCard\n display=\"flex\"\n height=\"fill\"\n flex={1}\n overflow=\"hidden\"\n initial={{opacity: 0}}\n animate={{opacity: 1, transition: {duration: 0.2}}}\n >\n <HeaderStack gap={3} padding={3} sizing=\"border\">\n <TasksSidebarHeader items={filteredList} />\n {viewMode === 'list' && !isLoading && (\n <TasksListTabs activeTabId={activeTabId} onChange={setActiveTab} />\n )}\n </HeaderStack>\n\n <ContentFlex\n direction=\"column\"\n flex={1}\n overflow=\"auto\"\n padding={3}\n paddingTop={4}\n paddingX={4}\n sizing=\"border\"\n >\n {content}\n </ContentFlex>\n </RootCard>\n )\n}\n\n/**\n * @internal\n */\nexport function TasksStudioSidebar() {\n const {enabled} = useTasksEnabled()\n\n if (!enabled) {\n return null\n }\n\n return <TasksStudioSidebarInner />\n}\n","import {Box, Flex, Layer, useMediaIndex} from '@sanity/ui'\nimport {AnimatePresence} from 'motion/react'\nimport {css, styled} from 'styled-components'\n\nimport {type ActiveToolLayoutProps} from '../../config/studio/types'\nimport {TasksStudioSidebar} from '../components/sidebar/TasksSidebar'\nimport {useTasksEnabled} from '../context/enabled/useTasksEnabled'\nimport {useTasksNavigation} from '../context/navigation/useTasksNavigation'\n\nconst FULLSCREEN_MEDIA_INDEX = 1\nconst POSITION_ABSOLUTE_MEDIA_INDEX = 3\n\nconst RootFlex = styled(Flex)(({theme}) => {\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n const media = theme.sanity.media\n\n return css`\n min-height: 100%;\n\n @media (max-width: ${media[POSITION_ABSOLUTE_MEDIA_INDEX]}px) {\n position: relative;\n }\n `\n})\nconst SidebarMotionLayer = styled(Layer)(({theme}) => {\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n const media = theme.sanity.media\n\n return css`\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 360px;\n border-left: 1px solid var(--card-border-color);\n box-sizing: border-box;\n overflow: hidden;\n\n box-shadow:\n 0px 6px 8px -4px var(--card-shadow-umbra-color),\n 0px 12px 17px -1px var(--card-shadow-penumbra-color);\n\n @media (max-width: ${media[POSITION_ABSOLUTE_MEDIA_INDEX]}px) {\n bottom: 0;\n position: absolute;\n right: 0;\n top: 0;\n }\n\n @media (max-width: ${media[FULLSCREEN_MEDIA_INDEX]}px) {\n border-left: 0;\n min-width: 100%;\n left: 0;\n }\n `\n})\n\nfunction TasksStudioActiveToolLayoutInner(props: ActiveToolLayoutProps) {\n const mediaIndex = useMediaIndex()\n const {\n state: {isOpen},\n } = useTasksNavigation()\n\n // Lock the scroll when the sidebar is open in fullscreen mode\n const scrollLock = mediaIndex <= FULLSCREEN_MEDIA_INDEX && isOpen\n return (\n <RootFlex sizing=\"border\" height=\"fill\">\n <Box flex={1} height=\"fill\" overflow={scrollLock ? 'hidden' : 'auto'}>\n {props.renderDefault(props)}\n </Box>\n\n <AnimatePresence initial={false}>\n {isOpen && (\n <SidebarMotionLayer zOffset={100} height=\"fill\">\n <TasksStudioSidebar />\n </SidebarMotionLayer>\n )}\n </AnimatePresence>\n </RootFlex>\n )\n}\n\nexport function TasksStudioActiveToolLayout(props: ActiveToolLayoutProps) {\n const {enabled} = useTasksEnabled()\n if (!enabled) {\n return props.renderDefault(props)\n }\n\n return <TasksStudioActiveToolLayoutInner {...props} />\n}\n"],"mappings":"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"}
|