sanity 6.9.2 → 6.9.3-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/{AddonDatasetProvider-CIq0vehp.js → AddonDatasetProvider-DDQrh5ob.js} +2 -2
- package/lib/{AddonDatasetProvider-CIq0vehp.js.map → AddonDatasetProvider-DDQrh5ob.js.map} +1 -1
- package/lib/{CalendarFilter-DRKSPTWd.js → CalendarFilter-DYbHmp_x.js} +3 -3
- package/lib/{CalendarFilter-DRKSPTWd.js.map → CalendarFilter-DYbHmp_x.js.map} +1 -1
- package/lib/{CommentsDocumentLayout-NGghzPWZ.js → CommentsDocumentLayout-qdF_HKSC.js} +2 -2
- package/lib/{CommentsDocumentLayout-NGghzPWZ.js.map → CommentsDocumentLayout-qdF_HKSC.js.map} +1 -1
- package/lib/{CommentsField-_QkW9aLe.js → CommentsField-i8xs45PB.js} +3 -3
- package/lib/{CommentsField-_QkW9aLe.js.map → CommentsField-i8xs45PB.js.map} +1 -1
- package/lib/{CommentsInput-DdtI0Naj.js → CommentsInput-B9iSSi8A.js} +6 -6
- package/lib/{CommentsInput-DdtI0Naj.js.map → CommentsInput-B9iSSi8A.js.map} +1 -1
- package/lib/{CommentsInspector-BQtqxGsK.js → CommentsInspector-rGGP9buL.js} +5 -5
- package/lib/{CommentsInspector-BQtqxGsK.js.map → CommentsInspector-rGGP9buL.js.map} +1 -1
- package/lib/{CommentsListItem-B0yR0R5a.js → CommentsListItem-DKS6V_TV.js} +3 -3
- package/lib/{CommentsListItem-B0yR0R5a.js.map → CommentsListItem-DKS6V_TV.js.map} +1 -1
- package/lib/{CommentsSelectedPathProvider-BYZ2OmJ9.js → CommentsSelectedPathProvider-BnZ6GdNc.js} +3 -3
- package/lib/{CommentsSelectedPathProvider-BYZ2OmJ9.js.map → CommentsSelectedPathProvider-BnZ6GdNc.js.map} +1 -1
- package/lib/{CommentsStudioLayout-DK4W-hTe.js → CommentsStudioLayout-YlpSH_2Y.js} +4 -4
- package/lib/{CommentsStudioLayout-DK4W-hTe.js.map → CommentsStudioLayout-YlpSH_2Y.js.map} +1 -1
- package/lib/{DateInputs-enUB1fG8.js → DateInputs-DioSKqY0.js} +7 -7
- package/lib/{DateInputs-enUB1fG8.js.map → DateInputs-DioSKqY0.js.map} +1 -1
- package/lib/{DocumentStatusIndicator-BP3N2GwG.js → DocumentStatusIndicator-BPBTH84U.js} +5 -5
- package/lib/{DocumentStatusIndicator-BP3N2GwG.js.map → DocumentStatusIndicator-BPBTH84U.js.map} +1 -1
- package/lib/{FormValue-4tVuOoGw.js → FormValue-CJg43LyM.js} +2 -2
- package/lib/{FormValue-4tVuOoGw.js.map → FormValue-CJg43LyM.js.map} +1 -1
- package/lib/{LoadingBlock-Cy2Pckab.js → LoadingBlock-DPTVJ58M.js} +3 -3
- package/lib/{LoadingBlock-Cy2Pckab.js.map → LoadingBlock-DPTVJ58M.js.map} +1 -1
- package/lib/{ReleaseTitle-CkEMIfmx.js → ReleaseTitle-ln13W3P1.js} +4 -4
- package/lib/{ReleaseTitle-CkEMIfmx.js.map → ReleaseTitle-ln13W3P1.js.map} +1 -1
- package/lib/{ReleasesMetadataProvider-DuAzHgpz.js → ReleasesMetadataProvider-DbxROVyw.js} +2 -2
- package/lib/{ReleasesMetadataProvider-DuAzHgpz.js.map → ReleasesMetadataProvider-DbxROVyw.js.map} +1 -1
- package/lib/{ReleasesNav-DozstCwb.js → ReleasesNav-DNwncim0.js} +15 -15
- package/lib/{ReleasesNav-DozstCwb.js.map → ReleasesNav-DNwncim0.js.map} +1 -1
- package/lib/{ReleasesStudioLayout-CXoRbIpf.js → ReleasesStudioLayout-gzl7rMMp.js} +8 -8
- package/lib/{ReleasesStudioLayout-CXoRbIpf.js.map → ReleasesStudioLayout-gzl7rMMp.js.map} +1 -1
- package/lib/{ReleasesTool-Bxru9khS.js → ReleasesTool-CsHniZCP.js} +20 -20
- package/lib/{ReleasesTool-Bxru9khS.js.map → ReleasesTool-CsHniZCP.js.map} +1 -1
- package/lib/{SchedulePublishingStudioLayout-CjJ-nu3Q.js → SchedulePublishingStudioLayout-BzSSDp9x.js} +3 -3
- package/lib/{SchedulePublishingStudioLayout-CjJ-nu3Q.js.map → SchedulePublishingStudioLayout-BzSSDp9x.js.map} +1 -1
- package/lib/{SchedulePublishingUpsellProvider-CxpMXwyA.js → SchedulePublishingUpsellProvider-DQqIZsCc.js} +2 -2
- package/lib/{SchedulePublishingUpsellProvider-CxpMXwyA.js.map → SchedulePublishingUpsellProvider-DQqIZsCc.js.map} +1 -1
- package/lib/{ScheduledPublishingEnabledProvider-Bvx140h2.js → ScheduledPublishingEnabledProvider-BcWaBJw5.js} +3 -3
- package/lib/{ScheduledPublishingEnabledProvider-Bvx140h2.js.map → ScheduledPublishingEnabledProvider-BcWaBJw5.js.map} +1 -1
- package/lib/{SearchProvider-DSLbCdgY.js → SearchProvider-D3w4Bvul.js} +10 -10
- package/lib/{SearchProvider-DSLbCdgY.js.map → SearchProvider-D3w4Bvul.js.map} +1 -1
- package/lib/{SingleDocReleaseLayout-DQicfsKs.js → SingleDocReleaseLayout-CQCkL8-0.js} +2 -2
- package/lib/{SingleDocReleaseLayout-DQicfsKs.js.map → SingleDocReleaseLayout-CQCkL8-0.js.map} +1 -1
- package/lib/{SingleDocReleaseUpsellProvider-DXNTZGTk.js → SingleDocReleaseUpsellProvider-YDBCGrHT.js} +4 -4
- package/lib/{SingleDocReleaseUpsellProvider-DXNTZGTk.js.map → SingleDocReleaseUpsellProvider-YDBCGrHT.js.map} +1 -1
- package/lib/{TasksStudioActiveToolLayout-CNpB5xLh.js → TasksStudioActiveToolLayout-DAmh3t6t.js} +16 -16
- package/lib/{TasksStudioActiveToolLayout-CNpB5xLh.js.map → TasksStudioActiveToolLayout-DAmh3t6t.js.map} +1 -1
- package/lib/{TasksStudioLayout-CnsvBNfw.js → TasksStudioLayout-6qNY69FD.js} +5 -5
- package/lib/{TasksStudioLayout-CnsvBNfw.js.map → TasksStudioLayout-6qNY69FD.js.map} +1 -1
- package/lib/{TimeZoneButton-DMd-M_ri.js → TimeZoneButton-TmrFye13.js} +4 -4
- package/lib/{TimeZoneButton-DMd-M_ri.js.map → TimeZoneButton-TmrFye13.js.map} +1 -1
- package/lib/{Tool-VgnYCwyZ.js → Tool-tpq9K4o7.js} +14 -14
- package/lib/{Tool-VgnYCwyZ.js.map → Tool-tpq9K4o7.js.map} +1 -1
- package/lib/{UnpublishVersionDialog-Fow5nBrc.js → UnpublishVersionDialog-6zyP9rCr.js} +5 -5
- package/lib/{UnpublishVersionDialog-Fow5nBrc.js.map → UnpublishVersionDialog-6zyP9rCr.js.map} +1 -1
- package/lib/{UpsellDialog-BqP2wmnt.js → UpsellDialog-CM238V3B.js} +3 -3
- package/lib/{UpsellDialog-BqP2wmnt.js.map → UpsellDialog-CM238V3B.js.map} +1 -1
- package/lib/{VariantsStudioNavbar-CvwRIsWJ.js → VariantsStudioNavbar-lFO2yrMq.js} +7 -7
- package/lib/{VariantsStudioNavbar-CvwRIsWJ.js.map → VariantsStudioNavbar-lFO2yrMq.js.map} +1 -1
- package/lib/{VariantsTool-CmQqDiwU.js → VariantsTool-B0OS4fku.js} +9 -9
- package/lib/{VariantsTool-CmQqDiwU.js.map → VariantsTool-B0OS4fku.js.map} +1 -1
- package/lib/{WorkspaceLoader-Ailj0PR9.js → WorkspaceLoader-CiJ6lGBu.js} +32 -32
- package/lib/{WorkspaceLoader-Ailj0PR9.js.map → WorkspaceLoader-CiJ6lGBu.js.map} +1 -1
- package/lib/_createContext.js +1 -1
- package/lib/{buildTextSelectionFromFragment-QpFfw3b7.js → buildTextSelectionFromFragment-CFZdgjpp.js} +3 -3
- package/lib/{buildTextSelectionFromFragment-QpFfw3b7.js.map → buildTextSelectionFromFragment-CFZdgjpp.js.map} +1 -1
- package/lib/{datastores-D4iZNSXV.js → datastores-wbjstxMt.js} +2 -2
- package/lib/{datastores-D4iZNSXV.js.map → datastores-wbjstxMt.js.map} +1 -1
- package/lib/{getTransactionsLogs-C-_o7nGx.js → getTransactionsLogs-Di50JBPB.js} +2 -2
- package/lib/{getTransactionsLogs-C-_o7nGx.js.map → getTransactionsLogs-Di50JBPB.js.map} +1 -1
- package/lib/index.js +35 -35
- package/lib/{inputResolver-Dpo4FxTy.js → inputResolver-DuUEGuH5.js} +4 -4
- package/lib/{inputResolver-Dpo4FxTy.js.map → inputResolver-DuUEGuH5.js.map} +1 -1
- package/lib/{navigation.telemetry-syjEPEw-.js → navigation.telemetry-EsdzXa34.js} +9 -9
- package/lib/{navigation.telemetry-syjEPEw-.js.map → navigation.telemetry-EsdzXa34.js.map} +1 -1
- package/lib/{plugin-B8Op6DFi.js → plugin-C_6lw0l3.js} +3 -3
- package/lib/{plugin-B8Op6DFi.js.map → plugin-C_6lw0l3.js.map} +1 -1
- package/lib/{plugin-CmF53OT5.js → plugin-ClT8-pVM.js} +4 -4
- package/lib/{plugin-CmF53OT5.js.map → plugin-ClT8-pVM.js.map} +1 -1
- package/lib/{plugin-Bk41RRuC.js → plugin-DRuKGgrO.js} +6 -6
- package/lib/{plugin-Bk41RRuC.js.map → plugin-DRuKGgrO.js.map} +1 -1
- package/lib/{plugin-BhEK2rZ8.js → plugin-wJP1ECFq.js} +6 -6
- package/lib/{plugin-BhEK2rZ8.js.map → plugin-wJP1ECFq.js.map} +1 -1
- package/lib/{scheduleItem-sJhB8YzX.js → scheduleItem-9PFIH7_h.js} +15 -15
- package/lib/{scheduleItem-sJhB8YzX.js.map → scheduleItem-9PFIH7_h.js.map} +1 -1
- package/lib/{schedules-CLC2KygL.js → schedules-DniNrpFJ.js} +3 -3
- package/lib/{schedules-CLC2KygL.js.map → schedules-DniNrpFJ.js.map} +1 -1
- package/lib/{searchDocumentRelease-CtPYZAZk.js → searchDocumentRelease-TrunKdQg.js} +5 -5
- package/lib/{searchDocumentRelease-CtPYZAZk.js.map → searchDocumentRelease-TrunKdQg.js.map} +1 -1
- package/lib/{studioClient-WYiCwgfZ.js → studioClient-BpYJ_yYC.js} +2 -2
- package/lib/{studioClient-WYiCwgfZ.js.map → studioClient-BpYJ_yYC.js.map} +1 -1
- package/lib/{useBundleDocuments-CiRQnzQh.js → useBundleDocuments-C58ExRpX.js} +5 -5
- package/lib/{useBundleDocuments-CiRQnzQh.js.map → useBundleDocuments-C58ExRpX.js.map} +1 -1
- package/lib/{useComments-CxUK5MNb.js → useComments-BcMCyjIE.js} +2 -2
- package/lib/{useComments-CxUK5MNb.js.map → useComments-BcMCyjIE.js.map} +1 -1
- package/lib/{useCommentsTelemetry-BWqcsQ1u.js → useCommentsTelemetry-CL97yuwT.js} +4 -4
- package/lib/{useCommentsTelemetry-BWqcsQ1u.js.map → useCommentsTelemetry-CL97yuwT.js.map} +1 -1
- package/lib/{useDocumentPreviewValues-B4jUnACZ.js → useDocumentPreviewValues-Cy9aUMu2.js} +5 -5
- package/lib/{useDocumentPreviewValues-B4jUnACZ.js.map → useDocumentPreviewValues-Cy9aUMu2.js.map} +1 -1
- package/lib/{useFeatureEnabled-sRpDeLLJ.js → useFeatureEnabled-C5qTffLc.js} +2 -2
- package/lib/{useFeatureEnabled-sRpDeLLJ.js.map → useFeatureEnabled-C5qTffLc.js.map} +1 -1
- package/lib/{useFieldActions-CrPgIiyl.js → useFieldActions-MFJIkobn.js} +2 -2
- package/lib/{useFieldActions-CrPgIiyl.js.map → useFieldActions-MFJIkobn.js.map} +1 -1
- package/lib/{useProjectId-bGwoCAuz.js → useProjectId-BRSQ8kIo.js} +2 -2
- package/lib/{useProjectId-bGwoCAuz.js.map → useProjectId-BRSQ8kIo.js.map} +1 -1
- package/lib/{useReleasesToolAvailable-BevhFmt9.js → useReleasesToolAvailable-BOlw1HWL.js} +3 -3
- package/lib/{useReleasesToolAvailable-BevhFmt9.js.map → useReleasesToolAvailable-BOlw1HWL.js.map} +1 -1
- package/lib/{useScheduledDraftMenuActions-DqsFlU0p.js → useScheduledDraftMenuActions-DIQYFw0x.js} +6 -6
- package/lib/{useScheduledDraftMenuActions-DqsFlU0p.js.map → useScheduledDraftMenuActions-DIQYFw0x.js.map} +1 -1
- package/lib/{useStudioUrl-DbfIwS1P.js → useStudioUrl-Dc5LnOvR.js} +5 -5
- package/lib/{useStudioUrl-DbfIwS1P.js.map → useStudioUrl-Dc5LnOvR.js.map} +1 -1
- package/lib/{useTimeZone-DnxQlCGS.js → useTimeZone-Da8WK1q-.js} +2 -2
- package/lib/{useTimeZone-DnxQlCGS.js.map → useTimeZone-Da8WK1q-.js.map} +1 -1
- package/lib/{validationUtils-Bcu-PkHm.js → validationUtils-B9CLn9F7.js} +4 -4
- package/lib/{validationUtils-Bcu-PkHm.js.map → validationUtils-B9CLn9F7.js.map} +1 -1
- package/lib/{version-DTqx_kFw.js → version-D7qSwBVE.js} +2 -2
- package/lib/{version-DTqx_kFw.js.map → version-D7qSwBVE.js.map} +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeZoneButton-DMd-M_ri.js","names":["debounce","useEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","IsEqualFunction","TrackerContextStore","add","id","value","Value","update","remove","createStore","reportedValues","Map","publish","has","set","delete","TrackerContextGetSnapshot","useTrackerStore","$","_c","_temp","t0","Array","from","entries","t1","Symbol","for","snapshot","updateSnapshot","t2","trailing","debouncedUpdateSnapshot","t3","t4","cancel","t5","store","t6","useTrackerStoreReporter","isEqual","undefined","Object","is","idRef","previousRef","nextValue","current","nextValue_0","memo","useContext","ChangeIndicatorTrackerContextGetSnapshot","ChangeIndicatorTrackerContextStore","TrackerContextGetSnapshot","useTrackerStore","useTrackerStoreReporter","Reported","ReporterHook","ChangeIndicatorTrackerContextValue","TrackedArea","TrackedChange","ChangeIndicatorsTrackerComponent","props","$","_c","children","store","snapshot","t0","t1","ChangeIndicatorsTracker","EMPTY_ARRAY","useChangeIndicatorsReportedValues","console","warn","Error","useChangeIndicatorsReporter","id","value","isEqual","RefAttributes","Tooltip","TooltipProps","TooltipOfDisabled","t0","$","_c","children","content","disabled","ref","restProps","t1","t2","t3","ErrorOutlineIcon","InfoOutlineIcon","WarningOutlineIcon","styled","useTranslation","StyledErrorOutlineIcon","ValidationErrorIcon","$","_c","t","t0","t1","StyledWarningOutlineIcon","ValidationWarningIcon","StyledInfoOutlineIcon","ValidationInfoIcon","VALIDATION_ICONS","error","warning","info","StatusIcon","status","Icon","FormNodeValidation","Box","Flex","Placement","Stack","Text","styled","Tooltip","useListFormat","useTranslation","StatusIcon","StatusIconWrapper","div","FormFieldValidationStatusProps","validation","__unstable_showSummary","fontSize","placement","EMPTY_ARRAY","StyledStack","FormFieldValidationStatus","props","$","_c","t0","showSummary","undefined","hasErrors","some","_temp","hasWarnings","_temp2","status","t1","t2","map","_temp3","t3","t4","Symbol","for","t5","t6","t7","item","itemIndex","v_0","v","level","FormFieldValidationStatusItem","message","FormFieldValidationSummary","t","listFormatter","bb0","errorCount","reduce","_temp4","warningCount","_temp5","errorText","count","warningText","format","count_0","item_0","ReactNode","createDescriptionId","id","description","undefined","MAX_AVATARS_DOCK","DEFAULT_MAX_AVATARS_FIELDS","AVATAR_DISTANCE","AVATAR_SIZE","AVATAR_ARROW_HEIGHT","INTERSECTION_THRESHOLDS","INTERSECTION_ELEMENT_PADDING","SNAP_TO_DOCK_DISTANCE_TOP","SNAP_TO_DOCK_DISTANCE_BOTTOM","SLIDE_RIGHT_THRESHOLD_TOP","SLIDE_RIGHT_THRESHOLD_BOTTOM","DEBUG","Flex","styled","AVATAR_SIZE","FlexWrapper","InnerBox","memo","useContext","PresenceTrackerContextGetSnapshot","PresenceTrackerContextStore","TrackerContextGetSnapshot","useTrackerStore","useTrackerStoreReporter","Reported","ReporterHook","FieldPresenceData","ReportedPresenceData","PresenceTrackerComponent","props","$","_c","children","store","snapshot","t0","t1","PresenceTracker","EMPTY_ARRAY","usePresenceReportedValues","console","warn","Error","usePresenceReporter","id","value","isEqual","Flex","Stack","Text","useMemo","Tooltip","UserAvatar","FormNodePresence","PresenceTooltipProps","children","React","JSX","Element","items","PresenceTooltip","props","$","_c","t0","map","_temp","t1","content","t2","item","user","id","displayName","AVATAR_DISTANCE","AVATAR_SIZE","splitRight","array","T","max","indexFromMax","length","idx","Math","slice","calcAvatarStackWidth","len","AvatarCounter","AvatarPosition","sortBy","uniqBy","memo","useCallback","useContext","useId","useMemo","useState","FormFieldPresenceContext","UserAvatar","AVATAR_DISTANCE","AVATAR_SIZE","DEFAULT_MAX_AVATARS_FIELDS","FlexWrapper","InnerBox","usePresenceReporter","PresenceTooltip","FormNodePresence","splitRight","FieldPresenceInnerProps","maxAvatars","presence","stack","position","animateArrowFrom","FieldPresenceInner","t0","$","_c","t1","t2","t3","t4","undefined","t5","uniquePresence","_temp","sorted","_temp2","hidden","visible","t6","_visible","key","user","id","element","reverse","map","length","filter","Boolean","avatars","Symbol","for","t7","_temp3","FieldPresenceProps","FieldPresence","props","contextPresence","setElement","reporterId","reporterGetSnapshot","_temp4","minHeight","minWidth","item","FieldPresenceWithOverlay","_presence","lastActiveAt","av","i","transform","transitionProperty","transitionDuration","transitionTimingFunction","zIndex","useMemo","useTranslation","I18nNode","i18n","key","ns","TNode","useI18nText","node","$","_c","t0","bb0","t1","Symbol","for","Array","from","Set","Object","values","map","_temp","sort","namespaces","t","bb1","t2","target","property","defaultValue","ns_0","t3","Proxy","get","CheckmarkIcon","Text","useCallback","MenuItem","TooltipOfDisabled","DocumentFieldActionItem","useI18nText","FieldActionMenuItem","props","$","_c","action","title","t0","onAction","handleClick","t1","disabled","reason","disabledTooltipContent","t2","Boolean","t3","iconRight","selected","undefined","t4","icon","tone","t5","Box","Text","MenuDivider","MenuGroup","MenuGroupProps","DocumentFieldActionGroup","DocumentFieldActionNode","useI18nText","FieldActionMenuItem","FieldActionMenuNodeProps","action","isFirst","prevIsGroup","FieldActionMenuNode","props","$","_c","type","t0","Symbol","for","t1","t2","POPOVER_PROPS","placement","fallbackPlacements","FieldActionMenuGroup","group","title","expanded","children","map","item","idx","icon","tone","item_0","idx_0","t3","EllipsisHorizontalIcon","Card","Menu","memo","PointerEvent","useCallback","useId","useMemo","useState","Button","ButtonProps","MenuButton","MenuButtonProps","DocumentFieldActionGroup","DocumentFieldActionNode","useI18nText","FieldActionMenuNode","FieldActionMenuProps","nodes","onMenuOpenChange","open","STATUS_BUTTON_TOOLTIP_PROPS","placement","renderAsButton","node","FieldActionMenu","props","$","_c","setOpen","t0","handleOpen","t1","handleClose","t2","filter","buttonNodes","t3","_temp","menuNodesProp","t4","bb0","len","length","node_0","type","t5","expanded","menuNodes","children","icon","title","t6","rootNodes","t7","map","node_1","idx","RootFieldActionMenuNode","onOpen","onClose","Symbol","for","content","onAction","ROOT_MENU_BUTTON_POPOVER_PROPS","constrainSize","portal","fallbackPlacements","RootFieldActionMenuGroup","handlePointerDown","_temp2","undefined","action","event","preventDefault","Box","Card","Flex","ReactNode","useCallback","useEffect","useMemo","useState","css","styled","TooltipDelayGroupProvider","DocumentFieldActionNode","FieldPresence","FormNodePresence","calcAvatarStackWidth","FieldActionMenu","FieldCommentsProps","Root","$floatingCardWidth","$slotWidth","$floatingCardVisible","theme","space","sanity","ContentBox","$presenceMaxWidth","SlotBox","$right","$fieldActionsVisible","right","FieldActionsFloatingCard","FieldActionsFlex","MAX_AVATARS","FormFieldBaseHeaderProps","__internal_comments","__internal_slot","actions","content","fieldFocused","inputId","fieldHovered","presence","FormFieldBaseHeader","props","$","_c","comments","slot","focused","setFocused","menuOpen","setMenuOpen","floatingCardElement","setFloatingCardElement","floatingCardWidth","setFloatingCardWidth","slotElement","setSlotElement","slotWidth","setSlotWidth","t0","hasComments","t1","button","t2","isAddingComment","t3","undefined","commentButton","hasActions","length","showFieldActions","hasCommentsButtonOrActions","shouldShowFloatingCard","t4","width","getBoundingClientRect","handleSetFloatingCardElementWidth","t5","handleFocusCapture","t6","handleBlurCapture","t7","t8","t10","t9","width_0","t11","bb0","t12","Boolean","t13","slotEl","Symbol","for","t14","t15","t16","DeprecatedProperty","FormNodeValidation","Badge","Box","Flex","Stack","Text","memo","ReactNode","styled","TextWithTone","useTranslation","createDescriptionId","FormFieldValidationStatus","LabelSuffix","FormFieldHeaderTextProps","validation","description","inputId","title","deprecated","suffix","EMPTY_ARRAY","FormFieldHeaderText","props","$","_c","t0","undefined","t","hasValidations","length","t1","color","t2","t3","t4","t5","t6","reason","t7","t8","EarthAmericasIcon","Box","Inline","Text","noop","ReactNode","Button","Tooltip","useDialogTimeZone","TimeZoneScope","useTimeZone","TimeZoneButtonZoneProps","useElementQueries","timeZoneScope","allowTimeZoneSwitch","tooltipContent","TimeZoneButton","props","$","_c","t0","undefined","timeZone","DialogTimeZone","dialogProps","dialogTimeZoneShow","t1","t2","t3","alternativeName","city","namePretty","t4","t5"],"sources":["../src/core/components/react-track-elements/hooks.ts","../src/core/changeIndicators/tracker.tsx","../src/core/components/TooltipOfDisabled.tsx","../src/core/form/components/formField/ValidationStatusIcon.tsx","../src/core/form/components/formField/FormFieldValidationStatus.tsx","../src/core/form/members/common/createDescriptionId.ts","../src/core/presence/constants.ts","../src/core/presence/FieldPresence.styled.tsx","../src/core/presence/overlay/tracker.tsx","../src/core/presence/PresenceTooltip.tsx","../src/core/presence/utils.ts","../src/core/presence/FieldPresence.tsx","../src/core/i18n/hooks/useI18nText.ts","../src/core/form/field/actions/FieldActionMenuItem.tsx","../src/core/form/field/actions/FieldActionMenuNode.tsx","../src/core/form/field/actions/FieldActionMenu.tsx","../src/core/form/components/formField/FormFieldBaseHeader.tsx","../src/core/form/components/formField/FormFieldHeaderText.tsx","../src/core/components/timeZone/timeZoneButton/TimeZoneButton.tsx"],"sourcesContent":["import debounce from 'lodash-es/debounce.js'\nimport {useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState} from 'react'\n\nimport {type IsEqualFunction} from './types'\n\n/** @internal */\nexport interface TrackerContextStore<Value> {\n add: (id: string, value: Value) => void\n update: (id: string, value: Value) => void\n remove: (id: string) => void\n}\n\nfunction createStore<Value>(reportedValues: Map<string, Value>, publish: () => void) {\n /**\n * This implementation is over 4 years old, and is part of tackling a hard problem:\n * tracking the position of DOM nodes efficiently, so that Presence Sticky Overlays can render correctly and respond to scroll,\n * and so that Change Indicator connectors can draw paths that traces a document change to its form input field no matter how they layout shifts.\n * 4 years ago we didn't have a lot of options when solving this problem.\n * But today we have great success with using `@floating-ui/react` in `@sanity/ui` with a very similar problem: positioning tooltips and popovers correctly no matter how the page scrolls or the layout shifts.\n * We should consider migrating to `@floating-ui/react` for this problem as well.\n */\n function add(id: string, value: Value) {\n if (reportedValues.has(id)) {\n // console.error(\n // new Error(\n // `Invalid call to useReporter(${id}): A component reporting on \"${id}\" is already mounted in the subtree. Make sure that all reporters within the same <Tracker> subtree have unique ids.`\n // )\n // )\n }\n reportedValues.set(id, value)\n publish()\n }\n\n function update(id: string, value: Value) {\n if (!reportedValues.has(id)) {\n // throw new Error(`A reporter with id \"${id}\" is not known.`)\n }\n reportedValues.set(id, value)\n publish()\n }\n\n function remove(id: string) {\n if (!reportedValues.has(id)) {\n // throw new Error(`A reporter with id \"${id}\" is not known`)\n }\n reportedValues.delete(id)\n publish()\n }\n\n return {\n add,\n remove,\n update,\n }\n}\n\n/** @internal */\nexport type TrackerContextGetSnapshot<Value> = [string, Value][]\n\n/** @internal */\nexport function useTrackerStore<Value>(): {\n store: TrackerContextStore<Value>\n snapshot: TrackerContextGetSnapshot<Value>\n} {\n const [reportedValues] = useState(() => new Map<string, Value>())\n const [snapshot, updateSnapshot] = useReducer(() => Array.from(reportedValues.entries()), [])\n const debouncedUpdateSnapshot = useMemo(() => debounce(updateSnapshot, 10, {trailing: true}), [])\n\n // Cancel any pending trailing publish when the tracker unmounts. The reporters'\n // unmount cleanups call `store.remove()`, which would otherwise leave a timer that\n // dispatches to the unmounted reducer — in tests this can fire after the test\n // environment is torn down and crash with an unhandled error.\n useEffect(() => () => debouncedUpdateSnapshot.cancel(), [debouncedUpdateSnapshot])\n\n const store = useMemo(\n () => createStore(reportedValues, debouncedUpdateSnapshot),\n [debouncedUpdateSnapshot, reportedValues],\n )\n\n return {store, snapshot}\n}\n\n/** @internal */\nexport function useTrackerStoreReporter<Value>(\n store: TrackerContextStore<Value> | null,\n id: string | null,\n value: () => Value,\n isEqual: IsEqualFunction<Value> = Object.is,\n): void {\n const idRef = useRef<string | null>(null)\n const previousRef = useRef<Value | null>(null)\n\n useLayoutEffect(() => {\n /**\n * Setup and teardown, only runs if `id`, `store` or the `value` getter changes\n */\n if (id === null || store === null) {\n return undefined\n }\n const nextValue = value()\n store.add(id, nextValue)\n idRef.current = id\n previousRef.current = nextValue\n return () => {\n store.remove(id)\n idRef.current = null\n previousRef.current = null\n }\n }, [id, store, value])\n\n useLayoutEffect(() => {\n /**\n * Runs after every render in case the result of calling `value` has changes that\n * the `isEqual` function picks up on.\n * @TODO This is a bit expensive, and we should migrate to using a library like `@floating-ui/react` instead of rolling our own solution.\n */\n if (id === null || idRef.current === null || store === null || id !== idRef.current) {\n return undefined\n }\n const nextValue = value()\n if (isEqual(previousRef.current, nextValue)) {\n return undefined\n }\n\n store.update(id, nextValue)\n previousRef.current = nextValue\n\n return undefined\n })\n}\n","import {memo, useContext} from 'react'\nimport {\n ChangeIndicatorTrackerContextGetSnapshot,\n ChangeIndicatorTrackerContextStore,\n} from 'sanity/_singletons'\n\nimport {\n type TrackerContextGetSnapshot,\n useTrackerStore,\n useTrackerStoreReporter,\n} from '../components/react-track-elements/hooks'\nimport {type Reported, type ReporterHook} from '../components/react-track-elements/types'\nimport {type ChangeIndicatorTrackerContextValue} from './types'\n\nexport {\n type ChangeIndicatorTrackerContextValue,\n type TrackedArea,\n type TrackedChange,\n} from './types'\n\nfunction ChangeIndicatorsTrackerComponent(props: {children: React.ReactNode}) {\n const {children} = props\n const {store, snapshot} = useTrackerStore<ChangeIndicatorTrackerContextValue>()\n\n return (\n <ChangeIndicatorTrackerContextStore.Provider value={store}>\n <ChangeIndicatorTrackerContextGetSnapshot.Provider value={snapshot}>\n {children}\n </ChangeIndicatorTrackerContextGetSnapshot.Provider>\n </ChangeIndicatorTrackerContextStore.Provider>\n )\n}\n\n/**\n * @internal\n */\nexport const ChangeIndicatorsTracker = memo(ChangeIndicatorsTrackerComponent)\n\nconst EMPTY_ARRAY: Reported<ChangeIndicatorTrackerContextValue>[] = []\n\n/**\n * @internal\n */\nexport function useChangeIndicatorsReportedValues(): TrackerContextGetSnapshot<ChangeIndicatorTrackerContextValue> {\n const snapshot = useContext(ChangeIndicatorTrackerContextGetSnapshot)\n\n if (snapshot === null) {\n console.warn(\n new Error(\n 'No context provided for reporter. Make sure that the component calling \"useChangeIndicatorsReportedValues()\", is wrapped inside a <ChangeIndicatorsTracker> element',\n ),\n )\n return EMPTY_ARRAY\n }\n\n return snapshot\n}\n\n/**\n * @internal\n */\nexport const useChangeIndicatorsReporter: ReporterHook<ChangeIndicatorTrackerContextValue> = (\n id,\n value,\n isEqual?,\n) => {\n const store = useContext(ChangeIndicatorTrackerContextStore)\n\n if (store === null) {\n console.warn(\n new Error(\n 'No context provided for reporter. Make sure that the component calling \"useChangeIndicatorsReporter()\", is wrapped inside a <ChangeIndicatorsTracker> element',\n ),\n )\n }\n\n useTrackerStoreReporter<ChangeIndicatorTrackerContextValue>(store, id, value, isEqual)\n}\n","import {type RefAttributes} from 'react'\n\nimport {Tooltip, type TooltipProps} from '../../ui-components/tooltip/Tooltip'\n\n/** @internal */\nexport function TooltipOfDisabled({\n ref,\n children,\n content,\n disabled,\n ...restProps\n}: TooltipProps & RefAttributes<HTMLDivElement>) {\n return (\n <Tooltip {...restProps} content={content} disabled={disabled || !content} ref={ref}>\n <div>{children}</div>\n </Tooltip>\n )\n}\n","import {ErrorOutlineIcon} from '@sanity/icons/ErrorOutline'\nimport {InfoOutlineIcon} from '@sanity/icons/InfoOutline'\nimport {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\nimport {styled} from 'styled-components'\n\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\n\nconst StyledErrorOutlineIcon = styled(ErrorOutlineIcon)`\n --card-icon-color: var(--card-badge-critical-icon-color);\n`\nfunction ValidationErrorIcon() {\n const {t} = useTranslation()\n return (\n <StyledErrorOutlineIcon\n data-testid=\"input-validation-icon-error\"\n aria-label={t('form.validation.has-error-aria-label')}\n aria-hidden\n role=\"presentation\"\n />\n )\n}\n\nconst StyledWarningOutlineIcon = styled(WarningOutlineIcon)`\n --card-icon-color: var(--card-badge-caution-icon-color);\n`\n\nfunction ValidationWarningIcon() {\n const {t} = useTranslation()\n return (\n <StyledWarningOutlineIcon\n data-testid=\"input-validation-icon-warning\"\n aria-label={t('form.validation.has-warning-aria-label')}\n aria-hidden\n role=\"presentation\"\n />\n )\n}\n\nconst StyledInfoOutlineIcon = styled(InfoOutlineIcon)`\n --card-icon-color: var(--card-badge-primary-icon-color);\n`\nfunction ValidationInfoIcon() {\n const {t} = useTranslation()\n return (\n <StyledInfoOutlineIcon\n data-testid=\"input-validation-icon-info\"\n aria-label={t('form.validation.has-info-aria-label')}\n aria-hidden\n role=\"presentation\"\n />\n )\n}\n\nconst VALIDATION_ICONS = {\n error: ValidationErrorIcon,\n warning: ValidationWarningIcon,\n info: ValidationInfoIcon,\n}\n\nexport const StatusIcon = ({status}: {status: 'error' | 'warning' | 'info'}) => {\n const Icon = VALIDATION_ICONS[status]\n if (!Icon) return null\n\n return <Icon />\n}\n","import {type FormNodeValidation} from '@sanity/types'\nimport {Box, Flex, type Placement, Stack, Text} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport {useListFormat} from '../../../hooks/useListFormat'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {StatusIcon} from './ValidationStatusIcon'\n\nconst StatusIconWrapper = styled.div`\n left: 8px;\n position: relative;\n width: 25px;\n`\n\n/** @internal */\nexport interface FormFieldValidationStatusProps {\n /**\n *\n * @hidden\n * @beta\n */\n validation?: FormNodeValidation[]\n /**\n *\n * @hidden\n * @beta\n */\n __unstable_showSummary?: boolean\n fontSize?: number\n placement?: Placement\n}\n\nconst EMPTY_ARRAY: never[] = []\n\nconst StyledStack = styled(Stack)`\n max-width: 200px;\n`\n\n/** @internal */\nexport function FormFieldValidationStatus(props: FormFieldValidationStatusProps) {\n const {validation = EMPTY_ARRAY, __unstable_showSummary: showSummary, fontSize, placement} = props\n\n const hasErrors = validation.some((v) => v.level === 'error')\n const hasWarnings = validation.some((v) => v.level === 'warning')\n\n const status = hasErrors ? 'error' : hasWarnings ? 'warning' : 'info'\n\n return (\n <Tooltip\n content={\n <StyledStack gap={3}>\n {showSummary && <FormFieldValidationSummary validation={validation} />}\n\n {!showSummary && (\n <>\n {validation.map((item, itemIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <FormFieldValidationStatusItem key={itemIndex} validation={item} />\n ))}\n </>\n )}\n </StyledStack>\n }\n portal\n placement={placement}\n fallbackPlacements={['bottom', 'right', 'left']}\n >\n <StatusIconWrapper>\n <Text size={fontSize} weight=\"medium\">\n <StatusIcon status={status} />\n </Text>\n </StatusIconWrapper>\n </Tooltip>\n )\n}\n\nfunction FormFieldValidationStatusItem(props: {validation: FormNodeValidation}) {\n const {validation} = props\n\n return (\n <Flex>\n <Box marginRight={2}>\n <Text size={1} weight=\"medium\">\n <StatusIcon status={validation.level} />\n </Text>\n </Box>\n <Box flex={1}>\n <Text size={1}>{validation.message}</Text>\n </Box>\n </Flex>\n )\n}\n\nfunction FormFieldValidationSummary({validation}: {validation: FormNodeValidation[]}) {\n const {t} = useTranslation()\n const listFormatter = useListFormat()\n\n const errorCount = validation.reduce(\n (count, item) => (item.level === 'error' ? count + 1 : count),\n 0,\n )\n const warningCount = validation.reduce(\n (count, item) => (item.level === 'warning' ? count + 1 : count),\n 0,\n )\n\n const hasErrors = errorCount > 0\n const hasWarnings = warningCount > 0\n\n if (!hasErrors && !hasWarnings) {\n return null\n }\n\n const errorText = hasErrors && t('form.validation.summary.errors-count', {count: errorCount})\n const warningText =\n hasWarnings && t('form.validation.summary.warnings-count', {count: warningCount})\n\n return errorText && warningText ? (\n <Text size={1}>{listFormatter.format([errorText, warningText])}</Text>\n ) : (\n <Text size={1}>{errorText || warningText}</Text>\n )\n}\n","import {type ReactNode} from 'react'\n\n/**\n * Creates a description id from a field id, for use with aria-describedby in the field,\n * and added to the descriptive element id.\n * @internal\n */\nexport function createDescriptionId(\n id: string | undefined,\n description: ReactNode | undefined,\n): string | undefined {\n if (!description || !id) return undefined\n return `desc_${id}`\n}\n","// number of avatars to display on each fields (will be stacked and have a counter if more than 3 users in a field)\nexport const MAX_AVATARS_DOCK = 3\nexport const DEFAULT_MAX_AVATARS_FIELDS = 3\n\n// distance between avatars in pixels (negative number means overlap)\nexport const AVATAR_DISTANCE = -4\n\n// height/width of the avatars in pixels\nexport const AVATAR_SIZE = 25\n\nexport const AVATAR_ARROW_HEIGHT = 4\n\n// these are the thresholds in which the intersection observers will notify about regions going in/out of viewport\n// these will affect the thresholds below, so make sure to coordinate edits\nexport const INTERSECTION_THRESHOLDS = [0, 0.25, 0.75, 1]\n\n// The elements that reports intersection changes are padded top+bottom in order to detect when entering leaving\nexport const INTERSECTION_ELEMENT_PADDING = 23\n\n// Make the avatars snap to the top dock when they are closer than this from the top\nexport const SNAP_TO_DOCK_DISTANCE_TOP = 8\n\n// Make the avatars snap to the bottom dock when they are closer than this from the bottom\nexport const SNAP_TO_DOCK_DISTANCE_BOTTOM = 8\n\n// The avatar will move to the right when this close (in pixels) to the top\nexport const SLIDE_RIGHT_THRESHOLD_TOP = 20\n\n// The avatar will move to the right when this close (in pixels) to the bottom\nexport const SLIDE_RIGHT_THRESHOLD_BOTTOM = 20\n\n// Switch on debug mode (will display regions)\nexport const DEBUG = false\n","import {Flex} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nimport {AVATAR_SIZE} from './constants'\n\nexport const FlexWrapper = styled(Flex)`\n & > div:first-child {\n flex: 1;\n min-width: 0;\n }\n`\n\nexport const InnerBox = styled(Flex)`\n height: ${AVATAR_SIZE}px;\n min-width: 23px;\n vertical-align: top;\n`\n","import {memo, useContext} from 'react'\nimport {PresenceTrackerContextGetSnapshot, PresenceTrackerContextStore} from 'sanity/_singletons'\n\nimport {\n type TrackerContextGetSnapshot,\n useTrackerStore,\n useTrackerStoreReporter,\n} from '../../components/react-track-elements/hooks'\nimport {type Reported, type ReporterHook} from '../../components/react-track-elements/types'\nimport {type FieldPresenceData} from '../types'\n\nexport type ReportedPresenceData = Reported<FieldPresenceData>\n\nfunction PresenceTrackerComponent(props: {children: React.ReactNode}) {\n const {children} = props\n const {store, snapshot} = useTrackerStore<FieldPresenceData>()\n\n return (\n <PresenceTrackerContextStore.Provider value={store}>\n <PresenceTrackerContextGetSnapshot.Provider value={snapshot}>\n {children}\n </PresenceTrackerContextGetSnapshot.Provider>\n </PresenceTrackerContextStore.Provider>\n )\n}\n\n/**\n * @internal\n */\nexport const PresenceTracker = memo(PresenceTrackerComponent)\n\nconst EMPTY_ARRAY: Reported<FieldPresenceData>[] = []\n\n/**\n * @internal\n */\nexport function usePresenceReportedValues(): TrackerContextGetSnapshot<FieldPresenceData> {\n const snapshot = useContext(PresenceTrackerContextGetSnapshot)\n\n if (snapshot === null) {\n console.warn(\n new Error(\n 'No context provided for reporter. Make sure that the component calling \"usePresenceReportedValues()\", is wrapped inside a <PresenceTracker> element',\n ),\n )\n return EMPTY_ARRAY\n }\n\n return snapshot\n}\n\n/**\n * @internal\n */\nexport const usePresenceReporter: ReporterHook<FieldPresenceData> = (id, value, isEqual?) => {\n const store = useContext(PresenceTrackerContextStore)\n\n if (store === null) {\n console.warn(\n new Error(\n 'No context provided for reporter. Make sure that the component calling \"usePresenceReporter()\", is wrapped inside a <PresenceTracker> element',\n ),\n )\n }\n\n useTrackerStoreReporter<FieldPresenceData>(store, id, value, isEqual)\n}\n","import {Flex, Stack, Text} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {Tooltip} from '../../ui-components/tooltip/Tooltip'\nimport {UserAvatar} from '../components/userAvatar/UserAvatar'\nimport {type FormNodePresence} from './types'\n\ninterface PresenceTooltipProps {\n children?: React.JSX.Element\n items: FormNodePresence[]\n}\n\n/**\n * The \"documentScrollElement\" is being passed to the PortalProvider in DocumentPanel.\n * The default portal element provided by the PortalProvider causes some layout issues with the Tooltip.\n * Therefore, another portal element (i.e. the \"documentScrollElement\") is being used to solve this.\n */\n\nexport function PresenceTooltip(props: PresenceTooltipProps) {\n const {children, items} = props\n\n const content = useMemo(\n () => (\n <Stack sizing=\"border\">\n {items.map((item) => (\n <Flex key={item.user.id} align=\"center\" gap={2}>\n <div>\n <UserAvatar user={item.user} status=\"online\" />\n </div>\n\n <Text size={1}>{item.user.displayName}</Text>\n </Flex>\n ))}\n </Stack>\n ),\n [items],\n )\n\n return (\n <Tooltip content={content} placement=\"top\" portal=\"documentScrollElement\">\n {children}\n </Tooltip>\n )\n}\n","import {AVATAR_DISTANCE, AVATAR_SIZE} from './constants'\n\nexport const splitRight = <T>(array: T[], max: number): [T[], T[]] => {\n const indexFromMax = array.length > max ? max - 1 : max\n const idx = Math.max(0, array.length - indexFromMax)\n return [array.slice(0, idx), array.slice(idx)]\n}\n\n/** @internal */\nexport function calcAvatarStackWidth(len: number): number {\n return -AVATAR_DISTANCE + (AVATAR_SIZE + AVATAR_DISTANCE) * len\n}\n","import {AvatarCounter, type AvatarPosition} from '@sanity/ui'\nimport sortBy from 'lodash-es/sortBy.js'\nimport uniqBy from 'lodash-es/uniqBy.js'\nimport {memo, useCallback, useContext, useId, useMemo, useState} from 'react'\nimport {FormFieldPresenceContext} from 'sanity/_singletons'\n\nimport {UserAvatar} from '../components/userAvatar/UserAvatar'\nimport {AVATAR_DISTANCE, AVATAR_SIZE, DEFAULT_MAX_AVATARS_FIELDS} from './constants'\nimport {FlexWrapper, InnerBox} from './FieldPresence.styled'\nimport {usePresenceReporter} from './overlay/tracker'\nimport {PresenceTooltip} from './PresenceTooltip'\nimport {type FormNodePresence} from './types'\nimport {splitRight} from './utils'\n\n/** @internal */\nexport interface FieldPresenceInnerProps {\n maxAvatars?: number\n presence: FormNodePresence[]\n stack?: boolean\n position?: AvatarPosition\n animateArrowFrom?: AvatarPosition\n}\n\n/** @internal */\nexport const FieldPresenceInner = memo(function FieldPresenceInner({\n presence,\n position = 'inside',\n animateArrowFrom = 'inside',\n maxAvatars = DEFAULT_MAX_AVATARS_FIELDS,\n stack = true,\n}: FieldPresenceInnerProps) {\n const uniquePresence = uniqBy(presence || [], (item) => item.user.id)\n const sorted = sortBy(uniquePresence, (_presence) => _presence.lastActiveAt)\n const [hidden, visible] = stack ? splitRight(sorted, maxAvatars) : [[], sorted]\n\n const avatars = [\n ...visible.reverse().map((_visible) => ({\n key: _visible.user.id,\n element: (\n <UserAvatar\n animateArrowFrom={animateArrowFrom}\n position={position}\n status=\"online\"\n user={_visible.user}\n />\n ),\n })),\n hidden.length >= 2\n ? {\n key: 'counter',\n element: <AvatarCounter count={hidden.length} />,\n }\n : null,\n ].filter(Boolean)\n\n return (\n <FlexWrapper>\n <div />\n\n <InnerBox direction=\"row-reverse\">\n {avatars.map(\n (av, i) =>\n av && (\n <div\n key={av.key}\n style={{\n position: 'absolute',\n transform: `translate3d(${-i * (AVATAR_SIZE + AVATAR_DISTANCE)}px, 0px, 0px)`,\n transitionProperty: 'transform',\n transitionDuration: '200ms',\n transitionTimingFunction: 'cubic-bezier(0.85, 0, 0.15, 1)',\n zIndex: 100 - i,\n }}\n >\n {av.element}\n </div>\n ),\n )}\n </InnerBox>\n </FlexWrapper>\n )\n})\n\n/** @internal */\nexport interface FieldPresenceProps {\n presence: FormNodePresence[]\n maxAvatars: number\n}\n\n/** @internal */\nexport function FieldPresence(props: FieldPresenceProps) {\n const contextPresence = useContext(FormFieldPresenceContext)\n const {presence = contextPresence, maxAvatars = DEFAULT_MAX_AVATARS_FIELDS} = props\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n\n const reporterId = useId()\n const reporterGetSnapshot = useCallback(\n () => ({presence, element, maxAvatars}),\n [element, maxAvatars, presence],\n )\n usePresenceReporter(element ? reporterId : null, reporterGetSnapshot)\n\n const uniquePresence = useMemo(() => uniqBy(presence || [], (item) => item.user.id), [presence])\n\n return (\n <PresenceTooltip items={uniquePresence}>\n <FlexWrapper ref={setElement} style={{minHeight: AVATAR_SIZE, minWidth: AVATAR_SIZE}} />\n </PresenceTooltip>\n )\n}\n\n/**\n * @internal\n * @hidden\n * @deprecated Use `FieldPresence` instead\n * @alias\n */\nexport const FieldPresenceWithOverlay = FieldPresence\n","import {useMemo} from 'react'\n\nimport {useTranslation} from './useTranslation'\n\n/**\n * Enforces the shape of an object allowed to be passed into `useI18nText`.\n * @internal\n */\nexport type I18nNode<TNode extends {i18n?: {[TProp in string]: {key: string; ns: string}}}> = {\n i18n?: {[K in keyof TNode['i18n']]: {key: string; ns: string}}\n} & {\n [K in keyof TNode['i18n']]: string\n}\n\n/**\n * A React hook for localizing strings in a given object (`node`) using the\n * `useTranslation` hook.\n *\n * This hook expects an object (`node`) with top-level keys associated with\n * string values. If an `i18n` property is present within the object, it should\n * contain localization configurations for each top-level key. Each\n * configuration must include a `key` and `ns` (namespace) used for the\n * translation of the corresponding string value.\n *\n * The hook uses a proxy to intercept access to properties of the `node`. For\n * properties defined in the `i18n` object, it returns the translated string\n * using the `t` function. If no translation is found, the original string value\n * is used as a fallback. For properties not defined in the `i18n` object, their\n * original values are returned.\n *\n * @param node - The object containing strings to be localized along with\n * optional i18n configurations.\n * @returns A proxy of the original `node` object where each property access\n * returns localized strings.\n * @internal\n */\nexport function useI18nText<TNode extends I18nNode<TNode>>(node: TNode): TNode {\n const namespaces = useMemo(() => {\n if (!node.i18n) return []\n return Array.from(new Set(Object.values(node.i18n).map(({ns}) => ns))).sort()\n }, [node.i18n])\n\n const {t} = useTranslation(namespaces)\n\n return useMemo(() => {\n const {i18n} = node\n if (!i18n) return node\n\n return new Proxy(node, {\n get: (target, property) => {\n const defaultValue = target[property as keyof TNode]\n\n if (typeof property === 'string' && property in i18n) {\n const {key, ns} = i18n[property as keyof TNode['i18n']]\n return t(key, {\n ns,\n // `defaultValue` is a special key in the i18next `t` API that\n // allows us to provide a fallback value if no translation is found\n // using the given key and namespace. if the value on the node\n // is a string, then we'll use that as the fallback value\n ...(typeof defaultValue === 'string' && {defaultValue}),\n })\n }\n\n return defaultValue\n },\n })\n }, [node, t])\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {Text} from '@sanity/ui'\nimport {useCallback} from 'react'\n\nimport {MenuItem} from '../../../../ui-components/menuItem/MenuItem'\nimport {TooltipOfDisabled} from '../../../components/TooltipOfDisabled'\nimport {type DocumentFieldActionItem} from '../../../config/document/fieldActions/types'\nimport {useI18nText} from '../../../i18n/hooks/useI18nText'\n\nexport function FieldActionMenuItem(props: {action: DocumentFieldActionItem}) {\n const {action} = props\n\n const {title} = useI18nText(action)\n\n const handleClick = useCallback(() => {\n action.onAction()\n }, [action])\n\n const disabledTooltipContent = typeof action.disabled === 'object' && (\n <Text size={1}>{action.disabled.reason}</Text>\n )\n\n return (\n <TooltipOfDisabled content={disabledTooltipContent} placement=\"left\">\n <MenuItem\n disabled={Boolean(action.disabled)}\n icon={action.icon}\n iconRight={action.iconRight || (action.selected ? CheckmarkIcon : undefined)}\n onClick={handleClick}\n pressed={action.selected}\n text={title}\n tone={action.tone}\n />\n </TooltipOfDisabled>\n )\n}\n","import {Box, Text} from '@sanity/ui'\nimport {MenuDivider} from '@sanity/ui/menu'\n\nimport {MenuGroup, type MenuGroupProps} from '../../../../ui-components/menuGroup/MenuGroup'\nimport {\n type DocumentFieldActionGroup,\n type DocumentFieldActionNode,\n} from '../../../config/document/fieldActions/types'\nimport {useI18nText} from '../../../i18n/hooks/useI18nText'\nimport {FieldActionMenuItem} from './FieldActionMenuItem'\n\n// `FieldActionMenuNode` and `FieldActionMenuGroup` are mutually recursive (groups render their\n// children as nodes), so they live in the same module to avoid circular imports.\n\ninterface FieldActionMenuNodeProps {\n action: DocumentFieldActionNode\n isFirst: boolean\n prevIsGroup: boolean\n}\n\nexport function FieldActionMenuNode(props: FieldActionMenuNodeProps) {\n const {action, isFirst, prevIsGroup} = props\n\n if (action.type === 'divider') {\n return <MenuDivider />\n }\n\n if (action.type === 'group') {\n return (\n <>\n {!isFirst && <MenuDivider />}\n <FieldActionMenuGroup group={action} />\n </>\n )\n }\n\n return (\n <>\n {prevIsGroup && <MenuDivider />}\n <FieldActionMenuItem action={action} />\n </>\n )\n}\n\nconst POPOVER_PROPS: MenuGroupProps['popover'] = {\n placement: 'right',\n fallbackPlacements: ['top', 'bottom'],\n}\n\nfunction FieldActionMenuGroup(props: {group: DocumentFieldActionGroup}) {\n const {group} = props\n const {title} = useI18nText(group)\n\n if (group.expanded) {\n return (\n <>\n <Box padding={2} paddingTop={3}>\n <Text muted size={1} weight=\"medium\">\n {title}\n </Text>\n </Box>\n\n {group.children.map((item, idx) => (\n <FieldActionMenuNode\n // oxlint-disable-next-line no-array-index-key\n key={idx}\n action={item}\n isFirst={idx === 0}\n prevIsGroup={group.children[idx - 1]?.type === 'group'}\n />\n ))}\n </>\n )\n }\n\n return (\n <MenuGroup icon={group.icon} popover={POPOVER_PROPS} text={title} tone={group.tone}>\n {group.children.map((item, idx) => (\n <FieldActionMenuNode\n // oxlint-disable-next-line no-array-index-key\n key={idx}\n action={item}\n isFirst={idx === 0}\n prevIsGroup={group.children[idx - 1]?.type === 'group'}\n />\n ))}\n </MenuGroup>\n )\n}\n","import {EllipsisHorizontalIcon} from '@sanity/icons/EllipsisHorizontal'\nimport {Card} from '@sanity/ui'\nimport {Menu} from '@sanity/ui/menu'\nimport {memo, type PointerEvent, useCallback, useId, useMemo, useState} from 'react'\n\nimport {Button, type ButtonProps} from '../../../../ui-components/button/Button'\nimport {MenuButton, type MenuButtonProps} from '../../../../ui-components/menuButton/MenuButton'\nimport {\n type DocumentFieldActionGroup,\n type DocumentFieldActionNode,\n} from '../../../config/document/fieldActions/types'\nimport {useI18nText} from '../../../i18n/hooks/useI18nText'\nimport {FieldActionMenuNode} from './FieldActionMenuNode'\n\n/** @internal */\nexport interface FieldActionMenuProps {\n nodes: DocumentFieldActionNode[]\n onMenuOpenChange: (open: boolean) => void\n}\n\nconst STATUS_BUTTON_TOOLTIP_PROPS: ButtonProps['tooltipProps'] = {\n placement: 'top',\n}\n\nfunction renderAsButton(node: DocumentFieldActionNode) {\n return 'renderAsButton' in node && node.renderAsButton\n}\n\n/** @internal */\nexport const FieldActionMenu = memo(function FieldActionMenu(props: FieldActionMenuProps) {\n const {nodes, onMenuOpenChange} = props\n const [open, setOpen] = useState(false)\n\n const handleOpen = useCallback(() => {\n onMenuOpenChange(true)\n setOpen(true)\n }, [onMenuOpenChange])\n const handleClose = useCallback(() => {\n onMenuOpenChange(false)\n setOpen(false)\n }, [onMenuOpenChange])\n\n const buttonNodes = useMemo(() => nodes.filter(renderAsButton), [nodes])\n const menuNodesProp = useMemo(() => nodes.filter((node) => !renderAsButton(node)), [nodes])\n\n // If there is only one menu node, and it is a `group`, expand it by default\n const menuNodes = useMemo(() => {\n const len = menuNodesProp.length\n\n if (len === 0 || len > 1) return menuNodesProp\n\n const node = menuNodesProp[0]\n\n if (node.type === 'group') {\n return [{...node, expanded: true}]\n }\n\n return menuNodesProp\n }, [menuNodesProp])\n\n const rootNodes: DocumentFieldActionNode[] = useMemo(\n () => [\n ...(menuNodes.length\n ? ([\n {\n type: 'group',\n children: menuNodes,\n icon: EllipsisHorizontalIcon,\n title: 'Field actions',\n },\n ] satisfies DocumentFieldActionNode[])\n : []),\n ...buttonNodes,\n ],\n [buttonNodes, menuNodes],\n )\n\n return (\n <>\n {rootNodes.map((node, idx) => (\n <RootFieldActionMenuNode\n // oxlint-disable-next-line no-array-index-key\n key={idx}\n node={node}\n onOpen={handleOpen}\n onClose={handleClose}\n open={open}\n />\n ))}\n </>\n )\n})\n\nconst RootFieldActionMenuNode = memo(function RootFieldActionMenuNode(props: {\n node: DocumentFieldActionNode\n onOpen: () => void\n onClose: () => void\n open: boolean\n}) {\n const {node, onOpen, onClose, open} = props\n\n if (node.type === 'divider') {\n return <Card borderLeft flex=\"none\" />\n }\n\n if (node.type === 'action') {\n return (\n <Button\n icon={node.icon}\n mode=\"bleed\"\n onClick={node.onAction}\n tooltipProps={{\n ...STATUS_BUTTON_TOOLTIP_PROPS,\n content: node.title,\n }}\n />\n )\n }\n\n return <RootFieldActionMenuGroup node={node} onOpen={onOpen} onClose={onClose} open={open} />\n})\n\nconst ROOT_MENU_BUTTON_POPOVER_PROPS: MenuButtonProps['popover'] = {\n constrainSize: true,\n placement: 'right',\n portal: true,\n fallbackPlacements: ['top', 'bottom'],\n}\n\nfunction RootFieldActionMenuGroup(props: {\n node: DocumentFieldActionGroup\n onOpen: () => void\n onClose: () => void\n open: boolean\n}) {\n const {node, onOpen, onClose, open} = props\n const {title} = useI18nText(node)\n\n // Prevent the browser's default focus-and-scroll behaviour on pointer down.\n // Without this, clicking the overflow menu button while another field (possibly\n // far away) holds focus causes the browser to scroll the document as it shifts\n // focus, resulting in an unexpected jump to the top of the form.\n const handlePointerDown = useCallback((event: PointerEvent) => {\n event.preventDefault()\n }, [])\n\n return (\n <MenuButton\n button={\n <Button\n aria-label={open ? undefined : title}\n data-testid=\"field-actions-trigger\"\n icon={node.icon}\n mode=\"bleed\"\n onPointerDown={handlePointerDown}\n tabIndex={0}\n tooltipProps={{\n ...STATUS_BUTTON_TOOLTIP_PROPS,\n content: node.title,\n }}\n />\n }\n id={useId()}\n menu={\n <Menu>\n {node.children.map((action, idx) => {\n return (\n <FieldActionMenuNode\n // oxlint-disable-next-line no-array-index-key\n key={idx}\n action={action}\n isFirst={idx === 0}\n prevIsGroup={node.children[idx - 1]?.type === 'group'}\n />\n )\n })}\n </Menu>\n }\n onOpen={onOpen}\n onClose={onClose}\n popover={ROOT_MENU_BUTTON_POPOVER_PROPS}\n />\n )\n}\n","import {Box, Card, Flex} from '@sanity/ui'\nimport {type ReactNode, useCallback, useEffect, useMemo, useState} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {TooltipDelayGroupProvider} from '../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {type DocumentFieldActionNode} from '../../../config/document/fieldActions/types'\nimport {FieldPresence} from '../../../presence/FieldPresence'\nimport {type FormNodePresence} from '../../../presence/types'\nimport {calcAvatarStackWidth} from '../../../presence/utils'\nimport {FieldActionMenu} from '../../field/actions/FieldActionMenu'\nimport {type FieldCommentsProps} from '../../types/fieldProps'\n\nconst Root = styled(Flex)<{\n $floatingCardWidth: number\n $slotWidth: number\n $floatingCardVisible: boolean\n}>(({theme, $floatingCardWidth, $slotWidth, $floatingCardVisible}) => {\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n const {space} = theme.sanity\n return css`\n /* Prevent buttons from taking up extra vertical space */\n line-height: 1;\n width: 100%;\n /* For floating actions menu */\n position: relative;\n\n [data-ui='PresenceBox'] {\n position: absolute;\n bottom: 0;\n right: ${$slotWidth + $floatingCardWidth + space[1]}px;\n }\n @media (hover: hover) {\n // If hover is supported, we hide the floating card by default, so only add space for it when it's visible.\n [data-ui='PresenceBox'] {\n position: absolute;\n bottom: 0;\n right: ${$slotWidth + ($floatingCardVisible ? $floatingCardWidth : 0) + space[1]}px;\n }\n }\n `\n})\n\nconst ContentBox = styled(Box)<{\n $presenceMaxWidth: number\n}>(({theme, $presenceMaxWidth}) => {\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n const {space} = theme.sanity\n return css`\n max-width: calc(100% - ${$presenceMaxWidth + space[1]}px);\n min-width: 75%;\n `\n})\n\nconst SlotBox = styled(Box)<{\n $right: number\n $fieldActionsVisible: boolean\n}>(({theme, $right, $fieldActionsVisible}) => {\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n const {space} = theme.sanity\n const right = $fieldActionsVisible ? $right + space[1] : $right\n return css`\n position: absolute;\n bottom: 0;\n right: ${right}px;\n `\n})\n\nconst FieldActionsFloatingCard = styled(Card)`\n align-items: center;\n bottom: 0;\n position: absolute;\n right: 0;\n transition: opacity 150ms ease;\n line-height: 1;\n\n @media (hover: hover) {\n // If hover is supported, we hide the floating card by default\n // and only show it when it has focus within or when the field is hovered or focused.\n opacity: 0;\n pointer-events: none;\n\n [data-ui='FieldActionsFlex'] {\n opacity: 0;\n }\n\n &[data-actions-visible='false']:not(:focus-within) {\n // Remove the shadow when the field actions are not visible\n box-shadow: none;\n\n // Since the field actions always will be present in the DOM (to make them focusable) –\n // they will always affect the width of the floating card, even when they are not visible.\n // Therefore, we remove the background of the floating card when the field actions are not visible.\n background: transparent;\n }\n\n // Remove the shadow when the field has comments but no actions\n &[data-has-comments='true']:not([data-has-actions='true']) {\n box-shadow: none;\n }\n\n // Show the floating card when it has focus within (ie when field actions are focused).\n &:focus-within {\n opacity: 1;\n pointer-events: auto;\n width: max-content;\n\n [data-ui='FieldActionsFlex'] {\n opacity: 1;\n pointer-events: auto;\n width: max-content;\n }\n }\n }\n\n &[data-visible='true'] {\n opacity: 1;\n pointer-events: auto;\n width: max-content;\n }\n\n &[data-actions-visible='true'] {\n [data-ui='FieldActionsFlex'] {\n opacity: 1;\n pointer-events: auto;\n width: max-content;\n }\n }\n`\n\nconst FieldActionsFlex = styled(Flex)`\n gap: inherit;\n transition: opacity 150ms ease;\n`\n\nconst MAX_AVATARS = 4\n\ninterface FormFieldBaseHeaderProps {\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n __internal_comments?: FieldCommentsProps // DO NOT USE\n __internal_slot?: ReactNode // ONLY USED BY AI ASSIST PLUGIN\n actions?: DocumentFieldActionNode[]\n content: ReactNode\n fieldFocused: boolean\n inputId?: string\n fieldHovered: boolean\n presence?: FormNodePresence[]\n}\n\nexport function FormFieldBaseHeader(props: FormFieldBaseHeaderProps) {\n const {\n __internal_comments: comments,\n __internal_slot: slot,\n actions,\n content,\n fieldFocused,\n fieldHovered,\n presence,\n inputId,\n } = props\n const [focused, setFocused] = useState<boolean>(false)\n // State for if an actions menu is open\n const [menuOpen, setMenuOpen] = useState<boolean>(false)\n\n // States for floating card element and its width\n const [floatingCardElement, setFloatingCardElement] = useState<HTMLDivElement | null>(null)\n const [floatingCardWidth, setFloatingCardWidth] = useState<number>(0)\n\n // States for slot element and its width\n const [slotElement, setSlotElement] = useState<HTMLDivElement | null>(null)\n const [slotWidth, setSlotWidth] = useState<number>(0)\n\n // Extract comment related data with default values\n const {\n hasComments = false,\n button: commentButton = null,\n isAddingComment = false,\n } = comments || {}\n // Determine if actions exist and if field actions should be shown\n const hasActions = actions && actions.length > 0\n const showFieldActions = fieldFocused || fieldHovered || menuOpen || isAddingComment\n\n // Determine if there's a comment button or actions to show.\n // We check for `comments.button` since that's the visual element that should be\n // used for comments. If no button is provided, we don't have anything to show for comments.\n const hasCommentsButtonOrActions = comments?.button || hasActions\n\n // Determine if floating card with actions should be shown\n const shouldShowFloatingCard = focused || showFieldActions || hasComments\n\n const handleSetFloatingCardElementWidth = useCallback(() => {\n if (floatingCardElement) {\n const {width} = floatingCardElement.getBoundingClientRect()\n setFloatingCardWidth(width || 0)\n }\n }, [floatingCardElement])\n\n // When a focus or blur event occurs on the floating card, we need to recalculate its width.\n // This is because presence should be positioned relative to the floating card.\n // We need this because we don't conditionally render the floating card and rely on CSS to\n // show/hide it, and therefore the width calculation won't be triggered when the card is shown or hidden.\n const handleFocusCapture = useCallback(() => {\n handleSetFloatingCardElementWidth()\n setFocused(true)\n }, [handleSetFloatingCardElementWidth])\n\n const handleBlurCapture = useCallback(() => {\n handleSetFloatingCardElementWidth()\n setFocused(false)\n }, [handleSetFloatingCardElementWidth])\n\n // Calculate floating card's width\n useEffect(() => {\n // oxlint-disable-next-line react/react-compiler\n handleSetFloatingCardElementWidth()\n }, [handleSetFloatingCardElementWidth, showFieldActions])\n\n // Calculate slot element's width\n useEffect(() => {\n if (slotElement) {\n const {width} = slotElement.getBoundingClientRect()\n // oxlint-disable-next-line react/react-compiler\n setSlotWidth(width || 0)\n }\n }, [slotElement])\n\n // Construct the slot element if slot is provided\n const slotEl = useMemo(() => {\n if (!slot) return null\n\n return (\n <SlotBox\n $fieldActionsVisible={Boolean(showFieldActions)}\n $right={floatingCardWidth}\n ref={setSlotElement}\n >\n {slot}\n </SlotBox>\n )\n }, [floatingCardWidth, showFieldActions, slot])\n\n return (\n <Root\n align=\"flex-end\"\n justify=\"space-between\"\n $floatingCardVisible={shouldShowFloatingCard}\n $floatingCardWidth={floatingCardWidth}\n $slotWidth={slotWidth}\n >\n <ContentBox\n data-ui=\"fieldHeaderContentBox\"\n flex={1}\n paddingY={2}\n $presenceMaxWidth={calcAvatarStackWidth(MAX_AVATARS)}\n >\n {content}\n </ContentBox>\n\n {presence && presence.length > 0 && (\n <Box data-ui=\"PresenceBox\" flex=\"none\">\n <FieldPresence maxAvatars={MAX_AVATARS} presence={presence} />\n </Box>\n )}\n\n {slotEl}\n\n {(hasCommentsButtonOrActions || hasComments) && (\n <TooltipDelayGroupProvider>\n <FieldActionsFloatingCard\n data-actions-visible={showFieldActions ? 'true' : 'false'}\n data-has-actions={hasActions ? 'true' : 'false'}\n data-has-comments={hasComments ? 'true' : 'false'}\n data-visible={shouldShowFloatingCard ? 'true' : 'false'}\n display=\"flex\"\n onBlurCapture={handleBlurCapture}\n onFocusCapture={handleFocusCapture}\n ref={setFloatingCardElement}\n sizing=\"border\"\n >\n {hasActions && (\n <FieldActionsFlex\n align=\"center\"\n data-ui=\"FieldActionsFlex\"\n data-testid={inputId ? `field-actions-menu-${inputId}` : `field-actions-menu`}\n >\n <FieldActionMenu nodes={actions} onMenuOpenChange={setMenuOpen} />\n </FieldActionsFlex>\n )}\n\n {commentButton}\n </FieldActionsFloatingCard>\n </TooltipDelayGroupProvider>\n )}\n </Root>\n )\n}\n","import {type DeprecatedProperty, type FormNodeValidation} from '@sanity/types'\nimport {Badge, Box, Flex, Stack, Text} from '@sanity/ui'\nimport {memo, type ReactNode} from 'react'\nimport {styled} from 'styled-components'\n\nimport {TextWithTone} from '../../../components/textWithTone/TextWithTone'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {createDescriptionId} from '../../members/common/createDescriptionId'\nimport {FormFieldValidationStatus} from './FormFieldValidationStatus'\n\nconst LabelSuffix = styled(Flex)`\n /*\n * Prevent the block size of appended elements (such as the deprecated field badge) affecting\n * the intrinsic block size of the label, while still allowing the inline size (width) to\n * expand naturally to fit its content.\n */\n height: 0;\n overflow: visible;\n`\n\n/** @internal */\nexport interface FormFieldHeaderTextProps {\n /**\n *\n * @hidden\n * @beta\n */\n validation?: FormNodeValidation[]\n description?: ReactNode\n /**\n * The unique ID used to target the actual input element\n */\n inputId?: string\n title?: ReactNode\n deprecated?: DeprecatedProperty\n /**\n * Additional content to be rendered alongside the title\n */\n suffix?: ReactNode\n}\n\nconst EMPTY_ARRAY: never[] = []\n\n/** @internal */\nexport const FormFieldHeaderText = memo(function FormFieldHeaderText(\n props: FormFieldHeaderTextProps,\n) {\n const {description, inputId, title, deprecated, validation = EMPTY_ARRAY, suffix} = props\n const {t} = useTranslation()\n const hasValidations = validation.length > 0\n\n return (\n <Stack gap={3}>\n <Flex align=\"center\" paddingY={1}>\n <Flex align=\"center\">\n <Text as=\"label\" htmlFor={inputId} weight=\"medium\" size={1}>\n {title || (\n <span style={{color: 'var(--card-muted-fg-color)'}}>\n {t('form.field.untitled-field-label')}\n </span>\n )}\n </Text>\n </Flex>\n\n {suffix && (\n <Box marginLeft={2} data-testid=\"form-field-suffix\">\n {suffix}\n </Box>\n )}\n\n {(deprecated || hasValidations) && (\n <LabelSuffix align=\"center\">\n {deprecated && (\n <Box marginLeft={2}>\n <Badge data-testid={`deprecated-badge-${title}`} tone=\"caution\">\n {t('form.field.deprecated-label')}\n </Badge>\n </Box>\n )}\n\n {hasValidations && (\n <Box marginLeft={2}>\n <FormFieldValidationStatus\n data-testid={`input-validation-icon-error`}\n fontSize={1}\n placement=\"top\"\n validation={validation}\n />\n </Box>\n )}\n </LabelSuffix>\n )}\n </Flex>\n\n {deprecated && (\n <TextWithTone data-testid={`deprecated-message-${title}`} tone=\"caution\" size={1}>\n {deprecated.reason}\n </TextWithTone>\n )}\n\n {description && (\n <Text muted size={1} id={createDescriptionId(inputId, description)}>\n {description}\n </Text>\n )}\n </Stack>\n )\n})\n","import {EarthAmericasIcon} from '@sanity/icons/EarthAmericas'\nimport {Box, Inline, Text} from '@sanity/ui'\nimport noop from 'lodash-es/noop.js'\nimport {type ReactNode} from 'react'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport useDialogTimeZone from '../../../hooks/useDialogTimeZone'\nimport {type TimeZoneScope, useTimeZone} from '../../../hooks/useTimeZone'\n\nexport interface TimeZoneButtonZoneProps {\n useElementQueries?: boolean\n timeZoneScope: TimeZoneScope\n allowTimeZoneSwitch?: boolean\n tooltipContent: ReactNode\n}\n\nexport const TimeZoneButton = (props: TimeZoneButtonZoneProps) => {\n const {useElementQueries, timeZoneScope, allowTimeZoneSwitch = true, tooltipContent} = props\n const {timeZone} = useTimeZone(timeZoneScope)\n const {DialogTimeZone, dialogProps, dialogTimeZoneShow} = useDialogTimeZone(timeZoneScope)\n\n return (\n <>\n {/* Dialog */}\n {DialogTimeZone && <DialogTimeZone {...dialogProps} />}\n\n <Tooltip\n content={\n <Box flex={1} padding={1}>\n <Text size={1}>{tooltipContent}</Text>\n </Box>\n }\n portal\n >\n <div>\n {/*\n If `useElementQueries` is enabled, dates will be conditionally toggled at different element\n breakpoints - provided this `<TimeZoneButtonZone>` is wrapped in a `<TimeZoneButtonZoneElementQuery>` component.\n */}\n {useElementQueries ? (\n <>\n <Box className=\"button-small\">\n {allowTimeZoneSwitch ? (\n <Button\n data-testid=\"timezone-button\"\n icon={EarthAmericasIcon}\n mode=\"bleed\"\n readOnly={!allowTimeZoneSwitch}\n onClick={allowTimeZoneSwitch ? dialogTimeZoneShow : noop}\n text={`${timeZone.city}`}\n />\n ) : (\n <Inline gap={2} padding={2}>\n <Text weight={'medium'} size={1}>\n <EarthAmericasIcon />\n </Text>\n <Text weight={'medium'} size={1}>{`${timeZone.city}`}</Text>\n </Inline>\n )}\n </Box>\n <Box className=\"button-large\">\n {allowTimeZoneSwitch ? (\n <Button\n data-testid=\"timezone-button\"\n icon={EarthAmericasIcon}\n mode=\"bleed\"\n readOnly={!allowTimeZoneSwitch}\n onClick={allowTimeZoneSwitch ? dialogTimeZoneShow : noop}\n text={`${timeZone.alternativeName} (${timeZone.namePretty})`}\n />\n ) : (\n <Inline gap={2} padding={2}>\n <Text weight={'medium'} size={1}>\n <EarthAmericasIcon />\n </Text>\n <Text\n weight={'medium'}\n size={1}\n >{`${timeZone.alternativeName} (${timeZone.namePretty})`}</Text>\n </Inline>\n )}\n </Box>\n </>\n ) : (\n <>\n {allowTimeZoneSwitch ? (\n <Button\n icon={EarthAmericasIcon}\n mode=\"bleed\"\n readOnly={!allowTimeZoneSwitch}\n onClick={allowTimeZoneSwitch ? dialogTimeZoneShow : noop}\n text={`${timeZone.alternativeName} (${timeZone.namePretty})`}\n />\n ) : (\n <Inline gap={2} padding={2}>\n <Text weight={'medium'} size={1}>\n <EarthAmericasIcon />\n </Text>\n <Text\n weight={'medium'}\n size={1}\n >{`${timeZone.alternativeName} (${timeZone.namePretty})`}</Text>\n </Inline>\n )}\n </>\n )}\n </div>\n </Tooltip>\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,SAASe,YAAmBC,gBAAoCE,SAAqB;;;;;;;;;CASnF,SAAST,IAAIC,IAAYC,OAAc;EASrCO,AARIF,eAAeG,IAAIT,EAAE,GAOzBM,eAAeI,IAAIV,IAAIC,KAAK,GAC5BO,QAAQ;CACV;CAEA,SAASL,OAAOH,IAAYC,OAAc;EAKxCO,AAJKF,eAAeG,IAAIT,EAAE,GAG1BM,eAAeI,IAAIV,IAAIC,KAAK,GAC5BO,QAAQ;CACV;CAEA,SAASJ,OAAOJ,IAAY;EAK1BQ,AAJKF,eAAeG,IAAIT,EAAE,GAG1BM,eAAeK,OAAOX,EAAE,GACxBQ,QAAQ;CACV;CAEA,OAAO;EACLT;EACAK;EACAD;CACF;AACF;;AAMA,SAAOU,kBAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAIL,CAAAT,kBAAyBV,SAASoB,OAA8B,GAACC;CAAA,AAAAH,EAAA,OAAAR,iBACuBW,KAAAH,EAAA,MAA1CG,WAAMC,MAAKC,KAAMb,eAAcc,QAAS,CAAC,GAACN,EAAA,KAAAR,gBAAAQ,EAAA,KAAAG;CAAA,IAAAI;CAAA,AAAAP,EAAA,OAAAQ,OAAAC,IAAA,2BAAA,KAAEF,KAAA,CAAA,GAAEP,EAAA,KAAAO,MAAAA,KAAAP,EAAA;CAA5F,IAAA,CAAAU,UAAAC,kBAAmC/B,WAAWuB,IAA4CI,EAAE,GAACK;CAAA,AAAAZ,EAAA,OAAAQ,OAAAC,IAAA,2BAAA,KAC/CG,KAAApC,SAASmC,gBAAgB,IAAI,EAAAE,UAAW,GAAI,CAAC,GAACb,EAAA,KAAAY,MAAAA,KAAAZ,EAAA;CAA5F,IAAAc,0BAA8CF,IAAmDG,IAAAC;CAMjGvC,AANiGuB,EAAA,OAAAQ,OAAAC,IAAA,2BAAA,KAMvFM,iBAAYD,wBAAuBG,OAAQ,GAAGD,KAAA,CAACF,uBAAuB,GAACd,EAAA,KAAAe,IAAAf,EAAA,KAAAgB,OAAAD,KAAAf,EAAA,IAAAgB,KAAAhB,EAAA,KAAjFvB,UAAUsC,IAA8CC,EAAyB;CAAC,IAAAE;CAAA,AAAAlB,EAAA,OAAAR,iBAGtB0B,KAAAlB,EAAA,MAApDkB,KAAA3B,YAAYC,gBAAgBsB,uBAAuB,GAACd,EAAA,KAAAR,gBAAAQ,EAAA,KAAAkB;CAD5D,IAAAC,QACQD,IAEPE;CAEuB,OAFvBpB,EAAA,OAAAU,YAAAV,EAAA,OAAAmB,SAEMC,KAAA;EAAAD;EAAAT;CAAgB,GAACV,EAAA,KAAAU,UAAAV,EAAA,KAAAmB,OAAAnB,EAAA,MAAAoB,MAAAA,KAAApB,EAAA,KAAjBoB;AAAiB;;AAnBnB,SAAAlB,UAAA;CAAA,uBAImC,IAAIT,IAAmB;AAAC;AAmBlE,SAAO4B,wBAAAF,OAAAjC,IAAAC,OAAAgB,IAAA;CAAA,IAAAH,IAAAC,EAAA,EAAA,GAILqB,UAAAnB,OAAAoB,KAAAA,IAAkCC,OAAMC,KAAxCtB,IAEAuB,QAAc7C,OAAsB,IAAI,GACxC8C,cAAoB9C,OAAqB,IAAI,GAAC0B,IAAAK;CAE9ClC,AAF8CsB,EAAA,OAAAd,MAAAc,EAAA,OAAAmB,SAAAnB,EAAA,OAAAb,SAE9BoB,WAAA;EAId,IAAIrB,OAAO,QAAQiC,UAAU,MAAI;EAGjC,IAAAS,YAAkBzC,MAAM;EAGL,OAFnBgC,MAAKlC,IAAKC,IAAI0C,SAAS,GACvBF,MAAKG,UAAW3C,IAChByC,YAAWE,UAAWD,iBACf;GAGLD,AAFAR,MAAK7B,OAAQJ,EAAE,GACfwC,MAAKG,UAAW,MAChBF,YAAWE,UAAW;EAAH;CACpB,GACAjB,KAAA;EAAC1B;EAAIiC;EAAOhC;CAAK,GAACa,EAAA,KAAAd,IAAAc,EAAA,KAAAmB,OAAAnB,EAAA,KAAAb,OAAAa,EAAA,KAAAO,IAAAP,EAAA,KAAAY,OAAAL,KAAAP,EAAA,IAAAY,KAAAZ,EAAA,KAhBrBtB,gBAAgB6B,IAgBbK,EAAkB;CAAC,IAAAG;CAEtBrC,AAFsBsB,EAAA,OAAAd,MAAAc,EAAA,OAAAsB,WAAAtB,EAAA,OAAAmB,SAAAnB,EAAA,OAAAb,SAEN4B,WAAA;EAMd,IAAI7B,OAAO,QAAQwC,MAAKG,YAAa,QAAQV,UAAU,QAAQjC,OAAOwC,MAAKG,SAAQ;EAGnF,IAAAC,cAAkB3C,MAAM;EACpBmC,QAAQK,YAAWE,SAAUD,WAAS,MAI1CT,MAAK9B,OAAQH,IAAI0C,WAAS,GAC1BD,YAAWE,UAAWD;CAAH,GAGpB5B,EAAA,KAAAd,IAAAc,EAAA,KAAAsB,SAAAtB,EAAA,KAAAmB,OAAAnB,EAAA,KAAAb,OAAAa,EAAA,KAAAe,MAAAA,KAAAf,EAAA,IAlBDtB,gBAAgBqC,EAkBf;AAAC;AC5GJ,SAAA4B,iCAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACE,EAAAC,aAAmBH,OACnB,EAAAI,OAAAC,aAA0Bb,gBAAoD,GAACc;CAAA,AAAAL,EAAA,OAAAE,YAAAF,EAAA,OAAAI,YAI3EC,KAAA,oBAAA,yCAAA,UAAA;EAA0DD,OAAAA;EACvDF;CACH,CAAA,GAAoDF,EAAA,KAAAE,UAAAF,EAAA,KAAAI,UAAAJ,EAAA,KAAAK,MAAAA,KAAAL,EAAA;CAAA,IAAAM;CACR,OADQN,EAAA,OAAAG,SAAAH,EAAA,OAAAK,MAHtDC,KAAA,oBAAA,mCAAA,UAAA;EAAoDH,OAAAA;EAClDE,UAAAA;CAGF,CAAA,GAA8CL,EAAA,KAAAG,OAAAH,EAAA,KAAAK,IAAAL,EAAA,KAAAM,MAAAA,KAAAN,EAAA,IAJ9CM;AAI8C;;;;AAOlD,MAAaC,0BAA0BrB,KAAKY,gCAAgC,GAEtEU,gBAA8D,CAAA;;;;AAKpE,SAAOC,oCAAA;CACL,IAAAL,WAAiBjB,WAAWC,wCAAwC;CASnE,OAPGgB,aAAa,QACfM,QAAOC,KACL,gBAAIC,MACF,uKACF,CACF,GACOJ,iBAGFJ;AAAQ;;;;AAMjB,MAAaS,+BAAgFC,IAAAC,OAAAC,YAAA;CAK3F,IAAAb,QAAchB,WAAWE,kCAAkC;CAU3DG,AARIW,UAAU,QACZO,QAAOC,KACL,gBAAIC,MACF,iKACF,CACF,GAGFpB,wBAA4DW,OAAOW,IAAIC,OAAOC,OAAO;AAAC;;ACvExF,SAAOI,kBAAAC,IAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAAAC,UAAAC,SAAAC,UAAAC,KAAAC;CAAA,AAAAN,EAAA,OAAAD,MAMwCG,WAAAF,EAAA,IAAAG,UAAAH,EAAA,IAAAI,WAAAJ,EAAA,IAAAK,MAAAL,EAAA,IAAAM,YAAAN,EAAA,OANb,CAAAK,KAAAH,UAAAC,SAAAC,aAAAE,aAAAP,IAMaC,EAAA,KAAAD,IAAAC,EAAA,KAAAE,UAAAF,EAAA,KAAAG,SAAAH,EAAA,KAAAI,UAAAJ,EAAA,KAAAK,KAAAL,EAAA,KAAAM;CAES,IAAAC,KAAAH,YAAA,CAAaD,SAAOK;CAAA,AAAAR,EAAA,OAAAE,WACjDM,KAAAR,EAAA,MAArBQ,KAAA,oBAAA,OAAA,EAAMN,SAAe,CAAA,GAAAF,EAAA,KAAAE,UAAAF,EAAA,KAAAQ;CAAA,IAAAC;CACb,OADaT,EAAA,OAAAG,WAAAH,EAAA,OAAAK,OAAAL,EAAA,QAAAM,aAAAN,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,MADvBC,KAAA,oBAAC,SAAD;EAAQ,GAAKH;EAAoBH;EAAmB,UAAAI;EAA2BF;EAC7EG,UAAAA;CADM,CAAA,GAEER,EAAA,KAAAG,SAAAH,EAAA,KAAAK,KAAAL,EAAA,MAAAM,WAAAN,EAAA,MAAAO,IAAAP,EAAA,MAAAQ,IAAAR,EAAA,MAAAS,MAAAA,KAAAT,EAAA,KAFVS;AAEU;ACRd,MAAMM,yBAAyBF,OAAOH,gBAAgB,CAAC,CAAA,WAAA;;;;AAGvD,SAAAM,sBAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACE,EAAAC,MAAYL,eAAe,GAACM;CAAA,AAAAH,EAAA,OAAAE,IAI6BC,KAAAH,EAAA,MAAzCG,KAAAD,EAAE,sCAAsC,GAACF,EAAA,KAAAE,GAAAF,EAAA,KAAAG;CAAA,IAAAC;CAGrD,OAHqDJ,EAAA,OAAAG,KAGrDC,KAAAJ,EAAA,MALFI,KAAA,oBAAC,wBAAD;EACc,eAAA;EACA,cAAAD;EACZ,eAAA;EACK,MAAA;CAAc,CAAA,GACnBH,EAAA,KAAAG,IAAAH,EAAA,KAAAI,KALFA;AAKE;AAIN,MAAMC,2BAA2BT,OAAOD,kBAAkB,CAAC,CAAA,WAAA;;;;AAI3D,SAAAW,wBAAA;CAAA,IAAAN,IAAAC,EAAA,CAAA,GACE,EAAAC,MAAYL,eAAe,GAACM;CAAA,AAAAH,EAAA,OAAAE,IAI+BC,KAAAH,EAAA,MAA3CG,KAAAD,EAAE,wCAAwC,GAACF,EAAA,KAAAE,GAAAF,EAAA,KAAAG;CAAA,IAAAC;CAGvD,OAHuDJ,EAAA,OAAAG,KAGvDC,KAAAJ,EAAA,MALFI,KAAA,oBAAC,0BAAD;EACc,eAAA;EACA,cAAAD;EACZ,eAAA;EACK,MAAA;CAAc,CAAA,GACnBH,EAAA,KAAAG,IAAAH,EAAA,KAAAI,KALFA;AAKE;AAIN,MAAMG,wBAAwBX,OAAOF,eAAe,CAAC,CAAA,WAAA;;;;AAGrD,SAAAc,qBAAA;CAAA,IAAAR,IAAAC,EAAA,CAAA,GACE,EAAAC,MAAYL,eAAe,GAACM;CAAA,AAAAH,EAAA,OAAAE,IAI4BC,KAAAH,EAAA,MAAxCG,KAAAD,EAAE,qCAAqC,GAACF,EAAA,KAAAE,GAAAF,EAAA,KAAAG;CAAA,IAAAC;CAGpD,OAHoDJ,EAAA,OAAAG,KAGpDC,KAAAJ,EAAA,MALFI,KAAA,oBAAC,uBAAD;EACc,eAAA;EACA,cAAAD;EACZ,eAAA;EACK,MAAA;CAAc,CAAA,GACnBH,EAAA,KAAAG,IAAAH,EAAA,KAAAI,KALFA;AAKE;AAIN,MAAMK,mBAAmB;CACvBC,OAAOX;CACPY,SAASL;CACTM,MAAMJ;AACR,GAEaK,cAAaV,OAAA;CAAA,IAAAH,IAAAC,EAAA,CAAA,GAAC,EAAAa,WAAAX,IACzBY,OAAaN,iBAAiBK;CAC9B,IAAI,CAACC,MAAI,OAAS;CAAI,IAAAX;CAEP,OAFOJ,EAAA,OAAAe,OAEPX,KAAAJ,EAAA,MAARI,KAAA,oBAAC,MAAD,CAAK,CAAA,GAAGJ,EAAA,KAAAe,MAAAf,EAAA,KAAAI,KAARA;AAAQ,GCtDXuB,oBAAoBL,OAAOM,IAAAA,WAAAA;;;AAAG,CAAA,CAAA,0CAwB9BM,gBAAuB,CAAA,GAEvBC,cAAcb,OAAOF,KAAK,CAAC,CAAA,WAAA;;;;;AAKjC,SAAOgB,0BAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACL,EAAAT,YAAAU,IAAAT,wBAAAU,aAAAT,UAAAC,cAA6FI,OAAtFP,aAAAU,OAAAE,KAAAA,IAAAR,gBAAAM,IAEPG,YAAkBb,WAAUc,KAAMC,OAA0B,GAC5DC,cAAoBhB,WAAUc,KAAMG,QAA4B,GAEhEC,SAAeL,YAAA,UAAsBG,cAAA,YAAA,QAAgCG;CAAA,AAAAX,EAAA,OAAAG,eAAAH,EAAA,OAAAR,cAM5DmB,KAAAR,eAAe,oBAAC,4BAAD,EAAwCX,WAAU,CAAA,GAAIQ,EAAA,KAAAG,aAAAH,EAAA,KAAAR,YAAAQ,EAAA,KAAAW,MAAAA,KAAAX,EAAA;CAAA,IAAAY;CAAA,AAAAZ,EAAA,OAAAG,eAAAH,EAAA,OAAAR,cAErEoB,KAAA,CAACT,eAAD,oBAAA,YAAA,EAAA,UAEIX,WAAUqB,IAAKC,QAGf,EAAC,CAAA,GAELd,EAAA,KAAAG,aAAAH,EAAA,KAAAR,YAAAQ,EAAA,KAAAY,MAAAA,KAAAZ,EAAA;CAAA,IAAAe;CAAA,AAAAf,EAAA,OAAAW,MAAAX,EAAA,OAAAY,MAVHG,KAAA,qBAAC,aAAD;EAAkB,KAAA;EAAlB,UAAA,CACGJ,IAEAC,EAHS;KAWEZ,EAAA,KAAAW,IAAAX,EAAA,KAAAY,IAAAZ,EAAA,KAAAe,MAAAA,KAAAf,EAAA;CAAA,IAAAgB;CAAA,AAAAhB,EAAA,OAAAiB,OAAAC,IAAA,2BAAA,KAIIF,KAAA;EAAC;EAAU;EAAS;CAAM,GAAChB,EAAA,KAAAgB,MAAAA,KAAAhB,EAAA;CAAA,IAAAmB;CAAA,AAAAnB,EAAA,QAAAU,SAIbS,KAAAnB,EAAA,OAA9BmB,KAAA,oBAAC,YAAD,EAAoBT,OAAM,CAAA,GAAIV,EAAA,MAAAU,QAAAV,EAAA,MAAAmB;CAAA,IAAAC;CAAA,AAAApB,EAAA,QAAAN,YAAAM,EAAA,QAAAmB,MAFlCC,KAAA,oBAAC,mBAAD,EAAA,UACE,oBAAC,MAAD;EAAY1B,MAAAA;EAAiB,QAAA;EAC3ByB,UAAAA;CADG,CAAA,EADW,CAAA,GAIEnB,EAAA,MAAAN,UAAAM,EAAA,MAAAmB,IAAAnB,EAAA,MAAAoB,MAAAA,KAAApB,EAAA;CAAA,IAAAqB;CACZ,OADYrB,EAAA,QAAAL,aAAAK,EAAA,QAAAe,MAAAf,EAAA,QAAAoB,MAvBtBC,KAAA,oBAAC,SAAD;EAEI,SAAAN;EAaF,QAAA;EACWpB;EACS,oBAAAqB;EAEpBI,UAAAA;CAnBM,CAAA,GAwBEpB,EAAA,MAAAL,WAAAK,EAAA,MAAAe,IAAAf,EAAA,MAAAoB,IAAApB,EAAA,MAAAqB,MAAAA,KAAArB,EAAA,KAxBVqB;AAwBU;AAjCP,SAAAP,SAAAQ,MAAAC,WAAA;CAAA,OAkBS,oBAAC,+BAAD,EAA2DD,YAAAA,KAAI,GAA3BC,SAA2B;AAAI;AAlB5E,SAAAd,SAAAe,KAAA;CAAA,OAIsCC,IAACC,UAAW;AAAS;AAJ3D,SAAAnB,QAAAkB,GAAA;CAAA,OAGoCA,EAACC,UAAW;AAAO;AAkC9D,SAAAC,8BAAA5B,OAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACE,EAAAT,eAAqBO,OAAKG;CAAA,AAAAF,EAAA,OAAAR,WAAAkC,QAQhBxB,KAAAF,EAAA,MAJNE,KAAA,oBAAC,KAAD;EAAkB,aAAA;EAChB,UAAA,oBAAC,MAAD;GAAY,MAAA;GAAU,QAAA;GACpB,UAAA,oBAAC,YAAD,EAAoB,QAAAV,WAAUkC,MAAM,CAAA;EADjC,CAAA;CADH,CAAA,GAIE1B,EAAA,KAAAR,WAAAkC,OAAA1B,EAAA,KAAAE;CAAA,IAAAS;CAAA,AAAAX,EAAA,OAAAR,WAAAoC,UAGAjB,KAAAX,EAAA,MAFNW,KAAA,oBAAC,KAAD;EAAW,MAAA;EACT,UAAA,oBAAC,MAAD;GAAY,MAAA;GAAInB,UAAAA,WAAUoC;EAArB,CAAA;CADH,CAAA,GAEE5B,EAAA,KAAAR,WAAAoC,SAAA5B,EAAA,KAAAW;CAAA,IAAAC;CACD,OADCZ,EAAA,OAAAE,MAAAF,EAAA,OAAAW,MARRC,KAAA,qBAAC,MAAD,EAAA,UAAA,CACEV,IAKAS,EANG,EAAA,CAAA,GASEX,EAAA,KAAAE,IAAAF,EAAA,KAAAW,IAAAX,EAAA,KAAAY,MAAAA,KAAAZ,EAAA,IATPY;AASO;AAIX,SAAAiB,2BAAA3B,IAAA;CAAA,IAAAF,IAAAC,EAAA,CAAA,GAAoC,EAAAT,eAAAU,IAClC,EAAA4B,MAAY3C,eAAe,GAC3B4C,gBAAsB7C,cAAc,GAACyB,IAAAC;CAAA,IAAAZ,EAAA,OAAA+B,iBAAA/B,EAAA,OAAA8B,KAAA9B,EAAA,OAAAR,YAAA;EAe5BoB,KAAAK,OAAIC,IAAJ,6BAAG;EAACc,KAAA;GAbb,IAAAC,aAAmBzC,WAAU0C,OAC3BC,UACA,CACF,GACAC,eAAqB5C,WAAU0C,OAC7BG,QACA,CACF,GAEAhC,YAAkB4B,aAAa,GAC/BzB,cAAoB4B,eAAe;GAEnC,IAAI,CAAC/B,aAAD,CAAeG,aAAW;IACrBI,KAAA;IAAA,MAAAoB;GAAI;GAGb,IAAAM,YAAkBjC,aAAayB,EAAE,wCAAwC,EAAAS,OAAQN,WAAU,CAAC,GAC5FO,cACEhC,eAAesB,EAAE,0CAA0C,EAAAS,OAAQH,aAAY,CAAC;GAE3EzB,KAAA2B,aAAAE,cACL,oBAAC,MAAD;IAAY,MAAA;IAAIT,UAAAA,cAAaU,OAAQ,CAACH,WAAWE,WAAW,CAAC;GAAxD,CAAA,IAEL,oBAAC,MAAD;IAAY,MAAA;IAAIF,UAAAA,aAAAE;GAAX,CAAA;EACN;EAAAxC,AAAAA,EAAA,KAAA+B,eAAA/B,EAAA,KAAA8B,GAAA9B,EAAA,KAAAR,YAAAQ,EAAA,KAAAW,IAAAX,EAAA,KAAAY;CAAA,OAAAA,AAAAD,KAAAX,EAAA,IAAAY,KAAAZ,EAAA;CAAA,OAAAY,OAAAK,OAAAC,IAAA,6BAAA,IAJMP,KAINC;AAAA;AA5BH,SAAAyB,OAAAK,SAAAC,QAAA;CAAA,OASsBrB,OAAII,UAAW,YAAYa,UAAQ,IAAnCG;AAA4C;AATlE,SAAAP,SAAAI,OAAAjB,MAAA;CAAA,OAKsBA,KAAII,UAAW,UAAUa,QAAQ,IAAjCA;AAA0C;;;;;;AC5FhE,SAAgBM,oBACdC,IACAC,aACoB;CAChB,OAACA,eAAe,CAACD,KACrB,OAAO,QAAQA;AACjB;ACCA,MAAaQ,0BAA0B;CAAC;CAAG;CAAM;CAAM;AAAC,GCT3CU,cAAcF,OAAOD,IAAI,CAAC,CAAA,WAAA;;;8CAO1BI,WAAWH,OAAOD,IAAI,CAAC,CAAA,WAAA;;;AACb,CAAA,CAAA,UAAA,GAAA;ACAvB,SAAAgB,yBAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACE,EAAAC,aAAmBH,OACnB,EAAAI,OAAAC,aAA0BZ,gBAAmC,GAACa;CAAA,AAAAL,EAAA,OAAAE,YAAAF,EAAA,OAAAI,YAI1DC,KAAA,oBAAA,kCAAA,UAAA;EAAmDD,OAAAA;EAChDF;CACH,CAAA,GAA6CF,EAAA,KAAAE,UAAAF,EAAA,KAAAI,UAAAJ,EAAA,KAAAK,MAAAA,KAAAL,EAAA;CAAA,IAAAM;CACR,OADQN,EAAA,OAAAG,SAAAH,EAAA,OAAAK,MAH/CC,KAAA,oBAAA,4BAAA,UAAA;EAA6CH,OAAAA;EAC3CE,UAAAA;CAGF,CAAA,GAAuCL,EAAA,KAAAG,OAAAH,EAAA,KAAAK,IAAAL,EAAA,KAAAM,MAAAA,KAAAN,EAAA,IAJvCM;AAIuC;;;;AAO3C,MAAaC,kBAAkBpB,KAAKW,wBAAwB,GAEtDU,gBAA6C,CAAA;;;;AAKnD,SAAOC,4BAAA;CACL,IAAAL,WAAiBhB,WAAWC,iCAAiC;CAS5D,OAPGe,aAAa,QACfM,QAAOC,KACL,gBAAIC,MACF,uJACF,CACF,GACOJ,iBAGFJ;AAAQ;;;;AAMjB,MAAaS,uBAAuDC,IAAAC,OAAAC,YAAA;CAClE,IAAAb,QAAcf,WAAWE,2BAA2B;CAUpDG,AARIU,UAAU,QACZO,QAAOC,KACL,gBAAIC,MACF,iJACF,CACF,GAGFnB,wBAA2CU,OAAOW,IAAIC,OAAOC,OAAO;AAAC;;;;;;AC/CvE,SAAOc,gBAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACL,EAAAR,UAAAI,UAA0BE,OAAKG;CAAA,AAAAF,EAAA,OAAAH,QAavBK,KAAAF,EAAA,MARDE,KAAAL,MAAKM,IAAKC,OAQV,GAACJ,EAAA,KAAAH,OAAAG,EAAA,KAAAE;CAAA,IAAAG;CAAA,AAAAL,EAAA,OAAAE,KACIG,KAAAL,EAAA,MAVRK,KAAA,oBAAC,OAAD;EAAc,QAAA;EACXH,UAAAA;CADG,CAAA,GAUEF,EAAA,KAAAE,IAAAF,EAAA,KAAAK;CAZZ,IAAAC,UAEID,IAaHE;CAKW,OALXP,EAAA,OAAAP,YAAAO,EAAA,OAAAM,WAGCC,KAAA,oBAAC,SAAD;EAAkBD;EAAmB,WAAA;EAAa,QAAA;EAC/Cb;CADK,CAAA,GAEEO,EAAA,KAAAP,UAAAO,EAAA,KAAAM,SAAAN,EAAA,KAAAO,MAAAA,KAAAP,EAAA,IAFVO;AAEU;AAvBP,SAAAH,QAAAI,MAAA;CAAA,OAOG,qBAAC,MAAD;EAA+B,OAAA;EAAc,KAAA;EAA7C,UAAA,CACE,oBAAA,OAAA,EAAA,UACE,oBAAC,YAAD;GAAkB,MAAAA,KAAIC;GAAc,QAAA;EAAQ,CAAA,EACxC,CAAA,GAEN,oBAAC,MAAD;GAAY,MAAA;GAAID,UAAAA,KAAIC,KAAKE;EAApB,CAAA,CALF;CAAMH,GAAAA,KAAIC,KAAKC,EAAf;AAME;AC7BjB,MAAaI,cAAiBC,OAAYE,QAA4B;CACpE,IAAMC,eAAeH,MAAMI,SAASF,MAAMA,MAAM,IAAIA,KAC9CG,MAAMC,KAAKJ,IAAI,GAAGF,MAAMI,SAASD,YAAY;CACnD,OAAO,CAACH,MAAMO,MAAM,GAAGF,GAAG,GAAGL,MAAMO,MAAMF,GAAG,CAAC;AAC/C;;AAGA,SAAgBG,qBAAqBC,KAAqB;CACxD,OAAO,IAAA,KAAqDA;AAC9D;;ACaA,MAAa4B,qBAAqBvB,KAAK,SAAAuB,mBAAAC,IAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAA4B,EAAAP,UAAAE,UAAAM,IAAAL,kBAAAM,IAAAV,YAAAW,IAAAT,OAAAU,OAAAN,IAEjEH,WAAAM,OAAAI,KAAAA,IAAA,WAAAJ,IACAL,mBAAAM,OAAAG,KAAAA,IAAA,WAAAH,IACAV,aAAAW,OAAAE,KAAAA,IAAAA,IAAAF,IACAT,QAAAU,OAAAC,KAAAA,KAAAD,IAAYE;CAAA,IAAAP,EAAA,OAAAH,oBAAAG,EAAA,OAAAP,cAAAO,EAAA,OAAAJ,YAAAI,EAAA,OAAAN,YAAAM,EAAA,OAAAL,OAAA;EAEZ,IAAAa,iBAAuBlC,OAAOoB,YAAA,CAAA,GAAgBe,OAAsB,GACpEC,SAAerC,OAAOmC,gBAAgBG,QAAqC,GAC3E,CAAAC,QAAAC,WAA0BlB,QAAQJ,WAAWmB,QAAQjB,UAAyB,IAApD,CAA0C,CAAA,GAAIiB,MAAM,GAACI;EAoB9Dd,AApB8DA,EAAA,OAAAH,oBAAAG,EAAA,OAAAJ,YAGpDkB,MAAAC,cAAe;GAAAC,KACjCD,SAAQE,KAAKC;GAAGC,SAEnB,oBAAC,YAAD;IACoBtB;IACRD;IACH,QAAA;IACD,MAAAmB,SAAQE;GAAK,CAAA;EAGzB,IAAEjB,EAAA,KAAAH,kBAAAG,EAAA,KAAAJ,UAAAI,EAAA,KAAAc,MAAAA,KAAAd,EAAA,IAXYO,KAAA,CAAA,GACXM,QAAOO,QAAS,CAAC,CAAAC,IAAKP,EAUvB,GACFF,OAAMU,UAAW,IAAjB;GAAAN,KAEW;GAASG,SACL,oBAAC,eAAD,EAAsB,OAAAP,OAAMU,OAAO,CAAA;EAE3C,IALP,IAKQ,CACT,CAAAC,OAAQC,OAAO,GAACxB,EAAA,KAAAH,kBAAAG,EAAA,KAAAP,YAAAO,EAAA,KAAAJ,UAAAI,EAAA,KAAAN,UAAAM,EAAA,KAAAL,OAAAK,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAlBjB,IAAAyB,UAAgBlB,IAkBCO;CAAA,AAAAd,EAAA,OAAA0B,OAAAC,IAAA,2BAAA,KAIbb,KAAA,oBAAA,OAAA,CAAO,CAAA,GAAAd,EAAA,KAAAc,MAAAA,KAAAd,EAAA;CAAA,IAAA4B;CAsBK,OAtBL5B,EAAA,QAAAyB,UAsBKG,KAAA5B,EAAA,OAvBd4B,KAAA,qBAAC,aAAD,EAAA,UAAA,CACEd,IAEA,oBAAC,UAAD;EAAoB,WAAA;EACjBW,UAAAA,QAAOJ,IACNQ,MAgBF;CAlBO,CAAA,CAHC,EAAA,CAAA,GAuBE7B,EAAA,MAAAyB,SAAAzB,EAAA,MAAA4B,KAvBdA;AAuBc,CAEjB;;AASD,SAAOG,cAAAC,OAAA;CAAA,IAAAhC,IAAAC,EAAA,EAAA,GACLgC,kBAAwBxD,WAAWI,wBAAwB,GAC3D,EAAAa,UAAAK,IAAAN,YAAAS,OAA8E8B,OAAvEtC,WAAAK,OAAAO,KAAAA,IAAA2B,kBAAAlC,IAA4BN,aAAAS,OAAAI,KAAAA,IAAAA,IAAAJ,IACnC,CAAAiB,SAAAe,cAA8BtD,SAAgC,IAAI,GAElEuD,aAAmBzD,MAAM,GAACyB;CAK1Bf,AAL0BY,EAAA,OAAAmB,WAAAnB,EAAA,OAAAP,cAAAO,EAAA,OAAAN,YAExBS,YAAO;EAAAT;EAAAyB;EAAA1B;CAA8B,IAAEO,EAAA,KAAAmB,SAAAnB,EAAA,KAAAP,YAAAO,EAAA,KAAAN,UAAAM,EAAA,KAAAG,MAAAA,KAAAH,EAAA,IAGzCZ,oBAAoB+B,UAAAgB,aAAA,MAA6BC,EAAmB;CAAC,IAAAhC;CAAA,AAAAJ,EAAA,OAAAN,WAEXU,KAAAJ,EAAA,MAAdI,KAAAV,YAAA,CAAA,GAAcM,EAAA,KAAAN,UAAAM,EAAA,KAAAI;CAAA,IAAAC;CAAA,AAAAL,EAAA,OAAAI,KAAyBC,KAAAL,EAAA,MAA9CK,KAAA/B,OAAO8B,IAAgBiC,MAAsB,GAACrC,EAAA,KAAAI,IAAAJ,EAAA,KAAAK;CAAnF,IAAAG,iBAAqCH,IAA2DE;CAAA,AAAAP,EAAA,OAAA0B,OAAAC,IAAA,2BAAA,KAI5FpB,KAAA,oBAAC,aAAD;EAAkB2B,KAAAA;EAAmB,OAAA;GAAAI,WAAAA;GAAuBC,UAAAA;EAAuB;CAAC,CAAA,GAAIvC,EAAA,KAAAO,MAAAA,KAAAP,EAAA;CAAA,IAAAc;CACxE,OADwEd,EAAA,OAAAQ,iBACxEM,KAAAd,EAAA,OAFlBc,KAAA,oBAAC,iBAAD;EAAwBN,OAAAA;EACtBD,UAAAA;CADc,CAAA,GAEEP,EAAA,KAAAQ,gBAAAR,EAAA,MAAAc,KAFlBA;AAEkB;;;;;;;AAjBf,SAAAuB,OAAAG,MAAA;CAAA,OAYiEA,KAAIvB,KAAKC;AAAG;AAepF,MAAauB,2BAA2BV;AA7FD,SAAAtB,QAAA+B,MAAA;CAAA,OAOmBA,KAAIvB,KAAKC;AAAG;AAP/B,SAAAP,SAAA+B,WAAA;CAAA,OAQgBA,UAASC;AAAa;AARtC,SAAAd,OAAAe,IAAAC,GAAA;CAAA,OAsC3BD,MACE,oBAAA,OAAA;EAES,OAAA;GAAAhD,UACK;GAAUkD,WACT,eAAe,CAACD,IAAAA,GAAmC;GAAeE,oBACzD;GAAWC,oBACX;GAAOC,0BACD;GAAgCC,QAClD,MAAML;EAChB;EAECD,UAAAA,GAAEzB;CACC,GAXCyB,GAAE5B,GAWH;AACP;;;;;;;;;;;;;;;;;;;;;;;ACxCb,SAAO0C,YAAAC,MAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAAAC;CAAAC,KAAA;EAEH,IAAI,CAACJ,KAAIL,MAAK;GAAA,IAAAU;GAAEF,AAAFF,EAAA,OAAAK,OAAAC,IAAA,2BAAA,KAASF,KAAA,CAAA,GAAEJ,EAAA,KAAAI,MAAAA,KAAAJ,EAAA,IAATE,KAAOE;GAAP,MAAAD;EAAS;EAAA,IAAAC;EACzBF,AADyBF,EAAA,OAAAD,KAAAL,OACoDU,KAAAJ,EAAA,MAAtEI,KAAAG,MAAKC,KAAM,IAAIC,IAAIC,OAAMC,OAAQZ,KAAIL,IAAK,CAAC,CAAAkB,IAAKC,OAAY,CAAC,CAAC,CAAC,CAAAC,KAAM,GAACd,EAAA,KAAAD,KAAAL,MAAAM,EAAA,KAAAI,KAA7EF,KAAOE;CAAsE;CAG/E,IAAA,EAAAY,MAAYxB,eAAeuB,EAAU,GAACX;CAAAa,KAAA;EAGpC,IAAA,EAAAvB,SAAeK;EACf,IAAI,CAACL,MAAI;GAAEU,KAAOL;GAAP,MAAAkB;EAAW;EAAA,IAAAC;EAAA,AAAAlB,EAAA,OAAAN,QAAAM,EAAA,OAAAgB,KAGfE,MAAAC,QAAAC,aAAA;GACH,IAAAC,eAAqBF,OAAOC;GAE5B,IAAI,OAAOA,YAAa,YAAYA,YAAY1B,MAAI;IAClD,IAAA,EAAAC,KAAAC,IAAA0B,SAAkB5B,KAAK0B;IAAgC,OAChDJ,EAAErB,KAAK;KAAAC,IACZA;KAAE,GAKE,OAAOyB,gBAAiB,YAAxB,EAAAA,aAAiD;IACvD,CAAC;GAAC;GACH,OAEMA;EAAY,GACpBrB,EAAA,KAAAN,MAAAM,EAAA,KAAAgB,GAAAhB,EAAA,KAAAkB,MAAAA,KAAAlB,EAAA;EAAA,IAAAuB;EAjBHnB,AAiBGJ,EAAA,OAAAD,QAAAC,EAAA,OAAAkB,MAjBIK,KAAA,IAAIC,MAAMzB,MAAM,EAAA0B,KAChBP,GAiBP,CAAC,GAAClB,EAAA,KAAAD,MAAAC,EAAA,KAAAkB,IAAAlB,EAAA,KAAAuB,MAAAA,KAAAvB,EAAA,IAlBFI,KAAOmB;CAkBL;CAAA,OAtBGnB;AAuBM;AA/BR,SAAAS,QAAAX,IAAA;CAGqD,IAAA,EAAAN,OAAAM;CAAI,OAAKN;AAAE;AC9BvE,SAAOqC,oBAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACL,EAAAC,WAAiBH,OAEjB,EAAAI,UAAgBN,YAAYK,MAAM,GAACE;CAAA,AAAAJ,EAAA,OAAAE,SAIlCE,KAAAJ,EAAA,MAF+BI,WAAA;EAC9BF,OAAMG,SAAU;CAAC,GAClBL,EAAA,KAAAE,QAAAF,EAAA,KAAAI;CAFD,IAAAE,cAAoBF,IAERG;CAAA,AAAAP,EAAA,OAAAE,OAAAM,WAIXD,KAAAP,EAAA,MAF8BO,KAAA,OAAOL,OAAMM,YAAc,YACxD,oBAAC,MAAD;EAAY,MAAA;EAAIN,UAAAA,OAAMM,SAASC;CAA1B,CAAA,GACNT,EAAA,KAAAE,OAAAM,UAAAR,EAAA,KAAAO;CAFD,IAAAG,yBAA+BH,IAOfI,KAAAC,EAAQV,OAAMM,UAEbK,KAAAX,OAAMY,cAAeZ,OAAMa,WAANxB,gBAAAyB,KAAAA,IAA4CC;CAAA,AAAAjB,EAAA,OAAAE,OAAAgB,QAAAlB,EAAA,OAAAE,OAAAa,YAAAf,EAAA,OAAAE,OAAAiB,QAAAnB,EAAA,OAAAM,eAAAN,EAAA,OAAAW,MAAAX,EAAA,OAAAa,MAAAb,EAAA,QAAAG,SAH9Ec,KAAA,oBAAC,YAAD;EACY,UAAAN;EACJ,MAAAT,OAAMgB;EACD,WAAAL;EACFP,SAAAA;EACA,SAAAJ,OAAMa;EACTZ,MAAAA;EACA,MAAAD,OAAMiB;CAAK,CAAA,GACjBnB,EAAA,KAAAE,OAAAgB,MAAAlB,EAAA,KAAAE,OAAAa,UAAAf,EAAA,KAAAE,OAAAiB,MAAAnB,EAAA,KAAAM,aAAAN,EAAA,KAAAW,IAAAX,EAAA,KAAAa,IAAAb,EAAA,MAAAG,OAAAH,EAAA,MAAAiB,MAAAA,KAAAjB,EAAA;CAAA,IAAAoB;CACgB,OADhBpB,EAAA,QAAAU,0BAAAV,EAAA,QAAAiB,MATJG,KAAA,oBAAC,mBAAD;EAA4BV,SAAAA;EAAkC,WAAA;EAC5DO,UAAAA;CADgB,CAAA,GAUEjB,EAAA,MAAAU,wBAAAV,EAAA,MAAAiB,IAAAjB,EAAA,MAAAoB,MAAAA,KAAApB,EAAA,KAVpBoB;AAUoB;ACbxB,SAAOc,oBAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACL,EAAAN,QAAAC,SAAAC,gBAAuCE;CAEvC,IAAIJ,OAAMO,SAAU,WAAS;EAAA,IAAAC;EACL,OADKH,EAAA,OAAAI,OAAAC,IAAA,2BAAA,KACpBF,KAAA,oBAAC,aAAD,CAAY,CAAA,GAAGH,EAAA,KAAAG,MAAAA,KAAAH,EAAA,IAAfG;CAAe;CAGxB,IAAIR,OAAMO,SAAU,SAAO;EAAA,IAAAC;EAAA,AAAAH,EAAA,OAAAJ,UAGOO,KAAAH,EAAA,MAA3BG,KAAA,CAACP,WAAW,oBAAC,aAAD,CAAY,CAAA,GAAGI,EAAA,KAAAJ,SAAAI,EAAA,KAAAG;EAAA,IAAAG;EAAA,AAAAN,EAAA,OAAAL,SACWW,KAAAN,EAAA,MAAvCM,KAAA,oBAAC,sBAAD,EAA6BX,OAAAA,OAAM,CAAA,GAAIK,EAAA,KAAAL,QAAAK,EAAA,KAAAM;EAAA,IAAAC;EACtC,OADsCP,EAAA,OAAAG,MAAAH,EAAA,OAAAM,MAFzCC,KAAA,qBAAA,YAAA,EAAA,UAAA,CACGJ,IACDG,EAAuC,EAAA,CAAA,GACtCN,EAAA,KAAAG,IAAAH,EAAA,KAAAM,IAAAN,EAAA,KAAAO,MAAAA,KAAAP,EAAA,IAHHO;CAGG;CAEN,IAAAJ;CAAA,AAAAH,EAAA,OAAAH,cAIkCM,KAAAH,EAAA,MAA9BG,KAAAN,eAAe,oBAAC,aAAD,CAAY,CAAA,GAAGG,EAAA,KAAAH,aAAAG,EAAA,KAAAG;CAAA,IAAAG;CAAA,AAAAN,EAAA,QAAAL,SACQW,KAAAN,EAAA,OAAvCM,KAAA,oBAAC,qBAAD,EAA6BX,OAAM,CAAA,GAAIK,EAAA,MAAAL,QAAAK,EAAA,MAAAM;CAAA,IAAAC;CACtC,OADsCP,EAAA,QAAAG,MAAAH,EAAA,QAAAM,MAFzCC,KAAA,qBAAA,YAAA,EAAA,UAAA,CACGJ,IACDG,EAAuC,EAAA,CAAA,GACtCN,EAAA,MAAAG,IAAAH,EAAA,MAAAM,IAAAN,EAAA,MAAAO,MAAAA,KAAAP,EAAA,KAHHO;AAGG;AAIP,MAAMC,gBAA2C;CAC/CC,WAAW;CACXC,oBAAoB,CAAC,OAAO,QAAQ;AACtC;AAEA,SAAAC,qBAAAZ,OAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACE,EAAAW,UAAgBb,OAChB,EAAAc,UAAgBrB,YAAYoB,KAAK;CAEjC,IAAIA,MAAKE,UAAS;EAAA,IAAAX;EAAA,AAAAH,EAAA,OAAAa,QAONV,KAAAH,EAAA,MAJNG,KAAA,oBAAC,KAAD;GAAc,SAAA;GAAe,YAAA;GAC3B,UAAA,oBAAC,MAAD;IAAM,OAAA;IAAY,MAAA;IAAU,QAAA;IACzBU,UAAAA;GADE,CAAA;EADH,CAAA,GAIEb,EAAA,KAAAa,OAAAb,EAAA,KAAAG;EAAA,IAAAG;EAAA,AAAAN,EAAA,OAAAY,MAAAG,WAUJT,KAAAN,EAAA,MARDM,KAAAM,MAAKG,SAASC,KAAKC,MAAAC,QAClB,oBAAC,qBAAD;GAGUD,QAAAA;GACC,SAAAC,QAAQ;GACJ,aAAAN,MAAKG,SAAUG,MAAM,EAAQ,EAAAhB,SAAK;EAAO,GAHjDgB,GAGiD,CAEzD,GAAClB,EAAA,KAAAY,MAAAG,UAAAf,EAAA,KAAAM;EAAA,IAAAC;EACD,OADCP,EAAA,OAAAG,MAAAH,EAAA,OAAAM,MAfJC,KAAA,qBAAA,YAAA,EAAA,UAAA,CACEJ,IAMCG,EAQC,EAAA,CAAA,GACDN,EAAA,KAAAG,IAAAH,EAAA,KAAAM,IAAAN,EAAA,KAAAO,MAAAA,KAAAP,EAAA,IAhBHO;CAgBG;CAKY,IAAAJ,KAAAS,MAAKO,MAAkDb,KAAAM,MAAKQ,MAAKb;CAAA,AAAAP,EAAA,OAAAY,MAAAG,WAS9ER,KAAAP,EAAA,MARDO,KAAAK,MAAKG,SAASC,KAAKK,QAAAC,UAClB,oBAAC,qBAAD;EAGUL,QAAAA;EACC,SAAAC,UAAQ;EACJ,aAAAN,MAAKG,SAAUG,QAAM,EAAQ,EAAAhB,SAAK;CAAO,GAHjDgB,KAGiD,CAEzD,GAAClB,EAAA,KAAAY,MAAAG,UAAAf,EAAA,KAAAO;CAAA,IAAAgB;CACQ,OADRvB,EAAA,OAAAY,MAAAO,QAAAnB,EAAA,QAAAY,MAAAQ,QAAApB,EAAA,QAAAO,MAAAP,EAAA,QAAAa,SATJU,KAAA,oBAAC,aAAD;EAAiB,MAAApB;EAAqBK,SAAAA;EAAqBK,MAAAA;EAAa,MAAAP;EACrEC,UAAAA;CADO,CAAA,GAUEP,EAAA,KAAAY,MAAAO,MAAAnB,EAAA,MAAAY,MAAAQ,MAAApB,EAAA,MAAAO,IAAAP,EAAA,MAAAa,OAAAb,EAAA,MAAAuB,MAAAA,KAAAvB,EAAA,KAVZuB;AAUY;AClEhB,MAAMsB,8BAA2D,EAC/DC,WAAW,MACb;AAEA,SAASC,eAAeC,MAA+B;CACrD,OAAO,oBAAoBA,QAAQA,KAAKD;AAC1C;;AAGA,MAAaE,kBAAkBtB,KAAK,SAAAsB,gBAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAClC,EAAAV,OAAAC,qBAAkCO,OAClC,CAAAN,MAAAS,WAAwBrB,SAAS,EAAK,GAACsB;CAAA,AAAAH,EAAA,OAAAR,mBAKtCW,KAAAH,EAAA,MAH8BG,WAAA;EAE7BD,AADAV,iBAAiB,EAAI,GACrBU,QAAQ,EAAI;CAAC,GACdF,EAAA,KAAAR,kBAAAQ,EAAA,KAAAG;CAHD,IAAAC,aAAmBD,IAGGE;CAAA,AAAAL,EAAA,OAAAR,mBAIrBa,KAAAL,EAAA,MAH+BK,WAAA;EAE9BH,AADAV,iBAAiB,EAAK,GACtBU,QAAQ,EAAK;CAAC,GACfF,EAAA,KAAAR,kBAAAQ,EAAA,KAAAK;CAHD,IAAAC,cAAoBD,IAGEE;CAAA,AAAAP,EAAA,OAAAT,QAEwCgB,KAAAP,EAAA,MAA5BO,KAAAhB,MAAKiB,OAAQZ,cAAc,GAACI,EAAA,KAAAT,OAAAS,EAAA,KAAAO;CAA9D,IAAAE,cAAkCF,IAAsCG;CAAA,AAAAV,EAAA,OAAAT,QACSmB,KAAAV,EAAA,MAA7CU,KAAAnB,MAAKiB,OAAQG,KAA+B,GAACX,EAAA,KAAAT,OAAAS,EAAA,KAAAU;CAAjF,IAAAE,gBAAoCF,IAAuDG;CAAAC,KAAA;EAIzF,IAAAC,MAAYH,cAAaI;EAEzB,IAAID,QAAQ,KAAKA,MAAM,GAAC;GAAEF,KAAOD;GAAP,MAAAE;EAAoB;EAE9C,IAAAG,SAAaL,cAAa;EAE1B,IAAIf,OAAIqB,SAAU,SAAO;GAAA,IAAAC;GACvBN,AADuBb,EAAA,OAAAiB,SACWE,KAAAnB,EAAA,MAA3BmB,KAAA,CAAC;IAAA,GAAItB;IAAIuB,UAAY;GAAI,CAAC,GAACpB,EAAA,KAAAiB,QAAAjB,EAAA,KAAAmB,KAAlCN,KAAOM;GAAP,MAAAL;EAAkC;EAGpCD,KAAOD;CAAa;CAXtB,IAAAS,YAAkBR,IAYCM;CAAA,AAAAnB,EAAA,QAAAqB,YAaTF,KAAAnB,EAAA,OATFmB,KAAAE,UAASL,SACR,CACC;EAAAE,MACQ;EAAOI,UACHD;EAASE,MACblD;EAAsBmD,OACrB;CACT,CAAC,IAPH,CAAA,GASExB,EAAA,MAAAqB,WAAArB,EAAA,MAAAmB;CAAA,IAAAM;CAAA,AAAAzB,EAAA,QAAAS,eAAAT,EAAA,QAAAmB,MAVFM,KAAA,CAAA,GACAN,IASE,GACHV,WAAW,GACfT,EAAA,MAAAS,aAAAT,EAAA,MAAAmB,IAAAnB,EAAA,MAAAyB,MAAAA,KAAAzB,EAAA;CAbH,IAAA0B,YACQD,IAcPE;CAcI,OAdJ3B,EAAA,QAAAM,eAAAN,EAAA,QAAAI,cAAAJ,EAAA,QAAAP,QAAAO,EAAA,QAAA0B,aAGCC,KAAA,oBAAA,YAAA,EAAA,UACGD,UAASE,KAAKC,QAAAC,QACb,oBAAC,yBAAD;EAGQjC,MAAAA;EACEO,QAAAA;EACCE,SAAAA;EACHb;CAAI,GAJLqC,GAIK,CAEb,EAAC,CAAA,GACD9B,EAAA,MAAAM,aAAAN,EAAA,MAAAI,YAAAJ,EAAA,MAAAP,MAAAO,EAAA,MAAA0B,WAAA1B,EAAA,MAAA2B,MAAAA,KAAA3B,EAAA,KAXH2B;AAWG,CAEN,GAEKI,0BAA0BvD,KAAK,SAAAuD,wBAAAhC,OAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAMnC,EAAAJ,MAAAmC,QAAAC,SAAAxC,SAAsCM;CAEtC,IAAIF,KAAIqB,SAAU,WAAS;EAAA,IAAAf;EACa,OADbH,EAAA,OAAAkC,OAAAC,IAAA,2BAAA,KAClBhC,KAAA,oBAAC,MAAD;GAAM,YAAA;GAAgB,MAAA;EAAM,CAAA,GAAGH,EAAA,KAAAG,MAAAA,KAAAH,EAAA,IAA/BG;CAA+B;CAGxC,IAAIN,KAAIqB,SAAU,UAAQ;EAAA,IAAAf;EAAA,AAAAH,EAAA,OAAAH,KAAA2B,QASnBrB,KAAAH,EAAA,MAHaG,KAAA;GAAA,GACTT;GAA2B0C,SACrBvC,KAAI2B;EACf,GAACxB,EAAA,KAAAH,KAAA2B,OAAAxB,EAAA,KAAAG;EAAA,IAAAE;EACD,OADCL,EAAA,OAAAH,KAAA0B,QAAAvB,EAAA,OAAAH,KAAAwC,YAAArC,EAAA,OAAAG,MAPHE,KAAA,oBAAC,UAAD;GACQ,MAAAR,KAAI0B;GACL,MAAA;GACI,SAAA1B,KAAIwC;GACC,cAAAlC;EAGb,CAAA,GACDH,EAAA,KAAAH,KAAA0B,MAAAvB,EAAA,KAAAH,KAAAwC,UAAArC,EAAA,KAAAG,IAAAH,EAAA,KAAAK,MAAAA,KAAAL,EAAA,IARFK;CAQE;CAEL,IAAAF;CAE4F,OAF5FH,EAAA,OAAAH,QAAAG,EAAA,OAAAiC,WAAAjC,EAAA,OAAAgC,UAAAhC,EAAA,QAAAP,QAEMU,KAAA,oBAAC,0BAAD;EAAgCN;EAAcmC;EAAiBC;EAAexC;CAAI,CAAA,GAAIO,EAAA,KAAAH,MAAAG,EAAA,KAAAiC,SAAAjC,EAAA,KAAAgC,QAAAhC,EAAA,MAAAP,MAAAO,EAAA,MAAAG,MAAAA,KAAAH,EAAA,KAAtFG;AAAsF,CAC9F,GAEKmC,iCAA6D;CACjEC,eAAe;CACf5C,WAAW;CACX6C,QAAQ;CACRC,oBAAoB,CAAC,OAAO,QAAQ;AACtC;AAEA,SAAAC,yBAAA3C,OAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAME,EAAAJ,MAAAmC,QAAAC,SAAAxC,SAAsCM,OACtC,EAAAyB,UAAgBpC,YAAYS,IAAI,GAMhC8C,oBAA0BC,QAQNzC,KAAAV,OAAAoD,KAAAA,IAAArB,OAAwBnB;CAAA,AAAAL,EAAA,OAAAH,KAAA2B,QASnCnB,KAAAL,EAAA,MAHaK,KAAA;EAAA,GACTX;EAA2B0C,SACrBvC,KAAI2B;CACf,GAACxB,EAAA,KAAAH,KAAA2B,OAAAxB,EAAA,KAAAK;CAAA,IAAAE;CAAA,AAAAP,EAAA,OAAAH,KAAA0B,QAAAvB,EAAA,OAAAG,MAAAH,EAAA,OAAAK,MAVHE,KAAA,oBAAC,UAAD;EACc,cAAAJ;EACA,eAAA;EACN,MAAAN,KAAI0B;EACL,MAAA;EACUoB,eAAAA;EACL,UAAA;EACI,cAAAtC;CAGb,CAAA,GACDL,EAAA,KAAAH,KAAA0B,MAAAvB,EAAA,KAAAG,IAAAH,EAAA,KAAAK,IAAAL,EAAA,KAAAO,MAAAA,KAAAP,EAAA;CAEA,IAAAU,KAAA/B,MAAM,GAACkC;CAAA,AAAAb,EAAA,OAAAH,KAAAyB,WAaLT,KAAAb,EAAA,MAVDa,KAAAhB,KAAIyB,SAASM,KAAKkB,QAAAhB,QAEf,oBAAC,qBAAD;EAGUgB;EACC,SAAAhB,QAAQ;EACJ,aAAAjC,KAAIyB,SAAUQ,MAAM,EAAQ,EAAAZ,SAAK;CAAO,GAHhDY,GAGgD,CAG1D,GAAC9B,EAAA,KAAAH,KAAAyB,UAAAtB,EAAA,KAAAa;CAAA,IAAAM;CAAA,AAAAnB,EAAA,OAAAa,KACGM,KAAAnB,EAAA,MAZPmB,KAAA,oBAAC,MAAD,EAAA,UACGN,GADE,CAAA,GAYEb,EAAA,KAAAa,IAAAb,EAAA,KAAAmB;CAAA,IAAAM;CAKT,OALSzB,EAAA,QAAAiC,WAAAjC,EAAA,QAAAgC,UAAAhC,EAAA,QAAAO,MAAAP,EAAA,QAAAU,MAAAV,EAAA,QAAAmB,MA7BXM,KAAA,oBAAC,cAAD;EAEI,QAAAlB;EAaE,IAAAG;EAEF,MAAAS;EAcMa;EACCC;EACAK,SAAAA;CAA8B,CAAA,GACvCtC,EAAA,MAAAiC,SAAAjC,EAAA,MAAAgC,QAAAhC,EAAA,MAAAO,IAAAP,EAAA,MAAAU,IAAAV,EAAA,MAAAmB,IAAAnB,EAAA,MAAAyB,MAAAA,KAAAzB,EAAA,KAlCFyB;AAkCE;AApDN,SAAAmB,OAAAG,OAAA;CAcIA,MAAKC,eAAgB;AAAC;AAlHU,SAAArC,MAAAd,MAAA;CAAA,OAcyB,CAACD,eAAeC,IAAI;AAAC;AC/BlF,MAAMqE,OAAOR,uBAAOP,IAAI,CAAC,CAAA,WAAA;;;AAIrB,CAAA,CAAA,EAAA,EAACmB,OAAOH,oBAAoBC,YAAYC,2BAA0B;CAEpE,IAAM,EAACE,UAASD,MAAME;CACtB,OAAOf,GAAG,uGAUGW,aAAaD,qBAAqBI,MAAM,GAAE,oFAOxCH,cAAcC,uBAAuBF,qBAAqB,KAAKI,MAAM,GAAE;AAIxF,CAAC,GAEKE,aAAaf,uBAAOT,GAAG,CAAC,CAAA,WAAA;;;AAE1B,CAAA,CAAA,EAAA,EAACqB,OAAOI,wBAAuB;CAEjC,IAAM,EAACH,UAASD,MAAME;CACtB,OAAOf,GAAG,yBACiBiB,oBAAoBH,MAAM,GAAE;AAGzD,CAAC,GAEKI,UAAUjB,uBAAOT,GAAG,CAAC,CAAA,WAAA;;;AAGvB,CAAA,CAAA,EAAA,EAACqB,OAAOM,QAAQC,2BAA0B;CAE5C,IAAM,EAACN,UAASD,MAAME,QAChBM,QAAQD,uBAAuBD,SAASL,MAAM,KAAKK;CACzD,OAAOnB,GAAG,oCAGCqB,MAAK;AAElB,CAAC,GAEKC,2BAA2BrB,OAAOR,IAAI,CAAC,CAAA,WAAA;;;+qBA8DvC8B,mBAAmBtB,OAAOP,IAAI,CAAC,CAAA,WAAA;;;;AAmBrC,SAAOwC,oBAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACL,EAAAX,qBAAAY,UAAAX,iBAAAY,MAAAX,SAAAC,SAAAC,cAAAE,cAAAC,UAAAF,YASII,OACJ,CAAAK,SAAAC,cAA8B1C,SAAkB,EAAK,GAErD,CAAA2C,UAAAC,eAAgC5C,SAAkB,EAAK,GAGvD,CAAA6C,qBAAAC,0BAAsD9C,SAAgC,IAAI,GAC1F,CAAA+C,mBAAAC,wBAAkDhD,SAAiB,CAAC,GAGpE,CAAAiD,aAAAC,kBAAsClD,SAAgC,IAAI,GAC1E,CAAAmD,WAAAC,gBAAkCpD,SAAiB,CAAC,GAACqD;CAAA,AAAAhB,EAAA,OAAAE,WAOnCc,KAAAhB,EAAA,MAAdgB,KAAAd,YAAA,CAAa,GAACF,EAAA,KAAAE,UAAAF,EAAA,KAAAgB;CAJlB,IAAA,EAAAC,aAAAC,IAAAC,QAAAC,IAAAC,iBAAAC,OAIIN,IAHFC,cAAAC,OAAAK,KAAAA,KAAAL,IACQM,gBAAAJ,OAAAG,KAAAA,IAAA,OAAAH,IACRC,kBAAAC,OAAAC,KAAAA,KAAAD,IAGFG,aAAmBjC,WAAWA,QAAOkC,SAAU,GAC/CC,mBAAyBjC,gBAAAE,gBAAAU,YAAAe,iBAKzBO,6BAAmC1B,UAAQiB,UAARM,YAGnCI,yBAA+BzB,WAAAuB,oBAAAV,aAA0Ca;CAAA,AAAA9B,EAAA,OAAAQ,sBAOxEsB,KAAA9B,EAAA,MALqD8B,WAAA;EACpD,IAAItB,qBAAmB;GACrB,IAAA,EAAAuB,UAAgBvB,oBAAmBwB,sBAAuB;GAC1DrB,qBAAqBoB,SAAA,CAAU;EAAC;CACjC,GACF/B,EAAA,KAAAQ,qBAAAR,EAAA,KAAA8B;CALD,IAAAG,oCAA0CH,IAKjBI;CAAA,AAAAlC,EAAA,OAAAiC,oCASxBC,KAAAlC,EAAA,MAHsCkC,WAAA;EAErC7B,AADA4B,kCAAkC,GAClC5B,WAAW,EAAI;CAAC,GACjBL,EAAA,KAAAiC,mCAAAjC,EAAA,KAAAkC;CAHD,IAAAC,qBAA2BD,IAGYE;CAAA,AAAApC,EAAA,OAAAiC,oCAKtCG,KAAApC,EAAA,MAHqCoC,WAAA;EAEpC/B,AADA4B,kCAAkC,GAClC5B,WAAW,EAAK;CAAC,GAClBL,EAAA,KAAAiC,mCAAAjC,EAAA,KAAAoC;CAHD,IAAAC,oBAA0BD,IAGaE;CAAA,AAAAtC,EAAA,OAAAiC,oCAMtCK,KAAAtC,EAAA,MAHSsC,WAAA;EAERL,kCAAkC;CAAC,GACpCjC,EAAA,KAAAiC,mCAAAjC,EAAA,KAAAsC;CAAA,IAAAC;CAHD9E,AAGCuC,EAAA,QAAAiC,qCAAAjC,EAAA,QAAA2B,oBAAEY,KAAA,CAACN,mCAAmCN,gBAAgB,GAAC3B,EAAA,MAAAiC,mCAAAjC,EAAA,MAAA2B,kBAAA3B,EAAA,MAAAuC,MAAAA,KAAAvC,EAAA,KAHxDvC,UAAU6E,IAGPC,EAAqD;CAAC,IAAAC,KAAAC;CAGzDhF,AAHyDuC,EAAA,QAAAY,eASzC4B,MAAAxC,EAAA,KAAAyC,KAAAzC,EAAA,QANNyC,WAAA;EACR,IAAI7B,aAAW;GACb,IAAA,EAAAmB,OAAAW,YAAgB9B,YAAWoB,sBAAuB;GAElDjB,aAAa2B,WAAA,CAAU;EAAC;CACzB,GACAF,MAAA,CAAC5B,WAAW,GAACZ,EAAA,MAAAY,aAAAZ,EAAA,MAAAwC,KAAAxC,EAAA,MAAAyC,KANhBhF,UAAUgF,IAMPD,GAAa;CAAC,IAAAG;CAAAC,KAAA;EAIf,IAAI,CAACzC,MAAI;GAAEwC,MAAO;GAAP,MAAAC;EAAW;EAII,IAAAC,MAAAC,EAAQnB,kBAAiBoB;EAFnDJ,AAEmD3C,EAAA,QAAAU,qBAAAV,EAAA,QAAAG,QAAAH,EAAA,QAAA6C,OADjDE,MAAA,oBAAC,SAAD;GACwB,sBAAAF;GACdnC,QAAAA;GACHG,KAAAA;GAEJV,UAAAA;EALK,CAAA,GAMEH,EAAA,MAAAU,mBAAAV,EAAA,MAAAG,MAAAH,EAAA,MAAA6C,KAAA7C,EAAA,MAAA+C,OAAAA,MAAA/C,EAAA,KAPZ2C,MACEI;CAOD;CAXH,IAAAC,SAAeL,KAYgCE;CAAA,AAAA7C,EAAA,QAAAiD,OAAAC,IAAA,2BAAA,KActBL,MAAA3E,qBAAqBkB,CAAW,GAACY,EAAA,MAAA6C,OAAAA,MAAA7C,EAAA;CAAA,IAAA+C;CAAA,AAAA/C,EAAA,QAAAP,UAGzCsD,MAAA/C,EAAA,OAPb+C,MAAA,oBAAC,YAAD;EACU,WAAA;EACF,MAAA;EACI,UAAA;EACS,mBAAAF;EAElBpD,UAAAA;CANQ,CAAA,GAOEO,EAAA,MAAAP,SAAAO,EAAA,MAAA+C;CAAA,IAAAI;CAAA,AAAAnD,EAAA,QAAAH,WAMZsD,MAAAnD,EAAA,OAJAmD,MAAAtD,YAAYA,SAAQ6B,SAAU,KAC7B,oBAAC,KAAD;EAAa,WAAA;EAAmB,MAAA;EAC9B,UAAA,oBAAC,eAAD;GAA2BtC,YAAAA;GAAuBS;EAAQ,CAAA;CADxD,CAAA,GAGLG,EAAA,MAAAH,UAAAG,EAAA,MAAAmD;CAAA,IAAAC;CAAA,AAAApD,EAAA,QAAAR,WAAAQ,EAAA,QAAAwB,iBAAAxB,EAAA,QAAAqC,qBAAArC,EAAA,QAAAmC,sBAAAnC,EAAA,QAAAyB,cAAAzB,EAAA,QAAAiB,eAAAjB,EAAA,QAAA4B,8BAAA5B,EAAA,QAAAL,WAAAK,EAAA,QAAA6B,0BAAA7B,EAAA,QAAA2B,oBAIAyB,OAACxB,8BAAAX,gBACA,oBAAC,2BAAD,EAAA,UACE,qBAAC,0BAAD;EACwB,wBAAAU,mBAAA,SAAA;EACJ,oBAAAF,aAAA,SAAA;EACC,qBAAAR,cAAA,SAAA;EACL,gBAAAY,yBAAA,SAAA;EACN,SAAA;EACOQ,eAAAA;EACCF,gBAAAA;EACX1B,KAAAA;EACE,QAAA;EATT,UAAA,CAWGgB,cACC,oBAAC,kBAAD;GACQ,OAAA;GACE,WAAA;GACK,eAAA9B,UAAA,sBAAgCA,YAAhC;GAEb,UAAA,oBAAC,iBAAD;IAAwBH,OAAAA;IAA2Be,kBAAAA;GAAW,CAAA;EAL/C,CAAA,GASlBiB,aArBsB;CADD,CAAA,EAAA,CAAA,GAyB3BxB,EAAA,MAAAR,SAAAQ,EAAA,MAAAwB,eAAAxB,EAAA,MAAAqC,mBAAArC,EAAA,MAAAmC,oBAAAnC,EAAA,MAAAyB,YAAAzB,EAAA,MAAAiB,aAAAjB,EAAA,MAAA4B,4BAAA5B,EAAA,MAAAL,SAAAK,EAAA,MAAA6B,wBAAA7B,EAAA,MAAA2B,kBAAA3B,EAAA,MAAAoD,OAAAA,MAAApD,EAAA;CAAA,IAAAqD;CACI,OADJrD,EAAA,QAAAU,qBAAAV,EAAA,QAAA6B,0BAAA7B,EAAA,QAAAgD,UAAAhD,EAAA,QAAAc,aAAAd,EAAA,QAAA+C,OAAA/C,EAAA,QAAAmD,OAAAnD,EAAA,QAAAoD,OAlDHC,MAAA,qBAAC,MAAD;EACQ,OAAA;EACE,SAAA;EACcxB,sBAAAA;EACFnB,oBAAAA;EACRI,YAAAA;EALd,UAAA;GAOEiC;GASCI;GAMAH;GAEAI;EAxBE;KAmDEpD,EAAA,MAAAU,mBAAAV,EAAA,MAAA6B,wBAAA7B,EAAA,MAAAgD,QAAAhD,EAAA,MAAAc,WAAAd,EAAA,MAAA+C,KAAA/C,EAAA,MAAAmD,KAAAnD,EAAA,MAAAoD,KAAApD,EAAA,MAAAqD,OAAAA,MAAArD,EAAA,KAnDPqD;AAmDO;AC1RX,MAAMe,cAAcL,OAAOL,IAAI,CAAC,CAAA,WAAA;;;gCA+B1BkB,cAAuB,CAAA,GAGhBC,sBAAsBhB,KAAK,SAAAgB,oBAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAGtC,EAAAT,aAAAC,SAAAC,OAAAC,YAAAJ,YAAAW,IAAAN,WAAoFG,OAApCR,aAAAW,OAAAC,KAAAA,IAAAN,cAAAK,IAChD,EAAAE,MAAYlB,eAAe,GAC3BmB,iBAAuBd,WAAUe,SAAU,GAACC;CAAA,AAAAP,EAAA,OAAAI,KAAAJ,EAAA,OAAAN,SAOjCa,KAAAb,SACC,oBAAA,QAAA;EAAa,OAAA,EAAAc,OAAQ,6BAA4B;EAC9CJ,UAAAA,EAAE,iCAAiC;CAC/B,CAAA,GACRJ,EAAA,KAAAI,GAAAJ,EAAA,KAAAN,OAAAM,EAAA,KAAAO,MAAAA,KAAAP,EAAA;CAAA,IAAAS;CAAA,AAAAT,EAAA,OAAAP,WAAAO,EAAA,OAAAO,MANLE,KAAA,oBAAC,MAAD;EAAY,OAAA;EACV,UAAA,oBAAC,MAAD;GAAS,IAAA;GAAiBhB,SAAAA;GAAgB,QAAA;GAAe,MAAA;GACtDc,UAAAA;EADE,CAAA;CADF,CAAA,GAQEP,EAAA,KAAAP,SAAAO,EAAA,KAAAO,IAAAP,EAAA,KAAAS,MAAAA,KAAAT,EAAA;CAAA,IAAAU;CAAA,AAAAV,EAAA,OAAAJ,SAMNc,KAAAV,EAAA,MAJAU,KAAAd,UACC,oBAAC,KAAD;EAAiB,YAAA;EAAe,eAAA;EAC7BA,UAAAA;CADC,CAAA,GAGLI,EAAA,KAAAJ,QAAAI,EAAA,KAAAU;CAAA,IAAAC;CAAA,AAAAX,EAAA,OAAAL,cAAAK,EAAA,OAAAK,kBAAAL,EAAA,QAAAI,KAAAJ,EAAA,QAAAN,SAAAM,EAAA,QAAAT,cAEAoB,MAAChB,cAAAU,mBACA,qBAAC,aAAD;EAAmB,OAAA;EAAnB,UAAA,CACGV,cACC,oBAAC,KAAD;GAAiB,YAAA;GACf,UAAA,oBAAC,OAAD;IAAoB,eAAA,oBAAoBD;IAAc,MAAA;IACnDU,UAAAA,EAAE,6BAA6B;GAD5B,CAAA;EADJ,CAAA,GAOLC,kBACC,oBAAC,KAAD;GAAiB,YAAA;GACf,UAAA,oBAAC,2BAAD;IACe,eAAA;IACH,UAAA;IACA,WAAA;IACEd;GAAU,CAAA;EALtB,CAAA,CAVI;KAoBbS,EAAA,KAAAL,YAAAK,EAAA,KAAAK,gBAAAL,EAAA,MAAAI,GAAAJ,EAAA,MAAAN,OAAAM,EAAA,MAAAT,YAAAS,EAAA,MAAAW,MAAAA,KAAAX,EAAA;CAAA,IAAAY;CAAA,AAAAZ,EAAA,QAAAS,MAAAT,EAAA,QAAAU,MAAAV,EAAA,QAAAW,MAtCHC,KAAA,qBAAC,MAAD;EAAY,OAAA;EAAmB,UAAA;EAA/B,UAAA;GACEH;GAUCC;GAMAC;EAjBE;KAuCEX,EAAA,MAAAS,IAAAT,EAAA,MAAAU,IAAAV,EAAA,MAAAW,IAAAX,EAAA,MAAAY,MAAAA,KAAAZ,EAAA;CAAA,IAAAa;CAAA,AAAAb,EAAA,QAAAL,cAAAK,EAAA,QAAAN,SAENmB,KAAAlB,cACC,oBAAC,cAAD;EAA2B,eAAA,sBAAsBD;EAAc,MAAA;EAAgB,MAAA;EAC5EC,UAAAA,WAAUmB;CADA,CAAA,GAGdd,EAAA,MAAAL,YAAAK,EAAA,MAAAN,OAAAM,EAAA,MAAAa,MAAAA,KAAAb,EAAA;CAAA,IAAAe;CAAA,AAAAf,EAAA,QAAAR,eAAAQ,EAAA,QAAAP,WAEAsB,KAAAvB,eACC,oBAAC,MAAD;EAAM,OAAA;EAAY,MAAA;EAAO,IAAAL,oBAAoBM,SAASD,WAAW;EAC9DA,UAAAA;CADE,CAAA,GAGNQ,EAAA,MAAAR,aAAAQ,EAAA,MAAAP,SAAAO,EAAA,MAAAe,MAAAA,KAAAf,EAAA;CAAA,IAAAgB;CACK,OADLhB,EAAA,QAAAY,MAAAZ,EAAA,QAAAa,MAAAb,EAAA,QAAAe,MApDHC,KAAA,qBAAC,OAAD;EAAY,KAAA;EAAZ,UAAA;GACEJ;GAyCCC;GAMAE;EAhDG;KAqDEf,EAAA,MAAAY,IAAAZ,EAAA,MAAAa,IAAAb,EAAA,MAAAe,IAAAf,EAAA,MAAAgB,MAAAA,KAAAhB,EAAA,KArDRgB;AAqDQ,CAEX,GC1FYiB,kBAAiBC,UAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAC5B,EAAAP,mBAAAC,eAAAC,qBAAAM,IAAAL,mBAAuFE,OAA9CH,sBAAAM,OAAAC,KAAAA,KAAAD,IACzC,EAAAE,aAAmBZ,YAAYG,aAAa,GAC5C,EAAAU,gBAAAC,aAAAC,uBAA0DjB,kBAAkBK,aAAa,GAACa;CAAA,AAAAR,EAAA,OAAAK,kBAAAL,EAAA,OAAAM,eAKrFE,KAAAH,kBAAkB,oBAAC,gBAAD,EAAe,GAAKC,YAAW,CAAA,GAAIN,EAAA,KAAAK,gBAAAL,EAAA,KAAAM,aAAAN,EAAA,KAAAQ,MAAAA,KAAAR,EAAA;CAAA,IAAAS;CAAA,AAAAT,EAAA,OAAAH,iBAM5CY,KAAAT,EAAA,MAFNS,KAAA,oBAAC,KAAD;EAAW,MAAA;EAAY,SAAA;EACrB,UAAA,oBAAC,MAAD;GAAY,MAAA;GAAIZ,UAAAA;EAAX,CAAA;CADH,CAAA,GAEEG,EAAA,KAAAH,gBAAAG,EAAA,KAAAS;CAAA,IAAAC;CAAA,AAAAV,EAAA,OAAAJ,uBAAAI,EAAA,OAAAO,sBAAAP,EAAA,OAAAI,SAAAO,mBAAAX,EAAA,OAAAI,SAAAQ,QAAAZ,EAAA,OAAAI,SAAAS,cAAAb,EAAA,QAAAN,qBAIRgB,KAAA,oBAAA,OAAA,EAAA,UAKGhB,oBAAA,qBAAA,YAAA,EAAA,UAAA,CAEG,oBAAC,KAAD;EAAe,WAAA;EACZE,UAAAA,sBACC,oBAAC,UAAD;GACc,eAAA;GACNd,MAAAA;GACD,MAAA;GACK,UAAA,CAACc;GACF,SAAAA,sBAAAW,qBAAArB;GACH,MAAA,GAAGkB,SAAQQ;EAAO,CAAA,IAG1B,qBAAC,QAAD;GAAa,KAAA;GAAY,SAAA;GAAzB,UAAA,CACE,oBAAC,MAAD;IAAc,QAAA;IAAgB,MAAA;IAC5B,UAAA,oBAAC,mBAAD,CAAkB,CAAA;GADf,CAAA,GAGL,oBAAC,MAAD;IAAc,QAAA;IAAgB,MAAA;IAAI,UAAA,GAAGR,SAAQQ;GAAxC,CAAA,CAJA;;CAXP,CAAA,GAmBJ,oBAAC,KAAD;EAAe,WAAA;EACZhB,UAAAA,sBACC,oBAAC,UAAD;GACc,eAAA;GACNd,MAAAA;GACD,MAAA;GACK,UAAA,CAACc;GACF,SAAAA,sBAAAW,qBAAArB;GACH,MAAA,GAAGkB,SAAQO,gBAAgB,IAAKP,SAAQS,WAAW;EAAG,CAAA,IAG9D,qBAAC,QAAD;GAAa,KAAA;GAAY,SAAA;GAAzB,UAAA,CACE,oBAAC,MAAD;IAAc,QAAA;IAAgB,MAAA;IAC5B,UAAA,oBAAC,mBAAD,CAAkB,CAAA;GADf,CAAA,GAGL,oBAAC,MAAD;IACU,QAAA;IACF,MAAA;IACN,UAAA,GAAGT,SAAQO,gBAAgB,IAAKP,SAAQS,WAAW;GAHhD,CAAA,CAJA;;CAXP,CAAA,CAqBE,EAAA,CAAA,IA1CT,oBAAA,YAAA,EAAA,UA8CIjB,sBACC,oBAAC,UAAD;EACQd,MAAAA;EACD,MAAA;EACK,UAAA,CAACc;EACF,SAAAA,sBAAAW,qBAAArB;EACH,MAAA,GAAGkB,SAAQO,gBAAgB,IAAKP,SAAQS,WAAW;CAAG,CAAA,IAG9D,qBAAC,QAAD;EAAa,KAAA;EAAY,SAAA;EAAzB,UAAA,CACE,oBAAC,MAAD;GAAc,QAAA;GAAgB,MAAA;GAC5B,UAAA,oBAAC,mBAAD,CAAkB,CAAA;EADf,CAAA,GAGL,oBAAC,MAAD;GACU,QAAA;GACF,MAAA;GACN,UAAA,GAAGT,SAAQO,gBAAgB,IAAKP,SAAQS,WAAW;EAHhD,CAAA,CAJA;CASR,CAAA,EAAA,CAAA,EAGD,CAAA,GAAAb,EAAA,KAAAJ,qBAAAI,EAAA,KAAAO,oBAAAP,EAAA,KAAAI,SAAAO,iBAAAX,EAAA,KAAAI,SAAAQ,MAAAZ,EAAA,KAAAI,SAAAS,YAAAb,EAAA,MAAAN,mBAAAM,EAAA,MAAAU,MAAAA,KAAAV,EAAA;CAAA,IAAAc;CAAA,AAAAd,EAAA,QAAAS,MAAAT,EAAA,QAAAU,MAhFRI,KAAA,oBAAC,SAAD;EAEI,SAAAL;EAIF,QAAA;EAEAC,UAAAA;CARM,CAAA,GAiFEV,EAAA,MAAAS,IAAAT,EAAA,MAAAU,IAAAV,EAAA,MAAAc,MAAAA,KAAAd,EAAA;CAAA,IAAAe;CACT,OADSf,EAAA,QAAAQ,MAAAR,EAAA,QAAAc,MArFZC,KAAA,qBAAA,YAAA,EAAA,UAAA,CAEGP,IAEDM,EAiFU,EAAA,CAAA,GACTd,EAAA,MAAAQ,IAAAR,EAAA,MAAAc,IAAAd,EAAA,MAAAe,MAAAA,KAAAf,EAAA,KAtFHe;AAsFG"}
|
|
1
|
+
{"version":3,"file":"TimeZoneButton-TmrFye13.js","names":["debounce","useEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","IsEqualFunction","TrackerContextStore","add","id","value","Value","update","remove","createStore","reportedValues","Map","publish","has","set","delete","TrackerContextGetSnapshot","useTrackerStore","$","_c","_temp","t0","Array","from","entries","t1","Symbol","for","snapshot","updateSnapshot","t2","trailing","debouncedUpdateSnapshot","t3","t4","cancel","t5","store","t6","useTrackerStoreReporter","isEqual","undefined","Object","is","idRef","previousRef","nextValue","current","nextValue_0","memo","useContext","ChangeIndicatorTrackerContextGetSnapshot","ChangeIndicatorTrackerContextStore","TrackerContextGetSnapshot","useTrackerStore","useTrackerStoreReporter","Reported","ReporterHook","ChangeIndicatorTrackerContextValue","TrackedArea","TrackedChange","ChangeIndicatorsTrackerComponent","props","$","_c","children","store","snapshot","t0","t1","ChangeIndicatorsTracker","EMPTY_ARRAY","useChangeIndicatorsReportedValues","console","warn","Error","useChangeIndicatorsReporter","id","value","isEqual","RefAttributes","Tooltip","TooltipProps","TooltipOfDisabled","t0","$","_c","children","content","disabled","ref","restProps","t1","t2","t3","ErrorOutlineIcon","InfoOutlineIcon","WarningOutlineIcon","styled","useTranslation","StyledErrorOutlineIcon","ValidationErrorIcon","$","_c","t","t0","t1","StyledWarningOutlineIcon","ValidationWarningIcon","StyledInfoOutlineIcon","ValidationInfoIcon","VALIDATION_ICONS","error","warning","info","StatusIcon","status","Icon","FormNodeValidation","Box","Flex","Placement","Stack","Text","styled","Tooltip","useListFormat","useTranslation","StatusIcon","StatusIconWrapper","div","FormFieldValidationStatusProps","validation","__unstable_showSummary","fontSize","placement","EMPTY_ARRAY","StyledStack","FormFieldValidationStatus","props","$","_c","t0","showSummary","undefined","hasErrors","some","_temp","hasWarnings","_temp2","status","t1","t2","map","_temp3","t3","t4","Symbol","for","t5","t6","t7","item","itemIndex","v_0","v","level","FormFieldValidationStatusItem","message","FormFieldValidationSummary","t","listFormatter","bb0","errorCount","reduce","_temp4","warningCount","_temp5","errorText","count","warningText","format","count_0","item_0","ReactNode","createDescriptionId","id","description","undefined","MAX_AVATARS_DOCK","DEFAULT_MAX_AVATARS_FIELDS","AVATAR_DISTANCE","AVATAR_SIZE","AVATAR_ARROW_HEIGHT","INTERSECTION_THRESHOLDS","INTERSECTION_ELEMENT_PADDING","SNAP_TO_DOCK_DISTANCE_TOP","SNAP_TO_DOCK_DISTANCE_BOTTOM","SLIDE_RIGHT_THRESHOLD_TOP","SLIDE_RIGHT_THRESHOLD_BOTTOM","DEBUG","Flex","styled","AVATAR_SIZE","FlexWrapper","InnerBox","memo","useContext","PresenceTrackerContextGetSnapshot","PresenceTrackerContextStore","TrackerContextGetSnapshot","useTrackerStore","useTrackerStoreReporter","Reported","ReporterHook","FieldPresenceData","ReportedPresenceData","PresenceTrackerComponent","props","$","_c","children","store","snapshot","t0","t1","PresenceTracker","EMPTY_ARRAY","usePresenceReportedValues","console","warn","Error","usePresenceReporter","id","value","isEqual","Flex","Stack","Text","useMemo","Tooltip","UserAvatar","FormNodePresence","PresenceTooltipProps","children","React","JSX","Element","items","PresenceTooltip","props","$","_c","t0","map","_temp","t1","content","t2","item","user","id","displayName","AVATAR_DISTANCE","AVATAR_SIZE","splitRight","array","T","max","indexFromMax","length","idx","Math","slice","calcAvatarStackWidth","len","AvatarCounter","AvatarPosition","sortBy","uniqBy","memo","useCallback","useContext","useId","useMemo","useState","FormFieldPresenceContext","UserAvatar","AVATAR_DISTANCE","AVATAR_SIZE","DEFAULT_MAX_AVATARS_FIELDS","FlexWrapper","InnerBox","usePresenceReporter","PresenceTooltip","FormNodePresence","splitRight","FieldPresenceInnerProps","maxAvatars","presence","stack","position","animateArrowFrom","FieldPresenceInner","t0","$","_c","t1","t2","t3","t4","undefined","t5","uniquePresence","_temp","sorted","_temp2","hidden","visible","t6","_visible","key","user","id","element","reverse","map","length","filter","Boolean","avatars","Symbol","for","t7","_temp3","FieldPresenceProps","FieldPresence","props","contextPresence","setElement","reporterId","reporterGetSnapshot","_temp4","minHeight","minWidth","item","FieldPresenceWithOverlay","_presence","lastActiveAt","av","i","transform","transitionProperty","transitionDuration","transitionTimingFunction","zIndex","useMemo","useTranslation","I18nNode","i18n","key","ns","TNode","useI18nText","node","$","_c","t0","bb0","t1","Symbol","for","Array","from","Set","Object","values","map","_temp","sort","namespaces","t","bb1","t2","target","property","defaultValue","ns_0","t3","Proxy","get","CheckmarkIcon","Text","useCallback","MenuItem","TooltipOfDisabled","DocumentFieldActionItem","useI18nText","FieldActionMenuItem","props","$","_c","action","title","t0","onAction","handleClick","t1","disabled","reason","disabledTooltipContent","t2","Boolean","t3","iconRight","selected","undefined","t4","icon","tone","t5","Box","Text","MenuDivider","MenuGroup","MenuGroupProps","DocumentFieldActionGroup","DocumentFieldActionNode","useI18nText","FieldActionMenuItem","FieldActionMenuNodeProps","action","isFirst","prevIsGroup","FieldActionMenuNode","props","$","_c","type","t0","Symbol","for","t1","t2","POPOVER_PROPS","placement","fallbackPlacements","FieldActionMenuGroup","group","title","expanded","children","map","item","idx","icon","tone","item_0","idx_0","t3","EllipsisHorizontalIcon","Card","Menu","memo","PointerEvent","useCallback","useId","useMemo","useState","Button","ButtonProps","MenuButton","MenuButtonProps","DocumentFieldActionGroup","DocumentFieldActionNode","useI18nText","FieldActionMenuNode","FieldActionMenuProps","nodes","onMenuOpenChange","open","STATUS_BUTTON_TOOLTIP_PROPS","placement","renderAsButton","node","FieldActionMenu","props","$","_c","setOpen","t0","handleOpen","t1","handleClose","t2","filter","buttonNodes","t3","_temp","menuNodesProp","t4","bb0","len","length","node_0","type","t5","expanded","menuNodes","children","icon","title","t6","rootNodes","t7","map","node_1","idx","RootFieldActionMenuNode","onOpen","onClose","Symbol","for","content","onAction","ROOT_MENU_BUTTON_POPOVER_PROPS","constrainSize","portal","fallbackPlacements","RootFieldActionMenuGroup","handlePointerDown","_temp2","undefined","action","event","preventDefault","Box","Card","Flex","ReactNode","useCallback","useEffect","useMemo","useState","css","styled","TooltipDelayGroupProvider","DocumentFieldActionNode","FieldPresence","FormNodePresence","calcAvatarStackWidth","FieldActionMenu","FieldCommentsProps","Root","$floatingCardWidth","$slotWidth","$floatingCardVisible","theme","space","sanity","ContentBox","$presenceMaxWidth","SlotBox","$right","$fieldActionsVisible","right","FieldActionsFloatingCard","FieldActionsFlex","MAX_AVATARS","FormFieldBaseHeaderProps","__internal_comments","__internal_slot","actions","content","fieldFocused","inputId","fieldHovered","presence","FormFieldBaseHeader","props","$","_c","comments","slot","focused","setFocused","menuOpen","setMenuOpen","floatingCardElement","setFloatingCardElement","floatingCardWidth","setFloatingCardWidth","slotElement","setSlotElement","slotWidth","setSlotWidth","t0","hasComments","t1","button","t2","isAddingComment","t3","undefined","commentButton","hasActions","length","showFieldActions","hasCommentsButtonOrActions","shouldShowFloatingCard","t4","width","getBoundingClientRect","handleSetFloatingCardElementWidth","t5","handleFocusCapture","t6","handleBlurCapture","t7","t8","t10","t9","width_0","t11","bb0","t12","Boolean","t13","slotEl","Symbol","for","t14","t15","t16","DeprecatedProperty","FormNodeValidation","Badge","Box","Flex","Stack","Text","memo","ReactNode","styled","TextWithTone","useTranslation","createDescriptionId","FormFieldValidationStatus","LabelSuffix","FormFieldHeaderTextProps","validation","description","inputId","title","deprecated","suffix","EMPTY_ARRAY","FormFieldHeaderText","props","$","_c","t0","undefined","t","hasValidations","length","t1","color","t2","t3","t4","t5","t6","reason","t7","t8","EarthAmericasIcon","Box","Inline","Text","noop","ReactNode","Button","Tooltip","useDialogTimeZone","TimeZoneScope","useTimeZone","TimeZoneButtonZoneProps","useElementQueries","timeZoneScope","allowTimeZoneSwitch","tooltipContent","TimeZoneButton","props","$","_c","t0","undefined","timeZone","DialogTimeZone","dialogProps","dialogTimeZoneShow","t1","t2","t3","alternativeName","city","namePretty","t4","t5"],"sources":["../src/core/components/react-track-elements/hooks.ts","../src/core/changeIndicators/tracker.tsx","../src/core/components/TooltipOfDisabled.tsx","../src/core/form/components/formField/ValidationStatusIcon.tsx","../src/core/form/components/formField/FormFieldValidationStatus.tsx","../src/core/form/members/common/createDescriptionId.ts","../src/core/presence/constants.ts","../src/core/presence/FieldPresence.styled.tsx","../src/core/presence/overlay/tracker.tsx","../src/core/presence/PresenceTooltip.tsx","../src/core/presence/utils.ts","../src/core/presence/FieldPresence.tsx","../src/core/i18n/hooks/useI18nText.ts","../src/core/form/field/actions/FieldActionMenuItem.tsx","../src/core/form/field/actions/FieldActionMenuNode.tsx","../src/core/form/field/actions/FieldActionMenu.tsx","../src/core/form/components/formField/FormFieldBaseHeader.tsx","../src/core/form/components/formField/FormFieldHeaderText.tsx","../src/core/components/timeZone/timeZoneButton/TimeZoneButton.tsx"],"sourcesContent":["import debounce from 'lodash-es/debounce.js'\nimport {useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState} from 'react'\n\nimport {type IsEqualFunction} from './types'\n\n/** @internal */\nexport interface TrackerContextStore<Value> {\n add: (id: string, value: Value) => void\n update: (id: string, value: Value) => void\n remove: (id: string) => void\n}\n\nfunction createStore<Value>(reportedValues: Map<string, Value>, publish: () => void) {\n /**\n * This implementation is over 4 years old, and is part of tackling a hard problem:\n * tracking the position of DOM nodes efficiently, so that Presence Sticky Overlays can render correctly and respond to scroll,\n * and so that Change Indicator connectors can draw paths that traces a document change to its form input field no matter how they layout shifts.\n * 4 years ago we didn't have a lot of options when solving this problem.\n * But today we have great success with using `@floating-ui/react` in `@sanity/ui` with a very similar problem: positioning tooltips and popovers correctly no matter how the page scrolls or the layout shifts.\n * We should consider migrating to `@floating-ui/react` for this problem as well.\n */\n function add(id: string, value: Value) {\n if (reportedValues.has(id)) {\n // console.error(\n // new Error(\n // `Invalid call to useReporter(${id}): A component reporting on \"${id}\" is already mounted in the subtree. Make sure that all reporters within the same <Tracker> subtree have unique ids.`\n // )\n // )\n }\n reportedValues.set(id, value)\n publish()\n }\n\n function update(id: string, value: Value) {\n if (!reportedValues.has(id)) {\n // throw new Error(`A reporter with id \"${id}\" is not known.`)\n }\n reportedValues.set(id, value)\n publish()\n }\n\n function remove(id: string) {\n if (!reportedValues.has(id)) {\n // throw new Error(`A reporter with id \"${id}\" is not known`)\n }\n reportedValues.delete(id)\n publish()\n }\n\n return {\n add,\n remove,\n update,\n }\n}\n\n/** @internal */\nexport type TrackerContextGetSnapshot<Value> = [string, Value][]\n\n/** @internal */\nexport function useTrackerStore<Value>(): {\n store: TrackerContextStore<Value>\n snapshot: TrackerContextGetSnapshot<Value>\n} {\n const [reportedValues] = useState(() => new Map<string, Value>())\n const [snapshot, updateSnapshot] = useReducer(() => Array.from(reportedValues.entries()), [])\n const debouncedUpdateSnapshot = useMemo(() => debounce(updateSnapshot, 10, {trailing: true}), [])\n\n // Cancel any pending trailing publish when the tracker unmounts. The reporters'\n // unmount cleanups call `store.remove()`, which would otherwise leave a timer that\n // dispatches to the unmounted reducer — in tests this can fire after the test\n // environment is torn down and crash with an unhandled error.\n useEffect(() => () => debouncedUpdateSnapshot.cancel(), [debouncedUpdateSnapshot])\n\n const store = useMemo(\n () => createStore(reportedValues, debouncedUpdateSnapshot),\n [debouncedUpdateSnapshot, reportedValues],\n )\n\n return {store, snapshot}\n}\n\n/** @internal */\nexport function useTrackerStoreReporter<Value>(\n store: TrackerContextStore<Value> | null,\n id: string | null,\n value: () => Value,\n isEqual: IsEqualFunction<Value> = Object.is,\n): void {\n const idRef = useRef<string | null>(null)\n const previousRef = useRef<Value | null>(null)\n\n useLayoutEffect(() => {\n /**\n * Setup and teardown, only runs if `id`, `store` or the `value` getter changes\n */\n if (id === null || store === null) {\n return undefined\n }\n const nextValue = value()\n store.add(id, nextValue)\n idRef.current = id\n previousRef.current = nextValue\n return () => {\n store.remove(id)\n idRef.current = null\n previousRef.current = null\n }\n }, [id, store, value])\n\n useLayoutEffect(() => {\n /**\n * Runs after every render in case the result of calling `value` has changes that\n * the `isEqual` function picks up on.\n * @TODO This is a bit expensive, and we should migrate to using a library like `@floating-ui/react` instead of rolling our own solution.\n */\n if (id === null || idRef.current === null || store === null || id !== idRef.current) {\n return undefined\n }\n const nextValue = value()\n if (isEqual(previousRef.current, nextValue)) {\n return undefined\n }\n\n store.update(id, nextValue)\n previousRef.current = nextValue\n\n return undefined\n })\n}\n","import {memo, useContext} from 'react'\nimport {\n ChangeIndicatorTrackerContextGetSnapshot,\n ChangeIndicatorTrackerContextStore,\n} from 'sanity/_singletons'\n\nimport {\n type TrackerContextGetSnapshot,\n useTrackerStore,\n useTrackerStoreReporter,\n} from '../components/react-track-elements/hooks'\nimport {type Reported, type ReporterHook} from '../components/react-track-elements/types'\nimport {type ChangeIndicatorTrackerContextValue} from './types'\n\nexport {\n type ChangeIndicatorTrackerContextValue,\n type TrackedArea,\n type TrackedChange,\n} from './types'\n\nfunction ChangeIndicatorsTrackerComponent(props: {children: React.ReactNode}) {\n const {children} = props\n const {store, snapshot} = useTrackerStore<ChangeIndicatorTrackerContextValue>()\n\n return (\n <ChangeIndicatorTrackerContextStore.Provider value={store}>\n <ChangeIndicatorTrackerContextGetSnapshot.Provider value={snapshot}>\n {children}\n </ChangeIndicatorTrackerContextGetSnapshot.Provider>\n </ChangeIndicatorTrackerContextStore.Provider>\n )\n}\n\n/**\n * @internal\n */\nexport const ChangeIndicatorsTracker = memo(ChangeIndicatorsTrackerComponent)\n\nconst EMPTY_ARRAY: Reported<ChangeIndicatorTrackerContextValue>[] = []\n\n/**\n * @internal\n */\nexport function useChangeIndicatorsReportedValues(): TrackerContextGetSnapshot<ChangeIndicatorTrackerContextValue> {\n const snapshot = useContext(ChangeIndicatorTrackerContextGetSnapshot)\n\n if (snapshot === null) {\n console.warn(\n new Error(\n 'No context provided for reporter. Make sure that the component calling \"useChangeIndicatorsReportedValues()\", is wrapped inside a <ChangeIndicatorsTracker> element',\n ),\n )\n return EMPTY_ARRAY\n }\n\n return snapshot\n}\n\n/**\n * @internal\n */\nexport const useChangeIndicatorsReporter: ReporterHook<ChangeIndicatorTrackerContextValue> = (\n id,\n value,\n isEqual?,\n) => {\n const store = useContext(ChangeIndicatorTrackerContextStore)\n\n if (store === null) {\n console.warn(\n new Error(\n 'No context provided for reporter. Make sure that the component calling \"useChangeIndicatorsReporter()\", is wrapped inside a <ChangeIndicatorsTracker> element',\n ),\n )\n }\n\n useTrackerStoreReporter<ChangeIndicatorTrackerContextValue>(store, id, value, isEqual)\n}\n","import {type RefAttributes} from 'react'\n\nimport {Tooltip, type TooltipProps} from '../../ui-components/tooltip/Tooltip'\n\n/** @internal */\nexport function TooltipOfDisabled({\n ref,\n children,\n content,\n disabled,\n ...restProps\n}: TooltipProps & RefAttributes<HTMLDivElement>) {\n return (\n <Tooltip {...restProps} content={content} disabled={disabled || !content} ref={ref}>\n <div>{children}</div>\n </Tooltip>\n )\n}\n","import {ErrorOutlineIcon} from '@sanity/icons/ErrorOutline'\nimport {InfoOutlineIcon} from '@sanity/icons/InfoOutline'\nimport {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\nimport {styled} from 'styled-components'\n\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\n\nconst StyledErrorOutlineIcon = styled(ErrorOutlineIcon)`\n --card-icon-color: var(--card-badge-critical-icon-color);\n`\nfunction ValidationErrorIcon() {\n const {t} = useTranslation()\n return (\n <StyledErrorOutlineIcon\n data-testid=\"input-validation-icon-error\"\n aria-label={t('form.validation.has-error-aria-label')}\n aria-hidden\n role=\"presentation\"\n />\n )\n}\n\nconst StyledWarningOutlineIcon = styled(WarningOutlineIcon)`\n --card-icon-color: var(--card-badge-caution-icon-color);\n`\n\nfunction ValidationWarningIcon() {\n const {t} = useTranslation()\n return (\n <StyledWarningOutlineIcon\n data-testid=\"input-validation-icon-warning\"\n aria-label={t('form.validation.has-warning-aria-label')}\n aria-hidden\n role=\"presentation\"\n />\n )\n}\n\nconst StyledInfoOutlineIcon = styled(InfoOutlineIcon)`\n --card-icon-color: var(--card-badge-primary-icon-color);\n`\nfunction ValidationInfoIcon() {\n const {t} = useTranslation()\n return (\n <StyledInfoOutlineIcon\n data-testid=\"input-validation-icon-info\"\n aria-label={t('form.validation.has-info-aria-label')}\n aria-hidden\n role=\"presentation\"\n />\n )\n}\n\nconst VALIDATION_ICONS = {\n error: ValidationErrorIcon,\n warning: ValidationWarningIcon,\n info: ValidationInfoIcon,\n}\n\nexport const StatusIcon = ({status}: {status: 'error' | 'warning' | 'info'}) => {\n const Icon = VALIDATION_ICONS[status]\n if (!Icon) return null\n\n return <Icon />\n}\n","import {type FormNodeValidation} from '@sanity/types'\nimport {Box, Flex, type Placement, Stack, Text} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport {useListFormat} from '../../../hooks/useListFormat'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {StatusIcon} from './ValidationStatusIcon'\n\nconst StatusIconWrapper = styled.div`\n left: 8px;\n position: relative;\n width: 25px;\n`\n\n/** @internal */\nexport interface FormFieldValidationStatusProps {\n /**\n *\n * @hidden\n * @beta\n */\n validation?: FormNodeValidation[]\n /**\n *\n * @hidden\n * @beta\n */\n __unstable_showSummary?: boolean\n fontSize?: number\n placement?: Placement\n}\n\nconst EMPTY_ARRAY: never[] = []\n\nconst StyledStack = styled(Stack)`\n max-width: 200px;\n`\n\n/** @internal */\nexport function FormFieldValidationStatus(props: FormFieldValidationStatusProps) {\n const {validation = EMPTY_ARRAY, __unstable_showSummary: showSummary, fontSize, placement} = props\n\n const hasErrors = validation.some((v) => v.level === 'error')\n const hasWarnings = validation.some((v) => v.level === 'warning')\n\n const status = hasErrors ? 'error' : hasWarnings ? 'warning' : 'info'\n\n return (\n <Tooltip\n content={\n <StyledStack gap={3}>\n {showSummary && <FormFieldValidationSummary validation={validation} />}\n\n {!showSummary && (\n <>\n {validation.map((item, itemIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <FormFieldValidationStatusItem key={itemIndex} validation={item} />\n ))}\n </>\n )}\n </StyledStack>\n }\n portal\n placement={placement}\n fallbackPlacements={['bottom', 'right', 'left']}\n >\n <StatusIconWrapper>\n <Text size={fontSize} weight=\"medium\">\n <StatusIcon status={status} />\n </Text>\n </StatusIconWrapper>\n </Tooltip>\n )\n}\n\nfunction FormFieldValidationStatusItem(props: {validation: FormNodeValidation}) {\n const {validation} = props\n\n return (\n <Flex>\n <Box marginRight={2}>\n <Text size={1} weight=\"medium\">\n <StatusIcon status={validation.level} />\n </Text>\n </Box>\n <Box flex={1}>\n <Text size={1}>{validation.message}</Text>\n </Box>\n </Flex>\n )\n}\n\nfunction FormFieldValidationSummary({validation}: {validation: FormNodeValidation[]}) {\n const {t} = useTranslation()\n const listFormatter = useListFormat()\n\n const errorCount = validation.reduce(\n (count, item) => (item.level === 'error' ? count + 1 : count),\n 0,\n )\n const warningCount = validation.reduce(\n (count, item) => (item.level === 'warning' ? count + 1 : count),\n 0,\n )\n\n const hasErrors = errorCount > 0\n const hasWarnings = warningCount > 0\n\n if (!hasErrors && !hasWarnings) {\n return null\n }\n\n const errorText = hasErrors && t('form.validation.summary.errors-count', {count: errorCount})\n const warningText =\n hasWarnings && t('form.validation.summary.warnings-count', {count: warningCount})\n\n return errorText && warningText ? (\n <Text size={1}>{listFormatter.format([errorText, warningText])}</Text>\n ) : (\n <Text size={1}>{errorText || warningText}</Text>\n )\n}\n","import {type ReactNode} from 'react'\n\n/**\n * Creates a description id from a field id, for use with aria-describedby in the field,\n * and added to the descriptive element id.\n * @internal\n */\nexport function createDescriptionId(\n id: string | undefined,\n description: ReactNode | undefined,\n): string | undefined {\n if (!description || !id) return undefined\n return `desc_${id}`\n}\n","// number of avatars to display on each fields (will be stacked and have a counter if more than 3 users in a field)\nexport const MAX_AVATARS_DOCK = 3\nexport const DEFAULT_MAX_AVATARS_FIELDS = 3\n\n// distance between avatars in pixels (negative number means overlap)\nexport const AVATAR_DISTANCE = -4\n\n// height/width of the avatars in pixels\nexport const AVATAR_SIZE = 25\n\nexport const AVATAR_ARROW_HEIGHT = 4\n\n// these are the thresholds in which the intersection observers will notify about regions going in/out of viewport\n// these will affect the thresholds below, so make sure to coordinate edits\nexport const INTERSECTION_THRESHOLDS = [0, 0.25, 0.75, 1]\n\n// The elements that reports intersection changes are padded top+bottom in order to detect when entering leaving\nexport const INTERSECTION_ELEMENT_PADDING = 23\n\n// Make the avatars snap to the top dock when they are closer than this from the top\nexport const SNAP_TO_DOCK_DISTANCE_TOP = 8\n\n// Make the avatars snap to the bottom dock when they are closer than this from the bottom\nexport const SNAP_TO_DOCK_DISTANCE_BOTTOM = 8\n\n// The avatar will move to the right when this close (in pixels) to the top\nexport const SLIDE_RIGHT_THRESHOLD_TOP = 20\n\n// The avatar will move to the right when this close (in pixels) to the bottom\nexport const SLIDE_RIGHT_THRESHOLD_BOTTOM = 20\n\n// Switch on debug mode (will display regions)\nexport const DEBUG = false\n","import {Flex} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nimport {AVATAR_SIZE} from './constants'\n\nexport const FlexWrapper = styled(Flex)`\n & > div:first-child {\n flex: 1;\n min-width: 0;\n }\n`\n\nexport const InnerBox = styled(Flex)`\n height: ${AVATAR_SIZE}px;\n min-width: 23px;\n vertical-align: top;\n`\n","import {memo, useContext} from 'react'\nimport {PresenceTrackerContextGetSnapshot, PresenceTrackerContextStore} from 'sanity/_singletons'\n\nimport {\n type TrackerContextGetSnapshot,\n useTrackerStore,\n useTrackerStoreReporter,\n} from '../../components/react-track-elements/hooks'\nimport {type Reported, type ReporterHook} from '../../components/react-track-elements/types'\nimport {type FieldPresenceData} from '../types'\n\nexport type ReportedPresenceData = Reported<FieldPresenceData>\n\nfunction PresenceTrackerComponent(props: {children: React.ReactNode}) {\n const {children} = props\n const {store, snapshot} = useTrackerStore<FieldPresenceData>()\n\n return (\n <PresenceTrackerContextStore.Provider value={store}>\n <PresenceTrackerContextGetSnapshot.Provider value={snapshot}>\n {children}\n </PresenceTrackerContextGetSnapshot.Provider>\n </PresenceTrackerContextStore.Provider>\n )\n}\n\n/**\n * @internal\n */\nexport const PresenceTracker = memo(PresenceTrackerComponent)\n\nconst EMPTY_ARRAY: Reported<FieldPresenceData>[] = []\n\n/**\n * @internal\n */\nexport function usePresenceReportedValues(): TrackerContextGetSnapshot<FieldPresenceData> {\n const snapshot = useContext(PresenceTrackerContextGetSnapshot)\n\n if (snapshot === null) {\n console.warn(\n new Error(\n 'No context provided for reporter. Make sure that the component calling \"usePresenceReportedValues()\", is wrapped inside a <PresenceTracker> element',\n ),\n )\n return EMPTY_ARRAY\n }\n\n return snapshot\n}\n\n/**\n * @internal\n */\nexport const usePresenceReporter: ReporterHook<FieldPresenceData> = (id, value, isEqual?) => {\n const store = useContext(PresenceTrackerContextStore)\n\n if (store === null) {\n console.warn(\n new Error(\n 'No context provided for reporter. Make sure that the component calling \"usePresenceReporter()\", is wrapped inside a <PresenceTracker> element',\n ),\n )\n }\n\n useTrackerStoreReporter<FieldPresenceData>(store, id, value, isEqual)\n}\n","import {Flex, Stack, Text} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {Tooltip} from '../../ui-components/tooltip/Tooltip'\nimport {UserAvatar} from '../components/userAvatar/UserAvatar'\nimport {type FormNodePresence} from './types'\n\ninterface PresenceTooltipProps {\n children?: React.JSX.Element\n items: FormNodePresence[]\n}\n\n/**\n * The \"documentScrollElement\" is being passed to the PortalProvider in DocumentPanel.\n * The default portal element provided by the PortalProvider causes some layout issues with the Tooltip.\n * Therefore, another portal element (i.e. the \"documentScrollElement\") is being used to solve this.\n */\n\nexport function PresenceTooltip(props: PresenceTooltipProps) {\n const {children, items} = props\n\n const content = useMemo(\n () => (\n <Stack sizing=\"border\">\n {items.map((item) => (\n <Flex key={item.user.id} align=\"center\" gap={2}>\n <div>\n <UserAvatar user={item.user} status=\"online\" />\n </div>\n\n <Text size={1}>{item.user.displayName}</Text>\n </Flex>\n ))}\n </Stack>\n ),\n [items],\n )\n\n return (\n <Tooltip content={content} placement=\"top\" portal=\"documentScrollElement\">\n {children}\n </Tooltip>\n )\n}\n","import {AVATAR_DISTANCE, AVATAR_SIZE} from './constants'\n\nexport const splitRight = <T>(array: T[], max: number): [T[], T[]] => {\n const indexFromMax = array.length > max ? max - 1 : max\n const idx = Math.max(0, array.length - indexFromMax)\n return [array.slice(0, idx), array.slice(idx)]\n}\n\n/** @internal */\nexport function calcAvatarStackWidth(len: number): number {\n return -AVATAR_DISTANCE + (AVATAR_SIZE + AVATAR_DISTANCE) * len\n}\n","import {AvatarCounter, type AvatarPosition} from '@sanity/ui'\nimport sortBy from 'lodash-es/sortBy.js'\nimport uniqBy from 'lodash-es/uniqBy.js'\nimport {memo, useCallback, useContext, useId, useMemo, useState} from 'react'\nimport {FormFieldPresenceContext} from 'sanity/_singletons'\n\nimport {UserAvatar} from '../components/userAvatar/UserAvatar'\nimport {AVATAR_DISTANCE, AVATAR_SIZE, DEFAULT_MAX_AVATARS_FIELDS} from './constants'\nimport {FlexWrapper, InnerBox} from './FieldPresence.styled'\nimport {usePresenceReporter} from './overlay/tracker'\nimport {PresenceTooltip} from './PresenceTooltip'\nimport {type FormNodePresence} from './types'\nimport {splitRight} from './utils'\n\n/** @internal */\nexport interface FieldPresenceInnerProps {\n maxAvatars?: number\n presence: FormNodePresence[]\n stack?: boolean\n position?: AvatarPosition\n animateArrowFrom?: AvatarPosition\n}\n\n/** @internal */\nexport const FieldPresenceInner = memo(function FieldPresenceInner({\n presence,\n position = 'inside',\n animateArrowFrom = 'inside',\n maxAvatars = DEFAULT_MAX_AVATARS_FIELDS,\n stack = true,\n}: FieldPresenceInnerProps) {\n const uniquePresence = uniqBy(presence || [], (item) => item.user.id)\n const sorted = sortBy(uniquePresence, (_presence) => _presence.lastActiveAt)\n const [hidden, visible] = stack ? splitRight(sorted, maxAvatars) : [[], sorted]\n\n const avatars = [\n ...visible.reverse().map((_visible) => ({\n key: _visible.user.id,\n element: (\n <UserAvatar\n animateArrowFrom={animateArrowFrom}\n position={position}\n status=\"online\"\n user={_visible.user}\n />\n ),\n })),\n hidden.length >= 2\n ? {\n key: 'counter',\n element: <AvatarCounter count={hidden.length} />,\n }\n : null,\n ].filter(Boolean)\n\n return (\n <FlexWrapper>\n <div />\n\n <InnerBox direction=\"row-reverse\">\n {avatars.map(\n (av, i) =>\n av && (\n <div\n key={av.key}\n style={{\n position: 'absolute',\n transform: `translate3d(${-i * (AVATAR_SIZE + AVATAR_DISTANCE)}px, 0px, 0px)`,\n transitionProperty: 'transform',\n transitionDuration: '200ms',\n transitionTimingFunction: 'cubic-bezier(0.85, 0, 0.15, 1)',\n zIndex: 100 - i,\n }}\n >\n {av.element}\n </div>\n ),\n )}\n </InnerBox>\n </FlexWrapper>\n )\n})\n\n/** @internal */\nexport interface FieldPresenceProps {\n presence: FormNodePresence[]\n maxAvatars: number\n}\n\n/** @internal */\nexport function FieldPresence(props: FieldPresenceProps) {\n const contextPresence = useContext(FormFieldPresenceContext)\n const {presence = contextPresence, maxAvatars = DEFAULT_MAX_AVATARS_FIELDS} = props\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n\n const reporterId = useId()\n const reporterGetSnapshot = useCallback(\n () => ({presence, element, maxAvatars}),\n [element, maxAvatars, presence],\n )\n usePresenceReporter(element ? reporterId : null, reporterGetSnapshot)\n\n const uniquePresence = useMemo(() => uniqBy(presence || [], (item) => item.user.id), [presence])\n\n return (\n <PresenceTooltip items={uniquePresence}>\n <FlexWrapper ref={setElement} style={{minHeight: AVATAR_SIZE, minWidth: AVATAR_SIZE}} />\n </PresenceTooltip>\n )\n}\n\n/**\n * @internal\n * @hidden\n * @deprecated Use `FieldPresence` instead\n * @alias\n */\nexport const FieldPresenceWithOverlay = FieldPresence\n","import {useMemo} from 'react'\n\nimport {useTranslation} from './useTranslation'\n\n/**\n * Enforces the shape of an object allowed to be passed into `useI18nText`.\n * @internal\n */\nexport type I18nNode<TNode extends {i18n?: {[TProp in string]: {key: string; ns: string}}}> = {\n i18n?: {[K in keyof TNode['i18n']]: {key: string; ns: string}}\n} & {\n [K in keyof TNode['i18n']]: string\n}\n\n/**\n * A React hook for localizing strings in a given object (`node`) using the\n * `useTranslation` hook.\n *\n * This hook expects an object (`node`) with top-level keys associated with\n * string values. If an `i18n` property is present within the object, it should\n * contain localization configurations for each top-level key. Each\n * configuration must include a `key` and `ns` (namespace) used for the\n * translation of the corresponding string value.\n *\n * The hook uses a proxy to intercept access to properties of the `node`. For\n * properties defined in the `i18n` object, it returns the translated string\n * using the `t` function. If no translation is found, the original string value\n * is used as a fallback. For properties not defined in the `i18n` object, their\n * original values are returned.\n *\n * @param node - The object containing strings to be localized along with\n * optional i18n configurations.\n * @returns A proxy of the original `node` object where each property access\n * returns localized strings.\n * @internal\n */\nexport function useI18nText<TNode extends I18nNode<TNode>>(node: TNode): TNode {\n const namespaces = useMemo(() => {\n if (!node.i18n) return []\n return Array.from(new Set(Object.values(node.i18n).map(({ns}) => ns))).sort()\n }, [node.i18n])\n\n const {t} = useTranslation(namespaces)\n\n return useMemo(() => {\n const {i18n} = node\n if (!i18n) return node\n\n return new Proxy(node, {\n get: (target, property) => {\n const defaultValue = target[property as keyof TNode]\n\n if (typeof property === 'string' && property in i18n) {\n const {key, ns} = i18n[property as keyof TNode['i18n']]\n return t(key, {\n ns,\n // `defaultValue` is a special key in the i18next `t` API that\n // allows us to provide a fallback value if no translation is found\n // using the given key and namespace. if the value on the node\n // is a string, then we'll use that as the fallback value\n ...(typeof defaultValue === 'string' && {defaultValue}),\n })\n }\n\n return defaultValue\n },\n })\n }, [node, t])\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {Text} from '@sanity/ui'\nimport {useCallback} from 'react'\n\nimport {MenuItem} from '../../../../ui-components/menuItem/MenuItem'\nimport {TooltipOfDisabled} from '../../../components/TooltipOfDisabled'\nimport {type DocumentFieldActionItem} from '../../../config/document/fieldActions/types'\nimport {useI18nText} from '../../../i18n/hooks/useI18nText'\n\nexport function FieldActionMenuItem(props: {action: DocumentFieldActionItem}) {\n const {action} = props\n\n const {title} = useI18nText(action)\n\n const handleClick = useCallback(() => {\n action.onAction()\n }, [action])\n\n const disabledTooltipContent = typeof action.disabled === 'object' && (\n <Text size={1}>{action.disabled.reason}</Text>\n )\n\n return (\n <TooltipOfDisabled content={disabledTooltipContent} placement=\"left\">\n <MenuItem\n disabled={Boolean(action.disabled)}\n icon={action.icon}\n iconRight={action.iconRight || (action.selected ? CheckmarkIcon : undefined)}\n onClick={handleClick}\n pressed={action.selected}\n text={title}\n tone={action.tone}\n />\n </TooltipOfDisabled>\n )\n}\n","import {Box, Text} from '@sanity/ui'\nimport {MenuDivider} from '@sanity/ui/menu'\n\nimport {MenuGroup, type MenuGroupProps} from '../../../../ui-components/menuGroup/MenuGroup'\nimport {\n type DocumentFieldActionGroup,\n type DocumentFieldActionNode,\n} from '../../../config/document/fieldActions/types'\nimport {useI18nText} from '../../../i18n/hooks/useI18nText'\nimport {FieldActionMenuItem} from './FieldActionMenuItem'\n\n// `FieldActionMenuNode` and `FieldActionMenuGroup` are mutually recursive (groups render their\n// children as nodes), so they live in the same module to avoid circular imports.\n\ninterface FieldActionMenuNodeProps {\n action: DocumentFieldActionNode\n isFirst: boolean\n prevIsGroup: boolean\n}\n\nexport function FieldActionMenuNode(props: FieldActionMenuNodeProps) {\n const {action, isFirst, prevIsGroup} = props\n\n if (action.type === 'divider') {\n return <MenuDivider />\n }\n\n if (action.type === 'group') {\n return (\n <>\n {!isFirst && <MenuDivider />}\n <FieldActionMenuGroup group={action} />\n </>\n )\n }\n\n return (\n <>\n {prevIsGroup && <MenuDivider />}\n <FieldActionMenuItem action={action} />\n </>\n )\n}\n\nconst POPOVER_PROPS: MenuGroupProps['popover'] = {\n placement: 'right',\n fallbackPlacements: ['top', 'bottom'],\n}\n\nfunction FieldActionMenuGroup(props: {group: DocumentFieldActionGroup}) {\n const {group} = props\n const {title} = useI18nText(group)\n\n if (group.expanded) {\n return (\n <>\n <Box padding={2} paddingTop={3}>\n <Text muted size={1} weight=\"medium\">\n {title}\n </Text>\n </Box>\n\n {group.children.map((item, idx) => (\n <FieldActionMenuNode\n // oxlint-disable-next-line no-array-index-key\n key={idx}\n action={item}\n isFirst={idx === 0}\n prevIsGroup={group.children[idx - 1]?.type === 'group'}\n />\n ))}\n </>\n )\n }\n\n return (\n <MenuGroup icon={group.icon} popover={POPOVER_PROPS} text={title} tone={group.tone}>\n {group.children.map((item, idx) => (\n <FieldActionMenuNode\n // oxlint-disable-next-line no-array-index-key\n key={idx}\n action={item}\n isFirst={idx === 0}\n prevIsGroup={group.children[idx - 1]?.type === 'group'}\n />\n ))}\n </MenuGroup>\n )\n}\n","import {EllipsisHorizontalIcon} from '@sanity/icons/EllipsisHorizontal'\nimport {Card} from '@sanity/ui'\nimport {Menu} from '@sanity/ui/menu'\nimport {memo, type PointerEvent, useCallback, useId, useMemo, useState} from 'react'\n\nimport {Button, type ButtonProps} from '../../../../ui-components/button/Button'\nimport {MenuButton, type MenuButtonProps} from '../../../../ui-components/menuButton/MenuButton'\nimport {\n type DocumentFieldActionGroup,\n type DocumentFieldActionNode,\n} from '../../../config/document/fieldActions/types'\nimport {useI18nText} from '../../../i18n/hooks/useI18nText'\nimport {FieldActionMenuNode} from './FieldActionMenuNode'\n\n/** @internal */\nexport interface FieldActionMenuProps {\n nodes: DocumentFieldActionNode[]\n onMenuOpenChange: (open: boolean) => void\n}\n\nconst STATUS_BUTTON_TOOLTIP_PROPS: ButtonProps['tooltipProps'] = {\n placement: 'top',\n}\n\nfunction renderAsButton(node: DocumentFieldActionNode) {\n return 'renderAsButton' in node && node.renderAsButton\n}\n\n/** @internal */\nexport const FieldActionMenu = memo(function FieldActionMenu(props: FieldActionMenuProps) {\n const {nodes, onMenuOpenChange} = props\n const [open, setOpen] = useState(false)\n\n const handleOpen = useCallback(() => {\n onMenuOpenChange(true)\n setOpen(true)\n }, [onMenuOpenChange])\n const handleClose = useCallback(() => {\n onMenuOpenChange(false)\n setOpen(false)\n }, [onMenuOpenChange])\n\n const buttonNodes = useMemo(() => nodes.filter(renderAsButton), [nodes])\n const menuNodesProp = useMemo(() => nodes.filter((node) => !renderAsButton(node)), [nodes])\n\n // If there is only one menu node, and it is a `group`, expand it by default\n const menuNodes = useMemo(() => {\n const len = menuNodesProp.length\n\n if (len === 0 || len > 1) return menuNodesProp\n\n const node = menuNodesProp[0]\n\n if (node.type === 'group') {\n return [{...node, expanded: true}]\n }\n\n return menuNodesProp\n }, [menuNodesProp])\n\n const rootNodes: DocumentFieldActionNode[] = useMemo(\n () => [\n ...(menuNodes.length\n ? ([\n {\n type: 'group',\n children: menuNodes,\n icon: EllipsisHorizontalIcon,\n title: 'Field actions',\n },\n ] satisfies DocumentFieldActionNode[])\n : []),\n ...buttonNodes,\n ],\n [buttonNodes, menuNodes],\n )\n\n return (\n <>\n {rootNodes.map((node, idx) => (\n <RootFieldActionMenuNode\n // oxlint-disable-next-line no-array-index-key\n key={idx}\n node={node}\n onOpen={handleOpen}\n onClose={handleClose}\n open={open}\n />\n ))}\n </>\n )\n})\n\nconst RootFieldActionMenuNode = memo(function RootFieldActionMenuNode(props: {\n node: DocumentFieldActionNode\n onOpen: () => void\n onClose: () => void\n open: boolean\n}) {\n const {node, onOpen, onClose, open} = props\n\n if (node.type === 'divider') {\n return <Card borderLeft flex=\"none\" />\n }\n\n if (node.type === 'action') {\n return (\n <Button\n icon={node.icon}\n mode=\"bleed\"\n onClick={node.onAction}\n tooltipProps={{\n ...STATUS_BUTTON_TOOLTIP_PROPS,\n content: node.title,\n }}\n />\n )\n }\n\n return <RootFieldActionMenuGroup node={node} onOpen={onOpen} onClose={onClose} open={open} />\n})\n\nconst ROOT_MENU_BUTTON_POPOVER_PROPS: MenuButtonProps['popover'] = {\n constrainSize: true,\n placement: 'right',\n portal: true,\n fallbackPlacements: ['top', 'bottom'],\n}\n\nfunction RootFieldActionMenuGroup(props: {\n node: DocumentFieldActionGroup\n onOpen: () => void\n onClose: () => void\n open: boolean\n}) {\n const {node, onOpen, onClose, open} = props\n const {title} = useI18nText(node)\n\n // Prevent the browser's default focus-and-scroll behaviour on pointer down.\n // Without this, clicking the overflow menu button while another field (possibly\n // far away) holds focus causes the browser to scroll the document as it shifts\n // focus, resulting in an unexpected jump to the top of the form.\n const handlePointerDown = useCallback((event: PointerEvent) => {\n event.preventDefault()\n }, [])\n\n return (\n <MenuButton\n button={\n <Button\n aria-label={open ? undefined : title}\n data-testid=\"field-actions-trigger\"\n icon={node.icon}\n mode=\"bleed\"\n onPointerDown={handlePointerDown}\n tabIndex={0}\n tooltipProps={{\n ...STATUS_BUTTON_TOOLTIP_PROPS,\n content: node.title,\n }}\n />\n }\n id={useId()}\n menu={\n <Menu>\n {node.children.map((action, idx) => {\n return (\n <FieldActionMenuNode\n // oxlint-disable-next-line no-array-index-key\n key={idx}\n action={action}\n isFirst={idx === 0}\n prevIsGroup={node.children[idx - 1]?.type === 'group'}\n />\n )\n })}\n </Menu>\n }\n onOpen={onOpen}\n onClose={onClose}\n popover={ROOT_MENU_BUTTON_POPOVER_PROPS}\n />\n )\n}\n","import {Box, Card, Flex} from '@sanity/ui'\nimport {type ReactNode, useCallback, useEffect, useMemo, useState} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {TooltipDelayGroupProvider} from '../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {type DocumentFieldActionNode} from '../../../config/document/fieldActions/types'\nimport {FieldPresence} from '../../../presence/FieldPresence'\nimport {type FormNodePresence} from '../../../presence/types'\nimport {calcAvatarStackWidth} from '../../../presence/utils'\nimport {FieldActionMenu} from '../../field/actions/FieldActionMenu'\nimport {type FieldCommentsProps} from '../../types/fieldProps'\n\nconst Root = styled(Flex)<{\n $floatingCardWidth: number\n $slotWidth: number\n $floatingCardVisible: boolean\n}>(({theme, $floatingCardWidth, $slotWidth, $floatingCardVisible}) => {\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n const {space} = theme.sanity\n return css`\n /* Prevent buttons from taking up extra vertical space */\n line-height: 1;\n width: 100%;\n /* For floating actions menu */\n position: relative;\n\n [data-ui='PresenceBox'] {\n position: absolute;\n bottom: 0;\n right: ${$slotWidth + $floatingCardWidth + space[1]}px;\n }\n @media (hover: hover) {\n // If hover is supported, we hide the floating card by default, so only add space for it when it's visible.\n [data-ui='PresenceBox'] {\n position: absolute;\n bottom: 0;\n right: ${$slotWidth + ($floatingCardVisible ? $floatingCardWidth : 0) + space[1]}px;\n }\n }\n `\n})\n\nconst ContentBox = styled(Box)<{\n $presenceMaxWidth: number\n}>(({theme, $presenceMaxWidth}) => {\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n const {space} = theme.sanity\n return css`\n max-width: calc(100% - ${$presenceMaxWidth + space[1]}px);\n min-width: 75%;\n `\n})\n\nconst SlotBox = styled(Box)<{\n $right: number\n $fieldActionsVisible: boolean\n}>(({theme, $right, $fieldActionsVisible}) => {\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n const {space} = theme.sanity\n const right = $fieldActionsVisible ? $right + space[1] : $right\n return css`\n position: absolute;\n bottom: 0;\n right: ${right}px;\n `\n})\n\nconst FieldActionsFloatingCard = styled(Card)`\n align-items: center;\n bottom: 0;\n position: absolute;\n right: 0;\n transition: opacity 150ms ease;\n line-height: 1;\n\n @media (hover: hover) {\n // If hover is supported, we hide the floating card by default\n // and only show it when it has focus within or when the field is hovered or focused.\n opacity: 0;\n pointer-events: none;\n\n [data-ui='FieldActionsFlex'] {\n opacity: 0;\n }\n\n &[data-actions-visible='false']:not(:focus-within) {\n // Remove the shadow when the field actions are not visible\n box-shadow: none;\n\n // Since the field actions always will be present in the DOM (to make them focusable) –\n // they will always affect the width of the floating card, even when they are not visible.\n // Therefore, we remove the background of the floating card when the field actions are not visible.\n background: transparent;\n }\n\n // Remove the shadow when the field has comments but no actions\n &[data-has-comments='true']:not([data-has-actions='true']) {\n box-shadow: none;\n }\n\n // Show the floating card when it has focus within (ie when field actions are focused).\n &:focus-within {\n opacity: 1;\n pointer-events: auto;\n width: max-content;\n\n [data-ui='FieldActionsFlex'] {\n opacity: 1;\n pointer-events: auto;\n width: max-content;\n }\n }\n }\n\n &[data-visible='true'] {\n opacity: 1;\n pointer-events: auto;\n width: max-content;\n }\n\n &[data-actions-visible='true'] {\n [data-ui='FieldActionsFlex'] {\n opacity: 1;\n pointer-events: auto;\n width: max-content;\n }\n }\n`\n\nconst FieldActionsFlex = styled(Flex)`\n gap: inherit;\n transition: opacity 150ms ease;\n`\n\nconst MAX_AVATARS = 4\n\ninterface FormFieldBaseHeaderProps {\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n __internal_comments?: FieldCommentsProps // DO NOT USE\n __internal_slot?: ReactNode // ONLY USED BY AI ASSIST PLUGIN\n actions?: DocumentFieldActionNode[]\n content: ReactNode\n fieldFocused: boolean\n inputId?: string\n fieldHovered: boolean\n presence?: FormNodePresence[]\n}\n\nexport function FormFieldBaseHeader(props: FormFieldBaseHeaderProps) {\n const {\n __internal_comments: comments,\n __internal_slot: slot,\n actions,\n content,\n fieldFocused,\n fieldHovered,\n presence,\n inputId,\n } = props\n const [focused, setFocused] = useState<boolean>(false)\n // State for if an actions menu is open\n const [menuOpen, setMenuOpen] = useState<boolean>(false)\n\n // States for floating card element and its width\n const [floatingCardElement, setFloatingCardElement] = useState<HTMLDivElement | null>(null)\n const [floatingCardWidth, setFloatingCardWidth] = useState<number>(0)\n\n // States for slot element and its width\n const [slotElement, setSlotElement] = useState<HTMLDivElement | null>(null)\n const [slotWidth, setSlotWidth] = useState<number>(0)\n\n // Extract comment related data with default values\n const {\n hasComments = false,\n button: commentButton = null,\n isAddingComment = false,\n } = comments || {}\n // Determine if actions exist and if field actions should be shown\n const hasActions = actions && actions.length > 0\n const showFieldActions = fieldFocused || fieldHovered || menuOpen || isAddingComment\n\n // Determine if there's a comment button or actions to show.\n // We check for `comments.button` since that's the visual element that should be\n // used for comments. If no button is provided, we don't have anything to show for comments.\n const hasCommentsButtonOrActions = comments?.button || hasActions\n\n // Determine if floating card with actions should be shown\n const shouldShowFloatingCard = focused || showFieldActions || hasComments\n\n const handleSetFloatingCardElementWidth = useCallback(() => {\n if (floatingCardElement) {\n const {width} = floatingCardElement.getBoundingClientRect()\n setFloatingCardWidth(width || 0)\n }\n }, [floatingCardElement])\n\n // When a focus or blur event occurs on the floating card, we need to recalculate its width.\n // This is because presence should be positioned relative to the floating card.\n // We need this because we don't conditionally render the floating card and rely on CSS to\n // show/hide it, and therefore the width calculation won't be triggered when the card is shown or hidden.\n const handleFocusCapture = useCallback(() => {\n handleSetFloatingCardElementWidth()\n setFocused(true)\n }, [handleSetFloatingCardElementWidth])\n\n const handleBlurCapture = useCallback(() => {\n handleSetFloatingCardElementWidth()\n setFocused(false)\n }, [handleSetFloatingCardElementWidth])\n\n // Calculate floating card's width\n useEffect(() => {\n // oxlint-disable-next-line react/react-compiler\n handleSetFloatingCardElementWidth()\n }, [handleSetFloatingCardElementWidth, showFieldActions])\n\n // Calculate slot element's width\n useEffect(() => {\n if (slotElement) {\n const {width} = slotElement.getBoundingClientRect()\n // oxlint-disable-next-line react/react-compiler\n setSlotWidth(width || 0)\n }\n }, [slotElement])\n\n // Construct the slot element if slot is provided\n const slotEl = useMemo(() => {\n if (!slot) return null\n\n return (\n <SlotBox\n $fieldActionsVisible={Boolean(showFieldActions)}\n $right={floatingCardWidth}\n ref={setSlotElement}\n >\n {slot}\n </SlotBox>\n )\n }, [floatingCardWidth, showFieldActions, slot])\n\n return (\n <Root\n align=\"flex-end\"\n justify=\"space-between\"\n $floatingCardVisible={shouldShowFloatingCard}\n $floatingCardWidth={floatingCardWidth}\n $slotWidth={slotWidth}\n >\n <ContentBox\n data-ui=\"fieldHeaderContentBox\"\n flex={1}\n paddingY={2}\n $presenceMaxWidth={calcAvatarStackWidth(MAX_AVATARS)}\n >\n {content}\n </ContentBox>\n\n {presence && presence.length > 0 && (\n <Box data-ui=\"PresenceBox\" flex=\"none\">\n <FieldPresence maxAvatars={MAX_AVATARS} presence={presence} />\n </Box>\n )}\n\n {slotEl}\n\n {(hasCommentsButtonOrActions || hasComments) && (\n <TooltipDelayGroupProvider>\n <FieldActionsFloatingCard\n data-actions-visible={showFieldActions ? 'true' : 'false'}\n data-has-actions={hasActions ? 'true' : 'false'}\n data-has-comments={hasComments ? 'true' : 'false'}\n data-visible={shouldShowFloatingCard ? 'true' : 'false'}\n display=\"flex\"\n onBlurCapture={handleBlurCapture}\n onFocusCapture={handleFocusCapture}\n ref={setFloatingCardElement}\n sizing=\"border\"\n >\n {hasActions && (\n <FieldActionsFlex\n align=\"center\"\n data-ui=\"FieldActionsFlex\"\n data-testid={inputId ? `field-actions-menu-${inputId}` : `field-actions-menu`}\n >\n <FieldActionMenu nodes={actions} onMenuOpenChange={setMenuOpen} />\n </FieldActionsFlex>\n )}\n\n {commentButton}\n </FieldActionsFloatingCard>\n </TooltipDelayGroupProvider>\n )}\n </Root>\n )\n}\n","import {type DeprecatedProperty, type FormNodeValidation} from '@sanity/types'\nimport {Badge, Box, Flex, Stack, Text} from '@sanity/ui'\nimport {memo, type ReactNode} from 'react'\nimport {styled} from 'styled-components'\n\nimport {TextWithTone} from '../../../components/textWithTone/TextWithTone'\nimport {useTranslation} from '../../../i18n/hooks/useTranslation'\nimport {createDescriptionId} from '../../members/common/createDescriptionId'\nimport {FormFieldValidationStatus} from './FormFieldValidationStatus'\n\nconst LabelSuffix = styled(Flex)`\n /*\n * Prevent the block size of appended elements (such as the deprecated field badge) affecting\n * the intrinsic block size of the label, while still allowing the inline size (width) to\n * expand naturally to fit its content.\n */\n height: 0;\n overflow: visible;\n`\n\n/** @internal */\nexport interface FormFieldHeaderTextProps {\n /**\n *\n * @hidden\n * @beta\n */\n validation?: FormNodeValidation[]\n description?: ReactNode\n /**\n * The unique ID used to target the actual input element\n */\n inputId?: string\n title?: ReactNode\n deprecated?: DeprecatedProperty\n /**\n * Additional content to be rendered alongside the title\n */\n suffix?: ReactNode\n}\n\nconst EMPTY_ARRAY: never[] = []\n\n/** @internal */\nexport const FormFieldHeaderText = memo(function FormFieldHeaderText(\n props: FormFieldHeaderTextProps,\n) {\n const {description, inputId, title, deprecated, validation = EMPTY_ARRAY, suffix} = props\n const {t} = useTranslation()\n const hasValidations = validation.length > 0\n\n return (\n <Stack gap={3}>\n <Flex align=\"center\" paddingY={1}>\n <Flex align=\"center\">\n <Text as=\"label\" htmlFor={inputId} weight=\"medium\" size={1}>\n {title || (\n <span style={{color: 'var(--card-muted-fg-color)'}}>\n {t('form.field.untitled-field-label')}\n </span>\n )}\n </Text>\n </Flex>\n\n {suffix && (\n <Box marginLeft={2} data-testid=\"form-field-suffix\">\n {suffix}\n </Box>\n )}\n\n {(deprecated || hasValidations) && (\n <LabelSuffix align=\"center\">\n {deprecated && (\n <Box marginLeft={2}>\n <Badge data-testid={`deprecated-badge-${title}`} tone=\"caution\">\n {t('form.field.deprecated-label')}\n </Badge>\n </Box>\n )}\n\n {hasValidations && (\n <Box marginLeft={2}>\n <FormFieldValidationStatus\n data-testid={`input-validation-icon-error`}\n fontSize={1}\n placement=\"top\"\n validation={validation}\n />\n </Box>\n )}\n </LabelSuffix>\n )}\n </Flex>\n\n {deprecated && (\n <TextWithTone data-testid={`deprecated-message-${title}`} tone=\"caution\" size={1}>\n {deprecated.reason}\n </TextWithTone>\n )}\n\n {description && (\n <Text muted size={1} id={createDescriptionId(inputId, description)}>\n {description}\n </Text>\n )}\n </Stack>\n )\n})\n","import {EarthAmericasIcon} from '@sanity/icons/EarthAmericas'\nimport {Box, Inline, Text} from '@sanity/ui'\nimport noop from 'lodash-es/noop.js'\nimport {type ReactNode} from 'react'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport useDialogTimeZone from '../../../hooks/useDialogTimeZone'\nimport {type TimeZoneScope, useTimeZone} from '../../../hooks/useTimeZone'\n\nexport interface TimeZoneButtonZoneProps {\n useElementQueries?: boolean\n timeZoneScope: TimeZoneScope\n allowTimeZoneSwitch?: boolean\n tooltipContent: ReactNode\n}\n\nexport const TimeZoneButton = (props: TimeZoneButtonZoneProps) => {\n const {useElementQueries, timeZoneScope, allowTimeZoneSwitch = true, tooltipContent} = props\n const {timeZone} = useTimeZone(timeZoneScope)\n const {DialogTimeZone, dialogProps, dialogTimeZoneShow} = useDialogTimeZone(timeZoneScope)\n\n return (\n <>\n {/* Dialog */}\n {DialogTimeZone && <DialogTimeZone {...dialogProps} />}\n\n <Tooltip\n content={\n <Box flex={1} padding={1}>\n <Text size={1}>{tooltipContent}</Text>\n </Box>\n }\n portal\n >\n <div>\n {/*\n If `useElementQueries` is enabled, dates will be conditionally toggled at different element\n breakpoints - provided this `<TimeZoneButtonZone>` is wrapped in a `<TimeZoneButtonZoneElementQuery>` component.\n */}\n {useElementQueries ? (\n <>\n <Box className=\"button-small\">\n {allowTimeZoneSwitch ? (\n <Button\n data-testid=\"timezone-button\"\n icon={EarthAmericasIcon}\n mode=\"bleed\"\n readOnly={!allowTimeZoneSwitch}\n onClick={allowTimeZoneSwitch ? dialogTimeZoneShow : noop}\n text={`${timeZone.city}`}\n />\n ) : (\n <Inline gap={2} padding={2}>\n <Text weight={'medium'} size={1}>\n <EarthAmericasIcon />\n </Text>\n <Text weight={'medium'} size={1}>{`${timeZone.city}`}</Text>\n </Inline>\n )}\n </Box>\n <Box className=\"button-large\">\n {allowTimeZoneSwitch ? (\n <Button\n data-testid=\"timezone-button\"\n icon={EarthAmericasIcon}\n mode=\"bleed\"\n readOnly={!allowTimeZoneSwitch}\n onClick={allowTimeZoneSwitch ? dialogTimeZoneShow : noop}\n text={`${timeZone.alternativeName} (${timeZone.namePretty})`}\n />\n ) : (\n <Inline gap={2} padding={2}>\n <Text weight={'medium'} size={1}>\n <EarthAmericasIcon />\n </Text>\n <Text\n weight={'medium'}\n size={1}\n >{`${timeZone.alternativeName} (${timeZone.namePretty})`}</Text>\n </Inline>\n )}\n </Box>\n </>\n ) : (\n <>\n {allowTimeZoneSwitch ? (\n <Button\n icon={EarthAmericasIcon}\n mode=\"bleed\"\n readOnly={!allowTimeZoneSwitch}\n onClick={allowTimeZoneSwitch ? dialogTimeZoneShow : noop}\n text={`${timeZone.alternativeName} (${timeZone.namePretty})`}\n />\n ) : (\n <Inline gap={2} padding={2}>\n <Text weight={'medium'} size={1}>\n <EarthAmericasIcon />\n </Text>\n <Text\n weight={'medium'}\n size={1}\n >{`${timeZone.alternativeName} (${timeZone.namePretty})`}</Text>\n </Inline>\n )}\n </>\n )}\n </div>\n </Tooltip>\n </>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { n as Tooltip, t as Button$1 } from "./Button-CGZ3ETwD.js";
|
|
2
2
|
import { n as MenuButton$1, t as MenuItem$1 } from "./MenuItem-D0rtIQmn.js";
|
|
3
|
-
import { c as useWorkspace } from "./studioClient-
|
|
3
|
+
import { c as useWorkspace } from "./studioClient-BpYJ_yYC.js";
|
|
4
4
|
import { t as useTranslation } from "./useTranslation-Cqs6Itwv.js";
|
|
5
|
-
import { l as TimeZoneButtonElementQuery, o as ErrorCallout, t as ScheduleItem } from "./scheduleItem-
|
|
6
|
-
import { t as TimeZoneButton } from "./TimeZoneButton-
|
|
7
|
-
import { t as LoadingBlock } from "./LoadingBlock-
|
|
5
|
+
import { l as TimeZoneButtonElementQuery, o as ErrorCallout, t as ScheduleItem } from "./scheduleItem-9PFIH7_h.js";
|
|
6
|
+
import { t as TimeZoneButton } from "./TimeZoneButton-TmrFye13.js";
|
|
7
|
+
import { t as LoadingBlock } from "./LoadingBlock-DPTVJ58M.js";
|
|
8
8
|
import { t as UpsellPanel } from "./UpsellPanel-ZBO1OwPf.js";
|
|
9
9
|
import { t as ContextMenuButton } from "./ContextMenuButton-PNi9pxWs.js";
|
|
10
|
-
import { V as SanityDefaultPreview } from "./useBundleDocuments-
|
|
11
|
-
import { a as useScheduleOperation, d as SCHEDULED_PUBLISHING_TIME_ZONE_SCOPE, g as SCHEDULE_STATE_DICTIONARY, h as SCHEDULE_FILTERS, i as usePollSchedules, p as SCHEDULE_ACTION_DICTIONARY, s as getLastExecuteDate, u as RELEASES_DOCS_URL } from "./validationUtils-
|
|
12
|
-
import { n as useScheduledPublishingEnabled } from "./ScheduledPublishingEnabledProvider-
|
|
13
|
-
import { t as useTimeZone } from "./useTimeZone-
|
|
14
|
-
import { n as useSchedulePublishingUpsell } from "./SchedulePublishingUpsellProvider-
|
|
15
|
-
import { t as RELEASES_SCHEDULED_DRAFTS_INTENT } from "./plugin-
|
|
16
|
-
import { a as useScheduledDraftsEnabled } from "./SingleDocReleaseUpsellProvider-
|
|
17
|
-
import { n as SchedulesProvider, r as useSchedules } from "./schedules-
|
|
18
|
-
import { t as CalendarFilter } from "./CalendarFilter-
|
|
10
|
+
import { V as SanityDefaultPreview } from "./useBundleDocuments-C58ExRpX.js";
|
|
11
|
+
import { a as useScheduleOperation, d as SCHEDULED_PUBLISHING_TIME_ZONE_SCOPE, g as SCHEDULE_STATE_DICTIONARY, h as SCHEDULE_FILTERS, i as usePollSchedules, p as SCHEDULE_ACTION_DICTIONARY, s as getLastExecuteDate, u as RELEASES_DOCS_URL } from "./validationUtils-B9CLn9F7.js";
|
|
12
|
+
import { n as useScheduledPublishingEnabled } from "./ScheduledPublishingEnabledProvider-BcWaBJw5.js";
|
|
13
|
+
import { t as useTimeZone } from "./useTimeZone-Da8WK1q-.js";
|
|
14
|
+
import { n as useSchedulePublishingUpsell } from "./SchedulePublishingUpsellProvider-DQqIZsCc.js";
|
|
15
|
+
import { t as RELEASES_SCHEDULED_DRAFTS_INTENT } from "./plugin-DRuKGgrO.js";
|
|
16
|
+
import { a as useScheduledDraftsEnabled } from "./SingleDocReleaseUpsellProvider-YDBCGrHT.js";
|
|
17
|
+
import { n as SchedulesProvider, r as useSchedules } from "./schedules-DniNrpFJ.js";
|
|
18
|
+
import { t as CalendarFilter } from "./CalendarFilter-DYbHmp_x.js";
|
|
19
19
|
import { useEffect, useMemo, useRef, useState } from "react";
|
|
20
20
|
import { c } from "react/compiler-runtime";
|
|
21
21
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1220,4 +1220,4 @@ function useFallbackNavigation(router, filter, selectedDate) {
|
|
|
1220
1220
|
}
|
|
1221
1221
|
export { Tool as default };
|
|
1222
1222
|
|
|
1223
|
-
//# sourceMappingURL=Tool-
|
|
1223
|
+
//# sourceMappingURL=Tool-tpq9K4o7.js.map
|