sanity 6.2.0-next.2 → 6.2.0-next.20

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 (39) hide show
  1. package/lib/_chunks-dts/ActiveWorkspaceMatcherContext.d.ts +71 -4
  2. package/lib/_chunks-dts/index.d.ts +11 -3
  3. package/lib/_chunks-es/LiveQueries.js.map +1 -1
  4. package/lib/_chunks-es/MenuGroup.js.map +1 -1
  5. package/lib/_chunks-es/PostMessagePreviewSnapshots.js.map +1 -1
  6. package/lib/_chunks-es/PostMessageSchema.js.map +1 -1
  7. package/lib/_chunks-es/PresentationToolGrantsCheck.js +4 -8
  8. package/lib/_chunks-es/PresentationToolGrantsCheck.js.map +1 -1
  9. package/lib/_chunks-es/QRCodeSVG.js.map +1 -1
  10. package/lib/_chunks-es/index.js.map +1 -1
  11. package/lib/_chunks-es/index4.js.map +1 -1
  12. package/lib/_chunks-es/presentation.js.map +1 -1
  13. package/lib/_chunks-es/resources.js +16 -0
  14. package/lib/_chunks-es/resources.js.map +1 -1
  15. package/lib/_chunks-es/resources2.js +1 -0
  16. package/lib/_chunks-es/resources2.js.map +1 -1
  17. package/lib/_chunks-es/resources3.js +1 -0
  18. package/lib/_chunks-es/resources3.js.map +1 -1
  19. package/lib/_chunks-es/resources4.js +1 -0
  20. package/lib/_chunks-es/resources4.js.map +1 -1
  21. package/lib/_chunks-es/resources5.js +1 -0
  22. package/lib/_chunks-es/resources5.js.map +1 -1
  23. package/lib/_chunks-es/resources6.js +1 -0
  24. package/lib/_chunks-es/resources6.js.map +1 -1
  25. package/lib/_chunks-es/resources7.js +1 -0
  26. package/lib/_chunks-es/resources7.js.map +1 -1
  27. package/lib/_chunks-es/structureTool.js +347 -134
  28. package/lib/_chunks-es/structureTool.js.map +1 -1
  29. package/lib/_chunks-es/version.js +2 -2
  30. package/lib/_singletons.d.ts +1 -1
  31. package/lib/_singletons.js +0 -2
  32. package/lib/_singletons.js.map +1 -1
  33. package/lib/index.d.ts +2 -2
  34. package/lib/index.js +942 -844
  35. package/lib/index.js.map +1 -1
  36. package/lib/router.js +0 -1
  37. package/lib/router.js.map +1 -1
  38. package/lib/structure.js.map +1 -1
  39. package/package.json +17 -24
@@ -763,6 +763,20 @@ declare function collate<T extends {
763
763
  }>(documents: T[]): CollatedHit<T>[];
764
764
  /** @internal */
765
765
  declare function removeDupes(documents: SanityDocumentLike[]): SanityDocumentLike[];
766
+ declare const VARIANT_DOCUMENT_TYPE: 'system.variant';
767
+ declare const VARIANT_DOCUMENTS_PATH: '_.variants';
768
+ interface SystemVariant extends SanityDocument {
769
+ _type: typeof VARIANT_DOCUMENT_TYPE;
770
+ _id: `${typeof VARIANT_DOCUMENTS_PATH}.${string}`;
771
+ name?: string;
772
+ conditions: Record<string, string>;
773
+ priority: number;
774
+ metadata?: {
775
+ title?: string;
776
+ description?: PortableTextBlock[];
777
+ [key: string]: unknown;
778
+ };
779
+ }
766
780
  /**
767
781
  * @beta
768
782
  */
@@ -783,6 +797,7 @@ type SelectedPerspective = TargetPerspective;
783
797
  * @beta
784
798
  */
785
799
  type PerspectiveStack = ExtractArray<ClientPerspective>;
800
+ type PerspectiveBundle = 'published' | 'drafts' | (string & {});
786
801
  /**
787
802
  * @beta
788
803
  */
@@ -800,6 +815,16 @@ interface PerspectiveContextValue {
800
815
  */
801
816
  perspectiveStack: PerspectiveStack;
802
817
  excludedPerspectives: string[];
818
+ /**
819
+ * Resolved variant definition; undefined = default (all users) or still loading
820
+ * @beta
821
+ * @internal
822
+ */
823
+ selectedVariant: SystemVariant | undefined;
824
+ /**
825
+ * The selected bundle, either `published`, `drafts` or a release id or the bundle id for anonymous bundles like agent documents.
826
+ */
827
+ bundle: PerspectiveBundle;
803
828
  }
804
829
  /**
805
830
  * @internal
@@ -1197,7 +1222,7 @@ interface VersionInfoDocumentStub {
1197
1222
  _rev: string;
1198
1223
  _createdAt: string;
1199
1224
  _updatedAt: string;
1200
- _system?: DocumentSystem;
1225
+ _system: DocumentSystem;
1201
1226
  }
1202
1227
  interface DocumentPerspectiveProps {
1203
1228
  documentId: string;
@@ -7681,6 +7706,16 @@ declare function getItemKeySegment(arrayItem: unknown): KeyedSegment | undefined
7681
7706
  declare function isEmptyObject(item: unknown): boolean;
7682
7707
  /** @internal */
7683
7708
  type FIXME = any;
7709
+ /**
7710
+ * Resolves the sticky variant short id to a variant definition.
7711
+ * Returns undefined while loading (empty byId) or when the variant does not exist.
7712
+ *
7713
+ * @internal
7714
+ */
7715
+ declare function getSelectedVariant(options: {
7716
+ selectedVariantName: string | undefined;
7717
+ variantsById: Map<string, SystemVariant>;
7718
+ }): SystemVariant | undefined;
7684
7719
  /**
7685
7720
  * @internal
7686
7721
  */
@@ -7722,10 +7757,12 @@ declare const ReleasesNav: ComponentType<Props$5>;
7722
7757
  declare function PerspectiveProvider({
7723
7758
  children,
7724
7759
  selectedPerspectiveName,
7760
+ selectedVariantName,
7725
7761
  excludedPerspectives
7726
7762
  }: {
7727
7763
  children: React.ReactNode;
7728
7764
  selectedPerspectiveName: 'published' | ReleaseId | undefined;
7765
+ selectedVariantName?: string;
7729
7766
  excludedPerspectives?: string[];
7730
7767
  }): import("react").JSX.Element;
