sanity 6.8.0-next.21 → 6.8.0-next.26

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 (114) hide show
  1. package/lib/{AddonDatasetProvider-Cp0gK33v.js → AddonDatasetProvider-CjP7cfpX.js} +2 -2
  2. package/lib/{AddonDatasetProvider-Cp0gK33v.js.map → AddonDatasetProvider-CjP7cfpX.js.map} +1 -1
  3. package/lib/{CalendarFilter-Cgz5picy.js → CalendarFilter-HFRV_eL3.js} +3 -3
  4. package/lib/{CalendarFilter-Cgz5picy.js.map → CalendarFilter-HFRV_eL3.js.map} +1 -1
  5. package/lib/{CommentsDocumentLayout-BJMRXrxl.js → CommentsDocumentLayout-rw8wcIM1.js} +2 -2
  6. package/lib/{CommentsDocumentLayout-BJMRXrxl.js.map → CommentsDocumentLayout-rw8wcIM1.js.map} +1 -1
  7. package/lib/{CommentsField-DV6bhirZ.js → CommentsField-BsPwfKxb.js} +3 -3
  8. package/lib/{CommentsField-DV6bhirZ.js.map → CommentsField-BsPwfKxb.js.map} +1 -1
  9. package/lib/{CommentsInput-DQ4WCdZJ.js → CommentsInput-DTBl7i5N.js} +5 -5
  10. package/lib/{CommentsInput-DQ4WCdZJ.js.map → CommentsInput-DTBl7i5N.js.map} +1 -1
  11. package/lib/{CommentsInspector-PkVZw8uv.js → CommentsInspector-BW8vO31S.js} +5 -5
  12. package/lib/{CommentsInspector-PkVZw8uv.js.map → CommentsInspector-BW8vO31S.js.map} +1 -1
  13. package/lib/{CommentsListItem-BjWNEXPU.js → CommentsListItem-DknI58yB.js} +3 -3
  14. package/lib/{CommentsListItem-BjWNEXPU.js.map → CommentsListItem-DknI58yB.js.map} +1 -1
  15. package/lib/{CommentsSelectedPathProvider-x5f1q0eW.js → CommentsSelectedPathProvider-DIgArTtL.js} +3 -3
  16. package/lib/{CommentsSelectedPathProvider-x5f1q0eW.js.map → CommentsSelectedPathProvider-DIgArTtL.js.map} +1 -1
  17. package/lib/{CommentsStudioLayout-CxZq2lGu.js → CommentsStudioLayout-BgZnhfnu.js} +4 -4
  18. package/lib/{CommentsStudioLayout-CxZq2lGu.js.map → CommentsStudioLayout-BgZnhfnu.js.map} +1 -1
  19. package/lib/PresentationToolGrantsCheck-CITNu5DG.js.map +1 -1
  20. package/lib/{ReleasesMetadataProvider-CpYsTC5J.js → ReleasesMetadataProvider-if7HwSn7.js} +2 -2
  21. package/lib/{ReleasesMetadataProvider-CpYsTC5J.js.map → ReleasesMetadataProvider-if7HwSn7.js.map} +1 -1
  22. package/lib/{ReleasesNav-BuqDytPb.js → ReleasesNav-Djzv3B25.js} +14 -14
  23. package/lib/{ReleasesNav-BuqDytPb.js.map → ReleasesNav-Djzv3B25.js.map} +1 -1
  24. package/lib/{ReleasesStudioLayout-mJZnbUum.js → ReleasesStudioLayout-B4a1YfVs.js} +8 -8
  25. package/lib/{ReleasesStudioLayout-mJZnbUum.js.map → ReleasesStudioLayout-B4a1YfVs.js.map} +1 -1
  26. package/lib/{ReleasesTool-BFOV2VEc.js → ReleasesTool-DnISbRSU.js} +14 -14
  27. package/lib/{ReleasesTool-BFOV2VEc.js.map → ReleasesTool-DnISbRSU.js.map} +1 -1
  28. package/lib/{SchedulePublishingStudioLayout-D2ptE43I.js → SchedulePublishingStudioLayout-9QY_ooRc.js} +3 -3
  29. package/lib/{SchedulePublishingStudioLayout-D2ptE43I.js.map → SchedulePublishingStudioLayout-9QY_ooRc.js.map} +1 -1
  30. package/lib/{SchedulePublishingUpsellProvider-DvCfqtdZ.js → SchedulePublishingUpsellProvider-CmaO2tAv.js} +2 -2
  31. package/lib/{SchedulePublishingUpsellProvider-DvCfqtdZ.js.map → SchedulePublishingUpsellProvider-CmaO2tAv.js.map} +1 -1
  32. package/lib/{ScheduledPublishingEnabledProvider-B5yA7hHi.js → ScheduledPublishingEnabledProvider-t_3aE9Eb.js} +3 -3
  33. package/lib/{ScheduledPublishingEnabledProvider-B5yA7hHi.js.map → ScheduledPublishingEnabledProvider-t_3aE9Eb.js.map} +1 -1
  34. package/lib/{SearchProvider-Cpl3WUyR.js → SearchProvider-DBg-hDAE.js} +4 -4
  35. package/lib/{SearchProvider-Cpl3WUyR.js.map → SearchProvider-DBg-hDAE.js.map} +1 -1
  36. package/lib/{SingleDocReleaseLayout-CfPCP1Ur.js → SingleDocReleaseLayout-B4VM_l9e.js} +2 -2
  37. package/lib/{SingleDocReleaseLayout-CfPCP1Ur.js.map → SingleDocReleaseLayout-B4VM_l9e.js.map} +1 -1
  38. package/lib/{SingleDocReleaseUpsellProvider-4ib7kMdI.js → SingleDocReleaseUpsellProvider-DkPubfW5.js} +4 -4
  39. package/lib/{SingleDocReleaseUpsellProvider-4ib7kMdI.js.map → SingleDocReleaseUpsellProvider-DkPubfW5.js.map} +1 -1
  40. package/lib/{TasksStudioActiveToolLayout-lrH8y1Kh.js → TasksStudioActiveToolLayout-DTz1Qc9v.js} +11 -11
  41. package/lib/{TasksStudioActiveToolLayout-lrH8y1Kh.js.map → TasksStudioActiveToolLayout-DTz1Qc9v.js.map} +1 -1
  42. package/lib/{TasksStudioLayout-CITzoP_1.js → TasksStudioLayout-DwUjUJdg.js} +5 -5
  43. package/lib/{TasksStudioLayout-CITzoP_1.js.map → TasksStudioLayout-DwUjUJdg.js.map} +1 -1
  44. package/lib/{Tool-DxqXi1AF.js → Tool-CkAD5C9P.js} +12 -12
  45. package/lib/{Tool-DxqXi1AF.js.map → Tool-CkAD5C9P.js.map} +1 -1
  46. package/lib/{UnpublishVersionDialog-VZflky9U.js → UnpublishVersionDialog-DTL8vOVE.js} +4 -4
  47. package/lib/{UnpublishVersionDialog-VZflky9U.js.map → UnpublishVersionDialog-DTL8vOVE.js.map} +1 -1
  48. package/lib/{UpsellDialog-BmQSjdJg.js → UpsellDialog-IzMpFE1u.js} +2 -2
  49. package/lib/{UpsellDialog-BmQSjdJg.js.map → UpsellDialog-IzMpFE1u.js.map} +1 -1
  50. package/lib/{VariantsStudioNavbar-HsA97lVy.js → VariantsStudioNavbar-CezVsUfO.js} +6 -6
  51. package/lib/{VariantsStudioNavbar-HsA97lVy.js.map → VariantsStudioNavbar-CezVsUfO.js.map} +1 -1
  52. package/lib/{VariantsTool-rOcVMkln.js → VariantsTool-DE1FD_ej.js} +7 -7
  53. package/lib/{VariantsTool-rOcVMkln.js.map → VariantsTool-DE1FD_ej.js.map} +1 -1
  54. package/lib/{WorkspaceLoader-kepBjrsn.js → WorkspaceLoader-CJJ5T-fv.js} +21 -21
  55. package/lib/{WorkspaceLoader-kepBjrsn.js.map → WorkspaceLoader-CJJ5T-fv.js.map} +1 -1
  56. package/lib/_createContext.js +1 -1
  57. package/lib/_singletons.d.ts +1 -1
  58. package/lib/{buildTextSelectionFromFragment-Dj_WBTDa.js → buildTextSelectionFromFragment-CCoJMux8.js} +3 -3
  59. package/lib/{buildTextSelectionFromFragment-Dj_WBTDa.js.map → buildTextSelectionFromFragment-CCoJMux8.js.map} +1 -1
  60. package/lib/{datastores-CrRYBoDP.js → datastores-DUVaBTwm.js} +2 -2
  61. package/lib/{datastores-CrRYBoDP.js.map → datastores-DUVaBTwm.js.map} +1 -1
  62. package/lib/desk.d.ts +4 -4
  63. package/lib/{index-Bic9X2KM.d.ts → index-Cy_stjiR.d.ts} +2 -2
  64. package/lib/index.d.ts +1 -1
  65. package/lib/index.js +30 -30
  66. package/lib/index.js.map +1 -1
  67. package/lib/{inputResolver-Czq6o5Gh.js → inputResolver--PMlzVz6.js} +4 -4
  68. package/lib/{inputResolver-Czq6o5Gh.js.map → inputResolver--PMlzVz6.js.map} +1 -1
  69. package/lib/{navigation.telemetry-DSG23KnM.js → navigation.telemetry-BP7L7Yt5.js} +7 -7
  70. package/lib/{navigation.telemetry-DSG23KnM.js.map → navigation.telemetry-BP7L7Yt5.js.map} +1 -1
  71. package/lib/{plugin-CgIJubgG.js → plugin-Bbjowgua.js} +3 -3
  72. package/lib/{plugin-CgIJubgG.js.map → plugin-Bbjowgua.js.map} +1 -1
  73. package/lib/{plugin-DkdjF8sO.js → plugin-DO-n3TOX.js} +5 -5
  74. package/lib/{plugin-DkdjF8sO.js.map → plugin-DO-n3TOX.js.map} +1 -1
  75. package/lib/{plugin-CLeQ5x8I.js → plugin-Ey6Tx3tj.js} +4 -4
  76. package/lib/{plugin-CLeQ5x8I.js.map → plugin-Ey6Tx3tj.js.map} +1 -1
  77. package/lib/{plugin-CqWxiAAn.js → plugin-X4GrTJqn.js} +6 -6
  78. package/lib/{plugin-CqWxiAAn.js.map → plugin-X4GrTJqn.js.map} +1 -1
  79. package/lib/{scheduleItem-CqReiIMI.js → scheduleItem-vu_HWcBZ.js} +8 -8
  80. package/lib/{scheduleItem-CqReiIMI.js.map → scheduleItem-vu_HWcBZ.js.map} +1 -1
  81. package/lib/{schedules-DoZXofxj.js → schedules-BYLtYDgp.js} +3 -3
  82. package/lib/{schedules-DoZXofxj.js.map → schedules-BYLtYDgp.js.map} +1 -1
  83. package/lib/structure.d.ts +1 -5
  84. package/lib/{studioClient-DqAy4dnu.js → studioClient-iURCatTW.js} +2 -2
  85. package/lib/{studioClient-DqAy4dnu.js.map → studioClient-iURCatTW.js.map} +1 -1
  86. package/lib/{useBundleDocuments-Dyop3VGZ.js → useBundleDocuments-DI7ZVYfB.js} +7 -7
  87. package/lib/{useBundleDocuments-Dyop3VGZ.js.map → useBundleDocuments-DI7ZVYfB.js.map} +1 -1
  88. package/lib/{useComments-CzNBSPgQ.js → useComments-bo6ywXLU.js} +2 -2
  89. package/lib/{useComments-CzNBSPgQ.js.map → useComments-bo6ywXLU.js.map} +1 -1
  90. package/lib/{useCommentsTelemetry-CkplhYJa.js → useCommentsTelemetry-BWFvB58x.js} +3 -3
  91. package/lib/{useCommentsTelemetry-CkplhYJa.js.map → useCommentsTelemetry-BWFvB58x.js.map} +1 -1
  92. package/lib/{useDocumentPreviewValues-BPzq1mWh.js → useDocumentPreviewValues-B-l3uVDV.js} +3 -3
  93. package/lib/{useDocumentPreviewValues-BPzq1mWh.js.map → useDocumentPreviewValues-B-l3uVDV.js.map} +1 -1
  94. package/lib/{useFeatureEnabled-B_ywe2up.js → useFeatureEnabled-Df6mF2zw.js} +2 -2
  95. package/lib/{useFeatureEnabled-B_ywe2up.js.map → useFeatureEnabled-Df6mF2zw.js.map} +1 -1
  96. package/lib/{useFieldActions-DbRTTr6-.js → useFieldActions-BV4Vt6iq.js} +2 -2
  97. package/lib/{useFieldActions-DbRTTr6-.js.map → useFieldActions-BV4Vt6iq.js.map} +1 -1
  98. package/lib/{useReleasesToolAvailable-CUvya3HF.js → useReleasesToolAvailable-CYp9TsV6.js} +3 -3
  99. package/lib/{useReleasesToolAvailable-CUvya3HF.js.map → useReleasesToolAvailable-CYp9TsV6.js.map} +1 -1
  100. package/lib/{useScheduledDraftMenuActions-BBEMJkNE.js → useScheduledDraftMenuActions-anfrVhxO.js} +8 -8
  101. package/lib/useScheduledDraftMenuActions-anfrVhxO.js.map +1 -0
  102. package/lib/{useSetVariant-Cz8brFbQ.js → useSetVariant-COEE_E7Y.js} +3 -3
  103. package/lib/{useSetVariant-Cz8brFbQ.js.map → useSetVariant-COEE_E7Y.js.map} +1 -1
  104. package/lib/{useStructureTool-BRvKQUrf.d.ts → useStructureTool-CUdDcZZx.d.ts} +7 -3
  105. package/lib/{useStudioUrl-DFAbTA0R.js → useStudioUrl-Bt5daRfU.js} +5 -5
  106. package/lib/{useStudioUrl-DFAbTA0R.js.map → useStudioUrl-Bt5daRfU.js.map} +1 -1
  107. package/lib/{useTimeZone-CNjAZCdC.js → useTimeZone-Do7W6YS3.js} +2 -2
  108. package/lib/{useTimeZone-CNjAZCdC.js.map → useTimeZone-Do7W6YS3.js.map} +1 -1
  109. package/lib/{validationUtils-C9y0bJZd.js → validationUtils-oyjChG8N.js} +4 -4
  110. package/lib/{validationUtils-C9y0bJZd.js.map → validationUtils-oyjChG8N.js.map} +1 -1
  111. package/lib/{version-BZCsk4ue.js → version-DWyXEhbR.js} +2 -2
  112. package/lib/{version-BZCsk4ue.js.map → version-DWyXEhbR.js.map} +1 -1
  113. package/package.json +13 -15
  114. package/lib/useScheduledDraftMenuActions-BBEMJkNE.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { l as getPublishedId } from "./draftUtils-C1C4OKjo.js";
