sanity 6.8.0-next.2 → 6.8.0-next.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/lib/{AddonDatasetProvider-DKjnqxwO.js → AddonDatasetProvider-Cp0gK33v.js} +2 -2
  2. package/lib/{AddonDatasetProvider-DKjnqxwO.js.map → AddonDatasetProvider-Cp0gK33v.js.map} +1 -1
  3. package/lib/{CalendarFilter-B5Bb9eze.js → CalendarFilter-Cgz5picy.js} +3 -3
  4. package/lib/{CalendarFilter-B5Bb9eze.js.map → CalendarFilter-Cgz5picy.js.map} +1 -1
  5. package/lib/{CommandList-Q4ua5avE.js → CommandList-BeDeX_Tr.js} +23 -6
  6. package/lib/CommandList-BeDeX_Tr.js.map +1 -0
  7. package/lib/{CommentsDocumentLayout-Brt2OR56.js → CommentsDocumentLayout-BJMRXrxl.js} +2 -2
  8. package/lib/{CommentsDocumentLayout-Brt2OR56.js.map → CommentsDocumentLayout-BJMRXrxl.js.map} +1 -1
  9. package/lib/{CommentsField-Cmmta6uT.js → CommentsField-DV6bhirZ.js} +3 -3
  10. package/lib/{CommentsField-Cmmta6uT.js.map → CommentsField-DV6bhirZ.js.map} +1 -1
  11. package/lib/{CommentsInput-C7Kq5XMu.js → CommentsInput-DQ4WCdZJ.js} +5 -5
  12. package/lib/{CommentsInput-C7Kq5XMu.js.map → CommentsInput-DQ4WCdZJ.js.map} +1 -1
  13. package/lib/{CommentsInspector-H5CpN_XH.js → CommentsInspector-PkVZw8uv.js} +5 -5
  14. package/lib/{CommentsInspector-H5CpN_XH.js.map → CommentsInspector-PkVZw8uv.js.map} +1 -1
  15. package/lib/{CommentsListItem-x7FKz_CM.js → CommentsListItem-BjWNEXPU.js} +3 -3
  16. package/lib/{CommentsListItem-x7FKz_CM.js.map → CommentsListItem-BjWNEXPU.js.map} +1 -1
  17. package/lib/{CommentsSelectedPathProvider-Bt8q7wL8.js → CommentsSelectedPathProvider-x5f1q0eW.js} +3 -3
  18. package/lib/{CommentsSelectedPathProvider-Bt8q7wL8.js.map → CommentsSelectedPathProvider-x5f1q0eW.js.map} +1 -1
  19. package/lib/{CommentsStudioLayout-BTJ8Jz1o.js → CommentsStudioLayout-CxZq2lGu.js} +4 -4
  20. package/lib/{CommentsStudioLayout-BTJ8Jz1o.js.map → CommentsStudioLayout-CxZq2lGu.js.map} +1 -1
  21. package/lib/{PaneContainer-D8iNUpZk.js → PaneContainer-B_cWaSSe.js} +8 -8
  22. package/lib/{PaneContainer-D8iNUpZk.js.map → PaneContainer-B_cWaSSe.js.map} +1 -1
  23. package/lib/{PresentationToolGrantsCheck-CxqDuu8I.js → PresentationToolGrantsCheck-CITNu5DG.js} +14 -6
  24. package/lib/PresentationToolGrantsCheck-CITNu5DG.js.map +1 -0
  25. package/lib/{ReleasesMetadataProvider-CZ8jrkBT.js → ReleasesMetadataProvider-CpYsTC5J.js} +2 -2
  26. package/lib/{ReleasesMetadataProvider-CZ8jrkBT.js.map → ReleasesMetadataProvider-CpYsTC5J.js.map} +1 -1
  27. package/lib/{ReleasesNav-BmGRLcrk.js → ReleasesNav-BuqDytPb.js} +59 -19
  28. package/lib/ReleasesNav-BuqDytPb.js.map +1 -0
  29. package/lib/{ReleasesStudioLayout-6V5oDb3h.js → ReleasesStudioLayout-mJZnbUum.js} +8 -8
  30. package/lib/{ReleasesStudioLayout-6V5oDb3h.js.map → ReleasesStudioLayout-mJZnbUum.js.map} +1 -1
  31. package/lib/{ReleasesTool-CMABMGcE.js → ReleasesTool-BFOV2VEc.js} +14 -14
  32. package/lib/{ReleasesTool-CMABMGcE.js.map → ReleasesTool-BFOV2VEc.js.map} +1 -1
  33. package/lib/{SchedulePublishingStudioLayout-BJDA4FBy.js → SchedulePublishingStudioLayout-D2ptE43I.js} +3 -3
  34. package/lib/{SchedulePublishingStudioLayout-BJDA4FBy.js.map → SchedulePublishingStudioLayout-D2ptE43I.js.map} +1 -1
  35. package/lib/{SchedulePublishingUpsellProvider-DfmpnFZz.js → SchedulePublishingUpsellProvider-DvCfqtdZ.js} +2 -2
  36. package/lib/{SchedulePublishingUpsellProvider-DfmpnFZz.js.map → SchedulePublishingUpsellProvider-DvCfqtdZ.js.map} +1 -1
  37. package/lib/{ScheduledPublishingEnabledProvider-C2jEx3t4.js → ScheduledPublishingEnabledProvider-B5yA7hHi.js} +3 -3
  38. package/lib/{ScheduledPublishingEnabledProvider-C2jEx3t4.js.map → ScheduledPublishingEnabledProvider-B5yA7hHi.js.map} +1 -1
  39. package/lib/{SearchProvider-Dk7IfeRS.js → SearchProvider-Cpl3WUyR.js} +25 -25
  40. package/lib/SearchProvider-Cpl3WUyR.js.map +1 -0
  41. package/lib/{SingleDocReleaseLayout-DW02L2zA.js → SingleDocReleaseLayout-CfPCP1Ur.js} +2 -2
  42. package/lib/{SingleDocReleaseLayout-DW02L2zA.js.map → SingleDocReleaseLayout-CfPCP1Ur.js.map} +1 -1
  43. package/lib/{SingleDocReleaseUpsellProvider-9OXN223n.js → SingleDocReleaseUpsellProvider-4ib7kMdI.js} +4 -4
  44. package/lib/{SingleDocReleaseUpsellProvider-9OXN223n.js.map → SingleDocReleaseUpsellProvider-4ib7kMdI.js.map} +1 -1
  45. package/lib/{TasksStudioActiveToolLayout-grF1qQvq.js → TasksStudioActiveToolLayout-lrH8y1Kh.js} +11 -11
  46. package/lib/{TasksStudioActiveToolLayout-grF1qQvq.js.map → TasksStudioActiveToolLayout-lrH8y1Kh.js.map} +1 -1
  47. package/lib/{TasksStudioLayout-Dq72bdM2.js → TasksStudioLayout-CITzoP_1.js} +5 -5
  48. package/lib/{TasksStudioLayout-Dq72bdM2.js.map → TasksStudioLayout-CITzoP_1.js.map} +1 -1
  49. package/lib/{Tool-DNTYDreC.js → Tool-DxqXi1AF.js} +12 -12
  50. package/lib/{Tool-DNTYDreC.js.map → Tool-DxqXi1AF.js.map} +1 -1
  51. package/lib/{UnpublishVersionDialog-B0kX1dt6.js → UnpublishVersionDialog-VZflky9U.js} +4 -4
  52. package/lib/{UnpublishVersionDialog-B0kX1dt6.js.map → UnpublishVersionDialog-VZflky9U.js.map} +1 -1
  53. package/lib/{UpsellDialog-B3IbZqLA.js → UpsellDialog-BmQSjdJg.js} +2 -2
  54. package/lib/{UpsellDialog-B3IbZqLA.js.map → UpsellDialog-BmQSjdJg.js.map} +1 -1
  55. package/lib/{VariantsStudioNavbar-N-cvStJh.js → VariantsStudioNavbar-HsA97lVy.js} +7 -27
  56. package/lib/VariantsStudioNavbar-HsA97lVy.js.map +1 -0
  57. package/lib/{VariantsTool-Bj3RjgBN.js → VariantsTool-rOcVMkln.js} +7 -7
  58. package/lib/{VariantsTool-Bj3RjgBN.js.map → VariantsTool-rOcVMkln.js.map} +1 -1
  59. package/lib/{WorkspaceLoader-BZD0-fj6.js → WorkspaceLoader-kepBjrsn.js} +25 -25
  60. package/lib/{WorkspaceLoader-BZD0-fj6.js.map → WorkspaceLoader-kepBjrsn.js.map} +1 -1
  61. package/lib/_createContext.js +1 -1
  62. package/lib/_singletons.d.ts +1 -1
  63. package/lib/{buildTextSelectionFromFragment-BXiSMql4.js → buildTextSelectionFromFragment-Dj_WBTDa.js} +3 -3
  64. package/lib/{buildTextSelectionFromFragment-BXiSMql4.js.map → buildTextSelectionFromFragment-Dj_WBTDa.js.map} +1 -1
  65. package/lib/{datastores-CFWEadl-.js → datastores-CrRYBoDP.js} +12 -2
  66. package/lib/datastores-CrRYBoDP.js.map +1 -0
  67. package/lib/desk.d.ts +1 -1
  68. package/lib/desk.js +2 -2
  69. package/lib/{index-Dhee2Ms1.d.ts → index-Bic9X2KM.d.ts} +43 -11
  70. package/lib/index.d.ts +2 -2
  71. package/lib/index.js +642 -258
  72. package/lib/index.js.map +1 -1
  73. package/lib/{inputResolver-BHxsuFDP.js → inputResolver-Czq6o5Gh.js} +4 -4
  74. package/lib/{inputResolver-BHxsuFDP.js.map → inputResolver-Czq6o5Gh.js.map} +1 -1
  75. package/lib/{list-CwENPuWS.js → list-BgF8Q_09.js} +2 -2
  76. package/lib/{list-CwENPuWS.js.map → list-BgF8Q_09.js.map} +1 -1
  77. package/lib/{navigation.telemetry-C6drHR5a.js → navigation.telemetry-DSG23KnM.js} +7 -7
  78. package/lib/{navigation.telemetry-C6drHR5a.js.map → navigation.telemetry-DSG23KnM.js.map} +1 -1
  79. package/lib/pane-BXoiwAkI.js +2 -0
  80. package/lib/pane-W85qO-M2.js +2 -0
  81. package/lib/{plugin-Cr5EXfrh.js → plugin-CLeQ5x8I.js} +4 -4
  82. package/lib/{plugin-Cr5EXfrh.js.map → plugin-CLeQ5x8I.js.map} +1 -1
  83. package/lib/{plugin-C1y-_vWr.js → plugin-CgIJubgG.js} +3 -3
  84. package/lib/{plugin-C1y-_vWr.js.map → plugin-CgIJubgG.js.map} +1 -1
  85. package/lib/{plugin-BHRmn24Q.js → plugin-CqWxiAAn.js} +6 -6
  86. package/lib/{plugin-BHRmn24Q.js.map → plugin-CqWxiAAn.js.map} +1 -1
  87. package/lib/{plugin-DkiEMpfN.js → plugin-DkdjF8sO.js} +5 -5
  88. package/lib/{plugin-DkiEMpfN.js.map → plugin-DkdjF8sO.js.map} +1 -1
  89. package/lib/presentation.js +1 -1
  90. package/lib/{scheduleItem-u5-b4stD.js → scheduleItem-CqReiIMI.js} +8 -8
  91. package/lib/{scheduleItem-u5-b4stD.js.map → scheduleItem-CqReiIMI.js.map} +1 -1
  92. package/lib/{schedules-D0WwNN6x.js → schedules-DoZXofxj.js} +3 -3
  93. package/lib/{schedules-D0WwNN6x.js.map → schedules-DoZXofxj.js.map} +1 -1
  94. package/lib/structure.js +2 -2
  95. package/lib/{structureTool-BCCGiqpF.js → structureTool-By2eJI8F.js} +60 -49
  96. package/lib/structureTool-By2eJI8F.js.map +1 -0
  97. package/lib/{structureTool-B5ch7u4I.js → structureTool-UGWPEr2I.js} +6 -6
  98. package/lib/{structureTool-B5ch7u4I.js.map → structureTool-UGWPEr2I.js.map} +1 -1
  99. package/lib/{studioClient-DvoDxN44.js → studioClient-DqAy4dnu.js} +2 -2
  100. package/lib/{studioClient-DvoDxN44.js.map → studioClient-DqAy4dnu.js.map} +1 -1
  101. package/lib/{useBundleDocuments-CWvP-dZI.js → useBundleDocuments-Dyop3VGZ.js} +15 -13
  102. package/lib/useBundleDocuments-Dyop3VGZ.js.map +1 -0
  103. package/lib/{useComments-KoRXRvW7.js → useComments-CzNBSPgQ.js} +3 -3
  104. package/lib/{useComments-KoRXRvW7.js.map → useComments-CzNBSPgQ.js.map} +1 -1
  105. package/lib/{useCommentsTelemetry-LlKtxi5d.js → useCommentsTelemetry-CkplhYJa.js} +3 -3
  106. package/lib/{useCommentsTelemetry-LlKtxi5d.js.map → useCommentsTelemetry-CkplhYJa.js.map} +1 -1
  107. package/lib/{useDocumentPreviewValues-DcVumcdT.js → useDocumentPreviewValues-BPzq1mWh.js} +3 -3
  108. package/lib/{useDocumentPreviewValues-DcVumcdT.js.map → useDocumentPreviewValues-BPzq1mWh.js.map} +1 -1
  109. package/lib/{useFeatureEnabled-D7BsN6xF.js → useFeatureEnabled-B_ywe2up.js} +2 -2
  110. package/lib/{useFeatureEnabled-D7BsN6xF.js.map → useFeatureEnabled-B_ywe2up.js.map} +1 -1
  111. package/lib/{useFieldActions-NrjLdjo8.js → useFieldActions-DbRTTr6-.js} +2 -2
  112. package/lib/{useFieldActions-NrjLdjo8.js.map → useFieldActions-DbRTTr6-.js.map} +1 -1
  113. package/lib/{useReleasesToolAvailable-Cki52QI6.js → useReleasesToolAvailable-CUvya3HF.js} +3 -3
  114. package/lib/{useReleasesToolAvailable-Cki52QI6.js.map → useReleasesToolAvailable-CUvya3HF.js.map} +1 -1
  115. package/lib/{useScheduledDraftMenuActions-DIa5I8rU.js → useScheduledDraftMenuActions-BBEMJkNE.js} +5 -5
  116. package/lib/{useScheduledDraftMenuActions-DIa5I8rU.js.map → useScheduledDraftMenuActions-BBEMJkNE.js.map} +1 -1
  117. package/lib/{useSetVariant-MvLHJC9A.js → useSetVariant-Cz8brFbQ.js} +3 -3
  118. package/lib/{useSetVariant-MvLHJC9A.js.map → useSetVariant-Cz8brFbQ.js.map} +1 -1
  119. package/lib/{useStudioUrl-DN_xMGIS.js → useStudioUrl-DFAbTA0R.js} +5 -5
  120. package/lib/{useStudioUrl-DN_xMGIS.js.map → useStudioUrl-DFAbTA0R.js.map} +1 -1
  121. package/lib/{useTimeZone-B5fBFjsR.js → useTimeZone-CNjAZCdC.js} +2 -2
  122. package/lib/{useTimeZone-B5fBFjsR.js.map → useTimeZone-CNjAZCdC.js.map} +1 -1
  123. package/lib/{userComponent-BQj9BWzn.js → userComponent-MPULaxdQ.js} +2 -2
  124. package/lib/{userComponent-BQj9BWzn.js.map → userComponent-MPULaxdQ.js.map} +1 -1
  125. package/lib/{validationUtils-RTzFL-p1.js → validationUtils-C9y0bJZd.js} +4 -4
  126. package/lib/{validationUtils-RTzFL-p1.js.map → validationUtils-C9y0bJZd.js.map} +1 -1
  127. package/lib/{version-CY300aPw.js → version-BZCsk4ue.js} +2 -2
  128. package/lib/{version-CY300aPw.js.map → version-BZCsk4ue.js.map} +1 -1
  129. package/package.json +12 -11
  130. package/lib/CommandList-Q4ua5avE.js.map +0 -1
  131. package/lib/Delay-DjgiAi06.js +0 -21
  132. package/lib/Delay-DjgiAi06.js.map +0 -1
  133. package/lib/PresentationToolGrantsCheck-CxqDuu8I.js.map +0 -1
  134. package/lib/ReleasesNav-BmGRLcrk.js.map +0 -1
  135. package/lib/SearchProvider-Dk7IfeRS.js.map +0 -1
  136. package/lib/VariantsStudioNavbar-N-cvStJh.js.map +0 -1
  137. package/lib/datastores-CFWEadl-.js.map +0 -1
  138. package/lib/pane-CEegQ2Kh.js +0 -2
  139. package/lib/pane-DHrjuFiG.js +0 -2
  140. package/lib/structureTool-BCCGiqpF.js.map +0 -1
  141. package/lib/useBundleDocuments-CWvP-dZI.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CommentsInspector-H5CpN_XH.js","names":["Box","Flex","Stack","Text","keyframes","styled","Button","Popover","PopoverProps","useTranslation","commentsLocaleNamespace","Root","fadeInKeyFrame","StyledPopover","CommentsOnboardingPopoverProps","Omit","onDismiss","CommentsOnboardingPopover","props","$","_c","rest","t","t0","t1","t2","t3","t4","t5","t6","t7","Box","Container","UpsellData","UpsellPanel","CommentsUpsellPanelProps","data","onPrimaryClick","onSecondaryClick","CommentsUpsellPanel","props","$","_c","t0","useContext","CommentsOnboardingContext","CommentsOnboardingContextValue","useCommentsOnboarding","ctx","Error","Box","Card","Stack","Text","useTranslation","commentsLocaleNamespace","CommentsInspectorError","t0","$","_c","error","t","t1","t2","t3","message","t4","CheckmarkIcon","ChevronDownIcon","CloseIcon","Card","Flex","Menu","Text","forwardRef","useCallback","styled","Button","MenuButton","MenuItem","useTranslation","commentsLocaleNamespace","CommentStatus","CommentsUIMode","Root","position","zIndex","lineHeight","CommentsInspectorHeaderProps","onClose","onViewChange","view","mode","CommentsInspectorHeader","props","ref","$","_c","t","t0","handleSetOpenView","t1","handleSetResolvedView","t2","t3","t4","t5","t6","Symbol","for","width","t7","undefined","t8","t9","t10","t11","t12","content","t13","t14","t15","t16","placement","t17","t18","t19","t20","t21","t22","t23","t24","Flex","Layer","useClickOutsideEvent","useLayer","useToast","PathUtils","Fragment","useCallback","useEffect","useMemo","useRef","useState","styled","DocumentInspectorProps","useTranslation","useCurrentUser","useAddonDataset","CommentDeleteDialog","CommentsList","CommentsOnboardingPopover","CommentsUpsellPanel","CommentsSelectedPath","isTextSelectionComment","useComments","useCommentsEnabled","useCommentsOnboarding","useCommentsScroll","useCommentsSelectedPath","useCommentsTelemetry","useCommentsUpsell","commentsLocaleNamespace","CommentBaseCreatePayload","CommentReactionOption","CommentStatus","CommentsUIMode","CommentUpdatePayload","CommentsInspectorError","CommentsInspectorHeader","CommentToDelete","commentId","isParent","RootLayer","CommentsInspector","props","$","_c","enabled","mode","t0","CommentsInspectorInner","t","onClose","showDeleteDialog","setShowDeleteDialog","commentToDelete","setCommentToDelete","deleteLoading","setDeleteLoading","deleteError","setDeleteError","rootRef","rootElement","setRootElement","currentUser","comments","getComment","isCreatingDataset","mentionOptions","setStatus","status","operation","selectedCommentId","getCommentLink","onClearSelectedComment","onPathOpen","commentIdParamRef","error","addonDatasetError","didScrollToCommentFromParam","pushToast","push","isTopLayer","boundaryElement","scrollToComment","scrollToField","scrollToInlineComment","selectedPath","setSelectedPath","isDismissed","setDismissed","telemetry","upsellData","telemetryLogs","upsellTelemetryLogs","currentComments","data","loading","t1","nextView","commentListViewChanged","handleChangeView","t2","handleCloseInspector","t3","bb0","undefined","t4","id","navigator","clipboard","writeText","catch","closable","title","commentLinkCopied","copyLink","handleCopyLink","id_0","comment","create","type","fieldPath","target","path","field","_id","message","parentCommentId","reactions","threadId","handleCreateRetry","t5","closeDeleteDialog","t6","open","nextPath","fromString","isInlineComment","filter","c","some","_temp","handlePathSelect","t7","nextComment","payload","origin","handleNewThreadCreate","t8","nextComment_0","handleReply","t9","id_1","nextComment_1","update","handleEdit","t10","id_2","parent","find","c_0","parentComment","Boolean","replies","length","onDeleteStart","t11","id_3","remove","t12","err","handleDeleteConfirm","id_4","nextStatus","comment_0","handleStatusChange","t13","id_5","reaction","react","handleReactionSelect","t14","handleDeselectPath","t15","Symbol","for","element","current","setRootRef","t16","event","isPTETarget","HTMLElement","hasAttribute","t17","loggedTelemetry","setLoggedTelemetry","t18","panelViewed","panelDismissed","t19","t20","t21","t22","commentToScrollTo","requestAnimationFrame","commentViewedFromLink","t23","bb1","t24","panelPrimaryClicked","panelSecondaryClicked","beforeListNode","t25","t26","t27","t28","t29","t30","t31","x"],"sources":["../src/core/comments/components/onboarding/CommentsOnboardingPopover.tsx","../src/core/comments/components/upsell/CommentsUpsellPanel.tsx","../src/core/comments/hooks/useCommentsOnboarding.ts","../src/core/comments/plugin/inspector/CommentsInspectorError.tsx","../src/core/comments/plugin/inspector/CommentsInspectorHeader.tsx","../src/core/comments/plugin/inspector/CommentsInspector.tsx"],"sourcesContent":["import {Box, Flex, Stack, Text} from '@sanity/ui'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {Popover, type PopoverProps} from '../../../../ui-components/popover/Popover'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {commentsLocaleNamespace} from '../../i18n'\n\nconst Root = styled(Box)`\n max-width: 280px;\n`\n\nconst fadeInKeyFrame = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n`\n\nconst StyledPopover = styled(Popover)`\n opacity: 0;\n // Fade in the popover after 500ms\n animation: ${fadeInKeyFrame} 200ms 500ms forwards;\n`\n\ninterface CommentsOnboardingPopoverProps extends Omit<PopoverProps, 'content'> {\n // ...\n onDismiss: () => void\n}\n\nexport function CommentsOnboardingPopover(props: CommentsOnboardingPopoverProps) {\n const {onDismiss, ...rest} = props\n const {t} = useTranslation(commentsLocaleNamespace)\n\n return (\n <StyledPopover\n content={\n <Root padding={4}>\n <Stack space={3}>\n <Text weight=\"medium\" size={1}>\n {t('onboarding.header')}\n </Text>\n\n <Text size={1}>{t('onboarding.body')}</Text>\n\n <Flex justify=\"flex-end\" marginTop={2}>\n <Button text={t('onboarding.dismiss')} tone=\"primary\" onClick={onDismiss} />\n </Flex>\n </Stack>\n </Root>\n }\n open\n portal\n {...rest}\n />\n )\n}\n","import {Box, Container} from '@sanity/ui'\n\nimport {type UpsellData} from '../../../studio/upsell/types'\nimport {UpsellPanel} from '../../../studio/upsell/UpsellPanel'\n\ninterface CommentsUpsellPanelProps {\n data: UpsellData\n onPrimaryClick: () => void\n onSecondaryClick: () => void\n}\n\nexport function CommentsUpsellPanel(props: CommentsUpsellPanelProps) {\n const {data, onPrimaryClick, onSecondaryClick} = props\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 {useContext} from 'react'\nimport {CommentsOnboardingContext} from 'sanity/_singletons'\n\nimport {type CommentsOnboardingContextValue} from '../context/onboarding/types'\n\nexport function useCommentsOnboarding(): CommentsOnboardingContextValue {\n const ctx = useContext(CommentsOnboardingContext)\n\n if (!ctx) {\n throw new Error('useCommentsOnboarding: missing context value')\n }\n\n return ctx\n}\n","import {Box, Card, Stack, Text} from '@sanity/ui'\n\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {commentsLocaleNamespace} from '../../i18n'\n\nexport function CommentsInspectorError({error}: {error: Error}) {\n const {t} = useTranslation(commentsLocaleNamespace)\n\n return (\n <Box padding={2}>\n <Card paddingX={2} paddingY={3} tone=\"critical\" border radius={3}>\n <Stack space={3}>\n <Text size={1} weight=\"medium\">\n {t('inspector-error.title')}\n </Text>\n <Text size={1} muted>\n {error.message}\n </Text>\n </Stack>\n </Card>\n </Box>\n )\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {CloseIcon} from '@sanity/icons/Close'\nimport {Card, Flex, Menu, Text} from '@sanity/ui'\nimport {forwardRef, useCallback} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {MenuButton} from '../../../../ui-components/menuButton/MenuButton'\nimport {MenuItem} from '../../../../ui-components/menuItem/MenuItem'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {commentsLocaleNamespace} from '../../i18n'\nimport {type CommentStatus, type CommentsUIMode} from '../../types'\n\nconst Root = styled(Card)({\n position: 'relative',\n zIndex: '1',\n lineHeight: '0',\n})\n\ninterface CommentsInspectorHeaderProps {\n onClose: () => void\n onViewChange: (view: CommentStatus) => void\n view: CommentStatus\n mode: CommentsUIMode\n}\n\nexport const CommentsInspectorHeader = forwardRef(function CommentsInspectorHeader(\n props: CommentsInspectorHeaderProps,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {t} = useTranslation(commentsLocaleNamespace)\n const {onClose, onViewChange, view, mode} = props\n\n const handleSetOpenView = useCallback(() => onViewChange('open'), [onViewChange])\n const handleSetResolvedView = useCallback(() => onViewChange('resolved'), [onViewChange])\n\n return (\n <Root ref={ref}>\n <Flex padding={2}>\n <Flex align=\"center\" flex={1} gap={2} paddingY={2} padding={3}>\n <Text as=\"h1\" size={1} weight=\"medium\">\n {t('feature-name')}\n </Text>\n </Flex>\n\n <Flex flex=\"none\" padding={1} gap={2}>\n <MenuButton\n id=\"comment-status-menu-button\"\n button={\n <Button\n text={\n view === 'open'\n ? t('status-filter.status-open')\n : t('status-filter.status-resolved')\n }\n mode=\"bleed\"\n iconRight={ChevronDownIcon}\n />\n }\n menu={\n <Menu style={{width: '180px'}}>\n <MenuItem\n iconRight={view === 'open' ? CheckmarkIcon : undefined}\n onClick={handleSetOpenView}\n text={t('status-filter.status-open-full')}\n />\n <MenuItem\n iconRight={view === 'resolved' ? CheckmarkIcon : undefined}\n onClick={handleSetResolvedView}\n text={t('status-filter.status-resolved-full')}\n tooltipProps={\n mode === 'upsell'\n ? {content: t('status-filter.status-resolved-full-upsell')}\n : undefined\n }\n disabled={mode === 'upsell'}\n />\n </Menu>\n }\n popover={{placement: 'bottom-end'}}\n />\n\n <Button\n aria-label={t('close-pane-button-text-aria-label')}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n tooltipProps={{content: t('close-pane-button-text')}}\n />\n </Flex>\n </Flex>\n </Root>\n )\n})\n","import {Flex, Layer, useClickOutsideEvent, useLayer, useToast} from '@sanity/ui'\nimport * as PathUtils from '@sanity/util/paths'\nimport {Fragment, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {type DocumentInspectorProps} from '../../../config/document/inspector'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useCurrentUser} from '../../../store/user/hooks'\nimport {useAddonDataset} from '../../../studio/addonDataset/useAddonDataset'\nimport {CommentDeleteDialog} from '../../components/CommentDeleteDialog'\nimport {CommentsList} from '../../components/list/CommentsList'\nimport {CommentsOnboardingPopover} from '../../components/onboarding/CommentsOnboardingPopover'\nimport {CommentsUpsellPanel} from '../../components/upsell/CommentsUpsellPanel'\nimport {type CommentsSelectedPath} from '../../context/selected-path/types'\nimport {isTextSelectionComment} from '../../helpers'\nimport {useComments} from '../../hooks/useComments'\nimport {useCommentsEnabled} from '../../hooks/useCommentsEnabled'\nimport {useCommentsOnboarding} from '../../hooks/useCommentsOnboarding'\nimport {useCommentsScroll} from '../../hooks/useCommentsScroll'\nimport {useCommentsSelectedPath} from '../../hooks/useCommentsSelectedPath'\nimport {useCommentsTelemetry} from '../../hooks/useCommentsTelemetry'\nimport {useCommentsUpsell} from '../../hooks/useCommentsUpsell'\nimport {commentsLocaleNamespace} from '../../i18n'\nimport {\n type CommentBaseCreatePayload,\n type CommentReactionOption,\n type CommentStatus,\n type CommentsUIMode,\n type CommentUpdatePayload,\n} from '../../types'\nimport {CommentsInspectorError} from './CommentsInspectorError'\nimport {CommentsInspectorHeader} from './CommentsInspectorHeader'\n\ninterface CommentToDelete {\n commentId: string\n isParent: boolean\n}\n\nconst RootLayer = styled(Layer)`\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n`\n\nexport function CommentsInspector(props: DocumentInspectorProps) {\n const {enabled, mode} = useCommentsEnabled()\n\n if (!enabled) return null\n\n // We wrap the comments inspector in a Layer in order to know when the comments inspector\n // is the top layer (that is, if there is e.g. a popover open). This is used to determine\n // if we should deselect the selected path when clicking outside the comments inspector.\n return (\n <RootLayer>\n <CommentsInspectorInner {...props} mode={mode} />\n </RootLayer>\n )\n}\n\nfunction CommentsInspectorInner(\n props: DocumentInspectorProps & {\n mode: CommentsUIMode\n },\n) {\n const {t} = useTranslation(commentsLocaleNamespace)\n const {onClose, mode} = props\n const [showDeleteDialog, setShowDeleteDialog] = useState<boolean>(false)\n const [commentToDelete, setCommentToDelete] = useState<CommentToDelete | null>(null)\n const [deleteLoading, setDeleteLoading] = useState<boolean>(false)\n const [deleteError, setDeleteError] = useState<Error | null>(null)\n\n const rootRef = useRef<HTMLDivElement | null>(null)\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n\n const currentUser = useCurrentUser()\n const {\n comments,\n getComment,\n isCreatingDataset,\n mentionOptions,\n setStatus,\n status,\n operation,\n selectedCommentId,\n getCommentLink,\n onClearSelectedComment,\n onPathOpen,\n } = useComments()\n const commentIdParamRef = useRef<string | undefined>(selectedCommentId)\n const {error: addonDatasetError} = useAddonDataset()\n const didScrollToCommentFromParam = useRef<boolean>(false)\n\n const pushToast = useToast().push\n const {isTopLayer} = useLayer()\n\n const {scrollToComment, scrollToField, scrollToInlineComment} = useCommentsScroll({\n boundaryElement: rootElement,\n })\n const {selectedPath, setSelectedPath} = useCommentsSelectedPath()\n const {isDismissed, setDismissed} = useCommentsOnboarding()\n const telemetry = useCommentsTelemetry()\n\n const {upsellData, telemetryLogs: upsellTelemetryLogs} = useCommentsUpsell()\n\n const currentComments = useMemo(() => comments.data[status], [comments, status])\n\n const {loading} = comments\n\n const handleChangeView = useCallback(\n (nextView: CommentStatus) => {\n setStatus(nextView)\n setSelectedPath(null)\n\n telemetry.commentListViewChanged(nextView)\n },\n [setSelectedPath, setStatus, telemetry],\n )\n\n const handleCloseInspector = useCallback(() => {\n onClose()\n setSelectedPath(null)\n }, [onClose, setSelectedPath])\n\n const handleCopyLink = useMemo(() => {\n if (!getCommentLink) return undefined\n\n const copyLink = (id: string) => {\n navigator.clipboard.writeText(getCommentLink(id)).catch(() => {\n pushToast({\n closable: true,\n status: 'error',\n title: t('copy-link-error-message'),\n })\n })\n\n telemetry.commentLinkCopied()\n }\n\n return copyLink\n }, [getCommentLink, pushToast, t, telemetry])\n\n const handleCreateRetry = useCallback(\n (id: string) => {\n const comment = getComment(id)\n if (!comment) return\n\n void operation.create({\n type: 'field',\n fieldPath: comment.target.path?.field || '',\n id: comment._id,\n message: comment.message,\n parentCommentId: comment.parentCommentId,\n reactions: comment.reactions || [],\n status: comment.status,\n threadId: comment.threadId,\n })\n },\n [getComment, operation],\n )\n\n const closeDeleteDialog = useCallback(() => {\n if (deleteLoading) return\n setShowDeleteDialog(false)\n setCommentToDelete(null)\n }, [deleteLoading])\n\n const handlePathSelect = useCallback(\n (nextPath: CommentsSelectedPath) => {\n setSelectedPath(nextPath)\n\n if (nextPath?.fieldPath) {\n const path = PathUtils.fromString(nextPath.fieldPath)\n onPathOpen?.(path)\n\n scrollToField(nextPath.fieldPath)\n\n const isInlineComment = comments.data.open\n .filter((c) => c.threadId === nextPath?.threadId)\n .some((x) => isTextSelectionComment(x.parentComment))\n\n if (isInlineComment && nextPath.threadId) {\n scrollToInlineComment(nextPath.threadId)\n }\n }\n },\n [comments.data.open, onPathOpen, scrollToField, scrollToInlineComment, setSelectedPath],\n )\n\n const handleNewThreadCreate = useCallback(\n (nextComment: CommentBaseCreatePayload) => {\n const fieldPath = nextComment?.payload?.fieldPath || ''\n\n void operation.create({\n type: 'field',\n fieldPath,\n message: nextComment.message,\n parentCommentId: nextComment.parentCommentId,\n reactions: nextComment.reactions,\n status: nextComment.status,\n threadId: nextComment.threadId,\n })\n\n setSelectedPath({\n fieldPath,\n origin: 'inspector',\n threadId: nextComment.threadId,\n })\n },\n [operation, setSelectedPath],\n )\n\n const handleReply = useCallback(\n (nextComment: CommentBaseCreatePayload) => {\n void operation.create({\n ...nextComment,\n type: 'field',\n fieldPath: nextComment?.payload?.fieldPath || '',\n })\n },\n [operation],\n )\n\n const handleEdit = useCallback(\n (id: string, nextComment: CommentUpdatePayload) => {\n void operation.update(id, nextComment)\n },\n [operation],\n )\n\n const onDeleteStart = useCallback(\n (id: string) => {\n const parent = currentComments.find((c) => c.parentComment?._id === id)\n const isParent = Boolean(parent && parent?.replies?.length > 0)\n\n setShowDeleteDialog(true)\n setCommentToDelete({\n commentId: id,\n isParent,\n })\n },\n\n [currentComments],\n )\n\n const handleDeleteConfirm = useCallback(\n async (id: string) => {\n try {\n setDeleteLoading(true)\n await operation.remove(id)\n closeDeleteDialog()\n } catch (err) {\n setDeleteError(err)\n }\n setDeleteLoading(false)\n },\n [closeDeleteDialog, operation],\n )\n\n const handleStatusChange = useCallback(\n (id: string, nextStatus: CommentStatus) => {\n void operation.update(id, {\n status: nextStatus,\n })\n\n // If the comment is being opened, we want to change to the \"open\" view\n // and scroll to the comment\n if (nextStatus === 'open') {\n setStatus('open')\n\n const comment = getComment(id)\n\n if (!comment) return\n\n setSelectedPath({\n fieldPath: comment.target.path?.field || null,\n origin: 'inspector',\n threadId: comment.threadId || null,\n })\n\n scrollToComment(id)\n }\n },\n [getComment, operation, scrollToComment, setSelectedPath, setStatus],\n )\n\n const handleReactionSelect = useCallback(\n (id: string, reaction: CommentReactionOption) => {\n void operation.react(id, reaction)\n },\n [operation],\n )\n\n const handleDeselectPath = useCallback(() => {\n // Clear the selected path when:\n // - Clicking outside the inspector when it's the top layer\n // - The target is not a slate editor string. This is needed because we do not want to\n // frequently deselect the selected path when clicking inside the editor.\n if (selectedPath && isTopLayer) {\n setSelectedPath(null)\n }\n }, [isTopLayer, selectedPath, setSelectedPath])\n\n const setRootRef = useCallback((element: HTMLDivElement | null) => {\n rootRef.current = element\n setRootElement(element)\n }, [])\n\n useClickOutsideEvent(\n (event) => {\n // Clear the selected path when clicking outside the comments inspector.\n // We do this only when the comments inspector is the top layer.\n const isPTETarget =\n event.target instanceof HTMLElement && event.target?.hasAttribute('data-pt-text')\n\n if (!isPTETarget) {\n handleDeselectPath()\n }\n },\n () => [rootRef.current],\n )\n\n const [loggedTelemetry, setLoggedTelemetry] = useState(false)\n useEffect(() => {\n if (loggedTelemetry || mode !== 'upsell') return undefined\n // oxlint-disable-next-line react/react-compiler\n setLoggedTelemetry(true)\n if (selectedPath?.origin === 'form') {\n upsellTelemetryLogs.panelViewed('field_action')\n } else if (commentIdParamRef.current) {\n upsellTelemetryLogs.panelViewed('link')\n } else {\n upsellTelemetryLogs.panelViewed('document_action')\n }\n return () => {\n upsellTelemetryLogs.panelDismissed()\n }\n }, [loggedTelemetry, mode, selectedPath?.origin, upsellTelemetryLogs])\n\n // Handle scroll to comment from URL param\n useEffect(() => {\n // Make sure that the comment exists before we try to scroll to it.\n // We can't solely rely on the comment id from the url since the comment might not be loaded yet.\n const commentToScrollTo = getComment(commentIdParamRef.current || '')\n\n if (!loading && commentToScrollTo && !didScrollToCommentFromParam.current) {\n // Make sure we have the correct status set before we scroll to the comment\n setStatus(commentToScrollTo.status || 'open')\n\n handlePathSelect({\n fieldPath: commentToScrollTo.target.path?.field || null,\n origin: 'url',\n threadId: commentToScrollTo.threadId || null,\n })\n\n // Defer the comment scroll to prevent React batching from overwriting the field scroll\n requestAnimationFrame(() => {\n scrollToComment(commentToScrollTo._id)\n })\n\n didScrollToCommentFromParam.current = true\n commentIdParamRef.current = undefined\n\n onClearSelectedComment?.()\n\n telemetry.commentViewedFromLink()\n }\n }, [\n getComment,\n handlePathSelect,\n loading,\n onClearSelectedComment,\n scrollToComment,\n setStatus,\n telemetry,\n ])\n\n const beforeListNode = useMemo(() => {\n if (mode === 'upsell' && upsellData) {\n return (\n <CommentsUpsellPanel\n data={upsellData}\n onPrimaryClick={upsellTelemetryLogs.panelPrimaryClicked}\n onSecondaryClick={upsellTelemetryLogs.panelSecondaryClicked}\n />\n )\n }\n\n return null\n }, [\n mode,\n upsellTelemetryLogs.panelPrimaryClicked,\n upsellTelemetryLogs.panelSecondaryClicked,\n upsellData,\n ])\n\n return (\n <Fragment>\n {commentToDelete && showDeleteDialog && (\n <CommentDeleteDialog\n {...commentToDelete}\n error={deleteError}\n loading={deleteLoading}\n onClose={closeDeleteDialog}\n onConfirm={handleDeleteConfirm}\n />\n )}\n\n <Flex\n direction=\"column\"\n flex={1}\n height=\"fill\"\n onClick={handleDeselectPath}\n overflow=\"hidden\"\n ref={setRootRef}\n >\n <CommentsOnboardingPopover\n onDismiss={setDismissed}\n open={!isDismissed}\n placement=\"left-start\"\n >\n <CommentsInspectorHeader\n onClose={handleCloseInspector}\n onViewChange={handleChangeView}\n view={status}\n mode={mode}\n />\n </CommentsOnboardingPopover>\n {addonDatasetError && <CommentsInspectorError error={addonDatasetError} />}\n {currentUser && (\n <CommentsList\n beforeListNode={beforeListNode}\n comments={currentComments}\n currentUser={currentUser}\n error={comments.error}\n loading={loading}\n mentionOptions={mentionOptions}\n mode={mode}\n onCopyLink={handleCopyLink}\n onCreateRetry={handleCreateRetry}\n onDelete={onDeleteStart}\n onEdit={handleEdit}\n onNewThreadCreate={handleNewThreadCreate}\n onPathSelect={handlePathSelect}\n onReactionSelect={handleReactionSelect}\n onReply={handleReply}\n onStatusChange={handleStatusChange}\n readOnly={isCreatingDataset}\n selectedPath={selectedPath}\n status={status}\n />\n )}\n </Flex>\n </Fragment>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CommentsInspector-PkVZw8uv.js","names":["Box","Flex","Stack","Text","keyframes","styled","Button","Popover","PopoverProps","useTranslation","commentsLocaleNamespace","Root","fadeInKeyFrame","StyledPopover","CommentsOnboardingPopoverProps","Omit","onDismiss","CommentsOnboardingPopover","props","$","_c","rest","t","t0","t1","t2","t3","t4","t5","t6","t7","Box","Container","UpsellData","UpsellPanel","CommentsUpsellPanelProps","data","onPrimaryClick","onSecondaryClick","CommentsUpsellPanel","props","$","_c","t0","useContext","CommentsOnboardingContext","CommentsOnboardingContextValue","useCommentsOnboarding","ctx","Error","Box","Card","Stack","Text","useTranslation","commentsLocaleNamespace","CommentsInspectorError","t0","$","_c","error","t","t1","t2","t3","message","t4","CheckmarkIcon","ChevronDownIcon","CloseIcon","Card","Flex","Menu","Text","forwardRef","useCallback","styled","Button","MenuButton","MenuItem","useTranslation","commentsLocaleNamespace","CommentStatus","CommentsUIMode","Root","position","zIndex","lineHeight","CommentsInspectorHeaderProps","onClose","onViewChange","view","mode","CommentsInspectorHeader","props","ref","$","_c","t","t0","handleSetOpenView","t1","handleSetResolvedView","t2","t3","t4","t5","t6","Symbol","for","width","t7","undefined","t8","t9","t10","t11","t12","content","t13","t14","t15","t16","placement","t17","t18","t19","t20","t21","t22","t23","t24","Flex","Layer","useClickOutsideEvent","useLayer","useToast","PathUtils","Fragment","useCallback","useEffect","useMemo","useRef","useState","styled","DocumentInspectorProps","useTranslation","useCurrentUser","useAddonDataset","CommentDeleteDialog","CommentsList","CommentsOnboardingPopover","CommentsUpsellPanel","CommentsSelectedPath","isTextSelectionComment","useComments","useCommentsEnabled","useCommentsOnboarding","useCommentsScroll","useCommentsSelectedPath","useCommentsTelemetry","useCommentsUpsell","commentsLocaleNamespace","CommentBaseCreatePayload","CommentReactionOption","CommentStatus","CommentsUIMode","CommentUpdatePayload","CommentsInspectorError","CommentsInspectorHeader","CommentToDelete","commentId","isParent","RootLayer","CommentsInspector","props","$","_c","enabled","mode","t0","CommentsInspectorInner","t","onClose","showDeleteDialog","setShowDeleteDialog","commentToDelete","setCommentToDelete","deleteLoading","setDeleteLoading","deleteError","setDeleteError","rootRef","rootElement","setRootElement","currentUser","comments","getComment","isCreatingDataset","mentionOptions","setStatus","status","operation","selectedCommentId","getCommentLink","onClearSelectedComment","onPathOpen","commentIdParamRef","error","addonDatasetError","didScrollToCommentFromParam","pushToast","push","isTopLayer","boundaryElement","scrollToComment","scrollToField","scrollToInlineComment","selectedPath","setSelectedPath","isDismissed","setDismissed","telemetry","upsellData","telemetryLogs","upsellTelemetryLogs","currentComments","data","loading","t1","nextView","commentListViewChanged","handleChangeView","t2","handleCloseInspector","t3","bb0","undefined","t4","id","navigator","clipboard","writeText","catch","closable","title","commentLinkCopied","copyLink","handleCopyLink","id_0","comment","create","type","fieldPath","target","path","field","_id","message","parentCommentId","reactions","threadId","handleCreateRetry","t5","closeDeleteDialog","t6","open","nextPath","fromString","isInlineComment","filter","c","some","_temp","handlePathSelect","t7","nextComment","payload","origin","handleNewThreadCreate","t8","nextComment_0","handleReply","t9","id_1","nextComment_1","update","handleEdit","t10","id_2","parent","find","c_0","parentComment","Boolean","replies","length","onDeleteStart","t11","id_3","remove","t12","err","handleDeleteConfirm","id_4","nextStatus","comment_0","handleStatusChange","t13","id_5","reaction","react","handleReactionSelect","t14","handleDeselectPath","t15","Symbol","for","element","current","setRootRef","t16","event","isPTETarget","HTMLElement","hasAttribute","t17","loggedTelemetry","setLoggedTelemetry","t18","panelViewed","panelDismissed","t19","t20","t21","t22","commentToScrollTo","requestAnimationFrame","commentViewedFromLink","t23","bb1","t24","panelPrimaryClicked","panelSecondaryClicked","beforeListNode","t25","t26","t27","t28","t29","t30","t31","x"],"sources":["../src/core/comments/components/onboarding/CommentsOnboardingPopover.tsx","../src/core/comments/components/upsell/CommentsUpsellPanel.tsx","../src/core/comments/hooks/useCommentsOnboarding.ts","../src/core/comments/plugin/inspector/CommentsInspectorError.tsx","../src/core/comments/plugin/inspector/CommentsInspectorHeader.tsx","../src/core/comments/plugin/inspector/CommentsInspector.tsx"],"sourcesContent":["import {Box, Flex, Stack, Text} from '@sanity/ui'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {Popover, type PopoverProps} from '../../../../ui-components/popover/Popover'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {commentsLocaleNamespace} from '../../i18n'\n\nconst Root = styled(Box)`\n max-width: 280px;\n`\n\nconst fadeInKeyFrame = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n`\n\nconst StyledPopover = styled(Popover)`\n opacity: 0;\n // Fade in the popover after 500ms\n animation: ${fadeInKeyFrame} 200ms 500ms forwards;\n`\n\ninterface CommentsOnboardingPopoverProps extends Omit<PopoverProps, 'content'> {\n // ...\n onDismiss: () => void\n}\n\nexport function CommentsOnboardingPopover(props: CommentsOnboardingPopoverProps) {\n const {onDismiss, ...rest} = props\n const {t} = useTranslation(commentsLocaleNamespace)\n\n return (\n <StyledPopover\n content={\n <Root padding={4}>\n <Stack space={3}>\n <Text weight=\"medium\" size={1}>\n {t('onboarding.header')}\n </Text>\n\n <Text size={1}>{t('onboarding.body')}</Text>\n\n <Flex justify=\"flex-end\" marginTop={2}>\n <Button text={t('onboarding.dismiss')} tone=\"primary\" onClick={onDismiss} />\n </Flex>\n </Stack>\n </Root>\n }\n open\n portal\n {...rest}\n />\n )\n}\n","import {Box, Container} from '@sanity/ui'\n\nimport {type UpsellData} from '../../../studio/upsell/types'\nimport {UpsellPanel} from '../../../studio/upsell/UpsellPanel'\n\ninterface CommentsUpsellPanelProps {\n data: UpsellData\n onPrimaryClick: () => void\n onSecondaryClick: () => void\n}\n\nexport function CommentsUpsellPanel(props: CommentsUpsellPanelProps) {\n const {data, onPrimaryClick, onSecondaryClick} = props\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 {useContext} from 'react'\nimport {CommentsOnboardingContext} from 'sanity/_singletons'\n\nimport {type CommentsOnboardingContextValue} from '../context/onboarding/types'\n\nexport function useCommentsOnboarding(): CommentsOnboardingContextValue {\n const ctx = useContext(CommentsOnboardingContext)\n\n if (!ctx) {\n throw new Error('useCommentsOnboarding: missing context value')\n }\n\n return ctx\n}\n","import {Box, Card, Stack, Text} from '@sanity/ui'\n\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {commentsLocaleNamespace} from '../../i18n'\n\nexport function CommentsInspectorError({error}: {error: Error}) {\n const {t} = useTranslation(commentsLocaleNamespace)\n\n return (\n <Box padding={2}>\n <Card paddingX={2} paddingY={3} tone=\"critical\" border radius={3}>\n <Stack space={3}>\n <Text size={1} weight=\"medium\">\n {t('inspector-error.title')}\n </Text>\n <Text size={1} muted>\n {error.message}\n </Text>\n </Stack>\n </Card>\n </Box>\n )\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {CloseIcon} from '@sanity/icons/Close'\nimport {Card, Flex, Menu, Text} from '@sanity/ui'\nimport {forwardRef, useCallback} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {MenuButton} from '../../../../ui-components/menuButton/MenuButton'\nimport {MenuItem} from '../../../../ui-components/menuItem/MenuItem'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {commentsLocaleNamespace} from '../../i18n'\nimport {type CommentStatus, type CommentsUIMode} from '../../types'\n\nconst Root = styled(Card)({\n position: 'relative',\n zIndex: '1',\n lineHeight: '0',\n})\n\ninterface CommentsInspectorHeaderProps {\n onClose: () => void\n onViewChange: (view: CommentStatus) => void\n view: CommentStatus\n mode: CommentsUIMode\n}\n\nexport const CommentsInspectorHeader = forwardRef(function CommentsInspectorHeader(\n props: CommentsInspectorHeaderProps,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {t} = useTranslation(commentsLocaleNamespace)\n const {onClose, onViewChange, view, mode} = props\n\n const handleSetOpenView = useCallback(() => onViewChange('open'), [onViewChange])\n const handleSetResolvedView = useCallback(() => onViewChange('resolved'), [onViewChange])\n\n return (\n <Root ref={ref}>\n <Flex padding={2}>\n <Flex align=\"center\" flex={1} gap={2} paddingY={2} padding={3}>\n <Text as=\"h1\" size={1} weight=\"medium\">\n {t('feature-name')}\n </Text>\n </Flex>\n\n <Flex flex=\"none\" padding={1} gap={2}>\n <MenuButton\n id=\"comment-status-menu-button\"\n button={\n <Button\n text={\n view === 'open'\n ? t('status-filter.status-open')\n : t('status-filter.status-resolved')\n }\n mode=\"bleed\"\n iconRight={ChevronDownIcon}\n />\n }\n menu={\n <Menu style={{width: '180px'}}>\n <MenuItem\n iconRight={view === 'open' ? CheckmarkIcon : undefined}\n onClick={handleSetOpenView}\n text={t('status-filter.status-open-full')}\n />\n <MenuItem\n iconRight={view === 'resolved' ? CheckmarkIcon : undefined}\n onClick={handleSetResolvedView}\n text={t('status-filter.status-resolved-full')}\n tooltipProps={\n mode === 'upsell'\n ? {content: t('status-filter.status-resolved-full-upsell')}\n : undefined\n }\n disabled={mode === 'upsell'}\n />\n </Menu>\n }\n popover={{placement: 'bottom-end'}}\n />\n\n <Button\n aria-label={t('close-pane-button-text-aria-label')}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n tooltipProps={{content: t('close-pane-button-text')}}\n />\n </Flex>\n </Flex>\n </Root>\n )\n})\n","import {Flex, Layer, useClickOutsideEvent, useLayer, useToast} from '@sanity/ui'\nimport * as PathUtils from '@sanity/util/paths'\nimport {Fragment, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {type DocumentInspectorProps} from '../../../config/document/inspector'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {useCurrentUser} from '../../../store/user/hooks'\nimport {useAddonDataset} from '../../../studio/addonDataset/useAddonDataset'\nimport {CommentDeleteDialog} from '../../components/CommentDeleteDialog'\nimport {CommentsList} from '../../components/list/CommentsList'\nimport {CommentsOnboardingPopover} from '../../components/onboarding/CommentsOnboardingPopover'\nimport {CommentsUpsellPanel} from '../../components/upsell/CommentsUpsellPanel'\nimport {type CommentsSelectedPath} from '../../context/selected-path/types'\nimport {isTextSelectionComment} from '../../helpers'\nimport {useComments} from '../../hooks/useComments'\nimport {useCommentsEnabled} from '../../hooks/useCommentsEnabled'\nimport {useCommentsOnboarding} from '../../hooks/useCommentsOnboarding'\nimport {useCommentsScroll} from '../../hooks/useCommentsScroll'\nimport {useCommentsSelectedPath} from '../../hooks/useCommentsSelectedPath'\nimport {useCommentsTelemetry} from '../../hooks/useCommentsTelemetry'\nimport {useCommentsUpsell} from '../../hooks/useCommentsUpsell'\nimport {commentsLocaleNamespace} from '../../i18n'\nimport {\n type CommentBaseCreatePayload,\n type CommentReactionOption,\n type CommentStatus,\n type CommentsUIMode,\n type CommentUpdatePayload,\n} from '../../types'\nimport {CommentsInspectorError} from './CommentsInspectorError'\nimport {CommentsInspectorHeader} from './CommentsInspectorHeader'\n\ninterface CommentToDelete {\n commentId: string\n isParent: boolean\n}\n\nconst RootLayer = styled(Layer)`\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n`\n\nexport function CommentsInspector(props: DocumentInspectorProps) {\n const {enabled, mode} = useCommentsEnabled()\n\n if (!enabled) return null\n\n // We wrap the comments inspector in a Layer in order to know when the comments inspector\n // is the top layer (that is, if there is e.g. a popover open). This is used to determine\n // if we should deselect the selected path when clicking outside the comments inspector.\n return (\n <RootLayer>\n <CommentsInspectorInner {...props} mode={mode} />\n </RootLayer>\n )\n}\n\nfunction CommentsInspectorInner(\n props: DocumentInspectorProps & {\n mode: CommentsUIMode\n },\n) {\n const {t} = useTranslation(commentsLocaleNamespace)\n const {onClose, mode} = props\n const [showDeleteDialog, setShowDeleteDialog] = useState<boolean>(false)\n const [commentToDelete, setCommentToDelete] = useState<CommentToDelete | null>(null)\n const [deleteLoading, setDeleteLoading] = useState<boolean>(false)\n const [deleteError, setDeleteError] = useState<Error | null>(null)\n\n const rootRef = useRef<HTMLDivElement | null>(null)\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n\n const currentUser = useCurrentUser()\n const {\n comments,\n getComment,\n isCreatingDataset,\n mentionOptions,\n setStatus,\n status,\n operation,\n selectedCommentId,\n getCommentLink,\n onClearSelectedComment,\n onPathOpen,\n } = useComments()\n const commentIdParamRef = useRef<string | undefined>(selectedCommentId)\n const {error: addonDatasetError} = useAddonDataset()\n const didScrollToCommentFromParam = useRef<boolean>(false)\n\n const pushToast = useToast().push\n const {isTopLayer} = useLayer()\n\n const {scrollToComment, scrollToField, scrollToInlineComment} = useCommentsScroll({\n boundaryElement: rootElement,\n })\n const {selectedPath, setSelectedPath} = useCommentsSelectedPath()\n const {isDismissed, setDismissed} = useCommentsOnboarding()\n const telemetry = useCommentsTelemetry()\n\n const {upsellData, telemetryLogs: upsellTelemetryLogs} = useCommentsUpsell()\n\n const currentComments = useMemo(() => comments.data[status], [comments, status])\n\n const {loading} = comments\n\n const handleChangeView = useCallback(\n (nextView: CommentStatus) => {\n setStatus(nextView)\n setSelectedPath(null)\n\n telemetry.commentListViewChanged(nextView)\n },\n [setSelectedPath, setStatus, telemetry],\n )\n\n const handleCloseInspector = useCallback(() => {\n onClose()\n setSelectedPath(null)\n }, [onClose, setSelectedPath])\n\n const handleCopyLink = useMemo(() => {\n if (!getCommentLink) return undefined\n\n const copyLink = (id: string) => {\n navigator.clipboard.writeText(getCommentLink(id)).catch(() => {\n pushToast({\n closable: true,\n status: 'error',\n title: t('copy-link-error-message'),\n })\n })\n\n telemetry.commentLinkCopied()\n }\n\n return copyLink\n }, [getCommentLink, pushToast, t, telemetry])\n\n const handleCreateRetry = useCallback(\n (id: string) => {\n const comment = getComment(id)\n if (!comment) return\n\n void operation.create({\n type: 'field',\n fieldPath: comment.target.path?.field || '',\n id: comment._id,\n message: comment.message,\n parentCommentId: comment.parentCommentId,\n reactions: comment.reactions || [],\n status: comment.status,\n threadId: comment.threadId,\n })\n },\n [getComment, operation],\n )\n\n const closeDeleteDialog = useCallback(() => {\n if (deleteLoading) return\n setShowDeleteDialog(false)\n setCommentToDelete(null)\n }, [deleteLoading])\n\n const handlePathSelect = useCallback(\n (nextPath: CommentsSelectedPath) => {\n setSelectedPath(nextPath)\n\n if (nextPath?.fieldPath) {\n const path = PathUtils.fromString(nextPath.fieldPath)\n onPathOpen?.(path)\n\n scrollToField(nextPath.fieldPath)\n\n const isInlineComment = comments.data.open\n .filter((c) => c.threadId === nextPath?.threadId)\n .some((x) => isTextSelectionComment(x.parentComment))\n\n if (isInlineComment && nextPath.threadId) {\n scrollToInlineComment(nextPath.threadId)\n }\n }\n },\n [comments.data.open, onPathOpen, scrollToField, scrollToInlineComment, setSelectedPath],\n )\n\n const handleNewThreadCreate = useCallback(\n (nextComment: CommentBaseCreatePayload) => {\n const fieldPath = nextComment?.payload?.fieldPath || ''\n\n void operation.create({\n type: 'field',\n fieldPath,\n message: nextComment.message,\n parentCommentId: nextComment.parentCommentId,\n reactions: nextComment.reactions,\n status: nextComment.status,\n threadId: nextComment.threadId,\n })\n\n setSelectedPath({\n fieldPath,\n origin: 'inspector',\n threadId: nextComment.threadId,\n })\n },\n [operation, setSelectedPath],\n )\n\n const handleReply = useCallback(\n (nextComment: CommentBaseCreatePayload) => {\n void operation.create({\n ...nextComment,\n type: 'field',\n fieldPath: nextComment?.payload?.fieldPath || '',\n })\n },\n [operation],\n )\n\n const handleEdit = useCallback(\n (id: string, nextComment: CommentUpdatePayload) => {\n void operation.update(id, nextComment)\n },\n [operation],\n )\n\n const onDeleteStart = useCallback(\n (id: string) => {\n const parent = currentComments.find((c) => c.parentComment?._id === id)\n const isParent = Boolean(parent && parent?.replies?.length > 0)\n\n setShowDeleteDialog(true)\n setCommentToDelete({\n commentId: id,\n isParent,\n })\n },\n\n [currentComments],\n )\n\n const handleDeleteConfirm = useCallback(\n async (id: string) => {\n try {\n setDeleteLoading(true)\n await operation.remove(id)\n closeDeleteDialog()\n } catch (err) {\n setDeleteError(err)\n }\n setDeleteLoading(false)\n },\n [closeDeleteDialog, operation],\n )\n\n const handleStatusChange = useCallback(\n (id: string, nextStatus: CommentStatus) => {\n void operation.update(id, {\n status: nextStatus,\n })\n\n // If the comment is being opened, we want to change to the \"open\" view\n // and scroll to the comment\n if (nextStatus === 'open') {\n setStatus('open')\n\n const comment = getComment(id)\n\n if (!comment) return\n\n setSelectedPath({\n fieldPath: comment.target.path?.field || null,\n origin: 'inspector',\n threadId: comment.threadId || null,\n })\n\n scrollToComment(id)\n }\n },\n [getComment, operation, scrollToComment, setSelectedPath, setStatus],\n )\n\n const handleReactionSelect = useCallback(\n (id: string, reaction: CommentReactionOption) => {\n void operation.react(id, reaction)\n },\n [operation],\n )\n\n const handleDeselectPath = useCallback(() => {\n // Clear the selected path when:\n // - Clicking outside the inspector when it's the top layer\n // - The target is not a slate editor string. This is needed because we do not want to\n // frequently deselect the selected path when clicking inside the editor.\n if (selectedPath && isTopLayer) {\n setSelectedPath(null)\n }\n }, [isTopLayer, selectedPath, setSelectedPath])\n\n const setRootRef = useCallback((element: HTMLDivElement | null) => {\n rootRef.current = element\n setRootElement(element)\n }, [])\n\n useClickOutsideEvent(\n (event) => {\n // Clear the selected path when clicking outside the comments inspector.\n // We do this only when the comments inspector is the top layer.\n const isPTETarget =\n event.target instanceof HTMLElement && event.target?.hasAttribute('data-pt-text')\n\n if (!isPTETarget) {\n handleDeselectPath()\n }\n },\n () => [rootRef.current],\n )\n\n const [loggedTelemetry, setLoggedTelemetry] = useState(false)\n useEffect(() => {\n if (loggedTelemetry || mode !== 'upsell') return undefined\n // oxlint-disable-next-line react/react-compiler\n setLoggedTelemetry(true)\n if (selectedPath?.origin === 'form') {\n upsellTelemetryLogs.panelViewed('field_action')\n } else if (commentIdParamRef.current) {\n upsellTelemetryLogs.panelViewed('link')\n } else {\n upsellTelemetryLogs.panelViewed('document_action')\n }\n return () => {\n upsellTelemetryLogs.panelDismissed()\n }\n }, [loggedTelemetry, mode, selectedPath?.origin, upsellTelemetryLogs])\n\n // Handle scroll to comment from URL param\n useEffect(() => {\n // Make sure that the comment exists before we try to scroll to it.\n // We can't solely rely on the comment id from the url since the comment might not be loaded yet.\n const commentToScrollTo = getComment(commentIdParamRef.current || '')\n\n if (!loading && commentToScrollTo && !didScrollToCommentFromParam.current) {\n // Make sure we have the correct status set before we scroll to the comment\n setStatus(commentToScrollTo.status || 'open')\n\n handlePathSelect({\n fieldPath: commentToScrollTo.target.path?.field || null,\n origin: 'url',\n threadId: commentToScrollTo.threadId || null,\n })\n\n // Defer the comment scroll to prevent React batching from overwriting the field scroll\n requestAnimationFrame(() => {\n scrollToComment(commentToScrollTo._id)\n })\n\n didScrollToCommentFromParam.current = true\n commentIdParamRef.current = undefined\n\n onClearSelectedComment?.()\n\n telemetry.commentViewedFromLink()\n }\n }, [\n getComment,\n handlePathSelect,\n loading,\n onClearSelectedComment,\n scrollToComment,\n setStatus,\n telemetry,\n ])\n\n const beforeListNode = useMemo(() => {\n if (mode === 'upsell' && upsellData) {\n return (\n <CommentsUpsellPanel\n data={upsellData}\n onPrimaryClick={upsellTelemetryLogs.panelPrimaryClicked}\n onSecondaryClick={upsellTelemetryLogs.panelSecondaryClicked}\n />\n )\n }\n\n return null\n }, [\n mode,\n upsellTelemetryLogs.panelPrimaryClicked,\n upsellTelemetryLogs.panelSecondaryClicked,\n upsellData,\n ])\n\n return (\n <Fragment>\n {commentToDelete && showDeleteDialog && (\n <CommentDeleteDialog\n {...commentToDelete}\n error={deleteError}\n loading={deleteLoading}\n onClose={closeDeleteDialog}\n onConfirm={handleDeleteConfirm}\n />\n )}\n\n <Flex\n direction=\"column\"\n flex={1}\n height=\"fill\"\n onClick={handleDeselectPath}\n overflow=\"hidden\"\n ref={setRootRef}\n >\n <CommentsOnboardingPopover\n onDismiss={setDismissed}\n open={!isDismissed}\n placement=\"left-start\"\n >\n <CommentsInspectorHeader\n onClose={handleCloseInspector}\n onViewChange={handleChangeView}\n view={status}\n mode={mode}\n />\n </CommentsOnboardingPopover>\n {addonDatasetError && <CommentsInspectorError error={addonDatasetError} />}\n {currentUser && (\n <CommentsList\n beforeListNode={beforeListNode}\n comments={currentComments}\n currentUser={currentUser}\n error={comments.error}\n loading={loading}\n mentionOptions={mentionOptions}\n mode={mode}\n onCopyLink={handleCopyLink}\n onCreateRetry={handleCreateRetry}\n onDelete={onDeleteStart}\n onEdit={handleEdit}\n onNewThreadCreate={handleNewThreadCreate}\n onPathSelect={handlePathSelect}\n onReactionSelect={handleReactionSelect}\n onReply={handleReply}\n onStatusChange={handleStatusChange}\n readOnly={isCreatingDataset}\n selectedPath={selectedPath}\n status={status}\n />\n )}\n </Flex>\n </Fragment>\n )\n}\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { i as Dialog$1, r as Popover$1 } from "./ConfirmPopover-CEELgHMw.js";
