sanity 6.7.0 → 6.8.0-next.13
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-DGvQRg0M.js → AddonDatasetProvider-j4tCiH3e.js} +2 -2
- package/lib/{AddonDatasetProvider-DGvQRg0M.js.map → AddonDatasetProvider-j4tCiH3e.js.map} +1 -1
- package/lib/{CalendarFilter-Cz5HCFLA.js → CalendarFilter-D7qsXo8l.js} +3 -3
- package/lib/{CalendarFilter-Cz5HCFLA.js.map → CalendarFilter-D7qsXo8l.js.map} +1 -1
- package/lib/{CommentsDocumentLayout-C8D--w7w.js → CommentsDocumentLayout-DdqM0Xva.js} +2 -2
- package/lib/{CommentsDocumentLayout-C8D--w7w.js.map → CommentsDocumentLayout-DdqM0Xva.js.map} +1 -1
- package/lib/{CommentsField-01fndj6n.js → CommentsField-boIeJpD6.js} +3 -3
- package/lib/{CommentsField-01fndj6n.js.map → CommentsField-boIeJpD6.js.map} +1 -1
- package/lib/{CommentsInput-DEXCCEGP.js → CommentsInput-CXUjX47s.js} +5 -5
- package/lib/{CommentsInput-DEXCCEGP.js.map → CommentsInput-CXUjX47s.js.map} +1 -1
- package/lib/{CommentsInspector-DBY7KD3P.js → CommentsInspector-DnhaBRvP.js} +5 -5
- package/lib/{CommentsInspector-DBY7KD3P.js.map → CommentsInspector-DnhaBRvP.js.map} +1 -1
- package/lib/{CommentsListItem-BEGOSIY0.js → CommentsListItem-Dn3MXuMi.js} +3 -3
- package/lib/{CommentsListItem-BEGOSIY0.js.map → CommentsListItem-Dn3MXuMi.js.map} +1 -1
- package/lib/{CommentsSelectedPathProvider-Clvemp0W.js → CommentsSelectedPathProvider-jbvY-MJ0.js} +3 -3
- package/lib/{CommentsSelectedPathProvider-Clvemp0W.js.map → CommentsSelectedPathProvider-jbvY-MJ0.js.map} +1 -1
- package/lib/{CommentsStudioLayout-D1kFwOni.js → CommentsStudioLayout-jxq4yKzW.js} +4 -4
- package/lib/{CommentsStudioLayout-D1kFwOni.js.map → CommentsStudioLayout-jxq4yKzW.js.map} +1 -1
- package/lib/{PaneContainer-QCEhEyzd.js → PaneContainer-BtFBEWLZ.js} +5 -6
- package/lib/PaneContainer-BtFBEWLZ.js.map +1 -0
- package/lib/{PresentationToolGrantsCheck-CxqDuu8I.js → PresentationToolGrantsCheck-CITNu5DG.js} +14 -6
- package/lib/PresentationToolGrantsCheck-CITNu5DG.js.map +1 -0
- package/lib/{ReleasesMetadataProvider-DH9ZPiY1.js → ReleasesMetadataProvider-16P_iZKZ.js} +2 -2
- package/lib/{ReleasesMetadataProvider-DH9ZPiY1.js.map → ReleasesMetadataProvider-16P_iZKZ.js.map} +1 -1
- package/lib/{ReleasesNav-DIkvTixA.js → ReleasesNav-BzrUhOoJ.js} +59 -19
- package/lib/ReleasesNav-BzrUhOoJ.js.map +1 -0
- package/lib/{ReleasesStudioLayout-KuVpj5_v.js → ReleasesStudioLayout-DEWAqdmR.js} +8 -8
- package/lib/{ReleasesStudioLayout-KuVpj5_v.js.map → ReleasesStudioLayout-DEWAqdmR.js.map} +1 -1
- package/lib/{ReleasesTool-DN5FBLWz.js → ReleasesTool-DJhN0bPA.js} +14 -14
- package/lib/{ReleasesTool-DN5FBLWz.js.map → ReleasesTool-DJhN0bPA.js.map} +1 -1
- package/lib/{SchedulePublishingStudioLayout-B5K8nqiH.js → SchedulePublishingStudioLayout-B3d-Pcp4.js} +3 -3
- package/lib/{SchedulePublishingStudioLayout-B5K8nqiH.js.map → SchedulePublishingStudioLayout-B3d-Pcp4.js.map} +1 -1
- package/lib/{SchedulePublishingUpsellProvider-CSMocuXk.js → SchedulePublishingUpsellProvider-tHnK31n0.js} +2 -2
- package/lib/{SchedulePublishingUpsellProvider-CSMocuXk.js.map → SchedulePublishingUpsellProvider-tHnK31n0.js.map} +1 -1
- package/lib/{ScheduledPublishingEnabledProvider-DGpt_kKu.js → ScheduledPublishingEnabledProvider-CzQXgTsk.js} +3 -3
- package/lib/{ScheduledPublishingEnabledProvider-DGpt_kKu.js.map → ScheduledPublishingEnabledProvider-CzQXgTsk.js.map} +1 -1
- package/lib/{SearchProvider-Iy4-6hcz.js → SearchProvider-D_Y0UV_W.js} +24 -24
- package/lib/SearchProvider-D_Y0UV_W.js.map +1 -0
- package/lib/{SingleDocReleaseLayout-CRJT6Vu9.js → SingleDocReleaseLayout-BCJmxy5s.js} +2 -2
- package/lib/{SingleDocReleaseLayout-CRJT6Vu9.js.map → SingleDocReleaseLayout-BCJmxy5s.js.map} +1 -1
- package/lib/{SingleDocReleaseUpsellProvider-BRUYOryN.js → SingleDocReleaseUpsellProvider-CpUQPbkP.js} +4 -4
- package/lib/{SingleDocReleaseUpsellProvider-BRUYOryN.js.map → SingleDocReleaseUpsellProvider-CpUQPbkP.js.map} +1 -1
- package/lib/{TasksStudioActiveToolLayout-BUnLMMYi.js → TasksStudioActiveToolLayout-uoPm3E0Y.js} +11 -11
- package/lib/{TasksStudioActiveToolLayout-BUnLMMYi.js.map → TasksStudioActiveToolLayout-uoPm3E0Y.js.map} +1 -1
- package/lib/{TasksStudioLayout-ClMZ9sWa.js → TasksStudioLayout-CFRlrtHs.js} +5 -5
- package/lib/{TasksStudioLayout-ClMZ9sWa.js.map → TasksStudioLayout-CFRlrtHs.js.map} +1 -1
- package/lib/{Tool-CGMUCSOs.js → Tool-CjZmRZ_L.js} +12 -12
- package/lib/{Tool-CGMUCSOs.js.map → Tool-CjZmRZ_L.js.map} +1 -1
- package/lib/{UnpublishVersionDialog-DnGH3SLI.js → UnpublishVersionDialog-dJM5TcRn.js} +4 -4
- package/lib/{UnpublishVersionDialog-DnGH3SLI.js.map → UnpublishVersionDialog-dJM5TcRn.js.map} +1 -1
- package/lib/{UpsellDialog-Dcjf8OuF.js → UpsellDialog-2urLJ5H5.js} +2 -2
- package/lib/{UpsellDialog-Dcjf8OuF.js.map → UpsellDialog-2urLJ5H5.js.map} +1 -1
- package/lib/{VariantsStudioNavbar-D8L9UWqH.js → VariantsStudioNavbar-BbpP-SV6.js} +7 -27
- package/lib/VariantsStudioNavbar-BbpP-SV6.js.map +1 -0
- package/lib/{VariantsTool-JHeKZHcr.js → VariantsTool-BpDy94Yo.js} +7 -7
- package/lib/{VariantsTool-JHeKZHcr.js.map → VariantsTool-BpDy94Yo.js.map} +1 -1
- package/lib/{WorkspaceLoader-CtnP9tNF.js → WorkspaceLoader-COkgKUSq.js} +25 -25
- package/lib/{WorkspaceLoader-CtnP9tNF.js.map → WorkspaceLoader-COkgKUSq.js.map} +1 -1
- package/lib/_createContext.js +1 -1
- package/lib/_singletons.d.ts +1 -1
- package/lib/{buildTextSelectionFromFragment-k_rh1KNa.js → buildTextSelectionFromFragment-DkScjl9L.js} +3 -3
- package/lib/{buildTextSelectionFromFragment-k_rh1KNa.js.map → buildTextSelectionFromFragment-DkScjl9L.js.map} +1 -1
- package/lib/{datastores-X2znh4zT.js → datastores-BKRF0Q9p.js} +16 -5
- package/lib/datastores-BKRF0Q9p.js.map +1 -0
- package/lib/desk.d.ts +1 -1
- package/lib/desk.js +2 -2
- package/lib/{index-Z0jxEn8U.d.ts → index-CnGXln7W.d.ts} +62 -12
- package/lib/index.d.ts +2 -2
- package/lib/index.js +640 -257
- package/lib/index.js.map +1 -1
- package/lib/{inputResolver-CwZU1DyA.js → inputResolver-BxWoGLcP.js} +4 -4
- package/lib/{inputResolver-CwZU1DyA.js.map → inputResolver-BxWoGLcP.js.map} +1 -1
- package/lib/{list-CQ5wYKGN.js → list-BqCyKicl.js} +2 -2
- package/lib/{list-CQ5wYKGN.js.map → list-BqCyKicl.js.map} +1 -1
- package/lib/{navigation.telemetry-Poh1ANIW.js → navigation.telemetry-BdALj7hP.js} +7 -7
- package/lib/{navigation.telemetry-Poh1ANIW.js.map → navigation.telemetry-BdALj7hP.js.map} +1 -1
- package/lib/pane-8ExVl8qY.js +2 -0
- package/lib/pane-wKH9j_H3.js +2 -0
- package/lib/{plugin-CNhX_Tb7.js → plugin-BQpcUNhw.js} +6 -6
- package/lib/{plugin-CNhX_Tb7.js.map → plugin-BQpcUNhw.js.map} +1 -1
- package/lib/{plugin-CXnu--df.js → plugin-CWQXnaVS.js} +5 -5
- package/lib/{plugin-CXnu--df.js.map → plugin-CWQXnaVS.js.map} +1 -1
- package/lib/{plugin-WOJhZc9d.js → plugin-DbF85jWy.js} +4 -4
- package/lib/{plugin-WOJhZc9d.js.map → plugin-DbF85jWy.js.map} +1 -1
- package/lib/{plugin-C220AR82.js → plugin-QIqhqpZS.js} +3 -3
- package/lib/{plugin-C220AR82.js.map → plugin-QIqhqpZS.js.map} +1 -1
- package/lib/presentation.js +1 -1
- package/lib/{scheduleItem-DvRHEFEW.js → scheduleItem-CBN6T3h1.js} +8 -8
- package/lib/{scheduleItem-DvRHEFEW.js.map → scheduleItem-CBN6T3h1.js.map} +1 -1
- package/lib/{schedules-pdE6eEGn.js → schedules-ORlte5Aq.js} +3 -3
- package/lib/{schedules-pdE6eEGn.js.map → schedules-ORlte5Aq.js.map} +1 -1
- package/lib/structure.js +2 -2
- package/lib/{structureTool-BwC_ba3R.js → structureTool-CB6Y6xfI.js} +6 -6
- package/lib/{structureTool-BwC_ba3R.js.map → structureTool-CB6Y6xfI.js.map} +1 -1
- package/lib/{structureTool-BRYk4qG7.js → structureTool-CupaRvVm.js} +68 -68
- package/lib/structureTool-CupaRvVm.js.map +1 -0
- package/lib/{studioClient--dm-G_7a.js → studioClient-CJOrhmsT.js} +2 -2
- package/lib/{studioClient--dm-G_7a.js.map → studioClient-CJOrhmsT.js.map} +1 -1
- package/lib/{useBundleDocuments-oAq5rEkm.js → useBundleDocuments-Bhs3f0QF.js} +15 -13
- package/lib/useBundleDocuments-Bhs3f0QF.js.map +1 -0
- package/lib/{useComments-DYQ9xguT.js → useComments-b_kg13ZL.js} +2 -2
- package/lib/{useComments-DYQ9xguT.js.map → useComments-b_kg13ZL.js.map} +1 -1
- package/lib/{useCommentsTelemetry-BoYJL3eG.js → useCommentsTelemetry-BFtot5ib.js} +3 -3
- package/lib/{useCommentsTelemetry-BoYJL3eG.js.map → useCommentsTelemetry-BFtot5ib.js.map} +1 -1
- package/lib/{useDocumentPreviewValues-v43xdQrb.js → useDocumentPreviewValues-Cp12V_zK.js} +3 -3
- package/lib/{useDocumentPreviewValues-v43xdQrb.js.map → useDocumentPreviewValues-Cp12V_zK.js.map} +1 -1
- package/lib/{useFeatureEnabled-4gSsu40G.js → useFeatureEnabled-CKA9SpR4.js} +2 -2
- package/lib/{useFeatureEnabled-4gSsu40G.js.map → useFeatureEnabled-CKA9SpR4.js.map} +1 -1
- package/lib/{useFieldActions-BKWh56GI.js → useFieldActions-BT0dmvAk.js} +2 -2
- package/lib/{useFieldActions-BKWh56GI.js.map → useFieldActions-BT0dmvAk.js.map} +1 -1
- package/lib/{useReleasesToolAvailable-5DSPa2Gx.js → useReleasesToolAvailable-BtNPK1ns.js} +3 -3
- package/lib/{useReleasesToolAvailable-5DSPa2Gx.js.map → useReleasesToolAvailable-BtNPK1ns.js.map} +1 -1
- package/lib/{useScheduledDraftMenuActions-BxKkDOS8.js → useScheduledDraftMenuActions-Btn2NKF9.js} +38 -21
- package/lib/useScheduledDraftMenuActions-Btn2NKF9.js.map +1 -0
- package/lib/{useSetVariant-C6TkfVCm.js → useSetVariant-D6nDqKeX.js} +3 -3
- package/lib/{useSetVariant-C6TkfVCm.js.map → useSetVariant-D6nDqKeX.js.map} +1 -1
- package/lib/{useStudioUrl-CGakngEM.js → useStudioUrl-DFBaha5x.js} +5 -5
- package/lib/{useStudioUrl-CGakngEM.js.map → useStudioUrl-DFBaha5x.js.map} +1 -1
- package/lib/{useTimeZone-BoKWaSj6.js → useTimeZone-DceoecRg.js} +2 -2
- package/lib/{useTimeZone-BoKWaSj6.js.map → useTimeZone-DceoecRg.js.map} +1 -1
- package/lib/{userComponent-DIoiRgtl.js → userComponent-DBLembOH.js} +2 -2
- package/lib/{userComponent-DIoiRgtl.js.map → userComponent-DBLembOH.js.map} +1 -1
- package/lib/{validationUtils-CX9mO1s1.js → validationUtils-BefUKU_E.js} +4 -4
- package/lib/{validationUtils-CX9mO1s1.js.map → validationUtils-BefUKU_E.js.map} +1 -1
- package/lib/{version-CUL0S-Ix.js → version-D8FgjwBF.js} +2 -2
- package/lib/{version-CUL0S-Ix.js.map → version-D8FgjwBF.js.map} +1 -1
- package/package.json +10 -10
- package/lib/Delay-DjgiAi06.js +0 -21
- package/lib/Delay-DjgiAi06.js.map +0 -1
- package/lib/PaneContainer-QCEhEyzd.js.map +0 -1
- package/lib/PresentationToolGrantsCheck-CxqDuu8I.js.map +0 -1
- package/lib/ReleasesNav-DIkvTixA.js.map +0 -1
- package/lib/SearchProvider-Iy4-6hcz.js.map +0 -1
- package/lib/VariantsStudioNavbar-D8L9UWqH.js.map +0 -1
- package/lib/datastores-X2znh4zT.js.map +0 -1
- package/lib/pane-CoSiSpvR.js +0 -2
- package/lib/pane-ptq8ykm7.js +0 -2
- package/lib/structureTool-BRYk4qG7.js.map +0 -1
- package/lib/useBundleDocuments-oAq5rEkm.js.map +0 -1
- package/lib/useScheduledDraftMenuActions-BxKkDOS8.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PresentationToolGrantsCheck-CITNu5DG.js","names":["FC","memo","useEffect","VisualEditingConnection","PostMessagePreviewsProps","comlink","PostMessageFeatures","props","$","_c","t0","t1","on","_temp","features","optimistic","ActorRefFrom","assign","setup","Context","url","URL","error","Error","visualEditingOverlaysEnabled","Event","type","enabled","presentationMachine","types","context","events","tags","actions","actors","guards","createMachine","id","on","target","states","description","loading","loaded","event","idle","refreshing","reloading","initial","PresentationMachineRef","Serializable","SerializableObject","FunctionComponent","PropsWithChildren","useCallback","useEffect","useMemo","useRef","PresentationSharedStateContext","VisualEditingConnection","PresentationSharedStateContextValue","SharedStateProvider","comlink","props","$","_c","children","t0","Symbol","for","sharedState","t1","t2","on","state","current","t3","key","value","post","setValue","t4","key_0","removeValue","t5","context","t6","FunctionComponent","PropsWithChildren","useContext","useLayoutEffect","PresentationPanelsContext","styled","PanelProps","defaultSize","id","htmlId","minWidth","maxWidth","order","hidden","Root","div","Panel","t0","$","_c","children","t1","t2","t3","undefined","context","Error","getPanelStyle","registerElement","unregisterElement","t4","display","style","t5","t6","type","t7","debounce","args","Parameters","F","ReturnType","fn","timeout","timer","setTimeout","clearTimeout","apply","useMemo","debounce","PanelElement","itemKey","StoredPanelsState","Record","getStoredItem","JSON","parse","localStorage","getItem","setStoredItem","data","setItem","stringify","getKeyForPanels","panels","map","panel","id","order","join","usePanelsStorage","$","_c","get","_temp2","set","_temp3","t0","Symbol","for","setDebounced","panels_0","widths","stored_0","key_0","stored","key","Array","isArray","some","_temp","undefined","val","ElementMap","InitialDragState","PanelElement","PanelsState","ResizerElement","getNextWidth","panel","nextWidth","containerWidth","maxWidth","maxWidthPx","minWidth","minWidthPx","Math","min","max","getNextWidths","delta","panelBefore","panelAfter","panelsState","initialDragState","panels","widths","prevWidths","initialWidths","nextWidths","pivotPanel","index","findIndex","id","width","abs","deltaApplied","deltaRemaining","toPrecision","localeCompare","undefined","numeric","length","getPanelWidth","getContainerRect","containerElement","HTMLDivElement","DOMRect","getBoundingClientRect","getOffset","event","MouseEvent","handleElement","initialOffset","initialHandleElementRect","pointerOffset","clientX","rect","elementOffset","left","isPanel","element","type","isResizer","getSortedElements","elements","Array","from","values","sort","order","a","b","validateWidths","widthsToValidate","total","reduce","map","remainingWidth","toFixed","getDefaultWidths","panelsWithoutWidth","remainingWidthTotal","widthsWithNulls","defaultSize","defaultWidth","CSSProperties","FunctionComponent","PropsWithChildren","useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","PresentationPanelsContext","styled","ElementMap","InitialDragState","PanelElement","PanelsState","ResizerElement","usePanelsStorage","getContainerRect","getDefaultWidths","getNextWidths","getOffset","getPanelWidth","getSortedElements","isPanel","isResizer","validateWidths","PanelsWrapper","div","Panels","t0","$","_c","children","panelsEl","t1","Symbol","for","Map","elements","setElements","t2","filter","panels","t3","widths","setWidths","activeResizer","setActiveResizer","t4","panelsRef","t5","id","flexGrow","pointerEvents","undefined","getPanelStyle","t6","id_0","data","prev","has","next","set","registerElement","t7","id_1","prev_0","next_0","delete","unregisterElement","t8","containerRect","windowWidth","window","innerWidth","dragOffset","panelAfter","panelBefore","resizerIndex","resizerRect","startX","dragRef","t9","id_2","event","elementsArr","index","findIndex","el","resizer","get","resizeElement","current","reduce","acc","el_0","i","acc_0","el_1","i_0","pageX","getBoundingClientRect","startDragging","t10","stopDragging","t11","id_3","event_0","preventDefault","stopPropagation","resizer_0","resizeElement_0","offset","prevWidths","containerWidthPx","width","delta","nextWidths","widthsChanged","some","prevWidth","i_1","drag","t12","t13","storage","t14","t15","widths_0","length","storedWidths","validatedStoredWidths","defaultWidths","t16","t17","setDebounced","t18","t19","resizeObserver","ResizeObserver","panels_0","prevWidths_0","nextWidths_0","widthsChanged_0","prevWidth_0","i_2","observe","disconnect","t20","context","t21","t22","PresentationLayoutTab","getPresentationPanelHtmlId","tab","Card","Flex","TabList","FunctionComponent","useMemo","useTranslation","Tab","presentationLocaleNamespace","getPresentationPanelHtmlId","PresentationLayoutTab","PresentationNarrowTabBarProps","activeTab","navigatorEnabled","onTabChange","tab","PresentationNarrowTabBar","props","$","_c","t","t0","t1","id","label","orderedTabs","t2","t3","push","tabs","map","Box","Card","CardProps","Container","Flex","Inline","Stack","Text","ReactNode","useTranslation","Button","presentationLocaleNamespace","ErrorCard","props","$","_c","children","message","onContinueAnyway","onRetry","restProps","t","t0","t1","retryButton","t2","t3","continueAnywayButton","t4","t5","t6","t7","t8","t9","t10","forwardRef","StateLink","ChildLinkProps","PresentationSearchParams","ChildLink","props","ref","$","_c","childId","childParameters","childType","rest","searchParams","t0","t1","childPayload","t2","t3","t4","Object","entries","id","type","_searchParams","forwardRef","getPublishedId","pathToString","ReferenceChildLinkProps","PresentationSearchParams","ChildLink","ReferenceChildLink","props","ref","$","_c","documentId","documentType","parentRefPath","rest","searchParams","template","t0","t1","params","t2","t3","id","t4","t5","ForwardedRef","forwardRef","getPublishedId","IntentJsonParams","IntentParameters","IntentLink","ChildLinkProps","StructureIntentChildLink","props","ref","$","_c","childId","childParameters","childPayload","children","rest","childType","type","t0","t1","id","mode","intentParams","t2","undefined","params","t3","toString","pathToString","forwardRef","PropsWithChildren","useCallback","useMemo","getPublishedId","useUnique","StateLink","useRouter","BackLinkProps","ChildLinkProps","PaneRouterContext","PaneRouterContextValue","ReferenceChildLinkProps","PresentationNavigate","PresentationParamsContextValue","PresentationSearchParams","StructureDocumentPaneParams","ChildLink","ReferenceChildLink","StructureIntentChildLink","encodeQueryString","params","Record","parts","Object","entries","map","key","value","join","length","resolveQueryStringFromParams","nextParams","allowed","Array","safeNextParams","filter","includes","reduce","obj","undefined","BackLink","props","ref","$","_c","restProps","searchParams","t0","type","_searchParams","t1","PresentationPaneRouterProviderProps","onEditReference","onStructureParams","refs","_id","_type","structureParams","PresentationPaneRouterProvider","children","state","routerState","resolvePathFromState","fromEntries","routerSearchParams","path","qs","createPathWithParams","t2","Symbol","for","t3","t4","t5","ContextChildLink","childLinkProps","childId","childParameters","rest","doc","find","r","t6","ContextBackLink","backLinkProps","ref_0","t7","ContextReferenceChildLink","childLinkProps_0","ref_1","t8","options","id","template","parentRefPath","version","t9","index","groupIndex","siblingIndex","payload","hasGroupSiblings","groupLength","routerPanesState","ParameterizedLink","_temp","closeCurrentAndAfter","_temp2","handleEditReference","replaceCurrent","_temp3","closeCurrent","_temp4","duplicateCurrent","_temp5","setView","_temp6","setParams","setPayload","_temp7","navigateIntent","_temp8","context","t10","intentName","intentParams","options_0","console","warn","viewId","pane_0","pane","Error","Card","Code","Flex","Label","Stack","ErrorInfo","useCallback","useEffect","useMemo","useState","getPublishedId","useTranslation","DocumentListPane","StructureDocumentListPane","ORDER_BY_IDS_PARAM_FIELD","PaneLayout","PaneNode","StructureToolProvider","styled","ErrorBoundary","ErrorCard","presentationLocaleNamespace","PresentationPaneRouterProvider","MainDocumentState","PresentationNavigate","PresentationSearchParams","StructureDocumentPaneParams","usePresentationTool","RootLayout","Root","WrappedCode","deriveOrderedIds","visualOrderPublishedIds","refs","mainDocumentId","_id","_type","seenPublishedIds","Set","candidatePublishedIds","map","ref","reduce","accumulatedIds","publishedId","has","add","push","props","$","_c","mainDocumentState","onEditReference","onStructureParams","searchParams","t","devMode","t0","document","t1","ids","t2","t3","Symbol","for","field","direction","t4","filter","params","defaultOrdering","t5","t6","id","t7","title","key","ns","t8","group","action","i18n","by","t9","t10","t11","options","schemaTypeName","type","menuItemGroups","menuItems","suppressRestoreDefaultMenuItems","pane","errorParams","setErrorParams","t12","handleRetry","structureParams","_temp","t13","t14","t15","t16","error","message","t17","studioPath","Card","Code","Label","Stack","ErrorInfo","Suspense","useCallback","useEffect","useMemo","useState","Path","useTranslation","decodeJsonParams","DocumentPane","StructureDocumentPane","DocumentPaneNode","PaneLayout","styled","ErrorBoundary","ErrorCard","presentationLocaleNamespace","PresentationPaneRouterProvider","PresentationSpinner","PresentationNavigate","PresentationSearchParams","PresentationStateParams","StructureDocumentPaneParams","usePresentationTool","WrappedCode","props","$","_c","documentId","documentType","onFocusPath","onEditReference","onStructureParams","searchParams","structureParams","template","templateParams","t","devMode","t0","t1","id","type","templateParameters","t2","options","title","paneDocumentNode","t3","path","toString","handleFocusPath","errorParams","setErrorParams","t4","Symbol","for","handleRetry","t5","t6","t7","t8","error","message","t9","height","t10","StructureToolProvider","PresentationNavigate","PresentationSearchParams","PresentationStateParams","StructureDocumentPaneParams","DocumentPane","DocumentPanel","props","$","_c","documentId","documentType","onFocusPath","onEditReference","onStructureParams","searchParams","structureParams","t0","SchemaType","useEffect","useState","getPreviewStateObservable","PreviewValue","SanityDocument","useDocumentPreviewStore","usePerspective","PreviewState","isLoading","snapshot","Partial","usePreviewState","documentId","schemaType","$","_c","documentPreviewStore","t0","Symbol","for","preview","setPreview","perspectiveStack","t1","t2","subscription","subscribe","state","unsubscribe","WarningOutlineIcon","Box","Card","Flex","Text","HTMLProps","useCallback","useMemo","getPreviewValueWithFallback","PreviewCard","SanityDefaultPreview","Translate","useSchema","useTranslation","StateLink","presentationLocaleNamespace","MainDocumentState","PresentationNavigate","PresentationSearchParams","PresentationStateParams","StructureDocumentPaneParams","DocumentListPane","DocumentPanel","usePreviewState","ContentEditor","props","$","_c","documentId","documentType","mainDocumentState","onEditReference","onFocusPath","onStructureParams","refs","visualOrderPublishedIds","searchParams","structureParams","t","schema","t0","document","_id","_type","props_0","id","type","_searchParams","Object","entries","MainDocumentLink","t1","get","schemaType","previewState","t2","bb0","t3","snapshot","fallback","t4","t5","t6","preview","Code","path","useState","v4","uuid","usePanelId","id","$","_c","t0","panelId","FunctionComponent","MouseEvent","ReactMouseEvent","useCallback","useContext","useEffect","useLayoutEffect","useRef","PresentationPanelsContext","styled","usePanelId","Resizer","div","$hidden","ResizerInner","$disabled","PanelResizer","id","order","disabled","hidden","t0","$","_c","propId","t1","t2","undefined","el","context","Error","activeResizer","drag","startDragging","stopDragging","registerElement","unregisterElement","isDragging","t3","event","nativeEvent","onMouseDown","t4","e","onDrag","t5","current","blur","onDragStop","t6","t7","setDocumentStyles","bodyStyle","document","body","style","documentStyle","documentElement","cursor","userSelect","removeProperty","resetDocumentStyles","window","addEventListener","removeEventListener","t8","t9","type","t10","t11","Symbol","for","t12","t13","Dispatch","FunctionComponent","PropsWithChildren","SetStateAction","CommentIntentGetter","CommentsIntentProvider","SanityDocument","ContentEditor","DisplayedDocumentBroadcasterProvider","Panel","PanelResizer","getPresentationPanelHtmlId","MainDocumentState","PresentationNavigate","PresentationParamsContextValue","PresentationSearchParams","PresentationStateParams","StructureDocumentPaneParams","PresentationContentProps","documentId","documentsOnPage","_id","_type","visualOrderPublishedIds","documentType","getCommentIntent","hidden","mainDocumentState","onEditReference","onFocusPath","state","Required","onStructureParams","params","resizerHidden","searchParams","setDisplayedDocument","Partial","structureParams","PresentationContentWrapper","props","$","_c","t0","t1","Symbol","for","t2","children","t3","t4","t5","PresentationContent","FunctionComponent","PropsWithChildren","useCallback","PresentationNavigateContext","CombinedSearchParams","PresentationNavigate","PresentationNavigateContextValue","PresentationNavigateOptions","PresentationStateParams","PresentationNavigateProvider","navigate","props","$","_c","children","_navigate","t0","preview","document","obj","params","state","t1","Dispatch","SetStateAction","useEffect","useState","useLocalState","key","defaultValue","$","_c","t0","JSON","parse","localStorage","getItem","stringify","value","setValue","t1","t2","setItem","t3","memo","useCallback","useMemo","Panel","PanelResizer","getPresentationPanelHtmlId","NavigatorOptions","useLocalState","UsePresentationNavigatorProps","unstable_navigator","UsePresentationNavigatorState","navigatorEnabled","toggleNavigator","PresentationNavigatorProps","hidden","resizerHidden","usePresentationNavigator","props","$","_c","navigatorProvided","component","_navigatorEnabled","setNavigatorEnabled","t0","bb0","undefined","t1","_temp","PresentationNavigator","componentProps","Component","t2","t3","enabled","NavigatorComponent","minWidth","maxWidth","navigatorDisabled","Symbol","for","t4","Navigator","FunctionComponent","PropsWithChildren","useMemo","PresentationParamsContext","PresentationParamsContextValue","PresentationParamsProvider","params","props","$","_c","children","context","t0","FunctionComponent","PropsWithChildren","useMemo","PresentationContext","PresentationContextValue","PresentationNavigate","PresentationParamsContextValue","PresentationSearchParams","StructureDocumentPaneParams","PresentationProvider","devMode","name","navigate","params","searchParams","structureParams","props","$","_c","children","t0","context","t1","useSelector","PreviewUrlRef","useAllowPatterns","previewUrlRef","allowPatterns","_temp","Array","isArray","TypeError","state","context","allowOrigins","encodeStudioPerspective","studioPerspective","Array","isArray","join","useId","useReactId","$","_c","id","t0","startsWith","replace","Box","motion","VariantLabels","Variants","forwardRef","ReactEventHandler","useEffect","useImperativeHandle","useRef","createGlobalStyle","styled","useId","IFrameProps","animate","initial","onLoad","HTMLIFrameElement","preventClick","src","variants","style","React","CSSProperties","IFrame","props","forwardedRef","$","_c","ref","t0","Symbol","for","current","t1","t2","instance","handleBlur","document","activeElement","dispatchEvent","MouseEvent","bubbles","cancelable","window","addEventListener","removeEventListener","viewTransitionName","t3","t4","t5","t6","t7","IFrameElement","create","iframe","IFrameOverlay","GlobalViewTransition","LaunchIcon","urlSearchParamPreviewPerspective","urlSearchParamPreviewVariant","Text","useCallback","useMemo","useTranslation","Button","Tooltip","presentationLocaleNamespace","PresentationPerspective","encodeStudioPerspective","PreviewProps","OpenPreviewButton","props","$","_c","openPopup","previewLocationOrigin","previewLocationRoute","perspective","variant","targetOrigin","url","URL","searchParams","set","delete","pathname","search","openPreviewLink","t","t0","event","preventDefault","currentTarget","href","handleOpenPopup","t1","t2","t3","Symbol","for","t4","t5","t6","useSelector","PreviewUrlRef","useTargetOrigin","previewUrlRef","targetOrigin","_temp","TypeError","state","context","previewUrl","origin","ResetIcon","TextInput","TextInputClearButtonProps","ChangeEvent","KeyboardEvent","ReactNode","useCallback","useEffect","useMemo","useRef","useState","useActiveWorkspace","useTranslation","presentationLocaleNamespace","PreviewUrlRef","useAllowPatterns","useTargetOrigin","PreviewLocationInput","props","$","_c","fontSize","t0","onChange","padding","t1","prefix","suffix","value","previewUrlRef","undefined","allowOrigins","targetOrigin","t","basePath","t2","activeWorkspace","inputRef","sessionValue","setSessionValue","customValidity","setCustomValidity","t3","Symbol","for","event","currentTarget","handleChange","t4","event_0","key","absoluteValue","URL","toString","Array","isArray","some","pattern","test","origin","context","reportValidity","startsWith","nextValue","current","blur","handleKeyDown","t5","handleBlur","t6","nextValue_0","handleClear","t7","t8","t9","icon","resetButton","t10","t11","zIndex","t12","t13","ClientPerspective","SyncTag","CopyIcon","ShareIcon","SanityMonogram","fetchSharedAccessQuery","disablePreviewAccessSharing","enablePreviewAccessSharing","setSecretSearchParams","Box","Card","Grid","Menu","MenuDivider","Spinner","Stack","Switch","Text","useToast","AnimatePresence","motion","lazy","Suspense","useCallback","useEffect","useMemo","useState","useClient","useCurrentUser","useTranslation","styled","Button","MenuButton","MenuItem","Tooltip","API_VERSION","presentationLocaleNamespace","encodeStudioPerspective","PreviewProps","QRCodeSVG","SharePreviewMenuProps","canToggleSharePreviewAccess","canUseSharedPreviewAccess","previewLocationRoute","initialUrl","perspective","variant","QrCodeLogoSize","QrCodeLogoPadding","QrSize","StyledSanityMonogram","MotionSpinner","create","MotionText","MotionMonogram","SharePreviewMenu","props","$","_c","t","push","pushToast","t0","Symbol","for","apiVersion","client","currentUser","loading","setLoading","enabling","setEnabling","disabling","setDisabling","secret","setSecret","busy","t1","url","error","setError","t2","closable","status","title","context","handleUnableToToggle","t3","id","run","window","location","href","t4","handleDisableSharing","run_0","previewUrlSecret","t5","handleEnableSharing","run_1","Error","navigator","clipboard","writeText","toString","t6","handleCopyUrl","t7","controller","AbortController","usedTags","fetchShareSecret","lastLiveEventId","signal","result","syncTags","fetch","filterResponse","tag","Array","isArray","aborted","subscription","live","events","subscribe","next","event","type","abort","tags","some","includes","finally","unsubscribe","t8","t9","t10","maxWidth","t11","undefined","t12","cursor","justifyContent","alignItems","gridTemplateColumns","gridTemplateRows","position","aspectRatio","display","opacity","textWrap","textAlign","t13","t14","constrainSize","placement","portal","t15","DesktopIcon","MobileDeviceIcon","PanelLeftIcon","RefreshIcon","withoutSecretSearchParams","Box","Card","Flex","Hotkeys","Switch","Text","useSelector","RefObject","useCallback","useMemo","useTranslation","Button","Tooltip","presentationLocaleNamespace","HeaderOptions","useId","OpenPreviewButton","PreviewProps","PreviewLocationInput","SharePreviewMenu","PreviewHeaderProps","iframeRef","HTMLIFrameElement","renderDefault","props","React","JSX","Element","PreviewHeaderDefault","$","_c","canSharePreviewAccess","canToggleSharePreviewAccess","canUseSharedPreviewAccess","initialUrl","navigatorEnabled","onPathChange","onRefresh","openPopup","overlaysConnection","presentationRef","perspective","variant","previewUrl","setViewport","targetOrigin","toggleNavigator","toggleOverlay","viewport","previewUrlRef","t","t0","toggleViewportSize","previewLocationOrigin","location","origin","t1","current","send","type","Object","assign","src","URL","toString","handleRefresh","isLoading","_temp","isLoaded","_temp2","isRefreshing","_temp3","isReloading","_temp4","overlaysEnabled","_temp5","t2","previewURL","pathname","search","previewLocationRoute","perspectiveToggleTooltipId","previewUrlBusy","_temp6","t3","Symbol","for","width","t4","content","fallbackPlacements","placement","t5","whiteSpace","t6","t7","context","t8","t9","marginTop","marginBottom","t10","t11","t12","lineHeight","borderRadius","userSelect","t13","undefined","t14","margin","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32","t33","node","style","setProperty","t34","t35","t36","t37","t38","t39","t40","t41","t42","t43","PreviewHeader","_temp7","HeaderComponent","options","component","header","position","minHeight","props_0","state","matches","state_0","state_1","loaded","state_2","state_3","visualEditingOverlaysEnabled","state_4","hasTag","createConnectionMachine","createController","createCompatibilityActors","VisualEditingControllerMsg","VisualEditingNodeMsg","urlSearchParamPreviewPerspective","urlSearchParamPreviewVariant","urlSearchParamVercelProtectionBypass","urlSearchParamVercelSetBypassCookie","VercelSetBypassCookieValue","Card","Code","Flex","Label","Spinner","Stack","Text","usePrefersReducedMotion","useToast","useSelector","AnimatePresence","motion","MotionConfig","forwardRef","memo","useCallback","useEffect","useEffectEvent","useImperativeHandle","useMemo","useRef","useState","useSyncExternalStore","flushSync","Translate","useTranslation","Button","TooltipDelayGroupProvider","ErrorCard","MAX_TIME_TO_OVERLAYS_CONNECTION","presentationLocaleNamespace","PresentationMachineRef","PreviewUrlRef","ConnectionStatus","HeaderOptions","PresentationPerspective","PresentationViewport","useAllowPatterns","usePresentationNavigate","usePresentationTool","encodeStudioPerspective","IFrame","PreviewHeader","MotionFlex","create","PreviewProps","canSharePreviewAccess","canToggleSharePreviewAccess","canUseSharedPreviewAccess","header","initialUrl","URL","loadersConnection","navigatorEnabled","onPathChange","nextPath","onRefresh","fallback","openPopup","url","overlaysConnection","presentationRef","perspective","variant","previewUrl","setViewport","mode","targetOrigin","toggleNavigator","toggleOverlay","viewport","vercelProtectionBypass","previewUrlRef","handlesPerspectiveChange","handlesVariantChange","Preview","HTMLIFrameElement","PreviewComponent","props","forwardedRef","stablePerspective","setStablePerspective","urlPerspective","stableVariant","setStableVariant","urlVariant","searchParams","set","delete","get","prev","t","devMode","prefersReducedMotion","ref","previewHeader","current","isLoading","state","matches","loaded","timedOut","setTimedOut","isRefreshing","somethingIsWrong","setSomethingIsWrong","iframeIsBusy","handleRetry","src","toString","send","type","continueAnyway","setContinueAnyway","handleContinueAnyway","showOverlaysConnectionStatus","setShowOverlaysConnectionState","undefined","timeout","setTimeout","clearTimeout","console","error","onIFrameLoad","preventIframeInteraction","canUseViewTransition","CSS","supports","iframeAnimations","currentViewport","setCurrentViewport","iframeStyle","setIframeStyle","iframeVariants","update","document","startViewTransition","types","toast","allowOrigins","checkOrigin","setCheckOrigin","reportedMismatches","Set","reportMismatchingOrigin","reportedOrigin","some","allow","test","has","add","warn","push","closable","id","status","duration","Infinity","title","description","origin","navigate","navigateEvent","nextUrl","pathname","search","hash","target","contentWindow","controller","addTarget","comlink","createChannel","name","heartbeat","connectTo","provide","actors","on","data","stop","start","destroy","interval","setInterval","postMessage","domain","from","AbortController","window","addEventListener","MessageEvent","signal","abort","clearInterval","position","cursor","spinnerVariants","inset","backdropFilter","WebkitBackdropFilter","WebkitTransition","zIndex","sizes","opacity","context","errorVariants","background","displayName","desktop","width","height","mobile","initial","animate","exit","boxShadow","scale","idle","reloading","active","defineWarnOnce","warned","args","console","warn","validateApiPerspective","isEqual","MutableRefObject","useCallback","useMemo","useRef","useState","getPublishedId","FrameState","PresentationPerspective","defineWarnOnce","DocumentOnPage","_id","_type","DocumentCache","Record","KeyedDocumentCache","warnOnceAboutCrossDatasetReference","useDocumentsOnPage","perspective","frameStateRef","$","_c","t0","Symbol","for","published","setPublished","t1","previewDrafts","setPreviewDrafts","urlRef","t2","key","perspective_0","t3","sourceDocuments","undefined","documents","filter","_temp","setCache","cache","next","document","current","url","prev","setDocumentsOnPage","keyedCache","Object","values","reduce","_temp2","uniqueDocuments","t4","documentsOnPage","t5","bb0","keyedCache_0","visualCache","t6","_temp3","orderedIds","seen","Set","visualOrderPublishedIds","accumulator","document_0","publishedId","has","add","push","acc","cache_0","forEach","doc","sourceDocument","_projectId","ResponseQueryOptions","match","useEffect","useEffectEvent","useRef","useState","useClient","VARIANTS_STUDIO_CLIENT_OPTIONS","RouterState","useRouter","API_VERSION","DocumentResolver","DocumentResolverContext","MainDocument","MainDocumentState","PresentationNavigate","PresentationPerspective","fnOrObj","arg","T","ctx","U","context","Function","getQueryFromResult","resolver","resolve","filter","undefined","type","getParamsFromResult","Record","params","getRouteContext","route","url","URL","routes","Array","isArray","path","origin","absolute","pathname","matcher","decode","decodeURIComponent","result","e","Error","cause","useMainDocument","props","$","_c","navigate","navigationHistory","targetOrigin","resolvers","t0","perspective","variant","t1","state","routerState","t2","apiVersion","client","t3","_searchParams","find","_temp","relativeUrl","mainDocumentState","setMainDocumentState","mainDocumentIdRef","t4","doc","current","_id","document","at","id","_type","handleResponse","t5","url_0","length","query","controller","AbortController","options","signal","tag","fetch","then","doc_0","catch","name","abort","t6","key","pipe","pipe","studioPath","urlStringToPath","PresentationStateParams","parseId","rawId","undefined","segments","decodeURIComponent","split","shift","join","parsePath","rawPath","toString","parseRouterState","state","id","path","type","MutableRefObject","useCallback","useLayoutEffect","useMemo","useRef","useState","getPublishedId","RouterContextValue","RouterState","SearchParam","CombinedSearchParams","FrameState","PresentationNavigate","PresentationParamsContextValue","PresentationSearchParams","PresentationStateParams","StructureDocumentPaneParams","parseRouterState","pruneObject","obj","T","Object","fromEntries","entries","filter","value","undefined","exhaustiveTupleOf","array","U","maintainOnDocumentChange","maintainOnSameDocument","useParams","t0","$","_c","initialPreviewUrl","routerNavigate","routerState","routerSearchParams","t1","id","path","type","t2","preview","toString","t3","changesInspectorTab","t4","comment","inspect","instruction","parentRefPath","pathKey","perspective","rev","scheduledDraft","since","template","templateParams","view","viewport","params","t5","pruned","structureParams","t6","pruned_0","searchParams","routerStateRef","t7","t8","current","t9","navigationHistory","setNavigationHistory","t10","Symbol","for","t11","id_0","type_0","isSameDocument","options","state","params_0","replace","t12","current_0","currentState","currentParams","_searchParams","nextState","maintainedParamKeys","maintainedParams","reduce","acc","key","Partial","nextParams","nextRouterState","_temp","prev","navigate","acc_0","key_0","Controller","useCallback","useEffect","useState","POPUP_CHECK_INTERVAL","usePopups","controller","$","_c","popups","setPopups","_temp","t0","Symbol","for","url","source","window","open","prev","Set","add","t1","t2","unsubs","size","source_0","closed","push","addTarget","forEach","_temp2","t3","t4","interval","setInterval","source_1","prev_0","next","source_2","delete","clearInterval","t5","unsub","usePerspective","isAgentBundleName","PresentationPerspective","usePresentationPerspective","t0","$","_c","scheduledDraft","selectedPerspectiveName","t1","selectedReleaseId","perspectiveStack","undefined","t2","usePerspective","usePresentationVariant","selectedVariantName","StatusEvent","useCallback","useMemo","useState","ConnectionStatus","useStatus","$","_c","t0","Symbol","for","Map","statusMap","setStatusMap","t1","bb0","values","Array","from","find","_temp","handshaking","filter","_temp2","length","some","_temp3","memoStatus","t2","event","prev","next","status","delete","connection","hasConnected_0","get","hasConnected","status_1","set","setStatusFromEvent","t3","status_0","Controller","createConnectionMachine","createController","Message","createCompatibilityActors","PreviewKitNodeMsg","VisualEditingControllerMsg","VisualEditingNodeMsg","urlSearchParamVercelProtectionBypass","urlSearchParamVercelSetBypassCookie","BoundaryElementProvider","Flex","useMediaIndex","useActorRef","useSelector","lazy","Suspense","useCallback","useEffect","useEffectEvent","useMemo","useRef","useState","CommentIntentGetter","COMMENTS_INSPECTOR_NAME","SanityDocument","Tool","useDataset","useProjectId","useUnique","useWorkspace","RouterContextValue","useRouter","styled","DEFAULT_TOOL_NAME","EDIT_INTENT_MODE","NARROW_MEDIA_INDEX","PostMessageFeatures","presentationMachine","PreviewUrlRef","SharedStateProvider","Panel","Panels","getPresentationPanelHtmlId","PresentationLayoutTab","PresentationNarrowTabBar","PresentationContent","PresentationNavigateProvider","usePresentationNavigator","PresentationParamsProvider","PresentationProvider","Preview","FrameState","PresentationNavigate","PresentationPluginOptions","PresentationStateParams","PresentationViewport","StructureDocumentPaneParams","VisualEditingConnection","useAllowPatterns","useDocumentsOnPage","useMainDocument","useParams","usePopups","usePresentationPerspective","usePresentationVariant","useStatus","useTargetOrigin","debounce","LiveQueries","PostMessageDocuments","PostMessageRefreshMutations","PostMessagePerspective","PostMessagePreviewSnapshots","PostMessageSchema","PostMessageTelemetry","Container","resolveActiveTab","activeTab","navigatorEnabled","PresentationTool","props","$","_c","canToggleSharePreviewAccess","canUseSharedPreviewAccess","tool","vercelProtectionBypass","initialPreviewUrl","previewUrlRef","allowOrigins","targetOrigin","components","options","name","t0","unstable_navigator","unstable_header","navigate","routerNavigate","state","routerState","t1","_searchParams","Object","fromEntries","routerSearchParams","canSharePreviewAccess","_temp","t2","devMode","option","window","location","hostname","iframeRef","controller","setController","visualEditingComlink","setVisualEditingComlink","t3","Symbol","for","title","undefined","url","frameStateRef","t4","isSameDocument","navigationHistory","params","searchParams","structureParams","t5","scheduledDraft","perspective","variant","presentationRef","viewport","documentsOnPage","setDocumentsOnPage","visualOrderPublishedIds","projectId","dataset","t6","resolve","mainDocuments","t7","preview","path","resolvers","mainDocumentState","overlaysConnection","setOverlaysConnection","loadersConnection","setLoadersConnection","previewKitConnection","setPreviewKitConnection","_handlesPerspectiveChange","setHandlesPerspectiveChange","handlesPerspectiveChange","_handlesVariantChange","setHandlesVariantChange","handlesVariantChange","open","handleOpenPopup","isLoading","_temp2","t8","t9","target","current","contentWindow","controller_0","addTarget","destroy","t10","handleNavigate","refreshRef","t11","comlink","createChannel","heartbeat","connectTo","provide","actors","on","data","type","id","data_0","startsWith","URL","toString","run","urlWithoutSearch","search","split","searchParams_0","URLSearchParams","delete","size","data_1","data_2","send","enabled","data_3","documents","data_4","source","clearTimeout","onStatus","stop","start","t12","t13","comlink_0","data_5","t14","t15","state_1","replace","handleFocusPath","t16","nextPath","url_0","Array","isArray","some","pattern","test","origin","handlePreviewPath","t17","params_0","handleStructureParams","t18","options_0","handleEditReference","t19","t20","post","t21","t22","frameOrigin","previewOrigin","url_1","newUrl","pathname","hash","t23","toggleOverlay","displayedDocument","setDisplayedDocument","t24","t25","handleKeyUp","e","isAltKey","handleKeydown","e_0","isHotkey","addEventListener","removeEventListener","boundaryElement","setBoundaryElement","t26","t27","PresentationNavigator","toggleNavigator","mediaIndex","isNarrow","setActiveTab","t28","resolvedTab","t29","fallback","setTimeout","livePreviewEnabled","handleRefresh","workspace","t30","t31","inspect","mode","getCommentIntent","next","viewport_0","setViewport","t32","t33","minHeight","t34","t35","t36","t37","t38","t39","t40","t41","t42","t43","t44","t45","t46","t47","t48","t49","t50","t51","t52","t53","length","t54","t55","t56","t57","t58","t59","state_0","matches","context","previewMode","shareAccess","event","KeyboardEvent","key","IS_MAC","navigator","platform","MODIFIERS","Record","alt","ctrl","mod","shift","keys","every","toUpperCase","createPreviewSecret","SanityClient","fromPromise","PromiseActorLogic","defineCreatePreviewSecretActor","client","currentUserId","secret","expiresAt","Date","location","href","fetchSharedAccessQuery","SanityClient","fromPromise","PromiseActorLogic","defineReadSharedSecretActor","client","fetch","tag","fromPromise","PromiseActorLogic","PreviewUrlAllowOption","PreviewUrlAllowOptionContext","Context","Pick","allowOption","Input","Omit","defineResolveAllowPatternsActor","client","URLPattern","input","initialUrl","origin","maybePatterns","patterns","Array","isArray","urlPatterns","map","value","urlPattern","hostname","Error","some","pattern","test","SanityClient","fromPromise","PromiseActorLogic","PresentationPerspective","PreviewUrlOption","encodeStudioPerspective","defineResolveInitialUrlActor","client","studioBasePath","previewUrlOption","perspective","variant","URL","previewSearchParam","input","origin","location","initial","previewUrlSecret","studioPreviewPerspective","studioPreviewVariant","preview","fromPromise","PromiseActorLogic","PreviewUrlOption","PreviewUrlPreviewMode","PreviewUrlPreviewModeOptionContext","Options","Omit","Context","Pick","previewUrlOption","Input","defineResolvePreviewModeActor","client","input","targetOrigin","draftMode","enable","shareAccess","previewMode","origin","urlSearchParamPreviewPathname","urlSearchParamPreviewPerspective","urlSearchParamPreviewSecret","urlSearchParamPreviewVariant","SanityClient","fromPromise","PromiseActorLogic","PresentationPerspective","PreviewUrlOption","PreviewUrlPreviewMode","encodeStudioPerspective","ResolvePreviewModeUrlInput","previewUrlSecret","resolvedPreviewMode","initialUrl","URL","defineResolvePreviewModeUrlActor","client","studioBasePath","previewUrlOption","perspective","variant","input","initial","studioPreviewPerspective","studioPreviewVariant","previewSearchParam","toString","Error","url","enable","searchParams","set","delete","pathname","search","hash","fromPromise","resolveUrlFromPreviewSearchParamActor","URL","initialUrl","previewSearchParam","allowOrigins","URLPattern","input","previewSearchParamUrl","origin","some","pattern","test","schemaIdSingleton","schemaType","schemaTypeSingleton","SanityDocument","uuid","throwError","DocumentValuePermission","PermissionCheckResult","ActorRefFrom","assign","fromObservable","fromPromise","log","setup","ResolvePreviewModeUrlInput","resolveUrlFromPreviewSearchParamActor","PreviewUrlPreviewMode","Context","initialUrl","URL","previewUrl","allowOrigins","URLPattern","error","Error","previewSearchParam","previewUrlSecret","secret","expiresAt","Date","previewAccessSharingCreatePermission","previewAccessSharingReadPermission","previewAccessSharingUpdatePermission","previewUrlSecretPermission","previewMode","SetPreviewSearchParamEvent","type","Event","Input","Omit","CheckPermissionInput","checkPermissionName","document","Partial","shareAccessSingletonDocument","_id","_type","previewUrlSecretDocument","previewUrlMachine","types","context","events","input","tags","actions","_","params","message","cause","actors","Promise","reject","targetOrigin","guards","has checked permissions","Boolean","search param has new origin","event","previewSearchParamUrl","origin","can create preview secret","granted","has preview mode with created secret","has preview mode with share access","has preview mode without permissions","delays","expiredSecret","now","getTime","Math","max","createMachine","id","invoke","src","onError","target","onSnapshot","snapshot","on","states","checkingPermissions","always","guard","resolvingInitialUrl","onDone","output","resolvingAllowPatterns","resolvingUrlFromPreviewSearchParam","resolvingPreviewMode","reenter","success","createPreviewSecret","readShareAccess","resolvePreviewUrl","resolvedPreviewMode","after","initial","PreviewUrlRef","useToast","useActorRef","useSelector","useEffect","useActiveWorkspace","useClient","useCurrentUser","useGrantsStore","useTranslation","useRouter","fromObservable","defineCreatePreviewSecretActor","defineReadSharedSecretActor","defineResolveAllowPatternsActor","defineResolveInitialUrlActor","defineResolvePreviewModeActor","defineResolvePreviewModeUrlActor","API_VERSION","presentationLocaleNamespace","previewUrlMachine","PreviewUrlRef","PreviewUrlAllowOption","PreviewUrlOption","usePresentationPerspective","usePresentationVariant","usePreviewUrlActorRef","previewUrlOption","allowOption","$","_c","grantsStore","t0","Symbol","for","apiVersion","client","currentUser","currentUserId","id","workspace","studioBasePath","activeWorkspace","basePath","router","t1","state","_searchParams","routerSearchParams","URLSearchParams","get","previewSearchParam","push","pushToast","t","t2","scheduledDraft","undefined","perspective","variant","t3","t4","closable","status","duration","Infinity","title","t5","t6","input","checkDocumentPermission","checkPermissionName","document","provide","actions","actors","actorRef","send","type","error","_temp","hasTag","context","useToast","useSelector","useEffect","Translate","useTranslation","useRouter","presentationLocaleNamespace","PreviewUrlRef","useReportInvalidPreviewSearchParam","previewUrlRef","$","_c","t","push","pushToast","router","t0","state","_searchParams","routerSearchParams","URLSearchParams","get","previewSearchParam","allowOrigins","_temp","currentOrigin","_temp2","t1","t2","Array","isArray","nextOrigin","URL","origin","some","pattern","test","closable","id","status","duration","Infinity","title","description","Code","blockedOrigin","state_0","context","previewUrl","subscribeToVercelProtectionBypass","useEffect","useReducer","useState","useClient","API_VERSION","VercelProtectionBypassReadyState","useVercelBypassSecret","$","_c","t0","Symbol","for","apiVersion","client","vercelProtectionBypassReadyState","ready","_temp","vercelProtectionBypassSecret","setVercelProtectionBypassSecret","t1","t2","unsubscribe","secret","t3","useSelector","Tool","PresentationSpinner","PresentationTool","PresentationPluginOptions","usePreviewUrlActorRef","useReportInvalidPreviewSearchParam","useVercelBypassSecret","PresentationToolGrantsCheck","t0","$","_c","tool","previewUrlRef","options","previewUrl","allowOrigins","previewAccessSharingCreatePermission","_temp","previewAccessSharingUpdatePermission","_temp2","previewAccessSharingReadPermission","_temp3","previewUrlSecretPermission","_temp4","url","_temp5","vercelProtectionBypass","vercelProtectionBypassReadyState","granted","t1","Symbol","for","Boolean","t2","t3","state_3","state","context","state_2","state_1","state_0"],"sources":["../src/presentation/features/PostMessageFeatures.tsx","../src/presentation/machines/presentation-machine.ts","../src/presentation/overlays/SharedStateProvider.tsx","../src/presentation/panels/Panel.tsx","../src/presentation/util/debounce.ts","../src/presentation/panels/usePanelsStorage.ts","../src/presentation/panels/util.ts","../src/presentation/panels/Panels.tsx","../src/presentation/panels/presentationLayoutTab.ts","../src/presentation/panels/PresentationNarrowTabBar.tsx","../src/presentation/components/ErrorCard.tsx","../src/presentation/paneRouter/ChildLink.tsx","../src/presentation/paneRouter/ReferenceChildLink.tsx","../src/presentation/paneRouter/StructureIntentChildLink.tsx","../src/presentation/paneRouter/PresentationPaneRouterProvider.tsx","../src/presentation/editor/DocumentListPane.tsx","../src/presentation/editor/DocumentPane.tsx","../src/presentation/editor/DocumentPanel.tsx","../src/presentation/editor/usePreviewState.ts","../src/presentation/editor/ContentEditor.tsx","../src/presentation/panels/usePanelId.ts","../src/presentation/panels/PanelResizer.tsx","../src/presentation/PresentationContent.tsx","../src/presentation/PresentationNavigateProvider.tsx","../src/presentation/useLocalState.ts","../src/presentation/PresentationNavigator.tsx","../src/presentation/PresentationParamsProvider.tsx","../src/presentation/PresentationProvider.tsx","../src/presentation/useAllowPatterns.ts","../src/presentation/util/encodeStudioPerspective.ts","../src/presentation/useId.ts","../src/presentation/preview/IFrame.tsx","../src/presentation/preview/OpenPreviewButton.tsx","../src/presentation/useTargetOrigin.ts","../src/presentation/preview/PreviewLocationInput.tsx","../src/presentation/preview/SharePreviewMenu.tsx","../src/presentation/preview/PreviewHeader.tsx","../src/presentation/preview/Preview.tsx","../src/presentation/util/warnOnce.ts","../src/presentation/useDocumentsOnPage.ts","../src/presentation/useMainDocument.ts","../../../node_modules/.pnpm/valibot@1.4.2_typescript@6.0.3/node_modules/valibot/dist/index.mjs","../../../node_modules/.pnpm/@sanity+visual-editing-csm@3.0.13_@sanity+client@7.25.0_@sanity+types@packages+@sanity+types_typescript@6.0.3/node_modules/@sanity/visual-editing-csm/dist/index.js","../src/presentation/util/parse.ts","../src/presentation/useParams.ts","../src/presentation/usePopups.ts","../src/presentation/usePresentationPerspective.ts","../src/presentation/usePresentationVariant.ts","../src/presentation/useStatus.ts","../src/presentation/PresentationTool.tsx","../src/presentation/actors/create-preview-secret.ts","../src/presentation/actors/read-shared-secret.ts","../src/presentation/actors/resolve-allow-patterns.ts","../src/presentation/actors/resolve-initial-url.ts","../src/presentation/actors/resolve-preview-mode.ts","../src/presentation/actors/resolve-preview-mode-url.ts","../src/presentation/actors/resolve-url-from-preview-search-param.ts","../src/presentation/machines/preview-url.ts","../src/presentation/usePreviewUrlActorRef.ts","../src/presentation/useReportInvalidPreviewSearchParam.tsx","../src/presentation/useVercelBypassSecret.ts","../src/presentation/PresentationToolGrantsCheck.tsx"],"sourcesContent":["import {type FC, memo, useEffect} from 'react'\n\nimport {type VisualEditingConnection} from '../types'\n\nexport interface PostMessagePreviewsProps {\n comlink: VisualEditingConnection\n}\n\nconst PostMessageFeatures: FC<PostMessagePreviewsProps> = (props) => {\n const {comlink} = props\n\n useEffect(() => {\n return comlink.on('visual-editing/features', () => ({\n features: {\n optimistic: true,\n },\n }))\n }, [comlink])\n\n return null\n}\n\nexport default memo(PostMessageFeatures)\n","import {type ActorRefFrom, assign, setup} from 'xstate'\n\ninterface Context {\n url: URL | null\n error: Error | null\n visualEditingOverlaysEnabled: boolean\n}\n\ntype Event =\n | {type: 'toggle visual editing overlays'; enabled: boolean}\n | {type: 'iframe loaded'}\n | {type: 'iframe refresh'}\n | {type: 'iframe reload'}\n\nexport const presentationMachine = setup({\n types: {} as {\n context: Context\n events: Event\n tags: 'busy' | 'error'\n },\n actions: {\n //\n },\n actors: {\n //\n },\n guards: {\n //\n },\n}).createMachine({\n // oxlint-disable-next-line tsdoc/syntax\n /** @xstate-layout N4IgpgJg5mDOIC5QAUBOcwDsAuBDbAlgPaYAEAKkUQDYDEBAZqrgLZinrVG4QDaADAF1EoAA5FYBQiREgAHogAsAJgA0IAJ6IAHAEYAdIoCcJowFY9R-vzPLlAX3vq0GHPmJlKNfVx4FMUPRMrOy+EJACwkgg4pLSmLIKCLoAbIr6Zoop2tqKAMxpJnnF6loIZkbK+uZ5umapKXmK-Cm6js7osFh48RRU1D7c4RC02ERQUNTsAG4EsACuuNSkkFL+UKRE02Co1LgasJGysWsy0UnaZinVyrpGAOx1Rim2efeliPe3hma1Zvy6XT8W4OJwgFxdNy9LwDMKQILMNgcMBMOAACyO0RO8USiAK930LWU-3uiiB9yaKXemkQjW01V+txS-GKqUe7XBnW67hIfW8cJGjER7E4Q0xYgkpwS5zxVMJKWJ-FJ5Mp1LKFn4Pz+DSaLTaYIh3Oh-UGPEg+nQqNgaPWCJCpAF4pikpxMoQKWZ+gp+TSZLy1hSH3deXpNSZLNqVP1HVcPQ8fNhQ3Nor8ATtSMdQmOLo8uPdnu9BUUfoDQY1WrqOuarUcYMwRHC8Gihqh8Zh2biubdAFpAzSEL2OS247yYfodqgiKgO1K8yog7ptATFL9dFljMDrHkh1zW6OTWF1jPXaAkmY1YgKnktfxtC9dPd+Io9DvYzzPAekxBj13T3i7vKirKkqqpBsYVQ1HUFjFs0t6KK+kIjh+-JfvoBAQFMP5nH+CDaMo16KjYyjMvUNh5GWOT6MoLL8A8ygrk0dQIUabafmaEAWiinQ2gEWHSjhjJUYuj73Pcd63noQaNEYFb-Dk2S0cxe7IYm7GcYevFYjm2HyJeeQQb8tFkikVjGNoFGajUt73o+z61vYQA */\n id: 'Presentation Tool',\n context: {\n url: null,\n error: null,\n visualEditingOverlaysEnabled: false,\n },\n\n on: {\n 'iframe reload': {\n actions: assign({url: null}),\n target: '.loading',\n },\n },\n\n states: {\n error: {\n description:\n 'Failed to load, either because of a misconfiguration, a network error, or an unexpected error',\n tags: ['error'],\n },\n loading: {\n on: {\n 'iframe loaded': {\n target: 'loaded',\n },\n },\n tags: ['busy'],\n },\n loaded: {\n on: {\n 'toggle visual editing overlays': {\n actions: assign({\n visualEditingOverlaysEnabled: ({event}) => event.enabled,\n }),\n },\n 'iframe refresh': {\n target: '.refreshing',\n },\n 'iframe reload': {\n target: '.reloading',\n },\n },\n\n states: {\n idle: {},\n refreshing: {\n on: {\n 'iframe loaded': {\n target: 'idle',\n },\n },\n tags: ['busy'],\n },\n reloading: {\n on: {\n 'iframe loaded': {\n target: 'idle',\n },\n },\n tags: ['busy'],\n },\n },\n initial: 'idle',\n },\n },\n initial: 'loading',\n})\n\nexport type PresentationMachineRef = ActorRefFrom<typeof presentationMachine>\n","import {type Serializable, type SerializableObject} from '@sanity/presentation-comlink'\nimport {\n type FunctionComponent,\n type PropsWithChildren,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport {PresentationSharedStateContext} from 'sanity/_singletons'\n\nimport {type VisualEditingConnection} from '../types'\nimport {type PresentationSharedStateContextValue} from './types'\n\nexport const SharedStateProvider: FunctionComponent<\n PropsWithChildren<{\n comlink: VisualEditingConnection | null\n }>\n> = function (props) {\n const {comlink, children} = props\n\n const sharedState = useRef<SerializableObject>({})\n\n useEffect(() => {\n return comlink?.on('visual-editing/shared-state', () => {\n return {state: sharedState.current}\n })\n }, [comlink])\n\n const setValue = useCallback(\n (key: string, value: Serializable) => {\n sharedState.current[key] = value\n comlink?.post('presentation/shared-state', {key, value})\n },\n [comlink],\n )\n\n const removeValue = useCallback(\n (key: string) => {\n comlink?.post('presentation/shared-state', {key})\n delete sharedState.current[key]\n },\n [comlink],\n )\n\n const context = useMemo<PresentationSharedStateContextValue>(\n () => ({removeValue, setValue}),\n [removeValue, setValue],\n )\n\n return (\n <PresentationSharedStateContext.Provider value={context}>\n {children}\n </PresentationSharedStateContext.Provider>\n )\n}\n","import {type FunctionComponent, type PropsWithChildren, useContext, useLayoutEffect} from 'react'\nimport {PresentationPanelsContext} from 'sanity/_singletons'\nimport {styled} from 'styled-components'\n\ninterface PanelProps extends PropsWithChildren {\n defaultSize?: number | null\n /** Panel group key; not a DOM id. */\n id: string\n /** DOM id for the root element (e.g. aria-controls target). */\n htmlId?: string\n minWidth?: number\n maxWidth?: number\n order?: number\n /** Hide via display:none without unmounting (keeps iframe state). */\n hidden?: boolean\n}\n\nconst Root = styled.div`\n overflow: hidden;\n flex-basis: 0;\n flex-shrink: 1;\n`\n\nexport const Panel: FunctionComponent<PanelProps> = function ({\n children,\n defaultSize = null,\n id,\n htmlId,\n minWidth,\n maxWidth,\n order = 0,\n hidden = false,\n}) {\n const context = useContext(PresentationPanelsContext)\n\n if (context === null) {\n throw Error(`Panel components must be rendered within a PanelGroup container`)\n }\n\n const {getPanelStyle, registerElement, unregisterElement} = context\n\n // Hidden panels stay mounted (preserving iframe state) but leave the flex layout so siblings fill the space.\n const style = hidden ? {display: 'none'} : getPanelStyle(id)\n\n useLayoutEffect(() => {\n registerElement(id, {\n id,\n type: 'panel',\n defaultSize,\n maxWidth: maxWidth ?? null,\n minWidth: minWidth ?? 0,\n order,\n })\n\n return () => {\n unregisterElement(id)\n }\n }, [id, defaultSize, order, maxWidth, minWidth, registerElement, unregisterElement])\n\n return (\n <Root id={htmlId} style={style}>\n {children}\n </Root>\n )\n}\n","export function debounce<F extends (...args: Parameters<F>) => ReturnType<F>>(\n fn: F,\n timeout: number,\n): F {\n let timer: ReturnType<typeof setTimeout>\n return ((...args: Parameters<F>) => {\n clearTimeout(timer)\n timer = setTimeout(() => {\n fn.apply(fn, args)\n }, timeout)\n }) as F\n}\n","import {useMemo} from 'react'\n\nimport {debounce} from '../util/debounce'\nimport {type PanelElement} from './types'\n\nconst itemKey = 'presentation/panels'\n\ntype StoredPanelsState = Record<string, number[]>\n\nconst getStoredItem = () => {\n // @todo Validate\n return JSON.parse(localStorage.getItem(itemKey) || '{}') as StoredPanelsState\n}\nconst setStoredItem = (data: StoredPanelsState) => {\n localStorage.setItem(itemKey, JSON.stringify(data))\n}\n\nconst getKeyForPanels = (panels: PanelElement[]) => {\n return panels.map((panel) => [panel.id, panel.order].join(':')).join(',')\n}\n\nexport function usePanelsStorage(): {\n get: (panels: PanelElement[]) => number[] | undefined\n set: (panels: PanelElement[], widths: number[]) => void\n setDebounced: (panels: PanelElement[], widths: number[]) => void\n} {\n return useMemo(() => {\n const get = (panels: PanelElement[]) => {\n const stored = getStoredItem()\n const key = getKeyForPanels(panels)\n return Array.isArray(stored[key]) && stored[key].some((val) => val === null)\n ? undefined\n : stored[key]\n }\n\n const set = (panels: PanelElement[], widths: number[]) => {\n const stored = getStoredItem()\n const key = getKeyForPanels(panels)\n const data = {\n ...stored,\n [key]: widths,\n }\n setStoredItem(data)\n }\n\n const setDebounced = debounce(set, 100)\n return {\n get,\n set,\n setDebounced,\n }\n }, [])\n}\n","import {\n type ElementMap,\n type InitialDragState,\n type PanelElement,\n type PanelsState,\n type ResizerElement,\n} from './types'\n\nfunction getNextWidth(panel: PanelElement, nextWidth: number, containerWidth: number) {\n const {maxWidth: maxWidthPx, minWidth: minWidthPx} = panel\n const maxWidth = maxWidthPx == null ? 100 : (maxWidthPx / containerWidth) * 100\n const minWidth = (minWidthPx / containerWidth) * 100\n return Math.min(maxWidth, Math.max(minWidth, nextWidth))\n}\n\nexport function getNextWidths(\n delta: number,\n containerWidth: number,\n panelBefore: PanelElement,\n panelAfter: PanelElement,\n panelsState: PanelsState,\n initialDragState: InitialDragState,\n): number[] {\n const {panels, widths: prevWidths} = panelsState\n const {widths: initialWidths} = initialDragState\n\n const widths = initialWidths || prevWidths\n const nextWidths = [...widths]\n\n {\n const pivotPanel = delta < 0 ? panelAfter : panelBefore\n const index = panels.findIndex((panel) => panel.id === pivotPanel.id)\n const width = widths[index]\n const nextWidth = getNextWidth(pivotPanel, width + Math.abs(delta), containerWidth)\n if (width === nextWidth) {\n return widths\n }\n delta = delta < 0 ? width - nextWidth : nextWidth - width\n }\n\n let deltaApplied = 0\n let pivotPanel = delta < 0 ? panelBefore : panelAfter\n let index = panels.findIndex((panel) => panel.id === pivotPanel.id)\n\n while (true) {\n const panel = panels[index]\n const width = widths[index]\n\n const deltaRemaining = Math.abs(delta) - Math.abs(deltaApplied)\n\n const nextWidth = getNextWidth(panel, width - deltaRemaining, containerWidth)\n\n if (width !== nextWidth) {\n deltaApplied += width - nextWidth\n nextWidths[index] = nextWidth\n\n if (\n deltaApplied.toPrecision(10).localeCompare(Math.abs(delta).toPrecision(10), undefined, {\n numeric: true,\n }) >= 0\n ) {\n break\n }\n }\n\n if (delta < 0) {\n if (--index < 0) {\n break\n }\n } else if (++index >= panels.length) {\n break\n }\n }\n\n if (deltaApplied === 0) {\n return widths\n }\n\n pivotPanel = delta < 0 ? panelAfter : panelBefore\n index = panels.findIndex((panel) => panel.id === pivotPanel.id)\n nextWidths[index] = widths[index] + deltaApplied\n\n return nextWidths\n}\n\nexport function getPanelWidth(panels: PanelElement[], id: string, widths: number[]): string {\n if (panels.length === 1) return '100'\n\n const index = panels.findIndex((panel) => panel.id === id)\n const width = widths[index]\n\n if (width == null) return '0'\n\n return width.toPrecision(10)\n}\n\nexport function getContainerRect(containerElement: HTMLDivElement | null): DOMRect | null {\n return containerElement?.getBoundingClientRect() ?? null\n}\n\nexport function getOffset(\n event: MouseEvent,\n handleElement: HTMLDivElement,\n initialOffset: number = 0,\n initialHandleElementRect: DOMRect | null = null,\n): number {\n const pointerOffset = event.clientX\n\n const rect = initialHandleElementRect || handleElement.getBoundingClientRect()\n const elementOffset = rect.left\n\n return pointerOffset - elementOffset - initialOffset\n}\n\nexport function isPanel(element: PanelElement | ResizerElement): element is PanelElement {\n return element.type === 'panel'\n}\n\nexport function isResizer(element: PanelElement | ResizerElement): element is ResizerElement {\n return element.type === 'resizer'\n}\n\nexport function getSortedElements(elements: ElementMap): Array<PanelElement | ResizerElement> {\n return Array.from(elements.values()).sort(({order: a}, {order: b}) => {\n if (a == null && b == null) return 0\n if (a == null) return -1\n if (b == null) return 1\n return a - b\n })\n}\n\nexport function validateWidths(\n panels: PanelElement[],\n widthsToValidate: number[],\n containerWidth: number,\n): number[] {\n // Clamp widths proportionally to total 100\n const total = widthsToValidate.reduce((total, width) => total + width, 0)\n const widths = [...widthsToValidate].map((width) => (width / total) * 100)\n\n let remainingWidth = 0\n\n for (let index = 0; index < panels.length; index++) {\n const panel = panels[index]\n const width = widths[index]\n const nextWidth = getNextWidth(panel, width, containerWidth)\n if (width != nextWidth) {\n remainingWidth += width - nextWidth\n widths[index] = nextWidth\n }\n }\n\n if (remainingWidth.toFixed(3) !== '0.000') {\n for (let index = 0; index < panels.length; index++) {\n const panel = panels[index]\n\n let {maxWidth, minWidth} = panel\n\n minWidth = (minWidth / containerWidth) * 100\n if (maxWidth != null) {\n maxWidth = (maxWidth / containerWidth) * 100\n }\n\n const width = Math.min(\n maxWidth != null ? maxWidth : 100,\n Math.max(minWidth, widths[index] + remainingWidth),\n )\n\n if (width !== widths[index]) {\n remainingWidth -= width - widths[index]\n widths[index] = width\n\n if (Math.abs(remainingWidth).toFixed(3) === '0.000') {\n break\n }\n }\n }\n }\n\n return widths\n}\n\nexport function getDefaultWidths(panels: PanelElement[]): number[] {\n let panelsWithoutWidth = panels.length\n let remainingWidthTotal = 100\n\n const widthsWithNulls = panels.map((panel) => {\n if (panel.defaultSize) {\n remainingWidthTotal -= panel.defaultSize\n panelsWithoutWidth -= 1\n return panel.defaultSize\n }\n return null\n })\n\n const defaultWidth = remainingWidthTotal / panelsWithoutWidth\n const widths = widthsWithNulls.map((width) => {\n if (width === null) return defaultWidth\n return width\n })\n\n return widths\n}\n","// Slightly modified version of react-resizable-panels\n// https://github.com/bvaughn/react-resizable-panels/tree/main/packages/react-resizable-panels\n\nimport {\n type CSSProperties,\n type FunctionComponent,\n type PropsWithChildren,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {PresentationPanelsContext} from 'sanity/_singletons'\nimport {styled} from 'styled-components'\n\nimport {\n type ElementMap,\n type InitialDragState,\n type PanelElement,\n type PanelsState,\n type ResizerElement,\n} from './types'\nimport {usePanelsStorage} from './usePanelsStorage'\nimport {\n getContainerRect,\n getDefaultWidths,\n getNextWidths,\n getOffset,\n getPanelWidth,\n getSortedElements,\n isPanel,\n isResizer,\n validateWidths,\n} from './util'\n\nconst PanelsWrapper = styled.div`\n display: flex;\n flex-direction: row;\n height: 100%;\n overflow: hidden;\n width: 100%;\n`\n\nexport const Panels: FunctionComponent<PropsWithChildren> = function ({children}) {\n const panelsEl = useRef<HTMLDivElement | null>(null)\n\n const [elements, setElements] = useState<ElementMap>(new Map())\n\n const panels = useMemo(() => getSortedElements(elements).filter(isPanel), [elements])\n\n const [widths, setWidths] = useState<number[]>([])\n const [activeResizer, setActiveResizer] = useState<string | null>(null)\n\n const panelsRef = useRef<PanelsState>({\n elements,\n panels,\n widths,\n })\n\n const getPanelStyle = useCallback(\n (id: string): CSSProperties => {\n return {\n flexGrow: getPanelWidth(panels, id, widths),\n pointerEvents: activeResizer === null ? undefined : 'none',\n }\n },\n [activeResizer, panels, widths],\n )\n\n const registerElement = useCallback((id: string, data: PanelElement | ResizerElement) => {\n setElements((prev) => {\n if (prev.has(id)) return prev\n const next = new Map(prev)\n next.set(id, data)\n return next\n })\n }, [])\n const unregisterElement = useCallback((id: string) => {\n setElements((prev) => {\n if (!prev.has(id)) return prev\n const next = new Map(prev)\n next.delete(id)\n return next\n })\n }, [])\n\n const dragRef = useRef<InitialDragState>({\n containerRect: null,\n windowWidth: window.innerWidth,\n dragOffset: 0,\n panelAfter: null,\n panelBefore: null,\n resizerIndex: -1,\n resizerRect: null,\n startX: 0,\n widths: [],\n })\n\n const startDragging = useCallback(\n (id: string, event: MouseEvent) => {\n const elementsArr = getSortedElements(elements)\n const index = elementsArr.findIndex((el) => el.id === id)\n\n const resizer = elements.get(id)\n if (!resizer || !isResizer(resizer)) return\n const resizeElement = resizer.el.current\n if (!resizeElement) return\n\n dragRef.current = {\n resizerIndex: index,\n panelBefore: elementsArr.reduce(\n (acc, el, i) => (isPanel(el) && i < index ? el : acc),\n null as PanelElement | null,\n ),\n panelAfter: elementsArr.reduce(\n (acc, el, i) => (acc === null && isPanel(el) && i > index ? el : acc),\n null as PanelElement | null,\n ),\n containerRect: getContainerRect(panelsEl.current),\n windowWidth: window.innerWidth,\n startX: event.pageX,\n dragOffset: getOffset(event, resizeElement),\n resizerRect: resizeElement.getBoundingClientRect(),\n widths: panelsRef.current.widths,\n }\n\n setActiveResizer(id)\n },\n [elements],\n )\n\n const stopDragging = useCallback(() => {\n setActiveResizer(null)\n }, [])\n\n const drag = useCallback(\n (id: string, event: MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n\n const {containerRect, windowWidth, dragOffset, panelBefore, panelAfter, resizerRect} =\n dragRef.current\n\n if (panelBefore == null || panelAfter == null) {\n return\n }\n\n const resizer = elements.get(id)\n if (!resizer || !isResizer(resizer)) return\n const resizeElement = resizer.el.current\n if (!resizeElement) return\n\n const offset = getOffset(event, resizeElement, dragOffset, resizerRect)\n\n if (offset === 0) {\n return\n }\n\n const {widths: prevWidths} = panelsRef.current\n // Use the drag-start cached width to avoid a forced synchronous reflow per mousemove.\n const containerWidthPx = containerRect?.width\n if (!containerWidthPx) return\n const delta = (offset / containerWidthPx) * 100\n\n const nextWidths = getNextWidths(\n delta,\n windowWidth,\n panelBefore,\n panelAfter,\n panelsRef.current,\n dragRef.current,\n )\n\n const widthsChanged = prevWidths.some((prevWidth, i) => prevWidth !== nextWidths[i])\n\n if (widthsChanged) {\n setWidths(nextWidths)\n }\n },\n [elements],\n )\n\n // For setting the panels state\n useLayoutEffect(() => {\n panelsRef.current.elements = elements\n panelsRef.current.panels = panels\n panelsRef.current.widths = widths\n }, [elements, panels, widths])\n\n const storage = usePanelsStorage()\n\n // For setting default sizing when panels are updated\n useLayoutEffect(() => {\n const {widths} = panelsRef.current\n\n if (widths.length === panels.length) {\n return\n }\n\n const storedWidths = storage.get(panels)\n\n if (storedWidths) {\n const validatedStoredWidths = validateWidths(panels, storedWidths, window.innerWidth)\n // oxlint-disable-next-line react/react-compiler\n setWidths(validatedStoredWidths)\n return\n }\n\n const defaultWidths = getDefaultWidths(panels)\n setWidths(defaultWidths)\n }, [storage, panels])\n\n // For storing current widths in localStorage\n useEffect(() => {\n if (!widths.length) return\n storage.setDebounced(panels, widths)\n }, [storage, panels, widths])\n\n useLayoutEffect(() => {\n const resizeObserver = new ResizeObserver(() => {\n // Keep the drag's cached rect in sync when the container resizes (cheap: post-layout, no reflow).\n dragRef.current.containerRect = getContainerRect(panelsEl.current)\n\n const {panels, widths: prevWidths} = panelsRef.current\n\n const nextWidths = validateWidths(panels, prevWidths, window.innerWidth)\n\n const widthsChanged = prevWidths.some((prevWidth, i) => prevWidth !== nextWidths[i])\n if (widthsChanged) {\n setWidths(nextWidths)\n }\n })\n\n resizeObserver.observe(panelsEl.current!)\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [])\n\n const context = useMemo(\n () => ({\n activeResizer,\n drag,\n getPanelStyle,\n registerElement,\n startDragging,\n stopDragging,\n unregisterElement,\n }),\n [\n activeResizer,\n drag,\n getPanelStyle,\n registerElement,\n startDragging,\n stopDragging,\n unregisterElement,\n ],\n )\n\n return (\n <PresentationPanelsContext.Provider value={context}>\n <PanelsWrapper ref={panelsEl}>{children}</PanelsWrapper>\n </PresentationPanelsContext.Provider>\n )\n}\n","/**\n * Which pane the narrow-viewport tab bar shows: preview, navigator, or document editor.\n *\n * @internal\n */\nexport type PresentationLayoutTab = 'preview' | 'navigator' | 'content'\n\n/**\n * DOM id of a panel's root, used as the `aria-controls` target for its tab.\n *\n * @internal\n */\nexport function getPresentationPanelHtmlId(tab: PresentationLayoutTab): string {\n return `presentation-narrow-panel-${tab}`\n}\n","import {Card, Flex, TabList} from '@sanity/ui'\nimport {type FunctionComponent, useMemo} from 'react'\nimport {useTranslation} from 'sanity'\n\nimport {Tab} from '../../ui-components/tab/Tab'\nimport {presentationLocaleNamespace} from '../i18n'\nimport {getPresentationPanelHtmlId, type PresentationLayoutTab} from './presentationLayoutTab'\n\ninterface PresentationNarrowTabBarProps {\n activeTab: PresentationLayoutTab\n navigatorEnabled: boolean\n onTabChange: (tab: PresentationLayoutTab) => void\n}\n\n/**\n * Tab bar shown above the panels at narrow viewports to switch between panes one at a time.\n *\n * @internal\n */\nexport const PresentationNarrowTabBar: FunctionComponent<PresentationNarrowTabBarProps> =\n function PresentationNarrowTabBar(props) {\n const {activeTab, navigatorEnabled, onTabChange} = props\n const {t} = useTranslation(presentationLocaleNamespace)\n\n const tabs = useMemo<{id: PresentationLayoutTab; label: string}[]>(() => {\n const orderedTabs: {id: PresentationLayoutTab; label: string}[] = [\n {id: 'preview', label: t('narrow-tabs.preview-tab.label')},\n ]\n if (navigatorEnabled) {\n orderedTabs.push({id: 'navigator', label: t('narrow-tabs.navigator-tab.label')})\n }\n orderedTabs.push({id: 'content', label: t('narrow-tabs.content-tab.label')})\n return orderedTabs\n }, [navigatorEnabled, t])\n\n return (\n <Card borderBottom paddingX={2} paddingY={1}>\n {/* Center the tab group within the bar rather than letting it sit against the left edge. */}\n <Flex justify=\"center\">\n <TabList space={1}>\n {tabs.map((tab) => (\n <Tab\n key={tab.id}\n aria-controls={getPresentationPanelHtmlId(tab.id)}\n id={`presentation-narrow-tab-${tab.id}`}\n label={tab.label}\n onClick={() => onTabChange(tab.id)}\n selected={activeTab === tab.id}\n />\n ))}\n </TabList>\n </Flex>\n </Card>\n )\n }\n","import {Box, Card, type CardProps, Container, Flex, Inline, Stack, Text} from '@sanity/ui'\nimport {type ReactNode} from 'react'\nimport {useTranslation} from 'sanity'\n\nimport {Button} from '../../ui-components/button/Button'\nimport {presentationLocaleNamespace} from '../i18n'\n\nexport function ErrorCard(\n props: {\n children?: ReactNode\n message: string\n onRetry?: () => void\n onContinueAnyway?: () => void\n } & CardProps,\n): React.JSX.Element {\n const {children, message, onRetry, onContinueAnyway, ...restProps} = props\n\n const {t} = useTranslation(presentationLocaleNamespace)\n\n const retryButton = (\n <Button mode=\"ghost\" onClick={onRetry} text={t('error-card.retry-button.text')} />\n )\n const continueAnywayButton = (\n <Button\n mode=\"ghost\"\n tone=\"critical\"\n onClick={onContinueAnyway}\n text={t('error-card.continue-button.text')}\n />\n )\n\n return (\n <Card height=\"fill\" {...restProps}>\n <Flex align=\"center\" height=\"fill\" justify=\"center\">\n <Container padding={4} sizing=\"border\" width={0}>\n <Stack space={4}>\n <Stack space={3}>\n <Text size={1} weight=\"semibold\">\n {t('error-card.title')}\n </Text>\n <Text muted size={1}>\n {message}\n </Text>\n </Stack>\n\n {children}\n\n {onRetry && onContinueAnyway ? (\n <Inline space={2}>\n {retryButton}\n {continueAnywayButton}\n </Inline>\n ) : onRetry ? (\n <Box>{retryButton}</Box>\n ) : onContinueAnyway ? (\n <Box>{continueAnywayButton}</Box>\n ) : null}\n </Stack>\n </Container>\n </Flex>\n </Card>\n )\n}\n","import {forwardRef} from 'react'\nimport {StateLink} from 'sanity/router'\nimport {type ChildLinkProps} from 'sanity/structure'\n\nimport {type PresentationSearchParams} from '../types'\n\nexport const ChildLink = forwardRef(function ChildLink(\n props: ChildLinkProps & {\n childType: string\n searchParams: PresentationSearchParams\n },\n ref: React.ForwardedRef<HTMLAnchorElement>,\n) {\n const {childId, childType, childPayload, childParameters, searchParams, ...rest} = props\n\n return (\n <StateLink\n {...rest}\n ref={ref}\n state={{\n id: childId,\n type: childType,\n _searchParams: Object.entries({...searchParams, ...childParameters}),\n }}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport {getPublishedId, pathToString} from 'sanity'\nimport {type ReferenceChildLinkProps} from 'sanity/structure'\n\nimport {type PresentationSearchParams} from '../types'\nimport {ChildLink} from './ChildLink'\n\nexport const ReferenceChildLink = forwardRef(function ReferenceChildLink(\n props: ReferenceChildLinkProps & {searchParams: PresentationSearchParams},\n ref: React.ForwardedRef<HTMLAnchorElement>,\n) {\n const {documentId, documentType, parentRefPath, template, searchParams, ...rest} = props\n\n return (\n <ChildLink\n {...rest}\n ref={ref}\n childId={getPublishedId(documentId)}\n childType={documentType}\n childPayload={template?.params}\n childParameters={{\n parentRefPath: pathToString(parentRefPath),\n ...(template && {template: template?.id}),\n }}\n searchParams={searchParams}\n />\n )\n})\n","import {type ForwardedRef, forwardRef} from 'react'\nimport {getPublishedId} from 'sanity'\nimport {type IntentJsonParams, type IntentParameters, IntentLink} from 'sanity/router'\nimport {type ChildLinkProps} from 'sanity/structure'\n\n/**\n * Opens a child document in the structure tool (new tab) when it is not part of the\n * presentation preview surface.\n */\nexport const StructureIntentChildLink = forwardRef(function StructureIntentChildLink(\n props: ChildLinkProps,\n ref: ForwardedRef<HTMLAnchorElement>,\n) {\n const {childId, childParameters, childPayload, children, ...rest} = props\n const childType = childParameters?.type\n\n if (!childType) {\n return null\n }\n\n const intentParams = {\n ...childParameters,\n id: getPublishedId(childId),\n mode: 'structure',\n }\n\n const params: IntentParameters =\n childPayload !== undefined ? [intentParams, childPayload as IntentJsonParams] : intentParams\n\n return (\n <IntentLink\n {...rest}\n ref={ref}\n intent=\"edit\"\n params={params}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {children}\n </IntentLink>\n )\n})\n","import {toString as pathToString} from '@sanity/util/paths'\nimport {forwardRef, type PropsWithChildren, useCallback, useMemo} from 'react'\nimport {getPublishedId, useUnique} from 'sanity'\nimport {StateLink, useRouter} from 'sanity/router'\nimport {\n type BackLinkProps,\n type ChildLinkProps,\n PaneRouterContext,\n type PaneRouterContextValue,\n type ReferenceChildLinkProps,\n} from 'sanity/structure'\n\nimport {\n type PresentationNavigate,\n type PresentationParamsContextValue,\n type PresentationSearchParams,\n type StructureDocumentPaneParams,\n} from '../types'\nimport {ChildLink} from './ChildLink'\nimport {ReferenceChildLink} from './ReferenceChildLink'\nimport {StructureIntentChildLink} from './StructureIntentChildLink'\n\nfunction encodeQueryString(params: Record<string, unknown> = {}): string {\n const parts = Object.entries(params)\n .map(([key, value]) => `${key}=${value}`)\n .join('&')\n\n return parts.length ? `?${parts}` : ''\n}\n\nfunction resolveQueryStringFromParams(nextParams: Record<string, string | undefined>) {\n const allowed = [\n 'comment',\n 'inspect',\n 'instruction',\n 'pathKey',\n 'rev',\n 'since',\n 'template',\n 'view',\n ] satisfies Array<keyof PresentationParamsContextValue> as string[]\n\n const safeNextParams = Object.entries(nextParams)\n .filter(([key]) => allowed.includes(key))\n .reduce((obj, [key, value]) => {\n if (value == undefined) return obj\n return {...obj, [key]: value}\n }, {})\n\n return encodeQueryString(safeNextParams)\n}\n\nconst BackLink = forwardRef(function BackLink(\n props: BackLinkProps & {searchParams: PresentationSearchParams},\n ref: React.ForwardedRef<HTMLAnchorElement>,\n) {\n const {searchParams, ...restProps} = props\n return (\n <StateLink\n {...restProps}\n ref={ref}\n state={{\n type: undefined,\n _searchParams: Object.entries(searchParams),\n }}\n title={undefined}\n />\n )\n})\n\nexport type PresentationPaneRouterProviderProps = PropsWithChildren<{\n onEditReference: PresentationNavigate\n onStructureParams: (params: StructureDocumentPaneParams) => void\n refs?: {_id: string; _type: string}[]\n searchParams: PresentationSearchParams\n structureParams: StructureDocumentPaneParams\n}>\n\nexport function PresentationPaneRouterProvider(\n props: PresentationPaneRouterProviderProps,\n): React.JSX.Element {\n const {children, onEditReference, onStructureParams, structureParams, searchParams, refs} = props\n\n const {state: routerState, resolvePathFromState} = useRouter()\n\n const routerSearchParams = useUnique(Object.fromEntries(routerState._searchParams || []))\n\n const createPathWithParams: PaneRouterContextValue['createPathWithParams'] = useCallback(\n (nextParams) => {\n const path = resolvePathFromState(routerState)\n const qs = resolveQueryStringFromParams({\n ...routerSearchParams,\n ...nextParams,\n })\n return `${path}${qs}`\n },\n [resolvePathFromState, routerSearchParams, routerState],\n )\n\n const context: PaneRouterContextValue = useMemo(() => {\n return {\n index: 0,\n groupIndex: 0,\n siblingIndex: 0,\n payload: {},\n // oxlint-disable-next-line no-explicit-any\n params: structureParams as any,\n hasGroupSiblings: false,\n groupLength: 1,\n routerPanesState: [],\n ChildLink: forwardRef<HTMLAnchorElement, ChildLinkProps>(\n function ContextChildLink(childLinkProps, ref) {\n const {childId, childParameters, ...rest} = childLinkProps\n const doc = refs?.find((r) => r._id === childId || getPublishedId(r._id) === childId)\n\n if (!doc) {\n return (\n <StructureIntentChildLink\n {...rest}\n ref={ref}\n childId={childId}\n childParameters={childParameters}\n />\n )\n }\n return (\n <ChildLink\n {...rest}\n ref={ref}\n childId={childId}\n childType={doc._type}\n searchParams={searchParams}\n />\n )\n },\n ),\n BackLink: forwardRef<HTMLAnchorElement, BackLinkProps>(\n function ContextBackLink(backLinkProps, ref) {\n return <BackLink {...backLinkProps} ref={ref} searchParams={searchParams} />\n },\n ),\n ReferenceChildLink: forwardRef<HTMLAnchorElement, ReferenceChildLinkProps>(\n function ContextReferenceChildLink(childLinkProps, ref) {\n return <ReferenceChildLink {...childLinkProps} ref={ref} searchParams={searchParams} />\n },\n ),\n ParameterizedLink: () => {\n throw new Error('ParameterizedLink not implemented')\n },\n closeCurrentAndAfter: () => {\n console.warn('closeCurrentAndAfter')\n },\n handleEditReference: (options) => {\n const {id, template, type, parentRefPath, version} = options\n onEditReference({\n state: {id, type},\n params: {\n template: template.id,\n parentRefPath: pathToString(parentRefPath),\n version,\n },\n })\n },\n replaceCurrent: (pane) => {\n console.warn('replaceCurrent', pane)\n },\n closeCurrent: () => {\n console.warn('closeCurrent')\n },\n duplicateCurrent: (pane) => {\n console.warn('duplicateCurrent', pane)\n },\n setView: (viewId) => {\n console.warn('setView', viewId)\n },\n setParams: onStructureParams,\n setPayload: (payload) => {\n console.warn('setPayload', payload)\n },\n navigateIntent: (intentName, intentParams, options) => {\n console.warn('navigateIntent', intentName, intentParams, options)\n },\n createPathWithParams,\n }\n }, [\n createPathWithParams,\n onEditReference,\n onStructureParams,\n refs,\n searchParams,\n structureParams,\n ])\n\n return <PaneRouterContext.Provider value={context}>{children}</PaneRouterContext.Provider>\n}\n","import {Card, Code, Flex, Label, Stack} from '@sanity/ui'\nimport {type ErrorInfo, useCallback, useEffect, useMemo, useState} from 'react'\nimport {getPublishedId, useTranslation} from 'sanity'\nimport {\n DocumentListPane as StructureDocumentListPane,\n ORDER_BY_IDS_PARAM_FIELD,\n PaneLayout,\n type PaneNode,\n StructureToolProvider,\n} from 'sanity/structure'\nimport {styled} from 'styled-components'\n\nimport {ErrorBoundary} from '../../ui-components/errorBoundary/ErrorBoundary'\nimport {ErrorCard} from '../components/ErrorCard'\nimport {presentationLocaleNamespace} from '../i18n'\nimport {PresentationPaneRouterProvider} from '../paneRouter/PresentationPaneRouterProvider'\nimport {\n type MainDocumentState,\n type PresentationNavigate,\n type PresentationSearchParams,\n type StructureDocumentPaneParams,\n} from '../types'\nimport {usePresentationTool} from '../usePresentationTool'\n\nconst RootLayout = styled(PaneLayout)`\n height: 100%;\n`\n\nconst Root = styled(Flex)`\n & > div {\n min-width: none !important;\n max-width: none !important;\n }\n`\n\nconst WrappedCode = styled(Code)`\n white-space: pre-wrap;\n`\n\n/**\n * Visual page order seeds the list; `refs` then appends any documents visual\n * editing did not report. `refs` ids are normalised to published ids (they carry\n * draft/version variants); `visualOrderPublishedIds` already are.\n */\nexport function deriveOrderedIds({\n visualOrderPublishedIds,\n refs,\n mainDocumentId,\n}: {\n visualOrderPublishedIds: string[]\n refs: {_id: string; _type: string}[]\n mainDocumentId?: string\n}): string[] {\n const seenPublishedIds = new Set<string>()\n const candidatePublishedIds = [\n ...visualOrderPublishedIds,\n ...refs.map((ref) => getPublishedId(ref._id)),\n ]\n\n return candidatePublishedIds.reduce<string[]>((accumulatedIds, publishedId) => {\n if (publishedId === mainDocumentId || seenPublishedIds.has(publishedId)) {\n return accumulatedIds\n }\n seenPublishedIds.add(publishedId)\n accumulatedIds.push(publishedId)\n return accumulatedIds\n }, [])\n}\n\nexport function DocumentListPane(props: {\n mainDocumentState?: MainDocumentState\n onEditReference: PresentationNavigate\n onStructureParams: (params: StructureDocumentPaneParams) => void\n searchParams: PresentationSearchParams\n refs: {_id: string; _type: string}[]\n visualOrderPublishedIds: string[]\n}): React.JSX.Element {\n const {\n mainDocumentState,\n onEditReference,\n onStructureParams,\n searchParams,\n refs,\n visualOrderPublishedIds,\n } = props\n\n const {t} = useTranslation(presentationLocaleNamespace)\n const {devMode} = usePresentationTool()\n\n const ids = useMemo(\n () =>\n deriveOrderedIds({\n visualOrderPublishedIds,\n refs,\n mainDocumentId: mainDocumentState?.document?._id,\n }),\n [mainDocumentState, refs, visualOrderPublishedIds],\n )\n\n const pane: Extract<PaneNode, {type: 'documentList'}> = useMemo(\n () => ({\n id: 'presentationDocumentsOnPage',\n options: {\n filter: '_id in $ids',\n params: {ids},\n defaultOrdering: [{field: ORDER_BY_IDS_PARAM_FIELD, direction: 'asc'}],\n },\n schemaTypeName: '',\n title: t('document-list-pane.document-list.title'),\n type: 'documentList',\n menuItemGroups: [{id: 'sorting'}],\n menuItems: [\n {\n group: 'sorting',\n action: 'setSortOrder',\n i18n: {\n title: {\n key: 'document-list-pane.ordering.by-appearance',\n ns: presentationLocaleNamespace,\n },\n },\n title: 'By appearance',\n params: {by: [{field: ORDER_BY_IDS_PARAM_FIELD, direction: 'asc'}]},\n },\n {\n group: 'sorting',\n action: 'setSortOrder',\n i18n: {\n title: {\n key: 'document-list-pane.ordering.last-edited',\n ns: presentationLocaleNamespace,\n },\n },\n title: 'Last edited',\n params: {by: [{field: '_updatedAt', direction: 'desc'}]},\n },\n ],\n suppressRestoreDefaultMenuItems: true,\n }),\n // Pane id drives the keyvalue persistence key (global across pages). Avoid\n // `$` — the keyvalue store rejects it as a key segment.\n [ids, t],\n )\n\n const [errorParams, setErrorParams] = useState<{\n info: ErrorInfo\n error: Error\n } | null>(null)\n\n const handleRetry = useCallback(() => setErrorParams(null), [])\n\n const [structureParams] = useState(() => ({}))\n\n // Reset error state when `refs` value changes\n // oxlint-disable-next-line react/react-compiler\n useEffect(() => setErrorParams(null), [refs])\n\n if (errorParams) {\n return (\n <ErrorCard flex={1} message={t('document-list-pane.error.text')} onRetry={handleRetry}>\n {devMode && (\n // show runtime error message in dev mode\n <Card overflow=\"auto\" padding={3} radius={2} tone=\"critical\">\n <Stack space={3}>\n <Label muted size={0}>\n {t('presentation-error.label')}\n </Label>\n <WrappedCode size={1}>{errorParams.error.message}</WrappedCode>\n </Stack>\n </Card>\n )}\n </ErrorCard>\n )\n }\n\n return (\n <ErrorBoundary onCatch={setErrorParams}>\n <RootLayout>\n <StructureToolProvider>\n <PresentationPaneRouterProvider\n onEditReference={onEditReference}\n onStructureParams={onStructureParams}\n structureParams={structureParams}\n searchParams={searchParams}\n refs={refs}\n >\n <Root direction=\"column\" flex={1}>\n <StructureDocumentListPane\n index={0}\n itemId=\"$root\"\n pane={pane}\n // oxlint-disable-next-line @sanity/i18n/no-attribute-string-literals\n paneKey=\"$root\"\n />\n </Root>\n </PresentationPaneRouterProvider>\n </StructureToolProvider>\n </RootLayout>\n </ErrorBoundary>\n )\n}\n","import {studioPath} from '@sanity/client/csm'\nimport {Card, Code, Label, Stack} from '@sanity/ui'\nimport {type ErrorInfo, Suspense, useCallback, useEffect, useMemo, useState} from 'react'\nimport {type Path, useTranslation} from 'sanity'\nimport {decodeJsonParams} from 'sanity/router'\nimport {\n DocumentPane as StructureDocumentPane,\n type DocumentPaneNode,\n PaneLayout,\n} from 'sanity/structure'\nimport {styled} from 'styled-components'\n\nimport {ErrorBoundary} from '../../ui-components/errorBoundary/ErrorBoundary'\nimport {ErrorCard} from '../components/ErrorCard'\nimport {presentationLocaleNamespace} from '../i18n'\nimport {PresentationPaneRouterProvider} from '../paneRouter/PresentationPaneRouterProvider'\nimport {PresentationSpinner} from '../PresentationSpinner'\nimport {\n type PresentationNavigate,\n type PresentationSearchParams,\n type PresentationStateParams,\n type StructureDocumentPaneParams,\n} from '../types'\nimport {usePresentationTool} from '../usePresentationTool'\n\nconst WrappedCode = styled(Code)`\n white-space: pre-wrap;\n`\n\nexport function DocumentPane(props: {\n documentId: string\n documentType: string\n onFocusPath: (state: Required<PresentationStateParams>) => void\n onEditReference: PresentationNavigate\n onStructureParams: (params: StructureDocumentPaneParams) => void\n structureParams: StructureDocumentPaneParams\n searchParams: PresentationSearchParams\n}): React.JSX.Element {\n const {\n documentId,\n documentType,\n onFocusPath,\n onEditReference,\n onStructureParams,\n searchParams,\n structureParams,\n } = props\n const {template, templateParams} = structureParams\n\n const {t} = useTranslation(presentationLocaleNamespace)\n const {devMode} = usePresentationTool()\n\n const paneDocumentNode: DocumentPaneNode = useMemo(\n () => ({\n id: documentId,\n options: {\n id: documentId,\n type: documentType,\n template,\n templateParameters: decodeJsonParams(templateParams),\n },\n title: '',\n type: 'document',\n }),\n [documentId, documentType, template, templateParams],\n )\n\n const handleFocusPath = useCallback(\n (path: Path) => {\n return onFocusPath({\n id: documentId,\n type: documentType,\n path: studioPath.toString(path),\n })\n },\n [documentId, documentType, onFocusPath],\n )\n\n const [errorParams, setErrorParams] = useState<{\n info: ErrorInfo\n error: Error\n } | null>(null)\n\n const handleRetry = useCallback(() => setErrorParams(null), [])\n\n // Reset error state when parameters change\n useEffect(() => {\n // oxlint-disable-next-line react/react-compiler\n setErrorParams(null)\n }, [documentId, documentType, structureParams])\n\n if (errorParams) {\n return (\n <ErrorCard flex={1} message={t('document-pane.error.text')} onRetry={handleRetry}>\n {devMode && (\n // show runtime error message in dev mode\n <Card overflow=\"auto\" padding={3} radius={2} tone=\"critical\">\n <Stack space={3}>\n <Label muted size={0}>\n {t('presentation-error.label')}\n </Label>\n <WrappedCode size={1}>{errorParams.error.message}</WrappedCode>\n </Stack>\n </Card>\n )}\n </ErrorCard>\n )\n }\n\n return (\n <ErrorBoundary onCatch={setErrorParams}>\n <PaneLayout style={{height: '100%'}}>\n <PresentationPaneRouterProvider\n searchParams={searchParams}\n onEditReference={onEditReference}\n onStructureParams={onStructureParams}\n structureParams={structureParams}\n >\n <Suspense fallback={<PresentationSpinner />}>\n <StructureDocumentPane\n // oxlint-disable-next-line @sanity/i18n/no-attribute-string-literals\n paneKey=\"document\"\n index={1}\n itemId=\"document\"\n pane={paneDocumentNode}\n onFocusPath={handleFocusPath}\n />\n </Suspense>\n </PresentationPaneRouterProvider>\n </PaneLayout>\n </ErrorBoundary>\n )\n}\n","import {StructureToolProvider} from '../../structure/StructureToolProvider'\nimport {\n type PresentationNavigate,\n type PresentationSearchParams,\n type PresentationStateParams,\n type StructureDocumentPaneParams,\n} from '../types'\nimport {DocumentPane} from './DocumentPane'\n\nexport function DocumentPanel(props: {\n documentId: string\n documentType: string\n onEditReference: PresentationNavigate\n onFocusPath: (state: Required<PresentationStateParams>) => void\n onStructureParams: (params: StructureDocumentPaneParams) => void\n searchParams: PresentationSearchParams\n structureParams: StructureDocumentPaneParams\n}): React.JSX.Element {\n const {\n documentId,\n documentType,\n onFocusPath,\n onEditReference,\n onStructureParams,\n searchParams,\n structureParams,\n } = props\n return (\n <StructureToolProvider>\n <DocumentPane\n documentId={documentId}\n documentType={documentType}\n onEditReference={onEditReference}\n onFocusPath={onFocusPath}\n onStructureParams={onStructureParams}\n searchParams={searchParams}\n structureParams={structureParams}\n />\n </StructureToolProvider>\n )\n}\n","import {type SchemaType} from '@sanity/types'\nimport {useEffect, useState} from 'react'\nimport {\n getPreviewStateObservable,\n type PreviewValue,\n type SanityDocument,\n useDocumentPreviewStore,\n usePerspective,\n} from 'sanity'\n\ninterface PreviewState {\n isLoading?: boolean\n snapshot?: PreviewValue | Partial<SanityDocument> | null\n}\n\nexport default function usePreviewState(documentId: string, schemaType?: SchemaType): PreviewState {\n const documentPreviewStore = useDocumentPreviewStore()\n const [preview, setPreview] = useState<PreviewState>({})\n const {perspectiveStack} = usePerspective()\n useEffect(() => {\n if (!schemaType) {\n return undefined\n }\n const subscription = getPreviewStateObservable(\n documentPreviewStore,\n schemaType,\n documentId,\n perspectiveStack,\n ).subscribe((state) => {\n setPreview(state)\n })\n\n return () => {\n subscription?.unsubscribe()\n }\n }, [documentPreviewStore, schemaType, documentId, perspectiveStack])\n\n return preview\n}\n","import {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\nimport {Box, Card, Flex, Text} from '@sanity/ui'\nimport {type HTMLProps, useCallback, useMemo} from 'react'\nimport {\n getPreviewValueWithFallback,\n PreviewCard,\n SanityDefaultPreview,\n Translate,\n useSchema,\n useTranslation,\n} from 'sanity'\nimport {StateLink} from 'sanity/router'\n\nimport {presentationLocaleNamespace} from '../i18n'\nimport {\n type MainDocumentState,\n type PresentationNavigate,\n type PresentationSearchParams,\n type PresentationStateParams,\n type StructureDocumentPaneParams,\n} from '../types'\nimport {DocumentListPane} from './DocumentListPane'\nimport {DocumentPanel} from './DocumentPanel'\nimport usePreviewState from './usePreviewState'\n\nexport function ContentEditor(props: {\n documentId?: string\n documentType?: string\n mainDocumentState?: MainDocumentState\n onEditReference: PresentationNavigate\n onFocusPath: (state: Required<PresentationStateParams>) => void\n onStructureParams: (params: StructureDocumentPaneParams) => void\n refs: {_id: string; _type: string}[]\n visualOrderPublishedIds: string[]\n structureParams: StructureDocumentPaneParams\n searchParams: PresentationSearchParams\n}): React.JSX.Element {\n const {\n documentId,\n documentType,\n mainDocumentState,\n onEditReference,\n onFocusPath,\n onStructureParams,\n refs,\n visualOrderPublishedIds,\n searchParams,\n structureParams,\n } = props\n\n const {t} = useTranslation(presentationLocaleNamespace)\n const schema = useSchema()\n\n const MainDocumentLink = useCallback(\n (props: HTMLProps<HTMLAnchorElement>) => {\n return (\n <StateLink\n {...props}\n state={{\n id: mainDocumentState?.document?._id,\n type: mainDocumentState?.document?._type,\n _searchParams: Object.entries(searchParams),\n }}\n />\n )\n },\n [mainDocumentState, searchParams],\n )\n\n const schemaType = useMemo(\n () => schema.get(mainDocumentState?.document?._type || 'shoe')!,\n [mainDocumentState, schema],\n )\n\n const previewState = usePreviewState(mainDocumentState?.document?._id || '', schemaType)\n\n const preview = useMemo(() => {\n if (!mainDocumentState?.document) return null\n\n return (\n <SanityDefaultPreview\n {...getPreviewValueWithFallback({\n snapshot: previewState.snapshot,\n fallback: mainDocumentState.document,\n })}\n schemaType={schemaType}\n status={\n <Card padding={1} radius={2} shadow={1}>\n <Text muted size={0} weight=\"medium\">\n {t('main-document.label')}\n </Text>\n </Card>\n }\n />\n )\n }, [mainDocumentState, schemaType, t, previewState])\n\n if (documentId && documentType) {\n return (\n <DocumentPanel\n documentId={documentId}\n documentType={documentType}\n onEditReference={onEditReference}\n onFocusPath={onFocusPath}\n onStructureParams={onStructureParams}\n searchParams={searchParams}\n structureParams={structureParams}\n />\n )\n }\n\n return (\n <Flex direction=\"column\" flex={1} height=\"fill\">\n {mainDocumentState && (\n <Card padding={3} tone={mainDocumentState.document ? 'inherit' : 'caution'}>\n {mainDocumentState.document ? (\n <PreviewCard\n __unstable_focusRing\n as={MainDocumentLink}\n data-as=\"a\"\n radius={2}\n sizing=\"border\"\n tone=\"inherit\"\n >\n {preview}\n </PreviewCard>\n ) : (\n <Card padding={2} radius={2} tone=\"inherit\">\n <Flex gap={3}>\n <Box flex=\"none\">\n <Text size={1}>\n <WarningOutlineIcon />\n </Text>\n </Box>\n <Box flex={1}>\n <Text size={1}>\n <Translate\n t={t}\n i18nKey=\"main-document.missing.text\"\n components={{Code: 'code'}}\n values={{path: mainDocumentState.path}}\n />\n </Text>\n </Box>\n </Flex>\n </Card>\n )}\n </Card>\n )}\n\n <DocumentListPane\n mainDocumentState={mainDocumentState}\n onEditReference={onEditReference}\n onStructureParams={onStructureParams}\n searchParams={searchParams}\n refs={refs}\n visualOrderPublishedIds={visualOrderPublishedIds}\n />\n </Flex>\n )\n}\n","import {useState} from 'react'\nimport {v4 as uuid} from 'uuid'\n\nexport function usePanelId(id?: string): string {\n const [panelId] = useState(() => id || uuid())\n return panelId\n}\n","import {\n type FunctionComponent,\n type MouseEvent as ReactMouseEvent,\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n} from 'react'\nimport {PresentationPanelsContext} from 'sanity/_singletons'\nimport {styled} from 'styled-components'\n\nimport {usePanelId} from './usePanelId'\n\nconst Resizer = styled.div<{$hidden: boolean}>`\n position: relative;\n ${({$hidden}) => $hidden && `display: none;`}\n`\nconst ResizerInner = styled.div<{\n $disabled: boolean\n}>`\n position: absolute;\n top: 0;\n bottom: 0;\n left: -5px;\n width: 9px;\n z-index: 10;\n cursor: ${({$disabled}) => ($disabled ? 'auto' : 'ew-resize')};\n\n /* Border */\n & > span:nth-child(1) {\n display: block;\n border-left: 1px solid var(--card-border-color);\n position: absolute;\n top: 0;\n left: 4px;\n bottom: 0;\n transition: opacity 200ms;\n }\n\n ${({$disabled}) =>\n !$disabled &&\n `\n /* Hover effect */\n & > span:nth-child(2) {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 9px;\n bottom: 0;\n background-color: var(--card-border-color);\n opacity: 0;\n transition: opacity 150ms;\n }\n\n @media (hover: hover) {\n &:hover > span:nth-child(2) {\n opacity: 0.2;\n }\n }\n `}\n`\n\nexport const PanelResizer: FunctionComponent<{\n id?: string\n order: number\n disabled?: boolean\n hidden?: boolean\n}> = function ({id: propId, order, disabled = false, hidden = false}) {\n const el = useRef<HTMLDivElement>(null)\n\n const context = useContext(PresentationPanelsContext)\n\n if (context === null) {\n throw Error(`Panel components must be rendered within a PanelGroup container`)\n }\n\n const id = usePanelId(propId)\n\n const {activeResizer, drag, startDragging, stopDragging, registerElement, unregisterElement} =\n context\n\n const isDragging = activeResizer === id\n\n if (context === null) {\n throw Error(`Panel components must be rendered within a PanelGroup container`)\n }\n\n const onMouseDown = useCallback(\n (event: ReactMouseEvent) => {\n // Don't drag from a disabled/hidden resizer: the drag effect bails, stranding activeResizer.\n if (disabled || hidden) return\n startDragging(id, event.nativeEvent)\n },\n [disabled, hidden, id, startDragging],\n )\n\n const onDrag = useCallback(\n (e: MouseEvent) => {\n drag(id, e)\n },\n [id, drag],\n )\n\n const onDragStop = useCallback(() => {\n el.current!.blur()\n stopDragging()\n }, [stopDragging])\n\n useEffect(() => {\n if (!isDragging || disabled) return\n\n // Set styles to prevent text selection and force an ew-resize cursor whilst\n // dragging. Return a reset callback so we can revert to any values that\n // might have been present before dragging started.\n function setDocumentStyles() {\n const bodyStyle = document.body.style\n const documentStyle = document.documentElement.style\n\n const {cursor} = documentStyle\n const {userSelect} = bodyStyle\n\n documentStyle.cursor = 'ew-resize'\n bodyStyle.userSelect = 'none'\n\n return () => {\n if (cursor) documentStyle.cursor = cursor\n else documentStyle.removeProperty('cursor')\n\n if (userSelect) bodyStyle.userSelect = userSelect\n else bodyStyle.removeProperty('user-select')\n }\n }\n\n const resetDocumentStyles = setDocumentStyles()\n window.addEventListener('mousemove', onDrag)\n window.addEventListener('mouseup', onDragStop)\n window.addEventListener('contextmenu', onDragStop)\n\n // oxlint-disable-next-line consistent-return\n return () => {\n resetDocumentStyles()\n window.removeEventListener('mousemove', onDrag)\n window.removeEventListener('mouseup', onDragStop)\n window.removeEventListener('contextmenu', onDragStop)\n }\n }, [disabled, isDragging, onDrag, onDragStop])\n\n useLayoutEffect(() => {\n registerElement(id, {id, order, type: 'resizer', el})\n\n return () => {\n unregisterElement(id)\n }\n }, [id, order, registerElement, unregisterElement])\n\n return (\n <Resizer $hidden={hidden} onMouseDown={onMouseDown} ref={el}>\n <ResizerInner $disabled={disabled}>\n <span />\n <span />\n </ResizerInner>\n </Resizer>\n )\n}\n","import {\n type Dispatch,\n type FunctionComponent,\n type PropsWithChildren,\n type SetStateAction,\n} from 'react'\nimport {type CommentIntentGetter, CommentsIntentProvider, type SanityDocument} from 'sanity'\n\nimport {ContentEditor} from './editor/ContentEditor'\nimport {DisplayedDocumentBroadcasterProvider} from './loader/DisplayedDocumentBroadcaster'\nimport {Panel} from './panels/Panel'\nimport {PanelResizer} from './panels/PanelResizer'\nimport {getPresentationPanelHtmlId} from './panels/presentationLayoutTab'\nimport {\n type MainDocumentState,\n type PresentationNavigate,\n type PresentationParamsContextValue,\n type PresentationSearchParams,\n type PresentationStateParams,\n type StructureDocumentPaneParams,\n} from './types'\n\nexport interface PresentationContentProps {\n documentId: PresentationParamsContextValue['id']\n documentsOnPage: {_id: string; _type: string}[]\n visualOrderPublishedIds: string[]\n documentType: PresentationParamsContextValue['type']\n getCommentIntent: CommentIntentGetter\n /** Hide the document panel (narrow mode, another tab active). */\n hidden?: boolean\n mainDocumentState: MainDocumentState | undefined\n onEditReference: PresentationNavigate\n onFocusPath: (state: Required<PresentationStateParams>) => void\n onStructureParams: (params: StructureDocumentPaneParams) => void\n /** Hide the preceding resizer (narrow mode). */\n resizerHidden?: boolean\n searchParams: PresentationSearchParams\n setDisplayedDocument: Dispatch<SetStateAction<Partial<SanityDocument> | null | undefined>>\n structureParams: StructureDocumentPaneParams\n}\n\nconst PresentationContentWrapper: FunctionComponent<\n PropsWithChildren<{\n documentId?: string\n getCommentIntent: CommentIntentGetter\n hidden?: boolean\n resizerHidden?: boolean\n setDisplayedDocument: Dispatch<SetStateAction<Partial<SanityDocument> | null | undefined>>\n }>\n> = (props) => {\n const {documentId, hidden, resizerHidden, setDisplayedDocument, getCommentIntent} = props\n return (\n <>\n <PanelResizer order={4} hidden={resizerHidden} />\n <Panel\n id=\"content\"\n htmlId={getPresentationPanelHtmlId('content')}\n minWidth={325}\n order={5}\n hidden={hidden}\n >\n <DisplayedDocumentBroadcasterProvider\n documentId={documentId}\n setDisplayedDocument={setDisplayedDocument}\n >\n <CommentsIntentProvider getIntent={getCommentIntent}>\n {props.children}\n </CommentsIntentProvider>\n </DisplayedDocumentBroadcasterProvider>\n </Panel>\n </>\n )\n}\n\nexport const PresentationContent: FunctionComponent<PresentationContentProps> = (props) => {\n const {\n documentId,\n documentsOnPage,\n visualOrderPublishedIds,\n documentType,\n getCommentIntent,\n hidden,\n mainDocumentState,\n onEditReference,\n onFocusPath,\n onStructureParams,\n resizerHidden,\n searchParams,\n setDisplayedDocument,\n structureParams,\n } = props\n\n return (\n <PresentationContentWrapper\n documentId={documentId}\n getCommentIntent={getCommentIntent}\n hidden={hidden}\n resizerHidden={resizerHidden}\n setDisplayedDocument={setDisplayedDocument}\n >\n <ContentEditor\n documentId={documentId}\n documentType={documentType}\n mainDocumentState={mainDocumentState}\n onEditReference={onEditReference}\n onFocusPath={onFocusPath}\n onStructureParams={onStructureParams}\n refs={documentsOnPage}\n visualOrderPublishedIds={visualOrderPublishedIds}\n searchParams={searchParams}\n structureParams={structureParams}\n />\n </PresentationContentWrapper>\n )\n}\n","import {type FunctionComponent, type PropsWithChildren, useCallback} from 'react'\nimport {PresentationNavigateContext} from 'sanity/_singletons'\n\nimport {\n type CombinedSearchParams,\n type PresentationNavigate,\n type PresentationNavigateContextValue,\n type PresentationNavigateOptions,\n type PresentationStateParams,\n} from './types'\n\nexport const PresentationNavigateProvider: FunctionComponent<\n PropsWithChildren<{\n navigate: PresentationNavigate\n }>\n> = function (props) {\n const {children, navigate: _navigate} = props\n\n const navigate = useCallback<PresentationNavigateContextValue>(\n (preview, document) => {\n if (preview || document) {\n const obj: {\n state?: PresentationStateParams\n params?: CombinedSearchParams\n } = {}\n if (preview) obj.params = {preview}\n if (document) obj.state = document\n // Cast because navigate expects either params or state to be defined, which we guarantee above\n _navigate(obj as PresentationNavigateOptions)\n }\n },\n [_navigate],\n )\n\n return (\n <PresentationNavigateContext.Provider value={navigate}>\n {children}\n </PresentationNavigateContext.Provider>\n )\n}\n","import {type Dispatch, type SetStateAction, useEffect, useState} from 'react'\n\nexport function useLocalState<T>(key: string, defaultValue: T): [T, Dispatch<SetStateAction<T>>] {\n const [value, setValue] = useState<T>(() =>\n JSON.parse(localStorage.getItem(key) ?? JSON.stringify(defaultValue)),\n )\n\n useEffect(() => {\n localStorage.setItem(key, JSON.stringify(value))\n }, [key, value])\n\n return [value, setValue]\n}\n","import {memo, useCallback, useMemo} from 'react'\n\nimport {Panel} from './panels/Panel'\nimport {PanelResizer} from './panels/PanelResizer'\nimport {getPresentationPanelHtmlId} from './panels/presentationLayoutTab'\nimport {type NavigatorOptions} from './types'\nimport {useLocalState} from './useLocalState'\n\n/** @internal */\nexport interface UsePresentationNavigatorProps {\n unstable_navigator?: NavigatorOptions\n}\n\n/** @internal */\nexport interface UsePresentationNavigatorState {\n navigatorEnabled: boolean\n toggleNavigator: (() => void) | undefined\n}\n\n/** @internal */\nexport interface PresentationNavigatorProps {\n /** Hide the navigator panel (narrow mode, another tab active). */\n hidden?: boolean\n /** Hide the navigator's resizer (narrow mode). */\n resizerHidden?: boolean\n}\n\n/** @internal */\nexport function usePresentationNavigator(\n props: UsePresentationNavigatorProps,\n): [UsePresentationNavigatorState, (props: PresentationNavigatorProps) => React.JSX.Element] {\n const {unstable_navigator} = props\n\n const navigatorProvided = !!unstable_navigator?.component\n const [_navigatorEnabled, setNavigatorEnabled] = useLocalState<boolean>(\n 'presentation/navigator',\n navigatorProvided,\n )\n const navigatorEnabled = navigatorProvided ? _navigatorEnabled : false\n const toggleNavigator = useMemo(() => {\n if (!navigatorProvided) return undefined\n\n return () => setNavigatorEnabled((enabled) => !enabled)\n }, [navigatorProvided, setNavigatorEnabled])\n\n const Component = useCallback(\n function PresentationNavigator(componentProps: PresentationNavigatorProps) {\n return <>{navigatorEnabled && <Navigator {...unstable_navigator!} {...componentProps} />}</>\n },\n [navigatorEnabled, unstable_navigator],\n )\n\n return [{navigatorEnabled, toggleNavigator}, Component]\n}\n\nfunction NavigatorComponent(props: NavigatorOptions & PresentationNavigatorProps) {\n const {minWidth, maxWidth, component: NavigatorComponent, hidden, resizerHidden} = props\n const navigatorDisabled = minWidth != null && maxWidth != null && minWidth === maxWidth\n return (\n <>\n <Panel\n id=\"navigator\"\n htmlId={getPresentationPanelHtmlId('navigator')}\n minWidth={minWidth}\n maxWidth={maxWidth}\n order={1}\n hidden={hidden}\n >\n <NavigatorComponent />\n </Panel>\n <PanelResizer order={2} disabled={navigatorDisabled} hidden={resizerHidden} />\n </>\n )\n}\nconst Navigator = memo(NavigatorComponent)\n","import {type FunctionComponent, type PropsWithChildren, useMemo} from 'react'\nimport {PresentationParamsContext} from 'sanity/_singletons'\n\nimport {type PresentationParamsContextValue} from './types'\n\nexport const PresentationParamsProvider: FunctionComponent<\n PropsWithChildren<{\n params: PresentationParamsContextValue\n }>\n> = function (props) {\n const {children, params} = props\n\n const context = useMemo<PresentationParamsContextValue>(() => params, [params])\n\n return (\n <PresentationParamsContext.Provider value={context}>\n {children}\n </PresentationParamsContext.Provider>\n )\n}\n","import {type FunctionComponent, type PropsWithChildren, useMemo} from 'react'\nimport {PresentationContext} from 'sanity/_singletons'\n\nimport {\n type PresentationContextValue,\n type PresentationNavigate,\n type PresentationParamsContextValue,\n type PresentationSearchParams,\n type StructureDocumentPaneParams,\n} from './types'\n\nexport const PresentationProvider: FunctionComponent<\n PropsWithChildren<{\n devMode: boolean\n name: string\n navigate: PresentationNavigate\n params: PresentationParamsContextValue\n searchParams: PresentationSearchParams\n structureParams: StructureDocumentPaneParams\n }>\n> = function (props) {\n const {children, devMode, name, navigate, params, searchParams, structureParams} = props\n\n const context = useMemo<PresentationContextValue>(\n () => ({\n devMode,\n name,\n navigate,\n params,\n searchParams,\n structureParams,\n }),\n [devMode, name, navigate, params, searchParams, structureParams],\n )\n\n return <PresentationContext.Provider value={context}>{children}</PresentationContext.Provider>\n}\n","import {useSelector} from '@xstate/react'\n\nimport {type PreviewUrlRef} from './machines/preview-url'\n\nexport function useAllowPatterns(previewUrlRef: PreviewUrlRef) {\n const allowPatterns = useSelector(previewUrlRef, (state) => state.context.allowOrigins)\n if (!Array.isArray(allowPatterns)) {\n throw new TypeError('allowPatterns must be an array')\n }\n return allowPatterns\n}\n","/**\n * When encoding the current studio perspective it's necessary to deal with it sometimes being an array, in a consistent way.\n */\nexport function encodeStudioPerspective(studioPerspective: string[] | string): string {\n return Array.isArray(studioPerspective) ? studioPerspective.join(',') : studioPerspective\n}\n","import {useId as useReactId} from 'react'\n\nexport function useId(): string {\n const id = useReactId()\n // Uses the new format introduced in: https://github.com/facebook/react/pull/32001\n return id.startsWith(':') ? id.replace(/^:(.+):$/, '\\u00AB$1\\u00BB') : id\n}\n","import {Box} from '@sanity/ui'\nimport {motion, type VariantLabels, type Variants} from 'motion/react'\nimport {forwardRef, type ReactEventHandler, useEffect, useImperativeHandle, useRef} from 'react'\nimport {createGlobalStyle, styled} from 'styled-components'\n\nimport {useId} from '../useId'\n\ninterface IFrameProps {\n animate: VariantLabels\n initial: VariantLabels\n onLoad: ReactEventHandler<HTMLIFrameElement>\n preventClick: boolean\n src: string\n variants: Variants\n style: React.CSSProperties\n}\n\nexport const IFrame = forwardRef<HTMLIFrameElement, IFrameProps>(\n function IFrame(props, forwardedRef) {\n const {animate, initial, onLoad, preventClick, src, variants, style} = props\n\n const ref = useRef<HTMLIFrameElement | null>(null)\n // Forward the iframe ref to the parent component\n useImperativeHandle<HTMLIFrameElement | null, HTMLIFrameElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n /**\n * Ensure that clicking outside of menus and dialogs will close as focus shifts to the iframe\n */\n\n useEffect(() => {\n if (!ref.current) {\n return undefined\n }\n const instance = ref.current\n function handleBlur() {\n if (instance !== document.activeElement) {\n return\n }\n\n instance.dispatchEvent(new MouseEvent('mousedown', {bubbles: true, cancelable: true}))\n }\n window.addEventListener('blur', handleBlur)\n return () => {\n window.removeEventListener('blur', handleBlur)\n }\n }, [])\n\n const viewTransitionName = useId()\n\n return (\n <>\n <IFrameElement\n style={{\n ...style,\n viewTransitionName,\n }}\n animate={animate}\n initial={initial}\n onLoad={onLoad}\n ref={ref}\n src={src}\n variants={variants}\n />\n {preventClick && <IFrameOverlay />}\n <GlobalViewTransition />\n </>\n )\n },\n)\n\nconst IFrameElement = motion.create(styled.iframe`\n box-shadow: 0 0 0 1px var(--card-border-color);\n border: 0;\n max-height: 100%;\n width: 100%;\n view-transition-class: presentation-tool-iframe;\n`)\n\nconst IFrameOverlay = styled(Box)`\n position: absolute;\n inset: 0;\n background: transparent;\n`\n\nconst GlobalViewTransition = createGlobalStyle`\nhtml:active-view-transition-type(sanity-iframe-viewport) {\n view-transition-name: none;\n &::view-transition {\n pointer-events: none;\n }\n /* &::view-transition-old(root) {\n display: none;\n }\n &::view-transition-new(root) {\n animation: none;\n } */\n}\n`\n","import {LaunchIcon} from '@sanity/icons/Launch'\nimport {\n urlSearchParamPreviewPerspective,\n urlSearchParamPreviewVariant,\n} from '@sanity/preview-url-secret/constants'\nimport {Text} from '@sanity/ui'\nimport {useCallback, useMemo} from 'react'\nimport {useTranslation} from 'sanity'\n\nimport {Button} from '../../ui-components/button/Button'\nimport {Tooltip} from '../../ui-components/tooltip/Tooltip'\nimport {presentationLocaleNamespace} from '../i18n'\nimport {type PresentationPerspective} from '../types'\nimport {encodeStudioPerspective} from '../util/encodeStudioPerspective'\nimport {type PreviewProps} from './Preview'\n\n/** @internal */\nexport function OpenPreviewButton(\n props: Pick<PreviewProps, 'openPopup'> & {\n previewLocationOrigin?: string\n previewLocationRoute: string\n perspective: PresentationPerspective\n variant: string | undefined\n targetOrigin: string\n },\n): React.ReactNode {\n const {\n openPopup,\n previewLocationOrigin,\n previewLocationRoute,\n perspective,\n variant,\n targetOrigin,\n } = props\n\n const openPreviewLink = useMemo(() => {\n const url = new URL(previewLocationRoute, previewLocationOrigin || targetOrigin)\n url.searchParams.set(urlSearchParamPreviewPerspective, encodeStudioPerspective(perspective))\n if (variant) {\n url.searchParams.set(urlSearchParamPreviewVariant, variant)\n } else {\n url.searchParams.delete(urlSearchParamPreviewVariant)\n }\n const {pathname, search} = url\n\n return `${previewLocationOrigin}${pathname}${search}`\n }, [perspective, previewLocationOrigin, previewLocationRoute, targetOrigin, variant])\n\n const {t} = useTranslation(presentationLocaleNamespace)\n\n const handleOpenPopup = useCallback(\n (event: React.MouseEvent<HTMLAnchorElement>) => {\n event.preventDefault()\n openPopup(event.currentTarget.href)\n },\n [openPopup],\n )\n\n return (\n <Tooltip\n animate\n content={<Text size={1}>{t('share-url.menu-item.open.text')}</Text>}\n fallbackPlacements={['bottom-start']}\n placement=\"bottom\"\n portal\n >\n <Button\n as=\"a\"\n aria-label={t('share-url.menu-item.open.text')}\n icon={LaunchIcon}\n mode=\"bleed\"\n href={openPreviewLink}\n rel=\"opener\"\n target=\"_blank\"\n tooltipProps={null}\n // @ts-expect-error the `as=\"a\"` prop isn't enough to change the type of event.target from <div> to <a>\n onClick={handleOpenPopup}\n />\n </Tooltip>\n )\n}\n","import {useSelector} from '@xstate/react'\n\nimport {type PreviewUrlRef} from './machines/preview-url'\n\nexport function useTargetOrigin(previewUrlRef: PreviewUrlRef): string {\n const targetOrigin = useSelector(previewUrlRef, (state) => state.context.previewUrl?.origin)\n if (!targetOrigin) {\n throw new TypeError('targetOrigin is required')\n }\n return targetOrigin\n}\n","import {ResetIcon} from '@sanity/icons/Reset'\nimport {TextInput, type TextInputClearButtonProps} from '@sanity/ui'\nimport {\n type ChangeEvent,\n type KeyboardEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useActiveWorkspace, useTranslation} from 'sanity'\n\nimport {presentationLocaleNamespace} from '../i18n'\nimport {type PreviewUrlRef} from '../machines/preview-url'\nimport {useAllowPatterns} from '../useAllowPatterns'\nimport {useTargetOrigin} from '../useTargetOrigin'\n\nexport function PreviewLocationInput(props: {\n fontSize?: number\n onChange: (value: string) => void\n previewUrlRef: PreviewUrlRef\n padding?: number\n prefix?: ReactNode\n suffix?: ReactNode\n value: string\n}): React.JSX.Element {\n const {fontSize = 1, onChange, padding = 3, prefix, suffix, value, previewUrlRef} = props\n const allowOrigins = useAllowPatterns(previewUrlRef)\n const targetOrigin = useTargetOrigin(previewUrlRef)\n\n const {t} = useTranslation(presentationLocaleNamespace)\n const {basePath = '/'} = useActiveWorkspace()?.activeWorkspace || {}\n\n const inputRef = useRef<HTMLInputElement | null>(null)\n const [sessionValue, setSessionValue] = useState<string | undefined>(undefined)\n const [customValidity, setCustomValidity] = useState<string | undefined>(undefined)\n\n const handleChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n setSessionValue(event.currentTarget.value)\n }, [])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n if (sessionValue === undefined) {\n return\n }\n\n let absoluteValue = sessionValue\n try {\n absoluteValue = new URL(sessionValue, targetOrigin).toString()\n } catch {\n // ignore\n }\n\n if (Array.isArray(allowOrigins)) {\n if (!allowOrigins.some((pattern) => pattern.test(absoluteValue))) {\n setCustomValidity(\n t('preview-location-input.error', {\n origin: targetOrigin,\n context: 'origin-not-allowed',\n }),\n )\n event.currentTarget.reportValidity()\n return\n }\n // `origin` is an empty string '' if the Studio is embedded, and that's when we need to protect against recursion\n } else if (\n !targetOrigin &&\n (absoluteValue.startsWith(`${basePath}/`) || absoluteValue === basePath)\n ) {\n setCustomValidity(\n t('preview-location-input.error', {basePath, context: 'same-base-path'}),\n )\n return\n }\n\n const nextValue = absoluteValue === targetOrigin ? `${targetOrigin}/` : absoluteValue\n\n setCustomValidity(undefined)\n setSessionValue(undefined)\n\n onChange(nextValue)\n\n inputRef.current?.blur()\n }\n\n if (event.key === 'Escape') {\n setCustomValidity(undefined)\n setSessionValue(undefined)\n }\n },\n [allowOrigins, basePath, onChange, sessionValue, t, targetOrigin],\n )\n\n const handleBlur = useCallback(() => {\n setCustomValidity(undefined)\n setSessionValue(undefined)\n }, [])\n\n const handleClear = useCallback(() => {\n setCustomValidity(undefined)\n let nextValue = value\n try {\n nextValue = new URL(value, targetOrigin).toString()\n } catch {\n // ignore\n }\n setSessionValue(nextValue)\n }, [targetOrigin, value])\n\n useEffect(() => {\n // oxlint-disable-next-line react/react-compiler\n setCustomValidity(undefined)\n setSessionValue(undefined)\n }, [targetOrigin, value])\n\n const resetButton: TextInputClearButtonProps = useMemo(() => ({icon: ResetIcon}), [])\n\n return (\n <>\n <TextInput\n clearButton={customValidity ? resetButton : undefined}\n customValidity={customValidity}\n fontSize={fontSize}\n onBlur={handleBlur}\n onClear={handleClear}\n onChange={handleChange}\n onKeyDownCapture={handleKeyDown}\n padding={padding}\n prefix={prefix}\n style={{zIndex: 1}}\n radius={2}\n ref={inputRef}\n space={padding}\n suffix={suffix}\n value={sessionValue === undefined ? new URL(value, targetOrigin).toString() : sessionValue}\n />\n </>\n )\n}\n","import {type ClientPerspective, type SyncTag} from '@sanity/client'\nimport {CopyIcon} from '@sanity/icons/Copy'\nimport {ShareIcon} from '@sanity/icons/Share'\nimport {SanityMonogram} from '@sanity/logos'\nimport {fetchSharedAccessQuery} from '@sanity/preview-url-secret/constants'\nimport {\n disablePreviewAccessSharing,\n enablePreviewAccessSharing,\n} from '@sanity/preview-url-secret/toggle-preview-access-sharing'\nimport {setSecretSearchParams} from '@sanity/preview-url-secret/without-secret-search-params'\nimport {\n Box,\n Card,\n Grid,\n Menu,\n MenuDivider,\n Spinner,\n Stack,\n Switch,\n Text,\n useToast,\n} from '@sanity/ui'\nimport {AnimatePresence, motion} from 'motion/react'\nimport {lazy, Suspense, useCallback, useEffect, useMemo, useState} from 'react'\nimport {useClient, useCurrentUser, useTranslation} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../ui-components/button/Button'\nimport {MenuButton} from '../../ui-components/menuButton/MenuButton'\nimport {MenuItem} from '../../ui-components/menuItem/MenuItem'\nimport {Tooltip} from '../../ui-components/tooltip/Tooltip'\nimport {API_VERSION} from '../constants'\nimport {presentationLocaleNamespace} from '../i18n'\nimport {encodeStudioPerspective} from '../util/encodeStudioPerspective'\nimport {type PreviewProps} from './Preview'\n\nconst QRCodeSVG = lazy(() => import('./QRCodeSVG'))\n\nexport interface SharePreviewMenuProps {\n canToggleSharePreviewAccess: boolean\n canUseSharedPreviewAccess: boolean\n previewLocationRoute: string\n initialUrl: PreviewProps['initialUrl']\n perspective: ClientPerspective\n variant: string | undefined\n}\n\nconst QrCodeLogoSize = 24\nconst QrCodeLogoPadding = 16\nconst QrSize = 224\n\nconst StyledSanityMonogram = styled(SanityMonogram)`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n height: ${QrCodeLogoSize}px;\n width: ${QrCodeLogoSize}px;\n`\n\nconst MotionSpinner = motion.create(Spinner)\nconst MotionText = motion.create(Text)\nconst MotionMonogram = motion.create(StyledSanityMonogram)\n\nexport function SharePreviewMenu(props: SharePreviewMenuProps): React.JSX.Element {\n const {\n canToggleSharePreviewAccess,\n canUseSharedPreviewAccess,\n initialUrl,\n previewLocationRoute,\n perspective,\n variant,\n } = props\n const {t} = useTranslation(presentationLocaleNamespace)\n const {push: pushToast} = useToast()\n const client = useClient({apiVersion: API_VERSION})\n const currentUser = useCurrentUser()\n const [loading, setLoading] = useState(true)\n const [enabling, setEnabling] = useState(false)\n const [disabling, setDisabling] = useState(false)\n const [secret, setSecret] = useState<string | null>(null)\n const busy = enabling || disabling || loading\n const url = useMemo(\n () =>\n secret\n ? setSecretSearchParams(\n initialUrl,\n secret,\n previewLocationRoute,\n encodeStudioPerspective(perspective),\n variant,\n )\n : null,\n [initialUrl, perspective, previewLocationRoute, secret, variant],\n )\n\n const [error, setError] = useState<unknown>(null)\n if (error) {\n throw error\n }\n\n const handleUnableToToggle = useCallback(() => {\n pushToast({\n closable: true,\n status: 'warning',\n title: t('share-preview-menu.error_toggle-sharing', {context: 'toggle-sharing'}),\n })\n }, [pushToast, t])\n\n const handleDisableSharing = async () => {\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = async () => {\n setDisabling(true)\n await disablePreviewAccessSharing(\n client,\n 'sanity/presentation',\n typeof window === 'undefined' ? '' : location.href,\n currentUser?.id,\n )\n setSecret(null)\n }\n try {\n await run()\n } catch (error) {\n setError(error)\n }\n setDisabling(false)\n }\n const handleEnableSharing = async () => {\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = async () => {\n setEnabling(true)\n\n const previewUrlSecret = await enablePreviewAccessSharing(\n client,\n 'sanity/presentation',\n typeof window === 'undefined' ? '' : location.href,\n currentUser?.id,\n )\n setSecret(previewUrlSecret.secret)\n }\n try {\n await run()\n } catch (error) {\n setError(error)\n }\n setEnabling(false)\n }\n\n const handleCopyUrl = useCallback(async () => {\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = async () => {\n if (!url) {\n throw new Error('No URL to copy')\n }\n await navigator.clipboard.writeText(url.toString())\n pushToast({\n closable: true,\n status: 'success',\n title: t('share-url.clipboard.status', {context: 'success'}),\n })\n }\n try {\n await run()\n } catch (error) {\n setError(error)\n }\n }, [pushToast, t, url])\n\n useEffect(() => {\n let controller = new AbortController()\n let usedTags: SyncTag[] = []\n async function fetchShareSecret(lastLiveEventId: string | null, signal: AbortSignal) {\n const {result, syncTags} = await client.fetch<string | null>(\n fetchSharedAccessQuery,\n {},\n {filterResponse: false, lastLiveEventId, tag: 'presentation.fetch-shared-access-secret'},\n )\n if (Array.isArray(syncTags)) {\n usedTags = syncTags\n }\n if (!signal.aborted) {\n setSecret(result)\n }\n }\n const subscription = client.live.events().subscribe({\n next: (event) => {\n if (event.type === 'message') {\n controller.abort()\n controller = new AbortController()\n if (event.tags.some((tag) => usedTags.includes(tag))) {\n void fetchShareSecret(event.id, controller.signal)\n }\n }\n },\n error: setError,\n })\n\n void fetchShareSecret(null, controller.signal).finally(() => setLoading(false))\n\n return () => {\n subscription.unsubscribe()\n controller.abort()\n }\n }, [client])\n\n return (\n <MenuButton\n button={\n <Button\n aria-label={t('preview-frame.share-button.aria-label')}\n icon={ShareIcon}\n mode=\"bleed\"\n tooltipProps={null}\n />\n }\n id=\"share-menu\"\n menu={\n <Menu style={{maxWidth: 248}} padding={canUseSharedPreviewAccess ? undefined : 0}>\n {canUseSharedPreviewAccess ? (\n <>\n <label style={{cursor: 'pointer'}}>\n <Grid\n columns={2}\n rows={2}\n gapX={3}\n gapY={1}\n style={{\n justifyContent: 'center',\n alignItems: 'center',\n gridTemplateColumns: 'min-content 1fr',\n gridTemplateRows: 'min-content',\n }}\n paddingTop={3}\n paddingX={3}\n >\n <Tooltip\n animate\n content={\n <Text size={1}>\n {t('share-preview-menu.toggle-button.tooltip', {\n context: url ? 'disable' : 'enable',\n })}\n </Text>\n }\n fallbackPlacements={['bottom-start']}\n placement=\"bottom\"\n portal\n >\n <Switch\n checked={enabling || (url !== null && !disabling)}\n readOnly={enabling || disabling}\n indeterminate={loading}\n onChange={\n !canToggleSharePreviewAccess\n ? handleUnableToToggle\n : url\n ? handleDisableSharing\n : handleEnableSharing\n }\n />\n </Tooltip>\n <Text size={1} weight=\"medium\">\n {t('share-preview-menu.toggle-button.label', {context: 'first-line'})}\n </Text>\n <span />\n <Text muted size={1}>\n {t('share-preview-menu.toggle-button.label', {context: 'second-line'})}\n </Text>\n </Grid>\n </label>\n <Box padding={3} paddingTop={2}>\n <Stack space={3}>\n <Card\n tone={busy || !url ? 'transparent' : undefined}\n style={{\n position: 'relative',\n aspectRatio: '1 / 1',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <AnimatePresence>\n {busy ? (\n <MotionSpinner\n muted\n initial={{opacity: 0}}\n animate={{opacity: 1}}\n exit={{opacity: 0}}\n />\n ) : url ? (\n <>\n <Suspense fallback={<Spinner />}>\n <QRCodeSVG\n title={t('share-preview-menu.qr-code.title', {url: url.toString()})}\n value={url.toString()}\n size={QrSize}\n color=\"var(--card-fg-color)\"\n logoSize={QrCodeLogoSize + QrCodeLogoPadding}\n />\n <MotionMonogram\n initial={{opacity: -0.5}}\n animate={{opacity: 1.5}}\n exit={{opacity: 0}}\n />\n </Suspense>\n </>\n ) : (\n <MotionText\n muted\n size={1}\n style={{maxWidth: '100px', textWrap: 'pretty', textAlign: 'center'}}\n initial={{opacity: 0}}\n animate={{opacity: 1}}\n exit={{opacity: 0}}\n >\n {t('share-preview-menu.qr-code.placeholder')}\n </MotionText>\n )}\n </AnimatePresence>\n </Card>\n <Text muted size={1}>\n {t('share-preview-menu.qr-code.instructions')}\n </Text>\n </Stack>\n </Box>\n <MenuDivider />\n <MenuItem\n disabled={!url || disabling}\n icon={CopyIcon}\n onClick={handleCopyUrl}\n text={t('share-preview-menu.copy-url.text')}\n />\n </>\n ) : (\n <Card padding={2} tone=\"caution\" radius={3}>\n <Text style={{textWrap: 'pretty'}}>\n {t('share-preview-menu.error', {context: 'missing-grants'})}\n </Text>\n </Card>\n )}\n </Menu>\n }\n popover={{\n constrainSize: true,\n placement: 'bottom',\n portal: true,\n }}\n />\n )\n}\n","import {DesktopIcon} from '@sanity/icons/Desktop'\nimport {MobileDeviceIcon} from '@sanity/icons/MobileDevice'\nimport {PanelLeftIcon} from '@sanity/icons/PanelLeft'\nimport {RefreshIcon} from '@sanity/icons/Refresh'\nimport {withoutSecretSearchParams} from '@sanity/preview-url-secret/without-secret-search-params'\nimport {Box, Card, Flex, Hotkeys, Switch, Text} from '@sanity/ui'\nimport {useSelector} from '@xstate/react'\nimport {type RefObject, useCallback, useMemo} from 'react'\nimport {useTranslation} from 'sanity'\n\nimport {Button} from '../../ui-components/button/Button'\nimport {Tooltip} from '../../ui-components/tooltip/Tooltip'\nimport {presentationLocaleNamespace} from '../i18n'\nimport {type HeaderOptions} from '../types'\nimport {useId} from '../useId'\nimport {OpenPreviewButton} from './OpenPreviewButton'\nimport {type PreviewProps} from './Preview'\nimport {PreviewLocationInput} from './PreviewLocationInput'\nimport {SharePreviewMenu} from './SharePreviewMenu'\n\n/** @public */\nexport interface PreviewHeaderProps extends PreviewProps {\n iframeRef: RefObject<HTMLIFrameElement | null>\n renderDefault: (props: PreviewHeaderProps) => React.JSX.Element\n}\n\nconst PreviewHeaderDefault = (props: Omit<PreviewHeaderProps, 'renderDefault'>) => {\n const {\n canSharePreviewAccess,\n canToggleSharePreviewAccess,\n canUseSharedPreviewAccess,\n iframeRef,\n initialUrl,\n navigatorEnabled,\n onPathChange,\n onRefresh,\n openPopup,\n overlaysConnection,\n presentationRef,\n perspective,\n variant,\n previewUrl,\n setViewport,\n targetOrigin,\n toggleNavigator,\n toggleOverlay,\n viewport,\n previewUrlRef,\n } = props\n\n const {t} = useTranslation(presentationLocaleNamespace)\n\n const toggleViewportSize = useCallback(\n () => setViewport(viewport === 'desktop' ? 'mobile' : 'desktop'),\n [setViewport, viewport],\n )\n\n const previewLocationOrigin = useMemo(() => {\n return targetOrigin === location.origin ? '' : targetOrigin\n }, [targetOrigin])\n\n const handleRefresh = () => {\n onRefresh(() => {\n if (!iframeRef.current) {\n return\n }\n presentationRef.send({type: 'iframe reload'})\n // Funky way to reload an iframe without CORS issues\n // ref.current.src = ref.current.src\n Object.assign(iframeRef.current, {src: new URL(previewUrl || '/', targetOrigin).toString()})\n })\n }\n\n const isLoading = useSelector(presentationRef, (state) => state.matches('loading'))\n const isLoaded = useSelector(presentationRef, (state) => state.matches('loaded'))\n const isRefreshing = useSelector(presentationRef, (state) =>\n state.matches({loaded: 'refreshing'}),\n )\n const isReloading = useSelector(presentationRef, (state) => state.matches({loaded: 'reloading'}))\n const overlaysEnabled = useSelector(\n presentationRef,\n (state) => state.context.visualEditingOverlaysEnabled,\n )\n\n const previewLocationRoute = useMemo(() => {\n const previewURL = new URL(previewUrl || '/', targetOrigin)\n const {pathname, search} = withoutSecretSearchParams(previewURL)\n\n return `${pathname}${search}`\n }, [previewUrl, targetOrigin])\n\n const perspectiveToggleTooltipId = useId()\n\n /**\n * If the preview URL machine is busy it means it's about to change the target origin and reload the iframe,\n * so we show a spinner\n */\n const previewUrlBusy = useSelector(previewUrlRef, (state) => state.hasTag('busy'))\n\n return (\n <Flex align=\"center\" gap={1} paddingX={1} style={{width: '100%'}}>\n {toggleNavigator && (\n <Button\n aria-label={t('preview-frame.navigator.toggle-button.aria-label')}\n icon={PanelLeftIcon}\n mode=\"bleed\"\n onClick={toggleNavigator}\n selected={navigatorEnabled}\n tooltipProps={{\n content: <Text size={1}>{t('preview-frame.navigator.toggle-button.tooltip')}</Text>,\n fallbackPlacements: ['bottom-start'],\n placement: 'bottom',\n }}\n />\n )}\n\n <Tooltip\n animate\n content={\n <Flex align=\"center\" style={{whiteSpace: 'nowrap'}}>\n <Box padding={1}>\n <Text size={1}>\n {t('preview-frame.overlay.toggle-button.tooltip', {\n context: overlaysEnabled ? 'disable' : 'enable',\n })}\n </Text>\n </Box>\n <Box paddingY={1}>\n <Hotkeys keys={['Alt']} style={{marginTop: -4, marginBottom: -4}} />\n </Box>\n </Flex>\n }\n fallbackPlacements={['bottom-start']}\n placement=\"bottom\"\n portal\n >\n <Card\n as=\"label\"\n flex=\"none\"\n padding={3}\n marginX={1}\n style={{\n lineHeight: 0,\n borderRadius: 999,\n userSelect: 'none',\n }}\n tone={overlaysEnabled ? 'transparent' : undefined}\n >\n <Flex align=\"center\" gap={3}>\n <div style={{margin: -4}}>\n <Switch\n indeterminate={!isLoaded}\n checked={overlaysEnabled}\n onChange={toggleOverlay}\n disabled={isLoading || overlaysConnection !== 'connected'}\n />\n </div>\n <Box>\n <Text muted={!overlaysEnabled} size={1} weight=\"medium\">\n {t('preview-frame.overlay.toggle-button.text')}\n </Text>\n </Box>\n </Flex>\n </Card>\n </Tooltip>\n\n <Box flex={1}>\n <PreviewLocationInput\n previewUrlRef={previewUrlRef}\n prefix={\n <Box padding={1}>\n <Tooltip\n animate\n content={\n <Text size={1}>\n {isLoaded\n ? t('preview-frame.refresh-button.tooltip')\n : t('preview-frame.status', {\n context: isLoading\n ? 'loading'\n : isRefreshing\n ? 'refreshing'\n : isReloading\n ? 'reloading'\n : 'unknown',\n })}\n </Text>\n }\n fallbackPlacements={['bottom-end']}\n placement=\"bottom\"\n portal\n >\n <Button\n aria-label={t('preview-frame.refresh-button.aria-label')}\n icon={RefreshIcon}\n mode=\"bleed\"\n loading={isReloading || isRefreshing || previewUrlBusy}\n onClick={handleRefresh}\n tooltipProps={null}\n />\n </Tooltip>\n </Box>\n }\n onChange={onPathChange}\n suffix={\n <Box padding={1}>\n <OpenPreviewButton\n openPopup={openPopup}\n previewLocationOrigin={previewLocationOrigin}\n previewLocationRoute={previewLocationRoute}\n perspective={perspective}\n variant={variant}\n targetOrigin={targetOrigin}\n />\n </Box>\n }\n value={previewLocationRoute}\n />\n </Box>\n\n <Flex align=\"center\" flex=\"none\" gap={1}>\n <Tooltip\n animate\n ref={(node) => {\n node?.style.setProperty('view-transition-name', perspectiveToggleTooltipId)\n }}\n content={\n <Text size={1}>\n {t('preview-frame.viewport-button.tooltip', {\n context: viewport === 'desktop' ? 'narrow' : 'full',\n })}\n </Text>\n }\n fallbackPlacements={['bottom-start']}\n placement=\"bottom\"\n portal\n >\n <Button\n data-testid=\"preview-viewport-toggle\"\n data-viewport={viewport}\n aria-label={t('preview-frame.viewport-button.aria-label')}\n icon={viewport === 'desktop' ? MobileDeviceIcon : DesktopIcon}\n mode=\"bleed\"\n onClick={toggleViewportSize}\n tooltipProps={null}\n />\n </Tooltip>\n </Flex>\n\n {canSharePreviewAccess && (\n <Flex align=\"center\" flex=\"none\" gap={1}>\n <SharePreviewMenu\n canToggleSharePreviewAccess={canToggleSharePreviewAccess}\n canUseSharedPreviewAccess={canUseSharedPreviewAccess}\n previewLocationRoute={previewLocationRoute}\n initialUrl={initialUrl}\n perspective={perspective}\n variant={variant}\n />\n </Flex>\n )}\n </Flex>\n )\n}\n\n/** @internal */\nexport function PreviewHeader(\n props: Omit<PreviewHeaderProps, 'renderDefault'> & {options?: HeaderOptions},\n): React.JSX.Element {\n const renderDefault = useCallback((props: Omit<PreviewHeaderProps, 'renderDefault'>) => {\n return <PreviewHeaderDefault {...props} />\n }, [])\n\n const HeaderComponent = props.options?.component\n const header = HeaderComponent ? (\n <HeaderComponent {...props} renderDefault={renderDefault} />\n ) : (\n renderDefault(props)\n )\n\n return (\n <Card flex=\"none\" padding={2} borderBottom style={{position: 'relative'}}>\n <Flex align=\"center\" style={{minHeight: 0}}>\n {header}\n </Flex>\n </Card>\n )\n}\n","import {createConnectionMachine, createController} from '@sanity/comlink'\nimport {\n createCompatibilityActors,\n type VisualEditingControllerMsg,\n type VisualEditingNodeMsg,\n} from '@sanity/presentation-comlink'\nimport {\n urlSearchParamPreviewPerspective,\n urlSearchParamPreviewVariant,\n urlSearchParamVercelProtectionBypass,\n urlSearchParamVercelSetBypassCookie,\n type VercelSetBypassCookieValue,\n} from '@sanity/preview-url-secret/constants'\nimport {\n Card,\n Code,\n Flex,\n Label,\n Spinner,\n Stack,\n Text,\n usePrefersReducedMotion,\n useToast,\n} from '@sanity/ui'\nimport {useSelector} from '@xstate/react'\nimport {AnimatePresence, motion, MotionConfig} from 'motion/react'\nimport {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useEffectEvent,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from 'react'\nimport {flushSync} from 'react-dom'\nimport {Translate, useTranslation} from 'sanity'\n\nimport {Button} from '../../ui-components/button/Button'\nimport {TooltipDelayGroupProvider} from '../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {ErrorCard} from '../components/ErrorCard'\nimport {MAX_TIME_TO_OVERLAYS_CONNECTION} from '../constants'\nimport {presentationLocaleNamespace} from '../i18n'\nimport {type PresentationMachineRef} from '../machines/presentation-machine'\nimport {type PreviewUrlRef} from '../machines/preview-url'\nimport {\n type ConnectionStatus,\n type HeaderOptions,\n type PresentationPerspective,\n type PresentationViewport,\n} from '../types'\nimport {useAllowPatterns} from '../useAllowPatterns'\nimport {usePresentationNavigate} from '../usePresentationNavigate'\nimport {usePresentationTool} from '../usePresentationTool'\nimport {encodeStudioPerspective} from '../util/encodeStudioPerspective'\nimport {IFrame} from './IFrame'\nimport {PreviewHeader} from './PreviewHeader'\n\nconst MotionFlex = motion.create(Flex)\n\n/** @public */\nexport interface PreviewProps {\n canSharePreviewAccess: boolean\n canToggleSharePreviewAccess: boolean\n canUseSharedPreviewAccess: boolean\n header?: HeaderOptions\n initialUrl: URL\n loadersConnection: ConnectionStatus\n navigatorEnabled: boolean\n onPathChange: (nextPath: string) => void\n onRefresh: (fallback: () => void) => void\n openPopup: (url: string) => void\n overlaysConnection: ConnectionStatus\n presentationRef: PresentationMachineRef\n perspective: PresentationPerspective\n /**\n * The selected editing variant as a bare variant id, or `undefined` when no variant is selected\n */\n variant: string | undefined\n previewUrl?: string\n setViewport: (mode: 'desktop' | 'mobile') => void\n targetOrigin: string\n toggleNavigator?: () => void\n toggleOverlay: () => void\n viewport: PresentationViewport\n vercelProtectionBypass: string | null\n previewUrlRef: PreviewUrlRef\n handlesPerspectiveChange: boolean\n handlesVariantChange: boolean\n}\n\nexport const Preview = memo(\n forwardRef<HTMLIFrameElement, PreviewProps>(function PreviewComponent(props, forwardedRef) {\n const {\n header,\n initialUrl,\n loadersConnection,\n overlaysConnection,\n perspective,\n variant,\n viewport,\n vercelProtectionBypass,\n presentationRef,\n previewUrlRef,\n handlesPerspectiveChange,\n handlesVariantChange,\n } = props\n\n const [stablePerspective, setStablePerspective] = useState<typeof perspective | null>(null)\n const urlPerspective = encodeStudioPerspective(\n stablePerspective === null ? perspective : stablePerspective,\n )\n /**\n * `null` means \"not frozen yet\" — distinct from `undefined`, which is a valid frozen value\n * meaning \"no variant selected\"\n */\n const [stableVariant, setStableVariant] = useState<string | undefined | null>(null)\n const urlVariant = stableVariant === null ? variant : stableVariant\n const previewUrl = useMemo(() => {\n const url = new URL(initialUrl)\n\n // Always set the perspective, even if it's provided in the initial URL.\n // The perspective can change over time, even in the brief time between the iframe starting to load,\n // and a comlink node connecting to the iframe and reporting whether perspective switching is handled by the preview,\n // or if perspective switching should reload the iframe.\n url.searchParams.set(urlSearchParamPreviewPerspective, urlPerspective)\n\n // Same for the editing variant, except the param is only present while a variant is selected\n if (urlVariant) {\n url.searchParams.set(urlSearchParamPreviewVariant, urlVariant)\n } else {\n url.searchParams.delete(urlSearchParamPreviewVariant)\n }\n\n if (vercelProtectionBypass || url.searchParams.get(urlSearchParamVercelProtectionBypass)) {\n // samesitenone is required since the request is from an iframe\n url.searchParams.set(\n urlSearchParamVercelSetBypassCookie,\n 'samesitenone' satisfies VercelSetBypassCookieValue,\n )\n }\n // If there's a vercel protection bypass secret in the context, set it if none exists already\n if (vercelProtectionBypass && !url.searchParams.get(urlSearchParamVercelProtectionBypass)) {\n url.searchParams.set(urlSearchParamVercelProtectionBypass, vercelProtectionBypass)\n }\n\n return url\n }, [initialUrl, urlPerspective, urlVariant, vercelProtectionBypass])\n\n useEffect(() => {\n /**\n * Once we know the preview can handle perspective changes in-place — either because the iframe reported it\n * over comlink, or because a loader is connected (legacy fallback) — we capture the perspective that was used\n * to load the preview, so `src` on `iframe` no longer changes when the perspective changes. Otherwise the\n * iframe would do a full page reload, which is what we're trying to avoid unless absolutely necessary.\n */\n if (handlesPerspectiveChange) {\n /**\n * Only set the stable perspective if it hasn't been set yet.\n */\n // oxlint-disable-next-line react/react-compiler\n setStablePerspective((prev) => (prev === null ? perspective : prev))\n }\n }, [handlesPerspectiveChange, perspective])\n\n useEffect(() => {\n /**\n * Same freeze mechanism for the editing variant: once the preview can handle variant changes\n * in-place — reported over comlink, or implied by a connected loader — we stop reflecting\n * variant changes in `src` so they no longer cause a full page reload.\n */\n if (handlesVariantChange) {\n // oxlint-disable-next-line react/react-compiler\n setStableVariant((prev) => (prev === null ? variant : prev))\n }\n }, [handlesVariantChange, variant])\n\n const {t} = useTranslation(presentationLocaleNamespace)\n const {devMode} = usePresentationTool()\n const prefersReducedMotion = usePrefersReducedMotion()\n const ref = useRef<HTMLIFrameElement | null>(null)\n\n const previewHeader = <PreviewHeader {...props} iframeRef={ref} options={header} />\n\n // Forward the iframe ref to the parent component\n useImperativeHandle<HTMLIFrameElement | null, HTMLIFrameElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const isLoading = useSelector(\n presentationRef,\n (state) => state.matches('loading') || state.matches({loaded: 'reloading'}),\n )\n\n const [timedOut, setTimedOut] = useState(false)\n const isRefreshing = useSelector(presentationRef, (state) =>\n state.matches({loaded: 'refreshing'}),\n )\n const [somethingIsWrong, setSomethingIsWrong] = useState(false)\n const iframeIsBusy = isLoading || isRefreshing || overlaysConnection === 'connecting'\n\n const handleRetry = useCallback(() => {\n if (!ref.current) {\n return\n }\n\n ref.current.src = previewUrl.toString()\n\n presentationRef.send({type: 'iframe reload'})\n }, [presentationRef, previewUrl])\n\n const [continueAnyway, setContinueAnyway] = useState(false)\n const handleContinueAnyway = useCallback(() => {\n setContinueAnyway(true)\n }, [])\n const [showOverlaysConnectionStatus, setShowOverlaysConnectionState] = useState(false)\n useEffect(() => {\n if (isLoading || isRefreshing) {\n return undefined\n }\n\n if (overlaysConnection === 'connecting' || overlaysConnection === 'reconnecting') {\n const timeout = setTimeout(() => {\n setShowOverlaysConnectionState(true)\n }, 5_000)\n return () => clearTimeout(timeout)\n }\n return undefined\n }, [overlaysConnection, isLoading, isRefreshing])\n\n useEffect(() => {\n if (isLoading || isRefreshing || !showOverlaysConnectionStatus) {\n return undefined\n }\n if (overlaysConnection === 'connected') {\n // oxlint-disable-next-line react/react-compiler\n setSomethingIsWrong(false)\n setShowOverlaysConnectionState(false)\n setTimedOut(false)\n setContinueAnyway(false)\n }\n if (overlaysConnection === 'connecting') {\n const timeout = setTimeout(() => {\n setTimedOut(true)\n console.error(\n `Unable to connect to visual editing. Make sure you've setup '@sanity/visual-editing' correctly`,\n )\n }, MAX_TIME_TO_OVERLAYS_CONNECTION)\n return () => clearTimeout(timeout)\n }\n if (overlaysConnection === 'reconnecting') {\n const timeout = setTimeout(() => {\n setTimedOut(true)\n setSomethingIsWrong(true)\n }, MAX_TIME_TO_OVERLAYS_CONNECTION)\n return () => clearTimeout(timeout)\n }\n return undefined\n }, [isLoading, overlaysConnection, isRefreshing, showOverlaysConnectionStatus])\n\n const onIFrameLoad = useCallback(() => {\n presentationRef.send({type: 'iframe loaded'})\n }, [presentationRef])\n\n const preventIframeInteraction = useMemo(() => {\n return (\n (isLoading || (overlaysConnection === 'connecting' && !isRefreshing)) && !continueAnyway\n )\n }, [continueAnyway, isLoading, isRefreshing, overlaysConnection])\n\n const canUseViewTransition = useSyncExternalStore(\n useCallback(() => () => {}, []),\n () => CSS.supports(`(view-transition-name: test)`),\n )\n const iframeAnimations = useMemo(() => {\n return [\n preventIframeInteraction ? 'background' : 'active',\n isLoading ? 'reloading' : 'idle',\n // If CSS View Transitions are supported, then transition iframe viewport dimensions with that instead of Motion\n canUseViewTransition ? '' : viewport,\n showOverlaysConnectionStatus && !continueAnyway ? 'timedOut' : '',\n ]\n }, [\n canUseViewTransition,\n continueAnyway,\n isLoading,\n preventIframeInteraction,\n showOverlaysConnectionStatus,\n viewport,\n ])\n\n const [currentViewport, setCurrentViewport] = useState(viewport)\n const [iframeStyle, setIframeStyle] = useState(iframeVariants[viewport])\n useEffect(() => {\n if (canUseViewTransition && viewport !== currentViewport) {\n const update = () => {\n setCurrentViewport(viewport)\n setIframeStyle(iframeVariants[viewport])\n }\n if (\n !prefersReducedMotion &&\n 'startViewTransition' in document &&\n typeof document.startViewTransition === 'function'\n ) {\n document.startViewTransition({\n update: () => flushSync(() => update()),\n types: ['sanity-iframe-viewport'],\n })\n } else {\n update()\n }\n }\n }, [canUseViewTransition, prefersReducedMotion, currentViewport, viewport])\n\n const toast = useToast()\n const allowOrigins = useAllowPatterns(previewUrlRef)\n const [checkOrigin, setCheckOrigin] = useState<false | string>(false)\n const [reportedMismatches] = useState(new Set<string>())\n const reportMismatchingOrigin = useEffectEvent((reportedOrigin: string) => {\n if (allowOrigins.some((allow) => allow.test(reportedOrigin))) {\n setCheckOrigin(reportedOrigin)\n return\n }\n if (reportedMismatches.has(reportedOrigin)) return\n reportedMismatches.add(reportedOrigin)\n console.warn('Visual Editing is here but misconfigured', {reportedOrigin})\n toast.push({\n closable: true,\n id: `presentation-iframe-origin-mismatch-${reportedOrigin}`,\n status: 'error',\n duration: Infinity,\n title: t('preview-frame.configuration.error.title'),\n description: (\n <Translate\n t={t}\n i18nKey=\"preview-frame.configuration.error.description\"\n components={{Code: 'code'}}\n values={{\n targetOrigin: previewUrl.origin,\n reportedOrigin,\n }}\n />\n ),\n })\n })\n const navigate = usePresentationNavigate()\n const navigateEvent = useEffectEvent((url: string) => {\n if (!checkOrigin) return\n const nextUrl = new URL(url, checkOrigin)\n navigate(`${checkOrigin}${nextUrl.pathname}${nextUrl.search}${nextUrl.hash}`)\n })\n useEffect(() => {\n if (!checkOrigin) {\n return undefined\n }\n const target = ref.current?.contentWindow\n if (!target) {\n return undefined\n }\n const controller = createController({targetOrigin: checkOrigin})\n controller.addTarget(target)\n const comlink = controller.createChannel<VisualEditingControllerMsg, VisualEditingNodeMsg>(\n {\n name: 'presentation',\n heartbeat: true,\n connectTo: 'visual-editing',\n },\n createConnectionMachine<VisualEditingControllerMsg, VisualEditingNodeMsg>().provide({\n actors: createCompatibilityActors<VisualEditingControllerMsg>(),\n }),\n )\n\n comlink.on('visual-editing/navigate', (data) => {\n navigateEvent(data.url)\n })\n const stop = comlink.start()\n\n return () => {\n stop()\n controller.destroy()\n }\n }, [checkOrigin])\n useEffect(() => {\n if (overlaysConnection === 'connecting' || overlaysConnection === 'reconnecting') {\n const interval = setInterval(() => {\n ref.current?.contentWindow?.postMessage(\n {domain: 'sanity/channels', from: 'presentation', type: 'presentation/status'},\n /**\n * The targetOrigin is set to '*' intentionally here, as we need to find out if the iframe is misconfigured and has the wrong origin\n */\n '*',\n )\n }, 1_000)\n\n const controller = new AbortController()\n window.addEventListener(\n 'message',\n ({data}: MessageEvent<unknown>) => {\n /**\n * Listen for replies to presentation/status\n */\n if (\n data &&\n typeof data === 'object' &&\n 'domain' in data &&\n data.domain === 'sanity/channels' &&\n 'type' in data &&\n data.type === 'visual-editing/status' &&\n 'data' in data &&\n typeof data.data === 'object' &&\n data.data &&\n 'origin' in data.data &&\n typeof data.data.origin === 'string'\n ) {\n reportMismatchingOrigin(data.data.origin)\n }\n },\n {signal: controller.signal},\n )\n\n return () => {\n controller.abort()\n clearInterval(interval)\n }\n }\n return undefined\n }, [overlaysConnection, timedOut])\n\n return (\n <MotionConfig transition={prefersReducedMotion ? {duration: 0} : undefined}>\n <TooltipDelayGroupProvider>\n {previewHeader}\n <Card flex={1} tone=\"transparent\">\n <Flex\n align=\"center\"\n height=\"fill\"\n justify=\"center\"\n padding={(canUseViewTransition ? currentViewport : viewport) === 'desktop' ? 0 : 2}\n sizing=\"border\"\n style={{\n position: 'relative',\n cursor: iframeIsBusy ? 'wait' : undefined,\n }}\n >\n <AnimatePresence>\n {!somethingIsWrong &&\n !isLoading &&\n !isRefreshing &&\n // viewport, // using CSS View Transitions instead of framer motion to drive this\n showOverlaysConnectionStatus &&\n !continueAnyway ? (\n <MotionFlex\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={spinnerVariants}\n justify=\"center\"\n align=\"center\"\n style={{\n inset: '0',\n position: 'absolute',\n backdropFilter: timedOut\n ? 'blur(16px) saturate(0.5) grayscale(0.5)'\n : 'blur(2px)',\n ['transition' as string]: 'backdrop-filter 0.2s ease-in-out',\n // @TODO Because of Safari we have to do this\n WebkitBackdropFilter: timedOut\n ? 'blur(16px) saturate(0.5) grayscale(0.5)'\n : 'blur(2px)',\n WebkitTransition: '-webkit-backdrop-filter 0.2s ease-in-out',\n zIndex: 1,\n }}\n >\n <Flex\n style={{...sizes[viewport]}}\n justify=\"center\"\n align=\"center\"\n direction=\"column\"\n gap={4}\n >\n {timedOut && (\n <Button\n disabled\n mode=\"ghost\"\n text={t('preview-frame.continue-button.text')}\n style={{opacity: 0}}\n />\n )}\n <Card\n radius={2}\n tone={timedOut ? 'caution' : 'inherit'}\n padding={4}\n shadow={1}\n >\n <Flex justify=\"center\" align=\"center\" direction=\"column\" gap={4}>\n <Spinner muted />\n <Text muted size={1}>\n {timedOut\n ? t('preview-frame.status', {context: 'timeout'})\n : t('preview-frame.status', {context: 'connecting'})}\n </Text>\n </Flex>\n </Card>\n {timedOut && (\n <Button\n // mode=\"ghost\"\n tone=\"critical\"\n onClick={handleContinueAnyway}\n text={t('preview-frame.continue-button.text')}\n />\n )}\n </Flex>\n </MotionFlex>\n ) : (isLoading || (overlaysConnection === 'connecting' && !isRefreshing)) &&\n !continueAnyway ? (\n <MotionFlex\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={spinnerVariants}\n justify=\"center\"\n align=\"center\"\n style={{\n inset: '0',\n position: 'absolute',\n // boxShadow: '0 0 0 1px var(--card-shadow-outline-color)',\n }}\n >\n <Flex\n style={{...sizes[viewport]}}\n justify=\"center\"\n align=\"center\"\n direction=\"column\"\n gap={4}\n >\n <Spinner muted />\n <Text muted size={1}>\n {t('preview-frame.status', {context: 'loading'})}\n </Text>\n </Flex>\n </MotionFlex>\n ) : somethingIsWrong && !continueAnyway ? (\n <MotionFlex\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={errorVariants}\n justify=\"center\"\n align=\"center\"\n style={{\n background: 'var(--card-bg-color)',\n inset: '0',\n position: 'absolute',\n }}\n >\n <ErrorCard\n flex={1}\n message={t('preview-frame.connection.error.text')}\n onRetry={handleRetry}\n onContinueAnyway={handleContinueAnyway}\n >\n {devMode && (\n <>\n {overlaysConnection !== 'connected' && (\n <Card padding={3} radius={2} tone=\"critical\">\n <Stack space={3}>\n <Label muted size={0}>\n {t('preview-frame.overlay.connection-status.label')}\n </Label>\n <Code size={1}>\n {t('channel.status', {context: overlaysConnection})}\n </Code>\n </Stack>\n </Card>\n )}\n\n {loadersConnection !== 'connected' && (\n <Card padding={3} radius={2} tone=\"critical\">\n <Stack space={3}>\n <Label muted size={0}>\n {t('preview-frame.loader.connection-status.label')}\n </Label>\n <Code size={1}>\n {t('channel.status', {context: loadersConnection})}\n </Code>\n </Stack>\n </Card>\n )}\n </>\n )}\n </ErrorCard>\n </MotionFlex>\n ) : null}\n </AnimatePresence>\n <IFrame\n animate={iframeAnimations}\n initial={['background']}\n onLoad={onIFrameLoad}\n preventClick={preventIframeInteraction}\n ref={ref}\n src={previewUrl.toString()}\n style={iframeStyle}\n variants={iframeVariants}\n />\n </Flex>\n </Card>\n </TooltipDelayGroupProvider>\n </MotionConfig>\n )\n }),\n)\nPreview.displayName = 'Memo(ForwardRef(Preview))'\n\nconst sizes = {\n desktop: {\n width: '100%',\n height: '100%',\n },\n mobile: {\n width: 375,\n height: 650,\n },\n}\n\nconst spinnerVariants = {\n initial: {opacity: 1},\n animate: {opacity: [0, 0, 1]},\n exit: {opacity: [1, 0, 0]},\n}\n\nconst errorVariants = {\n initial: {opacity: 1},\n animate: {opacity: [0, 0, 1]},\n exit: {opacity: [1, 0, 0]},\n}\n\nconst iframeVariants = {\n desktop: {\n ...sizes.desktop,\n boxShadow: '0 0 0 0px var(--card-border-color)',\n },\n mobile: {\n ...sizes.mobile,\n boxShadow: '0 0 0 1px var(--card-border-color)',\n },\n background: {\n opacity: 0,\n scale: 1,\n },\n idle: {\n scale: 1,\n },\n reloading: {\n scale: [1, 1, 1, 0.98],\n },\n active: {\n opacity: [0, 0, 1],\n scale: 1,\n },\n timedOut: {\n opacity: [0, 0, 1],\n },\n}\n","/** @internal */\nexport function defineWarnOnce() {\n let warned = false\n // oxlint-disable-next-line no-explicit-any\n return (...args: any[]): void => {\n if (!warned) {\n console.warn(...args)\n warned = true\n }\n }\n}\n","import {validateApiPerspective} from '@sanity/client'\nimport isEqual from 'fast-deep-equal'\nimport {type MutableRefObject, useCallback, useMemo, useRef, useState} from 'react'\nimport {getPublishedId} from 'sanity'\n\nimport {type FrameState, type PresentationPerspective} from './types'\nimport {defineWarnOnce} from './util/warnOnce'\n\nexport type DocumentOnPage = {\n _id: string\n _type: string\n}\n\ntype DocumentCache = Record<string, DocumentOnPage>\ntype KeyedDocumentCache = Record<string, DocumentCache>\n\nconst warnOnceAboutCrossDatasetReference = defineWarnOnce()\n\n/**\n * @TODO should be refactored to an lru-cache that is keyed by the perspective, which could be an array (if it is, it should use consistent sorting),\n * and the url path (optionally the origin too), so that swapping between perspectives and urls is fast.\n */\nexport function useDocumentsOnPage(\n perspective: PresentationPerspective,\n frameStateRef: MutableRefObject<FrameState>,\n): [\n DocumentOnPage[],\n (key: string, perspective: PresentationPerspective, state: DocumentOnPage[]) => void,\n string[],\n] {\n validateApiPerspective(perspective)\n\n const [published, setPublished] = useState<KeyedDocumentCache>({})\n const [previewDrafts, setPreviewDrafts] = useState<KeyedDocumentCache>({})\n\n // Used to compare the frame url with its value when the cache was last updated\n // If the url has changed, the entire cache is replaced\n const urlRef = useRef<string | undefined>('')\n\n const setDocumentsOnPage = useCallback(\n (key: string, perspective: PresentationPerspective, sourceDocuments: DocumentOnPage[] = []) => {\n const documents = sourceDocuments.filter((sourceDocument) => {\n if ('_projectId' in sourceDocument && sourceDocument._projectId) {\n // @TODO Handle cross dataset references\n\n warnOnceAboutCrossDatasetReference(\n 'Cross dataset references are not supported yet, ignoring source document',\n sourceDocument,\n )\n return false\n }\n return sourceDocument\n })\n\n const setCache = perspective === 'published' ? setPublished : setPreviewDrafts\n\n setCache((cache) => {\n // Create the `next` documents, dedupe by `_id`\n const next: Record<string, DocumentOnPage> = {}\n for (const document of documents) {\n next[document._id] = document\n }\n\n // If the frame url has changed, replace the entire cache with the next documents\n if (urlRef.current !== frameStateRef.current.url) {\n urlRef.current = frameStateRef.current.url\n return {[key]: next}\n }\n\n // If the keyed cache has changed, return the entire cache and replace the keyed part\n const prev = cache[key]\n if (!isEqual(prev, next)) {\n return {...cache, [key]: next}\n }\n\n // Otherwise return the entire cache as is\n return cache\n })\n },\n [frameStateRef],\n )\n\n const documentsOnPage = useMemo(() => {\n const keyedCache = perspective === 'published' ? published : previewDrafts\n const uniqueDocuments = Object.values(keyedCache).reduce((acc, cache) => {\n Object.values(cache).forEach((doc) => {\n acc[doc._id] = doc\n })\n return acc\n }, {})\n\n return Object.values(uniqueDocuments)\n }, [perspective, previewDrafts, published])\n\n // The 'visual-editing' keyed cache is the authoritative source of visual page\n // order; other keys (preview-kit, loaders) are CSM-derived and only lexical.\n const visualOrderPublishedIds = useMemo(() => {\n const keyedCache = perspective === 'published' ? published : previewDrafts\n const visualCache = keyedCache['visual-editing']\n if (!visualCache) {\n return []\n }\n\n const {orderedIds} = Object.values(visualCache).reduce<{\n orderedIds: string[]\n seen: Set<string>\n }>(\n (accumulator, document) => {\n const publishedId = getPublishedId(document._id)\n if (accumulator.seen.has(publishedId)) {\n return accumulator\n }\n accumulator.seen.add(publishedId)\n accumulator.orderedIds.push(publishedId)\n return accumulator\n },\n {orderedIds: [], seen: new Set<string>()},\n )\n\n return orderedIds\n }, [perspective, previewDrafts, published])\n\n return [documentsOnPage, setDocumentsOnPage, visualOrderPublishedIds]\n}\n","import {type ResponseQueryOptions} from '@sanity/client'\nimport {match} from 'path-to-regexp'\nimport {useEffect, useEffectEvent, useRef, useState} from 'react'\nimport {useClient, VARIANTS_STUDIO_CLIENT_OPTIONS} from 'sanity'\nimport {type RouterState, useRouter} from 'sanity/router'\n\nimport {API_VERSION} from './constants'\nimport {\n type DocumentResolver,\n type DocumentResolverContext,\n type MainDocument,\n type MainDocumentState,\n type PresentationNavigate,\n type PresentationPerspective,\n} from './types'\n\n// Helper function to \"unwrap\" a result when it is either explicitly provided or\n// returned as the result of a passed function\nfunction fnOrObj<T, U>(arg: T | ((ctx: U) => T), context: U): T {\n return arg instanceof Function ? arg(context) : arg\n}\n\nfunction getQueryFromResult(\n resolver: DocumentResolver,\n context: DocumentResolverContext,\n): string | undefined {\n if (resolver.resolve) {\n const filter = resolver.resolve(context)?.filter\n return filter\n ? `// groq\n*[${filter}][0]{_id, _type}`\n : undefined\n }\n\n if ('type' in resolver) {\n return `// groq\n*[_type == \"${resolver.type}\"][0]{_id, _type}`\n }\n\n return `// groq\n*[${fnOrObj(resolver.filter, context)}][0]{_id, _type}`\n}\n\nfunction getParamsFromResult(\n resolver: DocumentResolver,\n context: DocumentResolverContext,\n): Record<string, string> {\n if (resolver.resolve) {\n return resolver.resolve(context)?.params ?? context.params\n }\n\n if ('type' in resolver) {\n return {}\n }\n\n return fnOrObj(resolver.params, context) ?? context.params\n}\n\nexport function getRouteContext(\n route: DocumentResolver['route'],\n url: URL,\n): DocumentResolverContext | undefined {\n const routes = Array.isArray(route) ? route : [route]\n\n // `let` as the path is replaced with the pathname for absolute URLs\n for (let path of routes) {\n let {origin} = url\n\n // Handle absolute URLs\n try {\n const absolute = new URL(path)\n\n // If we are dealing with an absolute URL, ensure the origins match\n if (absolute.origin !== origin) continue\n\n origin = absolute.origin\n path = absolute.pathname\n } catch {\n // Ignore, as we assume a relative path\n }\n\n try {\n const matcher = match<Record<string, string>>(path, {decode: decodeURIComponent})\n const result = matcher(url.pathname)\n if (result) {\n const {params, path} = result\n return {origin, params, path}\n }\n } catch (e) {\n throw new Error(`\"${path}\" is not a valid route pattern`, {cause: e})\n }\n }\n return undefined\n}\n\nexport function useMainDocument(props: {\n navigate?: PresentationNavigate\n navigationHistory: RouterState[]\n path?: string\n targetOrigin: string\n resolvers?: DocumentResolver[]\n perspective: PresentationPerspective\n variant: string | undefined\n}): MainDocumentState | undefined {\n const {\n navigate,\n navigationHistory,\n path,\n targetOrigin,\n resolvers = [],\n perspective,\n variant,\n } = props\n const {state: routerState} = useRouter()\n // Fetching with a variant requires the `vX` API version for now\n const client = useClient(variant ? VARIANTS_STUDIO_CLIENT_OPTIONS : {apiVersion: API_VERSION})\n const relativeUrl =\n path || routerState._searchParams?.find(([key]) => key === 'preview')?.[1] || ''\n\n const [mainDocumentState, setMainDocumentState] = useState<MainDocumentState | undefined>(\n undefined,\n )\n const mainDocumentIdRef = useRef<string | undefined>(undefined)\n\n const handleResponse = useEffectEvent((doc: MainDocument | undefined, url: URL) => {\n if (!doc || mainDocumentIdRef.current !== doc._id) {\n setMainDocumentState({\n document: doc,\n path: url.pathname,\n })\n mainDocumentIdRef.current = doc?._id\n\n // We only want to force a navigation to the main document if\n // the path changed but the document ID did not. An explicit\n // document navigation should take precedence over displaying\n // the main document. We determine if an explicit document\n // navigation has occured by comparing the IDs of the last two\n // resultant navigation states.\n if (navigationHistory.at(-1)?.id === navigationHistory.at(-2)?.id) {\n navigate?.({\n state: {\n id: doc?._id,\n type: doc?._type,\n },\n })\n }\n }\n })\n\n useEffect(() => {\n const url = new URL(relativeUrl, targetOrigin)\n\n if (resolvers.length) {\n let result:\n | {\n context: DocumentResolverContext\n resolver: DocumentResolver\n }\n | undefined\n for (const resolver of resolvers) {\n const context = getRouteContext(resolver.route, url)\n if (context) {\n result = {context, resolver}\n break\n }\n }\n\n if (result) {\n const query = getQueryFromResult(result.resolver, result.context)\n const params = getParamsFromResult(result.resolver, result.context)\n if (query) {\n const controller = new AbortController()\n const options: ResponseQueryOptions = {\n perspective: perspective,\n variant,\n signal: controller.signal,\n tag: 'use-main-document',\n }\n\n client\n .fetch<MainDocument | undefined>(query, params, options)\n .then((doc) => handleResponse(doc, url))\n .catch((e) => {\n if (e instanceof Error && e.name === 'AbortError') return\n setMainDocumentState({document: undefined, path: url.pathname})\n mainDocumentIdRef.current = undefined\n })\n return () => {\n controller.abort()\n }\n }\n }\n }\n // oxlint-disable-next-line react/react-compiler\n setMainDocumentState(undefined)\n mainDocumentIdRef.current = undefined\n return undefined\n }, [client, perspective, relativeUrl, resolvers, targetOrigin, variant])\n\n return mainDocumentState\n}\n","//#region src/storages/globalConfig/globalConfig.ts\nlet store$4;\nconst DEFAULT_CONFIG = {\n\tlang: void 0,\n\tmessage: void 0,\n\tabortEarly: void 0,\n\tabortPipeEarly: void 0\n};\n/**\n* Sets the global configuration.\n*\n* @param config The configuration.\n*/\nfunction setGlobalConfig(config$1) {\n\tstore$4 = {\n\t\t...store$4,\n\t\t...config$1\n\t};\n}\n/**\n* Returns the global configuration.\n*\n* @param config The config to merge.\n*\n* @returns The configuration.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getGlobalConfig(config$1) {\n\tif (!config$1 && !store$4) return DEFAULT_CONFIG;\n\treturn {\n\t\tlang: config$1?.lang ?? store$4?.lang,\n\t\tmessage: config$1?.message,\n\t\tabortEarly: config$1?.abortEarly ?? store$4?.abortEarly,\n\t\tabortPipeEarly: config$1?.abortPipeEarly ?? store$4?.abortPipeEarly\n\t};\n}\n/**\n* Deletes the global configuration.\n*/\nfunction deleteGlobalConfig() {\n\tstore$4 = void 0;\n}\n\n//#endregion\n//#region src/storages/globalMessage/globalMessage.ts\nlet store$3;\n/**\n* Sets a global error message.\n*\n* @param message The error message.\n* @param lang The language of the message.\n*/\nfunction setGlobalMessage(message$1, lang) {\n\tif (!store$3) store$3 = /* @__PURE__ */ new Map();\n\tstore$3.set(lang, message$1);\n}\n/**\n* Returns a global error message.\n*\n* @param lang The language of the message.\n*\n* @returns The error message.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getGlobalMessage(lang) {\n\treturn store$3?.get(lang);\n}\n/**\n* Deletes a global error message.\n*\n* @param lang The language of the message.\n*/\nfunction deleteGlobalMessage(lang) {\n\tstore$3?.delete(lang);\n}\n\n//#endregion\n//#region src/storages/schemaMessage/schemaMessage.ts\nlet store$2;\n/**\n* Sets a schema error message.\n*\n* @param message The error message.\n* @param lang The language of the message.\n*/\nfunction setSchemaMessage(message$1, lang) {\n\tif (!store$2) store$2 = /* @__PURE__ */ new Map();\n\tstore$2.set(lang, message$1);\n}\n/**\n* Returns a schema error message.\n*\n* @param lang The language of the message.\n*\n* @returns The error message.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getSchemaMessage(lang) {\n\treturn store$2?.get(lang);\n}\n/**\n* Deletes a schema error message.\n*\n* @param lang The language of the message.\n*/\nfunction deleteSchemaMessage(lang) {\n\tstore$2?.delete(lang);\n}\n\n//#endregion\n//#region src/storages/specificMessage/specificMessage.ts\nlet store$1;\n/**\n* Sets a specific error message.\n*\n* @param reference The identifier reference.\n* @param message The error message.\n* @param lang The language of the message.\n*/\nfunction setSpecificMessage(reference, message$1, lang) {\n\tif (!store$1) store$1 = /* @__PURE__ */ new Map();\n\tif (!store$1.get(reference)) store$1.set(reference, /* @__PURE__ */ new Map());\n\tstore$1.get(reference).set(lang, message$1);\n}\n/**\n* Returns a specific error message.\n*\n* @param reference The identifier reference.\n* @param lang The language of the message.\n*\n* @returns The error message.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getSpecificMessage(reference, lang) {\n\treturn store$1?.get(reference)?.get(lang);\n}\n/**\n* Deletes a specific error message.\n*\n* @param reference The identifier reference.\n* @param lang The language of the message.\n*/\nfunction deleteSpecificMessage(reference, lang) {\n\tstore$1?.get(reference)?.delete(lang);\n}\n\n//#endregion\n//#region src/utils/_stringify/_stringify.ts\n/**\n* Stringifies an unknown input to a literal or type string.\n*\n* @param input The unknown input.\n*\n* @returns A literal or type string.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _stringify(input) {\n\tconst type = typeof input;\n\tif (type === \"string\") return `\"${input}\"`;\n\tif (type === \"number\" || type === \"bigint\" || type === \"boolean\") return `${input}`;\n\tif (type === \"object\" || type === \"function\") return (input && Object.getPrototypeOf(input)?.constructor?.name) ?? \"null\";\n\treturn type;\n}\n\n//#endregion\n//#region src/utils/_addIssue/_addIssue.ts\n/**\n* Adds an issue to the dataset.\n*\n* @param context The issue context.\n* @param label The issue label.\n* @param dataset The input dataset.\n* @param config The configuration.\n* @param other The optional props.\n*\n* @internal\n*/\nfunction _addIssue(context, label, dataset, config$1, other) {\n\tconst input = other && \"input\" in other ? other.input : dataset.value;\n\tconst expected = other?.expected ?? context.expects ?? null;\n\tconst received = other?.received ?? /* @__PURE__ */ _stringify(input);\n\tconst issue = {\n\t\tkind: context.kind,\n\t\ttype: context.type,\n\t\tinput,\n\t\texpected,\n\t\treceived,\n\t\tmessage: `Invalid ${label}: ${expected ? `Expected ${expected} but r` : \"R\"}eceived ${received}`,\n\t\trequirement: context.requirement,\n\t\tpath: other?.path,\n\t\tissues: other?.issues,\n\t\tlang: config$1.lang,\n\t\tabortEarly: config$1.abortEarly,\n\t\tabortPipeEarly: config$1.abortPipeEarly\n\t};\n\tconst isSchema = context.kind === \"schema\";\n\tconst message$1 = other?.message ?? context.message ?? /* @__PURE__ */ getSpecificMessage(context.reference, issue.lang) ?? (isSchema ? /* @__PURE__ */ getSchemaMessage(issue.lang) : null) ?? config$1.message ?? /* @__PURE__ */ getGlobalMessage(issue.lang);\n\tif (message$1 !== void 0) issue.message = typeof message$1 === \"function\" ? message$1(issue) : message$1;\n\tif (isSchema) dataset.typed = false;\n\tif (dataset.issues) dataset.issues.push(issue);\n\telse dataset.issues = [issue];\n}\n\n//#endregion\n//#region src/utils/_cloneDataset/_cloneDataset.ts\n/**\n* Creates a shallow copy of a dataset.\n*\n* Hint: The `value` is copied by reference, but the `issues` array is cloned\n* to avoid reusing mutable dataset state across multiple runs. Mutating a\n* returned object or array value can therefore affect later cache hits that\n* reuse the same cached output.\n*\n* @param dataset The output dataset.\n*\n* @returns The copied output dataset.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _cloneDataset(dataset) {\n\treturn {\n\t\ttyped: dataset.typed,\n\t\tvalue: dataset.value,\n\t\tissues: dataset.issues && [...dataset.issues]\n\t};\n}\n\n//#endregion\n//#region src/utils/_formatCase/_formatCase.ts\n/**\n* Splits a string into lowercase words and rejoins them with the given\n* separator and capitalization rules.\n*\n* Words are separated by `_`, `-` and ASCII whitespace, as well as by case\n* and acronym boundaries. Whether the first or subsequent words are\n* capitalized is controlled by `capFirst` and `capRest`.\n*\n* Hint: Implemented in a single pass that emits directly to the result\n* string to avoid an intermediate `string[]` allocation. ASCII chars are\n* classified via char codes to skip `.toLowerCase()` and `.toUpperCase()`\n* method calls in the common case.\n*\n* Hint: Digits are treated as a separate character class, so `item2Name`\n* yields `item2` and `name` rather than `item`, `2` and `name`.\n*\n* @param input The input string.\n* @param separator The string inserted between words.\n* @param capFirst Whether to capitalize the first word.\n* @param capRest Whether to capitalize subsequent words.\n*\n* @returns The formatted string.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _formatCase(input, separator, capFirst, capRest) {\n\tlet result = \"\";\n\tlet firstWord = true;\n\tlet start = 0;\n\tlet prev = 0;\n\tlet prevPrev = 0;\n\tconst flush = (end) => {\n\t\tif (end > start) {\n\t\t\tlet word = input.slice(start, end).toLowerCase();\n\t\t\tif (firstWord ? capFirst : capRest) {\n\t\t\t\tconst firstCode = word.charCodeAt(0);\n\t\t\t\tif (firstCode >= 97 && firstCode <= 122) word = String.fromCharCode(firstCode - 32) + word.slice(1);\n\t\t\t\telse {\n\t\t\t\t\tconst charLen = firstCode >= 55296 && firstCode <= 56319 ? 2 : 1;\n\t\t\t\t\tword = word.slice(0, charLen).toUpperCase() + word.slice(charLen);\n\t\t\t\t}\n\t\t\t}\n\t\t\tresult += firstWord ? word : separator + word;\n\t\t\tfirstWord = false;\n\t\t}\n\t};\n\tfor (let index = 0; index < input.length; index++) {\n\t\tconst code = input.charCodeAt(index);\n\t\tlet type;\n\t\tif (code === 32 || code === 9 || code === 10 || code === 11 || code === 12 || code === 13 || code === 45 || code === 95) {\n\t\t\tflush(index);\n\t\t\tstart = index + 1;\n\t\t\ttype = 0;\n\t\t} else if (code < 128) type = code >= 65 && code <= 90 ? 1 : code >= 97 && code <= 122 ? 2 : 3;\n\t\telse {\n\t\t\tconst char = input[index];\n\t\t\tconst charLower = char.toLowerCase();\n\t\t\ttype = charLower === char.toUpperCase() ? 3 : char === charLower ? 2 : 1;\n\t\t}\n\t\tif (type === 1 && (prev === 2 || prev === 3) && index > start) {\n\t\t\tflush(index);\n\t\t\tstart = index;\n\t\t} else if (type === 2 && prev === 1 && prevPrev === 1 && index - 1 > start) {\n\t\t\tflush(index - 1);\n\t\t\tstart = index - 1;\n\t\t}\n\t\tprevPrev = prev;\n\t\tprev = type;\n\t}\n\tflush(input.length);\n\treturn result;\n}\n\n//#endregion\n//#region src/utils/_getByteCount/_getByteCount.ts\nlet textEncoder;\n/**\n* Returns the byte count of the input.\n*\n* @param input The input to be measured.\n*\n* @returns The byte count.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _getByteCount(input) {\n\tif (!textEncoder) textEncoder = new TextEncoder();\n\treturn textEncoder.encode(input).length;\n}\n\n//#endregion\n//#region src/utils/_getGraphemeCount/_getGraphemeCount.ts\nlet segmenter;\n/**\n* Returns the grapheme count of the input.\n*\n* @param input The input to be measured.\n*\n* @returns The grapheme count.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _getGraphemeCount(input) {\n\tif (!segmenter) segmenter = new Intl.Segmenter();\n\tconst segments = segmenter.segment(input);\n\tlet count = 0;\n\tfor (const _ of segments) count++;\n\treturn count;\n}\n\n//#endregion\n//#region src/utils/_getLastMetadata/_getLastMetadata.ts\n/**\n* Returns the last top-level value of a given metadata type from a schema\n* using a breadth-first search that starts with the last item in the pipeline.\n*\n* @param schema The schema to search.\n* @param type The metadata type.\n*\n* @returns The value, if any.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _getLastMetadata(schema, type) {\n\tif (\"pipe\" in schema) {\n\t\tconst nestedSchemas = [];\n\t\tfor (let index = schema.pipe.length - 1; index >= 0; index--) {\n\t\t\tconst item = schema.pipe[index];\n\t\t\tif (item.kind === \"schema\" && \"pipe\" in item) nestedSchemas.push(item);\n\t\t\telse if (item.kind === \"metadata\" && item.type === type) return item[type];\n\t\t}\n\t\tfor (const nestedSchema of nestedSchemas) {\n\t\t\tconst result = /* @__PURE__ */ _getLastMetadata(nestedSchema, type);\n\t\t\tif (result !== void 0) return result;\n\t\t}\n\t}\n}\n\n//#endregion\n//#region src/utils/_getStandardProps/_getStandardProps.ts\nconst _standardCache = /* @__PURE__ */ new WeakMap();\n/**\n* Returns the Standard Schema properties.\n*\n* @param context The schema context.\n*\n* @returns The Standard Schema properties.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _getStandardProps(context) {\n\tlet cached = _standardCache.get(context);\n\tif (!cached) {\n\t\tcached = {\n\t\t\tversion: 1,\n\t\t\tvendor: \"valibot\",\n\t\t\tvalidate(value$1) {\n\t\t\t\treturn context[\"~run\"]({ value: value$1 }, /* @__PURE__ */ getGlobalConfig());\n\t\t\t}\n\t\t};\n\t\t_standardCache.set(context, cached);\n\t}\n\treturn cached;\n}\n\n//#endregion\n//#region src/utils/_getWordCount/_getWordCount.ts\nlet store;\n/**\n* Returns the word count of the input.\n*\n* @param locales The locales to be used.\n* @param input The input to be measured.\n*\n* @returns The word count.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _getWordCount(locales, input) {\n\tif (!store) store = /* @__PURE__ */ new Map();\n\tconst key = String(locales);\n\tlet segmenter$1 = store.get(key);\n\tif (!segmenter$1) {\n\t\tsegmenter$1 = new Intl.Segmenter(locales, { granularity: \"word\" });\n\t\tstore.set(key, segmenter$1);\n\t}\n\tconst segments = segmenter$1.segment(input);\n\tlet count = 0;\n\tfor (const segment of segments) if (segment.isWordLike) count++;\n\treturn count;\n}\n\n//#endregion\n//#region src/utils/_isLuhnAlgo/_isLuhnAlgo.ts\n/**\n* Non-digit regex.\n*/\nconst NON_DIGIT_REGEX = /\\D/gu;\n/**\n* Checks whether a string with numbers corresponds to the luhn algorithm.\n*\n* @param input The input to be checked.\n*\n* @returns Whether input is valid.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _isLuhnAlgo(input) {\n\tconst number$1 = input.replace(NON_DIGIT_REGEX, \"\");\n\tlet length$1 = number$1.length;\n\tlet bit = 1;\n\tlet sum = 0;\n\twhile (length$1) {\n\t\tconst value$1 = +number$1[--length$1];\n\t\tbit ^= 1;\n\t\tsum += bit ? [\n\t\t\t0,\n\t\t\t2,\n\t\t\t4,\n\t\t\t6,\n\t\t\t8,\n\t\t\t1,\n\t\t\t3,\n\t\t\t5,\n\t\t\t7,\n\t\t\t9\n\t\t][value$1] : value$1;\n\t}\n\treturn sum % 10 === 0;\n}\n\n//#endregion\n//#region src/utils/_isValidObjectKey/_isValidObjectKey.ts\n/**\n* Disallows inherited object properties and prevents object prototype\n* pollution by disallowing certain keys.\n*\n* @param object The object to check.\n* @param key The key to check.\n*\n* @returns Whether the key is allowed.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _isValidObjectKey(object$1, key) {\n\treturn Object.prototype.hasOwnProperty.call(object$1, key) && key !== \"__proto__\" && key !== \"prototype\" && key !== \"constructor\";\n}\n\n//#endregion\n//#region src/utils/_joinExpects/_joinExpects.ts\n/**\n* Joins multiple `expects` values with the given separator.\n*\n* @param values The `expects` values.\n* @param separator The separator.\n*\n* @returns The joined `expects` property.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _joinExpects(values$1, separator) {\n\tconst list = [...new Set(values$1)];\n\tif (list.length > 1) return `(${list.join(` ${separator} `)})`;\n\treturn list[0] ?? \"never\";\n}\n\n//#endregion\n//#region src/utils/entriesFromList/entriesFromList.ts\n/**\n* Creates an object entries definition from a list of keys and a schema.\n*\n* @param list A list of keys.\n* @param schema The schema of the keys.\n*\n* @returns The object entries.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction entriesFromList(list, schema) {\n\tconst entries$1 = {};\n\tfor (const key of list) entries$1[key] = schema;\n\treturn entries$1;\n}\n\n//#endregion\n//#region src/utils/entriesFromObjects/entriesFromObjects.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction entriesFromObjects(schemas) {\n\tconst entries$1 = {};\n\tfor (const schema of schemas) Object.assign(entries$1, schema.entries);\n\treturn entries$1;\n}\n\n//#endregion\n//#region src/utils/getDotPath/getDotPath.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction getDotPath(issue) {\n\tif (issue.path) {\n\t\tlet key = \"\";\n\t\tfor (const item of issue.path) if (typeof item.key === \"string\" || typeof item.key === \"number\") if (key) key += `.${item.key}`;\n\t\telse key += item.key;\n\t\telse return null;\n\t\treturn key;\n\t}\n\treturn null;\n}\n\n//#endregion\n//#region src/utils/isOfKind/isOfKind.ts\n/**\n* A generic type guard to check the kind of an object.\n*\n* @param kind The kind to check for.\n* @param object The object to check.\n*\n* @returns Whether it matches.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction isOfKind(kind, object$1) {\n\treturn object$1.kind === kind;\n}\n\n//#endregion\n//#region src/utils/isOfType/isOfType.ts\n/**\n* A generic type guard to check the type of an object.\n*\n* @param type The type to check for.\n* @param object The object to check.\n*\n* @returns Whether it matches.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction isOfType(type, object$1) {\n\treturn object$1.type === type;\n}\n\n//#endregion\n//#region src/utils/isValiError/isValiError.ts\n/**\n* A type guard to check if an error is a ValiError.\n*\n* @param error The error to check.\n*\n* @returns Whether its a ValiError.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction isValiError(error) {\n\treturn error instanceof ValiError;\n}\n\n//#endregion\n//#region src/utils/ValiError/ValiError.ts\n/**\n* A Valibot error with useful information.\n*/\nvar ValiError = class extends Error {\n\t/**\n\t* Creates a Valibot error with useful information.\n\t*\n\t* @param issues The error issues.\n\t*/\n\tconstructor(issues) {\n\t\tsuper(issues[0].message);\n\t\tthis.name = \"ValiError\";\n\t\tthis.issues = issues;\n\t}\n};\n\n//#endregion\n//#region src/actions/args/args.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction args(schema) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"args\",\n\t\treference: args,\n\t\tasync: false,\n\t\tschema,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst func = dataset.value;\n\t\t\tdataset.value = (...args_) => {\n\t\t\t\tconst argsDataset = this.schema[\"~run\"]({ value: args_ }, config$1);\n\t\t\t\tif (argsDataset.issues) throw new ValiError(argsDataset.issues);\n\t\t\t\treturn func(...argsDataset.value);\n\t\t\t};\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/args/argsAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction argsAsync(schema) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"args\",\n\t\treference: argsAsync,\n\t\tasync: false,\n\t\tschema,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst func = dataset.value;\n\t\t\tdataset.value = async (...args$1) => {\n\t\t\t\tconst argsDataset = await schema[\"~run\"]({ value: args$1 }, config$1);\n\t\t\t\tif (argsDataset.issues) throw new ValiError(argsDataset.issues);\n\t\t\t\treturn func(...argsDataset.value);\n\t\t\t};\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/await/awaitAsync.ts\n/**\n* Creates an await transformation action.\n*\n* @returns An await action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction awaitAsync() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"await\",\n\t\treference: awaitAsync,\n\t\tasync: true,\n\t\tasync \"~run\"(dataset) {\n\t\t\tdataset.value = await dataset.value;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/regex.ts\n/**\n* [Base64](https://en.wikipedia.org/wiki/Base64) regex.\n*/\nconst BASE64_REGEX = /^(?:[\\da-z+/]{4})*(?:[\\da-z+/]{2}==|[\\da-z+/]{3}=)?$/iu;\n/**\n* [BIC](https://en.wikipedia.org/wiki/ISO_9362) regex.\n*/\nconst BIC_REGEX = /^[A-Z]{6}(?!00)[\\dA-Z]{2}(?:[\\dA-Z]{3})?$/u;\n/**\n* [Cuid2](https://github.com/paralleldrive/cuid2) regex.\n*/\nconst CUID2_REGEX = /^[a-z][\\da-z]*$/u;\n/**\n* [Decimal](https://en.wikipedia.org/wiki/Decimal) regex.\n*/\nconst DECIMAL_REGEX = /^[+-]?(?:\\d*\\.)?\\d+$/u;\n/**\n* [Digits](https://en.wikipedia.org/wiki/Numerical_digit) regex.\n*/\nconst DIGITS_REGEX = /^\\d+$/u;\n/**\n* [Domain name](https://en.wikipedia.org/wiki/Domain_name) regex.\n*\n* Hint: We decided against the `i` flag for better JSON Schema compatibility.\n* ASCII-only validation. Internationalized domain names (IDNs) are not\n* supported, including Punycode-encoded labels.\n*/\nconst DOMAIN_REGEX = /^(?=.{1,253}$)(?:(?![Xx][Nn]--)[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\\.)+[A-Za-z]{2,63}$/u;\n/**\n* [Email address](https://en.wikipedia.org/wiki/Email_address) regex.\n*/\nconst EMAIL_REGEX = /^[\\w+-]+(?:\\.[\\w+-]+)*@[\\da-z]+(?:[.-][\\da-z]+)*\\.[a-z]{2,}$/iu;\n/**\n* Emoji regex from [emoji-regex-xs](https://github.com/slevithan/emoji-regex-xs) v1.0.0 (MIT license).\n*\n* Hint: We decided against the newer `/^\\p{RGI_Emoji}+$/v` regex because it is\n* not supported in older runtimes and does not match all emoji.\n*/\nconst EMOJI_REGEX = /^(?:[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|(?![\\p{Emoji_Modifier_Base}\\u{1F1E6}-\\u{1F1FF}])\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|(?![\\p{Emoji_Modifier_Base}\\u{1F1E6}-\\u{1F1FF}])\\p{Emoji_Presentation}))*)+$/u;\n/**\n* [Hexadecimal](https://en.wikipedia.org/wiki/Hexadecimal) regex.\n*\n* Hint: We decided against the `i` flag for better JSON Schema compatibility.\n*/\nconst HEXADECIMAL_REGEX = /^(?:0[hx])?[\\da-fA-F]+$/u;\n/**\n* [Hex color](https://en.wikipedia.org/wiki/Web_colors#Hex_triplet) regex.\n*\n* Hint: We decided against the `i` flag for better JSON Schema compatibility.\n*/\nconst HEX_COLOR_REGEX = /^#(?:[\\da-fA-F]{3,4}|[\\da-fA-F]{6}|[\\da-fA-F]{8})$/u;\n/**\n* [IMEI](https://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity) regex.\n*/\nconst IMEI_REGEX = /^\\d{15}$|^\\d{2}-\\d{6}-\\d{6}-\\d$/u;\n/**\n* [IPv4](https://en.wikipedia.org/wiki/IPv4) regex.\n*/\nconst IPV4_REGEX = /^(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])(?:\\.(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])){3}$/u;\n/**\n* [IPv6](https://en.wikipedia.org/wiki/IPv6) regex.\n*/\nconst IPV6_REGEX = /^(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:|(?:[\\da-f]{1,4}:){1,6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,5}(?::[\\da-f]{1,4}){1,2}|(?:[\\da-f]{1,4}:){1,4}(?::[\\da-f]{1,4}){1,3}|(?:[\\da-f]{1,4}:){1,3}(?::[\\da-f]{1,4}){1,4}|(?:[\\da-f]{1,4}:){1,2}(?::[\\da-f]{1,4}){1,5}|[\\da-f]{1,4}:(?::[\\da-f]{1,4}){1,6}|:(?:(?::[\\da-f]{1,4}){1,7}|:)|fe80:(?::[\\da-f]{0,4}){0,4}%[\\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)|(?:[\\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d))$/iu;\n/**\n* [IP](https://en.wikipedia.org/wiki/IP_address) regex.\n*/\nconst IP_REGEX = /^(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])(?:\\.(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])){3}$|^(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:|(?:[\\da-f]{1,4}:){1,6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,5}(?::[\\da-f]{1,4}){1,2}|(?:[\\da-f]{1,4}:){1,4}(?::[\\da-f]{1,4}){1,3}|(?:[\\da-f]{1,4}:){1,3}(?::[\\da-f]{1,4}){1,4}|(?:[\\da-f]{1,4}:){1,2}(?::[\\da-f]{1,4}){1,5}|[\\da-f]{1,4}:(?::[\\da-f]{1,4}){1,6}|:(?:(?::[\\da-f]{1,4}){1,7}|:)|fe80:(?::[\\da-f]{0,4}){0,4}%[\\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)|(?:[\\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d))$/iu;\n/**\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date regex.\n*/\nconst ISO_DATE_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])$/u;\n/**\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time regex.\n*/\nconst ISO_DATE_TIME_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])[T ](?:0\\d|1\\d|2[0-3]):[0-5]\\d$/u;\n/**\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time with seconds regex.\n*/\nconst ISO_DATE_TIME_SECOND_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])[T ](?:0\\d|1\\d|2[0-3])(?::[0-5]\\d){2}$/u;\n/**\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time regex.\n*/\nconst ISO_TIME_REGEX = /^(?:0\\d|1\\d|2[0-3]):[0-5]\\d$/u;\n/**\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time with seconds regex.\n*/\nconst ISO_TIME_SECOND_REGEX = /^(?:0\\d|1\\d|2[0-3])(?::[0-5]\\d){2}$/u;\n/**\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) timestamp regex. Allows a\n* space as a date/time separator and an optional space before the UTC offset.\n*/\nconst ISO_TIMESTAMP_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])[T ](?:0\\d|1\\d|2[0-3])(?::[0-5]\\d){2}(?:\\.\\d{1,9})?(?:Z| ?[+-](?:0\\d|1\\d|2[0-3])(?::?[0-5]\\d)?)$/u;\n/**\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) week regex.\n*/\nconst ISO_WEEK_REGEX = /^\\d{4}-W(?:0[1-9]|[1-4]\\d|5[0-3])$/u;\n/**\n* [JWS compact serialization](https://datatracker.ietf.org/doc/html/rfc7515#section-3.1)\n* regex.\n*\n* Hint: Empty payload and signature segments are allowed because the\n* Base64URL-encoded representation of an empty octet sequence is an empty\n* string.\n*/\nconst JWS_COMPACT_REGEX = /^(?:[\\w-]{2,3}|(?:[\\w-]{4})+(?:[\\w-]{2,3})?)\\.(?:[\\w-]{2,3}|(?:[\\w-]{4})+(?:[\\w-]{2,3})?)?\\.(?:[\\w-]{2,3}|(?:[\\w-]{4})+(?:[\\w-]{2,3})?)?$/u;\n/**\n* [ISRC](https://en.wikipedia.org/wiki/International_Standard_Recording_Code) regex.\n*/\nconst ISRC_REGEX = /^(?:[A-Z]{2}[A-Z\\d]{3}\\d{7}|[A-Z]{2}-[A-Z\\d]{3}-\\d{2}-\\d{5})$/u;\n/**\n* [MAC](https://en.wikipedia.org/wiki/MAC_address) 48 bit regex.\n*\n* Hint: We decided against the `i` flag for better JSON Schema compatibility.\n*/\nconst MAC48_REGEX = /^(?:[\\da-fA-F]{2}:){5}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{2}-){5}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{4}\\.){2}[\\da-fA-F]{4}$/u;\n/**\n* [MAC](https://en.wikipedia.org/wiki/MAC_address) 64 bit regex.\n*\n* Hint: We decided against the `i` flag for better JSON Schema compatibility.\n*/\nconst MAC64_REGEX = /^(?:[\\da-fA-F]{2}:){7}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{2}-){7}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{4}\\.){3}[\\da-fA-F]{4}$|^(?:[\\da-fA-F]{4}:){3}[\\da-fA-F]{4}$/u;\n/**\n* [MAC](https://en.wikipedia.org/wiki/MAC_address) regex.\n*\n* Hint: We decided against the `i` flag for better JSON Schema compatibility.\n*/\nconst MAC_REGEX = /^(?:[\\da-fA-F]{2}:){5}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{2}-){5}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{4}\\.){2}[\\da-fA-F]{4}$|^(?:[\\da-fA-F]{2}:){7}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{2}-){7}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{4}\\.){3}[\\da-fA-F]{4}$|^(?:[\\da-fA-F]{4}:){3}[\\da-fA-F]{4}$/u;\n/**\n* [Nano ID](https://github.com/ai/nanoid) regex.\n*/\nconst NANO_ID_REGEX = /^[\\w-]+$/u;\n/**\n* [Octal](https://en.wikipedia.org/wiki/Octal) regex.\n*/\nconst OCTAL_REGEX = /^(?:0o)?[0-7]+$/u;\n/**\n* [RFC 5322 email address](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1) regex.\n*\n* Hint: This regex was taken from the [HTML Living Standard Specification](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address) and does not perfectly represent RFC 5322.\n*/\nconst RFC_EMAIL_REGEX = /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/**\n* [Slug](https://en.wikipedia.org/wiki/Clean_URL#Slug) regex.\n*/\nconst SLUG_REGEX = /^[\\da-z]+(?:[-_][\\da-z]+)*$/u;\n/**\n* [ULID](https://github.com/ulid/spec) regex.\n*\n* Hint: We decided against the `i` flag for better JSON Schema compatibility.\n*/\nconst ULID_REGEX = /^[\\da-hjkmnp-tv-zA-HJKMNP-TV-Z]{26}$/u;\n/**\n* [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) regex.\n*/\nconst UUID_REGEX = /^[\\da-f]{8}(?:-[\\da-f]{4}){3}-[\\da-f]{12}$/iu;\n\n//#endregion\n//#region src/actions/base64/base64.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction base64(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"base64\",\n\t\treference: base64,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: BASE64_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"Base64\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/bic/bic.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction bic(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"bic\",\n\t\treference: bic,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: BIC_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"BIC\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/brand/brand.ts\n/**\n* Creates a brand transformation action.\n*\n* @param name The brand name.\n*\n* @returns A brand action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction brand(name) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"brand\",\n\t\treference: brand,\n\t\tasync: false,\n\t\tname,\n\t\t\"~run\"(dataset) {\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/bytes/bytes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction bytes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"bytes\",\n\t\treference: bytes,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst length$1 = /* @__PURE__ */ _getByteCount(dataset.value);\n\t\t\t\tif (length$1 !== this.requirement) _addIssue(this, \"bytes\", dataset, config$1, { received: `${length$1}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/check/check.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction check(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"check\",\n\t\treference: check,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"input\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/check/checkAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction checkAsync(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"check\",\n\t\treference: checkAsync,\n\t\tasync: true,\n\t\texpects: null,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !await this.requirement(dataset.value)) _addIssue(this, \"input\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/checkItems/checkItems.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction checkItems(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"check_items\",\n\t\treference: checkItems,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) for (let index = 0; index < dataset.value.length; index++) {\n\t\t\t\tconst item = dataset.value[index];\n\t\t\t\tif (!this.requirement(item, index, dataset.value)) _addIssue(this, \"item\", dataset, config$1, {\n\t\t\t\t\tinput: item,\n\t\t\t\t\tpath: [{\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\tinput: dataset.value,\n\t\t\t\t\t\tkey: index,\n\t\t\t\t\t\tvalue: item\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/checkItems/checkItemsAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction checkItemsAsync(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"check_items\",\n\t\treference: checkItemsAsync,\n\t\tasync: true,\n\t\texpects: null,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst requirementResults = await Promise.all(dataset.value.map(this.requirement));\n\t\t\t\tfor (let index = 0; index < dataset.value.length; index++) if (!requirementResults[index]) {\n\t\t\t\t\tconst item = dataset.value[index];\n\t\t\t\t\t_addIssue(this, \"item\", dataset, config$1, {\n\t\t\t\t\t\tinput: item,\n\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput: dataset.value,\n\t\t\t\t\t\t\tkey: index,\n\t\t\t\t\t\t\tvalue: item\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/creditCard/creditCard.ts\n/**\n* Credit card regex.\n*/\nconst CREDIT_CARD_REGEX = /^(?:\\d{13,19}|\\d{4}(?: \\d{3,6}){2,4}|\\d{4}(?:-\\d{3,6}){2,4})$/u;\n/**\n* Sanitize regex.\n*/\nconst SANITIZE_REGEX = /[- ]/gu;\n/**\n* Provider regex list.\n*/\nconst PROVIDER_REGEX_LIST = [\n\t/^3[47]\\d{13}$/u,\n\t/^3(?:0[0-5]|[68]\\d)\\d{11,13}$/u,\n\t/^6(?:011|5\\d{2})\\d{12,15}$/u,\n\t/^(?:2131|1800|35\\d{3})\\d{11}$/u,\n\t/^(?:5[1-5]\\d{2}|222\\d|22[3-9]\\d|2[3-6]\\d{2}|27[01]\\d|2720)\\d{12}$/u,\n\t/^(?:6[27]\\d{14,17}|81\\d{14,17})$/u,\n\t/^4\\d{12}(?:\\d{3,6})?$/u\n];\n/* @__NO_SIDE_EFFECTS__ */\nfunction creditCard(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"credit_card\",\n\t\treference: creditCard,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement(input) {\n\t\t\tlet sanitized;\n\t\t\treturn CREDIT_CARD_REGEX.test(input) && (sanitized = input.replace(SANITIZE_REGEX, \"\")) && PROVIDER_REGEX_LIST.some((regex$1) => regex$1.test(sanitized)) && /* @__PURE__ */ _isLuhnAlgo(sanitized);\n\t\t},\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"credit card\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/cuid2/cuid2.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction cuid2(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"cuid2\",\n\t\treference: cuid2,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: CUID2_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"Cuid2\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/decimal/decimal.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction decimal(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"decimal\",\n\t\treference: decimal,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: DECIMAL_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"decimal\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/description/description.ts\n/**\n* Creates a description metadata action.\n*\n* @param description_ The description text.\n*\n* @returns A description action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction description(description_) {\n\treturn {\n\t\tkind: \"metadata\",\n\t\ttype: \"description\",\n\t\treference: description,\n\t\tdescription: description_\n\t};\n}\n\n//#endregion\n//#region src/actions/digits/digits.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction digits(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"digits\",\n\t\treference: digits,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: DIGITS_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"digits\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/domain/domain.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction domain(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"domain\",\n\t\treference: domain,\n\t\texpects: null,\n\t\tasync: false,\n\t\trequirement: DOMAIN_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"domain\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/email/email.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction email(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"email\",\n\t\treference: email,\n\t\texpects: null,\n\t\tasync: false,\n\t\trequirement: EMAIL_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"email\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/emoji/emoji.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction emoji(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"emoji\",\n\t\treference: emoji,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: EMOJI_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"emoji\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/empty/empty.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction empty(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"empty\",\n\t\treference: empty,\n\t\tasync: false,\n\t\texpects: \"0\",\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.length > 0) _addIssue(this, \"length\", dataset, config$1, { received: `${dataset.value.length}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/endsWith/endsWith.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction endsWith(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"ends_with\",\n\t\treference: endsWith,\n\t\tasync: false,\n\t\texpects: `\"${requirement}\"`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !dataset.value.endsWith(this.requirement)) _addIssue(this, \"end\", dataset, config$1, { received: `\"${dataset.value.slice(-this.requirement.length)}\"` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/entries/entries.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction entries(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"entries\",\n\t\treference: entries,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (!dataset.typed) return dataset;\n\t\t\tconst count = Object.keys(dataset.value).length;\n\t\t\tif (dataset.typed && count !== this.requirement) _addIssue(this, \"entries\", dataset, config$1, { received: `${count}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/everyItem/everyItem.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction everyItem(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"every_item\",\n\t\treference: everyItem,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !dataset.value.every(this.requirement)) _addIssue(this, \"item\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/examples/examples.ts\n/**\n* Creates an examples metadata action.\n*\n* @param examples_ The examples.\n*\n* @returns An examples action.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction examples(examples_) {\n\treturn {\n\t\tkind: \"metadata\",\n\t\ttype: \"examples\",\n\t\treference: examples,\n\t\texamples: examples_\n\t};\n}\n\n//#endregion\n//#region src/actions/excludes/excludes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction excludes(requirement, message$1) {\n\tconst received = /* @__PURE__ */ _stringify(requirement);\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"excludes\",\n\t\treference: excludes,\n\t\tasync: false,\n\t\texpects: `!${received}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.includes(this.requirement)) _addIssue(this, \"content\", dataset, config$1, { received });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/filterItems/filterItems.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction filterItems(operation) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"filter_items\",\n\t\treference: filterItems,\n\t\tasync: false,\n\t\toperation,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.filter(this.operation);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/findItem/findItem.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction findItem(operation) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"find_item\",\n\t\treference: findItem,\n\t\tasync: false,\n\t\toperation,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.find(this.operation);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/finite/finite.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction finite(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"finite\",\n\t\treference: finite,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: Number.isFinite,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"finite\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/flavor/flavor.ts\n/**\n* Creates a flavor transformation action.\n*\n* @param name The flavor name.\n*\n* @returns A flavor action.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction flavor(name) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"flavor\",\n\t\treference: flavor,\n\t\tasync: false,\n\t\tname,\n\t\t\"~run\"(dataset) {\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/graphemes/graphemes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction graphemes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"graphemes\",\n\t\treference: graphemes,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getGraphemeCount(dataset.value);\n\t\t\t\tif (count !== this.requirement) _addIssue(this, \"graphemes\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/gtValue/gtValue.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction gtValue(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"gt_value\",\n\t\treference: gtValue,\n\t\tasync: false,\n\t\texpects: `>${requirement instanceof Date ? requirement.toJSON() : /* @__PURE__ */ _stringify(requirement)}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !(dataset.value > this.requirement)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/guard/guard.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction guard(requirement, message$1) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"guard\",\n\t\treference: guard,\n\t\tasync: false,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) {\n\t\t\t\t_addIssue(this, \"input\", dataset, config$1);\n\t\t\t\tdataset.typed = false;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/hash/hash.ts\n/**\n* Hash lengths object.\n*/\nconst HASH_LENGTHS = {\n\tmd4: 32,\n\tmd5: 32,\n\tsha1: 40,\n\tsha256: 64,\n\tsha384: 96,\n\tsha512: 128,\n\tripemd128: 32,\n\tripemd160: 40,\n\ttiger128: 32,\n\ttiger160: 40,\n\ttiger192: 48,\n\tcrc32: 8,\n\tcrc32b: 8,\n\tadler32: 8\n};\n/* @__NO_SIDE_EFFECTS__ */\nfunction hash(types, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"hash\",\n\t\treference: hash,\n\t\texpects: null,\n\t\tasync: false,\n\t\trequirement: RegExp(types.map((type) => `^[a-fA-F0-9]{${HASH_LENGTHS[type]}}$`).join(\"|\"), \"u\"),\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"hash\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/hexadecimal/hexadecimal.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction hexadecimal(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"hexadecimal\",\n\t\treference: hexadecimal,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: HEXADECIMAL_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"hexadecimal\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/hexColor/hexColor.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction hexColor(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"hex_color\",\n\t\treference: hexColor,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: HEX_COLOR_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"hex color\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/imei/imei.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction imei(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"imei\",\n\t\treference: imei,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement(input) {\n\t\t\treturn IMEI_REGEX.test(input) && /* @__PURE__ */ _isLuhnAlgo(input);\n\t\t},\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"IMEI\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/includes/includes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction includes(requirement, message$1) {\n\tconst expects = /* @__PURE__ */ _stringify(requirement);\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"includes\",\n\t\treference: includes,\n\t\tasync: false,\n\t\texpects,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !dataset.value.includes(this.requirement)) _addIssue(this, \"content\", dataset, config$1, { received: `!${expects}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/integer/integer.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction integer(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"integer\",\n\t\treference: integer,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: Number.isInteger,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"integer\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/ip/ip.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction ip(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"ip\",\n\t\treference: ip,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: IP_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"IP\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/ipv4/ipv4.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction ipv4(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"ipv4\",\n\t\treference: ipv4,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: IPV4_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"IPv4\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/ipv6/ipv6.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction ipv6(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"ipv6\",\n\t\treference: ipv6,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: IPV6_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"IPv6\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isbn/utils/_isIsbn10.ts\n/**\n* [Validates an ISBN-10](https://en.wikipedia.org/wiki/ISBN#ISBN-10_check_digits).\n*\n* @param input The input value.\n*\n* @returns `true` if the input is a valid ISBN-10, `false` otherwise.\n*\n* @internal\n*/\nfunction _isIsbn10(input) {\n\tconst digits$1 = input.split(\"\").map((c) => c === \"X\" ? 10 : parseInt(c));\n\tlet sum = 0;\n\tfor (let i = 0; i < 10; i++) sum += digits$1[i] * (10 - i);\n\treturn sum % 11 === 0;\n}\n\n//#endregion\n//#region src/actions/isbn/utils/_isIsbn13.ts\n/**\n* [Validates an ISBN-13](https://en.wikipedia.org/wiki/ISBN#ISBN-13_check_digit_calculation).\n*\n* @param input The input value.\n*\n* @returns `true` if the input is a valid ISBN-13, `false` otherwise.\n*\n* @internal\n*/\nfunction _isIsbn13(input) {\n\tconst digits$1 = input.split(\"\").map((c) => parseInt(c));\n\tlet sum = 0;\n\tfor (let i = 0; i < 13; i++) sum += digits$1[i] * (i % 2 === 0 ? 1 : 3);\n\treturn sum % 10 === 0;\n}\n\n//#endregion\n//#region src/actions/isbn/isbn.ts\n/**\n* ISBN separator regex.\n*/\nconst ISBN_SEPARATOR_REGEX = /[- ]/gu;\n/**\n* ISBN-10 detection regex.\n*/\nconst ISBN_10_DETECTION_REGEX = /^\\d{9}[\\dX]$/u;\n/**\n* ISBN-13 detection regex.\n*/\nconst ISBN_13_DETECTION_REGEX = /^\\d{13}$/u;\n/* @__NO_SIDE_EFFECTS__ */\nfunction isbn(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"isbn\",\n\t\treference: isbn,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement(input) {\n\t\t\tconst replacedInput = input.replace(ISBN_SEPARATOR_REGEX, \"\");\n\t\t\tif (ISBN_10_DETECTION_REGEX.test(replacedInput)) return _isIsbn10(replacedInput);\n\t\t\telse if (ISBN_13_DETECTION_REGEX.test(replacedInput)) return _isIsbn13(replacedInput);\n\t\t\treturn false;\n\t\t},\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"ISBN\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isrc/isrc.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isrc(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"isrc\",\n\t\treference: isrc,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISRC_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"ISRC\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isoDate/isoDate.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isoDate(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"iso_date\",\n\t\treference: isoDate,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISO_DATE_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"date\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isoDateTime/isoDateTime.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isoDateTime(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"iso_date_time\",\n\t\treference: isoDateTime,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISO_DATE_TIME_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"date-time\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isoDateTimeSecond/isoDateTimeSecond.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isoDateTimeSecond(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"iso_date_time_second\",\n\t\treference: isoDateTimeSecond,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISO_DATE_TIME_SECOND_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"date-time-second\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isoTime/isoTime.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isoTime(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"iso_time\",\n\t\treference: isoTime,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISO_TIME_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"time\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isoTimeSecond/isoTimeSecond.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isoTimeSecond(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"iso_time_second\",\n\t\treference: isoTimeSecond,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISO_TIME_SECOND_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"time-second\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isoTimestamp/isoTimestamp.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isoTimestamp(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"iso_timestamp\",\n\t\treference: isoTimestamp,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISO_TIMESTAMP_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"timestamp\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isoWeek/isoWeek.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isoWeek(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"iso_week\",\n\t\treference: isoWeek,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISO_WEEK_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"week\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/jwsCompact/jwsCompact.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction jwsCompact(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"jws_compact\",\n\t\treference: jwsCompact,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: JWS_COMPACT_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"JWS compact\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/length/length.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction length(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"length\",\n\t\treference: length,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.length !== this.requirement) _addIssue(this, \"length\", dataset, config$1, { received: `${dataset.value.length}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/ltValue/ltValue.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction ltValue(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"lt_value\",\n\t\treference: ltValue,\n\t\tasync: false,\n\t\texpects: `<${requirement instanceof Date ? requirement.toJSON() : /* @__PURE__ */ _stringify(requirement)}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !(dataset.value < this.requirement)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/mac/mac.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction mac(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"mac\",\n\t\treference: mac,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: MAC_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"MAC\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/mac48/mac48.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction mac48(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"mac48\",\n\t\treference: mac48,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: MAC48_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"48-bit MAC\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/mac64/mac64.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction mac64(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"mac64\",\n\t\treference: mac64,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: MAC64_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"64-bit MAC\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/mapItems/mapItems.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction mapItems(operation) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"map_items\",\n\t\treference: mapItems,\n\t\tasync: false,\n\t\toperation,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.map(this.operation);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxBytes/maxBytes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxBytes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_bytes\",\n\t\treference: maxBytes,\n\t\tasync: false,\n\t\texpects: `<=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst length$1 = /* @__PURE__ */ _getByteCount(dataset.value);\n\t\t\t\tif (length$1 > this.requirement) _addIssue(this, \"bytes\", dataset, config$1, { received: `${length$1}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxEntries/maxEntries.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxEntries(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_entries\",\n\t\treference: maxEntries,\n\t\tasync: false,\n\t\texpects: `<=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (!dataset.typed) return dataset;\n\t\t\tconst count = Object.keys(dataset.value).length;\n\t\t\tif (dataset.typed && count > this.requirement) _addIssue(this, \"entries\", dataset, config$1, { received: `${count}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxGraphemes/maxGraphemes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxGraphemes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_graphemes\",\n\t\treference: maxGraphemes,\n\t\tasync: false,\n\t\texpects: `<=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getGraphemeCount(dataset.value);\n\t\t\t\tif (count > this.requirement) _addIssue(this, \"graphemes\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxLength/maxLength.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxLength(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_length\",\n\t\treference: maxLength,\n\t\tasync: false,\n\t\texpects: `<=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.length > this.requirement) _addIssue(this, \"length\", dataset, config$1, { received: `${dataset.value.length}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxSize/maxSize.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxSize(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_size\",\n\t\treference: maxSize,\n\t\tasync: false,\n\t\texpects: `<=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.size > this.requirement) _addIssue(this, \"size\", dataset, config$1, { received: `${dataset.value.size}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxValue/maxValue.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxValue(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_value\",\n\t\treference: maxValue,\n\t\tasync: false,\n\t\texpects: `<=${requirement instanceof Date ? requirement.toJSON() : /* @__PURE__ */ _stringify(requirement)}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !(dataset.value <= this.requirement)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxWords/maxWords.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxWords(locales, requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_words\",\n\t\treference: maxWords,\n\t\tasync: false,\n\t\texpects: `<=${requirement}`,\n\t\tlocales,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getWordCount(this.locales, dataset.value);\n\t\t\t\tif (count > this.requirement) _addIssue(this, \"words\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/metadata/metadata.ts\n/**\n* Creates a custom metadata action.\n*\n* @param metadata_ The metadata object.\n*\n* @returns A metadata action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction metadata(metadata_) {\n\treturn {\n\t\tkind: \"metadata\",\n\t\ttype: \"metadata\",\n\t\treference: metadata,\n\t\tmetadata: metadata_\n\t};\n}\n\n//#endregion\n//#region src/actions/mimeType/mimeType.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction mimeType(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"mime_type\",\n\t\treference: mimeType,\n\t\tasync: false,\n\t\texpects: /* @__PURE__ */ _joinExpects(requirement.map((option) => `\"${option}\"`), \"|\"),\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.includes(dataset.value.type)) _addIssue(this, \"MIME type\", dataset, config$1, { received: `\"${dataset.value.type}\"` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minBytes/minBytes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minBytes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_bytes\",\n\t\treference: minBytes,\n\t\tasync: false,\n\t\texpects: `>=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst length$1 = /* @__PURE__ */ _getByteCount(dataset.value);\n\t\t\t\tif (length$1 < this.requirement) _addIssue(this, \"bytes\", dataset, config$1, { received: `${length$1}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minEntries/minEntries.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minEntries(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_entries\",\n\t\treference: minEntries,\n\t\tasync: false,\n\t\texpects: `>=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (!dataset.typed) return dataset;\n\t\t\tconst count = Object.keys(dataset.value).length;\n\t\t\tif (dataset.typed && count < this.requirement) _addIssue(this, \"entries\", dataset, config$1, { received: `${count}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minGraphemes/minGraphemes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minGraphemes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_graphemes\",\n\t\treference: minGraphemes,\n\t\tasync: false,\n\t\texpects: `>=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getGraphemeCount(dataset.value);\n\t\t\t\tif (count < this.requirement) _addIssue(this, \"graphemes\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minLength/minLength.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minLength(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_length\",\n\t\treference: minLength,\n\t\tasync: false,\n\t\texpects: `>=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.length < this.requirement) _addIssue(this, \"length\", dataset, config$1, { received: `${dataset.value.length}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minSize/minSize.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minSize(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_size\",\n\t\treference: minSize,\n\t\tasync: false,\n\t\texpects: `>=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.size < this.requirement) _addIssue(this, \"size\", dataset, config$1, { received: `${dataset.value.size}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minValue/minValue.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minValue(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_value\",\n\t\treference: minValue,\n\t\tasync: false,\n\t\texpects: `>=${requirement instanceof Date ? requirement.toJSON() : /* @__PURE__ */ _stringify(requirement)}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !(dataset.value >= this.requirement)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minWords/minWords.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minWords(locales, requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_words\",\n\t\treference: minWords,\n\t\tasync: false,\n\t\texpects: `>=${requirement}`,\n\t\tlocales,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getWordCount(this.locales, dataset.value);\n\t\t\t\tif (count < this.requirement) _addIssue(this, \"words\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/multipleOf/multipleOf.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction multipleOf(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"multiple_of\",\n\t\treference: multipleOf,\n\t\tasync: false,\n\t\texpects: `%${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value % this.requirement != 0) _addIssue(this, \"multiple\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/nanoid/nanoid.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nanoid(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"nanoid\",\n\t\treference: nanoid,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: NANO_ID_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"Nano ID\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/nonEmpty/nonEmpty.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonEmpty(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"non_empty\",\n\t\treference: nonEmpty,\n\t\tasync: false,\n\t\texpects: \"!0\",\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.length === 0) _addIssue(this, \"length\", dataset, config$1, { received: \"0\" });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/normalize/normalize.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction normalize(form) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"normalize\",\n\t\treference: normalize,\n\t\tasync: false,\n\t\tform,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.normalize(this.form);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notBytes/notBytes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notBytes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_bytes\",\n\t\treference: notBytes,\n\t\tasync: false,\n\t\texpects: `!${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst length$1 = /* @__PURE__ */ _getByteCount(dataset.value);\n\t\t\t\tif (length$1 === this.requirement) _addIssue(this, \"bytes\", dataset, config$1, { received: `${length$1}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notEntries/notEntries.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notEntries(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_entries\",\n\t\treference: notEntries,\n\t\tasync: false,\n\t\texpects: `!${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (!dataset.typed) return dataset;\n\t\t\tconst count = Object.keys(dataset.value).length;\n\t\t\tif (dataset.typed && count === this.requirement) _addIssue(this, \"entries\", dataset, config$1, { received: `${count}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notGraphemes/notGraphemes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notGraphemes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_graphemes\",\n\t\treference: notGraphemes,\n\t\tasync: false,\n\t\texpects: `!${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getGraphemeCount(dataset.value);\n\t\t\t\tif (count === this.requirement) _addIssue(this, \"graphemes\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notLength/notLength.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notLength(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_length\",\n\t\treference: notLength,\n\t\tasync: false,\n\t\texpects: `!${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.length === this.requirement) _addIssue(this, \"length\", dataset, config$1, { received: `${dataset.value.length}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notSize/notSize.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notSize(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_size\",\n\t\treference: notSize,\n\t\tasync: false,\n\t\texpects: `!${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.size === this.requirement) _addIssue(this, \"size\", dataset, config$1, { received: `${dataset.value.size}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notValue/notValue.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notValue(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_value\",\n\t\treference: notValue,\n\t\tasync: false,\n\t\texpects: requirement instanceof Date ? `!${requirement.toJSON()}` : `!${/* @__PURE__ */ _stringify(requirement)}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && this.requirement <= dataset.value && this.requirement >= dataset.value) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notValues/notValues.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notValues(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_values\",\n\t\treference: notValues,\n\t\tasync: false,\n\t\texpects: `!${/* @__PURE__ */ _joinExpects(requirement.map((value$1) => value$1 instanceof Date ? value$1.toJSON() : /* @__PURE__ */ _stringify(value$1)), \"|\")}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && this.requirement.some((value$1) => value$1 <= dataset.value && value$1 >= dataset.value)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notWords/notWords.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notWords(locales, requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_words\",\n\t\treference: notWords,\n\t\tasync: false,\n\t\texpects: `!${requirement}`,\n\t\tlocales,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getWordCount(this.locales, dataset.value);\n\t\t\t\tif (count === this.requirement) _addIssue(this, \"words\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/octal/octal.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction octal(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"octal\",\n\t\treference: octal,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: OCTAL_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"octal\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/parseBoolean/parseBoolean.ts\nconst TRUTHY = [\n\ttrue,\n\t1,\n\t\"true\",\n\t\"1\",\n\t\"yes\",\n\t\"y\",\n\t\"on\",\n\t\"enabled\"\n];\nconst FALSY = [\n\tfalse,\n\t0,\n\t\"false\",\n\t\"0\",\n\t\"no\",\n\t\"n\",\n\t\"off\",\n\t\"disabled\"\n];\n/* @__NO_SIDE_EFFECTS__ */\nfunction parseBoolean(config$1, message$1) {\n\tconst normalize$1 = (v) => typeof v === \"string\" ? v.toLowerCase() : v;\n\tconst truthyRaw = config$1?.truthy ?? TRUTHY;\n\tconst falsyRaw = config$1?.falsy ?? FALSY;\n\tconst truthy = config$1?.truthy ? config$1.truthy.map(normalize$1) : TRUTHY;\n\tconst falsy = config$1?.falsy ? config$1.falsy.map(normalize$1) : FALSY;\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"parse_boolean\",\n\t\treference: parseBoolean,\n\t\texpects: /* @__PURE__ */ _joinExpects([...truthyRaw, ...falsyRaw].map(_stringify), \"|\"),\n\t\tconfig: config$1,\n\t\tmessage: message$1,\n\t\tasync: false,\n\t\t\"~run\"(dataset, config$2) {\n\t\t\tconst input = normalize$1(dataset.value);\n\t\t\tif (truthy.includes(input)) dataset.value = true;\n\t\t\telse if (falsy.includes(input)) dataset.value = false;\n\t\t\telse {\n\t\t\t\t_addIssue(this, \"boolean\", dataset, config$2);\n\t\t\t\tdataset.typed = false;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/parseJson/parseJson.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction parseJson(config$1, message$1) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"parse_json\",\n\t\treference: parseJson,\n\t\tconfig: config$1,\n\t\tmessage: message$1,\n\t\tasync: false,\n\t\t\"~run\"(dataset, config$2) {\n\t\t\ttry {\n\t\t\t\tdataset.value = JSON.parse(dataset.value, this.config?.reviver);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof Error) {\n\t\t\t\t\t_addIssue(this, \"JSON\", dataset, config$2, { received: `\"${error.message}\"` });\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t} else throw error;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/partialCheck/utils/_isPartiallyTyped/_isPartiallyTyped.ts\n/**\n* Checks if a dataset is partially typed.\n*\n* @param dataset The dataset to check.\n* @param paths The paths to check.\n*\n* @returns Whether it is partially typed.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _isPartiallyTyped(dataset, paths) {\n\tif (dataset.issues) for (const path of paths) for (const issue of dataset.issues) {\n\t\tlet typed = false;\n\t\tconst bound = Math.min(path.length, issue.path?.length ?? 0);\n\t\tfor (let index = 0; index < bound; index++) if (path[index] !== issue.path[index].key && (path[index] !== \"$\" || issue.path[index].type !== \"array\")) {\n\t\t\ttyped = true;\n\t\t\tbreak;\n\t\t}\n\t\tif (!typed) return false;\n\t}\n\treturn true;\n}\n\n//#endregion\n//#region src/actions/partialCheck/partialCheck.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction partialCheck(paths, requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"partial_check\",\n\t\treference: partialCheck,\n\t\tasync: false,\n\t\texpects: null,\n\t\tpaths,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif ((dataset.typed || /* @__PURE__ */ _isPartiallyTyped(dataset, paths)) && !this.requirement(dataset.value)) _addIssue(this, \"input\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/partialCheck/partialCheckAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction partialCheckAsync(paths, requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"partial_check\",\n\t\treference: partialCheckAsync,\n\t\tasync: true,\n\t\texpects: null,\n\t\tpaths,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif ((dataset.typed || /* @__PURE__ */ _isPartiallyTyped(dataset, paths)) && !await this.requirement(dataset.value)) _addIssue(this, \"input\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/rawCheck/rawCheck.ts\n/**\n* Creates a raw check validation action.\n*\n* @param action The validation action.\n*\n* @returns A raw check action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction rawCheck(action) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"raw_check\",\n\t\treference: rawCheck,\n\t\tasync: false,\n\t\texpects: null,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\taction({\n\t\t\t\tdataset,\n\t\t\t\tconfig: config$1,\n\t\t\t\taddIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config$1, info)\n\t\t\t});\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/rawCheck/rawCheckAsync.ts\n/**\n* Creates a raw check validation action.\n*\n* @param action The validation action.\n*\n* @returns A raw check action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction rawCheckAsync(action) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"raw_check\",\n\t\treference: rawCheckAsync,\n\t\tasync: true,\n\t\texpects: null,\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tawait action({\n\t\t\t\tdataset,\n\t\t\t\tconfig: config$1,\n\t\t\t\taddIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config$1, info)\n\t\t\t});\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/rawTransform/rawTransform.ts\n/**\n* Creates a raw transformation action.\n*\n* @param action The transformation action.\n*\n* @returns A raw transform action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction rawTransform(action) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"raw_transform\",\n\t\treference: rawTransform,\n\t\tasync: false,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst output = action({\n\t\t\t\tdataset,\n\t\t\t\tconfig: config$1,\n\t\t\t\taddIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config$1, info),\n\t\t\t\tNEVER: null\n\t\t\t});\n\t\t\tif (dataset.issues) dataset.typed = false;\n\t\t\telse dataset.value = output;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/rawTransform/rawTransformAsync.ts\n/**\n* Creates a raw transformation action.\n*\n* @param action The transformation action.\n*\n* @returns A raw transform action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction rawTransformAsync(action) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"raw_transform\",\n\t\treference: rawTransformAsync,\n\t\tasync: true,\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst output = await action({\n\t\t\t\tdataset,\n\t\t\t\tconfig: config$1,\n\t\t\t\taddIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config$1, info),\n\t\t\t\tNEVER: null\n\t\t\t});\n\t\t\tif (dataset.issues) dataset.typed = false;\n\t\t\telse dataset.value = output;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/readonly/readonly.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction readonly() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"readonly\",\n\t\treference: readonly,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/reduceItems/reduceItems.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction reduceItems(operation, initial) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"reduce_items\",\n\t\treference: reduceItems,\n\t\tasync: false,\n\t\toperation,\n\t\tinitial,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.reduce(this.operation, this.initial);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/regex/regex.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction regex(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"regex\",\n\t\treference: regex,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"format\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/returns/returns.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction returns(schema) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"returns\",\n\t\treference: returns,\n\t\tasync: false,\n\t\tschema,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst func = dataset.value;\n\t\t\tdataset.value = (...args_) => {\n\t\t\t\tconst returnsDataset = this.schema[\"~run\"]({ value: func(...args_) }, config$1);\n\t\t\t\tif (returnsDataset.issues) throw new ValiError(returnsDataset.issues);\n\t\t\t\treturn returnsDataset.value;\n\t\t\t};\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/returns/returnsAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction returnsAsync(schema) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"returns\",\n\t\treference: returnsAsync,\n\t\tasync: false,\n\t\tschema,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst func = dataset.value;\n\t\t\tdataset.value = async (...args_) => {\n\t\t\t\tconst returnsDataset = await this.schema[\"~run\"]({ value: await func(...args_) }, config$1);\n\t\t\t\tif (returnsDataset.issues) throw new ValiError(returnsDataset.issues);\n\t\t\t\treturn returnsDataset.value;\n\t\t\t};\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/rfcEmail/rfcEmail.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction rfcEmail(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"rfc_email\",\n\t\treference: rfcEmail,\n\t\texpects: null,\n\t\tasync: false,\n\t\trequirement: RFC_EMAIL_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"email\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/safeInteger/safeInteger.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction safeInteger(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"safe_integer\",\n\t\treference: safeInteger,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: Number.isSafeInteger,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"safe integer\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/size/size.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction size(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"size\",\n\t\treference: size,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.size !== this.requirement) _addIssue(this, \"size\", dataset, config$1, { received: `${dataset.value.size}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/slug/slug.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction slug(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"slug\",\n\t\treference: slug,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: SLUG_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"slug\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/someItem/someItem.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction someItem(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"some_item\",\n\t\treference: someItem,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !dataset.value.some(this.requirement)) _addIssue(this, \"item\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/sortItems/sortItems.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction sortItems(operation) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"sort_items\",\n\t\treference: sortItems,\n\t\tasync: false,\n\t\toperation,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.sort(this.operation);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/startsWith/startsWith.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction startsWith(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"starts_with\",\n\t\treference: startsWith,\n\t\tasync: false,\n\t\texpects: `\"${requirement}\"`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !dataset.value.startsWith(this.requirement)) _addIssue(this, \"start\", dataset, config$1, { received: `\"${dataset.value.slice(0, this.requirement.length)}\"` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/stringifyJson/stringifyJson.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction stringifyJson(config$1, message$1) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"stringify_json\",\n\t\treference: stringifyJson,\n\t\tmessage: message$1,\n\t\tconfig: config$1,\n\t\tasync: false,\n\t\t\"~run\"(dataset, config$2) {\n\t\t\ttry {\n\t\t\t\tconst output = JSON.stringify(dataset.value, this.config?.replacer, this.config?.space);\n\t\t\t\tif (output === void 0) {\n\t\t\t\t\t_addIssue(this, \"JSON\", dataset, config$2);\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t}\n\t\t\t\tdataset.value = output;\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof Error) {\n\t\t\t\t\t_addIssue(this, \"JSON\", dataset, config$2, { received: `\"${error.message}\"` });\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t} else throw error;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/title/title.ts\n/**\n* Creates a title metadata action.\n*\n* @param title_ The title text.\n*\n* @returns A title action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction title(title_) {\n\treturn {\n\t\tkind: \"metadata\",\n\t\ttype: \"title\",\n\t\treference: title,\n\t\ttitle: title_\n\t};\n}\n\n//#endregion\n//#region src/actions/toBigint/toBigint.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction toBigint(message$1) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_bigint\",\n\t\treference: toBigint,\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\ttry {\n\t\t\t\tdataset.value = BigInt(dataset.value);\n\t\t\t} catch {\n\t\t\t\t_addIssue(this, \"bigint\", dataset, config$1);\n\t\t\t\tdataset.typed = false;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toBoolean/toBoolean.ts\n/**\n* Creates a to boolean transformation action.\n*\n* @returns A to boolean action.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toBoolean() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_boolean\",\n\t\treference: toBoolean,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = Boolean(dataset.value);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toCamelCase/toCamelCase.ts\n/**\n* Creates a to camel case transformation action.\n*\n* Words are separated by `_`, `-` and ASCII whitespace, as well as by case\n* and acronym boundaries.\n*\n* Hint: Acronym runs are normalized to lowercase (e.g. `parseURLValue` →\n* `parseUrlValue`) and digits stay attached to the preceding token (e.g.\n* `item2Name` → `item2Name`).\n*\n* @returns A to camel case action.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toCamelCase() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_camel_case\",\n\t\treference: toCamelCase,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = /* @__PURE__ */ _formatCase(dataset.value, \"\", false, true);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toDate/toDate.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction toDate(message$1) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_date\",\n\t\treference: toDate,\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\ttry {\n\t\t\t\tdataset.value = new Date(dataset.value);\n\t\t\t\tif (isNaN(dataset.value)) {\n\t\t\t\t\t_addIssue(this, \"date\", dataset, config$1, { received: \"\\\"Invalid Date\\\"\" });\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t_addIssue(this, \"date\", dataset, config$1);\n\t\t\t\tdataset.typed = false;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toKebabCase/toKebabCase.ts\n/**\n* Creates a to kebab case transformation action.\n*\n* Words are separated by `_`, `-` and ASCII whitespace, as well as by case\n* and acronym boundaries.\n*\n* Hint: Acronym runs are normalized to lowercase (e.g. `parseURLValue` →\n* `parse-url-value`) and digits stay attached to the preceding token (e.g.\n* `item2Name` → `item2-name`).\n*\n* @returns A to kebab case action.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toKebabCase() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_kebab_case\",\n\t\treference: toKebabCase,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = /* @__PURE__ */ _formatCase(dataset.value, \"-\", false, false);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toLowerCase/toLowerCase.ts\n/**\n* Creates a to lower case transformation action.\n*\n* @returns A to lower case action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toLowerCase() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_lower_case\",\n\t\treference: toLowerCase,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.toLowerCase();\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toMaxValue/toMaxValue.ts\n/**\n* Creates a to max value transformation action.\n*\n* @param requirement The maximum value.\n*\n* @returns A to max value action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toMaxValue(requirement) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_max_value\",\n\t\treference: toMaxValue,\n\t\tasync: false,\n\t\trequirement,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value > this.requirement ? this.requirement : dataset.value;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toMinValue/toMinValue.ts\n/**\n* Creates a to min value transformation action.\n*\n* @param requirement The minimum value.\n*\n* @returns A to min value action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toMinValue(requirement) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_min_value\",\n\t\treference: toMinValue,\n\t\tasync: false,\n\t\trequirement,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value < this.requirement ? this.requirement : dataset.value;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toNumber/toNumber.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction toNumber(message$1) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_number\",\n\t\treference: toNumber,\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\ttry {\n\t\t\t\tdataset.value = Number(dataset.value);\n\t\t\t\tif (isNaN(dataset.value)) {\n\t\t\t\t\t_addIssue(this, \"number\", dataset, config$1);\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t_addIssue(this, \"number\", dataset, config$1);\n\t\t\t\tdataset.typed = false;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toPascalCase/toPascalCase.ts\n/**\n* Creates a to pascal case transformation action.\n*\n* Words are separated by `_`, `-` and ASCII whitespace, as well as by case\n* and acronym boundaries.\n*\n* Hint: Acronym runs are normalized to lowercase (e.g. `parseURLValue` →\n* `ParseUrlValue`) and digits stay attached to the preceding token (e.g.\n* `item2Name` → `Item2Name`).\n*\n* @returns A to pascal case action.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toPascalCase() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_pascal_case\",\n\t\treference: toPascalCase,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = /* @__PURE__ */ _formatCase(dataset.value, \"\", true, true);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toSnakeCase/toSnakeCase.ts\n/**\n* Creates a to snake case transformation action.\n*\n* Words are separated by `_`, `-` and ASCII whitespace, as well as by case\n* and acronym boundaries.\n*\n* Hint: Acronym runs are normalized to lowercase (e.g. `parseURLValue` →\n* `parse_url_value`) and digits stay attached to the preceding token (e.g.\n* `item2Name` → `item2_name`).\n*\n* @returns A to snake case action.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toSnakeCase() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_snake_case\",\n\t\treference: toSnakeCase,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = /* @__PURE__ */ _formatCase(dataset.value, \"_\", false, false);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toString/toString.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction toString(message$1) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_string\",\n\t\treference: toString,\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\ttry {\n\t\t\t\tdataset.value = String(dataset.value);\n\t\t\t} catch {\n\t\t\t\t_addIssue(this, \"string\", dataset, config$1);\n\t\t\t\tdataset.typed = false;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toUpperCase/toUpperCase.ts\n/**\n* Creates a to upper case transformation action.\n*\n* @returns A to upper case action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toUpperCase() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_upper_case\",\n\t\treference: toUpperCase,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.toUpperCase();\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/transform/transform.ts\n/**\n* Creates a custom transformation action.\n*\n* @param operation The transformation operation.\n*\n* @returns A transform action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction transform(operation) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"transform\",\n\t\treference: transform,\n\t\tasync: false,\n\t\toperation,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = this.operation(dataset.value);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/transform/transformAsync.ts\n/**\n* Creates a custom transformation action.\n*\n* @param operation The transformation operation.\n*\n* @returns A transform action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction transformAsync(operation) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"transform\",\n\t\treference: transformAsync,\n\t\tasync: true,\n\t\toperation,\n\t\tasync \"~run\"(dataset) {\n\t\t\tdataset.value = await this.operation(dataset.value);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/trim/trim.ts\n/**\n* Creates a trim transformation action.\n*\n* @returns A trim action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction trim() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"trim\",\n\t\treference: trim,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.trim();\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/trimEnd/trimEnd.ts\n/**\n* Creates a trim end transformation action.\n*\n* @returns A trim end action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction trimEnd() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"trim_end\",\n\t\treference: trimEnd,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.trimEnd();\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/trimStart/trimStart.ts\n/**\n* Creates a trim start transformation action.\n*\n* @returns A trim start action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction trimStart() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"trim_start\",\n\t\treference: trimStart,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.trimStart();\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/ulid/ulid.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction ulid(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"ulid\",\n\t\treference: ulid,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ULID_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"ULID\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/url/url.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction url(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"url\",\n\t\treference: url,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement(input) {\n\t\t\ttry {\n\t\t\t\tnew URL(input);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"URL\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/uuid/uuid.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction uuid(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"uuid\",\n\t\treference: uuid,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: UUID_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"UUID\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/value/value.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction value(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"value\",\n\t\treference: value,\n\t\tasync: false,\n\t\texpects: requirement instanceof Date ? requirement.toJSON() : /* @__PURE__ */ _stringify(requirement),\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !(this.requirement <= dataset.value && this.requirement >= dataset.value)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/values/values.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction values(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"values\",\n\t\treference: values,\n\t\tasync: false,\n\t\texpects: `${/* @__PURE__ */ _joinExpects(requirement.map((value$1) => value$1 instanceof Date ? value$1.toJSON() : /* @__PURE__ */ _stringify(value$1)), \"|\")}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.some((value$1) => value$1 <= dataset.value && value$1 >= dataset.value)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/words/words.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction words(locales, requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"words\",\n\t\treference: words,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\tlocales,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getWordCount(this.locales, dataset.value);\n\t\t\t\tif (count !== this.requirement) _addIssue(this, \"words\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/const.ts\nconst ABORT_EARLY_CONFIG = { abortEarly: true };\n\n//#endregion\n//#region src/methods/assert/assert.ts\n/**\n* Checks if the input matches the schema. As this is an assertion function, it\n* can be used as a type guard.\n*\n* @param schema The schema to be used.\n* @param input The input to be tested.\n*/\nfunction assert(schema, input) {\n\tconst issues = schema[\"~run\"]({ value: input }, ABORT_EARLY_CONFIG).issues;\n\tif (issues) throw new ValiError(issues);\n}\n\n//#endregion\n//#region src/methods/cache/_LruCache.ts\n/**\n* Efficient LRU cache using Map iteration order.\n*/\nvar _LruCache = class {\n\tconstructor(config$1) {\n\t\tthis.refCount = 0;\n\t\tthis.maxSize = config$1?.maxSize ?? 1e3;\n\t\tthis.maxAge = config$1?.maxAge ?? Infinity;\n\t\tthis.hasMaxAge = isFinite(this.maxAge);\n\t}\n\t/**\n\t* Stringifies an unknown input to a cache key component.\n\t*\n\t* @param input The unknown input.\n\t*\n\t* @returns A cache key component.\n\t*/\n\tstringify(input) {\n\t\tconst type = typeof input;\n\t\tif (type === \"string\") return `\"${input}\"`;\n\t\tif (type === \"number\" || type === \"boolean\") return `${input}`;\n\t\tif (type === \"bigint\") return `${input}n`;\n\t\tif (type === \"object\" || type === \"function\") {\n\t\t\tif (input) {\n\t\t\t\tthis.refIds ?? (this.refIds = /* @__PURE__ */ new WeakMap());\n\t\t\t\tlet id = this.refIds.get(input);\n\t\t\t\tif (!id) {\n\t\t\t\t\tid = ++this.refCount;\n\t\t\t\t\tthis.refIds.set(input, id);\n\t\t\t\t}\n\t\t\t\treturn `#${id}`;\n\t\t\t}\n\t\t\treturn \"null\";\n\t\t}\n\t\treturn type;\n\t}\n\t/**\n\t* Creates a cache key from input and config.\n\t*\n\t* @param input The input value.\n\t* @param config The parse configuration.\n\t*\n\t* @returns The cache key.\n\t*/\n\tkey(input, config$1 = {}) {\n\t\treturn `${this.stringify(input)}|${this.stringify(config$1.lang)}|${this.stringify(config$1.message)}|${this.stringify(config$1.abortEarly)}|${this.stringify(config$1.abortPipeEarly)}`;\n\t}\n\t/**\n\t* Gets a value from the cache by key.\n\t*\n\t* @param key The cache key.\n\t*\n\t* @returns The cached value.\n\t*/\n\tget(key) {\n\t\tif (!this.store) return void 0;\n\t\tconst entry = this.store.get(key);\n\t\tif (!entry) return void 0;\n\t\tif (this.hasMaxAge && Date.now() - entry[1] > this.maxAge) {\n\t\t\tthis.store.delete(key);\n\t\t\treturn;\n\t\t}\n\t\tthis.store.delete(key);\n\t\tthis.store.set(key, entry);\n\t\treturn entry[0];\n\t}\n\t/**\n\t* Sets a value in the cache by key.\n\t*\n\t* @param key The cache key.\n\t* @param value The cached value.\n\t*/\n\tset(key, value$1) {\n\t\tthis.store ?? (this.store = /* @__PURE__ */ new Map());\n\t\tthis.store.delete(key);\n\t\tconst timestamp = this.hasMaxAge ? Date.now() : 0;\n\t\tthis.store.set(key, [value$1, timestamp]);\n\t\tif (this.store.size > this.maxSize) this.store.delete(this.store.keys().next().value);\n\t}\n\t/**\n\t* Clears all entries from the cache.\n\t*/\n\tclear() {\n\t\tthis.store?.clear();\n\t}\n};\n\n//#endregion\n//#region src/methods/cache/cache.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction cache(schema, config$1) {\n\treturn {\n\t\t...schema,\n\t\tcacheConfig: config$1,\n\t\tcache: new _LruCache(config$1),\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, runConfig) {\n\t\t\tconst key = this.cache.key(dataset.value, runConfig);\n\t\t\tlet outputDataset = this.cache.get(key);\n\t\t\tif (!outputDataset) this.cache.set(key, outputDataset = schema[\"~run\"](dataset, runConfig));\n\t\t\treturn /* @__PURE__ */ _cloneDataset(outputDataset);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/cache/cacheAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction cacheAsync(schema, config$1) {\n\tlet activeRuns;\n\treturn {\n\t\t...schema,\n\t\tasync: true,\n\t\tcacheConfig: config$1,\n\t\tcache: new _LruCache(config$1),\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, runConfig) {\n\t\t\tconst key = this.cache.key(dataset.value, runConfig);\n\t\t\tconst cached = this.cache.get(key);\n\t\t\tif (cached) return /* @__PURE__ */ _cloneDataset(cached);\n\t\t\tlet promise$1 = activeRuns?.get(key);\n\t\t\tif (!promise$1) {\n\t\t\t\tactiveRuns ?? (activeRuns = /* @__PURE__ */ new Map());\n\t\t\t\tpromise$1 = Promise.resolve(schema[\"~run\"](dataset, runConfig));\n\t\t\t\tactiveRuns.set(key, promise$1);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst outputDataset = await promise$1;\n\t\t\t\tthis.cache.set(key, outputDataset);\n\t\t\t\treturn /* @__PURE__ */ _cloneDataset(outputDataset);\n\t\t\t} finally {\n\t\t\t\tactiveRuns?.delete(key);\n\t\t\t}\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/config/config.ts\n/**\n* Changes the local configuration of a schema.\n*\n* @param schema The schema to configure.\n* @param config The parse configuration.\n*\n* @returns The configured schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction config(schema, config$1) {\n\treturn {\n\t\t...schema,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config_) {\n\t\t\treturn schema[\"~run\"](dataset, {\n\t\t\t\t...config_,\n\t\t\t\t...config$1\n\t\t\t});\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/getFallback/getFallback.ts\n/**\n* Returns the fallback value of the schema.\n*\n* @param schema The schema to get it from.\n* @param dataset The output dataset if available.\n* @param config The config if available.\n*\n* @returns The fallback value.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getFallback(schema, dataset, config$1) {\n\treturn typeof schema.fallback === \"function\" ? schema.fallback(dataset, config$1) : schema.fallback;\n}\n\n//#endregion\n//#region src/methods/fallback/fallback.ts\n/**\n* Returns a fallback value as output if the input does not match the schema.\n*\n* @param schema The schema to catch.\n* @param fallback The fallback value.\n*\n* @returns The passed schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction fallback(schema, fallback$1) {\n\treturn {\n\t\t...schema,\n\t\tfallback: fallback$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst outputDataset = schema[\"~run\"](dataset, config$1);\n\t\t\treturn outputDataset.issues ? {\n\t\t\t\ttyped: true,\n\t\t\t\tvalue: /* @__PURE__ */ getFallback(this, outputDataset, config$1)\n\t\t\t} : outputDataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/fallback/fallbackAsync.ts\n/**\n* Returns a fallback value as output if the input does not match the schema.\n*\n* @param schema The schema to catch.\n* @param fallback The fallback value.\n*\n* @returns The passed schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction fallbackAsync(schema, fallback$1) {\n\treturn {\n\t\t...schema,\n\t\tfallback: fallback$1,\n\t\tasync: true,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst outputDataset = await schema[\"~run\"](dataset, config$1);\n\t\t\treturn outputDataset.issues ? {\n\t\t\t\ttyped: true,\n\t\t\t\tvalue: await /* @__PURE__ */ getFallback(this, outputDataset, config$1)\n\t\t\t} : outputDataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/flatten/flatten.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction flatten(issues) {\n\tconst flatErrors = {};\n\tfor (const issue of issues) if (issue.path) {\n\t\tconst dotPath = /* @__PURE__ */ getDotPath(issue);\n\t\tif (dotPath) {\n\t\t\tif (!flatErrors.nested) flatErrors.nested = {};\n\t\t\tif (Object.prototype.hasOwnProperty.call(flatErrors.nested, dotPath)) flatErrors.nested[dotPath].push(issue.message);\n\t\t\telse flatErrors.nested[dotPath] = [issue.message];\n\t\t} else if (flatErrors.other) flatErrors.other.push(issue.message);\n\t\telse flatErrors.other = [issue.message];\n\t} else if (flatErrors.root) flatErrors.root.push(issue.message);\n\telse flatErrors.root = [issue.message];\n\treturn flatErrors;\n}\n\n//#endregion\n//#region src/methods/forward/forward.ts\n/**\n* Forwards the issues of the passed validation action.\n*\n* @param action The validation action.\n* @param path The path to forward the issues to.\n*\n* @returns The modified action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction forward(action, path) {\n\treturn {\n\t\t...action,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst prevIssues = dataset.issues && [...dataset.issues];\n\t\t\tdataset = action[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.issues) {\n\t\t\t\tfor (const issue of dataset.issues) if (!prevIssues?.includes(issue)) {\n\t\t\t\t\tlet pathInput = dataset.value;\n\t\t\t\t\tfor (const key of path) {\n\t\t\t\t\t\tconst pathValue = pathInput[key];\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"unknown\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput: pathInput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: pathValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (issue.path) issue.path.push(pathItem);\n\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\tif (!pathValue) break;\n\t\t\t\t\t\tpathInput = pathValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/forward/forwardAsync.ts\n/**\n* Forwards the issues of the passed validation action.\n*\n* @param action The validation action.\n* @param path The path to forward the issues to.\n*\n* @returns The modified action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction forwardAsync(action, path) {\n\treturn {\n\t\t...action,\n\t\tasync: true,\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst prevIssues = dataset.issues && [...dataset.issues];\n\t\t\tdataset = await action[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.issues) {\n\t\t\t\tfor (const issue of dataset.issues) if (!prevIssues?.includes(issue)) {\n\t\t\t\t\tlet pathInput = dataset.value;\n\t\t\t\t\tfor (const key of path) {\n\t\t\t\t\t\tconst pathValue = pathInput[key];\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"unknown\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput: pathInput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: pathValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (issue.path) issue.path.push(pathItem);\n\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\tif (!pathValue) break;\n\t\t\t\t\t\tpathInput = pathValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/getDefault/getDefault.ts\n/**\n* Returns the default value of the schema.\n*\n* @param schema The schema to get it from.\n* @param dataset The input dataset if available.\n* @param config The config if available.\n*\n* @returns The default value.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getDefault(schema, dataset, config$1) {\n\treturn typeof schema.default === \"function\" ? schema.default(dataset, config$1) : schema.default;\n}\n\n//#endregion\n//#region src/methods/getDefaults/getDefaults.ts\n/**\n* Returns the default values of the schema.\n*\n* Hint: The difference to `getDefault` is that for object and tuple schemas\n* this function recursively returns the default values of the subschemas\n* instead of `undefined`.\n*\n* @param schema The schema to get them from.\n*\n* @returns The default values.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getDefaults(schema) {\n\tif (\"entries\" in schema) {\n\t\tconst object$1 = {};\n\t\tfor (const key in schema.entries) object$1[key] = /* @__PURE__ */ getDefaults(schema.entries[key]);\n\t\treturn object$1;\n\t}\n\tif (\"items\" in schema) return schema.items.map(getDefaults);\n\treturn /* @__PURE__ */ getDefault(schema);\n}\n\n//#endregion\n//#region src/methods/getDefaults/getDefaultsAsync.ts\n/**\n* Returns the default values of the schema.\n*\n* Hint: The difference to `getDefault` is that for object and tuple schemas\n* this function recursively returns the default values of the subschemas\n* instead of `undefined`.\n*\n* @param schema The schema to get them from.\n*\n* @returns The default values.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nasync function getDefaultsAsync(schema) {\n\tif (\"entries\" in schema) return Object.fromEntries(await Promise.all(Object.entries(schema.entries).map(async ([key, value$1]) => [key, await /* @__PURE__ */ getDefaultsAsync(value$1)])));\n\tif (\"items\" in schema) return Promise.all(schema.items.map(getDefaultsAsync));\n\treturn /* @__PURE__ */ getDefault(schema);\n}\n\n//#endregion\n//#region src/methods/getDescription/getDescription.ts\n/**\n* Returns the description of the schema.\n*\n* If multiple descriptions are defined, the last one of the highest level is\n* returned. If no description is defined, `undefined` is returned.\n*\n* @param schema The schema to get the description from.\n*\n* @returns The description, if any.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getDescription(schema) {\n\treturn /* @__PURE__ */ _getLastMetadata(schema, \"description\");\n}\n\n//#endregion\n//#region src/methods/getExamples/getExamples.ts\n/**\n* Returns the examples of a schema.\n*\n* If multiple examples are defined, it concatenates them using depth-first\n* search. If no examples are defined, an empty array is returned.\n*\n* @param schema The schema to get the examples from.\n*\n* @returns The examples, if any.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getExamples(schema) {\n\tconst examples$1 = [];\n\tfunction depthFirstCollect(schema$1) {\n\t\tif (\"pipe\" in schema$1) {\n\t\t\tfor (const item of schema$1.pipe) if (item.kind === \"schema\" && \"pipe\" in item) depthFirstCollect(item);\n\t\t\telse if (item.kind === \"metadata\" && item.type === \"examples\") for (const example of item.examples) examples$1.push(example);\n\t\t}\n\t}\n\tdepthFirstCollect(schema);\n\treturn examples$1;\n}\n\n//#endregion\n//#region src/methods/getFallbacks/getFallbacks.ts\n/**\n* Returns the fallback values of the schema.\n*\n* Hint: The difference to `getFallback` is that for object and tuple schemas\n* this function recursively returns the fallback values of the subschemas\n* instead of `undefined`.\n*\n* @param schema The schema to get them from.\n*\n* @returns The fallback values.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getFallbacks(schema) {\n\tif (\"entries\" in schema) {\n\t\tconst object$1 = {};\n\t\tfor (const key in schema.entries) object$1[key] = /* @__PURE__ */ getFallbacks(schema.entries[key]);\n\t\treturn object$1;\n\t}\n\tif (\"items\" in schema) return schema.items.map(getFallbacks);\n\treturn /* @__PURE__ */ getFallback(schema);\n}\n\n//#endregion\n//#region src/methods/getFallbacks/getFallbacksAsync.ts\n/**\n* Returns the fallback values of the schema.\n*\n* Hint: The difference to `getFallback` is that for object and tuple schemas\n* this function recursively returns the fallback values of the subschemas\n* instead of `undefined`.\n*\n* @param schema The schema to get them from.\n*\n* @returns The fallback values.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nasync function getFallbacksAsync(schema) {\n\tif (\"entries\" in schema) return Object.fromEntries(await Promise.all(Object.entries(schema.entries).map(async ([key, value$1]) => [key, await /* @__PURE__ */ getFallbacksAsync(value$1)])));\n\tif (\"items\" in schema) return Promise.all(schema.items.map(getFallbacksAsync));\n\treturn /* @__PURE__ */ getFallback(schema);\n}\n\n//#endregion\n//#region src/methods/getMetadata/getMetadata.ts\n/**\n* Returns the metadata of a schema.\n*\n* If multiple metadata are defined, it shallowly merges them using depth-first\n* search. If no metadata is defined, an empty object is returned.\n*\n* @param schema Schema to get the metadata from.\n*\n* @returns The metadata, if any.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getMetadata(schema) {\n\tconst result = {};\n\tfunction depthFirstMerge(schema$1) {\n\t\tif (\"pipe\" in schema$1) {\n\t\t\tfor (const item of schema$1.pipe) if (item.kind === \"schema\" && \"pipe\" in item) depthFirstMerge(item);\n\t\t\telse if (item.kind === \"metadata\" && item.type === \"metadata\") Object.assign(result, item.metadata);\n\t\t}\n\t}\n\tdepthFirstMerge(schema);\n\treturn result;\n}\n\n//#endregion\n//#region src/methods/getTitle/getTitle.ts\n/**\n* Returns the title of the schema.\n*\n* If multiple titles are defined, the last one of the highest level is\n* returned. If no title is defined, `undefined` is returned.\n*\n* @param schema The schema to get the title from.\n*\n* @returns The title, if any.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getTitle(schema) {\n\treturn /* @__PURE__ */ _getLastMetadata(schema, \"title\");\n}\n\n//#endregion\n//#region src/methods/is/is.ts\n/**\n* Checks if the input matches the schema. By using a type predicate, this\n* function can be used as a type guard.\n*\n* @param schema The schema to be used.\n* @param input The input to be tested.\n*\n* @returns Whether the input matches the schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction is(schema, input) {\n\treturn !schema[\"~run\"]({ value: input }, ABORT_EARLY_CONFIG).issues;\n}\n\n//#endregion\n//#region src/schemas/any/any.ts\n/**\n* Creates an any schema.\n*\n* Hint: This schema function exists only for completeness and is not\n* recommended in practice. Instead, `unknown` should be used to accept\n* unknown data.\n*\n* @returns An any schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction any() {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"any\",\n\t\treference: any,\n\t\texpects: \"any\",\n\t\tasync: false,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.typed = true;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/array/array.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction array(item, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"array\",\n\t\treference: array,\n\t\texpects: \"Array\",\n\t\tasync: false,\n\t\titem,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tfor (let key = 0; key < input.length; key++) {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\tconst itemDataset = this.item[\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/array/arrayAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction arrayAsync(item, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"array\",\n\t\treference: arrayAsync,\n\t\texpects: \"Array\",\n\t\tasync: true,\n\t\titem,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tconst itemDatasets = await Promise.all(input.map((value$1) => this.item[\"~run\"]({ value: value$1 }, config$1)));\n\t\t\t\tfor (let key = 0; key < itemDatasets.length; key++) {\n\t\t\t\t\tconst itemDataset = itemDatasets[key];\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/bigint/bigint.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction bigint(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"bigint\",\n\t\treference: bigint,\n\t\texpects: \"bigint\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (typeof dataset.value === \"bigint\") dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/blob/blob.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction blob(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"blob\",\n\t\treference: blob,\n\t\texpects: \"Blob\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value instanceof Blob) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/boolean/boolean.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction boolean(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"boolean\",\n\t\treference: boolean,\n\t\texpects: \"boolean\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (typeof dataset.value === \"boolean\") dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/custom/custom.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction custom(check$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"custom\",\n\t\treference: custom,\n\t\texpects: \"unknown\",\n\t\tasync: false,\n\t\tcheck: check$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (this.check(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/custom/customAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction customAsync(check$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"custom\",\n\t\treference: customAsync,\n\t\texpects: \"unknown\",\n\t\tasync: true,\n\t\tcheck: check$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (await this.check(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/date/date.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction date(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"date\",\n\t\treference: date,\n\t\texpects: \"Date\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value instanceof Date) if (!isNaN(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1, { received: \"\\\"Invalid Date\\\"\" });\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/enum/enum.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction enum_(enum__, message$1) {\n\tconst options = [];\n\tfor (const key in enum__) if (`${+key}` !== key || typeof enum__[key] !== \"string\" || !Object.is(enum__[enum__[key]], +key)) options.push(enum__[key]);\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"enum\",\n\t\treference: enum_,\n\t\texpects: /* @__PURE__ */ _joinExpects(options.map(_stringify), \"|\"),\n\t\tasync: false,\n\t\tenum: enum__,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (this.options.includes(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/exactOptional/exactOptional.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction exactOptional(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"exact_optional\",\n\t\treference: exactOptional,\n\t\texpects: wrapped.expects,\n\t\tasync: false,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/exactOptional/exactOptionalAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction exactOptionalAsync(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"exact_optional\",\n\t\treference: exactOptionalAsync,\n\t\texpects: wrapped.expects,\n\t\tasync: true,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/file/file.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction file(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"file\",\n\t\treference: file,\n\t\texpects: \"File\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value instanceof File) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/function/function.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction function_(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"function\",\n\t\treference: function_,\n\t\texpects: \"Function\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (typeof dataset.value === \"function\") dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/instance/instance.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction instance(class_, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"instance\",\n\t\treference: instance,\n\t\texpects: class_.name,\n\t\tasync: false,\n\t\tclass: class_,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value instanceof this.class) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/intersect/utils/_merge/_merge.ts\n/**\n* Merges two values into one single output.\n*\n* @param value1 First value.\n* @param value2 Second value.\n*\n* @returns The merge dataset.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _merge(value1, value2) {\n\tif (typeof value1 === typeof value2) {\n\t\tif (value1 === value2 || value1 instanceof Date && value2 instanceof Date && +value1 === +value2) return { value: value1 };\n\t\tif (value1 && value2 && value1.constructor === Object && value2.constructor === Object) {\n\t\t\tconst nextValue = { ...value1 };\n\t\t\tfor (const key in value2) if (Object.prototype.hasOwnProperty.call(value1, key)) {\n\t\t\t\tconst dataset = /* @__PURE__ */ _merge(value1[key], value2[key]);\n\t\t\t\tif (dataset.issue) return dataset;\n\t\t\t\tnextValue[key] = dataset.value;\n\t\t\t} else nextValue[key] = value2[key];\n\t\t\treturn { value: nextValue };\n\t\t}\n\t\tif (Array.isArray(value1) && Array.isArray(value2)) {\n\t\t\tif (value1.length === value2.length) {\n\t\t\t\tconst nextValue = [...value1];\n\t\t\t\tfor (let index = 0; index < value1.length; index++) {\n\t\t\t\t\tconst dataset = /* @__PURE__ */ _merge(value1[index], value2[index]);\n\t\t\t\t\tif (dataset.issue) return dataset;\n\t\t\t\t\tnextValue[index] = dataset.value;\n\t\t\t\t}\n\t\t\t\treturn { value: nextValue };\n\t\t\t}\n\t\t}\n\t}\n\treturn { issue: true };\n}\n\n//#endregion\n//#region src/schemas/intersect/intersect.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction intersect(options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"intersect\",\n\t\treference: intersect,\n\t\texpects: /* @__PURE__ */ _joinExpects(options.map((option) => option.expects), \"&\"),\n\t\tasync: false,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (this.options.length) {\n\t\t\t\tconst input = dataset.value;\n\t\t\t\tlet outputs;\n\t\t\t\tdataset.typed = true;\n\t\t\t\tfor (const schema of this.options) {\n\t\t\t\t\tconst optionDataset = schema[\"~run\"]({ value: input }, config$1);\n\t\t\t\t\tif (optionDataset.issues) {\n\t\t\t\t\t\tif (dataset.issues) for (const issue of optionDataset.issues) dataset.issues.push(issue);\n\t\t\t\t\t\telse dataset.issues = optionDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!optionDataset.typed) dataset.typed = false;\n\t\t\t\t\tif (dataset.typed) if (outputs) outputs.push(optionDataset.value);\n\t\t\t\t\telse outputs = [optionDataset.value];\n\t\t\t\t}\n\t\t\t\tif (dataset.typed) {\n\t\t\t\t\tdataset.value = outputs[0];\n\t\t\t\t\tfor (let index = 1; index < outputs.length; index++) {\n\t\t\t\t\t\tconst mergeDataset = /* @__PURE__ */ _merge(dataset.value, outputs[index]);\n\t\t\t\t\t\tif (mergeDataset.issue) {\n\t\t\t\t\t\t\t_addIssue(this, \"type\", dataset, config$1, { received: \"unknown\" });\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdataset.value = mergeDataset.value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/intersect/intersectAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction intersectAsync(options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"intersect\",\n\t\treference: intersectAsync,\n\t\texpects: /* @__PURE__ */ _joinExpects(options.map((option) => option.expects), \"&\"),\n\t\tasync: true,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (this.options.length) {\n\t\t\t\tconst input = dataset.value;\n\t\t\t\tlet outputs;\n\t\t\t\tdataset.typed = true;\n\t\t\t\tconst optionDatasets = await Promise.all(this.options.map((schema) => schema[\"~run\"]({ value: input }, config$1)));\n\t\t\t\tfor (const optionDataset of optionDatasets) {\n\t\t\t\t\tif (optionDataset.issues) {\n\t\t\t\t\t\tif (dataset.issues) for (const issue of optionDataset.issues) dataset.issues.push(issue);\n\t\t\t\t\t\telse dataset.issues = optionDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!optionDataset.typed) dataset.typed = false;\n\t\t\t\t\tif (dataset.typed) if (outputs) outputs.push(optionDataset.value);\n\t\t\t\t\telse outputs = [optionDataset.value];\n\t\t\t\t}\n\t\t\t\tif (dataset.typed) {\n\t\t\t\t\tdataset.value = outputs[0];\n\t\t\t\t\tfor (let index = 1; index < outputs.length; index++) {\n\t\t\t\t\t\tconst mergeDataset = /* @__PURE__ */ _merge(dataset.value, outputs[index]);\n\t\t\t\t\t\tif (mergeDataset.issue) {\n\t\t\t\t\t\t\t_addIssue(this, \"type\", dataset, config$1, { received: \"unknown\" });\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdataset.value = mergeDataset.value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/lazy/lazy.ts\n/**\n* Creates a lazy schema.\n*\n* @param getter The schema getter.\n*\n* @returns A lazy schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction lazy(getter) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"lazy\",\n\t\treference: lazy,\n\t\texpects: \"unknown\",\n\t\tasync: false,\n\t\tgetter,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\treturn this.getter(dataset.value)[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/lazy/lazyAsync.ts\n/**\n* Creates a lazy schema.\n*\n* @param getter The schema getter.\n*\n* @returns A lazy schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction lazyAsync(getter) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"lazy\",\n\t\treference: lazyAsync,\n\t\texpects: \"unknown\",\n\t\tasync: true,\n\t\tgetter,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\treturn (await this.getter(dataset.value))[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/literal/literal.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction literal(literal_, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"literal\",\n\t\treference: literal,\n\t\texpects: /* @__PURE__ */ _stringify(literal_),\n\t\tasync: false,\n\t\tliteral: literal_,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === this.literal) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/looseObject/looseObject.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction looseObject(entries$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"loose_object\",\n\t\treference: looseObject,\n\t\texpects: \"Object\",\n\t\tasync: false,\n\t\tentries: entries$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tfor (const key in this.entries) {\n\t\t\t\t\tconst valueSchema = this.entries[key];\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\tconst valueDataset = valueSchema[\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) {\n\t\t\t\t\tfor (const key in input) if (/* @__PURE__ */ _isValidObjectKey(input, key) && !(key in this.entries)) dataset.value[key] = input[key];\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/looseObject/looseObjectAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction looseObjectAsync(entries$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"loose_object\",\n\t\treference: looseObjectAsync,\n\t\texpects: \"Object\",\n\t\tasync: true,\n\t\tentries: entries$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tconst valueDatasets = await Promise.all(Object.entries(this.entries).map(async ([key, valueSchema]) => {\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : await /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\t\tawait valueSchema[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tinput[key],\n\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\tnull\n\t\t\t\t\t];\n\t\t\t\t}));\n\t\t\t\tfor (const [key, value$1, valueSchema, valueDataset] of valueDatasets) if (valueDataset) {\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = await /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) {\n\t\t\t\t\tfor (const key in input) if (/* @__PURE__ */ _isValidObjectKey(input, key) && !(key in this.entries)) dataset.value[key] = input[key];\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/looseTuple/looseTuple.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction looseTuple(items, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"loose_tuple\",\n\t\treference: looseTuple,\n\t\texpects: \"Array\",\n\t\tasync: false,\n\t\titems,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tfor (let key = 0; key < this.items.length; key++) {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\tconst itemDataset = this.items[key][\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) for (let key = this.items.length; key < input.length; key++) dataset.value.push(input[key]);\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/looseTuple/looseTupleAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction looseTupleAsync(items, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"loose_tuple\",\n\t\treference: looseTupleAsync,\n\t\texpects: \"Array\",\n\t\tasync: true,\n\t\titems,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tconst itemDatasets = await Promise.all(this.items.map(async (item, key) => {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\tawait item[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t];\n\t\t\t\t}));\n\t\t\t\tfor (const [key, value$1, itemDataset] of itemDatasets) {\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) for (let key = this.items.length; key < input.length; key++) dataset.value.push(input[key]);\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/map/map.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction map(key, value$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"map\",\n\t\treference: map,\n\t\texpects: \"Map\",\n\t\tasync: false,\n\t\tkey,\n\t\tvalue: value$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input instanceof Map) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = /* @__PURE__ */ new Map();\n\t\t\t\tfor (const [inputKey, inputValue] of input) {\n\t\t\t\t\tconst keyDataset = this.key[\"~run\"]({ value: inputKey }, config$1);\n\t\t\t\t\tif (keyDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"map\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: inputKey,\n\t\t\t\t\t\t\tvalue: inputValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of keyDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = keyDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst valueDataset = this.value[\"~run\"]({ value: inputValue }, config$1);\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"map\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: inputKey,\n\t\t\t\t\t\t\tvalue: inputValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!keyDataset.typed || !valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.set(keyDataset.value, valueDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/map/mapAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction mapAsync(key, value$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"map\",\n\t\treference: mapAsync,\n\t\texpects: \"Map\",\n\t\tasync: true,\n\t\tkey,\n\t\tvalue: value$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input instanceof Map) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = /* @__PURE__ */ new Map();\n\t\t\t\tconst datasets = await Promise.all([...input].map(([inputKey, inputValue]) => Promise.all([\n\t\t\t\t\tinputKey,\n\t\t\t\t\tinputValue,\n\t\t\t\t\tthis.key[\"~run\"]({ value: inputKey }, config$1),\n\t\t\t\t\tthis.value[\"~run\"]({ value: inputValue }, config$1)\n\t\t\t\t])));\n\t\t\t\tfor (const [inputKey, inputValue, keyDataset, valueDataset] of datasets) {\n\t\t\t\t\tif (keyDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"map\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: inputKey,\n\t\t\t\t\t\t\tvalue: inputValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of keyDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = keyDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"map\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: inputKey,\n\t\t\t\t\t\t\tvalue: inputValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!keyDataset.typed || !valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.set(keyDataset.value, valueDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nan/nan.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nan(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"nan\",\n\t\treference: nan,\n\t\texpects: \"NaN\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (Number.isNaN(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/never/never.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction never(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"never\",\n\t\treference: never,\n\t\texpects: \"never\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\t_addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nonNullable/nonNullable.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonNullable(wrapped, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"non_nullable\",\n\t\treference: nonNullable,\n\t\texpects: \"!null\",\n\t\tasync: false,\n\t\twrapped,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value !== null) dataset = this.wrapped[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.value === null) _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nonNullable/nonNullableAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonNullableAsync(wrapped, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"non_nullable\",\n\t\treference: nonNullableAsync,\n\t\texpects: \"!null\",\n\t\tasync: true,\n\t\twrapped,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value !== null) dataset = await this.wrapped[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.value === null) _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nonNullish/nonNullish.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonNullish(wrapped, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"non_nullish\",\n\t\treference: nonNullish,\n\t\texpects: \"(!null & !undefined)\",\n\t\tasync: false,\n\t\twrapped,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (!(dataset.value === null || dataset.value === void 0)) dataset = this.wrapped[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.value === null || dataset.value === void 0) _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nonNullish/nonNullishAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonNullishAsync(wrapped, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"non_nullish\",\n\t\treference: nonNullishAsync,\n\t\texpects: \"(!null & !undefined)\",\n\t\tasync: true,\n\t\twrapped,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (!(dataset.value === null || dataset.value === void 0)) dataset = await this.wrapped[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.value === null || dataset.value === void 0) _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nonOptional/nonOptional.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonOptional(wrapped, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"non_optional\",\n\t\treference: nonOptional,\n\t\texpects: \"!undefined\",\n\t\tasync: false,\n\t\twrapped,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value !== void 0) dataset = this.wrapped[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.value === void 0) _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nonOptional/nonOptionalAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonOptionalAsync(wrapped, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"non_optional\",\n\t\treference: nonOptionalAsync,\n\t\texpects: \"!undefined\",\n\t\tasync: true,\n\t\twrapped,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value !== void 0) dataset = await this.wrapped[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.value === void 0) _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/null/null.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction null_(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"null\",\n\t\treference: null_,\n\t\texpects: \"null\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === null) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nullable/nullable.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nullable(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"nullable\",\n\t\treference: nullable,\n\t\texpects: `(${wrapped.expects} | null)`,\n\t\tasync: false,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === null) {\n\t\t\t\tif (this.default !== void 0) dataset.value = /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === null) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nullable/nullableAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nullableAsync(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"nullable\",\n\t\treference: nullableAsync,\n\t\texpects: `(${wrapped.expects} | null)`,\n\t\tasync: true,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === null) {\n\t\t\t\tif (this.default !== void 0) dataset.value = await /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === null) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nullish/nullish.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nullish(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"nullish\",\n\t\treference: nullish,\n\t\texpects: `(${wrapped.expects} | null | undefined)`,\n\t\tasync: false,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === null || dataset.value === void 0) {\n\t\t\t\tif (this.default !== void 0) dataset.value = /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === null || dataset.value === void 0) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nullish/nullishAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nullishAsync(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"nullish\",\n\t\treference: nullishAsync,\n\t\texpects: `(${wrapped.expects} | null | undefined)`,\n\t\tasync: true,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === null || dataset.value === void 0) {\n\t\t\t\tif (this.default !== void 0) dataset.value = await /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === null || dataset.value === void 0) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/number/number.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction number(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"number\",\n\t\treference: number,\n\t\texpects: \"number\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (typeof dataset.value === \"number\" && !isNaN(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/object/object.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction object(entries$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"object\",\n\t\treference: object,\n\t\texpects: \"Object\",\n\t\tasync: false,\n\t\tentries: entries$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tfor (const key in this.entries) {\n\t\t\t\t\tconst valueSchema = this.entries[key];\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\tconst valueDataset = valueSchema[\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/object/objectAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction objectAsync(entries$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"object\",\n\t\treference: objectAsync,\n\t\texpects: \"Object\",\n\t\tasync: true,\n\t\tentries: entries$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tconst valueDatasets = await Promise.all(Object.entries(this.entries).map(async ([key, valueSchema]) => {\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : await /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\t\tawait valueSchema[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tinput[key],\n\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\tnull\n\t\t\t\t\t];\n\t\t\t\t}));\n\t\t\t\tfor (const [key, value$1, valueSchema, valueDataset] of valueDatasets) if (valueDataset) {\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = await /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/objectWithRest/objectWithRest.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction objectWithRest(entries$1, rest, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"object_with_rest\",\n\t\treference: objectWithRest,\n\t\texpects: \"Object\",\n\t\tasync: false,\n\t\tentries: entries$1,\n\t\trest,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tfor (const key in this.entries) {\n\t\t\t\t\tconst valueSchema = this.entries[key];\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\tconst valueDataset = valueSchema[\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) {\n\t\t\t\t\tfor (const key in input) if (/* @__PURE__ */ _isValidObjectKey(input, key) && !(key in this.entries)) {\n\t\t\t\t\t\tconst valueDataset = this.rest[\"~run\"]({ value: input[key] }, config$1);\n\t\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/objectWithRest/objectWithRestAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction objectWithRestAsync(entries$1, rest, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"object_with_rest\",\n\t\treference: objectWithRestAsync,\n\t\texpects: \"Object\",\n\t\tasync: true,\n\t\tentries: entries$1,\n\t\trest,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tconst [normalDatasets, restDatasets] = await Promise.all([Promise.all(Object.entries(this.entries).map(async ([key, valueSchema]) => {\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : await /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\t\tawait valueSchema[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tinput[key],\n\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\tnull\n\t\t\t\t\t];\n\t\t\t\t})), Promise.all(Object.entries(input).filter(([key]) => /* @__PURE__ */ _isValidObjectKey(input, key) && !(key in this.entries)).map(async ([key, value$1]) => [\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue$1,\n\t\t\t\t\tawait this.rest[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t]))]);\n\t\t\t\tfor (const [key, value$1, valueSchema, valueDataset] of normalDatasets) if (valueDataset) {\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = await /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) for (const [key, value$1, valueDataset] of restDatasets) {\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/optional/optional.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction optional(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"optional\",\n\t\treference: optional,\n\t\texpects: `(${wrapped.expects} | undefined)`,\n\t\tasync: false,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === void 0) {\n\t\t\t\tif (this.default !== void 0) dataset.value = /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === void 0) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/optional/optionalAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction optionalAsync(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"optional\",\n\t\treference: optionalAsync,\n\t\texpects: `(${wrapped.expects} | undefined)`,\n\t\tasync: true,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === void 0) {\n\t\t\t\tif (this.default !== void 0) dataset.value = await /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === void 0) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/picklist/picklist.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction picklist(options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"picklist\",\n\t\treference: picklist,\n\t\texpects: /* @__PURE__ */ _joinExpects(options.map(_stringify), \"|\"),\n\t\tasync: false,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (this.options.includes(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/promise/promise.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction promise(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"promise\",\n\t\treference: promise,\n\t\texpects: \"Promise\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value instanceof Promise) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/record/record.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction record(key, value$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"record\",\n\t\treference: record,\n\t\texpects: \"Object\",\n\t\tasync: false,\n\t\tkey,\n\t\tvalue: value$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tfor (const entryKey in input) if (/* @__PURE__ */ _isValidObjectKey(input, entryKey)) {\n\t\t\t\t\tconst entryValue = input[entryKey];\n\t\t\t\t\tconst keyDataset = this.key[\"~run\"]({ value: entryKey }, config$1);\n\t\t\t\t\tif (keyDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: entryKey,\n\t\t\t\t\t\t\tvalue: entryValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of keyDataset.issues) {\n\t\t\t\t\t\t\tissue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = keyDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst valueDataset = this.value[\"~run\"]({ value: entryValue }, config$1);\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: entryKey,\n\t\t\t\t\t\t\tvalue: entryValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!keyDataset.typed || !valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tif (keyDataset.typed) dataset.value[keyDataset.value] = valueDataset.value;\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/record/recordAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction recordAsync(key, value$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"record\",\n\t\treference: recordAsync,\n\t\texpects: \"Object\",\n\t\tasync: true,\n\t\tkey,\n\t\tvalue: value$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tconst datasets = await Promise.all(Object.entries(input).filter(([key$1]) => /* @__PURE__ */ _isValidObjectKey(input, key$1)).map(([entryKey, entryValue]) => Promise.all([\n\t\t\t\t\tentryKey,\n\t\t\t\t\tentryValue,\n\t\t\t\t\tthis.key[\"~run\"]({ value: entryKey }, config$1),\n\t\t\t\t\tthis.value[\"~run\"]({ value: entryValue }, config$1)\n\t\t\t\t])));\n\t\t\t\tfor (const [entryKey, entryValue, keyDataset, valueDataset] of datasets) {\n\t\t\t\t\tif (keyDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: entryKey,\n\t\t\t\t\t\t\tvalue: entryValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of keyDataset.issues) {\n\t\t\t\t\t\t\tissue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = keyDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: entryKey,\n\t\t\t\t\t\t\tvalue: entryValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!keyDataset.typed || !valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tif (keyDataset.typed) dataset.value[keyDataset.value] = valueDataset.value;\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/set/set.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction set(value$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"set\",\n\t\treference: set,\n\t\texpects: \"Set\",\n\t\tasync: false,\n\t\tvalue: value$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input instanceof Set) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = /* @__PURE__ */ new Set();\n\t\t\t\tfor (const inputValue of input) {\n\t\t\t\t\tconst valueDataset = this.value[\"~run\"]({ value: inputValue }, config$1);\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"set\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: null,\n\t\t\t\t\t\t\tvalue: inputValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.add(valueDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/set/setAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction setAsync(value$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"set\",\n\t\treference: setAsync,\n\t\texpects: \"Set\",\n\t\tasync: true,\n\t\tvalue: value$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input instanceof Set) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = /* @__PURE__ */ new Set();\n\t\t\t\tconst valueDatasets = await Promise.all([...input].map(async (inputValue) => [inputValue, await this.value[\"~run\"]({ value: inputValue }, config$1)]));\n\t\t\t\tfor (const [inputValue, valueDataset] of valueDatasets) {\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"set\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: null,\n\t\t\t\t\t\t\tvalue: inputValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.add(valueDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/strictObject/strictObject.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction strictObject(entries$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"strict_object\",\n\t\treference: strictObject,\n\t\texpects: \"Object\",\n\t\tasync: false,\n\t\tentries: entries$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tfor (const key in this.entries) {\n\t\t\t\t\tconst valueSchema = this.entries[key];\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\tconst valueDataset = valueSchema[\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) {\n\t\t\t\t\tfor (const key in input) if (!(key in this.entries)) {\n\t\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\t\tinput: key,\n\t\t\t\t\t\t\texpected: \"never\",\n\t\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/strictObject/strictObjectAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction strictObjectAsync(entries$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"strict_object\",\n\t\treference: strictObjectAsync,\n\t\texpects: \"Object\",\n\t\tasync: true,\n\t\tentries: entries$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tconst valueDatasets = await Promise.all(Object.entries(this.entries).map(async ([key, valueSchema]) => {\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : await /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\t\tawait valueSchema[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tinput[key],\n\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\tnull\n\t\t\t\t\t];\n\t\t\t\t}));\n\t\t\t\tfor (const [key, value$1, valueSchema, valueDataset] of valueDatasets) if (valueDataset) {\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = await /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) {\n\t\t\t\t\tfor (const key in input) if (!(key in this.entries)) {\n\t\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\t\tinput: key,\n\t\t\t\t\t\t\texpected: \"never\",\n\t\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/strictTuple/strictTuple.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction strictTuple(items, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"strict_tuple\",\n\t\treference: strictTuple,\n\t\texpects: \"Array\",\n\t\tasync: false,\n\t\titems,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tfor (let key = 0; key < this.items.length; key++) {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\tconst itemDataset = this.items[key][\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t\tif (!(dataset.issues && config$1.abortEarly) && this.items.length < input.length) _addIssue(this, \"type\", dataset, config$1, {\n\t\t\t\t\tinput: input[this.items.length],\n\t\t\t\t\texpected: \"never\",\n\t\t\t\t\tpath: [{\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\tkey: this.items.length,\n\t\t\t\t\t\tvalue: input[this.items.length]\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/strictTuple/strictTupleAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction strictTupleAsync(items, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"strict_tuple\",\n\t\treference: strictTupleAsync,\n\t\texpects: \"Array\",\n\t\tasync: true,\n\t\titems,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tconst itemDatasets = await Promise.all(this.items.map(async (item, key) => {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\tawait item[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t];\n\t\t\t\t}));\n\t\t\t\tfor (const [key, value$1, itemDataset] of itemDatasets) {\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t\tif (!(dataset.issues && config$1.abortEarly) && this.items.length < input.length) _addIssue(this, \"type\", dataset, config$1, {\n\t\t\t\t\tinput: input[this.items.length],\n\t\t\t\t\texpected: \"never\",\n\t\t\t\t\tpath: [{\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\tkey: this.items.length,\n\t\t\t\t\t\tvalue: input[this.items.length]\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/string/string.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction string(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"string\",\n\t\treference: string,\n\t\texpects: \"string\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (typeof dataset.value === \"string\") dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/symbol/symbol.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction symbol(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"symbol\",\n\t\treference: symbol,\n\t\texpects: \"symbol\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (typeof dataset.value === \"symbol\") dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/tuple/tuple.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction tuple(items, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"tuple\",\n\t\treference: tuple,\n\t\texpects: \"Array\",\n\t\tasync: false,\n\t\titems,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tfor (let key = 0; key < this.items.length; key++) {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\tconst itemDataset = this.items[key][\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/tuple/tupleAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction tupleAsync(items, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"tuple\",\n\t\treference: tupleAsync,\n\t\texpects: \"Array\",\n\t\tasync: true,\n\t\titems,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tconst itemDatasets = await Promise.all(this.items.map(async (item, key) => {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\tawait item[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t];\n\t\t\t\t}));\n\t\t\t\tfor (const [key, value$1, itemDataset] of itemDatasets) {\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/tupleWithRest/tupleWithRest.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction tupleWithRest(items, rest, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"tuple_with_rest\",\n\t\treference: tupleWithRest,\n\t\texpects: \"Array\",\n\t\tasync: false,\n\t\titems,\n\t\trest,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tfor (let key = 0; key < this.items.length; key++) {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\tconst itemDataset = this.items[key][\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) for (let key = this.items.length; key < input.length; key++) {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\tconst itemDataset = this.rest[\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/tupleWithRest/tupleWithRestAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction tupleWithRestAsync(items, rest, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"tuple_with_rest\",\n\t\treference: tupleWithRestAsync,\n\t\texpects: \"Array\",\n\t\tasync: true,\n\t\titems,\n\t\trest,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tconst [normalDatasets, restDatasets] = await Promise.all([Promise.all(this.items.map(async (item, key) => {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\tawait item[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t];\n\t\t\t\t})), Promise.all(input.slice(this.items.length).map(async (value$1, key) => {\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey + this.items.length,\n\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\tawait this.rest[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t];\n\t\t\t\t}))]);\n\t\t\t\tfor (const [key, value$1, itemDataset] of normalDatasets) {\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) for (const [key, value$1, itemDataset] of restDatasets) {\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/undefined/undefined.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction undefined_(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"undefined\",\n\t\treference: undefined_,\n\t\texpects: \"undefined\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === void 0) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/undefinedable/undefinedable.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction undefinedable(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"undefinedable\",\n\t\treference: undefinedable,\n\t\texpects: `(${wrapped.expects} | undefined)`,\n\t\tasync: false,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === void 0) {\n\t\t\t\tif (this.default !== void 0) dataset.value = /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === void 0) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/undefinedable/undefinedableAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction undefinedableAsync(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"undefinedable\",\n\t\treference: undefinedableAsync,\n\t\texpects: `(${wrapped.expects} | undefined)`,\n\t\tasync: true,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === void 0) {\n\t\t\t\tif (this.default !== void 0) dataset.value = await /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === void 0) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/union/utils/_subIssues/_subIssues.ts\n/**\n* Returns the sub issues of the provided datasets for the union issue.\n*\n* @param datasets The datasets.\n*\n* @returns The sub issues.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _subIssues(datasets) {\n\tlet issues;\n\tif (datasets) for (const dataset of datasets) if (issues) for (const issue of dataset.issues) issues.push(issue);\n\telse issues = dataset.issues;\n\treturn issues;\n}\n\n//#endregion\n//#region src/schemas/union/union.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction union(options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"union\",\n\t\treference: union,\n\t\texpects: /* @__PURE__ */ _joinExpects(options.map((option) => option.expects), \"|\"),\n\t\tasync: false,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tlet validDataset;\n\t\t\tlet typedDatasets;\n\t\t\tlet untypedDatasets;\n\t\t\tfor (const schema of this.options) {\n\t\t\t\tconst optionDataset = schema[\"~run\"]({ value: dataset.value }, config$1);\n\t\t\t\tif (optionDataset.typed) if (optionDataset.issues) if (typedDatasets) typedDatasets.push(optionDataset);\n\t\t\t\telse typedDatasets = [optionDataset];\n\t\t\t\telse {\n\t\t\t\t\tvalidDataset = optionDataset;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse if (untypedDatasets) untypedDatasets.push(optionDataset);\n\t\t\t\telse untypedDatasets = [optionDataset];\n\t\t\t}\n\t\t\tif (validDataset) return validDataset;\n\t\t\tif (typedDatasets) {\n\t\t\t\tif (typedDatasets.length === 1) return typedDatasets[0];\n\t\t\t\t_addIssue(this, \"type\", dataset, config$1, { issues: /* @__PURE__ */ _subIssues(typedDatasets) });\n\t\t\t\tdataset.typed = true;\n\t\t\t} else if (untypedDatasets?.length === 1) return untypedDatasets[0];\n\t\t\telse _addIssue(this, \"type\", dataset, config$1, { issues: /* @__PURE__ */ _subIssues(untypedDatasets) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/union/unionAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction unionAsync(options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"union\",\n\t\treference: unionAsync,\n\t\texpects: /* @__PURE__ */ _joinExpects(options.map((option) => option.expects), \"|\"),\n\t\tasync: true,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tlet validDataset;\n\t\t\tlet typedDatasets;\n\t\t\tlet untypedDatasets;\n\t\t\tfor (const schema of this.options) {\n\t\t\t\tconst optionDataset = await schema[\"~run\"]({ value: dataset.value }, config$1);\n\t\t\t\tif (optionDataset.typed) if (optionDataset.issues) if (typedDatasets) typedDatasets.push(optionDataset);\n\t\t\t\telse typedDatasets = [optionDataset];\n\t\t\t\telse {\n\t\t\t\t\tvalidDataset = optionDataset;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse if (untypedDatasets) untypedDatasets.push(optionDataset);\n\t\t\t\telse untypedDatasets = [optionDataset];\n\t\t\t}\n\t\t\tif (validDataset) return validDataset;\n\t\t\tif (typedDatasets) {\n\t\t\t\tif (typedDatasets.length === 1) return typedDatasets[0];\n\t\t\t\t_addIssue(this, \"type\", dataset, config$1, { issues: /* @__PURE__ */ _subIssues(typedDatasets) });\n\t\t\t\tdataset.typed = true;\n\t\t\t} else if (untypedDatasets?.length === 1) return untypedDatasets[0];\n\t\t\telse _addIssue(this, \"type\", dataset, config$1, { issues: /* @__PURE__ */ _subIssues(untypedDatasets) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/unknown/unknown.ts\n/**\n* Creates a unknown schema.\n*\n* @returns A unknown schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction unknown() {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"unknown\",\n\t\treference: unknown,\n\t\texpects: \"unknown\",\n\t\tasync: false,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.typed = true;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/variant/variant.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction variant(key, options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"variant\",\n\t\treference: variant,\n\t\texpects: \"Object\",\n\t\tasync: false,\n\t\tkey,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tlet outputDataset;\n\t\t\t\tlet maxDiscriminatorPriority = 0;\n\t\t\t\tlet invalidDiscriminatorKey = this.key;\n\t\t\t\tlet expectedDiscriminators = [];\n\t\t\t\tconst parseOptions = (variant$1, allKeys) => {\n\t\t\t\t\tfor (const schema of variant$1.options) {\n\t\t\t\t\t\tif (schema.type === \"variant\") parseOptions(schema, new Set(allKeys).add(schema.key));\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet keysAreValid = true;\n\t\t\t\t\t\t\tlet currentPriority = 0;\n\t\t\t\t\t\t\tfor (const currentKey of allKeys) {\n\t\t\t\t\t\t\t\tconst discriminatorSchema = schema.entries[currentKey];\n\t\t\t\t\t\t\t\tif (currentKey in input ? discriminatorSchema[\"~run\"]({\n\t\t\t\t\t\t\t\t\ttyped: false,\n\t\t\t\t\t\t\t\t\tvalue: input[currentKey]\n\t\t\t\t\t\t\t\t}, ABORT_EARLY_CONFIG).issues : discriminatorSchema.type !== \"exact_optional\" && discriminatorSchema.type !== \"optional\" && discriminatorSchema.type !== \"nullish\") {\n\t\t\t\t\t\t\t\t\tkeysAreValid = false;\n\t\t\t\t\t\t\t\t\tif (invalidDiscriminatorKey !== currentKey && (maxDiscriminatorPriority < currentPriority || maxDiscriminatorPriority === currentPriority && currentKey in input && !(invalidDiscriminatorKey in input))) {\n\t\t\t\t\t\t\t\t\t\tmaxDiscriminatorPriority = currentPriority;\n\t\t\t\t\t\t\t\t\t\tinvalidDiscriminatorKey = currentKey;\n\t\t\t\t\t\t\t\t\t\texpectedDiscriminators = [];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (invalidDiscriminatorKey === currentKey) expectedDiscriminators.push(schema.entries[currentKey].expects);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcurrentPriority++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (keysAreValid) {\n\t\t\t\t\t\t\t\tconst optionDataset = schema[\"~run\"]({ value: input }, config$1);\n\t\t\t\t\t\t\t\tif (!outputDataset || !outputDataset.typed && optionDataset.typed) outputDataset = optionDataset;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (outputDataset && !outputDataset.issues) break;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tparseOptions(this, new Set([this.key]));\n\t\t\t\tif (outputDataset) return outputDataset;\n\t\t\t\t_addIssue(this, \"type\", dataset, config$1, {\n\t\t\t\t\tinput: input[invalidDiscriminatorKey],\n\t\t\t\t\texpected: /* @__PURE__ */ _joinExpects(expectedDiscriminators, \"|\"),\n\t\t\t\t\tpath: [{\n\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\tkey: invalidDiscriminatorKey,\n\t\t\t\t\t\tvalue: input[invalidDiscriminatorKey]\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/variant/variantAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction variantAsync(key, options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"variant\",\n\t\treference: variantAsync,\n\t\texpects: \"Object\",\n\t\tasync: true,\n\t\tkey,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tlet outputDataset;\n\t\t\t\tlet maxDiscriminatorPriority = 0;\n\t\t\t\tlet invalidDiscriminatorKey = this.key;\n\t\t\t\tlet expectedDiscriminators = [];\n\t\t\t\tconst parseOptions = async (variant$1, allKeys) => {\n\t\t\t\t\tfor (const schema of variant$1.options) {\n\t\t\t\t\t\tif (schema.type === \"variant\") await parseOptions(schema, new Set(allKeys).add(schema.key));\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet keysAreValid = true;\n\t\t\t\t\t\t\tlet currentPriority = 0;\n\t\t\t\t\t\t\tfor (const currentKey of allKeys) {\n\t\t\t\t\t\t\t\tconst discriminatorSchema = schema.entries[currentKey];\n\t\t\t\t\t\t\t\tif (currentKey in input ? (await discriminatorSchema[\"~run\"]({\n\t\t\t\t\t\t\t\t\ttyped: false,\n\t\t\t\t\t\t\t\t\tvalue: input[currentKey]\n\t\t\t\t\t\t\t\t}, ABORT_EARLY_CONFIG)).issues : discriminatorSchema.type !== \"exact_optional\" && discriminatorSchema.type !== \"optional\" && discriminatorSchema.type !== \"nullish\") {\n\t\t\t\t\t\t\t\t\tkeysAreValid = false;\n\t\t\t\t\t\t\t\t\tif (invalidDiscriminatorKey !== currentKey && (maxDiscriminatorPriority < currentPriority || maxDiscriminatorPriority === currentPriority && currentKey in input && !(invalidDiscriminatorKey in input))) {\n\t\t\t\t\t\t\t\t\t\tmaxDiscriminatorPriority = currentPriority;\n\t\t\t\t\t\t\t\t\t\tinvalidDiscriminatorKey = currentKey;\n\t\t\t\t\t\t\t\t\t\texpectedDiscriminators = [];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (invalidDiscriminatorKey === currentKey) expectedDiscriminators.push(schema.entries[currentKey].expects);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcurrentPriority++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (keysAreValid) {\n\t\t\t\t\t\t\t\tconst optionDataset = await schema[\"~run\"]({ value: input }, config$1);\n\t\t\t\t\t\t\t\tif (!outputDataset || !outputDataset.typed && optionDataset.typed) outputDataset = optionDataset;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (outputDataset && !outputDataset.issues) break;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tawait parseOptions(this, new Set([this.key]));\n\t\t\t\tif (outputDataset) return outputDataset;\n\t\t\t\t_addIssue(this, \"type\", dataset, config$1, {\n\t\t\t\t\tinput: input[invalidDiscriminatorKey],\n\t\t\t\t\texpected: /* @__PURE__ */ _joinExpects(expectedDiscriminators, \"|\"),\n\t\t\t\t\tpath: [{\n\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\tkey: invalidDiscriminatorKey,\n\t\t\t\t\t\tvalue: input[invalidDiscriminatorKey]\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/void/void.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction void_(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"void\",\n\t\treference: void_,\n\t\texpects: \"void\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === void 0) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/keyof/keyof.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction keyof(schema, message$1) {\n\treturn /* @__PURE__ */ picklist(Object.keys(schema.entries), message$1);\n}\n\n//#endregion\n//#region src/methods/message/message.ts\n/**\n* Changes the local message configuration of a schema.\n*\n* @param schema The schema to configure.\n* @param message_ The error message.\n*\n* @returns The configured schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction message(schema, message_) {\n\treturn {\n\t\t...schema,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\treturn schema[\"~run\"](dataset, {\n\t\t\t\t...config$1,\n\t\t\t\tmessage: message_\n\t\t\t});\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/omit/omit.ts\n/**\n* Creates a modified copy of an object schema that does not contain the\n* selected entries.\n*\n* @param schema The schema to omit from.\n* @param keys The selected entries.\n*\n* @returns An object schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction omit(schema, keys) {\n\tconst entries$1 = { ...schema.entries };\n\tfor (const key of keys) delete entries$1[key];\n\treturn {\n\t\t...schema,\n\t\tentries: entries$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/parse/parse.ts\n/**\n* Parses an unknown input based on a schema.\n*\n* @param schema The schema to be used.\n* @param input The input to be parsed.\n* @param config The parse configuration.\n*\n* @returns The parsed input.\n*/\nfunction parse(schema, input, config$1) {\n\tconst dataset = schema[\"~run\"]({ value: input }, /* @__PURE__ */ getGlobalConfig(config$1));\n\tif (dataset.issues) throw new ValiError(dataset.issues);\n\treturn dataset.value;\n}\n\n//#endregion\n//#region src/methods/parse/parseAsync.ts\n/**\n* Parses an unknown input based on a schema.\n*\n* @param schema The schema to be used.\n* @param input The input to be parsed.\n* @param config The parse configuration.\n*\n* @returns The parsed input.\n*/\nasync function parseAsync(schema, input, config$1) {\n\tconst dataset = await schema[\"~run\"]({ value: input }, /* @__PURE__ */ getGlobalConfig(config$1));\n\tif (dataset.issues) throw new ValiError(dataset.issues);\n\treturn dataset.value;\n}\n\n//#endregion\n//#region src/methods/parser/parser.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction parser(schema, config$1) {\n\tconst func = (input) => parse(schema, input, config$1);\n\tfunc.schema = schema;\n\tfunc.config = config$1;\n\treturn func;\n}\n\n//#endregion\n//#region src/methods/parser/parserAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction parserAsync(schema, config$1) {\n\tconst func = (input) => parseAsync(schema, input, config$1);\n\tfunc.schema = schema;\n\tfunc.config = config$1;\n\treturn func;\n}\n\n//#endregion\n//#region src/methods/partial/partial.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction partial(schema, keys) {\n\tconst entries$1 = {};\n\tfor (const key in schema.entries) entries$1[key] = !keys || keys.includes(key) ? /* @__PURE__ */ optional(schema.entries[key]) : schema.entries[key];\n\treturn {\n\t\t...schema,\n\t\tentries: entries$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/partial/partialAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction partialAsync(schema, keys) {\n\tconst entries$1 = {};\n\tfor (const key in schema.entries) entries$1[key] = !keys || keys.includes(key) ? /* @__PURE__ */ optionalAsync(schema.entries[key]) : schema.entries[key];\n\treturn {\n\t\t...schema,\n\t\tentries: entries$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/pick/pick.ts\n/**\n* Creates a modified copy of an object schema that contains only the selected\n* entries.\n*\n* @param schema The schema to pick from.\n* @param keys The selected entries.\n*\n* @returns An object schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction pick(schema, keys) {\n\tconst entries$1 = {};\n\tfor (const key of keys) entries$1[key] = schema.entries[key];\n\treturn {\n\t\t...schema,\n\t\tentries: entries$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/pipe/pipe.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction pipe(...pipe$1) {\n\treturn {\n\t\t...pipe$1[0],\n\t\tpipe: pipe$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tfor (const item of pipe$1) if (item.kind !== \"metadata\") {\n\t\t\t\tif (dataset.issues && (item.kind === \"schema\" || item.kind === \"transformation\")) {\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly && !config$1.abortPipeEarly) dataset = item[\"~run\"](dataset, config$1);\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/pipe/pipeAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction pipeAsync(...pipe$1) {\n\treturn {\n\t\t...pipe$1[0],\n\t\tpipe: pipe$1,\n\t\tasync: true,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tfor (const item of pipe$1) if (item.kind !== \"metadata\") {\n\t\t\t\tif (dataset.issues && (item.kind === \"schema\" || item.kind === \"transformation\")) {\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly && !config$1.abortPipeEarly) dataset = await item[\"~run\"](dataset, config$1);\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/required/required.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction required(schema, arg2, arg3) {\n\tconst keys = Array.isArray(arg2) ? arg2 : void 0;\n\tconst message$1 = Array.isArray(arg2) ? arg3 : arg2;\n\tconst entries$1 = {};\n\tfor (const key in schema.entries) entries$1[key] = !keys || keys.includes(key) ? /* @__PURE__ */ nonOptional(schema.entries[key], message$1) : schema.entries[key];\n\treturn {\n\t\t...schema,\n\t\tentries: entries$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/required/requiredAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction requiredAsync(schema, arg2, arg3) {\n\tconst keys = Array.isArray(arg2) ? arg2 : void 0;\n\tconst message$1 = Array.isArray(arg2) ? arg3 : arg2;\n\tconst entries$1 = {};\n\tfor (const key in schema.entries) entries$1[key] = !keys || keys.includes(key) ? /* @__PURE__ */ nonOptionalAsync(schema.entries[key], message$1) : schema.entries[key];\n\treturn {\n\t\t...schema,\n\t\tentries: entries$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/safeParse/safeParse.ts\n/**\n* Parses an unknown input based on a schema.\n*\n* @param schema The schema to be used.\n* @param input The input to be parsed.\n* @param config The parse configuration.\n*\n* @returns The parse result.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction safeParse(schema, input, config$1) {\n\tconst dataset = schema[\"~run\"]({ value: input }, /* @__PURE__ */ getGlobalConfig(config$1));\n\treturn {\n\t\ttyped: dataset.typed,\n\t\tsuccess: !dataset.issues,\n\t\toutput: dataset.value,\n\t\tissues: dataset.issues\n\t};\n}\n\n//#endregion\n//#region src/methods/safeParse/safeParseAsync.ts\n/**\n* Parses an unknown input based on a schema.\n*\n* @param schema The schema to be used.\n* @param input The input to be parsed.\n* @param config The parse configuration.\n*\n* @returns The parse result.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nasync function safeParseAsync(schema, input, config$1) {\n\tconst dataset = await schema[\"~run\"]({ value: input }, /* @__PURE__ */ getGlobalConfig(config$1));\n\treturn {\n\t\ttyped: dataset.typed,\n\t\tsuccess: !dataset.issues,\n\t\toutput: dataset.value,\n\t\tissues: dataset.issues\n\t};\n}\n\n//#endregion\n//#region src/methods/safeParser/safeParser.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction safeParser(schema, config$1) {\n\tconst func = (input) => /* @__PURE__ */ safeParse(schema, input, config$1);\n\tfunc.schema = schema;\n\tfunc.config = config$1;\n\treturn func;\n}\n\n//#endregion\n//#region src/methods/safeParser/safeParserAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction safeParserAsync(schema, config$1) {\n\tconst func = (input) => /* @__PURE__ */ safeParseAsync(schema, input, config$1);\n\tfunc.schema = schema;\n\tfunc.config = config$1;\n\treturn func;\n}\n\n//#endregion\n//#region src/methods/summarize/summarize.ts\n/**\n* Summarize the error messages of issues in a pretty-printable multi-line string.\n*\n* @param issues The list of issues.\n*\n* @returns A summary of the issues.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction summarize(issues) {\n\tlet summary = \"\";\n\tfor (const issue of issues) {\n\t\tif (summary) summary += \"\\n\";\n\t\tsummary += `× ${issue.message}`;\n\t\tconst dotPath = /* @__PURE__ */ getDotPath(issue);\n\t\tif (dotPath) summary += `\\n → at ${dotPath}`;\n\t}\n\treturn summary;\n}\n\n//#endregion\n//#region src/methods/unwrap/unwrap.ts\n/**\n* Unwraps the wrapped schema.\n*\n* @param schema The schema to be unwrapped.\n*\n* @returns The unwrapped schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction unwrap(schema) {\n\treturn schema.wrapped;\n}\n\n//#endregion\nexport { BASE64_REGEX, BIC_REGEX, CUID2_REGEX, DECIMAL_REGEX, DIGITS_REGEX, DOMAIN_REGEX, EMAIL_REGEX, EMOJI_REGEX, HEXADECIMAL_REGEX, HEX_COLOR_REGEX, IMEI_REGEX, IPV4_REGEX, IPV6_REGEX, IP_REGEX, ISO_DATE_REGEX, ISO_DATE_TIME_REGEX, ISO_DATE_TIME_SECOND_REGEX, ISO_TIMESTAMP_REGEX, ISO_TIME_REGEX, ISO_TIME_SECOND_REGEX, ISO_WEEK_REGEX, ISRC_REGEX, JWS_COMPACT_REGEX, MAC48_REGEX, MAC64_REGEX, MAC_REGEX, NANO_ID_REGEX, OCTAL_REGEX, RFC_EMAIL_REGEX, SLUG_REGEX, ULID_REGEX, UUID_REGEX, ValiError, _addIssue, _cloneDataset, _formatCase, _getByteCount, _getGraphemeCount, _getLastMetadata, _getStandardProps, _getWordCount, _isLuhnAlgo, _isValidObjectKey, _joinExpects, _stringify, any, args, argsAsync, array, arrayAsync, assert, awaitAsync, base64, bic, bigint, blob, boolean, brand, bytes, cache, cacheAsync, check, checkAsync, checkItems, checkItemsAsync, config, creditCard, cuid2, custom, customAsync, date, decimal, deleteGlobalConfig, deleteGlobalMessage, deleteSchemaMessage, deleteSpecificMessage, description, digits, domain, email, emoji, empty, endsWith, entries, entriesFromList, entriesFromObjects, enum_ as enum, enum_, everyItem, exactOptional, exactOptionalAsync, examples, excludes, fallback, fallbackAsync, file, filterItems, findItem, finite, flatten, flavor, forward, forwardAsync, function_ as function, function_, getDefault, getDefaults, getDefaultsAsync, getDescription, getDotPath, getExamples, getFallback, getFallbacks, getFallbacksAsync, getGlobalConfig, getGlobalMessage, getMetadata, getSchemaMessage, getSpecificMessage, getTitle, graphemes, gtValue, guard, hash, hexColor, hexadecimal, imei, includes, instance, integer, intersect, intersectAsync, ip, ipv4, ipv6, is, isOfKind, isOfType, isValiError, isbn, isoDate, isoDateTime, isoDateTimeSecond, isoTime, isoTimeSecond, isoTimestamp, isoWeek, isrc, jwsCompact, keyof, lazy, lazyAsync, length, literal, looseObject, looseObjectAsync, looseTuple, looseTupleAsync, ltValue, mac, mac48, mac64, map, mapAsync, mapItems, maxBytes, maxEntries, maxGraphemes, maxLength, maxSize, maxValue, maxWords, message, metadata, mimeType, minBytes, minEntries, minGraphemes, minLength, minSize, minValue, minWords, multipleOf, nan, nanoid, never, nonEmpty, nonNullable, nonNullableAsync, nonNullish, nonNullishAsync, nonOptional, nonOptionalAsync, normalize, notBytes, notEntries, notGraphemes, notLength, notSize, notValue, notValues, notWords, null_ as null, null_, nullable, nullableAsync, nullish, nullishAsync, number, object, objectAsync, objectWithRest, objectWithRestAsync, octal, omit, optional, optionalAsync, parse, parseAsync, parseBoolean, parseJson, parser, parserAsync, partial, partialAsync, partialCheck, partialCheckAsync, pick, picklist, pipe, pipeAsync, promise, rawCheck, rawCheckAsync, rawTransform, rawTransformAsync, readonly, record, recordAsync, reduceItems, regex, required, requiredAsync, returns, returnsAsync, rfcEmail, safeInteger, safeParse, safeParseAsync, safeParser, safeParserAsync, set, setAsync, setGlobalConfig, setGlobalMessage, setSchemaMessage, setSpecificMessage, size, slug, someItem, sortItems, startsWith, strictObject, strictObjectAsync, strictTuple, strictTupleAsync, string, stringifyJson, summarize, symbol, title, toBigint, toBoolean, toCamelCase, toDate, toKebabCase, toLowerCase, toMaxValue, toMinValue, toNumber, toPascalCase, toSnakeCase, toString, toUpperCase, transform, transformAsync, trim, trimEnd, trimStart, tuple, tupleAsync, tupleWithRest, tupleWithRestAsync, ulid, undefined_ as undefined, undefined_, undefinedable, undefinedableAsync, union, unionAsync, unknown, unwrap, url, uuid, value, values, variant, variantAsync, void_ as void, void_, words };","import { getPublishedId, studioPath } from \"@sanity/client/csm\";\nimport { pipe, string, minLength, optional, object, fallback, is, record, unknown, safeParse, parse } from \"valibot\";\nconst lengthyStr$1 = pipe(string(), minLength(1)), optionalLengthyStr = optional(lengthyStr$1), sanityNodeSchema = object({\n baseUrl: lengthyStr$1,\n dataset: optionalLengthyStr,\n id: lengthyStr$1,\n path: lengthyStr$1,\n projectId: optionalLengthyStr,\n tool: optionalLengthyStr,\n type: optionalLengthyStr,\n workspace: optionalLengthyStr,\n perspective: fallback(string(), \"drafts\")\n});\nfunction isValidSanityNode(node) {\n return is(sanityNodeSchema, node);\n}\nfunction isArray(value) {\n return value !== null && Array.isArray(value);\n}\nfunction pathToUrlString(path) {\n let str = \"\";\n for (const segment of path) {\n if (typeof segment == \"string\") {\n str && (str += \".\"), str += segment;\n continue;\n }\n if (typeof segment == \"number\") {\n str && (str += \":\"), str += `${segment}`;\n continue;\n }\n if (isArray(segment)) {\n str && (str += \":\"), str += `${segment.join(\",\")}}`;\n continue;\n }\n if (segment._key) {\n str && (str += \":\"), str += `${segment._key}`;\n continue;\n }\n }\n return str;\n}\nfunction encodeSanityNodeData(node) {\n const { id: _id, path, baseUrl, tool, workspace, type } = node;\n return isValidSanityNode(node) ? [\n [\"id\", getPublishedId(_id)],\n [\"type\", type],\n [\"path\", pathToUrlString(studioPath.fromString(path))],\n [\"base\", encodeURIComponent(baseUrl)],\n [\"workspace\", workspace],\n [\"tool\", tool]\n ].filter(([, value]) => !!value).map((part) => part.join(\"=\")).join(\";\") : void 0;\n}\nfunction createDataAttribute(props) {\n function normalizePath(path) {\n return path ? typeof path == \"string\" ? studioPath.fromString(path) : path : [];\n }\n function toString(props2) {\n if (!props2.id) throw new Error(\"`id` is required to create a data attribute\");\n if (!props2.type) throw new Error(\"`type` is required to create a data attribute\");\n if (!props2.path || !props2.path.length)\n throw new Error(\"`path` is required to create a data attribute\");\n const attrs = {\n baseUrl: props2.baseUrl || \"/\",\n workspace: props2.workspace,\n tool: props2.tool,\n type: props2.type,\n id: props2.id,\n path: typeof props2.path == \"string\" ? props2.path : studioPath.toString(props2.path),\n perspective: props2.perspective\n };\n return encodeSanityNodeData(attrs);\n }\n const DataAttribute = (path) => toString({\n ...props,\n path: [...normalizePath(props.path), ...normalizePath(path)]\n });\n return DataAttribute.toString = function() {\n return toString(props);\n }, DataAttribute.combine = function(attrs) {\n return createDataAttribute({\n ...props,\n ...attrs\n });\n }, DataAttribute.scope = function(path) {\n return createDataAttribute({\n ...props,\n path: [...normalizePath(props.path), ...normalizePath(path)]\n });\n }, DataAttribute;\n}\nconst RE_SEGMENT_WITH_INDEX = /^([\\w-]+):(0|[1-9][0-9]*)$/, RE_SEGMENT_WITH_TUPLE = /^([\\w-]+):([0-9]+),([0-9]+)$/, RE_SEGMENT_WITH_KEY = /^([\\w-]+):([\\w-]+)$/;\nfunction urlStringToPath(str) {\n const path = [];\n for (const segment of str.split(\".\")) {\n const withIndex = RE_SEGMENT_WITH_INDEX.exec(segment);\n if (withIndex) {\n path.push(withIndex[1], Number(withIndex[2]));\n continue;\n }\n const withTuple = RE_SEGMENT_WITH_TUPLE.exec(segment);\n if (withTuple) {\n path.push(withTuple[1], [Number(withTuple[2]), Number(withTuple[3])]);\n continue;\n }\n const withKey = RE_SEGMENT_WITH_KEY.exec(segment);\n if (withKey) {\n path.push(withKey[1], { _key: withKey[2] });\n continue;\n }\n path.push(segment);\n }\n return path;\n}\nconst lengthyStr = pipe(string(), minLength(1)), sanityLegacyNodeSchema = object({\n origin: lengthyStr,\n href: lengthyStr,\n data: optional(record(string(), unknown()))\n});\nfunction decodeSanityString(str) {\n const data = str.split(\";\").reduce((acc, segment) => {\n const [key, value] = segment.split(\"=\");\n if (!key || segment.includes(\"=\") && !value) return acc;\n switch (key) {\n case \"id\":\n acc.id = value;\n break;\n case \"type\":\n acc.type = value;\n break;\n case \"path\":\n acc.path = studioPath.toString(urlStringToPath(value));\n break;\n case \"base\":\n acc.baseUrl = decodeURIComponent(value);\n break;\n case \"perspective\":\n acc.perspective = value;\n break;\n case \"tool\":\n acc.tool = value;\n break;\n case \"workspace\":\n acc.workspace = value;\n break;\n case \"projectId\":\n acc.projectId = value;\n break;\n case \"dataset\":\n acc.dataset = value;\n break;\n }\n return acc;\n }, {});\n if (isValidSanityNode(data))\n return data;\n}\nfunction decodeSanityObject(data) {\n const sanityNode = safeParse(sanityNodeSchema, data);\n if (sanityNode.success)\n return sanityNode.output;\n const sanityLegacyNode = safeParse(sanityLegacyNodeSchema, data);\n if (sanityLegacyNode.success)\n try {\n const url = new URL(\n sanityLegacyNode.output.href,\n typeof document > \"u\" ? \"https://example.com\" : location.origin\n );\n return url.searchParams.size > 0 ? parse(sanityNodeSchema, Object.fromEntries(url.searchParams.entries())) : sanityLegacyNode.output;\n } catch (err) {\n return console.error(\"Failed to parse sanity node\", err), sanityLegacyNode.output;\n }\n}\nfunction decodeSanityNodeData(data) {\n if (typeof data == \"object\" && data !== null)\n return decodeSanityObject(data);\n try {\n const obj = JSON.parse(data);\n return decodeSanityObject(obj);\n } catch {\n return decodeSanityString(data);\n }\n}\nexport {\n createDataAttribute,\n decodeSanityNodeData,\n encodeSanityNodeData,\n pathToUrlString,\n urlStringToPath\n};\n//# sourceMappingURL=index.js.map\n","import {studioPath} from '@sanity/client/csm'\nimport {urlStringToPath} from '@sanity/visual-editing-csm'\n\nimport {type PresentationStateParams} from '../types'\n\nfunction parseId(rawId: string | undefined): string | undefined {\n if (rawId === undefined) {\n return undefined\n }\n\n const segments = decodeURIComponent(rawId)?.split('.')\n\n if (segments[0] === 'drafts') {\n segments.shift()\n }\n\n return segments.join('.')\n}\n\nfunction parsePath(rawPath: string | undefined): string | undefined {\n if (rawPath === undefined) {\n return undefined\n }\n\n return studioPath.toString(urlStringToPath(decodeURIComponent(rawPath)))\n}\n\nexport function parseRouterState(state: PresentationStateParams): PresentationStateParams {\n return {\n id: parseId(state.id),\n path: parsePath(state.path),\n type: state.type,\n }\n}\n","import {type MutableRefObject, useCallback, useLayoutEffect, useMemo, useRef, useState} from 'react'\nimport {getPublishedId} from 'sanity'\nimport {type RouterContextValue, type RouterState, type SearchParam} from 'sanity/router'\n\nimport {\n type CombinedSearchParams,\n type FrameState,\n type PresentationNavigate,\n type PresentationParamsContextValue,\n type PresentationSearchParams,\n type PresentationStateParams,\n type StructureDocumentPaneParams,\n} from './types'\nimport {parseRouterState} from './util/parse'\n\nfunction pruneObject<T extends RouterState | PresentationParamsContextValue>(obj: T): T {\n return Object.fromEntries(\n Object.entries(obj).filter(\n ([, value]) => value !== undefined && value !== '' && value !== null,\n ),\n ) as T\n}\n\n/**\n * Ensures the array contains all members of the union T.\n */\nconst exhaustiveTupleOf =\n <T>() =>\n <U extends T[]>(array: U & ([T] extends [U[number]] ? unknown : 'Invalid') & {0: T}) =>\n array\n\nconst maintainOnDocumentChange = exhaustiveTupleOf<keyof PresentationSearchParams>()([\n 'perspective',\n 'preview',\n 'viewport',\n])\n\nconst maintainOnSameDocument = exhaustiveTupleOf<keyof StructureDocumentPaneParams>()([\n 'changesInspectorTab',\n 'comment',\n 'inspect',\n 'instruction',\n 'scheduledDraft',\n 'parentRefPath',\n 'path',\n 'pathKey',\n 'rev',\n 'since',\n 'template',\n 'templateParams',\n 'version',\n 'view',\n])\n\nexport function useParams({\n initialPreviewUrl,\n routerNavigate,\n routerState,\n routerSearchParams,\n frameStateRef,\n}: {\n initialPreviewUrl: URL\n routerNavigate: RouterContextValue['navigate']\n routerState: RouterState & PresentationStateParams\n routerSearchParams: {\n [k: string]: string\n }\n frameStateRef: MutableRefObject<FrameState>\n}): {\n isSameDocument: (state: PresentationStateParams) => boolean\n navigate: PresentationNavigate\n navigationHistory: RouterState[]\n params: PresentationParamsContextValue\n searchParams: PresentationSearchParams\n structureParams: StructureDocumentPaneParams\n} {\n const params = useMemo<PresentationParamsContextValue>(() => {\n const {id, path, type} = parseRouterState(routerState)\n\n return {\n id,\n type,\n path,\n preview: routerSearchParams.preview || initialPreviewUrl.toString(),\n perspective: routerSearchParams.perspective,\n viewport: routerSearchParams.viewport,\n inspect: routerSearchParams.inspect,\n scheduledDraft: routerSearchParams.scheduledDraft,\n\n parentRefPath: routerSearchParams.parentRefPath,\n rev: routerSearchParams.rev,\n since: routerSearchParams.since,\n template: routerSearchParams.template,\n templateParams: routerSearchParams.templateParams,\n view: routerSearchParams.view,\n // assist\n pathKey: routerSearchParams.pathKey,\n instruction: routerSearchParams.instruction,\n // comments\n comment: routerSearchParams.comment,\n changesInspectorTab: routerSearchParams.changesInspectorTab as 'history' | 'review',\n }\n }, [routerState, routerSearchParams, initialPreviewUrl])\n\n const structureParams = useMemo<StructureDocumentPaneParams>(() => {\n const pruned = pruneObject({\n inspect: params.inspect,\n scheduledDraft: params.scheduledDraft,\n path: params.path,\n parentRefPath: params.parentRefPath,\n rev: params.rev,\n since: params.since,\n template: params.template,\n templateParams: params.templateParams,\n view: params.view,\n // assist\n pathKey: params.pathKey,\n instruction: params.instruction,\n // comments\n comment: params.comment,\n changesInspectorTab: params.changesInspectorTab,\n })\n return pruned\n }, [\n params.changesInspectorTab,\n params.comment,\n params.inspect,\n params.instruction,\n params.path,\n params.pathKey,\n params.parentRefPath,\n params.rev,\n params.since,\n params.template,\n params.templateParams,\n params.view,\n params.scheduledDraft,\n ])\n\n const searchParams = useMemo<PresentationSearchParams>(() => {\n const pruned = pruneObject({\n perspective: params.perspective,\n preview: params.preview,\n viewport: params.viewport,\n })\n return pruned\n }, [params.perspective, params.preview, params.viewport])\n\n const routerStateRef = useRef(routerState)\n\n useLayoutEffect(() => {\n routerStateRef.current = routerState\n }, [routerState])\n\n const [navigationHistory, setNavigationHistory] = useState<RouterState[]>([routerState])\n\n // Helper function to check if a given document is the same as the one in the\n // current router state\n const isSameDocument = useCallback(({id, type}: PresentationStateParams) => {\n const {current} = routerStateRef\n return id === current.id && type === current.type\n }, [])\n\n const navigate = useCallback<PresentationNavigate>(\n (options) => {\n const {state, params, replace = false} = options\n\n // Force navigation to use published IDs only\n if (state?.id) state.id = getPublishedId(state.id)\n\n // Get the current state and params\n const {current} = routerStateRef\n const currentState = {\n id: current.id,\n type: current.type,\n path: current.path,\n } satisfies PresentationStateParams\n const currentParams = Object.fromEntries(current._searchParams || []) as CombinedSearchParams\n\n // If state is provided, replace the current state with the provided\n // state, otherwise maintain the current state\n const nextState = state || currentState\n\n // Different params need to be maintained under different conditions\n const maintainedParamKeys = [\n ...maintainOnDocumentChange,\n ...(isSameDocument(nextState) ? maintainOnSameDocument : []),\n ] satisfies (keyof CombinedSearchParams)[]\n\n const maintainedParams = maintainedParamKeys.reduce((acc, key) => {\n // @ts-expect-error changesInspectorTab union type doesn't play nicely\n // here, if it were just a string it would be fine\n acc[key] = currentParams[key]\n return acc\n }, {} as Partial<CombinedSearchParams>)\n\n // If params are provided, merge them with the maintained params\n const nextParams = {...maintainedParams, ...params}\n\n const nextRouterState = {\n ...nextState,\n _searchParams: Object.entries(nextParams).reduce(\n (acc, [key, value]) => [...acc, [key, value] as SearchParam],\n [] as SearchParam[],\n ),\n } satisfies RouterState\n\n setNavigationHistory((prev) => [...prev, nextRouterState])\n routerNavigate(nextRouterState, {replace})\n },\n [isSameDocument, routerNavigate],\n )\n\n return {\n isSameDocument,\n navigate,\n navigationHistory,\n params,\n searchParams,\n structureParams,\n }\n}\n","import {type Controller} from '@sanity/comlink'\nimport {useCallback, useEffect, useState} from 'react'\n\nimport {POPUP_CHECK_INTERVAL} from './constants'\n\n/**\n * A hook for managing popup Window contexts\n *\n * This hook handles:\n * - Opening new popup Windows, and adding them as targets to the controller\n * - Tracking existing popup windows, and cleaning up closed popups\n *\n * @param controller - Comlink controller instance that manages communication\n * between Window contexts\n *\n * @returns An object containing:\n * - popups: A Set of currently open popup Window objects\n * - open: Function to open a new popup Window with the specified URL\n *\n */\nexport const usePopups = (\n controller?: Controller,\n): {\n popups: Set<Window>\n open: (url: string) => void\n} => {\n // State to keep track of open popup windows\n const [popups, setPopups] = useState<Set<Window>>(() => new Set())\n\n // Function to open a new popup window\n const open = useCallback((url: string) => {\n const source = window.open(url, '_blank')\n if (source) {\n setPopups((prev) => new Set(prev).add(source))\n }\n }, [])\n\n // Handles syncing the existing popups with the controller\n useEffect(() => {\n const unsubs: Array<() => void> = []\n if (popups.size && controller) {\n // loop popups and add targets\n for (const source of popups) {\n if (source && 'closed' in source && !source.closed) {\n unsubs.push(controller.addTarget(source))\n }\n }\n }\n return () => {\n unsubs.forEach((unsub) => unsub())\n }\n }, [controller, popups])\n\n // Checks for closed popups and removes them from the tracked Set\n useEffect(() => {\n if (popups.size) {\n const interval = setInterval(() => {\n const closed = new Set<Window>()\n for (const source of popups) {\n if (source && 'closed' in source && source.closed) {\n closed.add(source)\n }\n }\n if (closed.size) {\n setPopups((prev) => {\n const next = new Set(prev)\n for (const source of closed) {\n next.delete(source)\n }\n return next\n })\n }\n }, POPUP_CHECK_INTERVAL)\n\n return () => {\n clearInterval(interval)\n }\n }\n return undefined\n }, [popups])\n\n return {popups, open}\n}\n","import {usePerspective} from 'sanity'\n\nimport {isAgentBundleName} from '../core/store/agent/createAgentBundlesStore'\nimport {type PresentationPerspective} from './types'\n\n/**\n * @internal\n */\nexport function usePresentationPerspective({\n scheduledDraft,\n}: {\n scheduledDraft: string | undefined\n}): PresentationPerspective {\n const {selectedPerspectiveName = 'drafts', selectedReleaseId, perspectiveStack} = usePerspective()\n\n if (selectedReleaseId || scheduledDraft || isAgentBundleName(selectedPerspectiveName)) {\n if (scheduledDraft) {\n return [scheduledDraft, ...perspectiveStack]\n }\n return perspectiveStack\n }\n if (selectedPerspectiveName === 'published') {\n return 'published'\n }\n return 'drafts'\n}\n","import {usePerspective} from 'sanity'\n\n/**\n * The selected editing variant as a bare variant id (e.g. `Ab12cd34`), or `undefined` when no\n * variant is selected. This is the raw `variant` router sticky param value, available\n * synchronously — orthogonal to the perspective, and passed alongside it wherever the\n * perspective travels (iframe URL, comlink messages, loader fetches).\n * @internal\n */\nexport function usePresentationVariant(): string | undefined {\n const {selectedVariantName} = usePerspective()\n return selectedVariantName\n}\n","import {type StatusEvent} from '@sanity/comlink'\nimport {useCallback, useMemo, useState} from 'react'\n\nimport {type ConnectionStatus} from './types'\n\n/**\n * A hook that manages and returns the connection status of multiple channels\n *\n * returns an array containing the\n * current status and a function to update the status based on incoming events\n *\n * The status can be one of the following:\n * - 'connected': If any channel is connected\n * - 'connecting': If the first connection is being established\n * - 'reconnecting': If a reconnection is in progress\n * - 'idle': If no connections have been made yet\n *\n * The function to update the status takes a `StatusEvent` object which includes\n * the channel and the status\n */\nexport function useStatus(): [ConnectionStatus, (event: StatusEvent) => void] {\n // State to keep track of the status of each channel\n const [statusMap, setStatusMap] = useState(\n new Map<string, {status: ConnectionStatus; hasConnected: boolean}>(),\n )\n\n // Memoized computation of the overall status based on the status of individual channels\n const memoStatus = useMemo(() => {\n const values = Array.from(statusMap.values())\n // If any channel is connected, return the `connected` status\n if (values.find(({status}) => status === 'connected')) {\n return 'connected'\n }\n // If the initial connection is being established, return `connecting` status\n const handshaking = values.filter(({status}) => status === 'connecting')\n if (handshaking.length) {\n return handshaking.some(({hasConnected}) => !hasConnected) ? 'connecting' : 'reconnecting'\n }\n // If nothing has happened yet, return `idle` status\n return 'idle'\n }, [statusMap])\n\n // Callback to update the status map based on the received event\n const setStatusFromEvent = useCallback((event: StatusEvent) => {\n setStatusMap((prev) => {\n const next = new Map(prev)\n if (event.status === 'disconnected') {\n // Remove the channel from the map if a disconnect event is received\n next.delete(event.connection)\n } else {\n // Update the status and connection flag for the channel\n const hasConnected =\n next.get(event.connection)?.hasConnected || event.status === 'connected'\n const status = event.status === 'handshaking' ? 'connecting' : event.status\n next.set(event.connection, {status, hasConnected})\n }\n return next\n })\n }, [])\n\n // Return the overall status and the function to update the status\n return [memoStatus, setStatusFromEvent]\n}\n","import {\n type Controller,\n createConnectionMachine,\n createController,\n type Message,\n} from '@sanity/comlink'\nimport {\n createCompatibilityActors,\n type PreviewKitNodeMsg,\n type VisualEditingControllerMsg,\n type VisualEditingNodeMsg,\n} from '@sanity/presentation-comlink'\nimport {\n urlSearchParamVercelProtectionBypass,\n urlSearchParamVercelSetBypassCookie,\n} from '@sanity/preview-url-secret/constants'\nimport {BoundaryElementProvider, Flex, useMediaIndex} from '@sanity/ui'\nimport {useActorRef, useSelector} from '@xstate/react'\nimport {\n lazy,\n Suspense,\n useCallback,\n useEffect,\n useEffectEvent,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {\n type CommentIntentGetter,\n COMMENTS_INSPECTOR_NAME,\n type SanityDocument,\n type Tool,\n useDataset,\n useProjectId,\n useUnique,\n useWorkspace,\n} from 'sanity'\nimport {type RouterContextValue, useRouter} from 'sanity/router'\nimport {styled} from 'styled-components'\n\nimport {DEFAULT_TOOL_NAME, EDIT_INTENT_MODE, NARROW_MEDIA_INDEX} from './constants'\nimport PostMessageFeatures from './features/PostMessageFeatures'\nimport {presentationMachine} from './machines/presentation-machine'\nimport {type PreviewUrlRef} from './machines/preview-url'\nimport {SharedStateProvider} from './overlays/SharedStateProvider'\nimport {Panel} from './panels/Panel'\nimport {Panels} from './panels/Panels'\nimport {\n getPresentationPanelHtmlId,\n type PresentationLayoutTab,\n} from './panels/presentationLayoutTab'\nimport {PresentationNarrowTabBar} from './panels/PresentationNarrowTabBar'\nimport {PresentationContent} from './PresentationContent'\nimport {PresentationNavigateProvider} from './PresentationNavigateProvider'\nimport {usePresentationNavigator} from './PresentationNavigator'\nimport {PresentationParamsProvider} from './PresentationParamsProvider'\nimport {PresentationProvider} from './PresentationProvider'\nimport {Preview} from './preview/Preview'\nimport {\n type FrameState,\n type PresentationNavigate,\n type PresentationPluginOptions,\n type PresentationStateParams,\n type PresentationViewport,\n type StructureDocumentPaneParams,\n type VisualEditingConnection,\n} from './types'\nimport {useAllowPatterns} from './useAllowPatterns'\nimport {useDocumentsOnPage} from './useDocumentsOnPage'\nimport {useMainDocument} from './useMainDocument'\nimport {useParams} from './useParams'\nimport {usePopups} from './usePopups'\nimport {usePresentationPerspective} from './usePresentationPerspective'\nimport {usePresentationVariant} from './usePresentationVariant'\nimport {useStatus} from './useStatus'\nimport {useTargetOrigin} from './useTargetOrigin'\nimport {debounce} from './util/debounce'\n\nconst LiveQueries = lazy(() => import('./loader/LiveQueries'))\nconst PostMessageDocuments = lazy(() => import('./overlays/PostMessageDocuments'))\nconst PostMessageRefreshMutations = lazy(() => import('./editor/PostMessageRefreshMutations'))\nconst PostMessagePerspective = lazy(() => import('./PostMessagePerspective'))\nconst PostMessagePreviewSnapshots = lazy(() => import('./editor/PostMessagePreviewSnapshots'))\nconst PostMessageSchema = lazy(() => import('./overlays/schema/PostMessageSchema'))\nconst PostMessageTelemetry = lazy(() => import('./PostMessageTelemetry'))\n\nconst Container = styled(Flex)`\n overflow-x: auto;\n`\n\n// Fall back to the preview if the navigator tab is selected but no longer enabled.\nfunction resolveActiveTab(\n activeTab: PresentationLayoutTab,\n navigatorEnabled: boolean,\n): PresentationLayoutTab {\n if (activeTab === 'navigator' && navigatorEnabled) return 'navigator'\n if (activeTab === 'navigator') return 'preview'\n return activeTab\n}\n\nexport default function PresentationTool(props: {\n tool: Tool<PresentationPluginOptions>\n canToggleSharePreviewAccess: boolean\n canUseSharedPreviewAccess: boolean\n vercelProtectionBypass: string | null\n initialPreviewUrl: URL\n previewUrlRef: PreviewUrlRef\n}): React.JSX.Element {\n const {\n canToggleSharePreviewAccess,\n canUseSharedPreviewAccess,\n tool,\n vercelProtectionBypass,\n initialPreviewUrl,\n previewUrlRef,\n } = props\n\n const allowOrigins = useAllowPatterns(previewUrlRef)\n const targetOrigin = useTargetOrigin(previewUrlRef)\n\n const components = tool.options?.components\n const name = tool.name || DEFAULT_TOOL_NAME\n const {unstable_navigator, unstable_header} = components || {}\n\n const {navigate: routerNavigate, state: routerState} = useRouter() as RouterContextValue & {\n state: PresentationStateParams\n }\n const routerSearchParams = useUnique(Object.fromEntries(routerState._searchParams || []))\n\n const canSharePreviewAccess = useSelector(\n previewUrlRef,\n (state) => state.context.previewMode?.shareAccess !== false,\n )\n\n const [devMode] = useState(() => {\n const option = tool.options?.devMode\n\n if (typeof option === 'function') return option()\n if (typeof option === 'boolean') return option\n\n return typeof window !== 'undefined' && window.location.hostname === 'localhost'\n })\n\n const iframeRef = useRef<HTMLIFrameElement>(null)\n\n const [controller, setController] = useState<Controller>()\n const [visualEditingComlink, setVisualEditingComlink] = useState<VisualEditingConnection | null>(\n null,\n )\n\n const frameStateRef = useRef<FrameState>({\n title: undefined,\n url: undefined,\n })\n\n const {isSameDocument, navigate, navigationHistory, params, searchParams, structureParams} =\n useParams({\n initialPreviewUrl,\n routerNavigate,\n routerState,\n routerSearchParams,\n frameStateRef,\n })\n const perspective = usePresentationPerspective({scheduledDraft: params.scheduledDraft})\n const variant = usePresentationVariant()\n\n const presentationRef = useActorRef(presentationMachine)\n\n const viewport = useMemo(() => (params.viewport ? 'mobile' : 'desktop'), [params.viewport])\n\n const [documentsOnPage, setDocumentsOnPage, visualOrderPublishedIds] = useDocumentsOnPage(\n perspective,\n frameStateRef,\n )\n\n const projectId = useProjectId()\n const dataset = useDataset()\n\n const mainDocumentState = useMainDocument({\n navigate,\n navigationHistory,\n path: params.preview,\n targetOrigin,\n resolvers: tool.options?.resolve?.mainDocuments,\n perspective,\n variant,\n })\n\n const [overlaysConnection, setOverlaysConnection] = useStatus()\n const [loadersConnection, setLoadersConnection] = useStatus()\n const [previewKitConnection, setPreviewKitConnection] = useStatus()\n const [_handlesPerspectiveChange, setHandlesPerspectiveChange] = useState(false)\n // Loaders also handle perspective changes, and for legacy reasons we also consider them as a valid handler\n const handlesPerspectiveChange = _handlesPerspectiveChange || loadersConnection === 'connected'\n const [_handlesVariantChange, setHandlesVariantChange] = useState(false)\n // Same for variant changes: connected loaders re-register their queries when\n // `loader/perspective` delivers a new variant, so they count as a valid handler.\n // Preview apps are required to run loader versions that support variants.\n const handlesVariantChange = _handlesVariantChange || loadersConnection === 'connected'\n\n const {open: handleOpenPopup} = usePopups(controller)\n\n const isLoading = useSelector(presentationRef, (state) => state.matches('loading'))\n\n useEffect(() => {\n const target = iframeRef.current?.contentWindow\n\n if (!target || isLoading) return undefined\n\n const controller = createController({targetOrigin})\n controller.addTarget(target)\n setController(controller)\n\n return () => {\n controller.destroy()\n setController(undefined)\n }\n }, [targetOrigin, isLoading])\n\n const handleNavigate = useEffectEvent<PresentationNavigate>((options) => {\n navigate(options)\n })\n\n const refreshRef = useRef<number>(undefined)\n\n useEffect(() => {\n if (!controller) return undefined\n\n const comlink = controller.createChannel<VisualEditingControllerMsg, VisualEditingNodeMsg>(\n {\n name: 'presentation',\n heartbeat: true,\n connectTo: 'visual-editing',\n },\n createConnectionMachine<VisualEditingControllerMsg, VisualEditingNodeMsg>().provide({\n actors: createCompatibilityActors<VisualEditingControllerMsg>(),\n }),\n )\n\n comlink.on('visual-editing/focus', (data) => {\n if (!('id' in data)) return\n handleNavigate({\n state: {\n type: data.type,\n id: data.id,\n path: data.path,\n },\n })\n })\n\n comlink.on('visual-editing/navigate', (data) => {\n const {title} = data\n let url = data.url\n /**\n * The URL is relative, we need to resolve it to an absolute URL\n */\n if (!url.startsWith('http')) {\n try {\n url = new URL(url, targetOrigin).toString()\n } catch {\n // ignore\n }\n }\n\n if (frameStateRef.current.url !== url) {\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = () => {\n // Handle bypass params being forwarded to the final URL\n const [urlWithoutSearch, search] = url.split('?')\n const searchParams = new URLSearchParams(search)\n searchParams.delete(urlSearchParamVercelProtectionBypass)\n searchParams.delete(urlSearchParamVercelSetBypassCookie)\n handleNavigate({\n params: {\n preview: `${urlWithoutSearch}${searchParams.size > 0 ? '?' : ''}${searchParams}`,\n },\n })\n }\n try {\n run()\n } catch {\n handleNavigate({params: {preview: url}})\n }\n }\n frameStateRef.current = {title, url}\n })\n\n comlink.on('visual-editing/meta', (data) => {\n frameStateRef.current.title = data.title\n })\n\n comlink.on('visual-editing/toggle', (data) => {\n presentationRef.send({type: 'toggle visual editing overlays', enabled: data.enabled})\n })\n\n comlink.on('visual-editing/documents', (data) => {\n setDocumentsOnPage(\n 'visual-editing',\n // oxlint-disable-next-line no-explicit-any\n data.perspective as unknown as any,\n data.documents,\n )\n })\n\n // @todo This won't work for multiple window contexts?\n comlink.on('visual-editing/refreshing', (data) => {\n if (data.source === 'manual') {\n clearTimeout(refreshRef.current)\n } else if (data.source === 'mutation') {\n presentationRef.send({type: 'iframe refresh'})\n }\n })\n\n comlink.on('visual-editing/refreshed', () => {\n presentationRef.send({type: 'iframe loaded'})\n })\n\n comlink.onStatus(setOverlaysConnection)\n\n const stop = comlink.start()\n // oxlint-disable-next-line react/react-compiler\n setVisualEditingComlink(comlink)\n return () => {\n stop()\n setVisualEditingComlink(null)\n }\n }, [controller, presentationRef, setDocumentsOnPage, setOverlaysConnection, targetOrigin])\n\n useEffect(() => {\n if (!controller) return undefined\n const comlink = controller.createChannel<Message, PreviewKitNodeMsg>(\n {\n name: 'presentation',\n connectTo: 'preview-kit',\n heartbeat: true,\n },\n createConnectionMachine<Message, PreviewKitNodeMsg>().provide({\n actors: createCompatibilityActors(),\n }),\n )\n\n comlink.onStatus(setPreviewKitConnection)\n\n comlink.on('preview-kit/documents', (data) => {\n if (data.projectId === projectId && data.dataset === dataset) {\n setDocumentsOnPage(\n 'preview-kit',\n // oxlint-disable-next-line no-explicit-any\n data.perspective as unknown as any,\n data.documents,\n )\n }\n })\n\n return comlink.start()\n }, [controller, dataset, projectId, setDocumentsOnPage, setPreviewKitConnection, targetOrigin])\n\n const handleFocusPath = useMemo(\n () =>\n // When moving from one field to another, blur and focus events will trigger\n // this handler. We debounce to avoid unwanted intermediate navigations this\n // would cause.\n debounce<(state: Required<PresentationStateParams>) => void>((state) => {\n // We only ever want to update the path if we are still viewing the\n // document that was active when the focus event was triggered\n if (isSameDocument(state)) {\n navigate({\n state,\n replace: true,\n })\n }\n }, 0),\n [isSameDocument, navigate],\n )\n\n const handlePreviewPath = useCallback(\n (nextPath: string) => {\n const url = new URL(nextPath, targetOrigin)\n const preview = url.toString()\n if (params.preview === preview) {\n return\n }\n if (Array.isArray(allowOrigins)) {\n if (allowOrigins.some((pattern) => pattern.test(preview))) {\n navigate({params: {preview}})\n }\n } else if (url.origin === targetOrigin) {\n navigate({params: {preview}})\n }\n },\n [targetOrigin, params.preview, allowOrigins, navigate],\n )\n\n const handleStructureParams = useCallback(\n (params: StructureDocumentPaneParams) => {\n navigate({params})\n },\n [navigate],\n )\n\n const handleEditReference = useCallback<PresentationNavigate>(\n (options) => {\n navigate(options)\n },\n [navigate],\n )\n\n // Dispatch a focus or blur message when the id or path change\n useEffect(() => {\n if (params.id && params.path) {\n visualEditingComlink?.post('presentation/focus', {id: params.id, path: params.path})\n } else {\n visualEditingComlink?.post('presentation/blur')\n }\n }, [params.id, params.path, visualEditingComlink])\n\n // Dispatch a navigation message when the preview param changes\n useEffect(() => {\n if (\n frameStateRef.current.url &&\n params.preview &&\n frameStateRef.current.url !== params.preview\n ) {\n try {\n const frameOrigin = new URL(frameStateRef.current.url, targetOrigin).origin\n const previewOrigin = new URL(params.preview, targetOrigin).origin\n if (frameOrigin !== previewOrigin) {\n return\n }\n } catch {\n // ignore\n }\n\n frameStateRef.current.url = params.preview\n if (overlaysConnection === 'connected') {\n /**\n * Translate the possibly absolute params url back to a relative URL\n */\n let url = params.preview\n if (url.startsWith('http')) {\n try {\n const newUrl = new URL(params.preview, targetOrigin)\n url = newUrl.pathname + newUrl.search + newUrl.hash\n } catch {\n // ignore\n }\n }\n visualEditingComlink?.post('presentation/navigate', {\n url,\n type: 'replace',\n })\n }\n }\n }, [overlaysConnection, targetOrigin, params.preview, visualEditingComlink])\n\n const toggleOverlay = useCallback(\n () => visualEditingComlink?.post('presentation/toggle-overlay'),\n [visualEditingComlink],\n )\n\n const [displayedDocument, setDisplayedDocument] = useState<\n Partial<SanityDocument> | null | undefined\n >(null)\n\n useEffect(() => {\n const handleKeyUp = (e: KeyboardEvent) => {\n if (isAltKey(e)) {\n toggleOverlay()\n }\n }\n const handleKeydown = (e: KeyboardEvent) => {\n if (isAltKey(e)) {\n toggleOverlay()\n }\n\n if (isHotkey(['mod', '\\\\'], e)) {\n toggleOverlay()\n }\n }\n window.addEventListener('keydown', handleKeydown)\n window.addEventListener('keyup', handleKeyUp)\n return () => {\n window.removeEventListener('keydown', handleKeydown)\n window.removeEventListener('keyup', handleKeyUp)\n }\n }, [toggleOverlay])\n\n const [boundaryElement, setBoundaryElement] = useState<HTMLDivElement | null>(null)\n\n const [{navigatorEnabled, toggleNavigator}, PresentationNavigator] = usePresentationNavigator({\n unstable_navigator,\n })\n\n // Narrow viewports collapse the panels into a tab bar showing one pane at a time.\n const mediaIndex = useMediaIndex()\n const isNarrow = mediaIndex <= NARROW_MEDIA_INDEX\n\n const [activeTab, setActiveTab] = useState<PresentationLayoutTab>('preview')\n const resolvedTab = resolveActiveTab(activeTab, navigatorEnabled)\n\n const handleRefresh = useCallback(\n (fallback: () => void) => {\n presentationRef.send({type: 'iframe refresh'})\n if (visualEditingComlink) {\n // We only wait 300ms for the iframe to ack the refresh request before running the fallback logic\n refreshRef.current = window.setTimeout(fallback, 300)\n visualEditingComlink.post('presentation/refresh', {\n source: 'manual',\n livePreviewEnabled:\n previewKitConnection === 'connected' || loadersConnection === 'connected',\n })\n return\n }\n fallback()\n },\n [loadersConnection, presentationRef, previewKitConnection, visualEditingComlink],\n )\n\n const workspace = useWorkspace()\n\n const getCommentIntent = useCallback<CommentIntentGetter>(\n ({id, type, path}) => {\n if (frameStateRef.current.url) {\n return {\n title: frameStateRef.current.title || frameStateRef.current.url,\n name: 'edit',\n params: {\n id,\n path,\n type,\n inspect: COMMENTS_INSPECTOR_NAME,\n workspace: workspace.name,\n mode: EDIT_INTENT_MODE,\n preview: params.preview,\n },\n }\n }\n return undefined\n },\n [params.preview, workspace.name],\n )\n\n const setViewport = useCallback(\n (next: PresentationViewport) => {\n // Omit the viewport URL search param if the next viewport state is the\n // default: 'desktop'\n const viewport = next === 'desktop' ? undefined : 'mobile'\n navigate({\n params: {viewport},\n replace: true,\n })\n },\n [navigate],\n )\n\n return (\n <>\n <PresentationProvider\n devMode={devMode}\n name={name}\n navigate={navigate}\n params={params}\n searchParams={searchParams}\n structureParams={structureParams}\n >\n <PresentationNavigateProvider navigate={navigate}>\n <PresentationParamsProvider params={params}>\n <SharedStateProvider comlink={visualEditingComlink}>\n <Container data-testid=\"presentation-root\" direction=\"column\" height=\"fill\">\n {isNarrow && (\n <PresentationNarrowTabBar\n activeTab={resolvedTab}\n navigatorEnabled={navigatorEnabled}\n onTabChange={setActiveTab}\n />\n )}\n <Flex direction=\"column\" flex={1} style={{minHeight: 0}}>\n <Panels>\n <PresentationNavigator\n hidden={isNarrow && resolvedTab !== 'navigator'}\n resizerHidden={isNarrow}\n />\n <Panel\n id=\"preview\"\n htmlId={getPresentationPanelHtmlId('preview')}\n minWidth={325}\n defaultSize={navigatorEnabled ? 50 : 75}\n order={3}\n hidden={isNarrow && resolvedTab !== 'preview'}\n >\n <Flex direction=\"column\" flex={1} height=\"fill\" ref={setBoundaryElement}>\n <BoundaryElementProvider element={boundaryElement}>\n <Preview\n // @TODO move closer to the <iframe> element itself to allow for more precise handling of when to reload the iframe and when to reconnect when the target origin changes\n // Make sure the iframe is unmounted if the targetOrigin has changed\n key={targetOrigin}\n canSharePreviewAccess={canSharePreviewAccess}\n canToggleSharePreviewAccess={canToggleSharePreviewAccess}\n canUseSharedPreviewAccess={canUseSharedPreviewAccess}\n header={unstable_header}\n initialUrl={initialPreviewUrl}\n loadersConnection={loadersConnection}\n navigatorEnabled={navigatorEnabled}\n onPathChange={handlePreviewPath}\n onRefresh={handleRefresh}\n openPopup={handleOpenPopup}\n overlaysConnection={overlaysConnection}\n previewUrl={params.preview}\n perspective={perspective}\n variant={variant}\n ref={iframeRef}\n setViewport={setViewport}\n targetOrigin={targetOrigin}\n toggleNavigator={toggleNavigator}\n toggleOverlay={toggleOverlay}\n viewport={viewport}\n vercelProtectionBypass={vercelProtectionBypass}\n presentationRef={presentationRef}\n previewUrlRef={previewUrlRef}\n handlesPerspectiveChange={handlesPerspectiveChange}\n handlesVariantChange={handlesVariantChange}\n />\n </BoundaryElementProvider>\n </Flex>\n </Panel>\n <PresentationContent\n documentId={params.id}\n documentsOnPage={documentsOnPage}\n visualOrderPublishedIds={visualOrderPublishedIds}\n documentType={params.type}\n getCommentIntent={getCommentIntent}\n hidden={isNarrow && resolvedTab !== 'content'}\n mainDocumentState={mainDocumentState}\n onEditReference={handleEditReference}\n onFocusPath={handleFocusPath}\n onStructureParams={handleStructureParams}\n resizerHidden={isNarrow}\n searchParams={searchParams}\n setDisplayedDocument={setDisplayedDocument}\n structureParams={structureParams}\n />\n </Panels>\n </Flex>\n </Container>\n </SharedStateProvider>\n </PresentationParamsProvider>\n </PresentationNavigateProvider>\n </PresentationProvider>\n <Suspense>\n {controller && (\n <LiveQueries\n controller={controller}\n perspective={perspective}\n variant={variant}\n liveDocument={displayedDocument}\n onDocumentsOnPage={setDocumentsOnPage}\n onLoadersConnection={setLoadersConnection}\n />\n )}\n {visualEditingComlink && params.id && params.type && (\n <PostMessageRefreshMutations\n comlink={visualEditingComlink}\n id={params.id}\n type={params.type}\n loadersConnection={loadersConnection}\n previewKitConnection={previewKitConnection}\n />\n )}\n {visualEditingComlink && (\n <PostMessageSchema\n comlink={visualEditingComlink}\n perspective={perspective}\n variant={variant}\n />\n )}\n {visualEditingComlink && documentsOnPage.length > 0 && (\n <PostMessagePreviewSnapshots\n comlink={visualEditingComlink}\n perspective={perspective}\n refs={documentsOnPage}\n />\n )}\n {visualEditingComlink && (\n <PostMessageDocuments\n comlink={visualEditingComlink}\n perspective={perspective}\n variant={variant}\n />\n )}\n {visualEditingComlink && <PostMessageFeatures comlink={visualEditingComlink} />}\n {visualEditingComlink && (\n <PostMessagePerspective\n comlink={visualEditingComlink}\n perspective={perspective}\n variant={variant}\n setHandlesPerspectiveChange={setHandlesPerspectiveChange}\n setHandlesVariantChange={setHandlesVariantChange}\n />\n )}\n {visualEditingComlink && <PostMessageTelemetry comlink={visualEditingComlink} />}\n </Suspense>\n </>\n )\n}\n\n// @TODO reconcile with core utils\nfunction isAltKey(event: KeyboardEvent): boolean {\n return event.key === 'Alt'\n}\n\n// @TODO reconcile with core utils\nconst IS_MAC =\n typeof window != 'undefined' && /Mac|iPod|iPhone|iPad/.test(window.navigator.platform)\nconst MODIFIERS: Record<string, 'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'> = {\n alt: 'altKey',\n ctrl: 'ctrlKey',\n mod: IS_MAC ? 'metaKey' : 'ctrlKey',\n shift: 'shiftKey',\n}\n// @TODO reconcile with core utils\nfunction isHotkey(keys: string[], event: KeyboardEvent): boolean {\n return keys.every((key) => {\n if (MODIFIERS[key]) {\n return event[MODIFIERS[key]]\n }\n return event.key === key.toUpperCase()\n })\n}\n","import {createPreviewSecret} from '@sanity/preview-url-secret/create-secret'\nimport {type SanityClient} from 'sanity'\nimport {fromPromise, type PromiseActorLogic} from 'xstate'\n\n/** @internal */\nexport function defineCreatePreviewSecretActor({\n client,\n currentUserId,\n}: {\n client: SanityClient\n currentUserId: string | undefined\n}): PromiseActorLogic<{\n secret: string\n expiresAt: Date\n}> {\n return fromPromise(async () => {\n return await createPreviewSecret(client, 'sanity/presentation', location.href, currentUserId)\n })\n}\n","import {fetchSharedAccessQuery} from '@sanity/preview-url-secret/constants'\nimport {type SanityClient} from 'sanity'\nimport {fromPromise, type PromiseActorLogic} from 'xstate'\n\n/** @internal */\nexport function defineReadSharedSecretActor({\n client,\n}: {\n client: SanityClient\n}): PromiseActorLogic<string | null> {\n return fromPromise(async () => {\n return client.fetch<string | null>(\n fetchSharedAccessQuery,\n {},\n {tag: 'presentation.fallback-to-shared-access-secret'},\n )\n })\n}\n","import {fromPromise, type PromiseActorLogic} from 'xstate'\n\nimport {type PreviewUrlAllowOption, type PreviewUrlAllowOptionContext} from '../types'\n\ninterface Context extends Pick<PreviewUrlAllowOptionContext, 'client'> {\n allowOption: PreviewUrlAllowOption | undefined\n}\ntype Input = Omit<PreviewUrlAllowOptionContext, 'client' | 'origin'>\n\n/** @internal */\nexport function defineResolveAllowPatternsActor({\n client,\n allowOption,\n}: Context): PromiseActorLogic<URLPattern[], Input> {\n return fromPromise<URLPattern[], Input>(async ({input}) => {\n const {initialUrl} = input\n\n /**\n * Lazy load the URLPattern polyfill on-demand, if needed\n */\n if (typeof URLPattern === 'undefined') {\n await import('urlpattern-polyfill')\n }\n\n /**\n * If no allow option is provided, we use the initial URL to infer the pattern\n */\n if (!allowOption) {\n return [new URLPattern(initialUrl.origin)]\n }\n\n const maybePatterns =\n typeof allowOption === 'function'\n ? await allowOption({client, origin, initialUrl})\n : allowOption\n const patterns = Array.isArray(maybePatterns) ? maybePatterns : [maybePatterns]\n const urlPatterns = patterns.map((value) => {\n const urlPattern = new URLPattern(value)\n if (urlPattern.hostname === '*') {\n throw new Error(\n `It's insecure to allow any hostname, it could disclose data to a malicious site`,\n )\n }\n return urlPattern\n })\n /**\n * If the declared patterns don't consider the initial URL valid, we add it to the list of patterns\n */\n if (!urlPatterns.some((pattern) => pattern.test(initialUrl.origin))) {\n return [...urlPatterns, new URLPattern(initialUrl.origin)]\n }\n\n return urlPatterns\n })\n}\n","import {type SanityClient} from 'sanity'\nimport {fromPromise, type PromiseActorLogic} from 'xstate'\n\nimport {type PresentationPerspective, type PreviewUrlOption} from '../types'\nimport {encodeStudioPerspective} from '../util/encodeStudioPerspective'\n\n/** @internal */\nexport function defineResolveInitialUrlActor({\n client,\n studioBasePath,\n previewUrlOption,\n perspective,\n variant,\n}: {\n client: SanityClient\n studioBasePath: string\n previewUrlOption: PreviewUrlOption | undefined\n perspective: PresentationPerspective\n variant: string | undefined\n}): PromiseActorLogic<URL, {previewSearchParam: string | null}> {\n return fromPromise<URL, {previewSearchParam: string | null}>(\n async ({input}: {input: {previewSearchParam: string | null}}) => {\n const {origin} = location\n /**\n * If the previewUrlOption is a function, we need to resolve it and maintain backwards compatibility\n */\n if (typeof previewUrlOption === 'function') {\n const initial = await previewUrlOption({\n client,\n studioBasePath,\n // @TODO handle checking permissions here, and then generating a secret\n previewUrlSecret: '',\n studioPreviewPerspective: encodeStudioPerspective(perspective),\n studioPreviewVariant: variant,\n previewSearchParam: input.previewSearchParam,\n })\n return new URL(initial, origin)\n }\n\n /**\n * Provide backwards compatibility for versions where `previewUrl` where optional\n */\n if (!previewUrlOption) {\n return new URL('/', origin)\n }\n /**\n * Support setting `previewUrl` as a string shorthand\n */\n if (typeof previewUrlOption === 'string') {\n return new URL(previewUrlOption, origin)\n }\n\n if (typeof previewUrlOption.initial === 'function') {\n const initial = await previewUrlOption.initial({\n client,\n origin,\n })\n return new URL(initial, origin)\n }\n\n if (typeof previewUrlOption.initial === 'string') {\n return new URL(previewUrlOption.initial, origin)\n }\n\n return new URL(previewUrlOption.preview || '/', previewUrlOption.origin || origin)\n },\n )\n}\n","import {fromPromise, type PromiseActorLogic} from 'xstate'\n\nimport {\n type PreviewUrlOption,\n type PreviewUrlPreviewMode,\n type PreviewUrlPreviewModeOptionContext,\n} from '../types'\n\ntype Options = Omit<PreviewUrlPreviewModeOptionContext, 'origin'>\n\ninterface Context extends Pick<Options, 'client'> {\n previewUrlOption: PreviewUrlOption | undefined\n}\ntype Input = Omit<Options, 'client'>\n\n/** @internal */\nexport function defineResolvePreviewModeActor({\n client,\n previewUrlOption,\n}: Context): PromiseActorLogic<PreviewUrlPreviewMode | false, Input> {\n return fromPromise<PreviewUrlPreviewMode | false, Input>(async ({input}) => {\n const {targetOrigin} = input\n\n /**\n * Handle legacy draftMode options\n */\n if (typeof previewUrlOption === 'object' && previewUrlOption?.draftMode) {\n return {\n enable: previewUrlOption.draftMode.enable,\n shareAccess: previewUrlOption.draftMode.shareAccess ?? true,\n }\n }\n\n /**\n * If no preview mode option is provided, we disable preview mode\n */\n if (\n !previewUrlOption ||\n typeof previewUrlOption === 'string' ||\n typeof previewUrlOption === 'function' ||\n !previewUrlOption.previewMode\n ) {\n return false\n }\n\n /**\n * If the option is a function, we resolve it\n */\n const previewMode =\n typeof previewUrlOption.previewMode === 'function'\n ? await previewUrlOption.previewMode({client, origin, targetOrigin})\n : previewUrlOption.previewMode\n\n if (previewMode === false) {\n return false\n }\n\n /**\n * Return only supported preview mode options, filter out unknowns\n */\n return {\n enable: previewMode.enable,\n shareAccess: previewMode.shareAccess ?? true,\n }\n })\n}\n","import {\n urlSearchParamPreviewPathname,\n urlSearchParamPreviewPerspective,\n urlSearchParamPreviewSecret,\n urlSearchParamPreviewVariant,\n} from '@sanity/preview-url-secret/constants'\nimport {type SanityClient} from 'sanity'\nimport {fromPromise, type PromiseActorLogic} from 'xstate'\n\nimport {\n type PresentationPerspective,\n type PreviewUrlOption,\n type PreviewUrlPreviewMode,\n} from '../types'\nimport {encodeStudioPerspective} from '../util/encodeStudioPerspective'\n\n/** @internal */\nexport interface ResolvePreviewModeUrlInput {\n previewUrlSecret: string\n resolvedPreviewMode: PreviewUrlPreviewMode\n initialUrl: URL\n}\n\n/** @internal */\nexport function defineResolvePreviewModeUrlActor({\n client,\n studioBasePath,\n previewUrlOption,\n perspective,\n variant,\n}: {\n client: SanityClient\n studioBasePath: string\n previewUrlOption: PreviewUrlOption | undefined\n perspective: PresentationPerspective\n variant: string | undefined\n}): PromiseActorLogic<URL, ResolvePreviewModeUrlInput> {\n return fromPromise<URL, ResolvePreviewModeUrlInput>(async ({input}) => {\n const {previewUrlSecret, resolvedPreviewMode, initialUrl} = input\n\n /**\n * If the previewUrlOption is a function, we need to resolve it and maintain backwards compatibility\n */\n if (typeof previewUrlOption === 'function') {\n const initial = await previewUrlOption({\n client,\n studioBasePath,\n previewUrlSecret,\n studioPreviewPerspective: encodeStudioPerspective(perspective),\n studioPreviewVariant: variant,\n previewSearchParam: initialUrl.toString(),\n })\n return new URL(initial, initialUrl)\n }\n\n /**\n * If the resolved preview mode is false then we have an unexpected state that shouldn't be possible\n */\n if (!resolvedPreviewMode) {\n throw new Error('Resolved preview mode is false')\n }\n\n const url = new URL(resolvedPreviewMode.enable, initialUrl)\n\n url.searchParams.set(urlSearchParamPreviewSecret, previewUrlSecret)\n url.searchParams.set(urlSearchParamPreviewPerspective, encodeStudioPerspective(perspective))\n if (variant) {\n url.searchParams.set(urlSearchParamPreviewVariant, variant)\n } else {\n url.searchParams.delete(urlSearchParamPreviewVariant)\n }\n if (initialUrl.pathname !== url.pathname) {\n url.searchParams.set(\n urlSearchParamPreviewPathname,\n `${initialUrl.pathname}${initialUrl.search}${initialUrl.hash}`,\n )\n }\n\n return url\n })\n}\n","import {fromPromise} from 'xstate'\n\n/** @internal */\nexport const resolveUrlFromPreviewSearchParamActor = fromPromise<\n URL,\n {initialUrl: URL; previewSearchParam: string | null | undefined; allowOrigins: URLPattern[]}\n>(async ({input}) => {\n const {previewSearchParam, initialUrl, allowOrigins} = input\n\n /**\n * If the preview search param is falsy we can skip\n */\n if (!previewSearchParam) {\n return initialUrl\n }\n\n /**\n * Validate the previewSearchParam\n */\n try {\n const previewSearchParamUrl = new URL(previewSearchParam, initialUrl.origin)\n if (!allowOrigins.some((pattern) => pattern.test(previewSearchParamUrl.origin))) {\n return initialUrl\n }\n return previewSearchParamUrl\n } catch {\n return initialUrl\n }\n})\n","import {\n schemaIdSingleton,\n schemaType,\n schemaTypeSingleton,\n} from '@sanity/preview-url-secret/constants'\nimport {type SanityDocument} from '@sanity/types'\nimport {uuid} from '@sanity/uuid'\nimport {throwError} from 'rxjs'\nimport {type DocumentValuePermission, type PermissionCheckResult} from 'sanity'\nimport {type ActorRefFrom, assign, fromObservable, fromPromise, log, setup} from 'xstate'\n\nimport {type ResolvePreviewModeUrlInput} from '../actors/resolve-preview-mode-url'\nimport {resolveUrlFromPreviewSearchParamActor} from '../actors/resolve-url-from-preview-search-param'\nimport {type PreviewUrlPreviewMode} from '../types'\n\ninterface Context {\n initialUrl: URL | null\n previewUrl: URL | null\n allowOrigins: URLPattern[] | null\n error: Error | null\n previewSearchParam: string | null\n previewUrlSecret: {secret: string; expiresAt: Date} | null\n previewAccessSharingCreatePermission: PermissionCheckResult | null\n previewAccessSharingReadPermission: PermissionCheckResult | null\n previewAccessSharingUpdatePermission: PermissionCheckResult | null\n previewUrlSecretPermission: PermissionCheckResult | null\n previewMode: PreviewUrlPreviewMode | null\n}\n\ntype SetPreviewSearchParamEvent = {\n type: 'set preview search param'\n previewSearchParam: string | null\n}\ntype Event = SetPreviewSearchParamEvent\n\ntype Input = Omit<SetPreviewSearchParamEvent, 'type'>\n\nexport interface CheckPermissionInput {\n checkPermissionName: DocumentValuePermission\n document: Partial<SanityDocument> | null\n}\n\n/**\n * Used for permissions checks\n */\nexport const shareAccessSingletonDocument = {_id: schemaIdSingleton, _type: schemaTypeSingleton}\nexport const previewUrlSecretDocument = {\n _id: `drafts.${uuid()}`,\n _type: schemaType,\n}\n\nexport const previewUrlMachine = setup({\n types: {} as {\n context: Context\n events: Event\n input: Input\n tags: 'busy' | 'error'\n },\n actions: {\n 'notify preview will likely fail': log(\n `Missing permissions to create preview secret, or read shared preview secret. Preview will likely fail loading.`,\n ),\n 'assign preview search param': assign({\n previewSearchParam: (_, params: {previewSearchParam: string | null}) =>\n params.previewSearchParam,\n }),\n 'assign error': assign({\n error: (_, params: {message: string; error: unknown}) => {\n return params.error instanceof Error\n ? params.error\n : new Error(params.message, {cause: params.error})\n },\n }),\n },\n actors: {\n 'check permission': fromObservable<PermissionCheckResult, CheckPermissionInput>(() =>\n throwError(\n () =>\n new Error(\n `The 'check permission' actor is not implemented. Add it to previewUrlMachine.provide({actors: {'check permission': fromObservable(({input}: {input: CheckPermissionInput}) => ...)}})`,\n ),\n ),\n ),\n 'resolve initial url': fromPromise<URL, {previewSearchParam: string | null}>(() =>\n Promise.reject(\n new Error(\n `The 'resolve initial url' actor is not implemented. Add it to previewUrlMachine.provide({actors: {'resolve initial url': fromPromise(...)}})`,\n ),\n ),\n ),\n 'resolve allow patterns': fromPromise<URLPattern[], {initialUrl: URL}>(() =>\n Promise.reject(\n new Error(\n `The 'resolve allow patterns' actor is not implemented. Add it to previewUrlMachine.provide({actors: {'resolve allow pattern': fromPromise(...)}})`,\n ),\n ),\n ),\n 'resolve url from preview search param': resolveUrlFromPreviewSearchParamActor,\n 'resolve preview mode': fromPromise<PreviewUrlPreviewMode | false, {targetOrigin: string}>(() =>\n Promise.reject(\n new Error(\n `The 'resolve preview mode' actor is not implemented. Add it to previewUrlMachine.provide({actors: {'resolve preview mode': fromPromise(...)}})`,\n ),\n ),\n ),\n 'create preview secret': fromPromise<{\n secret: string\n expiresAt: Date\n }>(async () =>\n Promise.reject(\n new Error(\n `The 'create preview secret' actor is not implemented. Add it to previewUrlMachine.provide({actors: {'create preview secret': fromPromise(...)}})`,\n ),\n ),\n ),\n 'read shared preview secret': fromPromise<string | null>(async () =>\n Promise.reject(\n new Error(\n `The 'read shared preview secret' actor is not implemented. Add it to previewUrlMachine.provide({actors: {'read shared preview secret': fromPromise(...)}})`,\n ),\n ),\n ),\n 'resolve preview mode url': fromPromise<URL, ResolvePreviewModeUrlInput>(() =>\n Promise.reject(\n new Error(\n `The 'resolve preview mode url' actor is not implemented. Add it to previewUrlMachine.provide({actors: {'resolve preview mode url': fromPromise(...)}})`,\n ),\n ),\n ),\n },\n guards: {\n 'has checked permissions': ({context}) => {\n return Boolean(\n context.previewAccessSharingCreatePermission &&\n context.previewAccessSharingReadPermission &&\n context.previewAccessSharingUpdatePermission &&\n context.previewUrlSecretPermission,\n )\n },\n 'search param has new origin': ({context, event}) => {\n if (!context.previewUrl || !event.previewSearchParam) {\n return false\n }\n try {\n const previewSearchParamUrl = new URL(event.previewSearchParam, context.previewUrl)\n return context.previewUrl.origin !== previewSearchParamUrl.origin\n } catch {\n return false\n }\n },\n 'can create preview secret': ({context}) => {\n return context.previewUrlSecretPermission?.granted === true\n },\n\n 'has preview mode with created secret': ({context}, params: PreviewUrlPreviewMode | false) => {\n if (params === false) {\n return false\n }\n return context.previewUrlSecretPermission?.granted === true\n },\n 'has preview mode with share access': ({context}, params: PreviewUrlPreviewMode | false) => {\n if (params === false) {\n return false\n }\n return context.previewAccessSharingReadPermission?.granted === true\n },\n 'has preview mode without permissions': ({context}, params: PreviewUrlPreviewMode | false) => {\n if (params === false) {\n return false\n }\n return (\n context.previewAccessSharingReadPermission?.granted === false &&\n context.previewUrlSecretPermission?.granted === false\n )\n },\n },\n delays: {\n expiredSecret: ({context}) => {\n if (!context.previewUrlSecret?.expiresAt) {\n return 0\n }\n const now = Date.now()\n const expiresAt = context.previewUrlSecret.expiresAt.getTime()\n return Math.max(expiresAt - now, 0)\n },\n },\n}).createMachine({\n // oxlint-disable-next-line tsdoc/syntax\n /** @xstate-layout N4IgpgJg5mDOIC5QAUBOYBuBLMB3ABAKoBKAMgMRiqoD2qAdAA4A2AhgC4BmdAtvWphwESpBFgB2GGgGMOWGuIDaABgC6K1YlCMasLO3nitIAB6IArAA56AZgCcAdkcBGS8vMAmO+YBszgDQgAJ6Izs4+9M7KACzKztGWHg4OPubmAL7pgQLYeERklNR0TGxcvPzoucJkYpIycgqKzupqxjp6BgrGZggAtM520ZHRdjZjNjFe7oEhCGERUbHxicmpGVkgOUL5FFS0DCwc3Kh8W3kitVKynUoeLZpIIO36ht2IvV62Hl7elmE2lh83xmoXCkRicQSSRS5gSmWylW2IkK+xKR3KZ2qogkVwaShs9zauheXUePV6gPo3jSUyi-xBczBi0hKxh5mc8M2iPOBVgYHY+EY3IIfNYqGkAAtBWLWDwNESOq8yaCbM56A4bB5fGllHYvD4fAz4h56CNfG5LKqHMpLdFOZidvRJWBpABrCRQZBUHhYWB6BSwcjyx7PG5vPrs5TqjWqyyjTXRDwMjwxei68J2ZQ2nyWXN2jYOkT0dCwGjMbDiKAASXEL1YzEIqGY5AgCjA9BxNFd7cLZGLcDLFertYM9cbzEu9RuGmD2mJYeVfRGdipyh86Yc0XiE3MDK3JssIwcrmtPjGSXzCMEPNI-dL5Y9NbrDabKOKhzKJwq16xd8Hj5HLAxybSdrkMGdWhDeclVAclN3odlzBsKwBjSSxjwcZM7DVeJ1w8P4xmidk7HtYVHRLf9KwAQWYZgaFwZAOHYKhxEDVtxHbTtu2-KpyIHB9qNo+jGPYZjUFY0C8Qgh450VUlYPedkHHoHwnDSZDVOiGwfGiBlUhXXwwjsQYtKSYzSJ-Pj7yHGi6IYpiWMDPZ31KY5TjIosKIEqBbOEhzxNgSTpzUWcnmg+TTHePV6Hw3MYgzaItJ0hlYRNTNkLiHxBl1GILN4zz+KHccADFaB4TEAGUwDFSVGNQWUWzbDs6m43tby8oqm1KmhyuFKqaolOrZSC8CQsg2SSSMRdel8ZSNUTdlcw8M07AZQZrDXdaDRtUZnHWK98r7DqPRKsrKuq8VBplHg3wOVyMQ8o7CpOrqzr6i7auukbGjGmSwrkqaFL6MJlLiWFlC1EGty0hknAiXVVPMRx12UJwOQLR72ueytMQAWRoCAwEajjmqkVrMb-by8YJsBvqUX6FUm8Nem2+hbWPUZErGTcjS8NUJg8AE9T1ZwHHwvKkSe6yPWpwnic4lqewp46ceFfHCbpmdmkZhcgZmyxzFsDmTPcXUUiNRKDy3ZQJlVLSkYlm9KaHWWifYhWyaVyyCul1Wf3V2nOzAn71DuHWYMivovGsBxPCy74beWaJDWCUJzBSFTrUcQYdMzIFHd-FXPTVmn5dJrsvcOrHfeL-2ac1kKCXDiLyWcNKJiiHM-BtONwgtnMEM1DVNwhhI7B8AurMo2uqgD260U-dzval6fXYbwkoIB5moijLLkm5tvYRBo1nGQtND11ZaIdzEiMeX6vV5LuW+QFIVLNFS7pXquVxv+pnF1FtYP4OY7AG3QohJMqcEDeGUq4NwYQBhLEnkWWAABXaQ0g4CBhfoKMiH9JRf1lKFUMEceiizVPA0+7gtQQy8LzXU6obaJTFtEJwHhXDIL7G-WepccHcO2PgqUjBrrEPCoDSOFI3C2AGHtQ8sIiJJGTILZS7JRaeGSKw7CnDbz8LwAHJ06AOBgHOtIdA7Ay5cUrpLHRT92ymOqsxExZj16iK3gAqI6oaQ6QtE4YylhkynzmkCBGNgNR7VvgdaxTBbEGIccY969jzHOTuuiL8bVol10JrEoxTj+QuN-iQlu7xwjKX1P8bSTC0hGhcKaBIOZAQGkBKE7RGSeFZMMRACqEoxRgCohgrBFjFY8Sibo3A+iOldJ6X0zBfp8l-UKeIshjgqTGTiPYPaGotS7igd8QWtgsp6iQnFOEd8q6tKEOM6qnTunoGmQM5JC83LDKdqMy5rBrlTP6bMoOUkGab3-kDU+ERVEpnsEjDRVSdljBXKeQY3h5gOBaa8mmzt4k-nHIMz2zzfzIvaYVNFVRxxzObosxAfg1Q2jSOERIh5kIBNGKaNZ2lvjhFhEimJHUCVCAxQ8j8Tz0m4vbJyzERKfnBQ3hNXWkdyWeJsCMVhqNsK6mTO4Q2Q9DysLCEhDw7LMntjQV8wMJhYDsCMfQVgnAxIAAowAmEYFgdAnSXRmIAJTkAFTEg1MzYCuIBZHKYKlUiqWwrCMJkDZgDAYceRMfwUisPYZYTIGxxA03gI8NqJLmZ6msKqENcjErqIZL0cethvDGXLew9hiYWnOjdDLb0vp-SsUzdNcwEMEJ7WTohDMfgU4RpTCpUJnhYrHghuEFpRcnyjhfMwFtet2Q2FNOwsWZarBan8TsuMkRvhIzPJGDwmkWnJLnf6g0aZl0mQTURDdsxYiGwwsRIEgwEwTuxj5IS9lRKORPeSJCOF4XgrUZqbZsxwZszcJtbC4RUg2FfTXU6PVzoDSGjwH9ik-gxRGG4NtxkkZblhgyxIhFQG5lSPEODj89VoYjKqGKURkij0zImXSUCwiozZuDLUCQQY6tOVEr1WDqMsxNCkP4RFPBZj+I4I0qoRMODjIlceBzkK6raWAIT7DDZlNPhUuVkKI0pEXbHBISF1yAiIqpi5KL7E5ISWYoTna2b6Qg+DcFN7EAphLdpdOWVoPJ0RXxl5HKrmTNuYahzaQviaQPVERa8mlGeBUnnQyDStSwcCzi4L1kuV4HHNR4DCFdRaVVFSzcZ4VVIVsDEVhZ5QnWlYZZvRKLj3-KlT0FIKjVRZghkCXwqkjQGzVFxvOMisoWYy46QV9ABN+mo3mFZZ427lp032jzVa2bJGtCUtciak1AA */\n id: 'Preview URL',\n context: ({input}) => ({\n initialUrl: null,\n previewUrl: null,\n error: null,\n allowOrigins: null,\n previewSearchParam: input.previewSearchParam,\n previewUrlSecret: null,\n previewAccessSharingCreatePermission: null,\n previewAccessSharingReadPermission: null,\n previewAccessSharingUpdatePermission: null,\n previewUrlSecretPermission: null,\n previewMode: null,\n }),\n\n invoke: [\n {\n src: 'check permission',\n input: () => ({checkPermissionName: 'read', document: shareAccessSingletonDocument}),\n onError: {\n target: '.error',\n actions: {\n type: 'assign error',\n params: ({event}) => ({\n message: 'Failed to check permission',\n error: event.error,\n }),\n },\n },\n onSnapshot: {\n actions: assign({\n previewAccessSharingReadPermission: ({event}) => event.snapshot.context ?? null,\n }),\n },\n },\n {\n src: 'check permission',\n input: () => ({checkPermissionName: 'create', document: shareAccessSingletonDocument}),\n onError: {\n target: '.error',\n actions: {\n type: 'assign error',\n params: ({event}) => ({\n message: 'Failed to check permission',\n error: event.error,\n }),\n },\n },\n onSnapshot: {\n actions: assign({\n previewAccessSharingCreatePermission: ({event}) => event.snapshot.context ?? null,\n }),\n },\n },\n {\n src: 'check permission',\n input: () => ({checkPermissionName: 'update', document: shareAccessSingletonDocument}),\n onError: {\n target: '.error',\n actions: {\n type: 'assign error',\n params: ({event}) => ({\n message: 'Failed to check permission',\n error: event.error,\n }),\n },\n },\n onSnapshot: {\n actions: assign({\n previewAccessSharingUpdatePermission: ({event}) => event.snapshot.context ?? null,\n }),\n },\n },\n {\n src: 'check permission',\n input: () => ({checkPermissionName: 'create', document: previewUrlSecretDocument}),\n onError: {\n target: '.error',\n actions: {\n type: 'assign error',\n params: ({event}) => ({\n message: 'Failed to check permission',\n error: event.error,\n }),\n },\n },\n onSnapshot: {\n actions: assign({\n previewUrlSecretPermission: ({event}) => event.snapshot.context ?? null,\n }),\n },\n },\n ],\n\n on: {\n 'set preview search param': {\n actions: {\n type: 'assign preview search param',\n params: ({event}) => ({previewSearchParam: event.previewSearchParam}),\n },\n },\n },\n\n states: {\n checkingPermissions: {\n always: {\n guard: 'has checked permissions',\n target: 'resolvingInitialUrl',\n },\n tags: 'busy',\n },\n\n resolvingInitialUrl: {\n invoke: {\n src: 'resolve initial url',\n input: ({context}) => ({previewSearchParam: context.previewSearchParam}),\n onError: {\n target: 'error',\n actions: {\n type: 'assign error',\n params: ({event}) => ({\n message: 'Failed to resolve initial url',\n error: event.error,\n }),\n },\n },\n onDone: {\n target: 'resolvingAllowPatterns',\n actions: assign({initialUrl: ({event}) => event.output}),\n },\n },\n\n tags: 'busy',\n },\n\n error: {\n type: 'final',\n tags: 'error',\n },\n\n resolvingAllowPatterns: {\n invoke: {\n src: 'resolve allow patterns',\n input: ({context}) => ({initialUrl: context.initialUrl!}),\n onError: {\n target: 'error',\n actions: {\n type: 'assign error',\n params: ({event}) => ({\n message: 'Failed to resolve preview url allow patterns',\n error: event.error,\n }),\n },\n },\n onDone: {\n target: 'resolvingUrlFromPreviewSearchParam',\n actions: assign({allowOrigins: ({event}) => event.output}),\n },\n },\n tags: ['busy'],\n },\n\n resolvingUrlFromPreviewSearchParam: {\n id: 'loop',\n invoke: {\n src: 'resolve url from preview search param',\n input: ({context}) => ({\n initialUrl: context.initialUrl!,\n allowOrigins: context.allowOrigins!,\n previewSearchParam: context.previewSearchParam,\n }),\n onError: {\n target: 'error',\n actions: {\n type: 'assign error',\n params: ({event}) => ({\n message: 'Failed to resolve preview url from search param',\n error: event.error,\n }),\n },\n },\n onDone: {\n target: 'resolvingPreviewMode',\n actions: assign({initialUrl: ({event}) => event.output}),\n },\n },\n tags: ['busy'],\n },\n\n resolvingPreviewMode: {\n on: {\n 'set preview search param': {\n guard: 'search param has new origin',\n actions: {\n type: 'assign preview search param',\n params: ({event}) => ({previewSearchParam: event.previewSearchParam}),\n },\n target: '#loop',\n reenter: true,\n },\n },\n invoke: {\n src: 'resolve preview mode',\n input: ({context}) => ({targetOrigin: context.initialUrl!.origin}),\n onError: {\n target: 'error',\n actions: {\n type: 'assign error',\n params: ({event}) => ({\n message: 'Failed to resolve preview url allow patterns',\n error: event.error,\n }),\n },\n },\n onDone: [\n {\n guard: {\n type: 'has preview mode with created secret',\n params: ({event}) => event.output,\n },\n actions: assign({\n previewMode: ({event}) => event.output as unknown as PreviewUrlPreviewMode,\n }),\n target: 'previewMode.createPreviewSecret',\n },\n {\n guard: {\n type: 'has preview mode with share access',\n params: ({event}) => event.output,\n },\n actions: assign({\n previewMode: ({event}) => event.output as unknown as PreviewUrlPreviewMode,\n }),\n target: 'previewMode.readShareAccess',\n },\n {\n guard: {\n type: 'has preview mode without permissions',\n params: ({event}) => event.output,\n },\n actions: [\n assign({\n previewUrl: ({context}) => context.initialUrl,\n }),\n 'notify preview will likely fail',\n ],\n target: 'success',\n },\n {\n actions: assign({\n previewUrl: ({context}) => context.initialUrl,\n }),\n target: 'success',\n },\n ],\n },\n tags: ['busy'],\n },\n\n success: {\n on: {\n 'set preview search param': {\n guard: 'search param has new origin',\n actions: {\n type: 'assign preview search param',\n params: ({event}) => ({previewSearchParam: event.previewSearchParam}),\n },\n target: '#loop',\n reenter: true,\n },\n },\n },\n\n previewMode: {\n on: {\n 'set preview search param': {\n guard: 'search param has new origin',\n actions: {\n type: 'assign preview search param',\n params: ({event}) => ({previewSearchParam: event.previewSearchParam}),\n },\n target: '#loop',\n reenter: true,\n },\n },\n\n states: {\n createPreviewSecret: {\n invoke: {\n src: 'create preview secret',\n onError: {\n target: 'error',\n actions: {\n type: 'assign error',\n params: ({event}) => ({\n message: 'Failed to create preview secret',\n error: event.error,\n }),\n },\n },\n onDone: {\n target: 'resolvePreviewUrl',\n actions: assign({previewUrlSecret: ({event}) => event.output}),\n },\n },\n tags: ['busy'],\n },\n readShareAccess: {\n invoke: {\n src: 'read shared preview secret',\n onError: {\n target: 'error',\n actions: {\n type: 'assign error',\n params: ({event}) => ({\n message: 'Failed to read shared preview secret',\n error: event.error,\n }),\n },\n },\n onDone: {\n target: 'resolvePreviewUrl',\n actions: assign({\n previewUrlSecret: ({event}) => ({\n secret: event.output!,\n expiresAt: new Date(Date.now() + 1000 * 60 * 60 * 60 * 24),\n }),\n }),\n },\n },\n tags: ['busy'],\n },\n resolvePreviewUrl: {\n invoke: {\n src: 'resolve preview mode url',\n input: ({context}) => ({\n initialUrl: context.initialUrl!,\n resolvedPreviewMode: context.previewMode!,\n previewUrlSecret: context.previewUrlSecret!.secret,\n }),\n onError: {\n target: 'error',\n actions: {\n type: 'assign error',\n params: ({event}) => ({\n message: 'Failed to resolve preview url',\n error: event.error,\n }),\n },\n },\n onDone: {\n target: 'success',\n actions: assign({previewUrl: ({event}) => event.output}),\n },\n },\n tags: ['busy'],\n },\n error: {\n type: 'final',\n tags: ['error'],\n },\n success: {\n after: {\n expiredSecret: {\n guard: 'can create preview secret',\n actions: assign({previewUrlSecret: null}),\n target: 'createPreviewSecret',\n reenter: true,\n },\n },\n },\n },\n initial: 'readShareAccess',\n },\n },\n\n initial: 'checkingPermissions',\n})\nexport type PreviewUrlRef = ActorRefFrom<typeof previewUrlMachine>\n","import {useToast} from '@sanity/ui'\nimport {useActorRef, useSelector} from '@xstate/react'\nimport {useEffect} from 'react'\nimport {useActiveWorkspace, useClient, useCurrentUser, useGrantsStore, useTranslation} from 'sanity'\nimport {useRouter} from 'sanity/router'\nimport {fromObservable} from 'xstate'\n\nimport {defineCreatePreviewSecretActor} from './actors/create-preview-secret'\nimport {defineReadSharedSecretActor} from './actors/read-shared-secret'\nimport {defineResolveAllowPatternsActor} from './actors/resolve-allow-patterns'\nimport {defineResolveInitialUrlActor} from './actors/resolve-initial-url'\nimport {defineResolvePreviewModeActor} from './actors/resolve-preview-mode'\nimport {defineResolvePreviewModeUrlActor} from './actors/resolve-preview-mode-url'\nimport {API_VERSION} from './constants'\nimport {presentationLocaleNamespace} from './i18n'\nimport {previewUrlMachine, type PreviewUrlRef} from './machines/preview-url'\nimport {type PreviewUrlAllowOption, type PreviewUrlOption} from './types'\nimport {usePresentationPerspective} from './usePresentationPerspective'\nimport {usePresentationVariant} from './usePresentationVariant'\n\nexport function usePreviewUrlActorRef(\n previewUrlOption: PreviewUrlOption | undefined,\n allowOption: PreviewUrlAllowOption | undefined,\n): PreviewUrlRef {\n const grantsStore = useGrantsStore()\n const client = useClient({apiVersion: API_VERSION})\n const currentUser = useCurrentUser()\n const currentUserId = currentUser?.id\n const workspace = useActiveWorkspace()\n const studioBasePath = workspace?.activeWorkspace?.basePath || '/'\n const router = useRouter()\n const routerSearchParams = new URLSearchParams(router.state._searchParams)\n const previewSearchParam = routerSearchParams.get('preview')\n const {push: pushToast} = useToast()\n const {t} = useTranslation(presentationLocaleNamespace)\n\n // TODO: Do we need to pass the scheduled draft perspective here?\n // Scheduled draft are a \"local\" perspective which applies only when the user is in the document pane and has selected the scheduled draft.\n const perspective = usePresentationPerspective({scheduledDraft: undefined})\n const variant = usePresentationVariant()\n\n const actorRef = useActorRef(\n previewUrlMachine.provide({\n actions: {\n 'notify preview will likely fail': () =>\n pushToast({\n id: 'preview-url-secret.missing-grants',\n closable: true,\n status: 'error',\n duration: Infinity,\n title: t('preview-url-secret.missing-grants'),\n }),\n },\n actors: {\n 'create preview secret': defineCreatePreviewSecretActor({client, currentUserId}),\n 'read shared preview secret': defineReadSharedSecretActor({client}),\n 'resolve allow patterns': defineResolveAllowPatternsActor({\n client,\n allowOption,\n }),\n 'resolve initial url': defineResolveInitialUrlActor({\n client,\n studioBasePath,\n previewUrlOption,\n perspective,\n variant,\n }),\n 'resolve preview mode': defineResolvePreviewModeActor({\n client,\n previewUrlOption,\n }),\n 'resolve preview mode url': defineResolvePreviewModeUrlActor({\n client,\n studioBasePath,\n previewUrlOption,\n perspective,\n variant,\n }),\n 'check permission': fromObservable(({input}) =>\n grantsStore.checkDocumentPermission(input.checkPermissionName, input.document),\n ),\n },\n }),\n {input: {previewSearchParam}},\n )\n\n /**\n * Sync changes to router state for the preview search param\n */\n useEffect(() => {\n actorRef.send({type: 'set preview search param', previewSearchParam})\n }, [actorRef, previewSearchParam])\n\n const error = useSelector(actorRef, (state) =>\n state.status === 'error' ? state.error : state.hasTag('error') ? state.context.error : null,\n )\n\n // Propagate the error to the nearest error boundary\n if (error) throw error\n\n return actorRef\n}\n","import {useToast} from '@sanity/ui'\nimport {useSelector} from '@xstate/react'\nimport {useEffect} from 'react'\nimport {Translate, useTranslation} from 'sanity'\nimport {useRouter} from 'sanity/router'\n\nimport {presentationLocaleNamespace} from './i18n'\nimport {type PreviewUrlRef} from './machines/preview-url'\n\nexport function useReportInvalidPreviewSearchParam(previewUrlRef: PreviewUrlRef): void {\n const {t} = useTranslation(presentationLocaleNamespace)\n const {push: pushToast} = useToast()\n const router = useRouter()\n const routerSearchParams = new URLSearchParams(router.state._searchParams)\n const previewSearchParam = routerSearchParams.get('preview')\n\n const allowOrigins = useSelector(previewUrlRef, (state) => state.context.allowOrigins)\n const currentOrigin = useSelector(previewUrlRef, (state) => state.context.previewUrl?.origin)\n useEffect(() => {\n if (!Array.isArray(allowOrigins) || !previewSearchParam || !currentOrigin) return\n const nextOrigin = new URL(previewSearchParam, currentOrigin).origin\n if (!allowOrigins.some((pattern) => pattern.test(nextOrigin))) {\n pushToast({\n closable: true,\n id: `presentation-iframe-origin-mismatch-${nextOrigin}`,\n status: 'error',\n duration: Infinity,\n title: t('preview-search-param.configuration.error.title'),\n description: (\n <Translate\n t={t}\n i18nKey=\"preview-search-param.configuration.error.description\"\n components={{Code: 'code'}}\n values={{\n previewSearchParam,\n blockedOrigin: nextOrigin,\n }}\n />\n ),\n })\n }\n }, [allowOrigins, currentOrigin, previewSearchParam, pushToast, t])\n}\n","import {subscribeToVercelProtectionBypass} from '@sanity/preview-url-secret/toggle-vercel-protection-bypass'\nimport {useEffect, useReducer, useState} from 'react'\nimport {useClient} from 'sanity'\n\nimport {API_VERSION} from './constants'\n\ntype VercelProtectionBypassReadyState = 'loading' | 'ready'\n\nexport function useVercelBypassSecret(): [\n vercelProtectionBypassSecret: string | null,\n vercelProtectionBypassReadyState: VercelProtectionBypassReadyState,\n] {\n const client = useClient({apiVersion: API_VERSION})\n const [vercelProtectionBypassReadyState, ready] = useReducer(\n () => 'ready' as 'ready' | 'loading',\n 'loading',\n )\n const [vercelProtectionBypassSecret, setVercelProtectionBypassSecret] = useState<string | null>(\n null,\n )\n\n useEffect(() => {\n const unsubscribe = subscribeToVercelProtectionBypass(client, (secret) => {\n setVercelProtectionBypassSecret(secret)\n ready()\n })\n return () => unsubscribe()\n }, [client])\n\n return [vercelProtectionBypassSecret, vercelProtectionBypassReadyState]\n}\n","import {useSelector} from '@xstate/react'\nimport {type Tool} from 'sanity'\n\nimport {PresentationSpinner} from './PresentationSpinner'\nimport PresentationTool from './PresentationTool'\nimport {type PresentationPluginOptions} from './types'\nimport {usePreviewUrlActorRef} from './usePreviewUrlActorRef'\nimport {useReportInvalidPreviewSearchParam} from './useReportInvalidPreviewSearchParam'\nimport {useVercelBypassSecret} from './useVercelBypassSecret'\n\nexport default function PresentationToolGrantsCheck({\n tool,\n}: {\n tool: Tool<PresentationPluginOptions>\n}): React.JSX.Element {\n const previewUrlRef = usePreviewUrlActorRef(tool.options?.previewUrl, tool.options?.allowOrigins)\n useReportInvalidPreviewSearchParam(previewUrlRef)\n\n const previewAccessSharingCreatePermission = useSelector(\n previewUrlRef,\n (state) => state.context.previewAccessSharingCreatePermission,\n )\n const previewAccessSharingUpdatePermission = useSelector(\n previewUrlRef,\n (state) => state.context.previewAccessSharingUpdatePermission,\n )\n const previewAccessSharingReadPermission = useSelector(\n previewUrlRef,\n (state) => state.context.previewAccessSharingReadPermission,\n )\n const previewUrlSecretPermission = useSelector(\n previewUrlRef,\n (state) => state.context.previewUrlSecretPermission,\n )\n const url = useSelector(previewUrlRef, (state) => state.context.previewUrl)\n // @TODO the vercel protection bypass can be moved to the iframe level\n const [vercelProtectionBypass, vercelProtectionBypassReadyState] = useVercelBypassSecret()\n\n if (\n !url ||\n vercelProtectionBypassReadyState === 'loading' ||\n !previewAccessSharingCreatePermission ||\n typeof previewAccessSharingCreatePermission.granted === 'undefined' ||\n !previewAccessSharingUpdatePermission ||\n typeof previewAccessSharingUpdatePermission.granted === 'undefined' ||\n !previewUrlSecretPermission ||\n !previewAccessSharingReadPermission ||\n typeof previewAccessSharingReadPermission.granted === 'undefined' ||\n typeof previewUrlSecretPermission.granted === 'undefined'\n ) {\n return <PresentationSpinner />\n }\n\n return (\n <PresentationTool\n tool={tool}\n initialPreviewUrl={url}\n vercelProtectionBypass={vercelProtectionBypass}\n canToggleSharePreviewAccess={\n Boolean(previewAccessSharingCreatePermission?.granted) &&\n Boolean(previewAccessSharingUpdatePermission?.granted)\n }\n canUseSharedPreviewAccess={Boolean(previewAccessSharingReadPermission?.granted)}\n previewUrlRef={previewUrlRef}\n />\n )\n}\n"],"x_google_ignoreList":[41,42],"mappings":"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"}
|