2
- import { o as useSource } from "./studioClient-DqAy4dnu.js";
3
- import { n as useFeatureEnabled, t as FEATURES } from "./useFeatureEnabled-B_ywe2up.js";
2
+ import { o as useSource } from "./studioClient-iURCatTW.js";
3
+ import { n as useFeatureEnabled, t as FEATURES } from "./useFeatureEnabled-Df6mF2zw.js";
4
4
  import { memo, useState } from "react";
5
5
  import { c } from "react/compiler-runtime";
6
6
  import { jsx } from "react/jsx-runtime";
@@ -87,4 +87,4 @@ const CommentsEnabledProvider = memo(function CommentsEnabledProvider(props) {
87
87
  });
88
88
  export { CommentsEnabledProvider as n, CommentsAuthoringPathProvider as r, CommentsSelectedPathProvider as t };
89
89
 
90
- //# sourceMappingURL=CommentsSelectedPathProvider-x5f1q0eW.js.map
90
+ //# sourceMappingURL=CommentsSelectedPathProvider-DIgArTtL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommentsSelectedPathProvider-x5f1q0eW.js","names":["ReactNode","useCallback","useMemo","useState","CommentsAuthoringPathContext","CommentsAuthoringPathContextValue","CommentsAuthoringPathProviderProps","children","CommentsAuthoringPathProvider","props","$","_c","authoringPath","setAuthoringPath","t0","Symbol","for","nextAuthoringPath","handleSetAuthoringPath","t1","value","t2","useMemo","useFeatureEnabled","FEATURES","useSource","getPublishedId","CommentsUIMode","ResolveCommentsEnabled","enabled","mode","useResolveCommentsEnabled","documentId","documentType","$","_c","featureEnabled","isLoading","error","studioComments","document","comments","enabledFromConfig","t0","bb0","t1","Symbol","for","t2","value","memo","ReactNode","CommentsEnabledContext","useResolveCommentsEnabled","CommentsEnabledProviderProps","children","documentId","documentType","CommentsEnabledProvider","props","$","_c","value","t0","isEqual","memo","useCallback","useMemo","useState","CommentsSelectedPathContext","CommentsSelectedPath","CommentsSelectedPathContextValue","CommentsSelectedPathProviderProps","children","React","ReactNode","CommentsSelectedPathProvider","props","$","_c","selectedPath","setSelectedPath","t0","nextPath","handleSelectPath","t1","ctxValue","t2"],"sources":["../src/core/comments/context/authoring-path/CommentsAuthoringPathProvider.tsx","../src/core/comments/hooks/useResolveCommentsEnabled.ts","../src/core/comments/context/enabled/CommentsEnabledProvider.tsx","../src/core/comments/context/selected-path/CommentsSelectedPathProvider.tsx"],"sourcesContent":["import {type ReactNode, useCallback, useMemo, useState} from 'react'\nimport {CommentsAuthoringPathContext} from 'sanity/_singletons'\n\nimport {type CommentsAuthoringPathContextValue} from './types'\n\ninterface CommentsAuthoringPathProviderProps {\n children: ReactNode\n}\n\n/**\n * @beta\n * @hidden\n * This provider keeps track of the path that the user is currently authoring a comment for.\n * This is needed to make sure that we consistently keep the editor open when the user is\n * authoring a comment. The state is kept in a context to make sure that it is preserved\n * across re-renders. If this state was kept in a component, it would be reset every time\n * the component re-renders, for example, when the form is temporarily set to `readOnly`\n * while reconnecting.\n */\nexport function CommentsAuthoringPathProvider(props: CommentsAuthoringPathProviderProps) {\n const {children} = props\n const [authoringPath, setAuthoringPath] = useState<string | null>(null)\n\n const handleSetAuthoringPath = useCallback((nextAuthoringPath: string | null) => {\n setAuthoringPath(nextAuthoringPath)\n }, [])\n\n const value = useMemo(\n (): CommentsAuthoringPathContextValue => ({\n authoringPath,\n setAuthoringPath: handleSetAuthoringPath,\n }),\n [authoringPath, handleSetAuthoringPath],\n )\n\n return (\n <CommentsAuthoringPathContext.Provider value={value}>\n {children}\n </CommentsAuthoringPathContext.Provider>\n )\n}\n","import {useMemo} from 'react'\n\nimport {useFeatureEnabled, FEATURES} from '../../hooks/useFeatureEnabled'\nimport {useSource} from '../../studio/source'\nimport {getPublishedId} from '../../util/draftUtils'\nimport {type CommentsUIMode} from '../types'\n\ntype ResolveCommentsEnabled =\n | {\n enabled: false\n mode: null\n }\n | {\n enabled: true\n mode: CommentsUIMode\n }\n\n/**\n * @internal\n * A hook that resolves if comments are enabled for the current document and document type\n * and if the feature is enabled for the current project.\n */\nexport function useResolveCommentsEnabled(\n documentId: string,\n documentType: string,\n): ResolveCommentsEnabled {\n // Check if the projects plan has the feature enabled\n const {enabled: featureEnabled, isLoading, error} = useFeatureEnabled(FEATURES.studioComments)\n\n const {enabled} = useSource().document.comments\n // Check if the feature is enabled for the current document in the config\n const enabledFromConfig = useMemo(\n () => enabled({documentType, documentId: getPublishedId(documentId)}),\n [documentId, documentType, enabled],\n )\n\n const value: ResolveCommentsEnabled = useMemo(() => {\n // The feature is not enabled if:\n // - the feature is loading (`isLoading` is true)\n // - the feature is not enabled in the project (`enabledFromConfig` is false)\n // - there's an error when fetching the list of enabled features (`error` is set)\n if (isLoading || !enabledFromConfig || error) {\n return {enabled: false, mode: null}\n }\n\n return {\n enabled: true,\n mode: featureEnabled ? 'default' : 'upsell',\n }\n }, [isLoading, enabledFromConfig, error, featureEnabled])\n\n return value\n}\n","import {memo, type ReactNode} from 'react'\nimport {CommentsEnabledContext} from 'sanity/_singletons'\n\nimport {useResolveCommentsEnabled} from '../../hooks/useResolveCommentsEnabled'\n\ninterface CommentsEnabledProviderProps {\n children: ReactNode\n documentId: string\n documentType: string\n}\n\n/**\n * @beta\n * @hidden\n */\nexport const CommentsEnabledProvider = memo(function CommentsEnabledProvider(\n props: CommentsEnabledProviderProps,\n) {\n const {children, documentId, documentType} = props\n\n const value = useResolveCommentsEnabled(documentId, documentType)\n\n return <CommentsEnabledContext.Provider value={value}>{children}</CommentsEnabledContext.Provider>\n})\n","import isEqual from 'lodash-es/isEqual.js'\nimport {memo, useCallback, useMemo, useState} from 'react'\nimport {CommentsSelectedPathContext} from 'sanity/_singletons'\n\nimport {type CommentsSelectedPath, type CommentsSelectedPathContextValue} from './types'\n\ninterface CommentsSelectedPathProviderProps {\n children: React.ReactNode\n}\n\n/**\n * @internal\n */\nexport const CommentsSelectedPathProvider = memo(function CommentsSelectedPathProvider(\n props: CommentsSelectedPathProviderProps,\n) {\n const {children} = props\n const [selectedPath, setSelectedPath] = useState<CommentsSelectedPath | null>(null)\n\n const handleSelectPath = useCallback(\n (nextPath: CommentsSelectedPath | null) => {\n if (isEqual(selectedPath, nextPath)) return\n\n setSelectedPath(nextPath)\n },\n [selectedPath],\n )\n\n const ctxValue = useMemo(\n (): CommentsSelectedPathContextValue => ({\n selectedPath,\n setSelectedPath: handleSelectPath,\n }),\n [selectedPath, handleSelectPath],\n )\n\n return (\n <CommentsSelectedPathContext.Provider value={ctxValue}>\n {children}\n </CommentsSelectedPathContext.Provider>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,SAAOQ,8BAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACL,EAAAJ,aAAmBE,OACnB,CAAAG,eAAAC,oBAA0CV,SAAwB,IAAI,GAACW;CAAA,AAAAJ,EAAA,OAAAK,OAAAC,IAAA,2BAAA,KAE5BF,MAAAG,sBAAA;EACzCJ,iBAAiBI,iBAAiB;CAAC,GACpCP,EAAA,KAAAI,MAAAA,KAAAJ,EAAA;CAFD,IAAAQ,yBAA+BJ,IAEzBK;CAAA,AAAAT,EAAA,OAAAE,gBAMHO,KAAAT,EAAA,MAHyCS,KAAA;EAAAP;EAAAC,kBAEtBK;CACpB,GAACR,EAAA,KAAAE,eAAAF,EAAA,KAAAS;CAJH,IAAAC,QAC4CD,IAK3CE;CAKyC,OALzCX,EAAA,OAAAH,YAAAG,EAAA,OAAAU,SAGCC,KAAA,oBAAA,6BAAA,UAAA;EAA8CD;EAC3Cb;CACH,CAAA,GAAwCG,EAAA,KAAAH,UAAAG,EAAA,KAAAU,OAAAV,EAAA,KAAAW,MAAAA,KAAAX,EAAA,IAFxCW;AAEwC;;;;;;AChB5C,SAAOU,0BAAAC,YAAAC,cAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAKL,EAAAN,SAAAO,gBAAAC,WAAAC,UAAoDf,kBAAkBC,SAAQe,cAAe,GAE7F,EAAAV,YAAkBJ,UAAU,CAAC,CAAAe,SAASC,UAEtCC,oBACQb,QAAQ;EAAAI;EAAAD,YAA2BN,eAAeM,UAAU;CAAC,CAAC,GAErEW;CAAAC,KAAA;EAOC,IAAIP,aAAA,CAAcK,qBAAdJ,OAAwC;GAAA,IAAAO;GAC1CF,AAD0CT,EAAA,OAAAY,OAAAC,IAAA,2BAAA,KACnCF,KAAA;IAAAhB,SAAU;IAAKC,MAAQ;GAAI,GAACI,EAAA,KAAAW,MAAAA,KAAAX,EAAA,IAAnCS,KAAOE;GAAP,MAAAD;EAAmC;EAK7B,IAAAC,KAAAT,iBAAA,YAAA,UAAqCY;EAF7CL,AAE6CT,EAAA,OAAAW,KAC5CG,KAAAd,EAAA,MAHMc,KAAA;GAAAnB,SACI;GAAIC,MACPe;EACR,GAACX,EAAA,KAAAW,IAAAX,EAAA,KAAAc,KAHDL,KAAOK;CAGN;CACsD,OAElDC;AAAK;;;;;ACpCd,MAAaS,0BAA0BR,KAAK,SAAAQ,wBAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAG1C,EAAAN,UAAAC,YAAAC,iBAA6CE,OAE7CG,QAAcT,0BAA0BG,YAAYC,YAAY,GAACM;CAEiC,OAFjCH,EAAA,OAAAL,YAAAK,EAAA,OAAAE,SAE1DC,KAAA,oBAAA,uBAAA,UAAA;EAAwCD;EAAQP;CAAS,CAAA,GAAkCK,EAAA,KAAAL,UAAAK,EAAA,KAAAE,OAAAF,EAAA,KAAAG,MAAAA,KAAAH,EAAA,IAA3FG;AAA2F,CACnG,GCVYa,+BAA+BX,KAAK,SAAAW,6BAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAG/C,EAAAN,aAAmBI,OACnB,CAAAG,cAAAC,mBAAwCb,SAAsC,IAAI,GAACc;CAAA,AAAAJ,EAAA,OAAAE,eAOhFE,KAAAJ,EAAA,MAJDI,MAAAC,aAAA;EACMnB,QAAQgB,cAAcG,QAAQ,KAElCF,gBAAgBE,QAAQ;CAAC,GAC1BL,EAAA,KAAAE,cAAAF,EAAA,KAAAI;CALH,IAAAE,mBAAyBF,IAOxBG;CAAA,AAAAP,EAAA,OAAAM,oBAAAN,EAAA,OAAAE,gBAG0CK,KAAA;EAAAL;EAAAC,iBAEtBG;CACnB,GAACN,EAAA,KAAAM,kBAAAN,EAAA,KAAAE,cAAAF,EAAA,KAAAO,MAAAA,KAAAP,EAAA;CAJH,IAAAQ,WAC2CD,IAK1CE;CAKwC,OALxCT,EAAA,OAAAL,YAAAK,EAAA,OAAAQ,YAGCC,KAAA,oBAAA,4BAAA,UAAA;EAA6CD,OAAAA;EAC1Cb;CACH,CAAA,GAAuCK,EAAA,KAAAL,UAAAK,EAAA,KAAAQ,UAAAR,EAAA,KAAAS,MAAAA,KAAAT,EAAA,IAFvCS;AAEuC,CAE1C"}
1
+ {"version":3,"file":"CommentsSelectedPathProvider-DIgArTtL.js","names":["ReactNode","useCallback","useMemo","useState","CommentsAuthoringPathContext","CommentsAuthoringPathContextValue","CommentsAuthoringPathProviderProps","children","CommentsAuthoringPathProvider","props","$","_c","authoringPath","setAuthoringPath","t0","Symbol","for","nextAuthoringPath","handleSetAuthoringPath","t1","value","t2","useMemo","useFeatureEnabled","FEATURES","useSource","getPublishedId","CommentsUIMode","ResolveCommentsEnabled","enabled","mode","useResolveCommentsEnabled","documentId","documentType","$","_c","featureEnabled","isLoading","error","studioComments","document","comments","enabledFromConfig","t0","bb0","t1","Symbol","for","t2","value","memo","ReactNode","CommentsEnabledContext","useResolveCommentsEnabled","CommentsEnabledProviderProps","children","documentId","documentType","CommentsEnabledProvider","props","$","_c","value","t0","isEqual","memo","useCallback","useMemo","useState","CommentsSelectedPathContext","CommentsSelectedPath","CommentsSelectedPathContextValue","CommentsSelectedPathProviderProps","children","React","ReactNode","CommentsSelectedPathProvider","props","$","_c","selectedPath","setSelectedPath","t0","nextPath","handleSelectPath","t1","ctxValue","t2"],"sources":["../src/core/comments/context/authoring-path/CommentsAuthoringPathProvider.tsx","../src/core/comments/hooks/useResolveCommentsEnabled.ts","../src/core/comments/context/enabled/CommentsEnabledProvider.tsx","../src/core/comments/context/selected-path/CommentsSelectedPathProvider.tsx"],"sourcesContent":["import {type ReactNode, useCallback, useMemo, useState} from 'react'\nimport {CommentsAuthoringPathContext} from 'sanity/_singletons'\n\nimport {type CommentsAuthoringPathContextValue} from './types'\n\ninterface CommentsAuthoringPathProviderProps {\n children: ReactNode\n}\n\n/**\n * @beta\n * @hidden\n * This provider keeps track of the path that the user is currently authoring a comment for.\n * This is needed to make sure that we consistently keep the editor open when the user is\n * authoring a comment. The state is kept in a context to make sure that it is preserved\n * across re-renders. If this state was kept in a component, it would be reset every time\n * the component re-renders, for example, when the form is temporarily set to `readOnly`\n * while reconnecting.\n */\nexport function CommentsAuthoringPathProvider(props: CommentsAuthoringPathProviderProps) {\n const {children} = props\n const [authoringPath, setAuthoringPath] = useState<string | null>(null)\n\n const handleSetAuthoringPath = useCallback((nextAuthoringPath: string | null) => {\n setAuthoringPath(nextAuthoringPath)\n }, [])\n\n const value = useMemo(\n (): CommentsAuthoringPathContextValue => ({\n authoringPath,\n setAuthoringPath: handleSetAuthoringPath,\n }),\n [authoringPath, handleSetAuthoringPath],\n )\n\n return (\n <CommentsAuthoringPathContext.Provider value={value}>\n {children}\n </CommentsAuthoringPathContext.Provider>\n )\n}\n","import {useMemo} from 'react'\n\nimport {useFeatureEnabled, FEATURES} from '../../hooks/useFeatureEnabled'\nimport {useSource} from '../../studio/source'\nimport {getPublishedId} from '../../util/draftUtils'\nimport {type CommentsUIMode} from '../types'\n\ntype ResolveCommentsEnabled =\n | {\n enabled: false\n mode: null\n }\n | {\n enabled: true\n mode: CommentsUIMode\n }\n\n/**\n * @internal\n * A hook that resolves if comments are enabled for the current document and document type\n * and if the feature is enabled for the current project.\n */\nexport function useResolveCommentsEnabled(\n documentId: string,\n documentType: string,\n): ResolveCommentsEnabled {\n // Check if the projects plan has the feature enabled\n const {enabled: featureEnabled, isLoading, error} = useFeatureEnabled(FEATURES.studioComments)\n\n const {enabled} = useSource().document.comments\n // Check if the feature is enabled for the current document in the config\n const enabledFromConfig = useMemo(\n () => enabled({documentType, documentId: getPublishedId(documentId)}),\n [documentId, documentType, enabled],\n )\n\n const value: ResolveCommentsEnabled = useMemo(() => {\n // The feature is not enabled if:\n // - the feature is loading (`isLoading` is true)\n // - the feature is not enabled in the project (`enabledFromConfig` is false)\n // - there's an error when fetching the list of enabled features (`error` is set)\n if (isLoading || !enabledFromConfig || error) {\n return {enabled: false, mode: null}\n }\n\n return {\n enabled: true,\n mode: featureEnabled ? 'default' : 'upsell',\n }\n }, [isLoading, enabledFromConfig, error, featureEnabled])\n\n return value\n}\n","import {memo, type ReactNode} from 'react'\nimport {CommentsEnabledContext} from 'sanity/_singletons'\n\nimport {useResolveCommentsEnabled} from '../../hooks/useResolveCommentsEnabled'\n\ninterface CommentsEnabledProviderProps {\n children: ReactNode\n documentId: string\n documentType: string\n}\n\n/**\n * @beta\n * @hidden\n */\nexport const CommentsEnabledProvider = memo(function CommentsEnabledProvider(\n props: CommentsEnabledProviderProps,\n) {\n const {children, documentId, documentType} = props\n\n const value = useResolveCommentsEnabled(documentId, documentType)\n\n return <CommentsEnabledContext.Provider value={value}>{children}</CommentsEnabledContext.Provider>\n})\n","import isEqual from 'lodash-es/isEqual.js'\nimport {memo, useCallback, useMemo, useState} from 'react'\nimport {CommentsSelectedPathContext} from 'sanity/_singletons'\n\nimport {type CommentsSelectedPath, type CommentsSelectedPathContextValue} from './types'\n\ninterface CommentsSelectedPathProviderProps {\n children: React.ReactNode\n}\n\n/**\n * @internal\n */\nexport const CommentsSelectedPathProvider = memo(function CommentsSelectedPathProvider(\n props: CommentsSelectedPathProviderProps,\n) {\n const {children} = props\n const [selectedPath, setSelectedPath] = useState<CommentsSelectedPath | null>(null)\n\n const handleSelectPath = useCallback(\n (nextPath: CommentsSelectedPath | null) => {\n if (isEqual(selectedPath, nextPath)) return\n\n setSelectedPath(nextPath)\n },\n [selectedPath],\n )\n\n const ctxValue = useMemo(\n (): CommentsSelectedPathContextValue => ({\n selectedPath,\n setSelectedPath: handleSelectPath,\n }),\n [selectedPath, handleSelectPath],\n )\n\n return (\n <CommentsSelectedPathContext.Provider value={ctxValue}>\n {children}\n </CommentsSelectedPathContext.Provider>\n )\n})\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { n as useFeatureEnabled, t as FEATURES } from "./useFeatureEnabled-B_ywe2up.js";
2
- import { n as getDialogPropsFromContext, r as useUpsellContext, t as UpsellDialog } from "./UpsellDialog-BmQSjdJg.js";
3
- import { t as AddonDatasetProvider } from "./AddonDatasetProvider-Cp0gK33v.js";
1
+ import { n as useFeatureEnabled, t as FEATURES } from "./useFeatureEnabled-Df6mF2zw.js";
2
+ import { n as getDialogPropsFromContext, r as useUpsellContext, t as UpsellDialog } from "./UpsellDialog-IzMpFE1u.js";
3
+ import { t as AddonDatasetProvider } from "./AddonDatasetProvider-CjP7cfpX.js";
4
4
  import { useState } from "react";
5
5
  import { c } from "react/compiler-runtime";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -65,4 +65,4 @@ function CommentsStudioLayout(props) {
65
65
  }
66
66
  export { CommentsStudioLayout };
67
67
 
68
- //# sourceMappingURL=CommentsStudioLayout-CxZq2lGu.js.map
68
+ //# sourceMappingURL=CommentsStudioLayout-BgZnhfnu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommentsStudioLayout-CxZq2lGu.js","names":["ReactNode","useCallback","useMemo","useState","CommentsOnboardingContext","CommentsOnboardingContextValue","VERSION","LOCAL_STORAGE_KEY","setLocalStorage","value","window","localStorage","setItem","JSON","stringify","getLocalStorage","getItem","parse","CommentsOnboardingProviderProps","children","CommentsOnboardingProvider","props","$","_c","t0","Symbol","for","dismissed","setDismissed","t1","handleDismiss","t2","isDismissed","ctxValue","t3","CommentsUpsellContext","getDialogPropsFromContext","useUpsellContext","UpsellDialog","CommentsUpsellProvider","props","$","_c","t0","Symbol","for","dataUri","feature","contextValue","t1","children","t2","t3","t4","LayoutProps","useFeatureEnabled","FEATURES","AddonDatasetProvider","CommentsOnboardingProvider","CommentsUpsellProvider","CommentsStudioLayout","props","$","_c","enabled","isLoading","studioComments","t0","renderDefault","children","t1","t2"],"sources":["../src/core/comments/context/onboarding/CommentsOnboardingProvider.tsx","../src/core/comments/context/upsell/CommentsUpsellProvider.tsx","../src/core/comments/plugin/studio-layout/CommentsStudioLayout.tsx"],"sourcesContent":["import {type ReactNode, useCallback, useMemo, useState} from 'react'\nimport {CommentsOnboardingContext} from 'sanity/_singletons'\n\nimport {type CommentsOnboardingContextValue} from './types'\n\nconst VERSION = 1\nconst LOCAL_STORAGE_KEY = `sanityStudio:comments:inspector:onboarding:dismissed:v${VERSION}`\n\nconst setLocalStorage = (value: boolean) => {\n try {\n window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(value))\n } catch {\n // Fail silently\n }\n}\n\nconst getLocalStorage = (): boolean => {\n try {\n const value = window.localStorage.getItem(LOCAL_STORAGE_KEY)\n return value ? JSON.parse(value) : false\n } catch {\n return false\n }\n}\n\ninterface CommentsOnboardingProviderProps {\n children: ReactNode\n}\n\nexport function CommentsOnboardingProvider(props: CommentsOnboardingProviderProps) {\n const {children} = props\n const [dismissed, setDismissed] = useState<boolean>(getLocalStorage())\n\n const handleDismiss = useCallback(() => {\n setDismissed(true)\n setLocalStorage(true)\n }, [setDismissed])\n\n const ctxValue = useMemo(\n (): CommentsOnboardingContextValue => ({\n setDismissed: handleDismiss,\n isDismissed: dismissed,\n }),\n [handleDismiss, dismissed],\n )\n\n return (\n <CommentsOnboardingContext.Provider value={ctxValue}>\n {children}\n </CommentsOnboardingContext.Provider>\n )\n}\n","import {CommentsUpsellContext} from 'sanity/_singletons'\n\nimport {getDialogPropsFromContext, useUpsellContext} from '../../../hooks/useUpsellContext'\nimport {UpsellDialog} from '../../../studio/upsell/UpsellDialog'\n\n/**\n * @beta\n * @hidden\n */\nexport function CommentsUpsellProvider(props: {children: React.ReactNode}) {\n const contextValue = useUpsellContext({\n dataUri: '/journey/comments',\n feature: 'comments',\n })\n\n return (\n <CommentsUpsellContext.Provider value={contextValue}>\n {props.children}\n <UpsellDialog {...getDialogPropsFromContext(contextValue)} />\n </CommentsUpsellContext.Provider>\n )\n}\n","import {type LayoutProps} from '../../../config/studio/types'\nimport {useFeatureEnabled, FEATURES} from '../../../hooks/useFeatureEnabled'\nimport {AddonDatasetProvider} from '../../../studio/addonDataset/AddonDatasetProvider'\nimport {CommentsOnboardingProvider} from '../../context/onboarding/CommentsOnboardingProvider'\nimport {CommentsUpsellProvider} from '../../context/upsell/CommentsUpsellProvider'\n\nexport function CommentsStudioLayout(props: LayoutProps) {\n const {enabled, isLoading} = useFeatureEnabled(FEATURES.studioComments)\n const children = props.renderDefault(props)\n\n return (\n <AddonDatasetProvider>\n <CommentsOnboardingProvider>\n {!enabled && !isLoading ? (\n <CommentsUpsellProvider>{children}</CommentsUpsellProvider>\n ) : (\n children\n )}\n </CommentsOnboardingProvider>\n </AddonDatasetProvider>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CommentsStudioLayout-BgZnhfnu.js","names":["ReactNode","useCallback","useMemo","useState","CommentsOnboardingContext","CommentsOnboardingContextValue","VERSION","LOCAL_STORAGE_KEY","setLocalStorage","value","window","localStorage","setItem","JSON","stringify","getLocalStorage","getItem","parse","CommentsOnboardingProviderProps","children","CommentsOnboardingProvider","props","$","_c","t0","Symbol","for","dismissed","setDismissed","t1","handleDismiss","t2","isDismissed","ctxValue","t3","CommentsUpsellContext","getDialogPropsFromContext","useUpsellContext","UpsellDialog","CommentsUpsellProvider","props","$","_c","t0","Symbol","for","dataUri","feature","contextValue","t1","children","t2","t3","t4","LayoutProps","useFeatureEnabled","FEATURES","AddonDatasetProvider","CommentsOnboardingProvider","CommentsUpsellProvider","CommentsStudioLayout","props","$","_c","enabled","isLoading","studioComments","t0","renderDefault","children","t1","t2"],"sources":["../src/core/comments/context/onboarding/CommentsOnboardingProvider.tsx","../src/core/comments/context/upsell/CommentsUpsellProvider.tsx","../src/core/comments/plugin/studio-layout/CommentsStudioLayout.tsx"],"sourcesContent":["import {type ReactNode, useCallback, useMemo, useState} from 'react'\nimport {CommentsOnboardingContext} from 'sanity/_singletons'\n\nimport {type CommentsOnboardingContextValue} from './types'\n\nconst VERSION = 1\nconst LOCAL_STORAGE_KEY = `sanityStudio:comments:inspector:onboarding:dismissed:v${VERSION}`\n\nconst setLocalStorage = (value: boolean) => {\n try {\n window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(value))\n } catch {\n // Fail silently\n }\n}\n\nconst getLocalStorage = (): boolean => {\n try {\n const value = window.localStorage.getItem(LOCAL_STORAGE_KEY)\n return value ? JSON.parse(value) : false\n } catch {\n return false\n }\n}\n\ninterface CommentsOnboardingProviderProps {\n children: ReactNode\n}\n\nexport function CommentsOnboardingProvider(props: CommentsOnboardingProviderProps) {\n const {children} = props\n const [dismissed, setDismissed] = useState<boolean>(getLocalStorage())\n\n const handleDismiss = useCallback(() => {\n setDismissed(true)\n setLocalStorage(true)\n }, [setDismissed])\n\n const ctxValue = useMemo(\n (): CommentsOnboardingContextValue => ({\n setDismissed: handleDismiss,\n isDismissed: dismissed,\n }),\n [handleDismiss, dismissed],\n )\n\n return (\n <CommentsOnboardingContext.Provider value={ctxValue}>\n {children}\n </CommentsOnboardingContext.Provider>\n )\n}\n","import {CommentsUpsellContext} from 'sanity/_singletons'\n\nimport {getDialogPropsFromContext, useUpsellContext} from '../../../hooks/useUpsellContext'\nimport {UpsellDialog} from '../../../studio/upsell/UpsellDialog'\n\n/**\n * @beta\n * @hidden\n */\nexport function CommentsUpsellProvider(props: {children: React.ReactNode}) {\n const contextValue = useUpsellContext({\n dataUri: '/journey/comments',\n feature: 'comments',\n })\n\n return (\n <CommentsUpsellContext.Provider value={contextValue}>\n {props.children}\n <UpsellDialog {...getDialogPropsFromContext(contextValue)} />\n </CommentsUpsellContext.Provider>\n )\n}\n","import {type LayoutProps} from '../../../config/studio/types'\nimport {useFeatureEnabled, FEATURES} from '../../../hooks/useFeatureEnabled'\nimport {AddonDatasetProvider} from '../../../studio/addonDataset/AddonDatasetProvider'\nimport {CommentsOnboardingProvider} from '../../context/onboarding/CommentsOnboardingProvider'\nimport {CommentsUpsellProvider} from '../../context/upsell/CommentsUpsellProvider'\n\nexport function CommentsStudioLayout(props: LayoutProps) {\n const {enabled, isLoading} = useFeatureEnabled(FEATURES.studioComments)\n const children = props.renderDefault(props)\n\n return (\n <AddonDatasetProvider>\n <CommentsOnboardingProvider>\n {!enabled && !isLoading ? (\n <CommentsUpsellProvider>{children}</CommentsUpsellProvider>\n ) : (\n children\n )}\n </CommentsOnboardingProvider>\n </AddonDatasetProvider>\n )\n}\n"],"mappings":"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"}