2
2
  import { a as Button$1, i as TooltipDelayGroupProvider$1, o as Tooltip$1, r as MenuButton$1, t as MenuItem$1 } from "./MenuItem-B0ry3E4J.js";
3
- import { m as useUser } from "./datastores-CFWEadl-.js";
3
+ import { m as useUser } from "./datastores-CrRYBoDP.js";
4
4
  import { t as useTranslation } from "./useTranslation-Cqs6Itwv.js";
5
5
  import { n as useRelativeTime, o as TextWithTone, r as useDateTimeFormat, t as ContextMenuButton } from "./ContextMenuButton-B8hLJ3hV.js";
6
- import { a as COMMENT_REACTION_OPTIONS, b as commentsLocaleNamespace, c as CommentsAvatar, d as hasCommentMessageValue, f as isTextSelectionComment, h as applyCommentIdAttr, i as COMMENT_REACTION_EMOJIS, l as NormalBlock, m as useCommentHasChanged, n as COMMENTS_HIGHLIGHT_HUE_KEY, o as CommentInput, s as MentionInlineBlock, u as commentIntentIfDiffers } from "./useComments-KoRXRvW7.js";
6
+ import { a as COMMENT_REACTION_OPTIONS, b as commentsLocaleNamespace, c as CommentsAvatar, d as hasCommentMessageValue, f as isTextSelectionComment, h as applyCommentIdAttr, i as COMMENT_REACTION_EMOJIS, l as NormalBlock, m as useCommentHasChanged, n as COMMENTS_HIGHLIGHT_HUE_KEY, o as CommentInput, s as MentionInlineBlock, u as commentIntentIfDiffers } from "./useComments-CzNBSPgQ.js";
7
7
  import { t as useDidUpdate } from "./useDidUpdate-Br1Dx-yJ.js";
8
8
  import { n as useListFormat, t as Translate } from "./Translate-B8ORyU6k.js";
9
9
  import { Fragment, cloneElement, forwardRef, memo, useEffect, useRef, useState } from "react";
@@ -1346,4 +1346,4 @@ const ThreadCard = /* @__PURE__ */ styled(Card).attrs({
1346
1346
  CommentsListItem.displayName = "Memo(CommentsListItem)";
1347
1347
  export { ThreadCard as n, CommentDeleteDialog as r, CommentsListItem as t };
1348
1348
 
1349
- //# sourceMappingURL=CommentsListItem-x7FKz_CM.js.map
1349
+ //# sourceMappingURL=CommentsListItem-BjWNEXPU.js.map