7731
7768
  interface ExcludedPerspectiveValue {
@@ -8648,6 +8685,26 @@ declare function useThrottledCallback(callback: (...args: any[]) => any, wait: n
8648
8685
  * @internal
8649
8686
  */
8650
8687
  declare function useUnique<ValueType>(value: ValueType): ValueType;
8688
+ /**
8689
+ * Uses the _system field to check if a version is a published version
8690
+ * @beta
8691
+ */
8692
+ declare function isPublishedVersion(version: VersionInfoDocumentStub): boolean;
8693
+ /**
8694
+ * Uses the _system field to check if a version is a draft version
8695
+ * @beta
8696
+ */
8697
+ declare function isDraftVersion(version: VersionInfoDocumentStub): boolean;
8698
+ /**
8699
+ * Uses the _system field to check if a version is a variant version
8700
+ * @beta
8701
+ */
8702
+ declare function isVariantVersion(version: VersionInfoDocumentStub): boolean;
8703
+ /**
8704
+ * Uses the _system field to check if a version is a release version
8705
+ * @beta
8706
+ */
8707
+ declare function isReleaseVersion(version: VersionInfoDocumentStub): boolean;
8651
8708
  /**
8652
8709
  * RxJS operator that measures the time from subscription to the first emission.
8653
8710
  * Calls `onMeasured` once with the elapsed duration in milliseconds and the emitted value.
@@ -9498,6 +9555,13 @@ declare const useDocumentLimitsUpsellContext: () => DocumentLimitUpsellContextVa
9498
9555
  * @internal
9499
9556
  */
9500
9557
  declare const isDocumentLimitError: (error: unknown) => boolean;
9558
+ /**
9559
+ * React hook to set the variant in the router.
9560
+ * Do not use in production, this can change in any release.
9561
+ * @internal
9562
+ * @beta
9563
+ */
9564
+ declare function useSetVariant(): (variant: SystemVariant | undefined) => void;
9501
9565
  /**
9502
9566
  * @internal
9503
9567
  */
@@ -9525,9 +9589,10 @@ declare function useArchivedReleases(): {
9525
9589
  loading: boolean;
9526
9590
  };
9527
9591
  /**
9528
- * Takes a document id, and returns information about what other versions of the document currently exists
9592
+ * Takes a document id, and returns information about what other versions of the document currently exists.
9593
+ *
9529
9594
  * @param documentId - The document id. Should be the published id
9530
- * @internal
9595
+ * @deprecated Use {@link useDocumentVersions} instead.
9531
9596
  */
9532
9597
  declare function useDocumentVersionInfo(documentId: string): {
9533
9598
  isLoading: boolean;
@@ -11683,6 +11748,7 @@ interface PrimitiveInputElementProps {
11683
11748
  'id': string;
11684
11749
  'readOnly': boolean;
11685
11750
  'placeholder'?: string;
11751
+ 'autoComplete'?: string;
11686
11752
  'onChange': FormEventHandler;
11687
11753
  'onFocus': FocusEventHandler;
11688
11754
  'onBlur': FocusEventHandler;
@@ -11699,6 +11765,7 @@ interface ComplexElementProps {
11699
11765
  'onBlur': FocusEventHandler;
11700
11766
  'ref': MutableRefObject<any>;
11701
11767
  'aria-describedby': string | undefined;
11768
+ 'autoComplete'?: string;
11702
11769
  'style': Pick<CSSProperties$1, 'anchorName'>;
11703
11770
  }
11704
11771
  /**
@@ -16683,4 +16750,4 @@ interface ActiveWorkspaceMatcherContextValue {
16683
16750
  activeWorkspace: WorkspaceSummary;
16684
16751
  setActiveWorkspace: (workspaceName: string) => void;
16685
16752
  }
16686
- export { NewDocumentCreationContext as $, VersionChip as $C, useChangeIndicatorsReporter as $S, FormIncPatch as $_, snapshotPair as $a, LocaleResourceBundle as $b, dec as $c, asLoadable as $d, DocumentBadgeComponent as $f, CommentInput as $g, useUserColorManager as $h, TemplatePermissionsResult as $i, PreviewCard as $l, DiffComponent as $m, ArrayOfPrimitiveOptionsInput as $n, FormBuilderInputComponentMap as $o, ValueError as $p, FieldPresenceData as $r, PortableTextPluginsProps as $s, useFormBuilder as $t, setAtPath as $u, SearchSort as $v, ConnectionStatusStoreOptions as $w, UseManageFavoriteProps as $x, CommentCreatePayload as $y, ComposableOption as A, ApiConfig as AC, ResetEvent as AS, StudioProps as A_, createDocumentStore as Aa, TranslationProps as Ab, defaultRenderInput as Ac, IncompatibleTypeError as Ad, createHookFromObservableFactory as Af, ScrollContainerProps as Ag, EventsStore as Ah, useProject as Ai, CircularProgress as Al, ChangesError as Am, SelectInput as An, prepareForPreview as Ao, FIXME as Ap, FormFieldValidation as Ar, PrimitiveInputElementProps as As, DocumentInspectorProps as At, useReleasesIds as Au, SearchFilterDefinition as Av, systemBundles as Aw, defaultTemplatesForSchema as Ax, validateBasePaths as Ay, DocumentBadgesResolver as B, ObserveDocumentAvailabilityFn as BC, SnapshotEvent as BS, StudioManifest as B_, InitialValueSuccessMsg as Ba, useI18nText as Bb, useParseErrorForPath as Bc, getDocumentIdForCanvasLink as Bd, MentionUserContextValue as Bf, buildCommentRangeDecorations as Bg, isDeleteDocumentGroupEvent as Bh, DocumentPresence as Bi, DetailPreview as Bl, getAnnotationColor as Bm, ImageUrlBuilder$1 as Bn, PreviewLoader as Bo, pathToString as Bp, FormFieldHeaderText as Br, RenderPreviewCallback as Bs, DocumentFieldActionItem as Bt, useDocumentLimitsUpsellContext as Bu, SearchOperatorBuilder as Bv, CommandListHandle as Bw, SyncState as Bx, WorkspaceLike as By, ActionComponent as C, VersionInfoDocumentStub as CC, ListenerEvent as CS, useAgentVersionDisplay as CT, StudioLayoutComponent as C_, isNewDocument as Ca, CommentsAuthoringPathProvider as Cb, FormProviderProps as Cc, ObjectFormNode as Cd, getReferencePaths as Cf, ConsentStatus as Cg, CreateDocumentVersionEvent as Ch, useHistoryStore as Ci, useRovingFocus as Cl, DiffErrorBoundary as Cm, TelephoneInput as Cn, WithVersion as Co, usePerspective as Cp, useDocumentDivergences as Cr, InputProps as Cs, ReleaseActionDescription as Ct, RELEASES_STUDIO_CLIENT_OPTIONS as Cu, SearchDialog as Cv, isDraftId as Cw, DEFAULT_MAX_RECURSION_DEPTH as Cx, MatchWorkspaceOptions as Cy, AsyncConfigPropertyReducer as D, DocumentPreviewStoreOptions as DC, MutationEvent as DS, createSanityMediaLibraryFileSource as DT, StudioAnnouncementsContextValue as D_, DocumentStore as Da, validateDocument as Db, defaultRenderBlock as Dc, ArrayItemError as Dd, EMPTY_OBJECT as Df, ScrollContextValue as Dg, DocumentGroupEvent as Dh, useRenderingContextStore as Di, RelativeTime as Dl, DiffCardProps as Dm, StringInput as Dn, createBufferedDocument as Do, ReleasesNav as Dp, FormInput as Dr, OnPathFocusPayload as Ds, DocumentInspector as Dt, getReleaseIdFromReleaseDocumentId as Du, useSearchState as Dv, isVersionId as Dw, resolveInitialValue as Dx, WorkspacesProviderProps as Dy, AsyncComposableOption as E, DocumentPreviewStore as EC, IdPair as ES, EditPortal as ET, StudioAnnouncementsDialog as E_, useDocumentType as Ea, ValidateDocumentOptions as Eb, defaultRenderAnnotation as Ec, StringFormNode as Ed, EMPTY_ARRAY as Ef, isProd as Eg, DeleteDocumentVersionEvent as Eh, useProjectStore as Ei, Resizable as El, DiffCard as Em, TagsArrayInputProps as En, BufferedDocumentWrapper as Eo, PerspectiveProvider as Ep, FormRow as Er, OnPasteFn as Es, FormComponents as Et, getReleaseTone as Eu, useSearchMaxFieldDepth as Ev, isSystemBundleName as Ew, resolveInitialObjectValue as Ex, WorkspacesProvider as Ey, DocumentActionsContext as F, DraftsModelDocument as FC, DocumentMutationEvent as FS, uploadSchema as F_, getInitialValueStream as Fa, useTranslation as Fb, ReferenceInputOptions as Fc, UndeclaredMembersError as Fd, LegacyThemeTints as Ff, AutoCollapseMenu as Fg, UnpublishDocumentEvent as Fh, ProjectOrganizationData as Fi, BlockPreview as Fl, ChangeBreadcrumb as Fm, PortableTextMemberItem as Fn, useValuePreview as Fo, isEmptyObject as Fp, FormFieldValidationStatusProps as Fr, RenderArrayOfPrimitivesItemCallback as Fs, defineDocumentFieldAction as Ft, RELEASES_INTENT as Fu, I18nSearchOperatorDescriptionKey as Fv, CommandList as Fw, TemplateFieldDefinition as Fx, useVisibleWorkspaces as Fy, DocumentLanguageFilterContext as G, Previewable as GC, ConnectionState as GS, CopyOptions as G_, emitOperation as Ga, LocaleProvider as Gb, useFormCallbacks as Gc, measureFirstMatch as Gd, useScheduledDraftDocument as Gf, CommentsEnabledContextValue as Gg, isUnpublishDocumentEvent as Gh, UserSessionPair as Gi, CompactPreviewProps as Gl, ArrayDiff$1 as Gm, DateTimeInputProps as Gn, isBooleanInputProps as Go, emptyValuesByType as Gp, PresenceScopeProps as Gr, ObjectItemProps as Gs, DocumentFieldActionsResolver as Gt, ExpandFieldSetOperation as Gu, ValuelessSearchOperatorBuilder as Gv, BetaBadgeProps as Gw, RelativeTimeOptions as Gx, CommentsSelectedPathContextValue as Gy, DocumentInspectorContext as H, ObservePathsFn as HC, UseDateTimeFormatOptions as HS, CopyPasteProvider as H_, remoteSnapshots as Ha, defineLocaleResourceBundle as Hb, useReportParseError as Hc, useCanvasCompanionDoc as Hd, TasksEnabledContextValue as Hf, useCommentsSelectedPath as Hg, isEditDocumentVersionEvent as Hh, PresenceLocation as Hi, DefaultPreview as Hl, visitDiff as Hm, EmailInputProps as Hn, isArrayOfBlocksInputProps as Ho, stringToPath as Hp, FormField as Hr, BaseItemProps as Hs, DocumentFieldActionProps as Ht, useDivergenceNavigator as Hu, SearchOperatorInput as Hv, CommandListProps as Hw, useStudioUrl as Hx, ActiveWorkspaceMatcherProps as Hy, DocumentActionsResolver as I, DraftsModelDocumentAvailability as IC, DocumentRebaseEvent as IS, LiveManifestRegisterProvider as I_, InitialValueErrorMsg as Ia, useCurrentLocale as Ib, ReferenceInputOptionsProvider as Ic, FormFieldGroup as Id, useDocumentPreviewValues as If, CollapseMenu as Ig, UnscheduleDocumentVersionEvent as Ih, ProjectStore as Ii, BlockImagePreview as Il, useAnnotationColor as Im, UpdateReadOnlyPlugin as In, unstable_useObserveDocument as Io, normalizeIndexSegment as Ip, FieldStatusProps as Ir, RenderBlockCallback as Is, DocumentFieldAction as It, DEFAULT_ANNOTATIONS as Iu, I18nSearchOperatorNameKey as Iv, CommandListElementType as Iw, TemplateItem as Ix, VisibleWorkspacesContextValue as Iy, DocumentPluginOptions as J, VersionInlineBadge as JC, useClient as JS, PasteOptions as J_, Operation as Ja, Locale as Jb, PatchMsg as Jc, userHasRole as Jd, useSingleDocRelease as Jf, hasCommentMessageValue as Jg, UserColorManagerProvider as Jh, createUserStore as Ji, PortableTextPreviewLayoutKey as Jl, ChangeNode as Jm, CrossDatasetReferencePreview as Jn, isObjectItemProps as Jo, isGroupChange as Jp, FieldPresence as Jr, BlockDecoratorProps as Js, decodePath as Jt, SetActiveGroupOperation as Ju, createSearch as Jv, CONNECTING as Jw, useReferringDocuments as Jx, CommentsIntentProviderProps as Jy, DocumentLanguageFilterResolver as K, PreviewableType as KC, useConnectionState as KS, CopyPasteContextType as K_, operationEvents as Ka, LocaleProviderBase as Kb, MutationPatchMsg as Kc, useUnique as Kd, usePausedScheduledDraft as Kf, useComments as Kg, isUnscheduleDocumentVersionEvent as Kh, UserStore as Ki, GeneralDocumentListLayoutKey as Kl, ArrayItemMetadata as Km, DateInput as Kn, isNumberInputProps as Ko, isAddedItemDiff as Kp, PresenceOverlay as Kr, PrimitiveItemProps as Ks, DocumentFieldActionsResolverContext as Kt, ExpandOperation as Ku, ValuelessSearchOperatorParams as Kv, CorsOriginError as Kw, useRelativeTime as Kx, CommentsSelectedPathProvider as Ky, DocumentActionsVersionType as L, FieldName as LC, DocumentRemoteMutationEvent as LS, GenerateStudioManifestOptions as L_, InitialValueLoadingMsg as La, useLocale as Lb, TemplateOption as Lc, ProvenanceDiffAnnotation as Ld, TasksUpsellContextValue as Lf, CollapseMenuProps as Lg, UpdateLiveDocumentEvent as Lh, PresenceStore as Li, BlockImagePreviewProps as Ll, useDiffAnnotationColor as Lm, ObjectInput as Ln, useUnstableObserveDocument as Lo, normalizeIndexTupleSegment as Lp, FormFieldStatus as Lr, RenderFieldCallback as Ls, DocumentFieldActionDivider as Lt, DEFAULT_DECORATORS as Lu, OperatorButtonValueComponentProps as Lv, CommandListGetItemDisabledCallback as Lw, TemplateParameter as Lx, VisibleWorkspacesProvider as Ly, ConfigContext$1 as M, AvailabilityResponse as MC, WelcomeEvent as MS, SourceProviderProps as M_, ListenQueryParams as Ma, usEnglishLocale as Mb, defaultRenderPreview as Mc, MissingKeysError as Md, defaultTheme as Mf, CollapseMenuButton as Mg, HistoryClearedEvent as Mh, ProjectData as Mi, TemplatePreviewProps as Ml, ChangeResolverProps as Mm, CreateButton as Mn, getPreviewStateObservable as Mo, getItemKey as Mp, FormFieldValidationInfo as Mr, StringInputProps as Ms, defineDocumentInspector as Mt, useDocumentVersionInfo as Mu, defineSearchFilterOperators as Mv, DocumentVariantType as Mw, InitialValueTemplateItem as Mx, validateWorkspaces as My, ConfigPropertyReducer as N, DocumentAvailability as NC, CommitFunction as NS, useSource as N_, listenQuery as Na, UseTranslationOptions as Nb, EditReferenceLinkComponentProps as Nc, MixedArrayError as Nd, buildLegacyTheme as Nf, CollapseMenuButtonProps as Ng, PublishDocumentVersionEvent as Nh, ProjectDatasetData as Ni, InlinePreview as Nl, ChangeList as Nm, CreateReferenceOption as Nn, getPreviewPaths as No, getItemKeySegment as Np, FormFieldValidationWarning as Nr, RenderAnnotationCallback as Ns, initialDocumentFieldActions as Nt, useArchivedReleases as Nu, SearchOperatorType as Nv, getDocumentVariantType as Nw, Template as Nx, useWorkspaces as Ny, BaseActionDescription as O, ObserveForPreviewFn as OC, PendingMutationsEvent as OS, createSanityMediaLibraryImageSource as OT, StudioAnnouncementsCard as O_, DocumentStoreOptions as Oa, Translate as Ob, defaultRenderField as Oc, DuplicateKeysError as Od, LoadingTuple as Of, ScrollEventHandler as Og, DocumentVersionEventType as Oh, useUserStore as Oi, RelativeTimeProps as Ol, TIMELINE_ITEM_I18N_KEY_MAPPING as Om, SlugInput as On, CommitRequest as Oo, PerspectiveNotWriteableReason as Op, FormInputAbsolutePathArg as Or, PasteData$1 as Os, DocumentInspectorComponent as Ot, LATEST as Ou, SearchProvider as Ov, newDraftFrom as Ow, resolveInitialValueForType as Ox, WorkspacesContextValue as Oy, DefaultPluginsWorkspaceOptions as P, DocumentStackAvailability as PC, CommittedEvent as PS, renderStudio as P_, InitialValueOptions as Pa, UseTranslationResponse as Pb, EditReferenceOptions as Pc, TypeAnnotationMismatchError as Pd, LegacyThemeProps as Pf, CommonProps as Pg, ScheduleDocumentVersionEvent as Ph, ProjectGrants as Pi, InlinePreviewProps as Pl, ChangeListProps as Pm, PortableTextInput as Pn, unstable_useValuePreview as Po, getValueAtPath as Pp, FormFieldValidationStatus as Pr, RenderArrayOfObjectsItemCallback as Ps, documentFieldActionsReducer as Pt, useActiveReleases as Pu, operatorDefinitions as Pv, ContextMenuButton as Pw, TemplateArrayFieldDefinition as Px, evaluateWorkspaceHidden as Py, MissingConfigFile as Q, ReleaseAvatarIcon as QC, useChangeIndicatorsReportedValues as QS, FormDiffMatchPatch as Q_, DocumentVersionSnapshots as Qa, LocalePluginOptions as Qb, SANITY_PATCH_TYPE as Qc, LoadingState as Qd, ScheduledBadge as Qf, CommentInputContextValue as Qg, useUserColor as Qh, TemplatePermissionsOptions as Qi, PreviewProps as Ql, Diff$1 as Qm, ArrayOfPrimitivesFunctions as Qn, FormBuilderFilterFieldFn as Qo, DocumentChangeContextInstance as Qp, FieldPresenceWithOverlay as Qr, MarkdownConfig as Qs, toMutationPatches as Qt, useFormState as Qu, SearchOptions as Qv, ConnectionStatusStore as Qw, useNumberFormat as Qx, CommentContext as Qy, DocumentAskToEditEnabledContext as R, Id as RC, MutationPayload as RS, generateStudioManifest as R_, InitialValueMsg as Ra, useGetI18nText as Rb, useReferenceInputOptions as Rc, ALL_FIELDS_GROUP as Rd, TasksContextValue as Rf, buildTextSelectionFromFragment as Rg, isCreateDocumentVersionEvent as Rh, SESSION_ID as Ri, MediaPreview as Rl, DiffVisitor as Rm, NumberInput as Rn, SanityDefaultPreview as Ro, normalizeKeySegment as Rp, FormFieldSet as Rr, RenderInputCallback as Rs, DocumentFieldActionGroup as Rt, ReleaseDocument$1 as Ru, OperatorInputComponentProps as Rv, CommandListGetItemKeyCallback as Rw, TemplateReferenceTarget as Rx, getNamelessWorkspaceIdentifier as Ry, useMiddlewareComponents as S, useDocumentVersions as SC, LatencyReportEvent as SS, AgentVersionDisplay as ST, StudioLayout as S_, selectUpstreamVersion as Sa, CommentsAuthoringPathContextValue as Sb, FormProvider as Sc, ObjectArrayFormNode as Sd, globalScope as Sf, useTelemetryConsent as Sg, BaseEvent as Sh, useGrantsStore as Si, StatusButtonProps as Sl, FieldPreviewComponent as Sm, TextInputProps as Sn, RemoteSnapshotVersionEvent as So, useSetPerspective as Sp, DivergencesProvider as Sr, InputOnSelectFileFunctionProps as Ss, ReleaseActionComponent as St, isReleaseScheduledOrScheduling as Su, StudioLogo as Sv, isDraft as Sw, useTemplates as Sx, useActiveWorkspace as Sy, AssetSourceResolver as T, MetadataWrapper as TC, getPairListener as TS, EnhancedObjectDialog as TT, isValidAnnouncementRole as T_, DocumentTypeResolveState as Ta, useValidationStatus as Tb, FormBuilderProps as Tc, PrimitiveFormNode as Td, formatRelativeLocale as Tf, isDev as Tg, DeleteDocumentGroupEvent as Th, usePresenceStore as Ti, RovingFocusProps as Tl, DiffErrorBoundaryState as Tm, TagsArrayInput as Tn, BufferedDocumentEvent as To, useExcludedPerspective as Tp, FormCell as Tr, ObjectInputProps as Ts, ReleaseActionsContext as Tt, isGoingToUnpublish as Tu, PartialIndexSettings as Tv, isSystemBundle as Tw, isBuilder as Tx, matchWorkspace as Ty, DocumentInspectorsResolver as U, PreparedSnapshot as UC, useDateTimeFormat as US, useCopyPaste as U_, OperationError as Ua, defineLocalesResources as Ub, FormCallbacksProvider as Uc, SANITY_VERSION as Ud, DEFAULT_STUDIO_CLIENT_OPTIONS as Uf, CommentsOnboardingContextValue as Ug, isPublishDocumentVersionEvent as Uh, Session as Ui, DefaultPreviewProps as Ul, Annotation as Um, getCalendarLabels as Un, isArrayOfObjectsInputProps as Uo, resolveDiffComponent as Up, FormFieldProps as Ur, ItemProps as Us, DocumentFieldActionStatus as Ut, ParseError as Uu, SearchOperatorParams as Uv, CommandListRenderItemCallback as Uw, useSchema as Ux, RouterHistory as Uy, DocumentCommentsEnabledContext as V, ObserveDocumentTypeFromIdFn as VC, useDialogStack as VS, StudioWorkspaceManifest as V_, validation$1 as Va, defineLocale as Vb, useParseErrors as Vc, useNavigateToCanvasDoc as Vd, IsLastPaneProvider as Vf, useCommentsTelemetry as Vg, isDeleteDocumentVersionEvent as Vh, GlobalPresence as Vi, DetailPreviewProps as Vl, getDiffAtPath as Vm, EmailInput as Vn, Preview as Vo, pathsAreEqual as Vp, FormFieldHeaderTextProps as Vr, RenderPreviewCallbackProps as Vs, DocumentFieldActionNode as Vt, DivergenceNavigator as Vu, SearchOperatorButtonValue as Vv, CommandListItemContext as Vw, useSyncState as Vx, ActiveWorkspaceMatcher as Vy, DocumentLanguageFilterComponent as W, PreviewPath as WC, useDataset as WS, BaseOptions as W_, OperationSuccess as Wa, removeUndefinedLocaleResources as Wb, FormCallbacksValue as Wc, measureFirstEmission as Wd, useScheduledDraftsEnabled as Wf, useCommentsEnabled as Wg, isScheduleDocumentVersionEvent as Wh, Status as Wi, CompactPreview as Wl, AnnotationDetails as Wm, DateTimeInput as Wn, isArrayOfPrimitivesInputProps as Wo, useDocumentChange as Wp, PresenceScope as Wr, ObjectItem as Ws, DocumentFieldActionTone as Wt, mergeParseErrors as Wu, SearchValueFormatterContext as Wv, BetaBadge as Ww, useReviewChanges as Wx, CommentsSelectedPath as Wy, GroupableActionDescription as X, ReleaseTitle as XC, CommentDeleteDialog as XS, PatchEvent as X_, OperationImpl as Xa, LocaleDefinition as Xb, RebasePatchMsg as Xc, LoadableState as Xd, createSchema as Xf, COMMENTS_INSPECTOR_NAME as Xg, UserColorManagerOptions as Xh, KeyValueStore as Xi, PreviewLayoutKey as Xl, Chunk as Xm, UniversalArrayInput as Xn, ArrayInputFunctionsProps as Xo, isUnchangedDiff as Xp, FieldPresenceInnerProps as Xr, BlockProps as Xs, MutationPatch as Xt, FormState as Xu, getSearchableTypes as Xv, ConnectingStatus as Xw, useProjectId as Xx, CommentsProvider as Xy, FormBuilderComponentResolverContext as Y, getVersionInlineBadge as YC, CommentDisabledIcon as YS, SanityClipboardItem as Y_, OperationArgs as Ya, LocaleConfigContext as Yb, PatchMsgSubscriber as Yc, ErrorState as Yd, getSchemaTypeTitle as Yf, isTextSelectionComment as Yg, UserColorManagerProviderProps as Yh, createKeyValueStore as Yi, PreviewComponent as Yl, ChangeTitlePath as Ym, BooleanInput as Yn, isStringInputProps as Yo, isRemovedItemDiff as Yp, FieldPresenceInner as Yr, BlockListItemProps as Ys, encodePath as Yt, getExpandOperations as Yu, isPerspectiveRaw as Yv, ConnectedStatus as Yw, useReconnectingToast as Yx, CommentsEnabledProvider as Yy, MediaLibraryConfig as Z, ReleaseAvatar as ZC, ChangeIndicatorsTracker as ZS, FormDecPatch as Z_, OperationsAPI as Za, LocaleNestedResource as Zb, createPatchChannel as Zc, LoadedState as Zd, SchedulesContext as Zf, CommentInlineHighlightSpan as Zg, createUserColorManager as Zh, KeyValueStoreValue as Zi, PreviewMediaDimensions as Zl, ChunkType as Zm, ArrayOfPrimitivesInput as Zn, FormBuilderCustomMarkersComponent as Zo, noop as Zp, FieldPresenceProps as Zr, BlockStyleProps as Zs, fromMutationPatches as Zt, UseFormStateOptions as Zu, SearchFactoryOptions as Zv, ConnectionStatus as Zw, UseNumberFormatOptions as Zx, CommentBaseCreatePayload as Zy, createDefaultIcon as _, useVersionOperations as _C, editState$1 as _S, LoginComponentProps as _T, UpsellDialogViewed as __, GrantsStore as _a, CommentsListBreadcrumbItem as _b, UploaderResolver as _c, DocumentFormNode as _d, isTruthy as _f, TagValue as _g, FieldValueError as _h, useDocumentPresence as _i, ToastParams$1 as _l, DiffStringSegment as _m, ArrayOfObjectsInputMember as _n, Transaction as _o, DuplicateDocumentActionComponent as _p, GetFormValueProvider as _r, ArrayOfPrimitivesInputProps as _s, Workspace as _t, DocumentStatus as _u, NavbarAction as _v, getIdPair as _w, UseUnitFormatterOptions as _x, StudioTheme as _y, resolveSchemaTypes as a, useTrackerStore as aC, FormDocumentValue as aS, isCookielessCompatibleLoginMethod as aT, WorkspaceLoaderBoundary as a_, grantsPermissionOn as aa, CommentOperations as ab, useEnhancedObjectDialog as ac, ArrayOfPrimitivesItemMember as ad, escapeField as af, FeedbackContext as ag, FromToIndex as ah, RegionWithIntersectionDetails as ai, setIfMissing as al, GroupChange as am, ObjectInputMemberProps as an, HistoryStore as ao, useScheduleAction as ap, ArrayOfObjectsInput as ar, ArrayFieldProps as as, PreparedConfig as at, IntentButton as au, FormPatchOrigin as av, TargetPerspective as aw, LocalesOption as ax, SearchHeader as ay, ConfigPropertyError as b, useFormatRelativeLocalePublishDate as bC, DocumentStoreExtraOptions as bS, CookielessCompatibleLoginMethod as bT, StudioProviderProps as b_, useInitialValue as ba, CommentsUIMode as bb, StudioCrossDatasetReferenceInput as bc, NodeDiffProps as bd, isNonNullable as bf, FeedbackDialog as bg, EventsProvider as bh, useDocumentPreviewStore as bi, TextWithToneProps as bl, DiffFromTo as bm, UrlInputProps as bn, MutationResult as bo, SchedulesContextValue as bp, FormValueProvider as br, ComplexElementProps as bs, WorkspaceOptions as bt, isDraftPerspective as bu, StudioComponentsPluginOptions as bv, getVersionId as bw, TimeAgoOpts as bx, AddonDatasetContextValue as by, createWorkspaceFromConfig as c, Reported as cC, useFormattedDuration as cS, createMockAuthStore as cT, ErrorMessageProps as c_, useDocumentValuePermissions as ca, CommentReactionItem as cb, FileInputProps as cc, FieldMember as cd, _isCustomDocumentTypeDefinition as cf, UseFeedbackReturn as cg, NullDiff$1 as ch, DocumentPreviewPresence as ci, useZIndex as cl, FromTo as cm, MemberField as cn, removeMissingReferences as co, DocumentActionCustomDialogComponentProps as cp, FormBuilderContextValue as cr, BooleanFieldProps as cs, SanityFormConfig as ct, Hotkeys as cu, FormUnsetPatch as cv, DraftId as cw, ValidationLocaleResourceKeys as cx, ColorSchemeLocalStorageProvider as cy, flattenConfig as d, ChangeConnectorRootProps as dC, useEditState as dS, _createAuthStore as dT, useWorkspace as d_, getDocumentPairPermissions as da, CommentStatus as db, FileLike as dc, ObjectMember as dd, createSWR as df, UseInStudioFeedbackReturn as dg, ReferenceDiff as dh, useUser as di, UserAvatar as dl, FallbackDiff as dm, ArrayOfPrimitivesItem as dn, TimelineControllerOptions as do, DocumentActionGroup as dp, useFieldActions as dr, NumberFieldProps as ds, SingleWorkspace as dt, useCopyErrorDetails as du, ToolLinkProps as dv, VERSION_FOLDER as dw, UserListWithPermissionsHookValue as dx, useColorScheme as dy, ChangeIndicatorTrackerContextValue as eC, useManageFavorite as eS, ErrorStatus as eT, CommentInputHandle as e_, getTemplatePermissions as ea, CommentDocument as eb, ArrayInputCopyEvent as ec, StateTree as ed, useLoadable as ef, HexColor as eg, DiffComponentOptions as eh, FormNodePresence as ei, diffMatchPatch as el, RevertChangesConfirmDialog as em, useDocumentForm as en, useTimelineSelector as eo, DocumentBadgeDescription as ep, ArrayOfOptionsInput as er, FormBuilderMarkersComponent as es, NewDocumentOptionsContext as et, PreviewCardContextValue as eu, FormInsertPatch as ev, PerspectiveContextValue as ew, LocaleResourceKey as ex, SearchTerms as ey, PluginFactory as f, ConnectorContextValue as fC, useDocumentOperationEvent as fS, createAuthStore as fT, InterpolationProp as f_, useDocumentPairPermissions as fa, CommentTaskCreatePayload as fb, ResolvedUploader as fc, ArrayOfObjectsFormNode as fd, CardinalityOneRelease as ff, useInStudioFeedback as fg, StringDiff$1 as fh, ResourceCache as fi, UserAvatarProps as fl, Event$1 as fm, PrimitiveMemberItemProps as fn, ParsedTimeRef as fo, DocumentActionKeys as fp, FieldActionsProps as fr, ObjectFieldProps as fs, Source as ft, ErrorWithId as fu, StudioToolMenu as fv, collate as fw, UserListWithPermissionsOptions as fx, useColorSchemeInternalValue as fy, defineConfig as g, sortReleases as gC, EditStateFor as gS, HandleCallbackResult as gT, UpsellDialogUpgradeCtaClicked as g_, Grant as ga, CommentUpdatePayload as gb, UploaderDef as gc, ComputeDiff as gd, PartialExcept as gf, Sentiment as gg, TypeChangeDiff$1 as gh, useGlobalPresence as gi, ImperativeToast as gl, DiffString as gm, ArrayOfObjectsInputMembersProps as gn, DocumentRemoteMutationVersionEvent as go, DuplicateActionProps as gp, FieldActionMenuProps as gr, ArrayOfPrimitivesElementType as gs, Tool as gt, CapabilityGate as gu, LogoProps as gv, getDraftId as gw, UnitFormatter as gx, StudioColorScheme as gy, createConfig as h, ChangeFieldWrapper as hC, useDocumentIdStack as hS, AuthStore as hT, UpsellDialogLearnMoreCtaClicked as h_, EvaluationParams as ha, CommentUpdateOperationOptions as hb, Uploader as hc, BooleanFormNode as hd, isPausedCardinalityOneRelease as hf, FeedbackPayload as hg, StringSegmentUnchanged$1 as hh, useResourceCache as hi, ZIndexContextValue as hl, DiffTooltipWithAnnotationsProps as hm, ArrayOfObjectsInputMembers as hn, CombinedDocument as ho, DocumentActionProps as hp, FieldActionMenu as hr, ArrayOfObjectsInputProps as hs, TemplateResolver as ht, DocumentStatusIndicator as hu, LayoutProps as hv, documentIdEquals as hw, FormattableMeasurementUnit as hx, useColorSchemeValue as hy, SchemaError as i, TrackerContextStore as iC, useGlobalCopyPasteElementHandler as iS, isAuthStore as iT, UpsellData as i_, createGrantsStore as ia, CommentMessage as ib, EnhancedObjectDialogContextValue as ic, ArrayOfObjectsMember as id, supportsTouch as if, UserId as ig, FieldOperationsAPI as ih, Rect as ii, set as il, MetaInfoProps as im, ObjectInputMember as in, DocumentRevision as io, HookCollectionActionHook as ip, useVirtualizerScrollInstance as ir, RenderCustomMarkers as is, PluginOptions as it, LoadingBlock as iu, FormPatchJSONValue as iv, SelectedPerspective as iw, LocalesBundlesOption as ix, SearchPopoverProps as iy, Config as j, AvailabilityReason as jC, WelcomeBackEvent as jS, SourceProvider as j_, ListenQueryOptions as ja, defaultLocale as jb, defaultRenderItem as jc, InvalidItemTypeError as jd, catchWithCount as jf, useOnScroll as jg, EventsStoreRevision as jh, createProjectStore as ji, TemplatePreview as jl, ChangeResolver as jm, ReferenceAutocomplete as jn, getPreviewValueWithFallback as jo, findIndex as jp, FormFieldValidationError as jr, PrimitiveInputProps as js, DocumentInspectorUseMenuItemProps as jt, ReleasesUpsellContextValue as ju, defineSearchFilter as jv, Chip as jw, prepareTemplates as jx, validateNames as jy, BetaFeatures as k, createDocumentPreviewStore as kC, ReconnectEvent as kS, Studio as k_, QueryParams$1 as ka, TranslateComponentMap as kb, defaultRenderInlineBlock as kc, FieldError as kd, ReactHook as kf, ScrollContainer as kg, EditDocumentVersionEvent as kh, useProjectDatasets as ki, LinearProgress as kl, ChangeTitleSegment as km, SlugInputProps as kn, createObservableBufferedDocument as ko, isPerspectiveWriteable as kp, FormInputRelativePathArg as kr, PortableTextInputProps as ks, DocumentInspectorMenuItem as kt, PUBLISHED as ku, SearchContextValue as kv, removeDupes as kw, defaultTemplateForType as kx, ValidateWorkspaceOptions as ky, resolveConfig as l, ReporterHook as lC, useFilteredReleases as lS, AuthStoreOptions as lT, WorkspaceProvider as l_, DocumentPairPermissionsOptions as la, CommentReactionOption as lb, StudioFileInput as lc, FieldSetMember as ld, _isSanityDocumentTypeDefinition as lf, useFeedback as lg, NumberDiff$1 as lh, DocumentPreviewPresenceProps as li, WithReferringDocuments as ll, FromToProps as lm, MemberFieldProps as ln, SelectionState as lo, DocumentActionDescription as lp, useHoveredField as lr, FieldCommentsProps as ls, ScheduledPublishingPluginOptions as lt, HotkeysProps$1 as lu, PatchArg as lv, PublishedId as lw, StudioLocaleResourceKeys as lx, ColorSchemeProvider as ly, definePlugin as m, ChangeIndicatorProps as mC, DocumentIdStack as mS, AuthState as mT, UpsellDialogDismissed as m_, DocumentValuePermission as ma, CommentThreadItem as mb, UploadProgressEvent as mc, BaseFormNode as md, isCardinalityOneRelease as mf, DynamicFeedbackTags as mg, StringSegmentChanged$1 as mh, ResourceCacheProviderProps as mi, ZIndexContextValueKey as ml, DiffTooltipProps as mm, MemberItemProps as mn, TimelineOptions as mo, DocumentActionPopoverDialogProps as mp, FieldActionsProvider as mr, StringFieldProps as ms, SourceOptions as mt, ErrorActionsProps as mu, ActiveToolLayoutProps as mv, createPublishedFrom as mw, useUserListWithPermissions as mx, useColorSchemeSetValue as my, getConfigContextFromSource as n, TrackedChange as nC, useListFormat as nS, createConnectionStatusStore as nT, CommentsList as n_, useTemplatePermissionsFromHookFactory as na, CommentIntentGetter as nb, ArrayInputMoveItemEvent as nc, FieldsetState as nd, truncateString as nf, UserColorHue as ng, DiffProps as nh, Position as ni, insert as nl, NoChanges as nm, ObjectMembers as nn, TimelineStore as no, GetHookCollectionState as np, VirtualizerScrollInstanceProvider as nr, RenderBlockActionsCallback as ns, PartialContext as nt, usePreviewCard as nu, FormPatch as nv, ReleaseId as nw, LocaleSource as nx, SearchResultItemPreview as ny, CreateWorkspaceFromConfigOptions as o, useTrackerStoreReporter as oC, FormattedDuration as oS, getProviderTitle as oT, useWorkspaceLoader as o_, DocumentValuePermissionsOptions as oa, CommentPath as ob, ImageInputProps as oc, ArrayOfPrimitivesMember as od, fieldNeedsEscape as of, FeedbackContextValue as og, GroupChangeNode as oh, ReportedRegionWithRect as oi, unset as ol, FromToArrow as om, MemberFieldSet as on, HistoryStoreOptions as oo, DocumentActionComponent as op, ArrayOfObjectsFunctions as or, ArrayOfPrimitivesFieldProps as os, ReleaseActionsResolver as ot, InsufficientPermissionsMessage as ou, FormSetIfMissingPatch as ov, CollatedHit as ow, StaticLocaleResourceBundle as ox, Filters as oy, createPlugin as p, ChangeIndicator as pC, useDocumentOperation as pS, AuthProbeResult as pT, UpsellDescriptionSerializer as p_, useDocumentPairPermissionsFromHookFactory as pa, CommentTextSelection as pb, UploadOptions as pc, ArrayOfPrimitivesFormNode as pd, isCardinalityOnePerspective as pf, BaseFeedbackTags as pg, StringDiffSegment as ph, ResourceCacheProvider as pi, LegacyLayerProvider as pl, DiffTooltip as pm, ArrayOfObjectsItem as pn, Timeline as po, DocumentActionModalDialogProps as pp, FieldActionsResolver as pr, PrimitiveFieldProps as ps, SourceClientOptions as pt, ErrorActions as pu, StudioNavbar as pv, createDraftFrom as pw, UserWithPermission as px, useColorSchemeOptions as py, DocumentLayoutProps as q, Selection as qC, useConditionalToast as qS, DocumentMeta as q_, MapDocument as qa, ImplicitLocaleResourceBundle as qb, PatchChannel as qc, useThrottledCallback as qd, SingleDocReleaseProvider as qf, CommentsContextValue as qg, isUpdateLiveDocumentEvent as qh, UserStoreOptions as qi, GeneralPreviewLayoutKey as ql, BooleanDiff$1 as qm, DateInputProps as qn, isObjectInputProps as qo, isFieldChange as qp, PresenceOverlayProps as qr, BlockAnnotationProps as qs, TransformPatches as qt, ExpandPathOperation as qu, defineSearchOperator as qv, CorsOriginErrorOptions as qw, DocumentField as qx, CommentsIntentProvider as qy, useConfigContextFromSource as r, TrackerContextGetSnapshot as rC, GlobalCopyPasteElementHandler as rS, onRetry as rT, CommentsUpsellContextValue as r_, GrantsStoreOptions as ra, CommentListBreadcrumbs as rb, UploadEvent as rc, ArrayOfObjectsItemMember as rd, uncaughtErrorHandler as rf, UserColorManager as rg, FieldChangeNode as rh, PresentUser as ri, prefixPath as rl, MetaInfo as rm, ObjectMembersProps as rn, useTimelineStore as ro, GetHookCollectionStateProps as rp, VirtualizerScrollInstance as rr, RenderBlockActionsProps as rs, Plugin as rt, PopoverDialog as ru, FormPatchBase as rv, ReleasesNavMenuItemPropsGetter as rw, LocaleWeekInfo as rx, SearchPopover as ry, createSourceFromConfig as s, IsEqualFunction as sC, UseFormattedDurationOptions as sS, MockAuthStoreOptions as sT, ErrorMessage as s_, getDocumentValuePermissions as sa, CommentPostPayload as sb, StudioImageInput as sc, DecorationMember as sd, joinPath as sf, useStudioFeedbackTags as sg, ItemDiff$1 as sh, Size as si, ZIndexProvider as sl, FromToArrowDirection as sm, MemberFieldError as sn, createHistoryStore as so, DocumentActionConfirmDialogProps as sp, useDidUpdate as sr, BaseFieldProps as ss, ResolveProductionUrlContext as st, InsufficientPermissionsMessageProps as su, FormSetPatch as sv, DRAFTS_FOLDER as sw, TFunction$1 as sx, ColorSchemeCustomProvider as sy, ActiveWorkspaceMatcherContextValue as t, TrackedArea as tC, UseListFormatOptions as tS, RetryingStatus as tT, CommentInputProps as t_, useTemplatePermissions as ta, CommentFieldCreatePayload as tb, ArrayInputInsertEvent as tc, FieldsetMembers as td, sliceString as tf, UserColor as tg, DiffComponentResolver as th, Location as ti, inc as tl, RevertChangesButton as tm, ObjectInputMembers as tn, TimelineState as to, DocumentBadgeProps as tp, ArrayOfObjectOptionsInput as tr, PortableTextMarker as ts, NewDocumentOptionsResolver as tt, ReferenceInputPreviewCard as tu, FormInsertPatchPosition as tv, PerspectiveStack as tw, LocaleResourceRecord as tx, compileFieldPath as ty, prepareConfig as u, ChangeConnectorRoot as uC, useFeatureEnabled as uS, CreateAuthStoreOptions as uT, WorkspaceProviderProps as u_, DocumentPermission as ua, CommentReactionShortNames as ub, AssetSourcesResolver as uc, FieldsetRenderMembersCallback as ud, _isType as uf, SendFeedbackOptions as ug, ObjectDiff$1 as uh, useCurrentUser as ui, AvatarSkeleton as ul, FieldChange as um, MemberItemError as un, TimelineController as uo, DocumentActionDialogProps as up, HoveredFieldProvider as ur, FieldProps as us, SchemaPluginOptions as ut, serializeError as uu, ToolLink as uv, SystemBundle as uw, Rule as ux, ColorSchemeProviderProps as uy, ConfigResolutionError as v, useOnlyHasVersions as vC, DocumentPairLoadedEvent as vS, AuthConfig as vT, UpsellDialogViewedInfo as v_, PermissionCheckResult as va, CommentsTextSelectionItem as vb, StudioReferenceInput as vc, HiddenField as vd, isString as vf, StudioFeedbackDialog as vg, getValueError as vh, useComlinkStore as vi, TooltipOfDisabled as vl, DiffInspectWrapper as vm, ArrayOfObjectsMemberProps as vn, DocumentVersion as vo, SanityDefinedAction as vp, useGetFormValue as vr, BaseInputProps as vs, WorkspaceHiddenContext as vt, formatRelativeLocalePublishDate as vu, NavbarProps as vv, getPublishedId as vw, useUnitFormatter as vx, StudioThemeColorSchemeKey as vy, AppsOptions as w, isReleaseDocument as wC, MutationPerformanceEvent as wS, isAgentBundleName as wT, isValidAnnouncementAudience as w_, useDocumentValues as wa, useWorkspaceSchemaId as wb, FormBuilder as wc, ObjectRenderMembersCallback as wd, getErrorMessage as wf, StudioFeedbackProvider as wg, CreateLiveDocumentEvent as wh, useKeyValueStore as wi, RovingFocusNavigationType as wl, DiffErrorBoundaryProps as wm, TelephoneInputProps as wn, checkoutPair as wo, useGetDefaultPerspective as wp, FormContainer as wr, NumberInputProps as ws, ReleaseActionProps as wt, isReleasePerspective as wu, SearchButton as wv, isPublishedId as ww, Serializeable as wx, MatchWorkspaceResult as wy, ConfigPropertyErrorOptions as x, useDocumentVersionTypeSortedList as xC, InitialSnapshotEvent as xS, LoginMethod as xT, NavbarContextValue as x_, useInitialValueResolverContext as xa, Loadable as xb, StudioCrossDatasetReferenceInputProps as xc, NumberFormNode as xd, isArray as xf, FeedbackDialogProps as xg, useEvents as xh, useDocumentStore as xi, StatusButton as xl, DiffFromToProps as xm, TextInput as xn, Pair as xo, EditScheduleForm as xp, useFormValue as xr, EditorChange as xs, WorkspaceSummary as xt, isPublishedPerspective as xu, ToolMenuProps as xv, idMatchesPerspective as xw, useTimeAgo as xx, AddonDatasetProvider as xy, ConfigResolutionErrorOptions as y, useIsReleaseActive as yC, DocumentRebaseTelemetryEvent as yS, AuthProvider as yT, StudioProvider as y_, useResolveInitialValueForType as ya, CommentsType as yb, StudioReferenceInputProps as yc, NodeChronologyProps as yd, isRecord as yf, StudioFeedbackDialogProps as yg, useEventsStore as yh, useConnectionStatusStore as yi, TextWithTone as yl, DiffInspectWrapperProps as ym, UrlInput as yn, DocumentVersionEvent as yo, isSanityDefinedAction as yp, FormValueContextValue as yr, BooleanInputProps as ys, WorkspaceHiddenProperty as yt, getDocumentIsInPerspective as yu, StudioComponents as yv, getVersionFromId as yw, useTools as yx, useAddonDataset as yy, DocumentBadgesContext as z, InvalidationChannelEvent as zC, RemoteSnapshotEvent as zS, ManifestWorkspaceInput as z_, InitialValueState as za, I18nNode as zb, ParseErrorsProvider as zc, resolveConditionalProperty as zd, TasksNavigationContextValue as zf, buildRangeDecorationSelectionsFromComments as zg, isCreateLiveDocumentEvent as zh, createPresenceStore as zi, MediaPreviewProps as zl, getAnnotationAtPath as zm, AssetAccessPolicy as zn, SanityDefaultPreviewProps as zo, normalizePathSegment as zp, FormFieldSetProps as zr, RenderItemCallback as zs, DocumentFieldActionHook as zt, isDocumentLimitError as zu, SearchOperatorBase as zv, CommandListGetItemSelectedCallback as zw, TypeTarget as zx, getWorkspaceIdentifier as zy };
16753
+ export { NewDocumentCreationContext as $, Selection as $C, useConditionalToast as $S, DocumentMeta as $_, snapshotPair as $a, ImplicitLocaleResourceBundle as $b, dec as $c, userHasRole as $d, useSingleDocRelease as $f, CommentsContextValue as $g, isUpdateLiveDocumentEvent as $h, TemplatePermissionsResult as $i, PreviewCard as $l, BooleanDiff$1 as $m, ArrayOfPrimitiveOptionsInput as $n, FormBuilderInputComponentMap as $o, isFieldChange as $p, FieldPresenceData as $r, PortableTextPluginsProps as $s, useFormBuilder as $t, useFormState as $u, defineSearchOperator as $v, CorsOriginErrorOptions as $w, DocumentField as $x, CommentsIntentProvider as $y, ComposableOption as A, isReleaseDocument as AC, MutationPerformanceEvent as AS, isAgentBundleName as AT, isValidAnnouncementAudience as A_, createDocumentStore as Aa, useWorkspaceSchemaId as Ab, defaultRenderInput as Ac, FieldError as Ad, formatRelativeLocale as Af, StudioFeedbackProvider as Ag, CreateLiveDocumentEvent as Ah, useProject as Ai, CircularProgress as Al, DiffErrorBoundaryProps as Am, SelectInput as An, prepareForPreview as Ao, useExcludedPerspective as Ap, FormFieldValidation as Ar, PrimitiveInputElementProps as As, DocumentInspectorProps as At, useReleasesIds as Au, SearchButton as Av, isPublishedId as Aw, Serializeable as Ax, MatchWorkspaceResult as Ay, DocumentBadgesResolver as B, DocumentStackAvailability as BC, CommittedEvent as BS, renderStudio as B_, InitialValueSuccessMsg as Ba, UseTranslationResponse as Bb, useParseErrorForPath as Bc, resolveConditionalProperty as Bd, LegacyThemeTints as Bf, CommonProps as Bg, ScheduleDocumentVersionEvent as Bh, DocumentPresence as Bi, DetailPreview as Bl, ChangeListProps as Bm, ImageUrlBuilder$1 as Bn, PreviewLoader as Bo, getValueAtPath as Bp, FormFieldHeaderText as Br, RenderPreviewCallback as Bs, DocumentFieldActionItem as Bt, isDocumentLimitError as Bu, operatorDefinitions as Bv, ContextMenuButton as Bw, TemplateArrayFieldDefinition as Bx, evaluateWorkspaceHidden as By, ActionComponent as C, useVersionOperations as CC, editState$1 as CS, LoginComponentProps as CT, UpsellDialogViewed as C_, isNewDocument as Ca, CommentsListBreadcrumbItem as Cb, FormProviderProps as Cc, ObjectArrayFormNode as Cd, isString as Cf, TagValue as Cg, FieldValueError as Ch, useHistoryStore as Ci, useRovingFocus as Cl, DiffStringSegment as Cm, TelephoneInput as Cn, WithVersion as Co, SanityDefinedAction as Cp, useDocumentDivergences as Cr, InputProps as Cs, ReleaseActionDescription as Ct, RELEASES_STUDIO_CLIENT_OPTIONS as Cu, NavbarAction as Cv, getIdPair as Cw, UseUnitFormatterOptions as Cx, StudioTheme as Cy, AsyncConfigPropertyReducer as D, useDocumentVersionTypeSortedList as DC, InitialSnapshotEvent as DS, LoginMethod as DT, NavbarContextValue as D_, DocumentStore as Da, Loadable as Db, defaultRenderBlock as Dc, StringFormNode as Dd, globalScope as Df, FeedbackDialogProps as Dg, useEvents as Dh, useRenderingContextStore as Di, RelativeTime as Dl, DiffFromToProps as Dm, StringInput as Dn, createBufferedDocument as Do, useSetPerspective as Dp, FormInput as Dr, OnPathFocusPayload as Ds, DocumentInspector as Dt, getReleaseIdFromReleaseDocumentId as Du, ToolMenuProps as Dv, idMatchesPerspective as Dw, useTimeAgo as Dx, AddonDatasetProvider as Dy, AsyncComposableOption as E, useFormatRelativeLocalePublishDate as EC, DocumentStoreExtraOptions as ES, CookielessCompatibleLoginMethod as ET, StudioProviderProps as E_, useDocumentType as Ea, CommentsUIMode as Eb, defaultRenderAnnotation as Ec, PrimitiveFormNode as Ed, isArray as Ef, FeedbackDialog as Eg, EventsProvider as Eh, useProjectStore as Ei, Resizable as El, DiffFromTo as Em, TagsArrayInputProps as En, BufferedDocumentWrapper as Eo, EditScheduleForm as Ep, FormRow as Er, OnPasteFn as Es, FormComponents as Et, getReleaseTone as Eu, StudioComponentsPluginOptions as Ev, getVersionId as Ew, TimeAgoOpts as Ex, AddonDatasetContextValue as Ey, DocumentActionsContext as F, createDocumentPreviewStore as FC, ReconnectEvent as FS, Studio as F_, getInitialValueStream as Fa, TranslateComponentMap as Fb, ReferenceInputOptions as Fc, TypeAnnotationMismatchError as Fd, createHookFromObservableFactory as Ff, ScrollContainer as Fg, EditDocumentVersionEvent as Fh, ProjectOrganizationData as Fi, BlockPreview as Fl, ChangeTitleSegment as Fm, PortableTextMemberItem as Fn, useValuePreview as Fo, getSelectedVariant as Fp, FormFieldValidationStatusProps as Fr, RenderArrayOfPrimitivesItemCallback as Fs, defineDocumentFieldAction as Ft, RELEASES_INTENT as Fu, SearchContextValue as Fv, removeDupes as Fw, defaultTemplateForType as Fx, ValidateWorkspaceOptions as Fy, DocumentLanguageFilterContext as G, InvalidationChannelEvent as GC, RemoteSnapshotEvent as GS, ManifestWorkspaceInput as G_, emitOperation as Ga, I18nNode as Gb, useFormCallbacks as Gc, measureFirstEmission as Gd, MentionUserContextValue as Gf, buildRangeDecorationSelectionsFromComments as Gg, isCreateLiveDocumentEvent as Gh, UserSessionPair as Gi, CompactPreviewProps as Gl, getAnnotationAtPath as Gm, DateTimeInputProps as Gn, isBooleanInputProps as Go, normalizePathSegment as Gp, PresenceScopeProps as Gr, ObjectItemProps as Gs, DocumentFieldActionsResolver as Gt, mergeParseErrors as Gu, SearchOperatorBase as Gv, CommandListGetItemSelectedCallback as Gw, TypeTarget as Gx, getWorkspaceIdentifier as Gy, DocumentInspectorContext as H, DraftsModelDocumentAvailability as HC, DocumentRebaseEvent as HS, LiveManifestRegisterProvider as H_, remoteSnapshots as Ha, useCurrentLocale as Hb, useReportParseError as Hc, useNavigateToCanvasDoc as Hd, TasksUpsellContextValue as Hf, CollapseMenu as Hg, UnscheduleDocumentVersionEvent as Hh, PresenceLocation as Hi, DefaultPreview as Hl, useAnnotationColor as Hm, EmailInputProps as Hn, isArrayOfBlocksInputProps as Ho, normalizeIndexSegment as Hp, FormField as Hr, BaseItemProps as Hs, DocumentFieldActionProps as Ht, DivergenceNavigator as Hu, I18nSearchOperatorNameKey as Hv, CommandListElementType as Hw, TemplateItem as Hx, VisibleWorkspacesContextValue as Hy, DocumentActionsResolver as I, ApiConfig as IC, ResetEvent as IS, StudioProps as I_, InitialValueErrorMsg as Ia, TranslationProps as Ib, ReferenceInputOptionsProvider as Ic, UndeclaredMembersError as Id, catchWithCount as If, ScrollContainerProps as Ig, EventsStore as Ih, ProjectStore as Ii, BlockImagePreview as Il, ChangesError as Im, UpdateReadOnlyPlugin as In, unstable_useObserveDocument as Io, FIXME as Ip, FieldStatusProps as Ir, RenderBlockCallback as Is, DocumentFieldAction as It, DEFAULT_ANNOTATIONS as Iu, SearchFilterDefinition as Iv, systemBundles as Iw, defaultTemplatesForSchema as Ix, validateBasePaths as Iy, DocumentPluginOptions as J, ObservePathsFn as JC, UseDateTimeFormatOptions as JS, CopyPasteProvider as J_, Operation as Ja, defineLocaleResourceBundle as Jb, PatchMsg as Jc, isPublishedVersion as Jd, DEFAULT_STUDIO_CLIENT_OPTIONS as Jf, useCommentsSelectedPath as Jg, isEditDocumentVersionEvent as Jh, createUserStore as Ji, PortableTextPreviewLayoutKey as Jl, visitDiff as Jm, CrossDatasetReferencePreview as Jn, isObjectItemProps as Jo, stringToPath as Jp, FieldPresence as Jr, BlockDecoratorProps as Js, decodePath as Jt, ExpandPathOperation as Ju, SearchOperatorInput as Jv, CommandListProps as Jw, useStudioUrl as Jx, ActiveWorkspaceMatcherProps as Jy, DocumentLanguageFilterResolver as K, ObserveDocumentAvailabilityFn as KC, SnapshotEvent as KS, StudioManifest as K_, operationEvents as Ka, useI18nText as Kb, MutationPatchMsg as Kc, measureFirstMatch as Kd, IsLastPaneProvider as Kf, buildCommentRangeDecorations as Kg, isDeleteDocumentGroupEvent as Kh, UserStore as Ki, GeneralDocumentListLayoutKey as Kl, getAnnotationColor as Km, DateInput as Kn, isNumberInputProps as Ko, pathToString as Kp, PresenceOverlay as Kr, PrimitiveItemProps as Ks, DocumentFieldActionsResolverContext as Kt, ExpandFieldSetOperation as Ku, SearchOperatorBuilder as Kv, CommandListHandle as Kw, SyncState as Kx, WorkspaceLike as Ky, DocumentActionsVersionType as L, AvailabilityReason as LC, WelcomeBackEvent as LS, SourceProvider as L_, InitialValueLoadingMsg as La, defaultLocale as Lb, TemplateOption as Lc, FormFieldGroup as Ld, defaultTheme as Lf, useOnScroll as Lg, EventsStoreRevision as Lh, PresenceStore as Li, BlockImagePreviewProps as Ll, ChangeResolver as Lm, ObjectInput as Ln, useUnstableObserveDocument as Lo, findIndex as Lp, FormFieldStatus as Lr, RenderFieldCallback as Ls, DocumentFieldActionDivider as Lt, DEFAULT_DECORATORS as Lu, defineSearchFilter as Lv, Chip as Lw, prepareTemplates as Lx, validateNames as Ly, ConfigContext$1 as M, DocumentPreviewStore as MC, IdPair as MS, EditPortal as MT, StudioAnnouncementsDialog as M_, ListenQueryParams as Ma, ValidateDocumentOptions as Mb, defaultRenderPreview as Mc, InvalidItemTypeError as Md, EMPTY_OBJECT as Mf, isProd as Mg, DeleteDocumentVersionEvent as Mh, ProjectData as Mi, TemplatePreviewProps as Ml, DiffCard as Mm, CreateButton as Mn, getPreviewStateObservable as Mo, ReleasesNav as Mp, FormFieldValidationInfo as Mr, StringInputProps as Ms, defineDocumentInspector as Mt, useDocumentVersionInfo as Mu, useSearchMaxFieldDepth as Mv, isSystemBundleName as Mw, resolveInitialObjectValue as Mx, WorkspacesProvider as My, ConfigPropertyReducer as N, DocumentPreviewStoreOptions as NC, MutationEvent as NS, createSanityMediaLibraryFileSource as NT, StudioAnnouncementsContextValue as N_, listenQuery as Na, validateDocument as Nb, EditReferenceLinkComponentProps as Nc, MissingKeysError as Nd, LoadingTuple as Nf, ScrollContextValue as Ng, DocumentGroupEvent as Nh, ProjectDatasetData as Ni, InlinePreview as Nl, DiffCardProps as Nm, CreateReferenceOption as Nn, getPreviewPaths as No, PerspectiveNotWriteableReason as Np, FormFieldValidationWarning as Nr, RenderAnnotationCallback as Ns, initialDocumentFieldActions as Nt, useArchivedReleases as Nu, useSearchState as Nv, isVersionId as Nw, resolveInitialValue as Nx, WorkspacesProviderProps as Ny, BaseActionDescription as O, useDocumentVersions as OC, LatencyReportEvent as OS, AgentVersionDisplay as OT, StudioLayout as O_, DocumentStoreOptions as Oa, CommentsAuthoringPathContextValue as Ob, defaultRenderField as Oc, ArrayItemError as Od, getReferencePaths as Of, useTelemetryConsent as Og, BaseEvent as Oh, useUserStore as Oi, RelativeTimeProps as Ol, FieldPreviewComponent as Om, SlugInput as On, CommitRequest as Oo, usePerspective as Op, FormInputAbsolutePathArg as Or, PasteData$1 as Os, DocumentInspectorComponent as Ot, LATEST as Ou, StudioLogo as Ov, isDraft as Ow, useTemplates as Ox, useActiveWorkspace as Oy, DefaultPluginsWorkspaceOptions as P, ObserveForPreviewFn as PC, PendingMutationsEvent as PS, createSanityMediaLibraryImageSource as PT, StudioAnnouncementsCard as P_, InitialValueOptions as Pa, Translate as Pb, EditReferenceOptions as Pc, MixedArrayError as Pd, ReactHook as Pf, ScrollEventHandler as Pg, DocumentVersionEventType as Ph, ProjectGrants as Pi, InlinePreviewProps as Pl, TIMELINE_ITEM_I18N_KEY_MAPPING as Pm, PortableTextInput as Pn, unstable_useValuePreview as Po, isPerspectiveWriteable as Pp, FormFieldValidationStatus as Pr, RenderArrayOfObjectsItemCallback as Ps, documentFieldActionsReducer as Pt, useActiveReleases as Pu, SearchProvider as Pv, newDraftFrom as Pw, resolveInitialValueForType as Px, WorkspacesContextValue as Py, MissingConfigFile as Q, PreviewableType as QC, useConnectionState as QS, CopyPasteContextType as Q_, DocumentVersionSnapshots as Qa, LocaleProviderBase as Qb, SANITY_PATCH_TYPE as Qc, useThrottledCallback as Qd, SingleDocReleaseProvider as Qf, useComments as Qg, isUnscheduleDocumentVersionEvent as Qh, TemplatePermissionsOptions as Qi, PreviewProps as Ql, ArrayItemMetadata as Qm, ArrayOfPrimitivesFunctions as Qn, FormBuilderFilterFieldFn as Qo, isAddedItemDiff as Qp, FieldPresenceWithOverlay as Qr, MarkdownConfig as Qs, toMutationPatches as Qt, UseFormStateOptions as Qu, ValuelessSearchOperatorParams as Qv, CorsOriginError as Qw, useRelativeTime as Qx, CommentsSelectedPathProvider as Qy, DocumentAskToEditEnabledContext as R, AvailabilityResponse as RC, WelcomeEvent as RS, SourceProviderProps as R_, InitialValueMsg as Ra, usEnglishLocale as Rb, useReferenceInputOptions as Rc, ProvenanceDiffAnnotation as Rd, buildLegacyTheme as Rf, CollapseMenuButton as Rg, HistoryClearedEvent as Rh, SESSION_ID as Ri, MediaPreview as Rl, ChangeResolverProps as Rm, NumberInput as Rn, SanityDefaultPreview as Ro, getItemKey as Rp, FormFieldSet as Rr, RenderInputCallback as Rs, DocumentFieldActionGroup as Rt, ReleaseDocument$1 as Ru, defineSearchFilterOperators as Rv, DocumentVariantType as Rw, InitialValueTemplateItem as Rx, validateWorkspaces as Ry, useMiddlewareComponents as S, sortReleases as SC, EditStateFor as SS, HandleCallbackResult as ST, UpsellDialogUpgradeCtaClicked as S_, selectUpstreamVersion as Sa, CommentUpdatePayload as Sb, FormProvider as Sc, NumberFormNode as Sd, isTruthy as Sf, Sentiment as Sg, TypeChangeDiff$1 as Sh, useGrantsStore as Si, StatusButtonProps as Sl, DiffString as Sm, TextInputProps as Sn, RemoteSnapshotVersionEvent as So, DuplicateDocumentActionComponent as Sp, DivergencesProvider as Sr, InputOnSelectFileFunctionProps as Ss, ReleaseActionComponent as St, isReleaseScheduledOrScheduling as Su, LogoProps as Sv, getDraftId as Sw, UnitFormatter as Sx, StudioColorScheme as Sy, AssetSourceResolver as T, useIsReleaseActive as TC, DocumentRebaseTelemetryEvent as TS, AuthProvider as TT, StudioProvider as T_, DocumentTypeResolveState as Ta, CommentsType as Tb, FormBuilderProps as Tc, ObjectRenderMembersCallback as Td, isNonNullable as Tf, StudioFeedbackDialogProps as Tg, useEventsStore as Th, usePresenceStore as Ti, RovingFocusProps as Tl, DiffInspectWrapperProps as Tm, TagsArrayInput as Tn, BufferedDocumentEvent as To, SchedulesContextValue as Tp, FormCell as Tr, ObjectInputProps as Ts, ReleaseActionsContext as Tt, isGoingToUnpublish as Tu, StudioComponents as Tv, getVersionFromId as Tw, useTools as Tx, useAddonDataset as Ty, DocumentInspectorsResolver as U, FieldName as UC, DocumentRemoteMutationEvent as US, GenerateStudioManifestOptions as U_, OperationError as Ua, useLocale as Ub, FormCallbacksProvider as Uc, useCanvasCompanionDoc as Ud, TasksContextValue as Uf, CollapseMenuProps as Ug, UpdateLiveDocumentEvent as Uh, Session as Ui, DefaultPreviewProps as Ul, useDiffAnnotationColor as Um, getCalendarLabels as Un, isArrayOfObjectsInputProps as Uo, normalizeIndexTupleSegment as Up, FormFieldProps as Ur, ItemProps as Us, DocumentFieldActionStatus as Ut, useDivergenceNavigator as Uu, OperatorButtonValueComponentProps as Uv, CommandListGetItemDisabledCallback as Uw, TemplateParameter as Ux, VisibleWorkspacesProvider as Uy, DocumentCommentsEnabledContext as V, DraftsModelDocument as VC, DocumentMutationEvent as VS, uploadSchema as V_, validation$1 as Va, useTranslation as Vb, useParseErrors as Vc, getDocumentIdForCanvasLink as Vd, useDocumentPreviewValues as Vf, AutoCollapseMenu as Vg, UnpublishDocumentEvent as Vh, GlobalPresence as Vi, DetailPreviewProps as Vl, ChangeBreadcrumb as Vm, EmailInput as Vn, Preview as Vo, isEmptyObject as Vp, FormFieldHeaderTextProps as Vr, RenderPreviewCallbackProps as Vs, DocumentFieldActionNode as Vt, useDocumentLimitsUpsellContext as Vu, I18nSearchOperatorDescriptionKey as Vv, CommandList as Vw, TemplateFieldDefinition as Vx, useVisibleWorkspaces as Vy, DocumentLanguageFilterComponent as W, Id as WC, MutationPayload as WS, generateStudioManifest as W_, OperationSuccess as Wa, useGetI18nText as Wb, FormCallbacksValue as Wc, SANITY_VERSION as Wd, TasksNavigationContextValue as Wf, buildTextSelectionFromFragment as Wg, isCreateDocumentVersionEvent as Wh, Status as Wi, CompactPreview as Wl, DiffVisitor as Wm, DateTimeInput as Wn, isArrayOfPrimitivesInputProps as Wo, normalizeKeySegment as Wp, PresenceScope as Wr, ObjectItem as Ws, DocumentFieldActionTone as Wt, ParseError as Wu, OperatorInputComponentProps as Wv, CommandListGetItemKeyCallback as Ww, TemplateReferenceTarget as Wx, getNamelessWorkspaceIdentifier as Wy, GroupableActionDescription as X, PreviewPath as XC, useDataset as XS, BaseOptions as X_, OperationImpl as Xa, removeUndefinedLocaleResources as Xb, RebasePatchMsg as Xc, isVariantVersion as Xd, useScheduledDraftDocument as Xf, useCommentsEnabled as Xg, isScheduleDocumentVersionEvent as Xh, KeyValueStore as Xi, PreviewLayoutKey as Xl, AnnotationDetails as Xm, UniversalArrayInput as Xn, ArrayInputFunctionsProps as Xo, useDocumentChange as Xp, FieldPresenceInnerProps as Xr, BlockProps as Xs, MutationPatch as Xt, getExpandOperations as Xu, SearchValueFormatterContext as Xv, BetaBadge as Xw, useReviewChanges as Xx, CommentsSelectedPath as Xy, FormBuilderComponentResolverContext as Y, PreparedSnapshot as YC, useDateTimeFormat as YS, useCopyPaste as Y_, OperationArgs as Ya, defineLocalesResources as Yb, PatchMsgSubscriber as Yc, isReleaseVersion as Yd, useScheduledDraftsEnabled as Yf, CommentsOnboardingContextValue as Yg, isPublishDocumentVersionEvent as Yh, createKeyValueStore as Yi, PreviewComponent as Yl, Annotation as Ym, BooleanInput as Yn, isStringInputProps as Yo, resolveDiffComponent as Yp, FieldPresenceInner as Yr, BlockListItemProps as Ys, encodePath as Yt, SetActiveGroupOperation as Yu, SearchOperatorParams as Yv, CommandListRenderItemCallback as Yw, useSchema as Yx, RouterHistory as Yy, MediaLibraryConfig as Z, Previewable as ZC, ConnectionState as ZS, CopyOptions as Z_, OperationsAPI as Za, LocaleProvider as Zb, createPatchChannel as Zc, useUnique as Zd, usePausedScheduledDraft as Zf, CommentsEnabledContextValue as Zg, isUnpublishDocumentEvent as Zh, KeyValueStoreValue as Zi, PreviewMediaDimensions as Zl, ArrayDiff$1 as Zm, ArrayOfPrimitivesInput as Zn, FormBuilderCustomMarkersComponent as Zo, emptyValuesByType as Zp, FieldPresenceProps as Zr, BlockStyleProps as Zs, fromMutationPatches as Zt, FormState as Zu, ValuelessSearchOperatorBuilder as Zv, BetaBadgeProps as Zw, RelativeTimeOptions as Zx, CommentsSelectedPathContextValue as Zy, createDefaultIcon as _, ChangeConnectorRootProps as _C, useEditState as _S, _createAuthStore as _T, useWorkspace as __, GrantsStore as _a, CommentStatus as _b, UploaderResolver as _c, ComputeDiff as _d, CardinalityOneRelease as _f, UseInStudioFeedbackReturn as _g, ReferenceDiff as _h, useDocumentPresence as _i, ToastParams$1 as _l, FallbackDiff as _m, ArrayOfObjectsInputMember as _n, Transaction as _o, DocumentActionKeys as _p, GetFormValueProvider as _r, ArrayOfPrimitivesInputProps as _s, Workspace as _t, DocumentStatus as _u, ToolLinkProps as _v, VERSION_FOLDER as _w, UserListWithPermissionsHookValue as _x, useColorScheme as _y, resolveSchemaTypes as a, useChangeIndicatorsReporter as aC, UseManageFavoriteProps as aS, ConnectionStatusStoreOptions as aT, CommentInput as a_, grantsPermissionOn as aa, CommentCreatePayload as ab, useEnhancedObjectDialog as ac, ArrayOfObjectsMember as ad, useLoadable as af, useUserColorManager as ag, DiffComponent as ah, RegionWithIntersectionDetails as ai, setIfMissing as al, ValueError as am, ObjectInputMemberProps as an, HistoryStore as ao, DocumentBadgeDescription as ap, ArrayOfObjectsInput as ar, ArrayFieldProps as as, PreparedConfig as at, IntentButton as au, FormIncPatch as av, VersionChip as aw, LocaleResourceBundle as ax, SearchSort as ay, ConfigPropertyError as b, ChangeIndicatorProps as bC, DocumentIdStack as bS, AuthState as bT, UpsellDialogDismissed as b_, useInitialValue as ba, CommentThreadItem as bb, StudioCrossDatasetReferenceInput as bc, NodeChronologyProps as bd, isPausedCardinalityOneRelease as bf, DynamicFeedbackTags as bg, StringSegmentChanged$1 as bh, useDocumentPreviewStore as bi, TextWithToneProps as bl, DiffTooltipProps as bm, UrlInputProps as bn, MutationResult as bo, DocumentActionProps as bp, FormValueProvider as br, ComplexElementProps as bs, WorkspaceOptions as bt, isDraftPerspective as bu, ActiveToolLayoutProps as bv, createPublishedFrom as bw, useUserListWithPermissions as bx, useColorSchemeSetValue as by, createWorkspaceFromConfig as c, TrackedChange as cC, useListFormat as cS, createConnectionStatusStore as cT, CommentsList as c_, useDocumentValuePermissions as ca, CommentIntentGetter as cb, FileInputProps as cc, DecorationMember as cd, uncaughtErrorHandler as cf, UserColorHue as cg, DiffProps as ch, DocumentPreviewPresence as ci, useZIndex as cl, NoChanges as cm, MemberField as cn, removeMissingReferences as co, GetHookCollectionStateProps as cp, FormBuilderContextValue as cr, BooleanFieldProps as cs, SanityFormConfig as ct, Hotkeys as cu, FormPatch as cv, ReleaseId as cw, LocaleSource as cx, SearchResultItemPreview as cy, flattenConfig as d, useTrackerStore as dC, FormDocumentValue as dS, isCookielessCompatibleLoginMethod as dT, WorkspaceLoaderBoundary as d_, getDocumentPairPermissions as da, CommentOperations as db, FileLike as dc, FieldsetRenderMembersCallback as dd, fieldNeedsEscape as df, FeedbackContext as dg, FromToIndex as dh, useUser as di, UserAvatar as dl, GroupChange as dm, ArrayOfPrimitivesItem as dn, TimelineControllerOptions as do, DocumentActionComponent as dp, useFieldActions as dr, NumberFieldProps as ds, SingleWorkspace as dt, useCopyErrorDetails as du, FormPatchOrigin as dv, TargetPerspective as dw, LocalesOption as dx, SearchHeader as dy, useClient as eC, useReferringDocuments as eS, CONNECTING as eT, hasCommentMessageValue as e_, getTemplatePermissions as ea, CommentsIntentProviderProps as eb, ArrayInputCopyEvent as ec, setAtPath as ed, ErrorState as ef, UserColorManagerProvider as eg, ChangeNode as eh, FormNodePresence as ei, diffMatchPatch as el, isGroupChange as em, useDocumentForm as en, useTimelineSelector as eo, getSchemaTypeTitle as ep, ArrayOfOptionsInput as er, FormBuilderMarkersComponent as es, NewDocumentOptionsContext as et, PreviewCardContextValue as eu, PasteOptions as ev, VersionInlineBadge as ew, Locale as ex, createSearch as ey, PluginFactory as f, useTrackerStoreReporter as fC, FormattedDuration as fS, getProviderTitle as fT, useWorkspaceLoader as f_, useDocumentPairPermissions as fa, CommentPath as fb, ResolvedUploader as fc, ObjectMember as fd, joinPath as ff, FeedbackContextValue as fg, GroupChangeNode as fh, ResourceCache as fi, UserAvatarProps as fl, FromToArrow as fm, PrimitiveMemberItemProps as fn, ParsedTimeRef as fo, DocumentActionConfirmDialogProps as fp, FieldActionsProps as fr, ObjectFieldProps as fs, Source as ft, ErrorWithId as fu, FormSetIfMissingPatch as fv, CollatedHit as fw, StaticLocaleResourceBundle as fx, Filters as fy, defineConfig as g, ChangeConnectorRoot as gC, useFeatureEnabled as gS, CreateAuthStoreOptions as gT, WorkspaceProviderProps as g_, Grant as ga, CommentReactionShortNames as gb, UploaderDef as gc, BooleanFormNode as gd, createSWR as gf, SendFeedbackOptions as gg, ObjectDiff$1 as gh, useGlobalPresence as gi, ImperativeToast as gl, FieldChange as gm, ArrayOfObjectsInputMembersProps as gn, DocumentRemoteMutationVersionEvent as go, DocumentActionGroup as gp, FieldActionMenuProps as gr, ArrayOfPrimitivesElementType as gs, Tool as gt, CapabilityGate as gu, ToolLink as gv, SystemBundle as gw, Rule as gx, ColorSchemeProviderProps as gy, createConfig as h, ReporterHook as hC, useFilteredReleases as hS, AuthStoreOptions as hT, WorkspaceProvider as h_, EvaluationParams as ha, CommentReactionOption as hb, Uploader as hc, BaseFormNode as hd, _isType as hf, useFeedback as hg, NumberDiff$1 as hh, useResourceCache as hi, ZIndexContextValue as hl, FromToProps as hm, ArrayOfObjectsInputMembers as hn, CombinedDocument as ho, DocumentActionDialogProps as hp, FieldActionMenu as hr, ArrayOfObjectsInputProps as hs, TemplateResolver as ht, DocumentStatusIndicator as hu, PatchArg as hv, PublishedId as hw, StudioLocaleResourceKeys as hx, ColorSchemeProvider as hy, SchemaError as i, useChangeIndicatorsReportedValues as iC, useNumberFormat as iS, ConnectionStatusStore as iT, CommentInputContextValue as i_, createGrantsStore as ia, CommentContext as ib, EnhancedObjectDialogContextValue as ic, ArrayOfObjectsItemMember as id, asLoadable as if, useUserColor as ig, Diff$1 as ih, Rect as ii, set as il, DocumentChangeContextInstance as im, ObjectInputMember as in, DocumentRevision as io, DocumentBadgeComponent as ip, useVirtualizerScrollInstance as ir, RenderCustomMarkers as is, PluginOptions as it, LoadingBlock as iu, FormDiffMatchPatch as iv, ReleaseAvatarIcon as iw, LocalePluginOptions as ix, SearchOptions as iy, Config as j, MetadataWrapper as jC, getPairListener as jS, EnhancedObjectDialog as jT, isValidAnnouncementRole as j_, ListenQueryOptions as ja, useValidationStatus as jb, defaultRenderItem as jc, IncompatibleTypeError as jd, EMPTY_ARRAY as jf, isDev as jg, DeleteDocumentGroupEvent as jh, createProjectStore as ji, TemplatePreview as jl, DiffErrorBoundaryState as jm, ReferenceAutocomplete as jn, getPreviewValueWithFallback as jo, PerspectiveProvider as jp, FormFieldValidationError as jr, PrimitiveInputProps as js, DocumentInspectorUseMenuItemProps as jt, ReleasesUpsellContextValue as ju, PartialIndexSettings as jv, isSystemBundle as jw, isBuilder as jx, matchWorkspace as jy, BetaFeatures as k, VersionInfoDocumentStub as kC, ListenerEvent as kS, useAgentVersionDisplay as kT, StudioLayoutComponent as k_, QueryParams$1 as ka, CommentsAuthoringPathProvider as kb, defaultRenderInlineBlock as kc, DuplicateKeysError as kd, getErrorMessage as kf, ConsentStatus as kg, CreateDocumentVersionEvent as kh, useProjectDatasets as ki, LinearProgress as kl, DiffErrorBoundary as km, SlugInputProps as kn, createObservableBufferedDocument as ko, useGetDefaultPerspective as kp, FormInputRelativePathArg as kr, PortableTextInputProps as ks, DocumentInspectorMenuItem as kt, PUBLISHED as ku, SearchDialog as kv, isDraftId as kw, DEFAULT_MAX_RECURSION_DEPTH as kx, MatchWorkspaceOptions as ky, resolveConfig as l, TrackerContextGetSnapshot as lC, GlobalCopyPasteElementHandler as lS, onRetry as lT, CommentsUpsellContextValue as l_, DocumentPairPermissionsOptions as la, CommentListBreadcrumbs as lb, StudioFileInput as lc, FieldMember as ld, supportsTouch as lf, UserColorManager as lg, FieldChangeNode as lh, DocumentPreviewPresenceProps as li, WithReferringDocuments as ll, MetaInfo as lm, MemberFieldProps as ln, SelectionState as lo, HookCollectionActionHook as lp, useHoveredField as lr, FieldCommentsProps as ls, ScheduledPublishingPluginOptions as lt, HotkeysProps$1 as lu, FormPatchBase as lv, ReleasesNavMenuItemPropsGetter as lw, LocaleWeekInfo as lx, SearchPopover as ly, definePlugin as m, Reported as mC, useFormattedDuration as mS, createMockAuthStore as mT, ErrorMessageProps as m_, DocumentValuePermission as ma, CommentReactionItem as mb, UploadProgressEvent as mc, ArrayOfPrimitivesFormNode as md, _isSanityDocumentTypeDefinition as mf, UseFeedbackReturn as mg, NullDiff$1 as mh, ResourceCacheProviderProps as mi, ZIndexContextValueKey as ml, FromTo as mm, MemberItemProps as mn, TimelineOptions as mo, DocumentActionDescription as mp, FieldActionsProvider as mr, StringFieldProps as ms, SourceOptions as mt, ErrorActionsProps as mu, FormUnsetPatch as mv, DraftId as mw, ValidationLocaleResourceKeys as mx, ColorSchemeLocalStorageProvider as my, getConfigContextFromSource as n, CommentDeleteDialog as nC, useProjectId as nS, ConnectingStatus as nT, COMMENTS_INSPECTOR_NAME as n_, useTemplatePermissionsFromHookFactory as na, CommentsProvider as nb, ArrayInputMoveItemEvent as nc, FieldsetMembers as nd, LoadedState as nf, UserColorManagerOptions as ng, Chunk as nh, Position as ni, insert as nl, isUnchangedDiff as nm, ObjectMembers as nn, TimelineStore as no, SchedulesContext as np, VirtualizerScrollInstanceProvider as nr, RenderBlockActionsCallback as ns, PartialContext as nt, usePreviewCard as nu, PatchEvent as nv, ReleaseTitle as nw, LocaleDefinition as nx, getSearchableTypes as ny, CreateWorkspaceFromConfigOptions as o, ChangeIndicatorTrackerContextValue as oC, useManageFavorite as oS, ErrorStatus as oT, CommentInputHandle as o_, DocumentValuePermissionsOptions as oa, CommentDocument as ob, ImageInputProps as oc, ArrayOfPrimitivesItemMember as od, sliceString as of, HexColor as og, DiffComponentOptions as oh, ReportedRegionWithRect as oi, unset as ol, RevertChangesConfirmDialog as om, MemberFieldSet as on, HistoryStoreOptions as oo, DocumentBadgeProps as op, ArrayOfObjectsFunctions as or, ArrayOfPrimitivesFieldProps as os, ReleaseActionsResolver as ot, InsufficientPermissionsMessage as ou, FormInsertPatch as ov, PerspectiveContextValue as ow, LocaleResourceKey as ox, SearchTerms as oy, createPlugin as p, IsEqualFunction as pC, UseFormattedDurationOptions as pS, MockAuthStoreOptions as pT, ErrorMessage as p_, useDocumentPairPermissionsFromHookFactory as pa, CommentPostPayload as pb, UploadOptions as pc, ArrayOfObjectsFormNode as pd, _isCustomDocumentTypeDefinition as pf, useStudioFeedbackTags as pg, ItemDiff$1 as ph, ResourceCacheProvider as pi, LegacyLayerProvider as pl, FromToArrowDirection as pm, ArrayOfObjectsItem as pn, Timeline as po, DocumentActionCustomDialogComponentProps as pp, FieldActionsResolver as pr, PrimitiveFieldProps as ps, SourceClientOptions as pt, ErrorActions as pu, FormSetPatch as pv, DRAFTS_FOLDER as pw, TFunction$1 as px, ColorSchemeCustomProvider as py, DocumentLayoutProps as q, ObserveDocumentTypeFromIdFn as qC, useDialogStack as qS, StudioWorkspaceManifest as q_, MapDocument as qa, defineLocale as qb, PatchChannel as qc, isDraftVersion as qd, TasksEnabledContextValue as qf, useCommentsTelemetry as qg, isDeleteDocumentVersionEvent as qh, UserStoreOptions as qi, GeneralPreviewLayoutKey as ql, getDiffAtPath as qm, DateInputProps as qn, isObjectInputProps as qo, pathsAreEqual as qp, PresenceOverlayProps as qr, BlockAnnotationProps as qs, TransformPatches as qt, ExpandOperation as qu, SearchOperatorButtonValue as qv, CommandListItemContext as qw, useSyncState as qx, ActiveWorkspaceMatcher as qy, useConfigContextFromSource as r, ChangeIndicatorsTracker as rC, UseNumberFormatOptions as rS, ConnectionStatus as rT, CommentInlineHighlightSpan as r_, GrantsStoreOptions as ra, CommentBaseCreatePayload as rb, UploadEvent as rc, FieldsetState as rd, LoadingState as rf, createUserColorManager as rg, ChunkType as rh, PresentUser as ri, prefixPath as rl, noop as rm, ObjectMembersProps as rn, useTimelineStore as ro, ScheduledBadge as rp, VirtualizerScrollInstance as rr, RenderBlockActionsProps as rs, Plugin as rt, PopoverDialog as ru, FormDecPatch as rv, ReleaseAvatar as rw, LocaleNestedResource as rx, SearchFactoryOptions as ry, createSourceFromConfig as s, TrackedArea as sC, UseListFormatOptions as sS, RetryingStatus as sT, CommentInputProps as s_, getDocumentValuePermissions as sa, CommentFieldCreatePayload as sb, StudioImageInput as sc, ArrayOfPrimitivesMember as sd, truncateString as sf, UserColor as sg, DiffComponentResolver as sh, Size as si, ZIndexProvider as sl, RevertChangesButton as sm, MemberFieldError as sn, createHistoryStore as so, GetHookCollectionState as sp, useDidUpdate as sr, BaseFieldProps as ss, ResolveProductionUrlContext as st, InsufficientPermissionsMessageProps as su, FormInsertPatchPosition as sv, PerspectiveStack as sw, LocaleResourceRecord as sx, compileFieldPath as sy, ActiveWorkspaceMatcherContextValue as t, CommentDisabledIcon as tC, useReconnectingToast as tS, ConnectedStatus as tT, isTextSelectionComment as t_, useTemplatePermissions as ta, CommentsEnabledProvider as tb, ArrayInputInsertEvent as tc, StateTree as td, LoadableState as tf, UserColorManagerProviderProps as tg, ChangeTitlePath as th, Location as ti, inc as tl, isRemovedItemDiff as tm, ObjectInputMembers as tn, TimelineState as to, createSchema as tp, ArrayOfObjectOptionsInput as tr, PortableTextMarker as ts, NewDocumentOptionsResolver as tt, ReferenceInputPreviewCard as tu, SanityClipboardItem as tv, getVersionInlineBadge as tw, LocaleConfigContext as tx, isPerspectiveRaw as ty, prepareConfig as u, TrackerContextStore as uC, useGlobalCopyPasteElementHandler as uS, isAuthStore as uT, UpsellData as u_, DocumentPermission as ua, CommentMessage as ub, AssetSourcesResolver as uc, FieldSetMember as ud, escapeField as uf, UserId as ug, FieldOperationsAPI as uh, useCurrentUser as ui, AvatarSkeleton as ul, MetaInfoProps as um, MemberItemError as un, TimelineController as uo, useScheduleAction as up, HoveredFieldProvider as ur, FieldProps as us, SchemaPluginOptions as ut, serializeError as uu, FormPatchJSONValue as uv, SelectedPerspective as uw, LocalesBundlesOption as ux, SearchPopoverProps as uy, ConfigResolutionError as v, ConnectorContextValue as vC, useDocumentOperationEvent as vS, createAuthStore as vT, InterpolationProp as v_, PermissionCheckResult as va, CommentTaskCreatePayload as vb, StudioReferenceInput as vc, DocumentFormNode as vd, isCardinalityOnePerspective as vf, useInStudioFeedback as vg, StringDiff$1 as vh, useComlinkStore as vi, TooltipOfDisabled as vl, Event$1 as vm, ArrayOfObjectsMemberProps as vn, DocumentVersion as vo, DocumentActionModalDialogProps as vp, useGetFormValue as vr, BaseInputProps as vs, WorkspaceHiddenContext as vt, formatRelativeLocalePublishDate as vu, StudioToolMenu as vv, collate as vw, UserListWithPermissionsOptions as vx, useColorSchemeInternalValue as vy, AppsOptions as w, useOnlyHasVersions as wC, DocumentPairLoadedEvent as wS, AuthConfig as wT, UpsellDialogViewedInfo as w_, useDocumentValues as wa, CommentsTextSelectionItem as wb, FormBuilder as wc, ObjectFormNode as wd, isRecord as wf, StudioFeedbackDialog as wg, getValueError as wh, useKeyValueStore as wi, RovingFocusNavigationType as wl, DiffInspectWrapper as wm, TelephoneInputProps as wn, checkoutPair as wo, isSanityDefinedAction as wp, FormContainer as wr, NumberInputProps as ws, ReleaseActionProps as wt, isReleasePerspective as wu, NavbarProps as wv, getPublishedId as ww, useUnitFormatter as wx, StudioThemeColorSchemeKey as wy, ConfigPropertyErrorOptions as x, ChangeFieldWrapper as xC, useDocumentIdStack as xS, AuthStore as xT, UpsellDialogLearnMoreCtaClicked as x_, useInitialValueResolverContext as xa, CommentUpdateOperationOptions as xb, StudioCrossDatasetReferenceInputProps as xc, NodeDiffProps as xd, PartialExcept as xf, FeedbackPayload as xg, StringSegmentUnchanged$1 as xh, useDocumentStore as xi, StatusButton as xl, DiffTooltipWithAnnotationsProps as xm, TextInput as xn, Pair as xo, DuplicateActionProps as xp, useFormValue as xr, EditorChange as xs, WorkspaceSummary as xt, isPublishedPerspective as xu, LayoutProps as xv, documentIdEquals as xw, FormattableMeasurementUnit as xx, useColorSchemeValue as xy, ConfigResolutionErrorOptions as y, ChangeIndicator as yC, useDocumentOperation as yS, AuthProbeResult as yT, UpsellDescriptionSerializer as y_, useResolveInitialValueForType as ya, CommentTextSelection as yb, StudioReferenceInputProps as yc, HiddenField as yd, isCardinalityOneRelease as yf, BaseFeedbackTags as yg, StringDiffSegment as yh, useConnectionStatusStore as yi, TextWithTone as yl, DiffTooltip as ym, UrlInput as yn, DocumentVersionEvent as yo, DocumentActionPopoverDialogProps as yp, FormValueContextValue as yr, BooleanInputProps as ys, WorkspaceHiddenProperty as yt, getDocumentIsInPerspective as yu, StudioNavbar as yv, createDraftFrom as yw, UserWithPermission as yx, useColorSchemeOptions as yy, DocumentBadgesContext as z, DocumentAvailability as zC, CommitFunction as zS, useSource as z_, InitialValueState as za, UseTranslationOptions as zb, ParseErrorsProvider as zc, ALL_FIELDS_GROUP as zd, LegacyThemeProps as zf, CollapseMenuButtonProps as zg, PublishDocumentVersionEvent as zh, createPresenceStore as zi, MediaPreviewProps as zl, ChangeList as zm, AssetAccessPolicy as zn, SanityDefaultPreviewProps as zo, getItemKeySegment as zp, FormFieldSetProps as zr, RenderItemCallback as zs, DocumentFieldActionHook as zt, useSetVariant as zu, SearchOperatorType as zv, getDocumentVariantType as zw, Template as zx, useWorkspaces as zy };
@@ -556,9 +556,13 @@ declare const structureLocaleStrings: {
556
556
  'menu-item-groups.layout-group': string; /** The menu item group title to use for the Sort menu items */
557
557
  'menu-item-groups.sorting-group': string; /** The menu item title to use the compact view */
558
558
  'menu-items.layout.compact-view': string; /** The menu item title to use the detailed view */
559
- 'menu-items.layout.detailed-view': string; /** The menu item title to Sort by Created */
559
+ 'menu-items.layout.detailed-view': string; /** The menu item title that restores the structure-configured default layout */
560
+ 'menu-items.layout.restore-default': string; /** Tooltip shown when the restore-default layout item is disabled (default already in use) */
561
+ 'menu-items.layout.restore-default.disabled-reason': string; /** The menu item title to Sort by Created */
560
562
  'menu-items.sort-by.created': string; /** The menu item title to Sort by Last Edited */
561
- 'menu-items.sort-by.last-edited': string; /** The link text of the no document type screen that appears directly below the subtitle */
563
+ 'menu-items.sort-by.last-edited': string; /** The menu item title that restores the structure-configured default sort order */
564
+ 'menu-items.sort-by.restore-default': string; /** Tooltip shown when the restore-default sort item is disabled (default already in use) */
565
+ 'menu-items.sort-by.restore-default.disabled-reason': string; /** The link text of the no document type screen that appears directly below the subtitle */
562
566
  'no-document-types-screen.link-text': string; /** The subtitle of the no document type screen that appears directly below the title */
563
567
  'no-document-types-screen.subtitle': string; /** The title of the no document type screen */
564
568
  'no-document-types-screen.title': string; /** Text shown on back button visible on smaller breakpoints */
@@ -590,7 +594,11 @@ declare const structureLocaleStrings: {
590
594
  'panes.document-list-pane.no-matching-documents.text': string; /** The search input for the search input on the document list pane */
591
595
  'panes.document-list-pane.reconnecting': string; /** The aria-label for the search input on the document list pane */
592
596
  'panes.document-list-pane.search-input.aria-label': string; /** The search input for the search input on the document list pane */
593
- 'panes.document-list-pane.search-input.placeholder': string; /** The tooltip text shown when a sort menu item references fields not present in the current schema */
597
+ 'panes.document-list-pane.search-input.placeholder': string; /** The aria-label for the sort-order control shown beneath the document list search input */
598
+ 'panes.document-list-pane.search-ordering.aria-label': string; /** The label for the sort-order control beneath the search input, summarising the applied ordering (e.g. "Sorted by relevance") */
599
+ 'panes.document-list-pane.search-ordering.label': string; /** The label for the relevance (best match) option in the document list search sort-order control */
600
+ 'panes.document-list-pane.search-ordering.relevance': string; /** The sort-order control summary shown when results are ranked by relevance */
601
+ 'panes.document-list-pane.search-ordering.summary-relevance': string; /** The tooltip text shown when a sort menu item references fields not present in the current schema */
594
602
  'panes.document-list-pane.sort-order.disabled-reason': string; /** The summary title when displaying an error for a document operation result */
595
603
  'panes.document-operation-results.error.summary.title': string; /** The text when a generic operation failed (fallback, generally not shown) */
596
604
  'panes.document-operation-results.operation-error': string; /** The text when a delete operation failed */
@@ -1 +1 @@
1
- {"version":3,"file":"LiveQueries.js","sources":["../../src/presentation/loader/useLiveEvents.ts","../../src/presentation/loader/utils.ts","../../src/presentation/loader/useLiveQueries.ts","../../src/presentation/loader/LiveQueries.tsx"],"sourcesContent":["import {type LiveEvent, type LiveEventMessage} from '@sanity/client'\nimport {useDeferredValue, useEffect, useReducer, useState} from 'react'\nimport {type SanityClient} from 'sanity'\n\ntype State = {\n /**\n * Growing list over live events with Sync Tags,\n * that can be used to refetch with Sanity Client, using the id as the lastLiveEventId parameter\n */\n messages: LiveEventMessage[]\n /**\n * If the connection experiences a reconnect, or a restart event is received, the counter is incremented.\n * This counter is suitable as a `key` on React Components as a way to reset its internal state and refetch.\n */\n resets: number\n}\n\nexport function reducer(state: State, event: LiveEvent): State {\n switch (event.type) {\n case 'message':\n return {\n ...state,\n messages: [...state.messages, event],\n }\n case 'reconnect':\n case 'restart':\n return {\n ...state,\n messages: [],\n resets: state.resets + 1,\n }\n case 'welcome':\n // no-op\n return state\n default:\n throw Error(\n `Unknown event: ${\n // oxlint-disable-next-line no-explicit-any\n (event as any).type\n }`,\n {cause: event},\n )\n }\n}\n\nexport const initialState: State = {\n messages: [],\n resets: 0,\n}\n\nexport function useLiveEvents(client: SanityClient): State {\n const [state, dispatch] = useReducer(reducer, initialState)\n const [error, setError] = useState<unknown>(null)\n if (error !== null) {\n // Push error to nearest error boundary\n throw error\n }\n\n useEffect(() => {\n const subscription = client.live\n .events({includeDrafts: true, tag: 'presentation-loader'})\n .subscribe({\n next: dispatch,\n error: (err) =>\n setError(\n err instanceof Error\n ? err\n : new Error('Unexpected error in useLiveEvents', {cause: err}),\n ),\n })\n return () => subscription.unsubscribe()\n }, [client.live])\n\n return useDeferredValue(state)\n}\n","import {toPlainText} from '@portabletext/react'\nimport {isPortableTextBlock} from '@portabletext/toolkit'\nimport {type ClientPerspective, type QueryParams} from '@sanity/client'\nimport {type ApplySourceDocumentsUpdateFunction} from '@sanity/client/csm'\nimport {type FIXME} from 'sanity'\n\n/**\n * Used by `applySourceDocuments`\n * @internal\n */\nexport const mapChangedValue: ApplySourceDocumentsUpdateFunction = (\n changedValue: FIXME,\n {previousValue},\n) => {\n if (typeof previousValue === 'string') {\n if (typeof changedValue === 'number') {\n // If the string() function was used in the query, we need to convert the source value to a string as well\n return `${changedValue}`\n }\n // If it's an array in the source, but a string in the query response, it could be pt::text\n if (Array.isArray(changedValue)) {\n if (changedValue.length === 0) {\n // If it's empty assume it's PT and return an empty string\n return ''\n }\n // If the array contains any valid block type, assume the GROQ initially used pt::text on it and do the same conversion\n if (changedValue.some((node) => typeof node === 'object' && isPortableTextBlock(node))) {\n return toPlainText(changedValue)\n }\n }\n }\n\n return changedValue\n}\n\n/**\n * @internal\n */\nexport type QueryCacheKey = `${string}:${string}:${string}`\n/**\n * @internal\n */\nexport function getQueryCacheKey(\n perspective: ClientPerspective,\n query: string,\n params: QueryParams,\n): QueryCacheKey {\n return `${perspective}:${query}:${JSON.stringify(params)}`\n}\n","import {type ClientPerspective} from '@sanity/client'\nimport isEqual from 'fast-deep-equal'\nimport {useDeferredValue, useEffect, useReducer} from 'react'\nimport {type QueryParams} from 'sanity'\n\nimport {LOADER_QUERY_GC_INTERVAL} from '../constants'\nimport {getQueryCacheKey, type QueryCacheKey} from './utils'\n\ntype LiveQueriesState = Map<\n QueryCacheKey,\n {\n query: string\n params: QueryParams\n perspective: ClientPerspective\n }\n>\n\ntype State = {\n queries: LiveQueriesState\n heartbeats: Map<\n QueryCacheKey,\n {\n receivedAt: number\n /**\n * If false it means the query can't safely be garbage collected,\n * as older versions of \\@sanity/core-loader doesn't fire listen events\n * on an interval.\n */\n heartbeat: number | false\n }\n >\n}\n\ntype QueryListenAction = {\n type: 'query-listen'\n payload: {\n perspective: ClientPerspective\n query: string\n params: QueryParams\n heartbeat: number | false\n }\n}\ntype GarbageCollectAction = {type: 'gc'}\ntype Action = QueryListenAction | GarbageCollectAction\n\nfunction gc(state: State): State {\n if (state.queries.size < 1) {\n return state\n }\n\n const now = Date.now()\n const hasAnyExpired = Array.from(state.heartbeats.values()).some(\n (entry) => entry.heartbeat !== false && now > entry.receivedAt + entry.heartbeat,\n )\n if (!hasAnyExpired) {\n return state\n }\n const nextHeartbeats = new Map()\n const nextQueries = new Map()\n for (const [key, entry] of state.heartbeats.entries()) {\n if (entry.heartbeat !== false && now > entry.receivedAt + entry.heartbeat) {\n continue\n }\n nextHeartbeats.set(key, entry)\n nextQueries.set(key, state.queries.get(key))\n }\n\n return {...state, queries: nextQueries, heartbeats: nextHeartbeats}\n}\nfunction queryListen(state: State, {payload}: QueryListenAction): State {\n const key = getQueryCacheKey(payload.perspective, payload.query, payload.params)\n const data = {query: payload.query, params: payload.params, perspective: payload.perspective}\n\n const nextHeartbeats = new Map(state.heartbeats)\n nextHeartbeats.set(key, {\n receivedAt: Date.now(),\n heartbeat: payload.heartbeat,\n })\n\n let nextQueries = state.queries\n /**\n * The data comes from a postMessage event, which uses the structured clone algorithm to serialize state (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage#message).\n * This impacts `params`, which is an object, as it will be a new object every time even if the sender is sending the same object instance on their end.\n * It also impacts `perspective`, as it's no longer just a string, but can also be an array of strings.\n * Both cases are handled by fast-deep-equal, which is used to compare the data before deciding wether the state should be updated.\n */\n if (!state.queries.has(key) || !isEqual(state.queries.get(key), data)) {\n nextQueries = new Map(state.queries)\n nextQueries.set(key, data)\n }\n\n return {heartbeats: nextHeartbeats, queries: nextQueries}\n}\n\nexport function reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'query-listen':\n return queryListen(state, action)\n case 'gc':\n return gc(state)\n default:\n throw Error(\n `Unknown action: ${\n // oxlint-disable-next-line no-explicit-any\n (action as any).type\n }`,\n {cause: action},\n )\n }\n}\n\nexport const initialState: State = {\n queries: new Map(),\n heartbeats: new Map(),\n}\n\nexport function useLiveQueries(): [LiveQueriesState, React.ActionDispatch<[action: Action]>] {\n const [state, dispatch] = useReducer(reducer, initialState)\n\n useEffect(() => {\n const interval = setInterval(() => dispatch({type: 'gc'}), LOADER_QUERY_GC_INTERVAL)\n return () => clearInterval(interval)\n }, [])\n\n const queries = useDeferredValue(state.queries)\n return [queries, dispatch]\n}\n","import {\n type ClientPerspective,\n type ContentSourceMap,\n type LiveEventMessage,\n type QueryParams,\n type SyncTag,\n} from '@sanity/client'\nimport {applySourceDocuments, getPublishedId} from '@sanity/client/csm'\nimport {\n type ChannelInstance,\n type Controller,\n createConnectionMachine,\n type StatusEvent,\n} from '@sanity/comlink'\nimport {\n createCompatibilityActors,\n type LoaderControllerMsg,\n type LoaderNodeMsg,\n} from '@sanity/presentation-comlink'\nimport isEqual from 'fast-deep-equal'\nimport {\n memo,\n startTransition,\n useDeferredValue,\n useEffect,\n useEffectEvent,\n useMemo,\n useState,\n} from 'react'\nimport {\n isReleasePerspective,\n RELEASES_STUDIO_CLIENT_OPTIONS,\n type SanityClient,\n type SanityDocument,\n useClient,\n useDataset,\n useProjectId,\n} from 'sanity'\n\nimport {API_VERSION, MIN_LOADER_QUERY_LISTEN_HEARTBEAT_INTERVAL} from '../constants'\nimport {type LoaderConnection, type PresentationPerspective} from '../types'\nimport {type DocumentOnPage} from '../useDocumentsOnPage'\nimport {useLiveEvents} from './useLiveEvents'\nimport {useLiveQueries} from './useLiveQueries'\nimport {mapChangedValue} from './utils'\n\nexport interface LiveQueriesProps {\n liveDocument: Partial<SanityDocument> | null | undefined\n controller: Controller | undefined\n perspective: ClientPerspective\n onLoadersConnection: (event: StatusEvent) => void\n onDocumentsOnPage: (\n key: string,\n perspective: PresentationPerspective,\n state: DocumentOnPage[],\n ) => void\n}\n\nexport default function LiveQueries(props: LiveQueriesProps): React.JSX.Element {\n const {controller, perspective: activePerspective, onLoadersConnection, onDocumentsOnPage} = props\n\n const [comlink, setComlink] = useState<ChannelInstance<LoaderControllerMsg, LoaderNodeMsg>>()\n const [liveQueries, liveQueriesDispatch] = useLiveQueries()\n\n const projectId = useProjectId()\n const dataset = useDataset()\n\n useEffect((): (() => void) => {\n if (controller) {\n const nextComlink = controller.createChannel<LoaderControllerMsg, LoaderNodeMsg>(\n {\n name: 'presentation',\n connectTo: 'loaders',\n heartbeat: true,\n },\n createConnectionMachine<LoaderControllerMsg, LoaderNodeMsg>().provide({\n actors: createCompatibilityActors<LoaderControllerMsg>(),\n }),\n )\n setComlink(nextComlink)\n\n nextComlink.onStatus(onLoadersConnection)\n\n nextComlink.on('loader/documents', (data) => {\n if (data.projectId === projectId && data.dataset === dataset) {\n onDocumentsOnPage(\n 'loaders',\n // oxlint-disable-next-line no-explicit-any\n data.perspective as unknown as any,\n data.documents,\n )\n }\n })\n\n nextComlink.on('loader/query-listen', (data) => {\n if (data.projectId === projectId && data.dataset === dataset) {\n if (\n typeof data.heartbeat === 'number' &&\n data.heartbeat < MIN_LOADER_QUERY_LISTEN_HEARTBEAT_INTERVAL\n ) {\n throw new Error(\n `Loader query listen heartbeat interval must be at least ${MIN_LOADER_QUERY_LISTEN_HEARTBEAT_INTERVAL}ms`,\n )\n }\n liveQueriesDispatch({\n type: 'query-listen',\n payload: {\n perspective: data.perspective,\n query: data.query,\n params: data.params,\n heartbeat: data.heartbeat ?? false,\n },\n })\n }\n })\n\n return nextComlink.start()\n }\n return () => undefined\n }, [controller, dataset, liveQueriesDispatch, onDocumentsOnPage, onLoadersConnection, projectId])\n\n const studioClient = useClient(\n isReleasePerspective(activePerspective)\n ? RELEASES_STUDIO_CLIENT_OPTIONS\n : {apiVersion: API_VERSION},\n )\n const client = useMemo(\n () =>\n studioClient.withConfig({\n resultSourceMap: 'withKeyArraySelector',\n }),\n [studioClient],\n )\n useEffect(() => {\n if (comlink) {\n comlink.post('loader/perspective', {\n projectId,\n dataset,\n perspective: activePerspective,\n })\n }\n }, [comlink, activePerspective, projectId, dataset])\n\n /**\n * Defer the liveDocument to avoid unnecessary rerenders on rapid edits\n */\n const liveDocument = useDeferredValue(props.liveDocument)\n\n const liveEvents = useLiveEvents(client)\n\n return (\n <>\n {[...liveQueries.entries()].map(([key, {query, params, perspective}]) => (\n <QuerySubscription\n key={`${liveEvents.resets}:${key}`}\n projectId={projectId}\n dataset={dataset}\n perspective={perspective}\n query={query}\n params={params}\n comlink={comlink}\n client={client}\n liveDocument={liveDocument}\n liveEventsMessages={liveEvents.messages}\n />\n ))}\n </>\n )\n}\n\ninterface SharedProps {\n /**\n * The Sanity client to use for fetching data and listening to mutations.\n */\n client: SanityClient\n}\n\ninterface QuerySubscriptionProps extends Pick<\n UseQuerySubscriptionProps,\n 'client' | 'liveDocument' | 'liveEventsMessages'\n> {\n projectId: string\n dataset: string\n perspective: ClientPerspective\n query: string\n params: QueryParams\n comlink: LoaderConnection | undefined\n}\nfunction QuerySubscriptionComponent(props: QuerySubscriptionProps) {\n const {\n projectId,\n dataset,\n perspective,\n query,\n client,\n liveDocument,\n params,\n comlink,\n liveEventsMessages,\n } = props\n\n const {\n result,\n resultSourceMap,\n syncTags: tags,\n } = useQuerySubscription({\n client,\n liveDocument,\n params,\n perspective,\n query,\n liveEventsMessages,\n }) || {}\n\n /* eslint-disable max-params */\n const handleQueryChange = useEffectEvent(\n (\n comlink: LoaderConnection | undefined,\n perspective: ClientPerspective,\n query: string,\n params: QueryParams,\n result: unknown,\n resultSourceMap: ContentSourceMap | undefined,\n tags: `s1:${string}`[] | undefined,\n ) => {\n comlink?.post('loader/query-change', {\n projectId,\n dataset,\n perspective,\n query,\n params,\n result,\n resultSourceMap,\n tags,\n })\n },\n )\n /* eslint-enable max-params */\n\n useEffect(() => {\n if (resultSourceMap) {\n handleQueryChange(comlink, perspective, query, params, result, resultSourceMap, tags)\n }\n return undefined\n }, [comlink, params, perspective, query, result, resultSourceMap, tags])\n\n return null\n}\nconst QuerySubscription = memo(QuerySubscriptionComponent)\nQuerySubscription.displayName = 'Memo(QuerySubscription)'\n\ninterface UseQuerySubscriptionProps extends Required<Pick<SharedProps, 'client'>> {\n liveDocument: Partial<SanityDocument> | null | undefined\n query: string\n params: QueryParams\n perspective: ClientPerspective\n liveEventsMessages: LiveEventMessage[]\n}\nfunction useQuerySubscription(props: UseQuerySubscriptionProps) {\n const {liveDocument, client, query, params, perspective, liveEventsMessages} = props\n const [result, setResult] = useState<unknown>(null)\n const [resultSourceMap, setResultSourceMap] = useState<ContentSourceMap | null | undefined>(null)\n const [syncTags, setSyncTags] = useState<SyncTag[] | undefined>(undefined)\n const [skipEventIds] = useState(() => new Set(liveEventsMessages.map((msg) => msg.id)))\n const recentLiveEvents = liveEventsMessages.filter((msg) => !skipEventIds.has(msg.id))\n const lastLiveEvent = recentLiveEvents.findLast((msg) =>\n msg.tags.some((tag) => syncTags?.includes(tag)),\n )\n const lastLiveEventId = lastLiveEvent?.id\n\n // Make sure any async errors bubble up to the nearest error boundary\n const [error, setError] = useState<unknown>(null)\n if (error) throw error\n\n /* eslint-disable max-nested-callbacks */\n useEffect(() => {\n const controller = new AbortController()\n\n client\n .fetch(query, params, {\n lastLiveEventId,\n tag: 'presentation-loader',\n signal: controller.signal,\n perspective,\n filterResponse: false,\n returnQuery: false,\n })\n .then((response) => {\n startTransition(() => {\n setResult((prev: unknown) => (isEqual(prev, response.result) ? prev : response.result))\n setResultSourceMap((prev) =>\n isEqual(prev, response.resultSourceMap) ? prev : response.resultSourceMap,\n )\n setSyncTags((prev) => (isEqual(prev, response.syncTags) ? prev : response.syncTags))\n })\n })\n .catch((err) => {\n if (typeof err !== 'object' || err?.name !== 'AbortError') {\n setError(err)\n }\n })\n\n return () => {\n controller.abort()\n }\n }, [client, lastLiveEventId, params, perspective, query])\n /* eslint-enable max-nested-callbacks */\n\n return useMemo(() => {\n if (liveDocument && resultSourceMap) {\n return {\n result: turboChargeResultIfSourceMap(liveDocument, result, perspective, resultSourceMap),\n resultSourceMap,\n syncTags,\n }\n }\n return {result, resultSourceMap, syncTags}\n }, [liveDocument, perspective, result, resultSourceMap, syncTags])\n}\n\nexport function turboChargeResultIfSourceMap<T = unknown>(\n liveDocument: Partial<SanityDocument> | null | undefined,\n result: T,\n perspective: ClientPerspective,\n resultSourceMap?: ContentSourceMap,\n): T {\n if (perspective === 'raw') {\n throw new Error('turboChargeResultIfSourceMap does not support raw perspective')\n }\n return applySourceDocuments(\n result,\n resultSourceMap,\n (sourceDocument) => {\n // If there's a displayed document, always prefer it\n if (\n // If _projectId is set, it's a cross dataset reference and we should skip it\n !sourceDocument._projectId &&\n liveDocument?._id &&\n getPublishedId(liveDocument._id) === getPublishedId(sourceDocument._id)\n ) {\n if (typeof liveDocument._id === 'string' && typeof sourceDocument._type === 'string') {\n return liveDocument as unknown as Required<Pick<SanityDocument, '_id' | '_type'>>\n }\n return {\n ...liveDocument,\n _id: liveDocument._id || sourceDocument._id,\n _type: liveDocument._type || sourceDocument._type,\n }\n }\n return null\n },\n mapChangedValue,\n Array.isArray(perspective) ? perspective.filter(Boolean) : perspective,\n )\n}\n"],"names":["reducer","state","event","type","messages","resets","Error","cause","initialState","useLiveEvents","client","$","_c","dispatch","useReducer","error","setError","useState","t0","t1","live","subscription","events","includeDrafts","tag","subscribe","next","err","unsubscribe","useEffect","useDeferredValue","mapChangedValue","changedValue","previousValue","Array","isArray","length","some","node","isPortableTextBlock","toPlainText","getQueryCacheKey","perspective","query","params","JSON","stringify","gc","queries","size","now","Date","from","heartbeats","values","entry","heartbeat","receivedAt","nextHeartbeats","Map","nextQueries","key","entries","set","get","queryListen","payload","data","has","isEqual","action","useLiveQueries","Symbol","for","interval","setInterval","LOADER_QUERY_GC_INTERVAL","clearInterval","t2","LiveQueries","props","controller","activePerspective","onLoadersConnection","onDocumentsOnPage","comlink","setComlink","liveQueries","liveQueriesDispatch","projectId","useProjectId","dataset","useDataset","nextComlink","createChannel","name","connectTo","createConnectionMachine","provide","actors","createCompatibilityActors","onStatus","on","documents","data_0","MIN_LOADER_QUERY_LISTEN_HEARTBEAT_INTERVAL","start","_temp","isReleasePerspective","RELEASES_STUDIO_CLIENT_OPTIONS","apiVersion","API_VERSION","studioClient","useClient","t3","withConfig","resultSourceMap","t4","t5","post","liveDocument","liveEvents","t6","t7","map","t8","t9","QuerySubscriptionComponent","liveEventsMessages","result","syncTags","tags","useQuerySubscription","comlink_0","perspective_0","query_0","params_0","result_0","resultSourceMap_0","tags_0","handleQueryChange","useEffectEvent","QuerySubscription","memo","displayName","setResult","setResultSourceMap","setSyncTags","undefined","Set","_temp2","skipEventIds","msg_0","msg","id","recentLiveEvents","filter","msg_1","includes","findLast","lastLiveEventId","AbortController","fetch","signal","filterResponse","returnQuery","then","response","startTransition","prev","prev_0","prev_1","catch","abort","bb0","turboChargeResultIfSourceMap","applySourceDocuments","sourceDocument","_projectId","_id","getPublishedId","_type","Boolean"],"mappings":"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"}
1
+ {"version":3,"file":"LiveQueries.js","sources":["../../src/presentation/loader/useLiveEvents.ts","../../src/presentation/loader/utils.ts","../../src/presentation/loader/useLiveQueries.ts","../../src/presentation/loader/LiveQueries.tsx"],"sourcesContent":["import {type LiveEvent, type LiveEventMessage} from '@sanity/client'\nimport {useDeferredValue, useEffect, useReducer, useState} from 'react'\nimport {type SanityClient} from 'sanity'\n\ntype State = {\n /**\n * Growing list over live events with Sync Tags,\n * that can be used to refetch with Sanity Client, using the id as the lastLiveEventId parameter\n */\n messages: LiveEventMessage[]\n /**\n * If the connection experiences a reconnect, or a restart event is received, the counter is incremented.\n * This counter is suitable as a `key` on React Components as a way to reset its internal state and refetch.\n */\n resets: number\n}\n\nexport function reducer(state: State, event: LiveEvent): State {\n switch (event.type) {\n case 'message':\n return {\n ...state,\n messages: [...state.messages, event],\n }\n case 'reconnect':\n case 'restart':\n return {\n ...state,\n messages: [],\n resets: state.resets + 1,\n }\n case 'welcome':\n // no-op\n return state\n default:\n throw Error(\n `Unknown event: ${\n // oxlint-disable-next-line no-explicit-any\n (event as any).type\n }`,\n {cause: event},\n )\n }\n}\n\nexport const initialState: State = {\n messages: [],\n resets: 0,\n}\n\nexport function useLiveEvents(client: SanityClient): State {\n const [state, dispatch] = useReducer(reducer, initialState)\n const [error, setError] = useState<unknown>(null)\n if (error !== null) {\n // Push error to nearest error boundary\n throw error\n }\n\n useEffect(() => {\n const subscription = client.live\n .events({includeDrafts: true, tag: 'presentation-loader'})\n .subscribe({\n next: dispatch,\n error: (err) =>\n setError(\n err instanceof Error\n ? err\n : new Error('Unexpected error in useLiveEvents', {cause: err}),\n ),\n })\n return () => subscription.unsubscribe()\n }, [client.live])\n\n return useDeferredValue(state)\n}\n","import {toPlainText} from '@portabletext/react'\nimport {isPortableTextBlock} from '@portabletext/toolkit'\nimport {type ClientPerspective, type QueryParams} from '@sanity/client'\nimport {type ApplySourceDocumentsUpdateFunction} from '@sanity/client/csm'\nimport {type FIXME} from 'sanity'\n\n/**\n * Used by `applySourceDocuments`\n * @internal\n */\nexport const mapChangedValue: ApplySourceDocumentsUpdateFunction = (\n changedValue: FIXME,\n {previousValue},\n) => {\n if (typeof previousValue === 'string') {\n if (typeof changedValue === 'number') {\n // If the string() function was used in the query, we need to convert the source value to a string as well\n return `${changedValue}`\n }\n // If it's an array in the source, but a string in the query response, it could be pt::text\n if (Array.isArray(changedValue)) {\n if (changedValue.length === 0) {\n // If it's empty assume it's PT and return an empty string\n return ''\n }\n // If the array contains any valid block type, assume the GROQ initially used pt::text on it and do the same conversion\n if (changedValue.some((node) => typeof node === 'object' && isPortableTextBlock(node))) {\n return toPlainText(changedValue)\n }\n }\n }\n\n return changedValue\n}\n\n/**\n * @internal\n */\nexport type QueryCacheKey = `${string}:${string}:${string}`\n/**\n * @internal\n */\nexport function getQueryCacheKey(\n perspective: ClientPerspective,\n query: string,\n params: QueryParams,\n): QueryCacheKey {\n return `${perspective}:${query}:${JSON.stringify(params)}`\n}\n","import {type ClientPerspective} from '@sanity/client'\nimport isEqual from 'fast-deep-equal'\nimport {useDeferredValue, useEffect, useReducer} from 'react'\nimport {type QueryParams} from 'sanity'\n\nimport {LOADER_QUERY_GC_INTERVAL} from '../constants'\nimport {getQueryCacheKey, type QueryCacheKey} from './utils'\n\ntype LiveQueriesState = Map<\n QueryCacheKey,\n {\n query: string\n params: QueryParams\n perspective: ClientPerspective\n }\n>\n\ntype State = {\n queries: LiveQueriesState\n heartbeats: Map<\n QueryCacheKey,\n {\n receivedAt: number\n /**\n * If false it means the query can't safely be garbage collected,\n * as older versions of \\@sanity/core-loader doesn't fire listen events\n * on an interval.\n */\n heartbeat: number | false\n }\n >\n}\n\ntype QueryListenAction = {\n type: 'query-listen'\n payload: {\n perspective: ClientPerspective\n query: string\n params: QueryParams\n heartbeat: number | false\n }\n}\ntype GarbageCollectAction = {type: 'gc'}\ntype Action = QueryListenAction | GarbageCollectAction\n\nfunction gc(state: State): State {\n if (state.queries.size < 1) {\n return state\n }\n\n const now = Date.now()\n const hasAnyExpired = Array.from(state.heartbeats.values()).some(\n (entry) => entry.heartbeat !== false && now > entry.receivedAt + entry.heartbeat,\n )\n if (!hasAnyExpired) {\n return state\n }\n const nextHeartbeats = new Map()\n const nextQueries = new Map()\n for (const [key, entry] of state.heartbeats.entries()) {\n if (entry.heartbeat !== false && now > entry.receivedAt + entry.heartbeat) {\n continue\n }\n nextHeartbeats.set(key, entry)\n nextQueries.set(key, state.queries.get(key))\n }\n\n return {...state, queries: nextQueries, heartbeats: nextHeartbeats}\n}\nfunction queryListen(state: State, {payload}: QueryListenAction): State {\n const key = getQueryCacheKey(payload.perspective, payload.query, payload.params)\n const data = {query: payload.query, params: payload.params, perspective: payload.perspective}\n\n const nextHeartbeats = new Map(state.heartbeats)\n nextHeartbeats.set(key, {\n receivedAt: Date.now(),\n heartbeat: payload.heartbeat,\n })\n\n let nextQueries = state.queries\n /**\n * The data comes from a postMessage event, which uses the structured clone algorithm to serialize state (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage#message).\n * This impacts `params`, which is an object, as it will be a new object every time even if the sender is sending the same object instance on their end.\n * It also impacts `perspective`, as it's no longer just a string, but can also be an array of strings.\n * Both cases are handled by fast-deep-equal, which is used to compare the data before deciding wether the state should be updated.\n */\n if (!state.queries.has(key) || !isEqual(state.queries.get(key), data)) {\n nextQueries = new Map(state.queries)\n nextQueries.set(key, data)\n }\n\n return {heartbeats: nextHeartbeats, queries: nextQueries}\n}\n\nexport function reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'query-listen':\n return queryListen(state, action)\n case 'gc':\n return gc(state)\n default:\n throw Error(\n `Unknown action: ${\n // oxlint-disable-next-line no-explicit-any\n (action as any).type\n }`,\n {cause: action},\n )\n }\n}\n\nexport const initialState: State = {\n queries: new Map(),\n heartbeats: new Map(),\n}\n\nexport function useLiveQueries(): [LiveQueriesState, React.ActionDispatch<[action: Action]>] {\n const [state, dispatch] = useReducer(reducer, initialState)\n\n useEffect(() => {\n const interval = setInterval(() => dispatch({type: 'gc'}), LOADER_QUERY_GC_INTERVAL)\n return () => clearInterval(interval)\n }, [])\n\n const queries = useDeferredValue(state.queries)\n return [queries, dispatch]\n}\n","import {\n type ClientPerspective,\n type ContentSourceMap,\n type LiveEventMessage,\n type QueryParams,\n type SyncTag,\n} from '@sanity/client'\nimport {applySourceDocuments, getPublishedId} from '@sanity/client/csm'\nimport {\n type ChannelInstance,\n type Controller,\n createConnectionMachine,\n type StatusEvent,\n} from '@sanity/comlink'\nimport {\n createCompatibilityActors,\n type LoaderControllerMsg,\n type LoaderNodeMsg,\n} from '@sanity/presentation-comlink'\nimport isEqual from 'fast-deep-equal'\nimport {\n memo,\n startTransition,\n useDeferredValue,\n useEffect,\n useEffectEvent,\n useMemo,\n useState,\n} from 'react'\nimport {\n isReleasePerspective,\n RELEASES_STUDIO_CLIENT_OPTIONS,\n type SanityClient,\n type SanityDocument,\n useClient,\n useDataset,\n useProjectId,\n} from 'sanity'\n\nimport {API_VERSION, MIN_LOADER_QUERY_LISTEN_HEARTBEAT_INTERVAL} from '../constants'\nimport {type LoaderConnection, type PresentationPerspective} from '../types'\nimport {type DocumentOnPage} from '../useDocumentsOnPage'\nimport {useLiveEvents} from './useLiveEvents'\nimport {useLiveQueries} from './useLiveQueries'\nimport {mapChangedValue} from './utils'\n\nexport interface LiveQueriesProps {\n liveDocument: Partial<SanityDocument> | null | undefined\n controller: Controller | undefined\n perspective: ClientPerspective\n onLoadersConnection: (event: StatusEvent) => void\n onDocumentsOnPage: (\n key: string,\n perspective: PresentationPerspective,\n state: DocumentOnPage[],\n ) => void\n}\n\nexport default function LiveQueries(props: LiveQueriesProps): React.JSX.Element {\n const {controller, perspective: activePerspective, onLoadersConnection, onDocumentsOnPage} = props\n\n const [comlink, setComlink] = useState<ChannelInstance<LoaderControllerMsg, LoaderNodeMsg>>()\n const [liveQueries, liveQueriesDispatch] = useLiveQueries()\n\n const projectId = useProjectId()\n const dataset = useDataset()\n\n useEffect((): (() => void) => {\n if (controller) {\n const nextComlink = controller.createChannel<LoaderControllerMsg, LoaderNodeMsg>(\n {\n name: 'presentation',\n connectTo: 'loaders',\n heartbeat: true,\n },\n createConnectionMachine<LoaderControllerMsg, LoaderNodeMsg>().provide({\n actors: createCompatibilityActors<LoaderControllerMsg>(),\n }),\n )\n // oxlint-disable-next-line react/react-compiler\n setComlink(nextComlink)\n\n nextComlink.onStatus(onLoadersConnection)\n\n nextComlink.on('loader/documents', (data) => {\n if (data.projectId === projectId && data.dataset === dataset) {\n onDocumentsOnPage(\n 'loaders',\n // oxlint-disable-next-line no-explicit-any\n data.perspective as unknown as any,\n data.documents,\n )\n }\n })\n\n nextComlink.on('loader/query-listen', (data) => {\n if (data.projectId === projectId && data.dataset === dataset) {\n if (\n typeof data.heartbeat === 'number' &&\n data.heartbeat < MIN_LOADER_QUERY_LISTEN_HEARTBEAT_INTERVAL\n ) {\n throw new Error(\n `Loader query listen heartbeat interval must be at least ${MIN_LOADER_QUERY_LISTEN_HEARTBEAT_INTERVAL}ms`,\n )\n }\n liveQueriesDispatch({\n type: 'query-listen',\n payload: {\n perspective: data.perspective,\n query: data.query,\n params: data.params,\n heartbeat: data.heartbeat ?? false,\n },\n })\n }\n })\n\n return nextComlink.start()\n }\n return () => undefined\n }, [controller, dataset, liveQueriesDispatch, onDocumentsOnPage, onLoadersConnection, projectId])\n\n const studioClient = useClient(\n isReleasePerspective(activePerspective)\n ? RELEASES_STUDIO_CLIENT_OPTIONS\n : {apiVersion: API_VERSION},\n )\n const client = useMemo(\n () =>\n studioClient.withConfig({\n resultSourceMap: 'withKeyArraySelector',\n }),\n [studioClient],\n )\n useEffect(() => {\n if (comlink) {\n comlink.post('loader/perspective', {\n projectId,\n dataset,\n perspective: activePerspective,\n })\n }\n }, [comlink, activePerspective, projectId, dataset])\n\n /**\n * Defer the liveDocument to avoid unnecessary rerenders on rapid edits\n */\n const liveDocument = useDeferredValue(props.liveDocument)\n\n const liveEvents = useLiveEvents(client)\n\n return (\n <>\n {[...liveQueries.entries()].map(([key, {query, params, perspective}]) => (\n <QuerySubscription\n key={`${liveEvents.resets}:${key}`}\n projectId={projectId}\n dataset={dataset}\n perspective={perspective}\n query={query}\n params={params}\n comlink={comlink}\n client={client}\n liveDocument={liveDocument}\n liveEventsMessages={liveEvents.messages}\n />\n ))}\n </>\n )\n}\n\ninterface SharedProps {\n /**\n * The Sanity client to use for fetching data and listening to mutations.\n */\n client: SanityClient\n}\n\ninterface QuerySubscriptionProps extends Pick<\n UseQuerySubscriptionProps,\n 'client' | 'liveDocument' | 'liveEventsMessages'\n> {\n projectId: string\n dataset: string\n perspective: ClientPerspective\n query: string\n params: QueryParams\n comlink: LoaderConnection | undefined\n}\nfunction QuerySubscriptionComponent(props: QuerySubscriptionProps) {\n const {\n projectId,\n dataset,\n perspective,\n query,\n client,\n liveDocument,\n params,\n comlink,\n liveEventsMessages,\n } = props\n\n const {\n result,\n resultSourceMap,\n syncTags: tags,\n } = useQuerySubscription({\n client,\n liveDocument,\n params,\n perspective,\n query,\n liveEventsMessages,\n }) || {}\n\n const handleQueryChange = useEffectEvent(\n (\n comlink: LoaderConnection | undefined,\n perspective: ClientPerspective,\n query: string,\n params: QueryParams,\n result: unknown,\n resultSourceMap: ContentSourceMap | undefined,\n tags: `s1:${string}`[] | undefined,\n ) => {\n comlink?.post('loader/query-change', {\n projectId,\n dataset,\n perspective,\n query,\n params,\n result,\n resultSourceMap,\n tags,\n })\n },\n )\n\n useEffect(() => {\n if (resultSourceMap) {\n handleQueryChange(comlink, perspective, query, params, result, resultSourceMap, tags)\n }\n return undefined\n }, [comlink, params, perspective, query, result, resultSourceMap, tags])\n\n return null\n}\nconst QuerySubscription = memo(QuerySubscriptionComponent)\nQuerySubscription.displayName = 'Memo(QuerySubscription)'\n\ninterface UseQuerySubscriptionProps extends Required<Pick<SharedProps, 'client'>> {\n liveDocument: Partial<SanityDocument> | null | undefined\n query: string\n params: QueryParams\n perspective: ClientPerspective\n liveEventsMessages: LiveEventMessage[]\n}\nfunction useQuerySubscription(props: UseQuerySubscriptionProps) {\n const {liveDocument, client, query, params, perspective, liveEventsMessages} = props\n const [result, setResult] = useState<unknown>(null)\n const [resultSourceMap, setResultSourceMap] = useState<ContentSourceMap | null | undefined>(null)\n const [syncTags, setSyncTags] = useState<SyncTag[] | undefined>(undefined)\n const [skipEventIds] = useState(() => new Set(liveEventsMessages.map((msg) => msg.id)))\n const recentLiveEvents = liveEventsMessages.filter((msg) => !skipEventIds.has(msg.id))\n const lastLiveEvent = recentLiveEvents.findLast((msg) =>\n msg.tags.some((tag) => syncTags?.includes(tag)),\n )\n const lastLiveEventId = lastLiveEvent?.id\n\n // Make sure any async errors bubble up to the nearest error boundary\n const [error, setError] = useState<unknown>(null)\n if (error) throw error\n\n useEffect(() => {\n const controller = new AbortController()\n\n client\n .fetch(query, params, {\n lastLiveEventId,\n tag: 'presentation-loader',\n signal: controller.signal,\n perspective,\n filterResponse: false,\n returnQuery: false,\n })\n .then((response) => {\n startTransition(() => {\n setResult((prev: unknown) => (isEqual(prev, response.result) ? prev : response.result))\n setResultSourceMap((prev) =>\n isEqual(prev, response.resultSourceMap) ? prev : response.resultSourceMap,\n )\n setSyncTags((prev) => (isEqual(prev, response.syncTags) ? prev : response.syncTags))\n })\n })\n .catch((err) => {\n if (typeof err !== 'object' || err?.name !== 'AbortError') {\n setError(err)\n }\n })\n\n return () => {\n controller.abort()\n }\n }, [client, lastLiveEventId, params, perspective, query])\n\n return useMemo(() => {\n if (liveDocument && resultSourceMap) {\n return {\n result: turboChargeResultIfSourceMap(liveDocument, result, perspective, resultSourceMap),\n resultSourceMap,\n syncTags,\n }\n }\n return {result, resultSourceMap, syncTags}\n }, [liveDocument, perspective, result, resultSourceMap, syncTags])\n}\n\nexport function turboChargeResultIfSourceMap<T = unknown>(\n liveDocument: Partial<SanityDocument> | null | undefined,\n result: T,\n perspective: ClientPerspective,\n resultSourceMap?: ContentSourceMap,\n): T {\n if (perspective === 'raw') {\n throw new Error('turboChargeResultIfSourceMap does not support raw perspective')\n }\n return applySourceDocuments(\n result,\n resultSourceMap,\n (sourceDocument) => {\n // If there's a displayed document, always prefer it\n if (\n // If _projectId is set, it's a cross dataset reference and we should skip it\n !sourceDocument._projectId &&\n liveDocument?._id &&\n getPublishedId(liveDocument._id) === getPublishedId(sourceDocument._id)\n ) {\n if (typeof liveDocument._id === 'string' && typeof sourceDocument._type === 'string') {\n return liveDocument as unknown as Required<Pick<SanityDocument, '_id' | '_type'>>\n }\n return {\n ...liveDocument,\n _id: liveDocument._id || sourceDocument._id,\n _type: liveDocument._type || sourceDocument._type,\n }\n }\n return null\n },\n mapChangedValue,\n Array.isArray(perspective) ? perspective.filter(Boolean) : perspective,\n )\n}\n"],"names":["reducer","state","event","type","messages","resets","Error","cause","initialState","useLiveEvents","client","$","_c","dispatch","useReducer","error","setError","useState","t0","t1","live","subscription","events","includeDrafts","tag","subscribe","next","err","unsubscribe","useEffect","useDeferredValue","mapChangedValue","changedValue","previousValue","Array","isArray","length","some","node","isPortableTextBlock","toPlainText","getQueryCacheKey","perspective","query","params","JSON","stringify","gc","queries","size","now","Date","from","heartbeats","values","entry","heartbeat","receivedAt","nextHeartbeats","Map","nextQueries","key","entries","set","get","queryListen","payload","data","has","isEqual","action","useLiveQueries","Symbol","for","interval","setInterval","LOADER_QUERY_GC_INTERVAL","clearInterval","t2","LiveQueries","props","controller","activePerspective","onLoadersConnection","onDocumentsOnPage","comlink","setComlink","liveQueries","liveQueriesDispatch","projectId","useProjectId","dataset","useDataset","nextComlink","createChannel","name","connectTo","createConnectionMachine","provide","actors","createCompatibilityActors","onStatus","on","documents","data_0","MIN_LOADER_QUERY_LISTEN_HEARTBEAT_INTERVAL","start","_temp","isReleasePerspective","RELEASES_STUDIO_CLIENT_OPTIONS","apiVersion","API_VERSION","studioClient","useClient","t3","withConfig","resultSourceMap","t4","t5","post","liveDocument","liveEvents","t6","t7","map","t8","t9","QuerySubscriptionComponent","liveEventsMessages","result","syncTags","tags","useQuerySubscription","comlink_0","perspective_0","query_0","params_0","result_0","resultSourceMap_0","tags_0","handleQueryChange","useEffectEvent","QuerySubscription","memo","displayName","setResult","setResultSourceMap","setSyncTags","undefined","Set","_temp2","skipEventIds","msg_0","msg","id","recentLiveEvents","filter","msg_1","includes","findLast","lastLiveEventId","AbortController","fetch","signal","filterResponse","returnQuery","then","response","startTransition","prev","prev_0","prev_1","catch","abort","bb0","turboChargeResultIfSourceMap","applySourceDocuments","sourceDocument","_projectId","_id","getPublishedId","_type","Boolean"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuGroup.js","sources":["../../src/ui-components/confirmPopover/ConfirmPopover.tsx","../../src/ui-components/menuGroup/MenuGroup.tsx"],"sourcesContent":["/* eslint-disable no-restricted-imports, @sanity/i18n/no-i18next-import */\nimport {\n Box,\n Button as UIButton,\n Flex,\n Grid,\n Popover as UIPopover,\n type PopoverProps as UIPopoverProps,\n Text,\n useClickOutsideEvent,\n useGlobalKeyDown,\n useLayer,\n} from '@sanity/ui'\nimport {type ComponentType, type ReactNode, useCallback, useRef} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nexport interface ConfirmPopoverProps {\n cancelButtonIcon?: ReactNode | ComponentType\n cancelButtonText?: string\n confirmButtonIcon?: ReactNode | ComponentType\n confirmButtonText?: string\n message: ReactNode\n onCancel: () => void\n onConfirm: () => void\n open: boolean\n referenceElement: HTMLElement | null\n tone?: 'default' | 'primary' | 'positive' | 'caution' | 'critical' | 'neutral' | 'suggest'\n placement?: UIPopoverProps['placement']\n fallbackPlacements?: UIPopoverProps['fallbackPlacements']\n}\n\n/**\n * A popover component for inline confirmation dialogs.\n * Follows the same pattern as document action confirm dialogs.\n *\n * @internal\n */\nexport function ConfirmPopover({\n cancelButtonIcon,\n cancelButtonText,\n confirmButtonIcon,\n confirmButtonText,\n message,\n onCancel,\n onConfirm,\n open,\n referenceElement,\n tone = 'critical',\n placement = 'top',\n fallbackPlacements = ['left', 'bottom'],\n}: ConfirmPopoverProps) {\n if (!open) return null\n\n return (\n <UIPopover\n content={\n <ConfirmPopoverContent\n cancelButtonIcon={cancelButtonIcon}\n cancelButtonText={cancelButtonText}\n confirmButtonIcon={confirmButtonIcon}\n confirmButtonText={confirmButtonText}\n message={message}\n onCancel={onCancel}\n onConfirm={onConfirm}\n tone={tone}\n />\n }\n constrainSize\n fallbackPlacements={fallbackPlacements}\n open\n placement={placement}\n portal\n preventOverflow\n referenceElement={referenceElement}\n />\n )\n}\n\nfunction ConfirmPopoverContent({\n cancelButtonIcon,\n cancelButtonText,\n confirmButtonIcon,\n confirmButtonText,\n message,\n onCancel,\n onConfirm,\n tone,\n}: Omit<ConfirmPopoverProps, 'open' | 'referenceElement' | 'placement' | 'fallbackPlacements'>) {\n const {t} = useTranslation()\n const {isTopLayer} = useLayer()\n const ref = useRef<HTMLDivElement | null>(null)\n\n const handleGlobalKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isTopLayer) onCancel()\n },\n [isTopLayer, onCancel],\n )\n\n useGlobalKeyDown(handleGlobalKeyDown)\n useClickOutsideEvent(isTopLayer && onCancel, () => [ref.current])\n\n return (\n <Flex direction=\"column\" ref={ref} style={{minWidth: 280, maxWidth: 350}}>\n <Box flex={1} overflow=\"auto\" padding={4}>\n <Text size={1}>{message}</Text>\n </Box>\n <Box paddingX={4} paddingY={3} style={{borderTop: '1px solid var(--card-border-color)'}}>\n <Grid columns={2} gap={2}>\n <UIButton\n data-testid=\"confirm-popover-cancel-button\"\n icon={cancelButtonIcon}\n onClick={onCancel}\n mode=\"ghost\"\n padding={2}\n text={cancelButtonText || t('common.dialog.cancel-button.text')}\n size={1}\n />\n <UIButton\n data-testid=\"confirm-popover-confirm-button\"\n icon={confirmButtonIcon}\n onClick={onConfirm}\n padding={2}\n text={confirmButtonText || t('common.dialog.confirm-button.text')}\n tone={tone}\n size={1}\n />\n </Grid>\n </Box>\n </Flex>\n )\n}\n","/* eslint-disable no-restricted-imports */\nimport {MenuGroup as UIMenuGroup, type MenuGroupProps as UIMenuGroupProps} from '@sanity/ui'\nimport {type HTMLProps} from 'react'\n\nimport {Tooltip, type TooltipProps} from '../tooltip/Tooltip'\n\n/** @internal */\nexport type MenuGroupProps = Pick<UIMenuGroupProps, 'icon' | 'popover' | 'text' | 'tone'>\n\n/**\n * Customized Sanity UI <MenuGroup> component with pre-defined layout options.\n *\n * @internal\n */\nexport const MenuGroup = (\n props: MenuGroupProps &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'tabIndex' | 'popover'> & {\n tooltipProps?: TooltipProps | null\n },\n) => {\n const {tooltipProps, ...rest} = props\n\n const children = <UIMenuGroup {...rest} fontSize={1} padding={3} />\n\n if (tooltipProps) {\n return (\n <Tooltip content={tooltipProps?.content} portal {...tooltipProps}>\n {/* This div is needed to make the tooltip work in disabled menu items */}\n <div>{children}</div>\n </Tooltip>\n )\n }\n\n return children\n}\n"],"names":["ConfirmPopover","t0","$","_c","cancelButtonIcon","cancelButtonText","confirmButtonIcon","confirmButtonText","message","onCancel","onConfirm","open","referenceElement","tone","t1","placement","t2","fallbackPlacements","t3","undefined","t4","t5","t6","UIPopover","ConfirmPopoverContent","t","useTranslation","isTopLayer","useLayer","ref","useRef","event","key","useGlobalKeyDown","Symbol","for","current","useClickOutsideEvent","minWidth","maxWidth","borderTop","t7","UIButton","t8","t9","t10","t11","MenuGroup","props","rest","tooltipProps","UIMenuGroup","children","content"],"mappings":"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"}
1
+ {"version":3,"file":"MenuGroup.js","sources":["../../src/ui-components/confirmPopover/ConfirmPopover.tsx","../../src/ui-components/menuGroup/MenuGroup.tsx"],"sourcesContent":["/* oxlint-disable no-restricted-imports, @sanity/i18n/no-i18next-import */\nimport {\n Box,\n Button as UIButton,\n Flex,\n Grid,\n Popover as UIPopover,\n type PopoverProps as UIPopoverProps,\n Text,\n useClickOutsideEvent,\n useGlobalKeyDown,\n useLayer,\n} from '@sanity/ui'\nimport {type ComponentType, type ReactNode, useCallback, useRef} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nexport interface ConfirmPopoverProps {\n cancelButtonIcon?: ReactNode | ComponentType\n cancelButtonText?: string\n confirmButtonIcon?: ReactNode | ComponentType\n confirmButtonText?: string\n message: ReactNode\n onCancel: () => void\n onConfirm: () => void\n open: boolean\n referenceElement: HTMLElement | null\n tone?: 'default' | 'primary' | 'positive' | 'caution' | 'critical' | 'neutral' | 'suggest'\n placement?: UIPopoverProps['placement']\n fallbackPlacements?: UIPopoverProps['fallbackPlacements']\n}\n\n/**\n * A popover component for inline confirmation dialogs.\n * Follows the same pattern as document action confirm dialogs.\n *\n * @internal\n */\nexport function ConfirmPopover({\n cancelButtonIcon,\n cancelButtonText,\n confirmButtonIcon,\n confirmButtonText,\n message,\n onCancel,\n onConfirm,\n open,\n referenceElement,\n tone = 'critical',\n placement = 'top',\n fallbackPlacements = ['left', 'bottom'],\n}: ConfirmPopoverProps) {\n if (!open) return null\n\n return (\n <UIPopover\n content={\n <ConfirmPopoverContent\n cancelButtonIcon={cancelButtonIcon}\n cancelButtonText={cancelButtonText}\n confirmButtonIcon={confirmButtonIcon}\n confirmButtonText={confirmButtonText}\n message={message}\n onCancel={onCancel}\n onConfirm={onConfirm}\n tone={tone}\n />\n }\n constrainSize\n fallbackPlacements={fallbackPlacements}\n open\n placement={placement}\n portal\n preventOverflow\n referenceElement={referenceElement}\n />\n )\n}\n\nfunction ConfirmPopoverContent({\n cancelButtonIcon,\n cancelButtonText,\n confirmButtonIcon,\n confirmButtonText,\n message,\n onCancel,\n onConfirm,\n tone,\n}: Omit<ConfirmPopoverProps, 'open' | 'referenceElement' | 'placement' | 'fallbackPlacements'>) {\n const {t} = useTranslation()\n const {isTopLayer} = useLayer()\n const ref = useRef<HTMLDivElement | null>(null)\n\n const handleGlobalKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isTopLayer) onCancel()\n },\n [isTopLayer, onCancel],\n )\n\n useGlobalKeyDown(handleGlobalKeyDown)\n useClickOutsideEvent(isTopLayer && onCancel, () => [ref.current])\n\n return (\n <Flex direction=\"column\" ref={ref} style={{minWidth: 280, maxWidth: 350}}>\n <Box flex={1} overflow=\"auto\" padding={4}>\n <Text size={1}>{message}</Text>\n </Box>\n <Box paddingX={4} paddingY={3} style={{borderTop: '1px solid var(--card-border-color)'}}>\n <Grid columns={2} gap={2}>\n <UIButton\n data-testid=\"confirm-popover-cancel-button\"\n icon={cancelButtonIcon}\n onClick={onCancel}\n mode=\"ghost\"\n padding={2}\n text={cancelButtonText || t('common.dialog.cancel-button.text')}\n size={1}\n />\n <UIButton\n data-testid=\"confirm-popover-confirm-button\"\n icon={confirmButtonIcon}\n onClick={onConfirm}\n padding={2}\n text={confirmButtonText || t('common.dialog.confirm-button.text')}\n tone={tone}\n size={1}\n />\n </Grid>\n </Box>\n </Flex>\n )\n}\n","/* oxlint-disable no-restricted-imports */\nimport {MenuGroup as UIMenuGroup, type MenuGroupProps as UIMenuGroupProps} from '@sanity/ui'\nimport {type HTMLProps} from 'react'\n\nimport {Tooltip, type TooltipProps} from '../tooltip/Tooltip'\n\n/** @internal */\nexport type MenuGroupProps = Pick<UIMenuGroupProps, 'icon' | 'popover' | 'text' | 'tone'>\n\n/**\n * Customized Sanity UI <MenuGroup> component with pre-defined layout options.\n *\n * @internal\n */\nexport const MenuGroup = (\n props: MenuGroupProps &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'tabIndex' | 'popover'> & {\n tooltipProps?: TooltipProps | null\n },\n) => {\n const {tooltipProps, ...rest} = props\n\n const children = <UIMenuGroup {...rest} fontSize={1} padding={3} />\n\n if (tooltipProps) {\n return (\n <Tooltip content={tooltipProps?.content} portal {...tooltipProps}>\n {/* This div is needed to make the tooltip work in disabled menu items */}\n <div>{children}</div>\n </Tooltip>\n )\n }\n\n return children\n}\n"],"names":["ConfirmPopover","t0","$","_c","cancelButtonIcon","cancelButtonText","confirmButtonIcon","confirmButtonText","message","onCancel","onConfirm","open","referenceElement","tone","t1","placement","t2","fallbackPlacements","t3","undefined","t4","t5","t6","UIPopover","ConfirmPopoverContent","t","useTranslation","isTopLayer","useLayer","ref","useRef","event","key","useGlobalKeyDown","Symbol","for","current","useClickOutsideEvent","minWidth","maxWidth","borderTop","t7","UIButton","t8","t9","t10","t11","MenuGroup","props","rest","tooltipProps","UIMenuGroup","children","content"],"mappings":"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"}