sanity 3.26.2-canary.52 → 3.26.2-canary.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/lib/_chunks/{_internal-2CJ5wSKF.js → _internal-6Pl2wJGj.js} +422 -201
  2. package/lib/_chunks/_internal-6Pl2wJGj.js.map +1 -0
  3. package/lib/_chunks/{_internal-79flWvL8.js → _internal-yQwMw2ht.js} +419 -203
  4. package/lib/_chunks/_internal-yQwMw2ht.js.map +1 -0
  5. package/lib/_chunks/{_internalBrowser-QAFz3SKp.js → _internalBrowser-HWvRXvlU.js} +22 -22
  6. package/lib/_chunks/_internalBrowser-HWvRXvlU.js.map +1 -0
  7. package/lib/_chunks/{_internalBrowser-Y0qKZ-GA.js → _internalBrowser-TWIhitgI.js} +22 -22
  8. package/lib/_chunks/_internalBrowser-TWIhitgI.js.map +1 -0
  9. package/lib/_chunks/{deployApiAction-SHteit1G.js → deployApiAction-TZcCtXan.js} +2 -2
  10. package/lib/_chunks/{deployApiAction-SHteit1G.js.map → deployApiAction-TZcCtXan.js.map} +1 -1
  11. package/lib/_chunks/{deployApiAction-bRyJpGOS.js → deployApiAction-rVL67VYW.js} +2 -2
  12. package/lib/_chunks/{deployApiAction-bRyJpGOS.js.map → deployApiAction-rVL67VYW.js.map} +1 -1
  13. package/lib/_chunks/{getStudioConfig-JSkc4GE0.js → getStudioWorkspaces-HX9o9-hl.js} +20 -4
  14. package/lib/_chunks/getStudioWorkspaces-HX9o9-hl.js.map +1 -0
  15. package/lib/_chunks/{index-EO9iRnDS.js → index-2kSxso3r.js} +2 -2
  16. package/lib/_chunks/{index-EO9iRnDS.js.map → index-2kSxso3r.js.map} +1 -1
  17. package/lib/_chunks/{index-FQCCBbuC.js → index-751ZLh3z.js} +6 -6
  18. package/lib/_chunks/{index-FQCCBbuC.js.map → index-751ZLh3z.js.map} +1 -1
  19. package/lib/_chunks/{index-VNSHvpZr.js → index-HcF369ru.js} +2 -2
  20. package/lib/_chunks/{index-VNSHvpZr.js.map → index-HcF369ru.js.map} +1 -1
  21. package/lib/_chunks/{index-Xs2xnLUV.js → index-MAAxgUnl.js} +6 -6
  22. package/lib/_chunks/{index-Xs2xnLUV.js.map → index-MAAxgUnl.js.map} +1 -1
  23. package/lib/_chunks/{index-AaK2CidU.js → index-NweJPfGb.js} +2 -2
  24. package/lib/_chunks/{index-AaK2CidU.js.map → index-NweJPfGb.js.map} +1 -1
  25. package/lib/_chunks/{index-R7R6AyHF.js → index-zobOqko7.js} +2 -2
  26. package/lib/_chunks/{index-R7R6AyHF.js.map → index-zobOqko7.js.map} +1 -1
  27. package/lib/_chunks/{listApisAction-6lGkFZrU.js → listApisAction-IvKV4iAd.js} +2 -2
  28. package/lib/_chunks/{listApisAction-6lGkFZrU.js.map → listApisAction-IvKV4iAd.js.map} +1 -1
  29. package/lib/_chunks/{listApisAction-CqCkBz-F.js → listApisAction-oca2uykY.js} +2 -2
  30. package/lib/_chunks/{listApisAction-CqCkBz-F.js.map → listApisAction-oca2uykY.js.map} +1 -1
  31. package/lib/_chunks/pane-9HEeITpx.js +5 -0
  32. package/lib/_chunks/pane-9HEeITpx.js.map +1 -0
  33. package/lib/_chunks/pane-QyVrOLqS.js +2 -0
  34. package/lib/_chunks/pane-QyVrOLqS.js.map +1 -0
  35. package/lib/_chunks/pane-TXXUUvdc.js +5 -0
  36. package/lib/_chunks/pane-TXXUUvdc.js.map +1 -0
  37. package/lib/_chunks/pane-cQxQtBcL.js +2 -0
  38. package/lib/_chunks/pane-cQxQtBcL.js.map +1 -0
  39. package/lib/_chunks/{structure-qJLnDJXq.js → structure-iqIDIH7-.js} +3 -3
  40. package/lib/_chunks/structure-iqIDIH7-.js.map +1 -0
  41. package/lib/_chunks/{structure-588eAwLd.js → structure-o_wMXC_G.js} +3 -3
  42. package/lib/_chunks/structure-o_wMXC_G.js.map +1 -0
  43. package/lib/_chunks/validateAction-4Jl_y_iB.js +154 -0
  44. package/lib/_chunks/validateAction-4Jl_y_iB.js.map +1 -0
  45. package/lib/_chunks/{validateAction-GUvMkXiN.js → validateAction-6q8Sqwaz.js} +25 -73
  46. package/lib/_chunks/validateAction-6q8Sqwaz.js.map +1 -0
  47. package/lib/_chunks/validateAction-Bz67ApRP.js +143 -0
  48. package/lib/_chunks/validateAction-Bz67ApRP.js.map +1 -0
  49. package/lib/_chunks/{validateAction-NIrqtyYJ.js → validateAction-shi462sq.js} +27 -75
  50. package/lib/_chunks/validateAction-shi462sq.js.map +1 -0
  51. package/lib/_internal/cli/threads/getGraphQLAPIs.js +2 -2
  52. package/lib/_internal/cli/threads/getGraphQLAPIs.js.map +1 -1
  53. package/lib/_internal/cli/threads/validateDocuments.js +5 -3
  54. package/lib/_internal/cli/threads/validateDocuments.js.map +1 -1
  55. package/lib/_internal/cli/threads/validateSchema.js +55 -0
  56. package/lib/_internal/cli/threads/validateSchema.js.map +1 -0
  57. package/lib/_internal.esm.js +1 -1
  58. package/lib/_internal.js +1 -1
  59. package/lib/_internalBrowser.esm.js +1 -1
  60. package/lib/_internalBrowser.js +1 -1
  61. package/lib/desk.esm.js +1 -1
  62. package/lib/desk.js +1 -1
  63. package/lib/exports/index.d.ts +25 -0
  64. package/lib/index.cjs.mjs +1 -0
  65. package/lib/index.esm.js +2 -2
  66. package/lib/index.js +2 -1
  67. package/lib/index.js.map +1 -1
  68. package/lib/structure.esm.js +1 -1
  69. package/lib/structure.js +1 -1
  70. package/package.json +15 -15
  71. package/src/_internal/cli/actions/schema/formatSchemaValidation.ts +96 -0
  72. package/src/_internal/cli/actions/schema/validateAction.ts +120 -0
  73. package/src/_internal/cli/actions/validation/reporters/prettyReporter/formatDocumentValidation.ts +17 -95
  74. package/src/_internal/cli/commands/index.ts +2 -0
  75. package/src/_internal/cli/commands/migration/createMigrationCommand.ts +18 -10
  76. package/src/_internal/cli/commands/migration/listMigrationsCommand.ts +34 -31
  77. package/src/_internal/cli/commands/migration/prettyMutationFormatter.ts +214 -0
  78. package/src/_internal/cli/commands/migration/runMigrationCommand.ts +102 -58
  79. package/src/_internal/cli/commands/migration/templates/minimalAdvanced.ts +1 -1
  80. package/src/_internal/cli/commands/migration/templates/minimalSimple.ts +1 -1
  81. package/src/_internal/cli/commands/migration/templates/renameField.ts +3 -3
  82. package/src/_internal/cli/commands/migration/templates/renameType.ts +1 -1
  83. package/src/_internal/cli/commands/migration/templates/stringToPTE.ts +1 -1
  84. package/src/_internal/cli/commands/migration/utils/mutationFormatter.ts +1 -1
  85. package/src/_internal/cli/commands/schema/validateSchemaCommand.ts +35 -0
  86. package/src/_internal/cli/threads/getGraphQLAPIs.ts +2 -2
  87. package/src/_internal/cli/threads/validateDocuments.ts +6 -3
  88. package/src/_internal/cli/threads/validateSchema.ts +73 -0
  89. package/src/_internal/cli/util/{getStudioConfig.ts → getStudioWorkspaces.ts} +30 -8
  90. package/src/_internal/cli/util/tree.ts +110 -0
  91. package/src/core/config/index.ts +1 -0
  92. package/src/core/config/prepareConfig.ts +2 -5
  93. package/src/core/config/resolveSchemaTypes.ts +29 -0
  94. package/src/core/studio/screens/schemaErrors/SchemaProblemGroups.tsx +4 -2
  95. package/src/structure/comments/src/components/pte/blocks/MentionInlineBlock.tsx +13 -6
  96. package/lib/_chunks/_internal-2CJ5wSKF.js.map +0 -1
  97. package/lib/_chunks/_internal-79flWvL8.js.map +0 -1
  98. package/lib/_chunks/_internalBrowser-QAFz3SKp.js.map +0 -1
  99. package/lib/_chunks/_internalBrowser-Y0qKZ-GA.js.map +0 -1
  100. package/lib/_chunks/getStudioConfig-JSkc4GE0.js.map +0 -1
  101. package/lib/_chunks/pane-QmJb9ZTN.js +0 -2
  102. package/lib/_chunks/pane-QmJb9ZTN.js.map +0 -1
  103. package/lib/_chunks/pane-SK7FWNTJ.js +0 -2
  104. package/lib/_chunks/pane-SK7FWNTJ.js.map +0 -1
  105. package/lib/_chunks/pane-y4hpcKe1.js +0 -5
  106. package/lib/_chunks/pane-y4hpcKe1.js.map +0 -1
  107. package/lib/_chunks/pane-yQXBQyyI.js +0 -5
  108. package/lib/_chunks/pane-yQXBQyyI.js.map +0 -1
  109. package/lib/_chunks/structure-588eAwLd.js.map +0 -1
  110. package/lib/_chunks/structure-qJLnDJXq.js.map +0 -1
  111. package/lib/_chunks/validateAction-GUvMkXiN.js.map +0 -1
  112. package/lib/_chunks/validateAction-NIrqtyYJ.js.map +0 -1
@@ -382,7 +382,7 @@ initImmediate:true,// Because we use i18next-react, we do not need to escale val
382
382
  interpolation:{escapeValue:false},// Theoretically, if the framework somehow gets new translations added, re-render.
383
383
  // Note that this shouldn't actually happen, as we only use the Sanity backend
384
384
  react:{bindI18nStore:"added"}};function getI18NextOptions(projectId,sourceName,locales,namespaces){var _a,_b;const preferredLocaleId=getPreferredLocale(projectId,sourceName);const preferredLocale=locales.find(l=>l.id===preferredLocaleId);const lastLocale=locales[locales.length-1];const locale=(_b=(_a=preferredLocale==null?void 0:preferredLocale.id)!=null?_a:lastLocale.id)!=null?_b:defaultOptions.lng;return{...defaultOptions,ns:Array.from(namespaces),// For now, let us load all namespaces. We can optimize later.
385
- lng:locale,supportedLngs:locales.map(def=>def.id)};}function reduceLocaleDefinition(definition){const{bundles,...locale}=definition;return locale;}class ConfigResolutionError extends Error{constructor(_ref443){let{causes,name,type}=_ref443;const messages=causes.filter(Boolean).map(cause=>isRecord$4(cause)&&typeof(cause==null?void 0:cause.message)==="string"?cause.message:String(cause));super("Could not resolve ".concat(type).concat(name?" `".concat(name,"`"):"",":\n").concat(messages.map(message=>" - ".concat(message)).join("\n"),"\n\n"));this.name=name;this.causes=causes;this.type=type;}}class SchemaError extends Error{constructor(schema){super("SchemaError");this.schema=schema;}}var __freeze$N=Object.freeze;var __defProp$N=Object.defineProperty;var __template$N=(cooked,raw)=>__freeze$N(__defProp$N(cooked,"raw",{value:__freeze$N(raw||cooked.slice())}));var _a$N;function pseudoRandomNumber(seed){const hashCode=seed.split("").reduce((prevHash,currVal)=>(prevHash<<5)-prevHash+currVal.charCodeAt(0)|0,0);return Math.abs(hashCode*16807%2147483647)/2147483647;}const SvgText=styled__default.default.text(_a$N||(_a$N=__template$N(["\n font-family: ",";\n font-weight: ",";\n font-size: ","px;\n transform: translateY(1px);\n"])),_ref444=>{let{theme}=_ref444;return theme.sanity.fonts.text.family;},_ref445=>{let{theme}=_ref445;return theme.sanity.fonts.text.weights.medium;},_ref446=>{let{theme}=_ref446;return theme.sanity.fonts.text.sizes[1].fontSize;});function createDefaultIcon(title,subtitle){const rng1=pseudoRandomNumber("".concat(title," ").concat(subtitle));const huesWithoutGray=color.COLOR_HUES.filter(hue=>hue!=="gray");const colorHue=huesWithoutGray[Math.floor(rng1*huesWithoutGray.length)];const possibleTints=["300","400","500","600","700"];const rng2=pseudoRandomNumber(rng1.toString());const tint=possibleTints[Math.floor(rng2*possibleTints.length)];const color$1=color.hues[colorHue][tint].hex;const letters=title.split(/\s/g).map(word=>word.replace(/\\W/g,"")).filter(Boolean).slice(0,2).map(i=>i.charAt(0).toUpperCase());const darkened=color2k.darken(color$1,0.4);const lightened=color2k.lighten(color$1,0.4);const textColor=!color2k.hasBadContrast(color$1,"readable",darkened)?darkened:!color2k.hasBadContrast(color$1,"readable",lightened)?lightened:color2k.readableColor(color$1);return/* @__PURE__ */jsxRuntime.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:[/* @__PURE__ */jsxRuntime.jsx("rect",{width:32,height:32,rx:2,fill:color$1}),/* @__PURE__ */jsxRuntime.jsx(SvgText,{x:"50%",y:"50%",textAnchor:"middle",alignmentBaseline:"middle",dominantBaseline:"middle",fill:textColor,children:letters})]});}const isError=p=>p.severity==="error";function normalizeIcon(icon,title){let subtitle=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"";if(reactIs.isValidElementType(icon))return React.createElement(icon);if(React.isValidElement(icon))return icon;return createDefaultIcon(title,subtitle);}const preparedWorkspaces=/* @__PURE__ */new WeakMap();function prepareConfig(config,options){if(!Array.isArray(config)&&"missingConfigFile"in config){throw new ConfigResolutionError({name:"",type:"configuration file",causes:["No `sanity.config.ts` file found","No `sanity.config.js` file found"]});}const rootPath=getRootPath(options==null?void 0:options.basePath);const workspaceOptions=Array.isArray(config)?config:[config];try{validateWorkspaces({workspaces:workspaceOptions});}catch(e){throw new ConfigResolutionError({name:"",type:"workspace",causes:[e.message]});}const workspaces=workspaceOptions.map(rawWorkspace=>{if(preparedWorkspaces.has(rawWorkspace)){return preparedWorkspaces.get(rawWorkspace);}const{unstable_sources:nestedSources=[],...rootSource}=rawWorkspace;const sources=[rootSource,...nestedSources];const resolvedSources=sources.map(source=>{const{projectId,dataset}=source;let schemaTypes;try{schemaTypes=resolveConfigProperty({propertyName:"schema.types",config:source,context:{projectId,dataset},initialValue:[],reducer:schemaTypesReducer});}catch(e){throw new ConfigResolutionError({name:source.name,type:"source",causes:[e]});}const schema=createSchema({name:source.name,types:schemaTypes});const schemaValidationProblemGroups=schema._validation;const schemaErrors=schemaValidationProblemGroups==null?void 0:schemaValidationProblemGroups.filter(msg=>msg.problems.some(isError));if(schemaValidationProblemGroups&&(schemaErrors==null?void 0:schemaErrors.length)){throw new SchemaError(schema);}const auth=getAuthStore(source);const i18n=prepareI18n(source);const source$=auth.state.pipe(operators.map(_ref447=>{let{client,authenticated,currentUser}=_ref447;return resolveSource({config:source,client,currentUser,schema,authenticated,auth,i18n});}),operators.shareReplay(1));return{name:source.name,projectId:source.projectId,dataset:source.dataset,title:source.title||startCase__default.default(source.name),auth,schema,i18n:i18n.source,source:source$};});const title=rootSource.title||startCase__default.default(rootSource.name);const workspaceSummary={type:"workspace-summary",auth:resolvedSources[0].auth,basePath:joinBasePath(rootPath,rootSource.basePath),dataset:rootSource.dataset,schema:resolvedSources[0].schema,i18n:resolvedSources[0].i18n,customIcon:!!rootSource.icon,icon:normalizeIcon(rootSource.icon,title,"".concat(rootSource.projectId," ").concat(rootSource.dataset)),name:rootSource.name||"default",projectId:rootSource.projectId,theme:rootSource.theme||ui.studioTheme,title,subtitle:rootSource.subtitle,__internal:{sources:resolvedSources}};preparedWorkspaces.set(rawWorkspace,workspaceSummary);return workspaceSummary;});return{type:"prepared-config",workspaces};}function getAuthStore(source){if(isAuthStore(source.auth)){return source.auth;}const clientFactory=source.unstable_clientFactory||client.createClient;const{projectId,dataset,apiHost}=source;return createAuthStore({apiHost,...source.auth,clientFactory,dataset,projectId});}function getBifurClient(client,auth){const bifurVersionedClient=client.withConfig({apiVersion:"2022-06-30"});const{dataset,url:baseUrl,requestTagPrefix="sanity.studio"}=bifurVersionedClient.config();const url="".concat(baseUrl.replace(/\/+$/,""),"/socket/").concat(dataset).replace(/^http/,"ws");const urlWithTag="".concat(url,"?tag=").concat(requestTagPrefix);const options=auth.token?{token$:auth.token}:{};return bifurClient.fromUrl(urlWithTag,options);}function resolveSource(_ref448){let{config,client,currentUser,schema,authenticated,auth,i18n}=_ref448;var _a,_b,_c,_d,_e,_f,_g;const{dataset,projectId}=config;const bifur=getBifurClient(client,auth);const errors=[];const clients={};const getClient=options=>{if(!options||!options.apiVersion){throw new Error("Missing required `apiVersion` option");}if(!clients[options.apiVersion]){clients[options.apiVersion]=client.withConfig(options);}return clients[options.apiVersion];};const context={client,getClient,currentUser,dataset,projectId,schema,i18n:i18n.source};const wrappedClient=client;context.client=[...Object.keys(client),...Object.keys(wrappedClient.__proto__)].reduce((acc,key)=>{const original=Object.hasOwnProperty.call(client,key)?wrappedClient[key]:wrappedClient.__proto__[key];return Object.defineProperty(acc,key,{get(){console.warn('`configContext.client` is deprecated and will be removed in the next release! Use `context.getClient({apiVersion: "2021-06-07"})` instead');return original;}});},{});let templates;try{templates=resolveConfigProperty({config,context,propertyName:"schema.templates",reducer:schemaTemplatesReducer,initialValue:schema.getTypeNames().filter(typeName=>!/^sanity\./.test(typeName)).map(typeName=>schema.get(typeName)).filter(isNonNullable$2).filter(schemaType=>{var _a2;return((_a2=schemaType.type)==null?void 0:_a2.name)==="document";}).map(schemaType=>{const template={id:schemaType.name,schemaType:schemaType.name,title:schemaType.title||schemaType.name,icon:schemaType.icon,value:schemaType.initialValue||{_type:schemaType.name}};return template;})});}catch(e){throw new ConfigResolutionError({name:config.name,type:"source",causes:[e]});}let tools;try{tools=resolveConfigProperty({config,context,initialValue:[],propertyName:"tools",reducer:toolsReducer});}catch(e){throw new ConfigResolutionError({name:config.name,type:"source",causes:[e]});}if(tools.some(_ref449=>{let{name}=_ref449;return name==="tool";})){throw new Error('A tool cannot have the name "tool". Please enter a different name.');}const initialTemplatesResponses=templates.filter(template=>{var _a2;return!((_a2=template.parameters)==null?void 0:_a2.length);}).map(template=>({templateId:template.id,description:template.description,icon:template.icon,title:template.title}));const templateMap=templates.reduce((acc,template)=>{acc.set(template.id,template);return acc;},/* @__PURE__ */new Map());const resolveNewDocumentOptions=creationContext=>{const{schemaType:schemaTypeName}=creationContext;const templateResponses=resolveConfigProperty({config,context:{...context,creationContext},initialValue:initialTemplatesResponses,propertyName:"document.resolveNewDocumentOptions",reducer:newDocumentOptionsResolver});const templateErrors=[];if(templateErrors.length){throw new ConfigResolutionError({name:config.name,type:"source",causes:templateErrors});}return templateResponses.map((response,index)=>{const template=templateMap.get(response.templateId);if(!template){throw new Error("Could not find template with ID `".concat(response.templateId,"`"));}const schemaType=schema.get(template.schemaType);if(!schemaType){throw new Error("Could not find matching schema type `".concat(template.schemaType,"` for template `").concat(template.id,"`"));}const title=response.title||template.title;const defaultSubtitle=(schemaType==null?void 0:schemaType.title)===title?void 0:schemaType==null?void 0:schemaType.title;return{id:"".concat(response.templateId,"-").concat(index),templateId:response.templateId,type:"initialValueTemplateItem",title,i18n:response.i18n||template.i18n,subtitle:response.subtitle||defaultSubtitle,description:response.description||template.description,icon:response.icon||template.icon||(schemaType==null?void 0:schemaType.icon),initialDocumentId:response.initialDocumentId,parameters:response.parameters,schemaType:template.schemaType};}).filter(item=>{var _a2;if(!schemaTypeName)return true;if(creationContext.type==="document")return true;return schemaTypeName===((_a2=templateMap.get(item.templateId))==null?void 0:_a2.schemaType);});};let staticInitialValueTemplateItems;try{staticInitialValueTemplateItems=resolveNewDocumentOptions({type:"global"});}catch(e){errors.push(e);}if(errors.length){throw new ConfigResolutionError({name:config.name,type:"source",causes:errors});}const source={type:"source",name:config.name,title:config.title||startCase__default.default(config.name),schema,getClient,dataset,projectId,tools,currentUser,authenticated,templates,auth,i18n:i18n.source,document:{actions:partialContext=>resolveConfigProperty({config,context:{...context,...partialContext},initialValue:initialDocumentActions,propertyName:"document.actions",reducer:documentActionsReducer}),badges:partialContext=>resolveConfigProperty({config,context:{...context,...partialContext},initialValue:initialDocumentBadges,propertyName:"document.badges",reducer:documentBadgesReducer}),unstable_fieldActions:partialContext=>resolveConfigProperty({config,context:{...context,...partialContext},initialValue:initialDocumentFieldActions,propertyName:"document.unstable_fieldActions",reducer:documentFieldActionsReducer}),inspectors:partialContext=>resolveConfigProperty({config,context:{...context,...partialContext},initialValue:EMPTY_ARRAY$9,propertyName:"document.inspectors",reducer:documentInspectorsReducer}),resolveProductionUrl:partialContext=>resolveConfigProperty({config,context:{...context,...partialContext},initialValue:void 0,propertyName:"resolveProductionUrl",asyncReducer:resolveProductionUrlReducer}),resolveNewDocumentOptions,unstable_languageFilter:partialContext=>resolveConfigProperty({config,context:{...context,...partialContext},initialValue:initialLanguageFilter,propertyName:"document.unstable_languageFilter",reducer:documentLanguageFilterReducer}),unstable_comments:{enabled:partialContext=>{return documentCommentsEnabledReducer({context:partialContext,config,initialValue:true});}}},form:{file:{assetSources:resolveConfigProperty({config,context,initialValue:[FileSource],propertyName:"formBuilder.file.assetSources",reducer:fileAssetSourceResolver}),directUploads:// TODO: consider refactoring this to `noDirectUploads` or similar
385
+ lng:locale,supportedLngs:locales.map(def=>def.id)};}function reduceLocaleDefinition(definition){const{bundles,...locale}=definition;return locale;}class ConfigResolutionError extends Error{constructor(_ref443){let{causes,name,type}=_ref443;const messages=causes.filter(Boolean).map(cause=>isRecord$4(cause)&&typeof(cause==null?void 0:cause.message)==="string"?cause.message:String(cause));super("Could not resolve ".concat(type).concat(name?" `".concat(name,"`"):"",":\n").concat(messages.map(message=>" - ".concat(message)).join("\n"),"\n\n"));this.name=name;this.causes=causes;this.type=type;}}class SchemaError extends Error{constructor(schema){super("SchemaError");this.schema=schema;}}var __freeze$N=Object.freeze;var __defProp$N=Object.defineProperty;var __template$N=(cooked,raw)=>__freeze$N(__defProp$N(cooked,"raw",{value:__freeze$N(raw||cooked.slice())}));var _a$N;function pseudoRandomNumber(seed){const hashCode=seed.split("").reduce((prevHash,currVal)=>(prevHash<<5)-prevHash+currVal.charCodeAt(0)|0,0);return Math.abs(hashCode*16807%2147483647)/2147483647;}const SvgText=styled__default.default.text(_a$N||(_a$N=__template$N(["\n font-family: ",";\n font-weight: ",";\n font-size: ","px;\n transform: translateY(1px);\n"])),_ref444=>{let{theme}=_ref444;return theme.sanity.fonts.text.family;},_ref445=>{let{theme}=_ref445;return theme.sanity.fonts.text.weights.medium;},_ref446=>{let{theme}=_ref446;return theme.sanity.fonts.text.sizes[1].fontSize;});function createDefaultIcon(title,subtitle){const rng1=pseudoRandomNumber("".concat(title," ").concat(subtitle));const huesWithoutGray=color.COLOR_HUES.filter(hue=>hue!=="gray");const colorHue=huesWithoutGray[Math.floor(rng1*huesWithoutGray.length)];const possibleTints=["300","400","500","600","700"];const rng2=pseudoRandomNumber(rng1.toString());const tint=possibleTints[Math.floor(rng2*possibleTints.length)];const color$1=color.hues[colorHue][tint].hex;const letters=title.split(/\s/g).map(word=>word.replace(/\\W/g,"")).filter(Boolean).slice(0,2).map(i=>i.charAt(0).toUpperCase());const darkened=color2k.darken(color$1,0.4);const lightened=color2k.lighten(color$1,0.4);const textColor=!color2k.hasBadContrast(color$1,"readable",darkened)?darkened:!color2k.hasBadContrast(color$1,"readable",lightened)?lightened:color2k.readableColor(color$1);return/* @__PURE__ */jsxRuntime.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:[/* @__PURE__ */jsxRuntime.jsx("rect",{width:32,height:32,rx:2,fill:color$1}),/* @__PURE__ */jsxRuntime.jsx(SvgText,{x:"50%",y:"50%",textAnchor:"middle",alignmentBaseline:"middle",dominantBaseline:"middle",fill:textColor,children:letters})]});}function resolveSchemaTypes(_ref447){let{config,context}=_ref447;return resolveConfigProperty({propertyName:"schema.types",config,context,initialValue:[],reducer:schemaTypesReducer});}const isError=p=>p.severity==="error";function normalizeIcon(icon,title){let subtitle=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"";if(reactIs.isValidElementType(icon))return React.createElement(icon);if(React.isValidElement(icon))return icon;return createDefaultIcon(title,subtitle);}const preparedWorkspaces=/* @__PURE__ */new WeakMap();function prepareConfig(config,options){if(!Array.isArray(config)&&"missingConfigFile"in config){throw new ConfigResolutionError({name:"",type:"configuration file",causes:["No `sanity.config.ts` file found","No `sanity.config.js` file found"]});}const rootPath=getRootPath(options==null?void 0:options.basePath);const workspaceOptions=Array.isArray(config)?config:[config];try{validateWorkspaces({workspaces:workspaceOptions});}catch(e){throw new ConfigResolutionError({name:"",type:"workspace",causes:[e.message]});}const workspaces=workspaceOptions.map(rawWorkspace=>{if(preparedWorkspaces.has(rawWorkspace)){return preparedWorkspaces.get(rawWorkspace);}const{unstable_sources:nestedSources=[],...rootSource}=rawWorkspace;const sources=[rootSource,...nestedSources];const resolvedSources=sources.map(source=>{const{projectId,dataset}=source;let schemaTypes;try{schemaTypes=resolveSchemaTypes({config:source,context:{projectId,dataset}});}catch(e){throw new ConfigResolutionError({name:source.name,type:"source",causes:[e]});}const schema=createSchema({name:source.name,types:schemaTypes});const schemaValidationProblemGroups=schema._validation;const schemaErrors=schemaValidationProblemGroups==null?void 0:schemaValidationProblemGroups.filter(msg=>msg.problems.some(isError));if(schemaValidationProblemGroups&&(schemaErrors==null?void 0:schemaErrors.length)){throw new SchemaError(schema);}const auth=getAuthStore(source);const i18n=prepareI18n(source);const source$=auth.state.pipe(operators.map(_ref448=>{let{client,authenticated,currentUser}=_ref448;return resolveSource({config:source,client,currentUser,schema,authenticated,auth,i18n});}),operators.shareReplay(1));return{name:source.name,projectId:source.projectId,dataset:source.dataset,title:source.title||startCase__default.default(source.name),auth,schema,i18n:i18n.source,source:source$};});const title=rootSource.title||startCase__default.default(rootSource.name);const workspaceSummary={type:"workspace-summary",auth:resolvedSources[0].auth,basePath:joinBasePath(rootPath,rootSource.basePath),dataset:rootSource.dataset,schema:resolvedSources[0].schema,i18n:resolvedSources[0].i18n,customIcon:!!rootSource.icon,icon:normalizeIcon(rootSource.icon,title,"".concat(rootSource.projectId," ").concat(rootSource.dataset)),name:rootSource.name||"default",projectId:rootSource.projectId,theme:rootSource.theme||ui.studioTheme,title,subtitle:rootSource.subtitle,__internal:{sources:resolvedSources}};preparedWorkspaces.set(rawWorkspace,workspaceSummary);return workspaceSummary;});return{type:"prepared-config",workspaces};}function getAuthStore(source){if(isAuthStore(source.auth)){return source.auth;}const clientFactory=source.unstable_clientFactory||client.createClient;const{projectId,dataset,apiHost}=source;return createAuthStore({apiHost,...source.auth,clientFactory,dataset,projectId});}function getBifurClient(client,auth){const bifurVersionedClient=client.withConfig({apiVersion:"2022-06-30"});const{dataset,url:baseUrl,requestTagPrefix="sanity.studio"}=bifurVersionedClient.config();const url="".concat(baseUrl.replace(/\/+$/,""),"/socket/").concat(dataset).replace(/^http/,"ws");const urlWithTag="".concat(url,"?tag=").concat(requestTagPrefix);const options=auth.token?{token$:auth.token}:{};return bifurClient.fromUrl(urlWithTag,options);}function resolveSource(_ref449){let{config,client,currentUser,schema,authenticated,auth,i18n}=_ref449;var _a,_b,_c,_d,_e,_f,_g;const{dataset,projectId}=config;const bifur=getBifurClient(client,auth);const errors=[];const clients={};const getClient=options=>{if(!options||!options.apiVersion){throw new Error("Missing required `apiVersion` option");}if(!clients[options.apiVersion]){clients[options.apiVersion]=client.withConfig(options);}return clients[options.apiVersion];};const context={client,getClient,currentUser,dataset,projectId,schema,i18n:i18n.source};const wrappedClient=client;context.client=[...Object.keys(client),...Object.keys(wrappedClient.__proto__)].reduce((acc,key)=>{const original=Object.hasOwnProperty.call(client,key)?wrappedClient[key]:wrappedClient.__proto__[key];return Object.defineProperty(acc,key,{get(){console.warn('`configContext.client` is deprecated and will be removed in the next release! Use `context.getClient({apiVersion: "2021-06-07"})` instead');return original;}});},{});let templates;try{templates=resolveConfigProperty({config,context,propertyName:"schema.templates",reducer:schemaTemplatesReducer,initialValue:schema.getTypeNames().filter(typeName=>!/^sanity\./.test(typeName)).map(typeName=>schema.get(typeName)).filter(isNonNullable$2).filter(schemaType=>{var _a2;return((_a2=schemaType.type)==null?void 0:_a2.name)==="document";}).map(schemaType=>{const template={id:schemaType.name,schemaType:schemaType.name,title:schemaType.title||schemaType.name,icon:schemaType.icon,value:schemaType.initialValue||{_type:schemaType.name}};return template;})});}catch(e){throw new ConfigResolutionError({name:config.name,type:"source",causes:[e]});}let tools;try{tools=resolveConfigProperty({config,context,initialValue:[],propertyName:"tools",reducer:toolsReducer});}catch(e){throw new ConfigResolutionError({name:config.name,type:"source",causes:[e]});}if(tools.some(_ref450=>{let{name}=_ref450;return name==="tool";})){throw new Error('A tool cannot have the name "tool". Please enter a different name.');}const initialTemplatesResponses=templates.filter(template=>{var _a2;return!((_a2=template.parameters)==null?void 0:_a2.length);}).map(template=>({templateId:template.id,description:template.description,icon:template.icon,title:template.title}));const templateMap=templates.reduce((acc,template)=>{acc.set(template.id,template);return acc;},/* @__PURE__ */new Map());const resolveNewDocumentOptions=creationContext=>{const{schemaType:schemaTypeName}=creationContext;const templateResponses=resolveConfigProperty({config,context:{...context,creationContext},initialValue:initialTemplatesResponses,propertyName:"document.resolveNewDocumentOptions",reducer:newDocumentOptionsResolver});const templateErrors=[];if(templateErrors.length){throw new ConfigResolutionError({name:config.name,type:"source",causes:templateErrors});}return templateResponses.map((response,index)=>{const template=templateMap.get(response.templateId);if(!template){throw new Error("Could not find template with ID `".concat(response.templateId,"`"));}const schemaType=schema.get(template.schemaType);if(!schemaType){throw new Error("Could not find matching schema type `".concat(template.schemaType,"` for template `").concat(template.id,"`"));}const title=response.title||template.title;const defaultSubtitle=(schemaType==null?void 0:schemaType.title)===title?void 0:schemaType==null?void 0:schemaType.title;return{id:"".concat(response.templateId,"-").concat(index),templateId:response.templateId,type:"initialValueTemplateItem",title,i18n:response.i18n||template.i18n,subtitle:response.subtitle||defaultSubtitle,description:response.description||template.description,icon:response.icon||template.icon||(schemaType==null?void 0:schemaType.icon),initialDocumentId:response.initialDocumentId,parameters:response.parameters,schemaType:template.schemaType};}).filter(item=>{var _a2;if(!schemaTypeName)return true;if(creationContext.type==="document")return true;return schemaTypeName===((_a2=templateMap.get(item.templateId))==null?void 0:_a2.schemaType);});};let staticInitialValueTemplateItems;try{staticInitialValueTemplateItems=resolveNewDocumentOptions({type:"global"});}catch(e){errors.push(e);}if(errors.length){throw new ConfigResolutionError({name:config.name,type:"source",causes:errors});}const source={type:"source",name:config.name,title:config.title||startCase__default.default(config.name),schema,getClient,dataset,projectId,tools,currentUser,authenticated,templates,auth,i18n:i18n.source,document:{actions:partialContext=>resolveConfigProperty({config,context:{...context,...partialContext},initialValue:initialDocumentActions,propertyName:"document.actions",reducer:documentActionsReducer}),badges:partialContext=>resolveConfigProperty({config,context:{...context,...partialContext},initialValue:initialDocumentBadges,propertyName:"document.badges",reducer:documentBadgesReducer}),unstable_fieldActions:partialContext=>resolveConfigProperty({config,context:{...context,...partialContext},initialValue:initialDocumentFieldActions,propertyName:"document.unstable_fieldActions",reducer:documentFieldActionsReducer}),inspectors:partialContext=>resolveConfigProperty({config,context:{...context,...partialContext},initialValue:EMPTY_ARRAY$9,propertyName:"document.inspectors",reducer:documentInspectorsReducer}),resolveProductionUrl:partialContext=>resolveConfigProperty({config,context:{...context,...partialContext},initialValue:void 0,propertyName:"resolveProductionUrl",asyncReducer:resolveProductionUrlReducer}),resolveNewDocumentOptions,unstable_languageFilter:partialContext=>resolveConfigProperty({config,context:{...context,...partialContext},initialValue:initialLanguageFilter,propertyName:"document.unstable_languageFilter",reducer:documentLanguageFilterReducer}),unstable_comments:{enabled:partialContext=>{return documentCommentsEnabledReducer({context:partialContext,config,initialValue:true});}}},form:{file:{assetSources:resolveConfigProperty({config,context,initialValue:[FileSource],propertyName:"formBuilder.file.assetSources",reducer:fileAssetSourceResolver}),directUploads:// TODO: consider refactoring this to `noDirectUploads` or similar
386
386
  // default value for this is `true`
387
387
  ((_b=(_a=config.form)==null?void 0:_a.file)==null?void 0:_b.directUploads)===void 0?true:config.form.file.directUploads},image:{assetSources:resolveConfigProperty({config,context,initialValue:[ImageSource],propertyName:"formBuilder.image.assetSources",reducer:imageAssetSourceResolver}),directUploads:// TODO: consider refactoring this to `noDirectUploads` or similar
388
388
  // default value for this is `true`
@@ -402,32 +402,32 @@ lng:locale,supportedLngs:locales.map(def=>def.id)};}function reduceLocaleDefinit
402
402
  reducer: searchOperatorsReducer,
403
403
  }),*/},__internal:{bifur,i18next:i18n.i18next,staticInitialValueTemplateItems,options:config}};return source;}function getRootPath(basePath){const rootPath=basePath||"";if(typeof rootPath!=="string"||rootPath.length>0&&!rootPath.startsWith("/")){throw new ConfigResolutionError({name:"",type:"options",causes:["basePath must be a string, and must start with a slash"]});}return rootPath==="/"?"":rootPath;}function joinBasePath(rootPath,basePath){const joined=[rootPath,basePath||""].map(path=>path.replace(/^\/+/g,"").replace(/\/+$/g,"")).filter(Boolean).join("/");return"/".concat(joined);}const errorChannel=globalScope.__sanityErrorChannel;function ErrorLogger(){const{push:pushToast}=ui.useToast();React.useEffect(()=>{if(!errorChannel)return void 0;return errorChannel.subscribe(msg=>{if(!msg.error){return;}if(isKnownError(msg.error)){return;}console.error(msg.error);pushToast({// Use the error message as the ID in order to prevent duplicates from showing
404
404
  // A bit of a hack, but serves
405
- id:msg.error.message,closable:true,description:msg.error.message,duration:5e3,title:"Uncaught error",status:"error"});});},[pushToast]);return null;}function isKnownError(err){if(err instanceof SchemaError){return true;}if(err instanceof CorsOriginError){return true;}if(err instanceof ConfigResolutionError){return true;}return false;}var __freeze$M=Object.freeze;var __defProp$M=Object.defineProperty;var __template$M=(cooked,raw)=>__freeze$M(__defProp$M(cooked,"raw",{value:__freeze$M(raw||cooked.slice())}));var _a$M,_b$p;const TONES={error:"critical",warning:"caution"};const SegmentSpan=styled__default.default.code(_a$M||(_a$M=__template$M(["\n && {\n background: none;\n color: inherit;\n }\n"])));const ErrorMessageText=styled__default.default(ui.Text)(_b$p||(_b$p=__template$M(["\n white-space: pre-line;\n"])));function SchemaProblemGroups(props){const{problemGroups}=props;useTranslation();const items=React.useMemo(()=>{const ret=[];for(const problemGroup of problemGroups){for(const problem of problemGroup.problems){ret.push({group:problemGroup,problem});}}return ret;},[problemGroups]);return/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"ul",space:4,children:items.map((_ref450,i)=>{let{group,problem}=_ref450;const isError=problem.severity==="error";const isWarning=problem.severity==="warning";const schemaType=getTypeInfo(group);return/* @__PURE__ */jsxRuntime.jsxs(ui.Card,{border:true,padding:4,radius:2,tone:TONES[problem.severity],children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginRight:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{muted:true,size:1,children:[isError&&/* @__PURE__ */jsxRuntime.jsx(icons.ErrorOutlineIcon,{}),isWarning&&/* @__PURE__ */jsxRuntime.jsx(icons.WarningOutlineIcon,{})]})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,weight:"medium",children:schemaType?/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[capitalize__default.default(schemaType.type),' type "',schemaType.name,'"']}):null})})]}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{border:true,overflow:"auto",padding:2,tone:"inherit",children:/* @__PURE__ */jsxRuntime.jsx(ui.Breadcrumbs,{separator:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:"\u2192"}),children:group.path.map((segment,j)=>{if(segment.kind==="type"){const text="".concat(_renderSegmentName(segment.name),":").concat(segment.type);return/* @__PURE__ */jsxRuntime.jsx(ui.Text,{title:text,size:1,textOverflow:"ellipsis",children:/* @__PURE__ */jsxRuntime.jsx(SegmentSpan,{children:text})},j);}if(segment.kind==="property"){return/* @__PURE__ */jsxRuntime.jsx(ui.Text,{title:segment.name,size:1,textOverflow:"ellipsis",children:/* @__PURE__ */jsxRuntime.jsx(SegmentSpan,{children:segment.name})},j);}return null;})})})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{as:"ul",marginTop:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Box,{as:"li",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,children:[/* @__PURE__ */jsxRuntime.jsx(ErrorMessageText,{muted:true,size:1,children:problem.message}),problem.helpId&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:/* @__PURE__ */jsxRuntime.jsx("a",{href:generateHelpUrl.generateHelpUrl(problem.helpId),target:"_blank",rel:"noopener noreferrer",children:"View documentation \u2192"})})]})})})]},i);})});}function getTypeInfo(problem){const first=problem.path[0];if(first.kind==="type"){return{name:first.name,type:first.type};}return null;}function _renderSegmentName(str){if(str==null?void 0:str.startsWith("<unnamed_type_@_index")){const parts=str.slice(1,-1).split("_");return"[".concat(parts[4],"]");}return str;}function renderPath(path){return path.map(segment=>{if(segment.kind==="type"){return"".concat(segment.name||"<unnamed>","(").concat(segment.type,")");}if(segment.kind==="property"){return segment.name;}return null;}).filter(Boolean).join(" > ");}function reportWarnings(schema){const problemGroups=schema._validation;const groupsWithWarnings=problemGroups==null?void 0:problemGroups.filter(group=>group.problems.some(problem=>problem.severity==="warning"));if((groupsWithWarnings==null?void 0:groupsWithWarnings.length)===0){return;}console.groupCollapsed("\u26A0\uFE0F Schema has ".concat(groupsWithWarnings==null?void 0:groupsWithWarnings.length," warnings"));groupsWithWarnings==null?void 0:groupsWithWarnings.forEach(group=>{const path=renderPath(group.path);console.group("%cAt ".concat(path),"color: #FF7636");group.problems.forEach(problem=>{console.log(problem.message);});console.groupEnd();});console.groupEnd();}function SchemaErrorsScreen(_ref451){let{schema}=_ref451;var _a;const groupsWithErrors=((_a=schema._validation)==null?void 0:_a.filter(group=>group.problems.some(problem=>problem.severity==="error")))||[];React.useEffect(()=>reportWarnings(schema),[schema]);return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",overflow:"auto",paddingY:[4,5,6,7],paddingX:4,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:1,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:5,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Heading,{as:"h1",children:"Schema errors"}),/* @__PURE__ */jsxRuntime.jsx(SchemaProblemGroups,{problemGroups:groupsWithErrors})]})})});}function NotFoundScreen(props){return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",sizing:"border",tone:"caution",display:"flex",children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{direction:"row",justify:"center",flex:1,align:"center",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Heading,{as:"h1",children:"Workspace not found"}),/* @__PURE__ */jsxRuntime.jsx(ui.Inline,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{text:"Go to default workspace",onClick:props.onNavigateToDefaultWorkspace,mode:"ghost"})})]})})});}const ActiveWorkspaceMatcherContext=React.createContext(null);const WorkspacesContext=React.createContext(null);function WorkspacesProvider(_ref452){let{config,children,basePath}=_ref452;const{workspaces}=React.useMemo(()=>prepareConfig(config,{basePath}),[config,basePath]);return/* @__PURE__ */jsxRuntime.jsx(WorkspacesContext.Provider,{value:workspaces,children});}function getWorkspaceIdentifier(_ref453,index){let{name,title}=_ref453;if(typeof name==="string"&&name.trim().length>0){return name;}return getNamelessWorkspaceIdentifier(title,index);}function getNamelessWorkspaceIdentifier(title,index){const withTitle=typeof title==="string"&&title.trim().length>0?' (titled "'.concat(title,'")'):"";return"at index ".concat(index).concat(withTitle);}function useWorkspaces(){const workspaces=React.useContext(WorkspacesContext);if(!workspaces)throw new Error("Could not find `workspaces` context");return workspaces;}class WorkspaceValidationError extends Error{constructor(message,options){super(message);this.index=options==null?void 0:options.index;this.identifier=(options==null?void 0:options.workspace)&&getWorkspaceIdentifier(options.workspace,options.index);}}function validateWorkspaces(_ref454){let{workspaces}=_ref454;if(workspaces.length===0){throw new WorkspaceValidationError("At least one workspace is required.");}validateNames(workspaces);validateBasePaths(workspaces);}function validateNames(workspaces){const isSingleWorkspace=workspaces.length===1;const names=/* @__PURE__ */new Map();workspaces.forEach((workspace,index)=>{const{name:rawName,title}=workspace;const thisIdentifier=getNamelessWorkspaceIdentifier(title,index);if(!rawName&&!isSingleWorkspace){throw new WorkspaceValidationError("All workspaces must have a `name`, unless only a single workspace is defined. "+"Workspace ".concat(thisIdentifier," did not define a `name`."),{workspace,index});}const name=isSingleWorkspace&&typeof rawName==="undefined"?"default":rawName;if(typeof name!=="string"){throw new WorkspaceValidationError("Workspace at index ".concat(index," defined an invalid `name` - must be a string."),{workspace,index});}const normalized=name.toLowerCase();const existingWorkspace=names.get(normalized);if(existingWorkspace){const prevIdentifier=getNamelessWorkspaceIdentifier(existingWorkspace.workspace.title,existingWorkspace.index);throw new WorkspaceValidationError("`name`s must be unique. Workspace ".concat(prevIdentifier," and ")+"workspace ".concat(thisIdentifier," both have the `name` `").concat(name,"`"),{workspace,index});}names.set(normalized,{index,workspace});if(!/^[a-z0-9][a-z0-9_-]*$/i.test(name)){throw new WorkspaceValidationError("All workspace `name`s must consist of only a-z, 0-9, underscore and dashes, and cannot begin with an underscore or dash. "+"Workspace ".concat(thisIdentifier," has the invalid name `").concat(name,"`"),{workspace,index});}});}function validateBasePaths(workspaces){if(workspaces.length>1){workspaces.every(hasBasePath);}workspaces.every(validateBasePath);const[firstWorkspace,...restOfWorkspaces]=workspaces;const firstWorkspaceSegmentCount=(firstWorkspace.basePath||"/").substring(1).split("/").filter(Boolean).length;restOfWorkspaces.forEach((workspace,index)=>{const workspaceSegmentCount=(workspace.basePath||"/").substring(1).split("/").length;if(firstWorkspaceSegmentCount!==workspaceSegmentCount){throw new WorkspaceValidationError("All workspace `basePath`s must have the same amount of segments. Workspace `".concat(getWorkspaceIdentifier(firstWorkspace,index),"` had ").concat(firstWorkspaceSegmentCount," segment").concat(firstWorkspaceSegmentCount===1?"":"s"," `").concat(firstWorkspace.basePath,"` but workspace `").concat(getWorkspaceIdentifier(workspace,index),"` had ").concat(workspaceSegmentCount," segment").concat(workspaceSegmentCount===1?"":"s"," `").concat(workspace.basePath,"`"),{workspace,index});}});const basePaths=/* @__PURE__ */new Map();workspaces.forEach((workspace,index)=>{const basePath=(workspace.basePath||"").toLowerCase();const existingWorkspace=basePaths.get(basePath);if(existingWorkspace){throw new WorkspaceValidationError("`basePath`s must be unique. Workspaces `".concat(existingWorkspace,"` and ")+"`".concat(getWorkspaceIdentifier(workspace,index),"` both have the `basePath` `").concat(basePath,"`"),{workspace,index});}basePaths.set(basePath,getWorkspaceIdentifier(workspace,index));});}function hasBasePath(workspace,index){const{name,basePath}=workspace;if(basePath&&typeof basePath==="string"){return true;}if(typeof basePath==="undefined"){throw new WorkspaceValidationError("If more than one workspace is defined, every workspace must have a `basePath` defined. "+"Workspace `".concat(name,"` is missing a `basePath`"),{workspace,index});}throw new WorkspaceValidationError("If more than one workspace is defined, every workspace must have a `basePath` defined. "+"Workspace `".concat(name,"` has an invalid `basePath` (must be a non-empty string)"),{workspace,index});}function validateBasePath(workspace,index){const{name,basePath}=workspace;if(!basePath||basePath==="/"){return;}if(!/^\/[a-z0-9/_-]*[a-z0-9_-]+$/i.test(basePath)){throw new WorkspaceValidationError("All workspace `basePath`s must start with a leading `/`, consist of only URL safe characters, and cannot end with a trailing `/`. "+"Workspace `".concat(name,"`'s basePath is `").concat(basePath,"`"),{workspace,index});}}function matchWorkspace(_ref455){let{pathname,workspaces,basePathRegex}=_ref455;const[firstWorkspace]=workspaces;for(const{workspace,basePath,basePathRegex:basePathRegex2}of workspaces){if(basePathRegex2.test(pathname)||basePath==="/"){return{type:"match",workspace};}}if(pathname==="/"){return{type:"redirect",pathname:firstWorkspace.basePath};}if(basePathRegex.test(pathname)){return{type:"redirect",pathname:firstWorkspace.basePath};}return{type:"not-found"};}function createCommonBasePathRegex(workspaces){const workspaceSegments=workspaces.map(workspace=>// gets the segments from the basePath
406
- workspace.basePath.substring(1).split("/"));const commonBasePath=workspaceSegments.reduce((commonSegments,segments)=>{for(let i=0;i<commonSegments.length;i++){const commonSegment=commonSegments[i];const segment=segments[i].toLowerCase();if(commonSegment!==segment){return commonSegments.slice(0,i);}}return commonSegments;});function createCommonBasePathRegexRecursively(_ref456){let[first,...rest]=_ref456;if(!first)return"";return"(\\/".concat(escapeRegExp__default.default(first)).concat(createCommonBasePathRegexRecursively(rest),"(\\/|$))?");}return new RegExp("^".concat(createCommonBasePathRegexRecursively(commonBasePath),"$"),"i");}function useNormalizedWorkspaces(workspaces){return React.useMemo(()=>normalizedWorkspaces(workspaces),[workspaces]);}function normalizedWorkspaces(workspaces){return workspaces.map(workspace=>{const basePath=workspace.basePath||"/";return{workspace,name:workspace.name,basePath,// this regex ends with a `(\\/|$)` (forward slash or end) to prevent false
405
+ id:msg.error.message,closable:true,description:msg.error.message,duration:5e3,title:"Uncaught error",status:"error"});});},[pushToast]);return null;}function isKnownError(err){if(err instanceof SchemaError){return true;}if(err instanceof CorsOriginError){return true;}if(err instanceof ConfigResolutionError){return true;}return false;}var __freeze$M=Object.freeze;var __defProp$M=Object.defineProperty;var __template$M=(cooked,raw)=>__freeze$M(__defProp$M(cooked,"raw",{value:__freeze$M(raw||cooked.slice())}));var _a$M,_b$p;const TONES={error:"critical",warning:"caution"};const SegmentSpan=styled__default.default.code(_a$M||(_a$M=__template$M(["\n && {\n background: none;\n color: inherit;\n }\n"])));const ErrorMessageText=styled__default.default(ui.Text)(_b$p||(_b$p=__template$M(["\n white-space: pre-line;\n"])));function SchemaProblemGroups(props){const{problemGroups}=props;useTranslation();const items=React.useMemo(()=>{const ret=[];for(const problemGroup of problemGroups){for(const problem of problemGroup.problems){ret.push({group:problemGroup,problem});}}return ret;},[problemGroups]);return/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"ul",space:4,children:items.map((_ref451,i)=>{let{group,problem}=_ref451;const isError=problem.severity==="error";const isWarning=problem.severity==="warning";const schemaType=getTypeInfo(group);return/* @__PURE__ */jsxRuntime.jsxs(ui.Card,{border:true,padding:4,radius:2,tone:TONES[problem.severity],children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginRight:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{muted:true,size:1,children:[isError&&/* @__PURE__ */jsxRuntime.jsx(icons.ErrorOutlineIcon,{}),isWarning&&/* @__PURE__ */jsxRuntime.jsx(icons.WarningOutlineIcon,{})]})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,weight:"medium",children:schemaType?/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[capitalize__default.default(schemaType.type),' type "',schemaType.name,'"']}):null})})]}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{border:true,overflow:"auto",padding:2,tone:"inherit",children:/* @__PURE__ */jsxRuntime.jsx(ui.Breadcrumbs,{separator:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:"\u2192"}),children:group.path.map((segment,j)=>{if(segment.kind==="type"){const text="".concat(_renderSegmentName(segment.name||"<anonymous ".concat(segment.type,">")),":").concat(segment.type);return/* @__PURE__ */jsxRuntime.jsx(ui.Text,{title:text,size:1,textOverflow:"ellipsis",children:/* @__PURE__ */jsxRuntime.jsx(SegmentSpan,{children:text})},j);}if(segment.kind==="property"){return/* @__PURE__ */jsxRuntime.jsx(ui.Text,{title:segment.name,size:1,textOverflow:"ellipsis",children:/* @__PURE__ */jsxRuntime.jsx(SegmentSpan,{children:segment.name})},j);}return null;})})})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{as:"ul",marginTop:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Box,{as:"li",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,children:[/* @__PURE__ */jsxRuntime.jsx(ErrorMessageText,{muted:true,size:1,children:problem.message}),problem.helpId&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:/* @__PURE__ */jsxRuntime.jsx("a",{href:generateHelpUrl.generateHelpUrl(problem.helpId),target:"_blank",rel:"noopener noreferrer",children:"View documentation \u2192"})})]})})})]},i);})});}function getTypeInfo(problem){const first=problem.path[0];if(first.kind==="type"){return{name:first.name||"<anonymous ".concat(first.type,">"),type:first.type};}return null;}function _renderSegmentName(str){if(str==null?void 0:str.startsWith("<unnamed_type_@_index")){const parts=str.slice(1,-1).split("_");return"[".concat(parts[4],"]");}return str;}function renderPath(path){return path.map(segment=>{if(segment.kind==="type"){return"".concat(segment.name||"<unnamed>","(").concat(segment.type,")");}if(segment.kind==="property"){return segment.name;}return null;}).filter(Boolean).join(" > ");}function reportWarnings(schema){const problemGroups=schema._validation;const groupsWithWarnings=problemGroups==null?void 0:problemGroups.filter(group=>group.problems.some(problem=>problem.severity==="warning"));if((groupsWithWarnings==null?void 0:groupsWithWarnings.length)===0){return;}console.groupCollapsed("\u26A0\uFE0F Schema has ".concat(groupsWithWarnings==null?void 0:groupsWithWarnings.length," warnings"));groupsWithWarnings==null?void 0:groupsWithWarnings.forEach(group=>{const path=renderPath(group.path);console.group("%cAt ".concat(path),"color: #FF7636");group.problems.forEach(problem=>{console.log(problem.message);});console.groupEnd();});console.groupEnd();}function SchemaErrorsScreen(_ref452){let{schema}=_ref452;var _a;const groupsWithErrors=((_a=schema._validation)==null?void 0:_a.filter(group=>group.problems.some(problem=>problem.severity==="error")))||[];React.useEffect(()=>reportWarnings(schema),[schema]);return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",overflow:"auto",paddingY:[4,5,6,7],paddingX:4,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:1,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:5,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Heading,{as:"h1",children:"Schema errors"}),/* @__PURE__ */jsxRuntime.jsx(SchemaProblemGroups,{problemGroups:groupsWithErrors})]})})});}function NotFoundScreen(props){return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",sizing:"border",tone:"caution",display:"flex",children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{direction:"row",justify:"center",flex:1,align:"center",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Heading,{as:"h1",children:"Workspace not found"}),/* @__PURE__ */jsxRuntime.jsx(ui.Inline,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{text:"Go to default workspace",onClick:props.onNavigateToDefaultWorkspace,mode:"ghost"})})]})})});}const ActiveWorkspaceMatcherContext=React.createContext(null);const WorkspacesContext=React.createContext(null);function WorkspacesProvider(_ref453){let{config,children,basePath}=_ref453;const{workspaces}=React.useMemo(()=>prepareConfig(config,{basePath}),[config,basePath]);return/* @__PURE__ */jsxRuntime.jsx(WorkspacesContext.Provider,{value:workspaces,children});}function getWorkspaceIdentifier(_ref454,index){let{name,title}=_ref454;if(typeof name==="string"&&name.trim().length>0){return name;}return getNamelessWorkspaceIdentifier(title,index);}function getNamelessWorkspaceIdentifier(title,index){const withTitle=typeof title==="string"&&title.trim().length>0?' (titled "'.concat(title,'")'):"";return"at index ".concat(index).concat(withTitle);}function useWorkspaces(){const workspaces=React.useContext(WorkspacesContext);if(!workspaces)throw new Error("Could not find `workspaces` context");return workspaces;}class WorkspaceValidationError extends Error{constructor(message,options){super(message);this.index=options==null?void 0:options.index;this.identifier=(options==null?void 0:options.workspace)&&getWorkspaceIdentifier(options.workspace,options.index);}}function validateWorkspaces(_ref455){let{workspaces}=_ref455;if(workspaces.length===0){throw new WorkspaceValidationError("At least one workspace is required.");}validateNames(workspaces);validateBasePaths(workspaces);}function validateNames(workspaces){const isSingleWorkspace=workspaces.length===1;const names=/* @__PURE__ */new Map();workspaces.forEach((workspace,index)=>{const{name:rawName,title}=workspace;const thisIdentifier=getNamelessWorkspaceIdentifier(title,index);if(!rawName&&!isSingleWorkspace){throw new WorkspaceValidationError("All workspaces must have a `name`, unless only a single workspace is defined. "+"Workspace ".concat(thisIdentifier," did not define a `name`."),{workspace,index});}const name=isSingleWorkspace&&typeof rawName==="undefined"?"default":rawName;if(typeof name!=="string"){throw new WorkspaceValidationError("Workspace at index ".concat(index," defined an invalid `name` - must be a string."),{workspace,index});}const normalized=name.toLowerCase();const existingWorkspace=names.get(normalized);if(existingWorkspace){const prevIdentifier=getNamelessWorkspaceIdentifier(existingWorkspace.workspace.title,existingWorkspace.index);throw new WorkspaceValidationError("`name`s must be unique. Workspace ".concat(prevIdentifier," and ")+"workspace ".concat(thisIdentifier," both have the `name` `").concat(name,"`"),{workspace,index});}names.set(normalized,{index,workspace});if(!/^[a-z0-9][a-z0-9_-]*$/i.test(name)){throw new WorkspaceValidationError("All workspace `name`s must consist of only a-z, 0-9, underscore and dashes, and cannot begin with an underscore or dash. "+"Workspace ".concat(thisIdentifier," has the invalid name `").concat(name,"`"),{workspace,index});}});}function validateBasePaths(workspaces){if(workspaces.length>1){workspaces.every(hasBasePath);}workspaces.every(validateBasePath);const[firstWorkspace,...restOfWorkspaces]=workspaces;const firstWorkspaceSegmentCount=(firstWorkspace.basePath||"/").substring(1).split("/").filter(Boolean).length;restOfWorkspaces.forEach((workspace,index)=>{const workspaceSegmentCount=(workspace.basePath||"/").substring(1).split("/").length;if(firstWorkspaceSegmentCount!==workspaceSegmentCount){throw new WorkspaceValidationError("All workspace `basePath`s must have the same amount of segments. Workspace `".concat(getWorkspaceIdentifier(firstWorkspace,index),"` had ").concat(firstWorkspaceSegmentCount," segment").concat(firstWorkspaceSegmentCount===1?"":"s"," `").concat(firstWorkspace.basePath,"` but workspace `").concat(getWorkspaceIdentifier(workspace,index),"` had ").concat(workspaceSegmentCount," segment").concat(workspaceSegmentCount===1?"":"s"," `").concat(workspace.basePath,"`"),{workspace,index});}});const basePaths=/* @__PURE__ */new Map();workspaces.forEach((workspace,index)=>{const basePath=(workspace.basePath||"").toLowerCase();const existingWorkspace=basePaths.get(basePath);if(existingWorkspace){throw new WorkspaceValidationError("`basePath`s must be unique. Workspaces `".concat(existingWorkspace,"` and ")+"`".concat(getWorkspaceIdentifier(workspace,index),"` both have the `basePath` `").concat(basePath,"`"),{workspace,index});}basePaths.set(basePath,getWorkspaceIdentifier(workspace,index));});}function hasBasePath(workspace,index){const{name,basePath}=workspace;if(basePath&&typeof basePath==="string"){return true;}if(typeof basePath==="undefined"){throw new WorkspaceValidationError("If more than one workspace is defined, every workspace must have a `basePath` defined. "+"Workspace `".concat(name,"` is missing a `basePath`"),{workspace,index});}throw new WorkspaceValidationError("If more than one workspace is defined, every workspace must have a `basePath` defined. "+"Workspace `".concat(name,"` has an invalid `basePath` (must be a non-empty string)"),{workspace,index});}function validateBasePath(workspace,index){const{name,basePath}=workspace;if(!basePath||basePath==="/"){return;}if(!/^\/[a-z0-9/_-]*[a-z0-9_-]+$/i.test(basePath)){throw new WorkspaceValidationError("All workspace `basePath`s must start with a leading `/`, consist of only URL safe characters, and cannot end with a trailing `/`. "+"Workspace `".concat(name,"`'s basePath is `").concat(basePath,"`"),{workspace,index});}}function matchWorkspace(_ref456){let{pathname,workspaces,basePathRegex}=_ref456;const[firstWorkspace]=workspaces;for(const{workspace,basePath,basePathRegex:basePathRegex2}of workspaces){if(basePathRegex2.test(pathname)||basePath==="/"){return{type:"match",workspace};}}if(pathname==="/"){return{type:"redirect",pathname:firstWorkspace.basePath};}if(basePathRegex.test(pathname)){return{type:"redirect",pathname:firstWorkspace.basePath};}return{type:"not-found"};}function createCommonBasePathRegex(workspaces){const workspaceSegments=workspaces.map(workspace=>// gets the segments from the basePath
406
+ workspace.basePath.substring(1).split("/"));const commonBasePath=workspaceSegments.reduce((commonSegments,segments)=>{for(let i=0;i<commonSegments.length;i++){const commonSegment=commonSegments[i];const segment=segments[i].toLowerCase();if(commonSegment!==segment){return commonSegments.slice(0,i);}}return commonSegments;});function createCommonBasePathRegexRecursively(_ref457){let[first,...rest]=_ref457;if(!first)return"";return"(\\/".concat(escapeRegExp__default.default(first)).concat(createCommonBasePathRegexRecursively(rest),"(\\/|$))?");}return new RegExp("^".concat(createCommonBasePathRegexRecursively(commonBasePath),"$"),"i");}function useNormalizedWorkspaces(workspaces){return React.useMemo(()=>normalizedWorkspaces(workspaces),[workspaces]);}function normalizedWorkspaces(workspaces){return workspaces.map(workspace=>{const basePath=workspace.basePath||"/";return{workspace,name:workspace.name,basePath,// this regex ends with a `(\\/|$)` (forward slash or end) to prevent false
407
407
  // matches where the pathname is a false subset of the current pathname.
408
408
  // e.g. if the `workspace.basePath` is `/base/foobar` and the current
409
409
  // pathname is `/base/foo`, then that should not be a match
410
- basePathRegex:new RegExp("^".concat(escapeRegExp__default.default(basePath),"(\\/|$)"),"i")};});}function useSyncPathnameWithWorkspace(history,_workspaces){const workspaces=useNormalizedWorkspaces(_workspaces);const basePathRegex=React.useMemo(()=>createCommonBasePathRegex(workspaces),[workspaces]);const[serverSnapshot]=React.useState(()=>history.location.pathname);const store=React.useMemo(()=>{return{subscribe:onStoreChange=>history.listen(onStoreChange),getSnapshot:()=>history.location.pathname,getServerSnapshot:()=>serverSnapshot,selector:pathname=>matchWorkspace({basePathRegex,pathname,workspaces}),isEqual:(a,b)=>{if(a.type!==b.type)return false;switch(a.type){case"match":return a.workspace===b.workspace;case"redirect":return a.pathname===b.pathname;case"not-found":return true;default:throw new Error("Unknown type: ".concat(a.type));}}};},[basePathRegex,history,serverSnapshot,workspaces]);return withSelector.useSyncExternalStoreWithSelector(store.subscribe,store.getSnapshot,store.getServerSnapshot,store.selector,store.isEqual);}const RouterHistoryContext=React.createContext(null);function RouterHistoryProvider(_ref457){let{children,history}=_ref457;return/* @__PURE__ */jsxRuntime.jsx(RouterHistoryContext.Provider,{value:history,children});}function useRouterHistory(){const value=React.useContext(RouterHistoryContext);if(!value)throw new Error("Could not find `RouterHistoryProvider` context");return value;}const ActiveWorkspaceMatcherProvider=React.memo(function ActiveWorkspaceMatcherContextProvider(_ref458){let{children,history,activeWorkspace,setActiveWorkspace}=_ref458;const value=React.useMemo(()=>({activeWorkspace,setActiveWorkspace}),[activeWorkspace,setActiveWorkspace]);return/* @__PURE__ */jsxRuntime.jsx(ActiveWorkspaceMatcherContext.Provider,{value,children:/* @__PURE__ */jsxRuntime.jsx(RouterHistoryProvider,{history,children})});});const createHistory=()=>typeof document==="undefined"?history$1.createMemoryHistory():history$1.createBrowserHistory();function ActiveWorkspaceMatcher(_ref459){let{children,LoadingComponent,NotFoundComponent,unstable_history:historyProp}=_ref459;const workspaces=useWorkspaces();const history=React.useMemo(()=>historyProp||createHistory(),[historyProp]);const setActiveWorkspaceName=React.useCallback(workspaceName=>{const foundWorkspace=workspaces.find(workspace=>workspace.name===workspaceName);if(foundWorkspace){history.push(foundWorkspace.basePath);}},[history,workspaces]);const handleNavigateToDefaultWorkspace=React.useCallback(()=>{setActiveWorkspaceName(workspaces[0].name);},[setActiveWorkspaceName,workspaces]);const result=useSyncPathnameWithWorkspace(history,workspaces);React.useEffect(()=>{if(result.type==="redirect"){history.replace(result.pathname);}},[history,result]);switch(result.type){case"match":return/* @__PURE__ */jsxRuntime.jsx(ActiveWorkspaceMatcherProvider,{activeWorkspace:result.workspace,history,setActiveWorkspace:setActiveWorkspaceName,children});case"redirect":return/* @__PURE__ */jsxRuntime.jsx(LoadingComponent,{});case"not-found":return/* @__PURE__ */jsxRuntime.jsx(NotFoundComponent,{onNavigateToDefaultWorkspace:handleNavigateToDefaultWorkspace});default:throw new Error("Unknown type: ".concat(result.type));}}function useActiveWorkspace(){const value=React.useContext(ActiveWorkspaceMatcherContext);if(!value)throw new Error("Could not find `ActiveWorkspaceMatcher` context");return value;}var __freeze$L=Object.freeze;var __defProp$L=Object.defineProperty;var __template$L=(cooked,raw)=>__freeze$L(__defProp$L(cooked,"raw",{value:__freeze$L(raw||cooked.slice())}));var _a$L;const STATE_TITLES={"logged-in":"","logged-out":"Signed out","no-access":""};const Media$1=styled__default.default.div(_a$L||(_a$L=__template$L(["\n width: ",";\n height: ",";\n\n svg {\n width: 100%;\n height: 100%;\n }\n"])),props=>props.$size==="small"?"25px":"41px",props=>props.$size==="small"?"25px":"41px");const WorkspacePreviewIcon=_ref460=>{let{icon,size="small"}=_ref460;const iconComponent=React.useMemo(()=>createIcon(icon),[icon]);return/* @__PURE__ */jsxRuntime.jsx(Media$1,{$size:size,children:iconComponent});};const createIcon=icon=>{if(reactIs.isValidElementType(icon))return React.createElement(icon);if(React.isValidElement(icon))return icon;return void 0;};function WorkspacePreview(props){const{state,subtitle,selected,title,icon,iconRight}=props;const iconRightComponent=React.useMemo(()=>createIcon(iconRight),[iconRight]);return/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:"none",gap:3,children:[/* @__PURE__ */jsxRuntime.jsx(WorkspacePreviewIcon,{icon,size:"small"}),/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,space:2,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,textOverflow:"ellipsis",weight:"medium",children:title}),subtitle&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:subtitle})]}),state&&STATE_TITLES[state]&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingLeft:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,textOverflow:"ellipsis",children:STATE_TITLES[state]})}),(selected||iconRightComponent)&&/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",gap:4,paddingLeft:3,paddingRight:2,children:[selected&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{children:/* @__PURE__ */jsxRuntime.jsx(icons.CheckmarkIcon,{})}),iconRightComponent&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,children:iconRightComponent})]})]});}const useWorkspaceAuthStates=createHookFromObservableFactory(workspaces=>rxjs.combineLatest(workspaces.map(workspace=>// eslint-disable-next-line max-nested-callbacks
411
- workspace.auth.state.pipe(operators.map(state=>[workspace.name,state])))).pipe(operators.map(entries=>Object.fromEntries(entries))));const WORKSPACES_DOCS_URL="https://beta.sanity.io/docs/platform/studio/config/workspaces";var __freeze$K=Object.freeze;var __defProp$K=Object.defineProperty;var __template$K=(cooked,raw)=>__freeze$K(__defProp$K(cooked,"raw",{value:__freeze$K(raw||cooked.slice())}));var _a$K;const LINKS=[{url:"https://slack.sanity.io/",i18nKey:"workspaces.community-title",title:"Community"},{url:"https://www.sanity.io/docs",i18nKey:"workspaces.docs-title",title:"Docs"},{url:"https://www.sanity.io/legal/privacy",i18nKey:"workspaces.privacy-title",title:"Privacy"},{url:"https://www.sanity.io",i18nKey:"workspaces.sanity-io-title",title:"sanity.io"}];const StyledText=styled__default.default(ui.Text)(_a$K||(_a$K=__template$K(["\n a {\n color: inherit;\n }\n"])));function Layout(props){const{children,footer,header}=props;useTranslation();return/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:6,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Card,{border:true,radius:3,overflow:"auto",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{children:[typeof header==="object"&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:header}),typeof header==="string"&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingY:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Heading,{align:"center",size:1,children:header})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:Boolean(header),borderBottom:Boolean(footer),children})}),footer&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:footer})]})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:4,justify:"center",align:"center",paddingBottom:4,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:3,children:/* @__PURE__ */jsxRuntime.jsx(logos.SanityLogo,{})}),/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",gap:2,children:LINKS.map((link,index)=>/* @__PURE__ */jsxRuntime.jsxs(React__default.default.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(StyledText,{muted:true,size:1,children:/* @__PURE__ */jsxRuntime.jsx("a",{href:link.url,target:"_blank",rel:"noopener noreferrer",children:link.title})}),index<LINKS.length-1&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,children:"\u2022"})]},link.title))})]})]});}function WorkspaceAuth(){var _a;const workspaces=useWorkspaces();const{activeWorkspace,setActiveWorkspace}=useActiveWorkspace();const[authStates]=useWorkspaceAuthStates(workspaces);const[selectedWorkspaceName,setSelectedWorkspaceName]=React.useState((activeWorkspace==null?void 0:activeWorkspace.name)||null);const selectedWorkspace=workspaces.length===1?workspaces[0]:workspaces.find(workspace=>workspace.name===selectedWorkspaceName);const LoginComponent=(_a=selectedWorkspace==null?void 0:selectedWorkspace.auth)==null?void 0:_a.LoginComponent;const handleBack=React.useCallback(()=>setSelectedWorkspaceName(null),[]);const{t}=useTranslation();if(!authStates)return/* @__PURE__ */jsxRuntime.jsx(LoadingBlock,{showText:true});if(LoginComponent&&selectedWorkspace){return/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:2,children:[workspaces.length>1&&/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{icon:icons.ArrowLeftIcon,mode:"bleed",onClick:handleBack,text:t("workspaces.action.choose-another-workspace")})}),/* @__PURE__ */jsxRuntime.jsx(Layout,{header:/* @__PURE__ */jsxRuntime.jsx(ui.Box,{padding:3,children:/* @__PURE__ */jsxRuntime.jsx(WorkspacePreview,{icon:selectedWorkspace.icon,title:selectedWorkspace.title,subtitle:selectedWorkspace==null?void 0:selectedWorkspace.subtitle})}),children:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{padding:2,paddingBottom:3,paddingTop:4,children:/* @__PURE__ */React.createElement(LoginComponent,{...omit__default.default(selectedWorkspace,["type","__internal"]),key:selectedWorkspaceName})})})]});}return/* @__PURE__ */jsxRuntime.jsx(Layout,{header:t("workspaces.choose-your-workspace-label"),footer:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{padding:1,children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{as:"a",href:WORKSPACES_DOCS_URL,icon:icons.AddIcon,mode:"bleed",rel:"noopener noreferrer",size:"large",target:"__blank",text:t("workspaces.action.add-workspace")})}),children:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{space:1,paddingX:1,paddingY:2,children:workspaces.map(workspace=>{const authState=authStates[workspace.name];const state=authState.authenticated?"logged-in":workspace.auth.LoginComponent?"logged-out":"no-access";const handleSelectWorkspace=()=>{if(state==="logged-in"&&workspace.name!==activeWorkspace.name){setActiveWorkspace(workspace.name);}if(state==="logged-out"){setSelectedWorkspaceName(workspace.name);}};return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{as:"button",radius:2,padding:2,onClick:handleSelectWorkspace,children:/* @__PURE__ */jsxRuntime.jsx(WorkspacePreview,{icon:workspace==null?void 0:workspace.icon,iconRight:icons.ChevronRightIcon,state,subtitle:workspace==null?void 0:workspace.subtitle,title:(workspace==null?void 0:workspace.title)||workspace.name})},workspace.name);})})});}var __freeze$J=Object.freeze;var __defProp$J=Object.defineProperty;var __template$J=(cooked,raw)=>__freeze$J(__defProp$J(cooked,"raw",{value:__freeze$J(raw||cooked.slice())}));var _a$J;const StyledMenu$3=styled__default.default(ui.Menu)(_a$J||(_a$J=__template$J(["\n max-width: 350px;\n min-width: 250px;\n"])));const POPOVER_PROPS={constrainSize:true,fallbackPlacements:["bottom-end","bottom"],placement:"bottom-end"};function WorkspaceMenuButton(){const workspaces=useWorkspaces();const{activeWorkspace,setActiveWorkspace}=useActiveWorkspace();const[authStates]=useWorkspaceAuthStates(workspaces);const{navigateUrl}=router.useRouter();const{t}=useTranslation();const multipleWorkspaces=workspaces.length>1;if(!multipleWorkspaces){return null;}const disabled=!authStates;return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuButton,{button:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{content:t("workspaces.select-workspace-tooltip"),disabled,portal:true,children:/* @__PURE__ */jsxRuntime.jsx(ui.Button,{disabled,mode:"bleed",padding:2,width:"fill",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",gap:2,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,textOverflow:"ellipsis",weight:"medium",children:activeWorkspace.title})}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(icons.ChevronDownIcon,{})})]})})})}),id:"workspace-menu",menu:!disabled&&authStates?/* @__PURE__ */jsxRuntime.jsx(StyledMenu$3,{children:workspaces.map(workspace=>{const authState=authStates[workspace.name];const state=authState.authenticated?"logged-in":workspace.auth.LoginComponent?"logged-out":"no-access";const handleSelectWorkspace=()=>{if(state==="logged-in"&&workspace.name!==activeWorkspace.name){setActiveWorkspace(workspace.name);}if(state==="logged-out"){navigateUrl({path:workspace.basePath});}};const isSelected=workspace.name===activeWorkspace.name;return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{badgeText:STATE_TITLES[state],iconRight:isSelected?icons.CheckmarkIcon:void 0,onClick:handleSelectWorkspace,pressed:isSelected,preview:/* @__PURE__ */jsxRuntime.jsx(WorkspacePreviewIcon,{icon:workspace.icon,size:"small"}),selected:isSelected,text:(workspace==null?void 0:workspace.title)||workspace.name,tooltipProps:(workspace==null?void 0:workspace.subtitle)?{content:workspace.subtitle,placement:"right"}:void 0},workspace.name);})}):void 0,popover:POPOVER_PROPS});}function AuthenticateScreen(){return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",overflow:"auto",paddingX:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{height:"fill",direction:"column",align:"center",justify:"center",paddingTop:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:0,children:/* @__PURE__ */jsxRuntime.jsx(WorkspaceAuth,{})})})});}function ConfigErrorsScreen(){return/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children:"TODO: implement config errors screen"});}function NotAuthenticatedScreen(){const[currentUser,setCurrentUser]=React.useState(null);const[error,handleError]=React.useState(null);if(error)throw error;const{activeWorkspace}=useActiveWorkspace();const handleLogout=React.useCallback(()=>{var _a,_b;(_b=(_a=activeWorkspace.auth).logout)==null?void 0:_b.call(_a);},[activeWorkspace]);React.useEffect(()=>{const subscription=activeWorkspace.auth.state.subscribe({next:_ref461=>{let{currentUser:user}=_ref461;setCurrentUser(user);},error:handleError});return()=>{subscription.unsubscribe();};},[activeWorkspace]);const providerTitle=getProviderTitle(currentUser==null?void 0:currentUser.provider);const providerHelp=providerTitle?" through ".concat(providerTitle):"";return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Dialog,{id:"not-authorized-dialog",header:"Not authorized",width:1,footer:{confirmButton:{text:"Sign out",onClick:handleLogout,tone:"default"}},children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{children:"You are not authorized to access this studio. Maybe you could ask someone to invite you to collaborate on this project?"}),/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{children:["If you think this is an error, verify that you are signed in with the correct account. You are currently signed in as"," ",/* @__PURE__ */jsxRuntime.jsxs("strong",{children:[currentUser==null?void 0:currentUser.name," (",currentUser==null?void 0:currentUser.email,")"]}),providerHelp,"."]})]})})});}var __freeze$I=Object.freeze;var __defProp$I=Object.defineProperty;var __template$I=(cooked,raw)=>__freeze$I(__defProp$I(cooked,"raw",{value:__freeze$I(raw||cooked.slice())}));var _a$I;const ScreenReaderLabel=styled__default.default.label(_a$I||(_a$I=__template$I(["\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n overflow: hidden;\n overflow: clip;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n"])));function CorsOriginErrorScreen(props){const{projectId}=props;const origin=window.location.origin;const corsUrl=React.useMemo(()=>{const url=new URL("https://sanity.io/manage/project/".concat(projectId,"/api"));url.searchParams.set("cors","add");url.searchParams.set("origin",origin);url.searchParams.set("credentials","");return url.toString();},[origin,projectId]);React.useEffect(()=>{const handleFocus=()=>{window.location.reload();};window.addEventListener("focus",handleFocus);return()=>{window.removeEventListener("focus",handleFocus);};},[]);return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Dialog,{id:"cors-error-dialog",header:"Before you continue...",width:1,footer:{confirmButton:{text:"Continue",iconRight:icons.LaunchIcon,as:"a",href:corsUrl,target:"_blank",rel:"noopener noreferrer",tone:"primary"}},children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{children:["To access your content, you need to ",/* @__PURE__ */jsxRuntime.jsx("b",{children:"add the following URL as a CORS origin"})," to your Sanity project."]}),/* @__PURE__ */jsxRuntime.jsx(ScreenReaderLabel,{"aria-hidden":"true",children:"CORS URL to be added"}),/* @__PURE__ */jsxRuntime.jsx(ui.TextInput,{value:origin,readOnly:true})]})})});}function AuthBoundary(_ref462){let{children,AuthenticateComponent=AuthenticateScreen,LoadingComponent=LoadingBlock,NotAuthenticatedComponent=NotAuthenticatedScreen}=_ref462;const[error,handleError]=React.useState(null);if(error)throw error;const[loggedIn,setLoggedIn]=React.useState("loading");const{activeWorkspace}=useActiveWorkspace();React.useEffect(()=>{var _a,_b;(_b=(_a=activeWorkspace.auth).handleCallbackUrl)==null?void 0:_b.call(_a).catch(handleError);},[activeWorkspace.auth]);React.useEffect(()=>{const subscription=activeWorkspace.auth.state.subscribe({next:_ref463=>{let{authenticated,currentUser}=_ref463;var _a;if(((_a=currentUser==null?void 0:currentUser.roles)==null?void 0:_a.length)===0){setLoggedIn("unauthorized");return;}setLoggedIn(authenticated?"logged-in":"logged-out");},error:handleError});return()=>{subscription.unsubscribe();};},[activeWorkspace]);if(loggedIn==="loading")return/* @__PURE__ */jsxRuntime.jsx(LoadingComponent,{});if(loggedIn==="unauthorized")return/* @__PURE__ */jsxRuntime.jsx(NotAuthenticatedComponent,{});if(loggedIn==="logged-out")return/* @__PURE__ */jsxRuntime.jsx(AuthenticateComponent,{});return/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children});}const defaultTheme=theme.buildTheme();const ColorSchemeValueContext=React.createContext(null);const ColorSchemeSetValueContext=React.createContext(null);function useSystemScheme(){const prefersDark=ui.usePrefersDark();return prefersDark?"dark":"light";}function ColorThemeProvider(_ref464){let{children,scheme:_scheme}=_ref464;const systemScheme=useSystemScheme();const scheme=_scheme==="system"?systemScheme:_scheme;return/* @__PURE__ */jsxRuntime.jsx(ui.ThemeProvider,{scheme,theme:ui.studioTheme,children});}const LOCAL_STORAGE_KEY="sanityStudio:ui:colorScheme";function ColorSchemeProvider(_ref465){let{children,onSchemeChange,scheme:schemeProp}=_ref465;if(schemeProp){return/* @__PURE__ */jsxRuntime.jsx(ColorSchemeCustomProvider,{scheme:schemeProp,onSchemeChange,children});}return/* @__PURE__ */jsxRuntime.jsx(ColorSchemeLocalStorageProvider,{onSchemeChange,children});}function ColorSchemeLocalStorageProvider(_ref466){let{children,onSchemeChange}=_ref466;const store=React.useMemo(()=>{let snapshot;const subscribers=/* @__PURE__ */new Set();return{subscribe:onStoreChange=>{if(!snapshot){snapshot=getScheme(localStorage.getItem(LOCAL_STORAGE_KEY))||"system";}subscribers.add(onStoreChange);return()=>{subscribers.delete(onStoreChange);};},getSnapshot:()=>snapshot,setSnapshot:nextScheme=>{snapshot=getScheme(nextScheme);for(const subscription of subscribers){subscription();}},// Only called during server-side rendering, and hydration if using hydrateRoot
410
+ basePathRegex:new RegExp("^".concat(escapeRegExp__default.default(basePath),"(\\/|$)"),"i")};});}function useSyncPathnameWithWorkspace(history,_workspaces){const workspaces=useNormalizedWorkspaces(_workspaces);const basePathRegex=React.useMemo(()=>createCommonBasePathRegex(workspaces),[workspaces]);const[serverSnapshot]=React.useState(()=>history.location.pathname);const store=React.useMemo(()=>{return{subscribe:onStoreChange=>history.listen(onStoreChange),getSnapshot:()=>history.location.pathname,getServerSnapshot:()=>serverSnapshot,selector:pathname=>matchWorkspace({basePathRegex,pathname,workspaces}),isEqual:(a,b)=>{if(a.type!==b.type)return false;switch(a.type){case"match":return a.workspace===b.workspace;case"redirect":return a.pathname===b.pathname;case"not-found":return true;default:throw new Error("Unknown type: ".concat(a.type));}}};},[basePathRegex,history,serverSnapshot,workspaces]);return withSelector.useSyncExternalStoreWithSelector(store.subscribe,store.getSnapshot,store.getServerSnapshot,store.selector,store.isEqual);}const RouterHistoryContext=React.createContext(null);function RouterHistoryProvider(_ref458){let{children,history}=_ref458;return/* @__PURE__ */jsxRuntime.jsx(RouterHistoryContext.Provider,{value:history,children});}function useRouterHistory(){const value=React.useContext(RouterHistoryContext);if(!value)throw new Error("Could not find `RouterHistoryProvider` context");return value;}const ActiveWorkspaceMatcherProvider=React.memo(function ActiveWorkspaceMatcherContextProvider(_ref459){let{children,history,activeWorkspace,setActiveWorkspace}=_ref459;const value=React.useMemo(()=>({activeWorkspace,setActiveWorkspace}),[activeWorkspace,setActiveWorkspace]);return/* @__PURE__ */jsxRuntime.jsx(ActiveWorkspaceMatcherContext.Provider,{value,children:/* @__PURE__ */jsxRuntime.jsx(RouterHistoryProvider,{history,children})});});const createHistory=()=>typeof document==="undefined"?history$1.createMemoryHistory():history$1.createBrowserHistory();function ActiveWorkspaceMatcher(_ref460){let{children,LoadingComponent,NotFoundComponent,unstable_history:historyProp}=_ref460;const workspaces=useWorkspaces();const history=React.useMemo(()=>historyProp||createHistory(),[historyProp]);const setActiveWorkspaceName=React.useCallback(workspaceName=>{const foundWorkspace=workspaces.find(workspace=>workspace.name===workspaceName);if(foundWorkspace){history.push(foundWorkspace.basePath);}},[history,workspaces]);const handleNavigateToDefaultWorkspace=React.useCallback(()=>{setActiveWorkspaceName(workspaces[0].name);},[setActiveWorkspaceName,workspaces]);const result=useSyncPathnameWithWorkspace(history,workspaces);React.useEffect(()=>{if(result.type==="redirect"){history.replace(result.pathname);}},[history,result]);switch(result.type){case"match":return/* @__PURE__ */jsxRuntime.jsx(ActiveWorkspaceMatcherProvider,{activeWorkspace:result.workspace,history,setActiveWorkspace:setActiveWorkspaceName,children});case"redirect":return/* @__PURE__ */jsxRuntime.jsx(LoadingComponent,{});case"not-found":return/* @__PURE__ */jsxRuntime.jsx(NotFoundComponent,{onNavigateToDefaultWorkspace:handleNavigateToDefaultWorkspace});default:throw new Error("Unknown type: ".concat(result.type));}}function useActiveWorkspace(){const value=React.useContext(ActiveWorkspaceMatcherContext);if(!value)throw new Error("Could not find `ActiveWorkspaceMatcher` context");return value;}var __freeze$L=Object.freeze;var __defProp$L=Object.defineProperty;var __template$L=(cooked,raw)=>__freeze$L(__defProp$L(cooked,"raw",{value:__freeze$L(raw||cooked.slice())}));var _a$L;const STATE_TITLES={"logged-in":"","logged-out":"Signed out","no-access":""};const Media$1=styled__default.default.div(_a$L||(_a$L=__template$L(["\n width: ",";\n height: ",";\n\n svg {\n width: 100%;\n height: 100%;\n }\n"])),props=>props.$size==="small"?"25px":"41px",props=>props.$size==="small"?"25px":"41px");const WorkspacePreviewIcon=_ref461=>{let{icon,size="small"}=_ref461;const iconComponent=React.useMemo(()=>createIcon(icon),[icon]);return/* @__PURE__ */jsxRuntime.jsx(Media$1,{$size:size,children:iconComponent});};const createIcon=icon=>{if(reactIs.isValidElementType(icon))return React.createElement(icon);if(React.isValidElement(icon))return icon;return void 0;};function WorkspacePreview(props){const{state,subtitle,selected,title,icon,iconRight}=props;const iconRightComponent=React.useMemo(()=>createIcon(iconRight),[iconRight]);return/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:"none",gap:3,children:[/* @__PURE__ */jsxRuntime.jsx(WorkspacePreviewIcon,{icon,size:"small"}),/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,space:2,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,textOverflow:"ellipsis",weight:"medium",children:title}),subtitle&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:subtitle})]}),state&&STATE_TITLES[state]&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingLeft:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,textOverflow:"ellipsis",children:STATE_TITLES[state]})}),(selected||iconRightComponent)&&/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",gap:4,paddingLeft:3,paddingRight:2,children:[selected&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{children:/* @__PURE__ */jsxRuntime.jsx(icons.CheckmarkIcon,{})}),iconRightComponent&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,children:iconRightComponent})]})]});}const useWorkspaceAuthStates=createHookFromObservableFactory(workspaces=>rxjs.combineLatest(workspaces.map(workspace=>// eslint-disable-next-line max-nested-callbacks
411
+ workspace.auth.state.pipe(operators.map(state=>[workspace.name,state])))).pipe(operators.map(entries=>Object.fromEntries(entries))));const WORKSPACES_DOCS_URL="https://beta.sanity.io/docs/platform/studio/config/workspaces";var __freeze$K=Object.freeze;var __defProp$K=Object.defineProperty;var __template$K=(cooked,raw)=>__freeze$K(__defProp$K(cooked,"raw",{value:__freeze$K(raw||cooked.slice())}));var _a$K;const LINKS=[{url:"https://slack.sanity.io/",i18nKey:"workspaces.community-title",title:"Community"},{url:"https://www.sanity.io/docs",i18nKey:"workspaces.docs-title",title:"Docs"},{url:"https://www.sanity.io/legal/privacy",i18nKey:"workspaces.privacy-title",title:"Privacy"},{url:"https://www.sanity.io",i18nKey:"workspaces.sanity-io-title",title:"sanity.io"}];const StyledText=styled__default.default(ui.Text)(_a$K||(_a$K=__template$K(["\n a {\n color: inherit;\n }\n"])));function Layout(props){const{children,footer,header}=props;useTranslation();return/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:6,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Card,{border:true,radius:3,overflow:"auto",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{children:[typeof header==="object"&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:header}),typeof header==="string"&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingY:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Heading,{align:"center",size:1,children:header})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:Boolean(header),borderBottom:Boolean(footer),children})}),footer&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:footer})]})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:4,justify:"center",align:"center",paddingBottom:4,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:3,children:/* @__PURE__ */jsxRuntime.jsx(logos.SanityLogo,{})}),/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",gap:2,children:LINKS.map((link,index)=>/* @__PURE__ */jsxRuntime.jsxs(React__default.default.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(StyledText,{muted:true,size:1,children:/* @__PURE__ */jsxRuntime.jsx("a",{href:link.url,target:"_blank",rel:"noopener noreferrer",children:link.title})}),index<LINKS.length-1&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,children:"\u2022"})]},link.title))})]})]});}function WorkspaceAuth(){var _a;const workspaces=useWorkspaces();const{activeWorkspace,setActiveWorkspace}=useActiveWorkspace();const[authStates]=useWorkspaceAuthStates(workspaces);const[selectedWorkspaceName,setSelectedWorkspaceName]=React.useState((activeWorkspace==null?void 0:activeWorkspace.name)||null);const selectedWorkspace=workspaces.length===1?workspaces[0]:workspaces.find(workspace=>workspace.name===selectedWorkspaceName);const LoginComponent=(_a=selectedWorkspace==null?void 0:selectedWorkspace.auth)==null?void 0:_a.LoginComponent;const handleBack=React.useCallback(()=>setSelectedWorkspaceName(null),[]);const{t}=useTranslation();if(!authStates)return/* @__PURE__ */jsxRuntime.jsx(LoadingBlock,{showText:true});if(LoginComponent&&selectedWorkspace){return/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:2,children:[workspaces.length>1&&/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{icon:icons.ArrowLeftIcon,mode:"bleed",onClick:handleBack,text:t("workspaces.action.choose-another-workspace")})}),/* @__PURE__ */jsxRuntime.jsx(Layout,{header:/* @__PURE__ */jsxRuntime.jsx(ui.Box,{padding:3,children:/* @__PURE__ */jsxRuntime.jsx(WorkspacePreview,{icon:selectedWorkspace.icon,title:selectedWorkspace.title,subtitle:selectedWorkspace==null?void 0:selectedWorkspace.subtitle})}),children:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{padding:2,paddingBottom:3,paddingTop:4,children:/* @__PURE__ */React.createElement(LoginComponent,{...omit__default.default(selectedWorkspace,["type","__internal"]),key:selectedWorkspaceName})})})]});}return/* @__PURE__ */jsxRuntime.jsx(Layout,{header:t("workspaces.choose-your-workspace-label"),footer:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{padding:1,children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{as:"a",href:WORKSPACES_DOCS_URL,icon:icons.AddIcon,mode:"bleed",rel:"noopener noreferrer",size:"large",target:"__blank",text:t("workspaces.action.add-workspace")})}),children:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{space:1,paddingX:1,paddingY:2,children:workspaces.map(workspace=>{const authState=authStates[workspace.name];const state=authState.authenticated?"logged-in":workspace.auth.LoginComponent?"logged-out":"no-access";const handleSelectWorkspace=()=>{if(state==="logged-in"&&workspace.name!==activeWorkspace.name){setActiveWorkspace(workspace.name);}if(state==="logged-out"){setSelectedWorkspaceName(workspace.name);}};return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{as:"button",radius:2,padding:2,onClick:handleSelectWorkspace,children:/* @__PURE__ */jsxRuntime.jsx(WorkspacePreview,{icon:workspace==null?void 0:workspace.icon,iconRight:icons.ChevronRightIcon,state,subtitle:workspace==null?void 0:workspace.subtitle,title:(workspace==null?void 0:workspace.title)||workspace.name})},workspace.name);})})});}var __freeze$J=Object.freeze;var __defProp$J=Object.defineProperty;var __template$J=(cooked,raw)=>__freeze$J(__defProp$J(cooked,"raw",{value:__freeze$J(raw||cooked.slice())}));var _a$J;const StyledMenu$3=styled__default.default(ui.Menu)(_a$J||(_a$J=__template$J(["\n max-width: 350px;\n min-width: 250px;\n"])));const POPOVER_PROPS={constrainSize:true,fallbackPlacements:["bottom-end","bottom"],placement:"bottom-end"};function WorkspaceMenuButton(){const workspaces=useWorkspaces();const{activeWorkspace,setActiveWorkspace}=useActiveWorkspace();const[authStates]=useWorkspaceAuthStates(workspaces);const{navigateUrl}=router.useRouter();const{t}=useTranslation();const multipleWorkspaces=workspaces.length>1;if(!multipleWorkspaces){return null;}const disabled=!authStates;return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuButton,{button:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{content:t("workspaces.select-workspace-tooltip"),disabled,portal:true,children:/* @__PURE__ */jsxRuntime.jsx(ui.Button,{disabled,mode:"bleed",padding:2,width:"fill",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",gap:2,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,textOverflow:"ellipsis",weight:"medium",children:activeWorkspace.title})}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(icons.ChevronDownIcon,{})})]})})})}),id:"workspace-menu",menu:!disabled&&authStates?/* @__PURE__ */jsxRuntime.jsx(StyledMenu$3,{children:workspaces.map(workspace=>{const authState=authStates[workspace.name];const state=authState.authenticated?"logged-in":workspace.auth.LoginComponent?"logged-out":"no-access";const handleSelectWorkspace=()=>{if(state==="logged-in"&&workspace.name!==activeWorkspace.name){setActiveWorkspace(workspace.name);}if(state==="logged-out"){navigateUrl({path:workspace.basePath});}};const isSelected=workspace.name===activeWorkspace.name;return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{badgeText:STATE_TITLES[state],iconRight:isSelected?icons.CheckmarkIcon:void 0,onClick:handleSelectWorkspace,pressed:isSelected,preview:/* @__PURE__ */jsxRuntime.jsx(WorkspacePreviewIcon,{icon:workspace.icon,size:"small"}),selected:isSelected,text:(workspace==null?void 0:workspace.title)||workspace.name,tooltipProps:(workspace==null?void 0:workspace.subtitle)?{content:workspace.subtitle,placement:"right"}:void 0},workspace.name);})}):void 0,popover:POPOVER_PROPS});}function AuthenticateScreen(){return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",overflow:"auto",paddingX:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{height:"fill",direction:"column",align:"center",justify:"center",paddingTop:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:0,children:/* @__PURE__ */jsxRuntime.jsx(WorkspaceAuth,{})})})});}function ConfigErrorsScreen(){return/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children:"TODO: implement config errors screen"});}function NotAuthenticatedScreen(){const[currentUser,setCurrentUser]=React.useState(null);const[error,handleError]=React.useState(null);if(error)throw error;const{activeWorkspace}=useActiveWorkspace();const handleLogout=React.useCallback(()=>{var _a,_b;(_b=(_a=activeWorkspace.auth).logout)==null?void 0:_b.call(_a);},[activeWorkspace]);React.useEffect(()=>{const subscription=activeWorkspace.auth.state.subscribe({next:_ref462=>{let{currentUser:user}=_ref462;setCurrentUser(user);},error:handleError});return()=>{subscription.unsubscribe();};},[activeWorkspace]);const providerTitle=getProviderTitle(currentUser==null?void 0:currentUser.provider);const providerHelp=providerTitle?" through ".concat(providerTitle):"";return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Dialog,{id:"not-authorized-dialog",header:"Not authorized",width:1,footer:{confirmButton:{text:"Sign out",onClick:handleLogout,tone:"default"}},children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{children:"You are not authorized to access this studio. Maybe you could ask someone to invite you to collaborate on this project?"}),/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{children:["If you think this is an error, verify that you are signed in with the correct account. You are currently signed in as"," ",/* @__PURE__ */jsxRuntime.jsxs("strong",{children:[currentUser==null?void 0:currentUser.name," (",currentUser==null?void 0:currentUser.email,")"]}),providerHelp,"."]})]})})});}var __freeze$I=Object.freeze;var __defProp$I=Object.defineProperty;var __template$I=(cooked,raw)=>__freeze$I(__defProp$I(cooked,"raw",{value:__freeze$I(raw||cooked.slice())}));var _a$I;const ScreenReaderLabel=styled__default.default.label(_a$I||(_a$I=__template$I(["\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n overflow: hidden;\n overflow: clip;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n"])));function CorsOriginErrorScreen(props){const{projectId}=props;const origin=window.location.origin;const corsUrl=React.useMemo(()=>{const url=new URL("https://sanity.io/manage/project/".concat(projectId,"/api"));url.searchParams.set("cors","add");url.searchParams.set("origin",origin);url.searchParams.set("credentials","");return url.toString();},[origin,projectId]);React.useEffect(()=>{const handleFocus=()=>{window.location.reload();};window.addEventListener("focus",handleFocus);return()=>{window.removeEventListener("focus",handleFocus);};},[]);return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Dialog,{id:"cors-error-dialog",header:"Before you continue...",width:1,footer:{confirmButton:{text:"Continue",iconRight:icons.LaunchIcon,as:"a",href:corsUrl,target:"_blank",rel:"noopener noreferrer",tone:"primary"}},children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{children:["To access your content, you need to ",/* @__PURE__ */jsxRuntime.jsx("b",{children:"add the following URL as a CORS origin"})," to your Sanity project."]}),/* @__PURE__ */jsxRuntime.jsx(ScreenReaderLabel,{"aria-hidden":"true",children:"CORS URL to be added"}),/* @__PURE__ */jsxRuntime.jsx(ui.TextInput,{value:origin,readOnly:true})]})})});}function AuthBoundary(_ref463){let{children,AuthenticateComponent=AuthenticateScreen,LoadingComponent=LoadingBlock,NotAuthenticatedComponent=NotAuthenticatedScreen}=_ref463;const[error,handleError]=React.useState(null);if(error)throw error;const[loggedIn,setLoggedIn]=React.useState("loading");const{activeWorkspace}=useActiveWorkspace();React.useEffect(()=>{var _a,_b;(_b=(_a=activeWorkspace.auth).handleCallbackUrl)==null?void 0:_b.call(_a).catch(handleError);},[activeWorkspace.auth]);React.useEffect(()=>{const subscription=activeWorkspace.auth.state.subscribe({next:_ref464=>{let{authenticated,currentUser}=_ref464;var _a;if(((_a=currentUser==null?void 0:currentUser.roles)==null?void 0:_a.length)===0){setLoggedIn("unauthorized");return;}setLoggedIn(authenticated?"logged-in":"logged-out");},error:handleError});return()=>{subscription.unsubscribe();};},[activeWorkspace]);if(loggedIn==="loading")return/* @__PURE__ */jsxRuntime.jsx(LoadingComponent,{});if(loggedIn==="unauthorized")return/* @__PURE__ */jsxRuntime.jsx(NotAuthenticatedComponent,{});if(loggedIn==="logged-out")return/* @__PURE__ */jsxRuntime.jsx(AuthenticateComponent,{});return/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children});}const defaultTheme=theme.buildTheme();const ColorSchemeValueContext=React.createContext(null);const ColorSchemeSetValueContext=React.createContext(null);function useSystemScheme(){const prefersDark=ui.usePrefersDark();return prefersDark?"dark":"light";}function ColorThemeProvider(_ref465){let{children,scheme:_scheme}=_ref465;const systemScheme=useSystemScheme();const scheme=_scheme==="system"?systemScheme:_scheme;return/* @__PURE__ */jsxRuntime.jsx(ui.ThemeProvider,{scheme,theme:ui.studioTheme,children});}const LOCAL_STORAGE_KEY="sanityStudio:ui:colorScheme";function ColorSchemeProvider(_ref466){let{children,onSchemeChange,scheme:schemeProp}=_ref466;if(schemeProp){return/* @__PURE__ */jsxRuntime.jsx(ColorSchemeCustomProvider,{scheme:schemeProp,onSchemeChange,children});}return/* @__PURE__ */jsxRuntime.jsx(ColorSchemeLocalStorageProvider,{onSchemeChange,children});}function ColorSchemeLocalStorageProvider(_ref467){let{children,onSchemeChange}=_ref467;const store=React.useMemo(()=>{let snapshot;const subscribers=/* @__PURE__ */new Set();return{subscribe:onStoreChange=>{if(!snapshot){snapshot=getScheme(localStorage.getItem(LOCAL_STORAGE_KEY))||"system";}subscribers.add(onStoreChange);return()=>{subscribers.delete(onStoreChange);};},getSnapshot:()=>snapshot,setSnapshot:nextScheme=>{snapshot=getScheme(nextScheme);for(const subscription of subscribers){subscription();}},// Only called during server-side rendering, and hydration if using hydrateRoot
412
412
  // https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering
413
- getServerSnapshot:()=>"system"};},[]);const scheme=React.useSyncExternalStore(store.subscribe,store.getSnapshot,store.getServerSnapshot);React.useEffect(()=>{if(typeof onSchemeChange==="function"){onSchemeChange(scheme);}localStorage.setItem(LOCAL_STORAGE_KEY,scheme);},[onSchemeChange,scheme]);return/* @__PURE__ */jsxRuntime.jsx(ColorSchemeSetValueContext.Provider,{value:store.setSnapshot,children:/* @__PURE__ */jsxRuntime.jsx(ColorSchemeValueContext.Provider,{value:scheme,children:/* @__PURE__ */jsxRuntime.jsx(ColorThemeProvider,{scheme,children})})});}function getScheme(scheme){switch(scheme){case"dark":case"light":return scheme;default:return"system";}}function ColorSchemeCustomProvider(_ref467){let{children,onSchemeChange,scheme}=_ref467;return/* @__PURE__ */jsxRuntime.jsx(ColorSchemeSetValueContext.Provider,{value:typeof onSchemeChange==="function"?onSchemeChange:false,children:/* @__PURE__ */jsxRuntime.jsx(ColorSchemeValueContext.Provider,{value:scheme,children:/* @__PURE__ */jsxRuntime.jsx(ColorThemeProvider,{scheme,children})})});}function useColorSchemeSetValue(){const setValue=React.useContext(ColorSchemeSetValueContext);if(setValue===null)throw new Error("Could not find `ColorSchemeSetValueContext` context");return setValue;}function _useColorSchemeInternalValue(){const value=React.useContext(ColorSchemeValueContext);if(value===null)throw new Error("Could not find `ColorSchemeValueContext` context");return value;}function useColorSchemeValue(){const scheme=_useColorSchemeInternalValue();const systemScheme=useSystemScheme();return scheme==="system"?systemScheme:scheme;}function useColorScheme(){const scheme=useColorSchemeValue();const setScheme=useColorSchemeSetValue();return React.useMemo(()=>({scheme,setScheme}),[scheme,setScheme]);}function useColorSchemeOptions(setScheme,t){const scheme=_useColorSchemeInternalValue();return React.useMemo(()=>{return[{title:t("user-menu.color-scheme.system-title"),name:"system",label:t("user-menu.color-scheme.system-description"),selected:scheme==="system",onSelect:()=>setScheme("system"),icon:icons.DesktopIcon},{title:t("user-menu.color-scheme.dark-title"),name:"dark",label:t("user-menu.color-scheme.dark-description"),selected:scheme==="dark",onSelect:()=>setScheme("dark"),icon:icons.MoonIcon},{title:t("user-menu.color-scheme.light-title"),name:"light",label:t("user-menu.color-scheme.light-description"),selected:scheme==="light",onSelect:()=>setScheme("light"),icon:icons.SunIcon}];},[scheme,setScheme,t]);}const isThemerTheme=theme=>theme.__themer===true;function getThemeValues(theme){var _a,_b;return{...defaultTheme,v2:theme.v2,fonts:isThemerTheme(theme)?defaultTheme.fonts:(_a=theme.fonts)!=null?_a:defaultTheme.fonts,color:(_b=theme.color)!=null?_b:defaultTheme.color};}function StudioThemeProvider(_ref468){let{children}=_ref468;const theme=useActiveWorkspace().activeWorkspace.theme;if(theme.__legacy){const scheme=theme.__dark?"dark":"light";return/* @__PURE__ */jsxRuntime.jsx(ColorSchemeSetValueContext.Provider,{value:false,children:/* @__PURE__ */jsxRuntime.jsx(ColorSchemeValueContext.Provider,{value:scheme,children:/* @__PURE__ */jsxRuntime.jsx(ui.ThemeProvider,{scheme,theme:getThemeValues(theme),children:/* @__PURE__ */jsxRuntime.jsx(ui.LayerProvider,{children})})})});}return/* @__PURE__ */jsxRuntime.jsx(ui.ThemeProvider,{theme:getThemeValues(theme),children:/* @__PURE__ */jsxRuntime.jsx(ui.LayerProvider,{children})});}function StudioErrorBoundary(_ref469){let{children,heading="An error occured"}=_ref469;const[{error},setError]=React.useState({error:null});const message=isRecord$4(error)&&typeof error.message==="string"&&error.message;const stack=isRecord$4(error)&&typeof error.stack==="string"&&error.stack;const handleResetError=React.useCallback(()=>setError({error:null}),[setError]);useHotModuleReload.useHotModuleReload(handleResetError);if(error instanceof CorsOriginError){return/* @__PURE__ */jsxRuntime.jsx(CorsOriginErrorScreen,{projectId:error==null?void 0:error.projectId});}if(error instanceof SchemaError){return/* @__PURE__ */jsxRuntime.jsx(SchemaErrorsScreen,{schema:error.schema});}if(!error){return/* @__PURE__ */jsxRuntime.jsx(ui.ErrorBoundary,{onCatch:setError,children});}return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",overflow:"auto",paddingY:[4,5,6,7],paddingX:4,sizing:"border",tone:"critical",children:/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Heading,{children:heading}),/* @__PURE__ */jsxRuntime.jsx("div",{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{onClick:handleResetError,text:"Retry",tone:"default"})}),/* @__PURE__ */jsxRuntime.jsx(ui.Card,{border:true,radius:2,overflow:"auto",padding:4,tone:"inherit",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[message&&/* @__PURE__ */jsxRuntime.jsx(ui.Code,{size:1,children:/* @__PURE__ */jsxRuntime.jsxs("strong",{children:["Error: ",message]})}),stack&&/* @__PURE__ */jsxRuntime.jsx(ui.Code,{size:1,children:stack})]})})]})})});}const Z_OFFSET={toast:[100,11e3]};var __freeze$H=Object.freeze;var __defProp$H=Object.defineProperty;var __template$H=(cooked,raw)=>__freeze$H(__defProp$H(cooked,"raw",{value:__freeze$H(raw||cooked.slice())}));var _a$H,_b$o;styled__default.default(ui.Flex)(_a$H||(_a$H=__template$H([""])));styled__default.default(ui.Box).attrs({padding:4})(_b$o||(_b$o=__template$H([""])));function createRouter(opts){const{basePath="/",tools}=opts;const toolRoute=router.route.create("/:tool",toolParams=>{let tool=tools.find(current=>current.name===toolParams.tool);if(!tool&&toolParams.tool==="desk"){tool=tools.find(current=>current.name==="structure");}return tool?router.route.scope(tool.name,"/",tool.router):router.route.create("/");});return router.route.create(basePath,[router.route.intents("/intent"),toolRoute]);}function getOrderedTools(tools){const pluginConfig={};const config=pluginConfig.toolSwitcher||{};const order=config.order||[];const hidden=config.hidden||[];if(!order.length&&!hidden.length){return tools;}const keyed=tools.reduce((target,tool)=>{const title=tool.title||"<unknown>";if(!tool.name){console.warn('Tool "'.concat(title,'" does not have the required "name" property'));return target;}if(target[tool.name]){const existing=target[tool.name].tool.title;console.warn('Tools with duplicate name "'.concat(tool.name,'" found ("').concat(title,'" and "').concat(existing,'")'));return target;}const toolIndex=order.indexOf(tool.name);target[tool.name]={tool,index:toolIndex===-1?Infinity:toolIndex};return target;},{});const isVisible=tool=>hidden.indexOf(tool.name)===-1;const ret=tools.filter(isVisible);ret.sort((tool1,tool2)=>{const toolA=keyed[tool1.name];const toolB=keyed[tool2.name];const indexA=toolA?toolA.index:Infinity;const indexB=toolB?toolB.index:Infinity;if(indexA===indexB){return 0;}return indexA-indexB;});return ret;}const WEIGHTED_CREATE_INTENT_PARAMS=["template"];const WEIGHTED_EDIT_INTENT_PARAMS=["mode"];function resolveUrlStateWithDefaultTool(tools,state){const orderedTools=getOrderedTools(tools);const defaultTool=orderedTools[0];if(!state||state.tool||!defaultTool){return state;}return Object.assign({},state,{tool:defaultTool.name});}function makeBackwardsCompatible(tools,state){if(!state){return state;}if(getOrderedTools(tools).find(tool=>tool.name===state.space)){return{...state,tool:state.space,space:void 0};}return state;}function resolveDefaultState(tools,state){const urlStateWithDefaultTool=resolveUrlStateWithDefaultTool(tools,makeBackwardsCompatible(tools,state));return urlStateWithDefaultTool;}function resolveIntentState(tools,prevState,nextState){var _a;const{intent,params,payload}=nextState;if(typeof intent!=="string"){throw new Error("intent must be a string");}if(!isRecord$4(params)){throw new Error("intent params must be a string");}const orderedTools=getOrderedTools(tools);const currentTool=(prevState==null?void 0:prevState.tool)?orderedTools.find(tool=>tool.name===prevState.tool):null;const otherTools=currentTool?orderedTools.filter(tool=>tool!==currentTool):orderedTools;let weightedParams=[];if(intent==="create"){weightedParams=WEIGHTED_CREATE_INTENT_PARAMS;}else if(intent==="edit"){weightedParams=WEIGHTED_EDIT_INTENT_PARAMS;}const initialMatch={score:-1,tool:null};const{tool:matchingTool}=(currentTool?[currentTool,...otherTools]:orderedTools).reduce((prev,tool)=>{if(!tool||typeof tool.canHandleIntent!=="function"){return prev;}const canHandle=tool.canHandleIntent(intent,params,prevState&&prevState[tool.name]);if(typeof canHandle==="boolean"){return canHandle&&prev.score<0?{score:0,tool}:prev;}if(!isRecord$4(canHandle)){return prev;}const score=weightedParams.reduce((prevScore,weightedParam)=>{return weightedParam in params&&canHandle[weightedParam]===true?prevScore+1:prevScore;},0);return score>prev.score?{score,tool}:prev;},initialMatch);if(matchingTool==null?void 0:matchingTool.getIntentState){const _toolState=matchingTool.getIntentState(intent,params,prevState&&prevState[matchingTool.name],payload);const{_searchParams,...toolState}=_toolState;const nextUrlState={...prevState,tool:matchingTool.name,[matchingTool.name]:toolState};if((_a=matchingTool.router)==null?void 0:_a.__unsafe_disableScopedSearchParams){nextUrlState._searchParams=_searchParams;}else{toolState._searchParams=_searchParams;}return{type:"state",isNotFound:false,state:nextUrlState};}return{type:"intent",isNotFound:true,intent:{name:intent,params}};}function decodeUrlState(rootRouter,pathname){return{type:"state",state:rootRouter.decode(pathname)||{},isNotFound:rootRouter.isNotFound(pathname)};}function WorkspaceRouterProvider(_ref470){let{children,LoadingComponent,workspace}=_ref470;const{basePath,tools}=workspace;const history=useRouterHistory();const router$1=React.useMemo(()=>createRouter({basePath,tools}),[basePath,tools]);const[state,onNavigate]=useRouterFromWorkspaceHistory(history,router$1,tools);if(!state)return/* @__PURE__ */jsxRuntime.jsx(LoadingComponent,{});return/* @__PURE__ */jsxRuntime.jsx(router.RouterProvider,{onNavigate,router:router$1,state,children});}function useRouterFromWorkspaceHistory(history,router,tools){var _a;const store=React.useMemo(()=>{const routerBasePath=router.getBasePath();const routerBasePathRegex=new RegExp("^".concat(escapeRegExp__default.default(routerBasePath),"(\\/|$)"),"i");const shouldHandle=pathname=>// this is necessary to prevent emissions intended for other workspaces.
413
+ getServerSnapshot:()=>"system"};},[]);const scheme=React.useSyncExternalStore(store.subscribe,store.getSnapshot,store.getServerSnapshot);React.useEffect(()=>{if(typeof onSchemeChange==="function"){onSchemeChange(scheme);}localStorage.setItem(LOCAL_STORAGE_KEY,scheme);},[onSchemeChange,scheme]);return/* @__PURE__ */jsxRuntime.jsx(ColorSchemeSetValueContext.Provider,{value:store.setSnapshot,children:/* @__PURE__ */jsxRuntime.jsx(ColorSchemeValueContext.Provider,{value:scheme,children:/* @__PURE__ */jsxRuntime.jsx(ColorThemeProvider,{scheme,children})})});}function getScheme(scheme){switch(scheme){case"dark":case"light":return scheme;default:return"system";}}function ColorSchemeCustomProvider(_ref468){let{children,onSchemeChange,scheme}=_ref468;return/* @__PURE__ */jsxRuntime.jsx(ColorSchemeSetValueContext.Provider,{value:typeof onSchemeChange==="function"?onSchemeChange:false,children:/* @__PURE__ */jsxRuntime.jsx(ColorSchemeValueContext.Provider,{value:scheme,children:/* @__PURE__ */jsxRuntime.jsx(ColorThemeProvider,{scheme,children})})});}function useColorSchemeSetValue(){const setValue=React.useContext(ColorSchemeSetValueContext);if(setValue===null)throw new Error("Could not find `ColorSchemeSetValueContext` context");return setValue;}function _useColorSchemeInternalValue(){const value=React.useContext(ColorSchemeValueContext);if(value===null)throw new Error("Could not find `ColorSchemeValueContext` context");return value;}function useColorSchemeValue(){const scheme=_useColorSchemeInternalValue();const systemScheme=useSystemScheme();return scheme==="system"?systemScheme:scheme;}function useColorScheme(){const scheme=useColorSchemeValue();const setScheme=useColorSchemeSetValue();return React.useMemo(()=>({scheme,setScheme}),[scheme,setScheme]);}function useColorSchemeOptions(setScheme,t){const scheme=_useColorSchemeInternalValue();return React.useMemo(()=>{return[{title:t("user-menu.color-scheme.system-title"),name:"system",label:t("user-menu.color-scheme.system-description"),selected:scheme==="system",onSelect:()=>setScheme("system"),icon:icons.DesktopIcon},{title:t("user-menu.color-scheme.dark-title"),name:"dark",label:t("user-menu.color-scheme.dark-description"),selected:scheme==="dark",onSelect:()=>setScheme("dark"),icon:icons.MoonIcon},{title:t("user-menu.color-scheme.light-title"),name:"light",label:t("user-menu.color-scheme.light-description"),selected:scheme==="light",onSelect:()=>setScheme("light"),icon:icons.SunIcon}];},[scheme,setScheme,t]);}const isThemerTheme=theme=>theme.__themer===true;function getThemeValues(theme){var _a,_b;return{...defaultTheme,v2:theme.v2,fonts:isThemerTheme(theme)?defaultTheme.fonts:(_a=theme.fonts)!=null?_a:defaultTheme.fonts,color:(_b=theme.color)!=null?_b:defaultTheme.color};}function StudioThemeProvider(_ref469){let{children}=_ref469;const theme=useActiveWorkspace().activeWorkspace.theme;if(theme.__legacy){const scheme=theme.__dark?"dark":"light";return/* @__PURE__ */jsxRuntime.jsx(ColorSchemeSetValueContext.Provider,{value:false,children:/* @__PURE__ */jsxRuntime.jsx(ColorSchemeValueContext.Provider,{value:scheme,children:/* @__PURE__ */jsxRuntime.jsx(ui.ThemeProvider,{scheme,theme:getThemeValues(theme),children:/* @__PURE__ */jsxRuntime.jsx(ui.LayerProvider,{children})})})});}return/* @__PURE__ */jsxRuntime.jsx(ui.ThemeProvider,{theme:getThemeValues(theme),children:/* @__PURE__ */jsxRuntime.jsx(ui.LayerProvider,{children})});}function StudioErrorBoundary(_ref470){let{children,heading="An error occured"}=_ref470;const[{error},setError]=React.useState({error:null});const message=isRecord$4(error)&&typeof error.message==="string"&&error.message;const stack=isRecord$4(error)&&typeof error.stack==="string"&&error.stack;const handleResetError=React.useCallback(()=>setError({error:null}),[setError]);useHotModuleReload.useHotModuleReload(handleResetError);if(error instanceof CorsOriginError){return/* @__PURE__ */jsxRuntime.jsx(CorsOriginErrorScreen,{projectId:error==null?void 0:error.projectId});}if(error instanceof SchemaError){return/* @__PURE__ */jsxRuntime.jsx(SchemaErrorsScreen,{schema:error.schema});}if(!error){return/* @__PURE__ */jsxRuntime.jsx(ui.ErrorBoundary,{onCatch:setError,children});}return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",overflow:"auto",paddingY:[4,5,6,7],paddingX:4,sizing:"border",tone:"critical",children:/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Heading,{children:heading}),/* @__PURE__ */jsxRuntime.jsx("div",{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{onClick:handleResetError,text:"Retry",tone:"default"})}),/* @__PURE__ */jsxRuntime.jsx(ui.Card,{border:true,radius:2,overflow:"auto",padding:4,tone:"inherit",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[message&&/* @__PURE__ */jsxRuntime.jsx(ui.Code,{size:1,children:/* @__PURE__ */jsxRuntime.jsxs("strong",{children:["Error: ",message]})}),stack&&/* @__PURE__ */jsxRuntime.jsx(ui.Code,{size:1,children:stack})]})})]})})});}const Z_OFFSET={toast:[100,11e3]};var __freeze$H=Object.freeze;var __defProp$H=Object.defineProperty;var __template$H=(cooked,raw)=>__freeze$H(__defProp$H(cooked,"raw",{value:__freeze$H(raw||cooked.slice())}));var _a$H,_b$o;styled__default.default(ui.Flex)(_a$H||(_a$H=__template$H([""])));styled__default.default(ui.Box).attrs({padding:4})(_b$o||(_b$o=__template$H([""])));function createRouter(opts){const{basePath="/",tools}=opts;const toolRoute=router.route.create("/:tool",toolParams=>{let tool=tools.find(current=>current.name===toolParams.tool);if(!tool&&toolParams.tool==="desk"){tool=tools.find(current=>current.name==="structure");}return tool?router.route.scope(tool.name,"/",tool.router):router.route.create("/");});return router.route.create(basePath,[router.route.intents("/intent"),toolRoute]);}function getOrderedTools(tools){const pluginConfig={};const config=pluginConfig.toolSwitcher||{};const order=config.order||[];const hidden=config.hidden||[];if(!order.length&&!hidden.length){return tools;}const keyed=tools.reduce((target,tool)=>{const title=tool.title||"<unknown>";if(!tool.name){console.warn('Tool "'.concat(title,'" does not have the required "name" property'));return target;}if(target[tool.name]){const existing=target[tool.name].tool.title;console.warn('Tools with duplicate name "'.concat(tool.name,'" found ("').concat(title,'" and "').concat(existing,'")'));return target;}const toolIndex=order.indexOf(tool.name);target[tool.name]={tool,index:toolIndex===-1?Infinity:toolIndex};return target;},{});const isVisible=tool=>hidden.indexOf(tool.name)===-1;const ret=tools.filter(isVisible);ret.sort((tool1,tool2)=>{const toolA=keyed[tool1.name];const toolB=keyed[tool2.name];const indexA=toolA?toolA.index:Infinity;const indexB=toolB?toolB.index:Infinity;if(indexA===indexB){return 0;}return indexA-indexB;});return ret;}const WEIGHTED_CREATE_INTENT_PARAMS=["template"];const WEIGHTED_EDIT_INTENT_PARAMS=["mode"];function resolveUrlStateWithDefaultTool(tools,state){const orderedTools=getOrderedTools(tools);const defaultTool=orderedTools[0];if(!state||state.tool||!defaultTool){return state;}return Object.assign({},state,{tool:defaultTool.name});}function makeBackwardsCompatible(tools,state){if(!state){return state;}if(getOrderedTools(tools).find(tool=>tool.name===state.space)){return{...state,tool:state.space,space:void 0};}return state;}function resolveDefaultState(tools,state){const urlStateWithDefaultTool=resolveUrlStateWithDefaultTool(tools,makeBackwardsCompatible(tools,state));return urlStateWithDefaultTool;}function resolveIntentState(tools,prevState,nextState){var _a;const{intent,params,payload}=nextState;if(typeof intent!=="string"){throw new Error("intent must be a string");}if(!isRecord$4(params)){throw new Error("intent params must be a string");}const orderedTools=getOrderedTools(tools);const currentTool=(prevState==null?void 0:prevState.tool)?orderedTools.find(tool=>tool.name===prevState.tool):null;const otherTools=currentTool?orderedTools.filter(tool=>tool!==currentTool):orderedTools;let weightedParams=[];if(intent==="create"){weightedParams=WEIGHTED_CREATE_INTENT_PARAMS;}else if(intent==="edit"){weightedParams=WEIGHTED_EDIT_INTENT_PARAMS;}const initialMatch={score:-1,tool:null};const{tool:matchingTool}=(currentTool?[currentTool,...otherTools]:orderedTools).reduce((prev,tool)=>{if(!tool||typeof tool.canHandleIntent!=="function"){return prev;}const canHandle=tool.canHandleIntent(intent,params,prevState&&prevState[tool.name]);if(typeof canHandle==="boolean"){return canHandle&&prev.score<0?{score:0,tool}:prev;}if(!isRecord$4(canHandle)){return prev;}const score=weightedParams.reduce((prevScore,weightedParam)=>{return weightedParam in params&&canHandle[weightedParam]===true?prevScore+1:prevScore;},0);return score>prev.score?{score,tool}:prev;},initialMatch);if(matchingTool==null?void 0:matchingTool.getIntentState){const _toolState=matchingTool.getIntentState(intent,params,prevState&&prevState[matchingTool.name],payload);const{_searchParams,...toolState}=_toolState;const nextUrlState={...prevState,tool:matchingTool.name,[matchingTool.name]:toolState};if((_a=matchingTool.router)==null?void 0:_a.__unsafe_disableScopedSearchParams){nextUrlState._searchParams=_searchParams;}else{toolState._searchParams=_searchParams;}return{type:"state",isNotFound:false,state:nextUrlState};}return{type:"intent",isNotFound:true,intent:{name:intent,params}};}function decodeUrlState(rootRouter,pathname){return{type:"state",state:rootRouter.decode(pathname)||{},isNotFound:rootRouter.isNotFound(pathname)};}function WorkspaceRouterProvider(_ref471){let{children,LoadingComponent,workspace}=_ref471;const{basePath,tools}=workspace;const history=useRouterHistory();const router$1=React.useMemo(()=>createRouter({basePath,tools}),[basePath,tools]);const[state,onNavigate]=useRouterFromWorkspaceHistory(history,router$1,tools);if(!state)return/* @__PURE__ */jsxRuntime.jsx(LoadingComponent,{});return/* @__PURE__ */jsxRuntime.jsx(router.RouterProvider,{onNavigate,router:router$1,state,children});}function useRouterFromWorkspaceHistory(history,router,tools){var _a;const store=React.useMemo(()=>{const routerBasePath=router.getBasePath();const routerBasePathRegex=new RegExp("^".concat(escapeRegExp__default.default(routerBasePath),"(\\/|$)"),"i");const shouldHandle=pathname=>// this is necessary to prevent emissions intended for other workspaces.
414
414
  routerBasePath==="/"?true:routerBasePathRegex.test(pathname);return{subscribe:onStoreChange=>history.listen(onStoreChange),getSnapshot:()=>"".concat(history.location.pathname).concat(history.location.search||""),// Always return null for the server snapshot, as we can't know how to resolve intents until after authentication is done, which is browser-only
415
- getServerSnapshot:()=>null,selector:pathname=>typeof pathname==="string"&&shouldHandle(pathname)?decodeUrlState(router,pathname):null};},[history,router]);const event=withSelector.useSyncExternalStoreWithSelector(store.subscribe,store.getSnapshot,store.getServerSnapshot,store.selector,isEqual__default.default);const prevEvent=React.useRef(event);React.useEffect(()=>{var _a2;if((event==null?void 0:event.type)==="state"&&!((_a2=event.state)==null?void 0:_a2.intent)){const defaultState=resolveDefaultState(tools,event.state);if(defaultState&&defaultState!==event.state){history.replace(router.encode(defaultState));}}},[event==null?void 0:event.state,event==null?void 0:event.type,history,router,tools]);React.useEffect(()=>{const resolvedIntent=maybeResolveIntent(event,router,tools,prevEvent);if(resolvedIntent){history.replace(resolvedIntent);}else{prevEvent.current=event;}},[event,history,router,tools]);const handleNavigate=React.useMemo(()=>{return _ref471=>{let{path,replace}=_ref471;const predictedEvent=store.selector(path);const resolvedIntent=maybeResolveIntent(predictedEvent,router,tools,prevEvent);const resolvedPath=typeof resolvedIntent==="string"?resolvedIntent:path;if(replace){history.replace(resolvedPath);}else{history.push(resolvedPath);}};},[history,router,store,tools]);return[(_a=event==null?void 0:event.state)!=null?_a:null,handleNavigate];}function maybeResolveIntent(event,router,tools,prevEvent){var _a,_b;if((event==null?void 0:event.type)==="state"&&((_a=event.state)==null?void 0:_a.intent)){const redirectState=resolveIntentState(tools,((_b=prevEvent.current)==null?void 0:_b.type)==="state"?prevEvent.current.state:{},event.state);if((redirectState==null?void 0:redirectState.type)==="state"){return router.encode(redirectState.state);}}return null;}function WorkspaceLoader(_ref472){let{children,LoadingComponent}=_ref472;const[error,handleError]=React.useState(null);if(error)throw error;const{activeWorkspace}=useActiveWorkspace();const[workspace,setWorkspace]=React.useState(null);React.useEffect(()=>{const subscription=rxjs.combineLatest(activeWorkspace.__internal.sources.map(_ref473=>{let{source}=_ref473;return source.pipe(operators.catchError(err=>{if(err instanceof ConfigResolutionError)return rxjs.of(err);throw err;}));})).pipe(operators.map(results=>{const errors=results.filter(result=>result instanceof ConfigResolutionError);if(errors.length){throw new ConfigResolutionError({name:activeWorkspace.name,causes:errors,type:"workspace"});}return results;}),operators.map(_ref474=>{let[rootSource,...restOfSources]=_ref474;return{...activeWorkspace,...rootSource,unstable_sources:[rootSource,...restOfSources],type:"workspace"};})).subscribe({next:setWorkspace,error:handleError});return()=>subscription.unsubscribe();},[activeWorkspace]);if(!workspace)return/* @__PURE__ */jsxRuntime.jsx(LoadingComponent,{});return/* @__PURE__ */jsxRuntime.jsx(WorkspaceProvider,{workspace,children:/* @__PURE__ */jsxRuntime.jsx(SourceProvider,{source:workspace.unstable_sources[0],children:/* @__PURE__ */jsxRuntime.jsx(WorkspaceRouterProvider,{LoadingComponent,workspace,children})})});}function WorkspaceLoaderBoundary(_ref475){let{ConfigErrorsComponent,...props}=_ref475;const[{error},setError]=React.useState({error:null});if(error)throw error;return/* @__PURE__ */jsxRuntime.jsx(ui.ErrorBoundary,{onCatch:setError,children:/* @__PURE__ */jsxRuntime.jsx(WorkspaceLoader,{...props})});}const SANITY_VERSION="3.26.2-canary.52+be0d838591";const sessionId=telemetry.createSessionId();function StudioTelemetryProvider(props){const client=useClient({apiVersion:"v2023-12-18"});const projectId=client.config().projectId;const store=React.useMemo(()=>{return telemetry.createBatchedStore(sessionId,{// submit any pending events every <n> ms
415
+ getServerSnapshot:()=>null,selector:pathname=>typeof pathname==="string"&&shouldHandle(pathname)?decodeUrlState(router,pathname):null};},[history,router]);const event=withSelector.useSyncExternalStoreWithSelector(store.subscribe,store.getSnapshot,store.getServerSnapshot,store.selector,isEqual__default.default);const prevEvent=React.useRef(event);React.useEffect(()=>{var _a2;if((event==null?void 0:event.type)==="state"&&!((_a2=event.state)==null?void 0:_a2.intent)){const defaultState=resolveDefaultState(tools,event.state);if(defaultState&&defaultState!==event.state){history.replace(router.encode(defaultState));}}},[event==null?void 0:event.state,event==null?void 0:event.type,history,router,tools]);React.useEffect(()=>{const resolvedIntent=maybeResolveIntent(event,router,tools,prevEvent);if(resolvedIntent){history.replace(resolvedIntent);}else{prevEvent.current=event;}},[event,history,router,tools]);const handleNavigate=React.useMemo(()=>{return _ref472=>{let{path,replace}=_ref472;const predictedEvent=store.selector(path);const resolvedIntent=maybeResolveIntent(predictedEvent,router,tools,prevEvent);const resolvedPath=typeof resolvedIntent==="string"?resolvedIntent:path;if(replace){history.replace(resolvedPath);}else{history.push(resolvedPath);}};},[history,router,store,tools]);return[(_a=event==null?void 0:event.state)!=null?_a:null,handleNavigate];}function maybeResolveIntent(event,router,tools,prevEvent){var _a,_b;if((event==null?void 0:event.type)==="state"&&((_a=event.state)==null?void 0:_a.intent)){const redirectState=resolveIntentState(tools,((_b=prevEvent.current)==null?void 0:_b.type)==="state"?prevEvent.current.state:{},event.state);if((redirectState==null?void 0:redirectState.type)==="state"){return router.encode(redirectState.state);}}return null;}function WorkspaceLoader(_ref473){let{children,LoadingComponent}=_ref473;const[error,handleError]=React.useState(null);if(error)throw error;const{activeWorkspace}=useActiveWorkspace();const[workspace,setWorkspace]=React.useState(null);React.useEffect(()=>{const subscription=rxjs.combineLatest(activeWorkspace.__internal.sources.map(_ref474=>{let{source}=_ref474;return source.pipe(operators.catchError(err=>{if(err instanceof ConfigResolutionError)return rxjs.of(err);throw err;}));})).pipe(operators.map(results=>{const errors=results.filter(result=>result instanceof ConfigResolutionError);if(errors.length){throw new ConfigResolutionError({name:activeWorkspace.name,causes:errors,type:"workspace"});}return results;}),operators.map(_ref475=>{let[rootSource,...restOfSources]=_ref475;return{...activeWorkspace,...rootSource,unstable_sources:[rootSource,...restOfSources],type:"workspace"};})).subscribe({next:setWorkspace,error:handleError});return()=>subscription.unsubscribe();},[activeWorkspace]);if(!workspace)return/* @__PURE__ */jsxRuntime.jsx(LoadingComponent,{});return/* @__PURE__ */jsxRuntime.jsx(WorkspaceProvider,{workspace,children:/* @__PURE__ */jsxRuntime.jsx(SourceProvider,{source:workspace.unstable_sources[0],children:/* @__PURE__ */jsxRuntime.jsx(WorkspaceRouterProvider,{LoadingComponent,workspace,children})})});}function WorkspaceLoaderBoundary(_ref476){let{ConfigErrorsComponent,...props}=_ref476;const[{error},setError]=React.useState({error:null});if(error)throw error;return/* @__PURE__ */jsxRuntime.jsx(ui.ErrorBoundary,{onCatch:setError,children:/* @__PURE__ */jsxRuntime.jsx(WorkspaceLoader,{...props})});}const SANITY_VERSION="3.26.2-canary.69+747ad532f2";const sessionId=telemetry.createSessionId();function StudioTelemetryProvider(props){const client=useClient({apiVersion:"v2023-12-18"});const projectId=client.config().projectId;const store=React.useMemo(()=>{return telemetry.createBatchedStore(sessionId,{// submit any pending events every <n> ms
416
416
  flushInterval:3e4,// implements user consent resolving
417
417
  resolveConsent:()=>client.request({uri:"/intake/telemetry-status"}),// implements sending events to backend
418
418
  sendEvents:batch=>client.request({uri:"/intake/batch",method:"POST",json:true,body:{projectId,batch}}),// opts into a different strategy for sending events when the browser close, reload or navigate away from the current page
419
- sendBeacon:batch=>navigator.sendBeacon(client.getUrl("/intake/batch"),JSON.stringify({projectId,batch}))});},[client,projectId]);React.useEffect(()=>{store.logger.updateUserProperties({userAgent:navigator.userAgent,screen:{density:window.devicePixelRatio,height:window.screen.height,width:window.screen.width,innerHeight:window.innerHeight,innerWidth:window.innerWidth},studioVersion:SANITY_VERSION,plugins:arrify__default.default(props.config).flatMap(config=>{var _a;return((_a=config.plugins)==null?void 0:_a.flatMap(plugin=>({name:plugin.name})))||[];})});},[props.config,store.logger]);return/* @__PURE__ */jsxRuntime.jsx(react.TelemetryProvider,{store,children:props.children});}Refractor__default.default.registerLanguage(bash__default.default);Refractor__default.default.registerLanguage(javascript__default.default);Refractor__default.default.registerLanguage(json__default.default);Refractor__default.default.registerLanguage(jsx2__default.default);Refractor__default.default.registerLanguage(typescript__default.default);function StudioProvider(_ref476){let{children,config,basePath,onSchemeChange,scheme,unstable_history:history,unstable_noAuthBoundary:noAuthBoundary}=_ref476;const _children=/* @__PURE__ */jsxRuntime.jsx(WorkspaceLoaderBoundary,{LoadingComponent:LoadingBlock,ConfigErrorsComponent:ConfigErrorsScreen,children:/* @__PURE__ */jsxRuntime.jsx(StudioTelemetryProvider,{config,children:/* @__PURE__ */jsxRuntime.jsx(LocaleProvider,{children:/* @__PURE__ */jsxRuntime.jsx(ResourceCacheProvider,{children})})})});return/* @__PURE__ */jsxRuntime.jsx(ColorSchemeProvider,{onSchemeChange,scheme,children:/* @__PURE__ */jsxRuntime.jsxs(ui.ToastProvider,{paddingY:7,zOffset:Z_OFFSET.toast,children:[/* @__PURE__ */jsxRuntime.jsx(ErrorLogger,{}),/* @__PURE__ */jsxRuntime.jsx(StudioErrorBoundary,{children:/* @__PURE__ */jsxRuntime.jsx(WorkspacesProvider,{config,basePath,children:/* @__PURE__ */jsxRuntime.jsx(ActiveWorkspaceMatcher,{unstable_history:history,NotFoundComponent:NotFoundScreen,LoadingComponent:LoadingBlock,children:/* @__PURE__ */jsxRuntime.jsx(StudioThemeProvider,{children:/* @__PURE__ */jsxRuntime.jsx(UserColorManagerProvider,{children:noAuthBoundary?_children:/* @__PURE__ */jsxRuntime.jsx(AuthBoundary,{LoadingComponent:LoadingBlock,AuthenticateComponent:AuthenticateScreen,NotAuthenticatedComponent:NotAuthenticatedScreen,children:_children})})})})})})]})});}function NoToolsScreen(){return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",height:"fill",justify:"center",padding:4,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:0,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{padding:4,radius:2,shadow:1,tone:"caution",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(icons.WarningOutlineIcon,{})})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,marginLeft:3,space:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{as:"h1",size:1,weight:"medium",children:"No configured tools"}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{as:"p",muted:true,size:1,children:"Please configure a tool in your Studio configuration."}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{as:"p",muted:true,size:1,children:/* @__PURE__ */jsxRuntime.jsx("a",{href:"https://www.sanity.io/docs/studio-tools",rel:"noreferrer",target:"_blank",children:"Learn how to add a tool \u2192"})})]})]})})})})});}function RedirectingScreen(props){const{reason="Redirecting\u2026"}=props;return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",height:"fill",justify:"center",padding:4,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:0,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{padding:4,radius:2,shadow:1,tone:"primary",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(icons.DoubleChevronRightIcon,{})})}),/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{flex:1,marginLeft:3,space:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{as:"h1",size:1,weight:"bold",children:reason})})]})})})})});}function ToolNotFoundScreen(props){const{toolName}=props;return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",height:"fill",justify:"center",padding:4,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:0,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{padding:4,radius:2,shadow:1,tone:"caution",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(icons.WarningOutlineIcon,{})})}),/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{flex:1,marginLeft:3,space:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{as:"h1",size:1,weight:"medium",children:["Tool not found: ",/* @__PURE__ */jsxRuntime.jsx("code",{children:toolName})]})})]})})})})});}var __freeze$G=Object.freeze;var __defProp$G=Object.defineProperty;var __template$G=(cooked,raw)=>__freeze$G(__defProp$G(cooked,"raw",{value:__freeze$G(raw||cooked.slice())}));var _a$G;const Root$6=styled__default.default.div(_a$G||(_a$G=__template$G(["\n position: absolute;\n width: 18px;\n height: 18px;\n background: var(--card-bg-color);\n bottom: -4px;\n right: -4px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid var(--card-bg-color);\n box-sizing: content-box;\n\n svg {\n box-sizing: content-box;\n border: 1px solid var(--card-hairline-soft-color);\n border-radius: 50%;\n padding: 2px;\n width: 12px;\n height: 12px;\n }\n\n &[data-logo='github'] {\n svg {\n path {\n fill: var(--card-fg-color);\n }\n }\n }\n\n &[data-logo='saml'] {\n svg {\n path {\n fill: var(--card-fg-color);\n }\n }\n }\n"])));const Google=/* @__PURE__ */jsxRuntime.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[/* @__PURE__ */jsxRuntime.jsxs("g",{clipPath:"url(#clip0)",children:[/* @__PURE__ */jsxRuntime.jsx("path",{d:"M12 6.13764C12 5.72977 11.9663 5.31971 11.8943 4.91846H6.12036V7.22895H9.42684C9.28963 7.97412 8.84876 8.63332 8.20322 9.05221V10.5514H10.1759C11.3342 9.50637 12 7.9631 12 6.13764Z",fill:"#4285F4"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M6.12019 12.0002C7.77118 12.0002 9.16349 11.4688 10.1779 10.5517L8.20529 9.05253C7.65646 9.41851 6.94793 9.62574 6.12244 9.62574C4.52544 9.62574 3.17136 8.56971 2.68552 7.1499H0.649902V8.69537C1.68908 10.7215 3.80567 12.0002 6.12019 12.0002V12.0002Z",fill:"#34A853"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M2.68332 7.14986C2.4269 6.40469 2.4269 5.59778 2.68332 4.8526V3.30713H0.649951C-0.218278 5.00252 -0.218278 6.99995 0.649951 8.69533L2.68332 7.14986V7.14986Z",fill:"#FBBC04"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M6.12019 2.37483C6.99291 2.3616 7.8364 2.68348 8.46845 3.27433L10.2161 1.56131C9.1095 0.542752 7.64071 -0.017233 6.12019 0.000404333C3.80566 0.000404333 1.68908 1.27911 0.649902 3.3074L2.68326 4.85288C3.16686 3.43087 4.52319 2.37483 6.12019 2.37483V2.37483Z",fill:"#EA4335"})]}),/* @__PURE__ */jsxRuntime.jsx("defs",{children:/* @__PURE__ */jsxRuntime.jsx("clipPath",{id:"clip0",children:/* @__PURE__ */jsxRuntime.jsx("rect",{width:"12",height:"12",fill:"white"})})})]});const GitHub=/* @__PURE__ */jsxRuntime.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[/* @__PURE__ */jsxRuntime.jsx("g",{clipPath:"url(#clip0)",children:/* @__PURE__ */jsxRuntime.jsx("path",{d:"M11.195 3.13503C10.6711 2.22838 9.91808 1.47537 9.01144 0.951471C8.09222 0.414976 7.08837 0.146729 5.99987 0.146729C4.91137 0.146729 3.90752 0.414976 2.98831 0.951471C2.08163 1.47534 1.32862 2.22836 0.804744 3.13503C0.268248 4.05497 0 5.05883 0 6.14659C0 7.45399 0.381531 8.62978 1.14459 9.67394C1.90765 10.7181 2.89327 11.4408 4.10143 11.8419C4.24208 11.868 4.34624 11.8497 4.41392 11.7872C4.44666 11.7577 4.47263 11.7215 4.49006 11.681C4.50749 11.6405 4.51595 11.5967 4.51488 11.5527C4.51488 11.537 4.51361 11.3963 4.51105 11.1307C4.5085 10.8651 4.50722 10.6334 4.50722 10.4355L4.32745 10.4666C4.18407 10.4895 4.03885 10.4986 3.89375 10.494C3.71159 10.4908 3.53001 10.4725 3.35087 10.4393C3.16049 10.4045 2.98119 10.3246 2.82796 10.2064C2.66705 10.0846 2.54715 9.91661 2.48428 9.72484L2.40602 9.54506C2.34022 9.40286 2.25754 9.2691 2.15976 9.14666C2.04775 9.00072 1.93447 8.90176 1.81991 8.84977L1.76518 8.81064C1.72769 8.78356 1.6936 8.75205 1.66367 8.71679C1.63479 8.6841 1.61108 8.64719 1.59334 8.60734C1.57766 8.57085 1.5907 8.54085 1.63247 8.51731C1.67461 8.49405 1.75123 8.48256 1.86068 8.48256L2.01692 8.50582C2.12108 8.52662 2.24996 8.5891 2.40356 8.69326C2.5585 8.79876 2.68797 8.93748 2.78254 9.09932C2.90239 9.31294 3.04695 9.47575 3.21624 9.58775C3.38552 9.69976 3.55609 9.75576 3.72793 9.75576C3.87725 9.7578 4.02641 9.74479 4.17312 9.7169C4.29459 9.69195 4.41264 9.65254 4.52473 9.59952C4.57162 9.25037 4.69931 8.98212 4.90782 8.79477C4.63684 8.76849 4.36827 8.72157 4.10444 8.6544C3.84797 8.58382 3.60133 8.48141 3.37029 8.34958C3.12825 8.218 2.91442 8.04015 2.74095 7.82613C2.57421 7.6178 2.4374 7.34417 2.3305 7.00524C2.2236 6.6663 2.1707 6.27584 2.1718 5.83383C2.1718 5.20357 2.37757 4.66708 2.7891 4.22435C2.59629 3.75006 2.61453 3.21885 2.84383 2.63073C2.99487 2.58385 3.21879 2.61897 3.51559 2.73608C3.81239 2.85319 4.02983 2.95352 4.16792 3.03707C4.30601 3.12025 4.41665 3.19058 4.49983 3.24804C5.48153 2.9773 6.51821 2.9773 7.49991 3.24804L7.79679 3.0606C8.0249 2.92356 8.26549 2.80849 8.51535 2.71693C8.79135 2.61276 9.00231 2.58412 9.14825 2.63101C9.38248 3.21949 9.40327 3.7507 9.21064 4.22462C9.62199 4.66735 9.82776 5.20385 9.82795 5.83411C9.82795 6.27684 9.77459 6.66904 9.66787 7.01071C9.56116 7.35238 9.42325 7.62601 9.25415 7.8316C9.07785 8.04326 8.86311 8.21966 8.62124 8.35149C8.39008 8.48329 8.14337 8.5857 7.88682 8.65632C7.62412 8.72277 7.35674 8.76915 7.087 8.79505C7.35698 9.02927 7.49206 9.3994 7.49225 9.90543V11.5527C7.49115 11.5964 7.49929 11.6398 7.51612 11.6802C7.53295 11.7206 7.5581 11.7569 7.58993 11.7869C7.65505 11.8493 7.75794 11.8675 7.89858 11.8416C9.10693 11.4403 10.0926 10.7177 10.8557 9.67367C11.6188 8.62968 12.0003 7.4539 12.0003 6.14632C11.9997 5.05873 11.7313 4.05497 11.195 3.13503V3.13503Z",fill:"black"})}),/* @__PURE__ */jsxRuntime.jsx("defs",{children:/* @__PURE__ */jsxRuntime.jsx("clipPath",{id:"clip0",children:/* @__PURE__ */jsxRuntime.jsx("rect",{width:"12",height:"12",fill:"white"})})})]});const Saml=/* @__PURE__ */jsxRuntime.jsxs("svg",{width:"17",height:"9",viewBox:"0 0 17 9",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[/* @__PURE__ */jsxRuntime.jsx("path",{d:"M0.0691681 5.98162C0.115833 7.24157 1.07247 8.00221 2.59841 8.00221C4.17102 8.00221 5.12299 7.19957 5.12299 5.86962C5.12299 4.83832 4.55367 4.25501 3.25172 3.96569L2.56108 3.80703C1.8331 3.64837 1.53445 3.38704 1.53445 2.91106C1.53445 2.40708 1.94977 2.09442 2.61708 2.09442C3.27505 2.09442 3.6997 2.43508 3.75103 2.99039H5.00166C4.95966 1.78643 4.01236 0.997795 2.60308 0.997795C1.14713 0.997795 0.218496 1.79577 0.218496 3.05105C0.218496 4.04968 0.815808 4.69366 2.03376 4.96898L2.73374 5.13231C3.51304 5.30497 3.8117 5.54763 3.8117 6.00495C3.8117 6.55093 3.34972 6.90092 2.62174 6.90092C1.85644 6.90092 1.38045 6.56493 1.31979 5.98162H0.0691681Z"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M5.97695 5.98162C6.02362 7.24157 6.98025 8.00221 8.5062 8.00221C10.0788 8.00221 11.0308 7.19957 11.0308 5.86962C11.0308 4.83832 10.4615 4.25501 9.15951 3.96569L8.46886 3.80703C7.74089 3.64837 7.44223 3.38704 7.44223 2.91106C7.44223 2.40708 7.85755 2.09442 8.52486 2.09442C9.18284 2.09442 9.60749 2.43508 9.65882 2.99039H10.9094C10.8674 1.78643 9.92015 0.997795 8.51086 0.997795C7.05492 0.997795 6.12628 1.79577 6.12628 3.05105C6.12628 4.04968 6.72359 4.69366 7.94155 4.96898L8.64153 5.13231C9.42083 5.30497 9.71949 5.54763 9.71949 6.00495C9.71949 6.55093 9.2575 6.90092 8.52953 6.90092C7.76422 6.90092 7.28824 6.56493 7.22758 5.98162H5.97695Z"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M16.9852 5.01565V3.98435C16.9852 2.11309 16.0099 0.997795 14.3953 0.997795C12.7807 0.997795 11.8054 2.11309 11.8054 3.98435V5.01565C11.8054 6.88692 12.7807 8.00221 14.3953 8.00221C16.0099 8.00221 16.9852 6.88692 16.9852 5.01565ZM14.3953 6.82625C13.5833 6.82625 13.154 6.21494 13.154 5.00165V3.99835C13.154 2.78506 13.5833 2.17375 14.3953 2.17375C15.2073 2.17375 15.6366 2.78506 15.6366 3.99835V5.00165C15.6366 6.21494 15.2073 6.82625 14.3953 6.82625Z"})]});const LoginProviderLogo=_ref477=>{let{provider}=_ref477;const isSaml=provider==null?void 0:provider.startsWith("saml-");const logoName=isSaml?"saml":provider;return/* @__PURE__ */jsxRuntime.jsxs(Root$6,{"data-logo":logoName,children:[provider==="google"&&Google,provider==="github"&&GitHub,provider==="sanity"&&/* @__PURE__ */jsxRuntime.jsx(logos.SanityMonogram,{}),isSaml&&Saml]});};function LocaleMenu$1(){useLocale();{return null;}}function AppearanceMenu$1(_ref478){let{setScheme}=_ref478;const{t}=useTranslation();const options=useColorSchemeOptions(setScheme,t);return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{}),options.map(_ref479=>{let{icon,label,name,onSelect,selected,title}=_ref479;return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{"aria-label":label,icon,onClick:onSelect,pressed:selected,text:title,iconRight:selected&&/* @__PURE__ */jsxRuntime.jsx(icons.CheckmarkIcon,{})},name);})]});}function ManageMenu$1(){const{currentUser,projectId}=useWorkspace();const isAdmin=Boolean(currentUser&&userHasRole(currentUser,"administrator"));const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a","aria-label":t("user-menu.action.manage-project-aria-label"),href:"https://sanity.io/manage/project/".concat(projectId),target:"_blank",text:t("user-menu.action.manage-project"),icon:icons.CogIcon}),isAdmin&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a","aria-label":t("user-menu.action.invite-members-aria-label"),href:"https://sanity.io/manage/project/".concat(projectId,"/members"),target:"_blank",text:t("user-menu.action.invite-members"),icon:icons.UsersIcon})]});}var __freeze$F=Object.freeze;var __defProp$F=Object.defineProperty;var __template$F=(cooked,raw)=>__freeze$F(__defProp$F(cooked,"raw",{value:__freeze$F(raw||cooked.slice())}));var _a$F,_b$n;const StyledMenu$2=styled__default.default(ui.Menu)(_a$F||(_a$F=__template$F(["\n min-width: 200px;\n max-width: 300px;\n"])));const AvatarBox=styled__default.default(ui.Box)(_b$n||(_b$n=__template$F(["\n position: relative;\n min-width: ","px;\n min-height: ","px;\n"])),_ref480=>{let{theme}=_ref480;return theme.sanity.avatar.sizes[2].size;},_ref481=>{let{theme}=_ref481;return theme.sanity.avatar.sizes[2].size;});function UserMenu(){const{currentUser,auth}=useWorkspace();const scheme=useColorSchemeValue();const setScheme=useColorSchemeSetValue();const providerTitle=getProviderTitle(currentUser==null?void 0:currentUser.provider);const{t}=useTranslation();const popoverProps=React.useMemo(()=>({placement:"bottom",portal:true,preventOverflow:true,scheme,constrainSize:true}),[scheme]);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuButton,{button:/* @__PURE__ */jsxRuntime.jsx(ui.Button,{mode:"bleed",padding:0,radius:"full",children:/* @__PURE__ */jsxRuntime.jsx(UserAvatar,{size:1,user:"me"})}),id:"user-menu",menu:/* @__PURE__ */jsxRuntime.jsxs(StyledMenu$2,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Card,{padding:2,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",children:[/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{disabled:!providerTitle,portal:true,content:t("user-menu.login-provider",{providerTitle}),children:/* @__PURE__ */jsxRuntime.jsxs(AvatarBox,{marginRight:3,children:[/* @__PURE__ */jsxRuntime.jsx(UserAvatar,{size:2,user:"me"}),(currentUser==null?void 0:currentUser.provider)&&/* @__PURE__ */jsxRuntime.jsx(LoginProviderLogo,{provider:currentUser.provider})]})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:2,flex:1,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,weight:"medium",textOverflow:"ellipsis",children:currentUser==null?void 0:currentUser.name}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,textOverflow:"ellipsis",children:currentUser==null?void 0:currentUser.email})]})]})}),setScheme&&/* @__PURE__ */jsxRuntime.jsx(AppearanceMenu$1,{setScheme}),/* @__PURE__ */jsxRuntime.jsx(LocaleMenu$1,{}),/* @__PURE__ */jsxRuntime.jsx(ManageMenu$1,{}),auth.logout&&/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{iconRight:icons.LeaveIcon,text:t("user-menu.action.sign-out"),disabled:!auth.logout,...(auth.logout&&{onClick:auth.logout})})]})]}),popover:popoverProps});}const INLINE_PREVIEW_HEIGHT=33;function NewDocumentListOption(props){const{option,currentUser,onClick,preview}=props;const params=React.useMemo(()=>({template:option.templateId,type:option.schemaType}),[option.schemaType,option.templateId]);const{onClick:onIntentClick,href}=router.useIntentLink({intent:"create",params});const handleDocumentClick=React.useCallback(event=>{onIntentClick(event);onClick(option);},[onIntentClick,onClick,option]);const{title}=useI18nText(option);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{disabled:option.hasPermission,portal:true,content:/* @__PURE__ */jsxRuntime.jsx(InsufficientPermissionsMessage,{currentUser,context:"create-document"}),children:/* @__PURE__ */jsxRuntime.jsx("div",{children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{as:option.hasPermission?"a":"button","data-testid":"create-new-".concat(option.templateId),disabled:!option.hasPermission,href,marginBottom:1,onClick:handleDocumentClick,padding:preview==="inline"?3:4,radius:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:preview==="inline"?1:void 0,children:title})})})},option.id);}var __freeze$E=Object.freeze;var __defProp$E=Object.defineProperty;var __template$E=(cooked,raw)=>__freeze$E(__defProp$E(cooked,"raw",{value:__freeze$E(raw||cooked.slice())}));var _a$E;const ContentFlex=styled__default.default(ui.Flex)(_a$E||(_a$E=__template$E(["\n min-height: 100px;\n"])));function NewDocumentList(props){const{currentUser,loading,onDocumentClick,options,preview,searchQuery,textInputElement}=props;const{t}=useTranslation();const hasOptions=options.length>0&&!loading;const handleDocumentClick=React.useCallback(()=>{onDocumentClick();},[onDocumentClick]);const getItemDisabled=React.useCallback(index=>{var _a2;return((_a2=options[index])==null?void 0:_a2.hasPermission)===false;},[options]);const renderItem=React.useCallback(item=>{return/* @__PURE__ */jsxRuntime.jsx(NewDocumentListOption,{currentUser,onClick:handleDocumentClick,option:item,preview},item.id);},[currentUser,handleDocumentClick,preview]);if(loading){return/* @__PURE__ */jsxRuntime.jsx(LoadingBlock,{showText:true});}if(!hasOptions&&searchQuery){return/* @__PURE__ */jsxRuntime.jsx(ContentFlex,{align:"center",flex:1,height:"fill",justify:"center",padding:4,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{align:"center",muted:true,size:1,children:/* @__PURE__ */jsxRuntime.jsx(Translate,{t,i18nKey:"new-document.no-results",values:{searchQuery}})})});}if(!hasOptions){return/* @__PURE__ */jsxRuntime.jsx(ContentFlex,{align:"center",flex:1,height:"fill",justify:"center",padding:4,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{align:"center",muted:true,size:1,children:t("new-document.no-document-types-found")})});}return/* @__PURE__ */jsxRuntime.jsx(CommandList,{activeItemDataAttr:"data-hovered",ariaLabel:t("new-document.new-document"),autoFocus:supportsTouch?void 0:"input",getItemDisabled,inputElement:textInputElement,itemHeight:INLINE_PREVIEW_HEIGHT,items:options,overscan:5,padding:preview==="inline"?1:2,paddingBottom:0,renderItem});}function isQueryMatch(query,option){const lowercaseTitle=option.title.toLowerCase();const lowercaseQuery=query.trim().toLowerCase();const words=lowercaseQuery.split(/[\s\-_]+/);return words.every(word=>lowercaseTitle.includes(word));}function sortResultRelevance(query,a,b){const titleA=a.title.toLowerCase();const titleB=b.title.toLowerCase();const lowercaseQuery=query.trim().toLowerCase();if(titleA.startsWith(lowercaseQuery)&&!titleB.startsWith(lowercaseQuery)){return-1;}if(titleB.startsWith(lowercaseQuery)&&!titleA.startsWith(lowercaseQuery)){return 1;}if(titleA.includes(lowercaseQuery)&&!titleB.includes(lowercaseQuery)){return-1;}if(titleB.includes(lowercaseQuery)&&!titleA.includes(lowercaseQuery)){return 1;}return 0;}function filterOptions(options,query,getI18nText){const optionsWithTitle=options.map(option=>({...option,title:getI18nText({...option,title:(option==null?void 0:option.title)||option.id}).title}));const alphabetized=optionsWithTitle.sort((a,b)=>a.title.localeCompare(b.title));return alphabetized.filter(option=>isQueryMatch(query,option)).sort((a,b)=>sortResultRelevance(query,a,b));}var __freeze$D=Object.freeze;var __defProp$D=Object.defineProperty;var __template$D=(cooked,raw)=>__freeze$D(__defProp$D(cooked,"raw",{value:__freeze$D(raw||cooked.slice())}));var _a$D,_b$m,_c$e,_d$6,_e$2,_f$1;const StyledPopover=styled__default.default(TooltipDelayGroupProvider.Popover)(()=>{return styled.css(_a$D||(_a$D=__template$D(["\n [data-ui='Popover__wrapper'] {\n width: 320px;\n display: flex;\n flex-direction: column;\n border-radius: ","px;\n position: relative;\n overflow: hidden;\n overflow: clip;\n }\n "])),_ref482=>{let{theme}=_ref482;return theme.sanity.radius[3];});});const StyledDialog$1=styled__default.default(TooltipDelayGroupProvider.Dialog)(()=>{return styled.css(_b$m||(_b$m=__template$D(["\n [data-ui='DialogCard'] {\n justify-content: flex-start;\n }\n "])));});const RootFlex$1=styled__default.default(ui.Flex)(_c$e||(_c$e=__template$D([""])));const PopoverHeaderCard=styled__default.default(ui.Card)(_d$6||(_d$6=__template$D(["\n min-height: max-content;\n"])));const DialogHeaderCard=styled__default.default(ui.Card)(_e$2||(_e$2=__template$D(["\n min-height: max-content;\n"])));const PopoverListFlex=styled__default.default(ui.Flex)(props=>{const{$maxDisplayedItems,$itemHeight}=props;return styled.css(_f$1||(_f$1=__template$D(["\n --item-height: ","px;\n --max-items: ",";\n --list-padding: 0.5rem;\n\n position: relative;\n max-height: calc(var(--item-height) * var(--max-items) + var(--list-padding));\n min-height: calc((var(--item-height) * 1));\n "])),$itemHeight,$maxDisplayedItems);});const MAX_DISPLAYED_ITEMS=10;function NewDocumentButton(props){const{canCreateDocument,modal="popover",loading,options}=props;const[open,setOpen]=React.useState(false);const[searchQuery,setSearchQuery]=React.useState("");const[popoverElement,setPopoverElement]=React.useState(null);const[dialogElement,setDialogElement]=React.useState(null);const[buttonElement,setButtonElement]=React.useState(null);const[searchInputElement,setSearchInputElement]=React.useState(null);const{t}=useTranslation();const getI18nText=useGetI18nText(options);const{scheme}=useColorScheme();const currentUser=useCurrentUser();const schema=useSchema();const hasNewDocumentOptions=options.length>0;const disabled=!canCreateDocument||!hasNewDocumentOptions;const placeholder=t("new-document.filter-placeholder");const title=t("new-document.title");const openDialogAriaLabel=t("new-document.open-dialog-aria-label");const validOptions=React.useMemo(()=>options.filter(option=>{const optionSchema=schema.get(option.schemaType);return optionSchema&&!types.isDeprecatedSchemaType(optionSchema);}),[options,schema]);const filteredOptions=React.useMemo(()=>filterOptions(validOptions,searchQuery,getI18nText),[validOptions,searchQuery,getI18nText]);const handleSearchChange=React.useCallback(event=>{setSearchQuery(event.currentTarget.value);},[]);const handleToggleOpen=React.useCallback(()=>setOpen(v=>!v),[]);const handleClose=React.useCallback(()=>{setOpen(false);setSearchQuery("");buttonElement==null?void 0:buttonElement.focus();},[buttonElement]);const handleOpenButtonKeyDown=React.useCallback(e=>{if(e.key==="ArrowDown"&&!open){setOpen(true);}},[open]);const handlePopoverKeyDown=React.useCallback(e=>{if((e.key==="Escape"||e.key==="Tab")&&open){handleClose();}},[handleClose,open]);ui.useClickOutside(()=>{if(open){handleClose();}},[buttonElement,dialogElement,popoverElement]);const sharedListProps=React.useMemo(()=>({currentUser,loading,onDocumentClick:handleToggleOpen,options:filteredOptions,searchQuery,preview:modal==="popover"?"inline":"default",textInputElement:searchInputElement}),[currentUser,filteredOptions,handleToggleOpen,loading,modal,searchInputElement,searchQuery]);const sharedTextInputProps=React.useMemo(()=>({__unstable_disableFocusRing:true,border:false,"data-testid":"new-document-button-search-input",defaultValue:searchQuery,disabled:loading,icon:icons.SearchIcon,onChange:handleSearchChange,placeholder,ref:setSearchInputElement}),[handleSearchChange,loading,placeholder,searchQuery]);const sharedOpenButtonProps=React.useMemo(()=>({"aria-label":openDialogAriaLabel,"data-testid":"new-document-button",disabled:disabled||loading,icon:icons.AddIcon,text:t("new-document.button"),mode:"ghost",onClick:handleToggleOpen,ref:setButtonElement,selected:open}),[disabled,handleToggleOpen,loading,open,openDialogAriaLabel,t]);const tooltipContent=React.useMemo(()=>{if(!hasNewDocumentOptions){return/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:t("new-document.no-document-types-label")});}if(canCreateDocument){return/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:t("new-document.create-new-document-label")});}return/* @__PURE__ */jsxRuntime.jsx(InsufficientPermissionsMessage,{currentUser,context:"create-any-document"});},[canCreateDocument,currentUser,hasNewDocumentOptions,t]);const sharedTooltipProps=React.useMemo(()=>({content:tooltipContent,disabled:loading||open,scheme}),[loading,open,scheme,tooltipContent]);if(modal==="dialog"){return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{...sharedTooltipProps,children:/* @__PURE__ */jsxRuntime.jsx("div",{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{...sharedOpenButtonProps})})}),open&&/* @__PURE__ */jsxRuntime.jsx(StyledDialog$1,{header:title,id:"create-new-document-dialog",onClickOutside:handleClose,onClose:handleClose,ref:setDialogElement,scheme,width:1,children:/* @__PURE__ */jsxRuntime.jsxs(RootFlex$1,{direction:"column",flex:1,height:"fill",children:[/* @__PURE__ */jsxRuntime.jsx(DialogHeaderCard,{padding:2,borderBottom:true,children:/* @__PURE__ */jsxRuntime.jsx(ui.TextInput,{"data-testid":"new-document-button-search-input",...sharedTextInputProps})}),/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{direction:"column",overflow:"hidden",children:/* @__PURE__ */jsxRuntime.jsx(NewDocumentList,{...sharedListProps})})]})})]});}return/* @__PURE__ */jsxRuntime.jsx(StyledPopover,{constrainSize:true,onKeyDown:handlePopoverKeyDown,open,portal:true,radius:3,ref:setPopoverElement,scheme,content:/* @__PURE__ */jsxRuntime.jsxs(RootFlex$1,{direction:"column",flex:1,forwardedAs:FocusLock__default.default,height:"fill",returnFocus:true,children:[/* @__PURE__ */jsxRuntime.jsx(PopoverHeaderCard,{sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderBottom:true,padding:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.TextInput,{...sharedTextInputProps,fontSize:1,radius:1})})})}),/* @__PURE__ */jsxRuntime.jsx(PopoverListFlex,{$itemHeight:INLINE_PREVIEW_HEIGHT,$maxDisplayedItems:MAX_DISPLAYED_ITEMS,direction:"column",overflow:"hidden",children:/* @__PURE__ */jsxRuntime.jsx(NewDocumentList,{...sharedListProps})})]}),children:/* @__PURE__ */jsxRuntime.jsx("div",{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{...sharedTooltipProps,children:/* @__PURE__ */jsxRuntime.jsx("div",{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{...sharedOpenButtonProps,"aria-expanded":open,"aria-haspopup":"true",onKeyDown:handleOpenButtonKeyDown})})})})});}function useNewDocumentOptions(){const{__internal:{staticInitialValueTemplateItems}}=useSource();const[permissions,loading]=useTemplatePermissions({templateItems:staticInitialValueTemplateItems});const canCreateDocument=(permissions==null?void 0:permissions.some(p=>staticInitialValueTemplateItems.some(t=>t.id===p.id)))||false;const optionsWithPermissions=React.useMemo(()=>{return staticInitialValueTemplateItems.map(item=>{var _a;return{...item,title:(item==null?void 0:item.title)||item.id,hasPermission:((_a=permissions==null?void 0:permissions.find(p=>p.id===item.id))==null?void 0:_a.granted)||false};});},[permissions,staticInitialValueTemplateItems]);return{canCreateDocument,loading,options:optionsWithPermissions};}const PresenceMenuItem=React.memo(function PresenceMenuItem2(props){const{presence,focused,onFocus}=props;const[menuItemElement,setMenuItemElement]=React.useState(null);const{t}=useTranslation();const lastActiveLocation=orderBy__default.default(presence.locations||[],["lastActiveAt"],["desc"]).find(location=>location.documentId);const hasLink=Boolean(lastActiveLocation==null?void 0:lastActiveLocation.documentId);React.useEffect(()=>{if(focused&&menuItemElement){menuItemElement.focus();menuItemElement.setAttribute("data-selected","");}if(!focused){menuItemElement==null?void 0:menuItemElement.removeAttribute("data-selected");}},[menuItemElement,focused]);const handleFocus=React.useCallback(()=>{onFocus(presence.user.id);},[onFocus,presence.user.id]);const LinkComponent=React.useMemo(()=>// eslint-disable-next-line @typescript-eslint/no-shadow
419
+ sendBeacon:batch=>navigator.sendBeacon(client.getUrl("/intake/batch"),JSON.stringify({projectId,batch}))});},[client,projectId]);React.useEffect(()=>{store.logger.updateUserProperties({userAgent:navigator.userAgent,screen:{density:window.devicePixelRatio,height:window.screen.height,width:window.screen.width,innerHeight:window.innerHeight,innerWidth:window.innerWidth},studioVersion:SANITY_VERSION,plugins:arrify__default.default(props.config).flatMap(config=>{var _a;return((_a=config.plugins)==null?void 0:_a.flatMap(plugin=>({name:plugin.name})))||[];})});},[props.config,store.logger]);return/* @__PURE__ */jsxRuntime.jsx(react.TelemetryProvider,{store,children:props.children});}Refractor__default.default.registerLanguage(bash__default.default);Refractor__default.default.registerLanguage(javascript__default.default);Refractor__default.default.registerLanguage(json__default.default);Refractor__default.default.registerLanguage(jsx2__default.default);Refractor__default.default.registerLanguage(typescript__default.default);function StudioProvider(_ref477){let{children,config,basePath,onSchemeChange,scheme,unstable_history:history,unstable_noAuthBoundary:noAuthBoundary}=_ref477;const _children=/* @__PURE__ */jsxRuntime.jsx(WorkspaceLoaderBoundary,{LoadingComponent:LoadingBlock,ConfigErrorsComponent:ConfigErrorsScreen,children:/* @__PURE__ */jsxRuntime.jsx(StudioTelemetryProvider,{config,children:/* @__PURE__ */jsxRuntime.jsx(LocaleProvider,{children:/* @__PURE__ */jsxRuntime.jsx(ResourceCacheProvider,{children})})})});return/* @__PURE__ */jsxRuntime.jsx(ColorSchemeProvider,{onSchemeChange,scheme,children:/* @__PURE__ */jsxRuntime.jsxs(ui.ToastProvider,{paddingY:7,zOffset:Z_OFFSET.toast,children:[/* @__PURE__ */jsxRuntime.jsx(ErrorLogger,{}),/* @__PURE__ */jsxRuntime.jsx(StudioErrorBoundary,{children:/* @__PURE__ */jsxRuntime.jsx(WorkspacesProvider,{config,basePath,children:/* @__PURE__ */jsxRuntime.jsx(ActiveWorkspaceMatcher,{unstable_history:history,NotFoundComponent:NotFoundScreen,LoadingComponent:LoadingBlock,children:/* @__PURE__ */jsxRuntime.jsx(StudioThemeProvider,{children:/* @__PURE__ */jsxRuntime.jsx(UserColorManagerProvider,{children:noAuthBoundary?_children:/* @__PURE__ */jsxRuntime.jsx(AuthBoundary,{LoadingComponent:LoadingBlock,AuthenticateComponent:AuthenticateScreen,NotAuthenticatedComponent:NotAuthenticatedScreen,children:_children})})})})})})]})});}function NoToolsScreen(){return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",height:"fill",justify:"center",padding:4,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:0,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{padding:4,radius:2,shadow:1,tone:"caution",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(icons.WarningOutlineIcon,{})})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,marginLeft:3,space:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{as:"h1",size:1,weight:"medium",children:"No configured tools"}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{as:"p",muted:true,size:1,children:"Please configure a tool in your Studio configuration."}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{as:"p",muted:true,size:1,children:/* @__PURE__ */jsxRuntime.jsx("a",{href:"https://www.sanity.io/docs/studio-tools",rel:"noreferrer",target:"_blank",children:"Learn how to add a tool \u2192"})})]})]})})})})});}function RedirectingScreen(props){const{reason="Redirecting\u2026"}=props;return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",height:"fill",justify:"center",padding:4,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:0,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{padding:4,radius:2,shadow:1,tone:"primary",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(icons.DoubleChevronRightIcon,{})})}),/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{flex:1,marginLeft:3,space:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{as:"h1",size:1,weight:"bold",children:reason})})]})})})})});}function ToolNotFoundScreen(props){const{toolName}=props;return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{height:"fill",children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",height:"fill",justify:"center",padding:4,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:0,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{padding:4,radius:2,shadow:1,tone:"caution",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(icons.WarningOutlineIcon,{})})}),/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{flex:1,marginLeft:3,space:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{as:"h1",size:1,weight:"medium",children:["Tool not found: ",/* @__PURE__ */jsxRuntime.jsx("code",{children:toolName})]})})]})})})})});}var __freeze$G=Object.freeze;var __defProp$G=Object.defineProperty;var __template$G=(cooked,raw)=>__freeze$G(__defProp$G(cooked,"raw",{value:__freeze$G(raw||cooked.slice())}));var _a$G;const Root$6=styled__default.default.div(_a$G||(_a$G=__template$G(["\n position: absolute;\n width: 18px;\n height: 18px;\n background: var(--card-bg-color);\n bottom: -4px;\n right: -4px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid var(--card-bg-color);\n box-sizing: content-box;\n\n svg {\n box-sizing: content-box;\n border: 1px solid var(--card-hairline-soft-color);\n border-radius: 50%;\n padding: 2px;\n width: 12px;\n height: 12px;\n }\n\n &[data-logo='github'] {\n svg {\n path {\n fill: var(--card-fg-color);\n }\n }\n }\n\n &[data-logo='saml'] {\n svg {\n path {\n fill: var(--card-fg-color);\n }\n }\n }\n"])));const Google=/* @__PURE__ */jsxRuntime.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[/* @__PURE__ */jsxRuntime.jsxs("g",{clipPath:"url(#clip0)",children:[/* @__PURE__ */jsxRuntime.jsx("path",{d:"M12 6.13764C12 5.72977 11.9663 5.31971 11.8943 4.91846H6.12036V7.22895H9.42684C9.28963 7.97412 8.84876 8.63332 8.20322 9.05221V10.5514H10.1759C11.3342 9.50637 12 7.9631 12 6.13764Z",fill:"#4285F4"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M6.12019 12.0002C7.77118 12.0002 9.16349 11.4688 10.1779 10.5517L8.20529 9.05253C7.65646 9.41851 6.94793 9.62574 6.12244 9.62574C4.52544 9.62574 3.17136 8.56971 2.68552 7.1499H0.649902V8.69537C1.68908 10.7215 3.80567 12.0002 6.12019 12.0002V12.0002Z",fill:"#34A853"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M2.68332 7.14986C2.4269 6.40469 2.4269 5.59778 2.68332 4.8526V3.30713H0.649951C-0.218278 5.00252 -0.218278 6.99995 0.649951 8.69533L2.68332 7.14986V7.14986Z",fill:"#FBBC04"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M6.12019 2.37483C6.99291 2.3616 7.8364 2.68348 8.46845 3.27433L10.2161 1.56131C9.1095 0.542752 7.64071 -0.017233 6.12019 0.000404333C3.80566 0.000404333 1.68908 1.27911 0.649902 3.3074L2.68326 4.85288C3.16686 3.43087 4.52319 2.37483 6.12019 2.37483V2.37483Z",fill:"#EA4335"})]}),/* @__PURE__ */jsxRuntime.jsx("defs",{children:/* @__PURE__ */jsxRuntime.jsx("clipPath",{id:"clip0",children:/* @__PURE__ */jsxRuntime.jsx("rect",{width:"12",height:"12",fill:"white"})})})]});const GitHub=/* @__PURE__ */jsxRuntime.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[/* @__PURE__ */jsxRuntime.jsx("g",{clipPath:"url(#clip0)",children:/* @__PURE__ */jsxRuntime.jsx("path",{d:"M11.195 3.13503C10.6711 2.22838 9.91808 1.47537 9.01144 0.951471C8.09222 0.414976 7.08837 0.146729 5.99987 0.146729C4.91137 0.146729 3.90752 0.414976 2.98831 0.951471C2.08163 1.47534 1.32862 2.22836 0.804744 3.13503C0.268248 4.05497 0 5.05883 0 6.14659C0 7.45399 0.381531 8.62978 1.14459 9.67394C1.90765 10.7181 2.89327 11.4408 4.10143 11.8419C4.24208 11.868 4.34624 11.8497 4.41392 11.7872C4.44666 11.7577 4.47263 11.7215 4.49006 11.681C4.50749 11.6405 4.51595 11.5967 4.51488 11.5527C4.51488 11.537 4.51361 11.3963 4.51105 11.1307C4.5085 10.8651 4.50722 10.6334 4.50722 10.4355L4.32745 10.4666C4.18407 10.4895 4.03885 10.4986 3.89375 10.494C3.71159 10.4908 3.53001 10.4725 3.35087 10.4393C3.16049 10.4045 2.98119 10.3246 2.82796 10.2064C2.66705 10.0846 2.54715 9.91661 2.48428 9.72484L2.40602 9.54506C2.34022 9.40286 2.25754 9.2691 2.15976 9.14666C2.04775 9.00072 1.93447 8.90176 1.81991 8.84977L1.76518 8.81064C1.72769 8.78356 1.6936 8.75205 1.66367 8.71679C1.63479 8.6841 1.61108 8.64719 1.59334 8.60734C1.57766 8.57085 1.5907 8.54085 1.63247 8.51731C1.67461 8.49405 1.75123 8.48256 1.86068 8.48256L2.01692 8.50582C2.12108 8.52662 2.24996 8.5891 2.40356 8.69326C2.5585 8.79876 2.68797 8.93748 2.78254 9.09932C2.90239 9.31294 3.04695 9.47575 3.21624 9.58775C3.38552 9.69976 3.55609 9.75576 3.72793 9.75576C3.87725 9.7578 4.02641 9.74479 4.17312 9.7169C4.29459 9.69195 4.41264 9.65254 4.52473 9.59952C4.57162 9.25037 4.69931 8.98212 4.90782 8.79477C4.63684 8.76849 4.36827 8.72157 4.10444 8.6544C3.84797 8.58382 3.60133 8.48141 3.37029 8.34958C3.12825 8.218 2.91442 8.04015 2.74095 7.82613C2.57421 7.6178 2.4374 7.34417 2.3305 7.00524C2.2236 6.6663 2.1707 6.27584 2.1718 5.83383C2.1718 5.20357 2.37757 4.66708 2.7891 4.22435C2.59629 3.75006 2.61453 3.21885 2.84383 2.63073C2.99487 2.58385 3.21879 2.61897 3.51559 2.73608C3.81239 2.85319 4.02983 2.95352 4.16792 3.03707C4.30601 3.12025 4.41665 3.19058 4.49983 3.24804C5.48153 2.9773 6.51821 2.9773 7.49991 3.24804L7.79679 3.0606C8.0249 2.92356 8.26549 2.80849 8.51535 2.71693C8.79135 2.61276 9.00231 2.58412 9.14825 2.63101C9.38248 3.21949 9.40327 3.7507 9.21064 4.22462C9.62199 4.66735 9.82776 5.20385 9.82795 5.83411C9.82795 6.27684 9.77459 6.66904 9.66787 7.01071C9.56116 7.35238 9.42325 7.62601 9.25415 7.8316C9.07785 8.04326 8.86311 8.21966 8.62124 8.35149C8.39008 8.48329 8.14337 8.5857 7.88682 8.65632C7.62412 8.72277 7.35674 8.76915 7.087 8.79505C7.35698 9.02927 7.49206 9.3994 7.49225 9.90543V11.5527C7.49115 11.5964 7.49929 11.6398 7.51612 11.6802C7.53295 11.7206 7.5581 11.7569 7.58993 11.7869C7.65505 11.8493 7.75794 11.8675 7.89858 11.8416C9.10693 11.4403 10.0926 10.7177 10.8557 9.67367C11.6188 8.62968 12.0003 7.4539 12.0003 6.14632C11.9997 5.05873 11.7313 4.05497 11.195 3.13503V3.13503Z",fill:"black"})}),/* @__PURE__ */jsxRuntime.jsx("defs",{children:/* @__PURE__ */jsxRuntime.jsx("clipPath",{id:"clip0",children:/* @__PURE__ */jsxRuntime.jsx("rect",{width:"12",height:"12",fill:"white"})})})]});const Saml=/* @__PURE__ */jsxRuntime.jsxs("svg",{width:"17",height:"9",viewBox:"0 0 17 9",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[/* @__PURE__ */jsxRuntime.jsx("path",{d:"M0.0691681 5.98162C0.115833 7.24157 1.07247 8.00221 2.59841 8.00221C4.17102 8.00221 5.12299 7.19957 5.12299 5.86962C5.12299 4.83832 4.55367 4.25501 3.25172 3.96569L2.56108 3.80703C1.8331 3.64837 1.53445 3.38704 1.53445 2.91106C1.53445 2.40708 1.94977 2.09442 2.61708 2.09442C3.27505 2.09442 3.6997 2.43508 3.75103 2.99039H5.00166C4.95966 1.78643 4.01236 0.997795 2.60308 0.997795C1.14713 0.997795 0.218496 1.79577 0.218496 3.05105C0.218496 4.04968 0.815808 4.69366 2.03376 4.96898L2.73374 5.13231C3.51304 5.30497 3.8117 5.54763 3.8117 6.00495C3.8117 6.55093 3.34972 6.90092 2.62174 6.90092C1.85644 6.90092 1.38045 6.56493 1.31979 5.98162H0.0691681Z"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M5.97695 5.98162C6.02362 7.24157 6.98025 8.00221 8.5062 8.00221C10.0788 8.00221 11.0308 7.19957 11.0308 5.86962C11.0308 4.83832 10.4615 4.25501 9.15951 3.96569L8.46886 3.80703C7.74089 3.64837 7.44223 3.38704 7.44223 2.91106C7.44223 2.40708 7.85755 2.09442 8.52486 2.09442C9.18284 2.09442 9.60749 2.43508 9.65882 2.99039H10.9094C10.8674 1.78643 9.92015 0.997795 8.51086 0.997795C7.05492 0.997795 6.12628 1.79577 6.12628 3.05105C6.12628 4.04968 6.72359 4.69366 7.94155 4.96898L8.64153 5.13231C9.42083 5.30497 9.71949 5.54763 9.71949 6.00495C9.71949 6.55093 9.2575 6.90092 8.52953 6.90092C7.76422 6.90092 7.28824 6.56493 7.22758 5.98162H5.97695Z"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M16.9852 5.01565V3.98435C16.9852 2.11309 16.0099 0.997795 14.3953 0.997795C12.7807 0.997795 11.8054 2.11309 11.8054 3.98435V5.01565C11.8054 6.88692 12.7807 8.00221 14.3953 8.00221C16.0099 8.00221 16.9852 6.88692 16.9852 5.01565ZM14.3953 6.82625C13.5833 6.82625 13.154 6.21494 13.154 5.00165V3.99835C13.154 2.78506 13.5833 2.17375 14.3953 2.17375C15.2073 2.17375 15.6366 2.78506 15.6366 3.99835V5.00165C15.6366 6.21494 15.2073 6.82625 14.3953 6.82625Z"})]});const LoginProviderLogo=_ref478=>{let{provider}=_ref478;const isSaml=provider==null?void 0:provider.startsWith("saml-");const logoName=isSaml?"saml":provider;return/* @__PURE__ */jsxRuntime.jsxs(Root$6,{"data-logo":logoName,children:[provider==="google"&&Google,provider==="github"&&GitHub,provider==="sanity"&&/* @__PURE__ */jsxRuntime.jsx(logos.SanityMonogram,{}),isSaml&&Saml]});};function LocaleMenu$1(){useLocale();{return null;}}function AppearanceMenu$1(_ref479){let{setScheme}=_ref479;const{t}=useTranslation();const options=useColorSchemeOptions(setScheme,t);return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{}),options.map(_ref480=>{let{icon,label,name,onSelect,selected,title}=_ref480;return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{"aria-label":label,icon,onClick:onSelect,pressed:selected,text:title,iconRight:selected&&/* @__PURE__ */jsxRuntime.jsx(icons.CheckmarkIcon,{})},name);})]});}function ManageMenu$1(){const{currentUser,projectId}=useWorkspace();const isAdmin=Boolean(currentUser&&userHasRole(currentUser,"administrator"));const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a","aria-label":t("user-menu.action.manage-project-aria-label"),href:"https://sanity.io/manage/project/".concat(projectId),target:"_blank",text:t("user-menu.action.manage-project"),icon:icons.CogIcon}),isAdmin&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a","aria-label":t("user-menu.action.invite-members-aria-label"),href:"https://sanity.io/manage/project/".concat(projectId,"/members"),target:"_blank",text:t("user-menu.action.invite-members"),icon:icons.UsersIcon})]});}var __freeze$F=Object.freeze;var __defProp$F=Object.defineProperty;var __template$F=(cooked,raw)=>__freeze$F(__defProp$F(cooked,"raw",{value:__freeze$F(raw||cooked.slice())}));var _a$F,_b$n;const StyledMenu$2=styled__default.default(ui.Menu)(_a$F||(_a$F=__template$F(["\n min-width: 200px;\n max-width: 300px;\n"])));const AvatarBox=styled__default.default(ui.Box)(_b$n||(_b$n=__template$F(["\n position: relative;\n min-width: ","px;\n min-height: ","px;\n"])),_ref481=>{let{theme}=_ref481;return theme.sanity.avatar.sizes[2].size;},_ref482=>{let{theme}=_ref482;return theme.sanity.avatar.sizes[2].size;});function UserMenu(){const{currentUser,auth}=useWorkspace();const scheme=useColorSchemeValue();const setScheme=useColorSchemeSetValue();const providerTitle=getProviderTitle(currentUser==null?void 0:currentUser.provider);const{t}=useTranslation();const popoverProps=React.useMemo(()=>({placement:"bottom",portal:true,preventOverflow:true,scheme,constrainSize:true}),[scheme]);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuButton,{button:/* @__PURE__ */jsxRuntime.jsx(ui.Button,{mode:"bleed",padding:0,radius:"full",children:/* @__PURE__ */jsxRuntime.jsx(UserAvatar,{size:1,user:"me"})}),id:"user-menu",menu:/* @__PURE__ */jsxRuntime.jsxs(StyledMenu$2,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Card,{padding:2,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",children:[/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{disabled:!providerTitle,portal:true,content:t("user-menu.login-provider",{providerTitle}),children:/* @__PURE__ */jsxRuntime.jsxs(AvatarBox,{marginRight:3,children:[/* @__PURE__ */jsxRuntime.jsx(UserAvatar,{size:2,user:"me"}),(currentUser==null?void 0:currentUser.provider)&&/* @__PURE__ */jsxRuntime.jsx(LoginProviderLogo,{provider:currentUser.provider})]})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:2,flex:1,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,weight:"medium",textOverflow:"ellipsis",children:currentUser==null?void 0:currentUser.name}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,textOverflow:"ellipsis",children:currentUser==null?void 0:currentUser.email})]})]})}),setScheme&&/* @__PURE__ */jsxRuntime.jsx(AppearanceMenu$1,{setScheme}),/* @__PURE__ */jsxRuntime.jsx(LocaleMenu$1,{}),/* @__PURE__ */jsxRuntime.jsx(ManageMenu$1,{}),auth.logout&&/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{iconRight:icons.LeaveIcon,text:t("user-menu.action.sign-out"),disabled:!auth.logout,...(auth.logout&&{onClick:auth.logout})})]})]}),popover:popoverProps});}const INLINE_PREVIEW_HEIGHT=33;function NewDocumentListOption(props){const{option,currentUser,onClick,preview}=props;const params=React.useMemo(()=>({template:option.templateId,type:option.schemaType}),[option.schemaType,option.templateId]);const{onClick:onIntentClick,href}=router.useIntentLink({intent:"create",params});const handleDocumentClick=React.useCallback(event=>{onIntentClick(event);onClick(option);},[onIntentClick,onClick,option]);const{title}=useI18nText(option);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{disabled:option.hasPermission,portal:true,content:/* @__PURE__ */jsxRuntime.jsx(InsufficientPermissionsMessage,{currentUser,context:"create-document"}),children:/* @__PURE__ */jsxRuntime.jsx("div",{children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{as:option.hasPermission?"a":"button","data-testid":"create-new-".concat(option.templateId),disabled:!option.hasPermission,href,marginBottom:1,onClick:handleDocumentClick,padding:preview==="inline"?3:4,radius:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:preview==="inline"?1:void 0,children:title})})})},option.id);}var __freeze$E=Object.freeze;var __defProp$E=Object.defineProperty;var __template$E=(cooked,raw)=>__freeze$E(__defProp$E(cooked,"raw",{value:__freeze$E(raw||cooked.slice())}));var _a$E;const ContentFlex=styled__default.default(ui.Flex)(_a$E||(_a$E=__template$E(["\n min-height: 100px;\n"])));function NewDocumentList(props){const{currentUser,loading,onDocumentClick,options,preview,searchQuery,textInputElement}=props;const{t}=useTranslation();const hasOptions=options.length>0&&!loading;const handleDocumentClick=React.useCallback(()=>{onDocumentClick();},[onDocumentClick]);const getItemDisabled=React.useCallback(index=>{var _a2;return((_a2=options[index])==null?void 0:_a2.hasPermission)===false;},[options]);const renderItem=React.useCallback(item=>{return/* @__PURE__ */jsxRuntime.jsx(NewDocumentListOption,{currentUser,onClick:handleDocumentClick,option:item,preview},item.id);},[currentUser,handleDocumentClick,preview]);if(loading){return/* @__PURE__ */jsxRuntime.jsx(LoadingBlock,{showText:true});}if(!hasOptions&&searchQuery){return/* @__PURE__ */jsxRuntime.jsx(ContentFlex,{align:"center",flex:1,height:"fill",justify:"center",padding:4,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{align:"center",muted:true,size:1,children:/* @__PURE__ */jsxRuntime.jsx(Translate,{t,i18nKey:"new-document.no-results",values:{searchQuery}})})});}if(!hasOptions){return/* @__PURE__ */jsxRuntime.jsx(ContentFlex,{align:"center",flex:1,height:"fill",justify:"center",padding:4,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{align:"center",muted:true,size:1,children:t("new-document.no-document-types-found")})});}return/* @__PURE__ */jsxRuntime.jsx(CommandList,{activeItemDataAttr:"data-hovered",ariaLabel:t("new-document.new-document"),autoFocus:supportsTouch?void 0:"input",getItemDisabled,inputElement:textInputElement,itemHeight:INLINE_PREVIEW_HEIGHT,items:options,overscan:5,padding:preview==="inline"?1:2,paddingBottom:0,renderItem});}function isQueryMatch(query,option){const lowercaseTitle=option.title.toLowerCase();const lowercaseQuery=query.trim().toLowerCase();const words=lowercaseQuery.split(/[\s\-_]+/);return words.every(word=>lowercaseTitle.includes(word));}function sortResultRelevance(query,a,b){const titleA=a.title.toLowerCase();const titleB=b.title.toLowerCase();const lowercaseQuery=query.trim().toLowerCase();if(titleA.startsWith(lowercaseQuery)&&!titleB.startsWith(lowercaseQuery)){return-1;}if(titleB.startsWith(lowercaseQuery)&&!titleA.startsWith(lowercaseQuery)){return 1;}if(titleA.includes(lowercaseQuery)&&!titleB.includes(lowercaseQuery)){return-1;}if(titleB.includes(lowercaseQuery)&&!titleA.includes(lowercaseQuery)){return 1;}return 0;}function filterOptions(options,query,getI18nText){const optionsWithTitle=options.map(option=>({...option,title:getI18nText({...option,title:(option==null?void 0:option.title)||option.id}).title}));const alphabetized=optionsWithTitle.sort((a,b)=>a.title.localeCompare(b.title));return alphabetized.filter(option=>isQueryMatch(query,option)).sort((a,b)=>sortResultRelevance(query,a,b));}var __freeze$D=Object.freeze;var __defProp$D=Object.defineProperty;var __template$D=(cooked,raw)=>__freeze$D(__defProp$D(cooked,"raw",{value:__freeze$D(raw||cooked.slice())}));var _a$D,_b$m,_c$e,_d$6,_e$2,_f$1;const StyledPopover=styled__default.default(TooltipDelayGroupProvider.Popover)(()=>{return styled.css(_a$D||(_a$D=__template$D(["\n [data-ui='Popover__wrapper'] {\n width: 320px;\n display: flex;\n flex-direction: column;\n border-radius: ","px;\n position: relative;\n overflow: hidden;\n overflow: clip;\n }\n "])),_ref483=>{let{theme}=_ref483;return theme.sanity.radius[3];});});const StyledDialog$1=styled__default.default(TooltipDelayGroupProvider.Dialog)(()=>{return styled.css(_b$m||(_b$m=__template$D(["\n [data-ui='DialogCard'] {\n justify-content: flex-start;\n }\n "])));});const RootFlex$1=styled__default.default(ui.Flex)(_c$e||(_c$e=__template$D([""])));const PopoverHeaderCard=styled__default.default(ui.Card)(_d$6||(_d$6=__template$D(["\n min-height: max-content;\n"])));const DialogHeaderCard=styled__default.default(ui.Card)(_e$2||(_e$2=__template$D(["\n min-height: max-content;\n"])));const PopoverListFlex=styled__default.default(ui.Flex)(props=>{const{$maxDisplayedItems,$itemHeight}=props;return styled.css(_f$1||(_f$1=__template$D(["\n --item-height: ","px;\n --max-items: ",";\n --list-padding: 0.5rem;\n\n position: relative;\n max-height: calc(var(--item-height) * var(--max-items) + var(--list-padding));\n min-height: calc((var(--item-height) * 1));\n "])),$itemHeight,$maxDisplayedItems);});const MAX_DISPLAYED_ITEMS=10;function NewDocumentButton(props){const{canCreateDocument,modal="popover",loading,options}=props;const[open,setOpen]=React.useState(false);const[searchQuery,setSearchQuery]=React.useState("");const[popoverElement,setPopoverElement]=React.useState(null);const[dialogElement,setDialogElement]=React.useState(null);const[buttonElement,setButtonElement]=React.useState(null);const[searchInputElement,setSearchInputElement]=React.useState(null);const{t}=useTranslation();const getI18nText=useGetI18nText(options);const{scheme}=useColorScheme();const currentUser=useCurrentUser();const schema=useSchema();const hasNewDocumentOptions=options.length>0;const disabled=!canCreateDocument||!hasNewDocumentOptions;const placeholder=t("new-document.filter-placeholder");const title=t("new-document.title");const openDialogAriaLabel=t("new-document.open-dialog-aria-label");const validOptions=React.useMemo(()=>options.filter(option=>{const optionSchema=schema.get(option.schemaType);return optionSchema&&!types.isDeprecatedSchemaType(optionSchema);}),[options,schema]);const filteredOptions=React.useMemo(()=>filterOptions(validOptions,searchQuery,getI18nText),[validOptions,searchQuery,getI18nText]);const handleSearchChange=React.useCallback(event=>{setSearchQuery(event.currentTarget.value);},[]);const handleToggleOpen=React.useCallback(()=>setOpen(v=>!v),[]);const handleClose=React.useCallback(()=>{setOpen(false);setSearchQuery("");buttonElement==null?void 0:buttonElement.focus();},[buttonElement]);const handleOpenButtonKeyDown=React.useCallback(e=>{if(e.key==="ArrowDown"&&!open){setOpen(true);}},[open]);const handlePopoverKeyDown=React.useCallback(e=>{if((e.key==="Escape"||e.key==="Tab")&&open){handleClose();}},[handleClose,open]);ui.useClickOutside(()=>{if(open){handleClose();}},[buttonElement,dialogElement,popoverElement]);const sharedListProps=React.useMemo(()=>({currentUser,loading,onDocumentClick:handleToggleOpen,options:filteredOptions,searchQuery,preview:modal==="popover"?"inline":"default",textInputElement:searchInputElement}),[currentUser,filteredOptions,handleToggleOpen,loading,modal,searchInputElement,searchQuery]);const sharedTextInputProps=React.useMemo(()=>({__unstable_disableFocusRing:true,border:false,"data-testid":"new-document-button-search-input",defaultValue:searchQuery,disabled:loading,icon:icons.SearchIcon,onChange:handleSearchChange,placeholder,ref:setSearchInputElement}),[handleSearchChange,loading,placeholder,searchQuery]);const sharedOpenButtonProps=React.useMemo(()=>({"aria-label":openDialogAriaLabel,"data-testid":"new-document-button",disabled:disabled||loading,icon:icons.AddIcon,text:t("new-document.button"),mode:"ghost",onClick:handleToggleOpen,ref:setButtonElement,selected:open}),[disabled,handleToggleOpen,loading,open,openDialogAriaLabel,t]);const tooltipContent=React.useMemo(()=>{if(!hasNewDocumentOptions){return/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:t("new-document.no-document-types-label")});}if(canCreateDocument){return/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:t("new-document.create-new-document-label")});}return/* @__PURE__ */jsxRuntime.jsx(InsufficientPermissionsMessage,{currentUser,context:"create-any-document"});},[canCreateDocument,currentUser,hasNewDocumentOptions,t]);const sharedTooltipProps=React.useMemo(()=>({content:tooltipContent,disabled:loading||open,scheme}),[loading,open,scheme,tooltipContent]);if(modal==="dialog"){return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{...sharedTooltipProps,children:/* @__PURE__ */jsxRuntime.jsx("div",{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{...sharedOpenButtonProps})})}),open&&/* @__PURE__ */jsxRuntime.jsx(StyledDialog$1,{header:title,id:"create-new-document-dialog",onClickOutside:handleClose,onClose:handleClose,ref:setDialogElement,scheme,width:1,children:/* @__PURE__ */jsxRuntime.jsxs(RootFlex$1,{direction:"column",flex:1,height:"fill",children:[/* @__PURE__ */jsxRuntime.jsx(DialogHeaderCard,{padding:2,borderBottom:true,children:/* @__PURE__ */jsxRuntime.jsx(ui.TextInput,{"data-testid":"new-document-button-search-input",...sharedTextInputProps})}),/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{direction:"column",overflow:"hidden",children:/* @__PURE__ */jsxRuntime.jsx(NewDocumentList,{...sharedListProps})})]})})]});}return/* @__PURE__ */jsxRuntime.jsx(StyledPopover,{constrainSize:true,onKeyDown:handlePopoverKeyDown,open,portal:true,radius:3,ref:setPopoverElement,scheme,content:/* @__PURE__ */jsxRuntime.jsxs(RootFlex$1,{direction:"column",flex:1,forwardedAs:FocusLock__default.default,height:"fill",returnFocus:true,children:[/* @__PURE__ */jsxRuntime.jsx(PopoverHeaderCard,{sizing:"border",children:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderBottom:true,padding:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.TextInput,{...sharedTextInputProps,fontSize:1,radius:1})})})}),/* @__PURE__ */jsxRuntime.jsx(PopoverListFlex,{$itemHeight:INLINE_PREVIEW_HEIGHT,$maxDisplayedItems:MAX_DISPLAYED_ITEMS,direction:"column",overflow:"hidden",children:/* @__PURE__ */jsxRuntime.jsx(NewDocumentList,{...sharedListProps})})]}),children:/* @__PURE__ */jsxRuntime.jsx("div",{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{...sharedTooltipProps,children:/* @__PURE__ */jsxRuntime.jsx("div",{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{...sharedOpenButtonProps,"aria-expanded":open,"aria-haspopup":"true",onKeyDown:handleOpenButtonKeyDown})})})})});}function useNewDocumentOptions(){const{__internal:{staticInitialValueTemplateItems}}=useSource();const[permissions,loading]=useTemplatePermissions({templateItems:staticInitialValueTemplateItems});const canCreateDocument=(permissions==null?void 0:permissions.some(p=>staticInitialValueTemplateItems.some(t=>t.id===p.id)))||false;const optionsWithPermissions=React.useMemo(()=>{return staticInitialValueTemplateItems.map(item=>{var _a;return{...item,title:(item==null?void 0:item.title)||item.id,hasPermission:((_a=permissions==null?void 0:permissions.find(p=>p.id===item.id))==null?void 0:_a.granted)||false};});},[permissions,staticInitialValueTemplateItems]);return{canCreateDocument,loading,options:optionsWithPermissions};}const PresenceMenuItem=React.memo(function PresenceMenuItem2(props){const{presence,focused,onFocus}=props;const[menuItemElement,setMenuItemElement]=React.useState(null);const{t}=useTranslation();const lastActiveLocation=orderBy__default.default(presence.locations||[],["lastActiveAt"],["desc"]).find(location=>location.documentId);const hasLink=Boolean(lastActiveLocation==null?void 0:lastActiveLocation.documentId);React.useEffect(()=>{if(focused&&menuItemElement){menuItemElement.focus();menuItemElement.setAttribute("data-selected","");}if(!focused){menuItemElement==null?void 0:menuItemElement.removeAttribute("data-selected");}},[menuItemElement,focused]);const handleFocus=React.useCallback(()=>{onFocus(presence.user.id);},[onFocus,presence.user.id]);const LinkComponent=React.useMemo(()=>// eslint-disable-next-line @typescript-eslint/no-shadow
420
420
  React.forwardRef(function LinkComponent2(linkProps,ref){if(!(lastActiveLocation==null?void 0:lastActiveLocation.path))return null;return/* @__PURE__ */jsxRuntime.jsx(router.IntentLink,{...linkProps,intent:"edit",params:{id:lastActiveLocation==null?void 0:lastActiveLocation.documentId,path:PathUtils__namespace.toString(lastActiveLocation==null?void 0:lastActiveLocation.path)},ref});}),[lastActiveLocation]);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:lastActiveLocation?LinkComponent:"div","data-as":"a",disabled:!hasLink,onFocus:handleFocus,preview:/* @__PURE__ */jsxRuntime.jsx(UserAvatar,{size:1,user:presence.user},presence.user.id),ref:setMenuItemElement,text:presence.user.displayName,tooltipProps:hasLink?void 0:{content:t("presence.not-in-a-document"),placement:"left"}});});var __freeze$C=Object.freeze;var __defProp$C=Object.defineProperty;var __template$C=(cooked,raw)=>__freeze$C(__defProp$C(cooked,"raw",{value:__freeze$C(raw||cooked.slice())}));var _a$C,_b$l;const StyledMenu$1=styled__default.default(ui.Menu)(_a$C||(_a$C=__template$C(["\n max-width: 260px;\n"])));const FooterStack=styled__default.default(ui.Stack)(_b$l||(_b$l=__template$C(["\n position: sticky;\n bottom: 0;\n background-color: var(--card-bg-color);\n"])));function PresenceMenu(){const presence=useGlobalPresence();const{projectId}=useWorkspace();const{scheme}=useColorScheme();const{t}=useTranslation();const hasPresence=presence.length>0;const[focusedId,setFocusedId]=React.useState();const handleItemFocus=React.useCallback(id=>{setFocusedId(id);},[]);const handleClearFocusedItem=React.useCallback(()=>{setFocusedId("");},[]);const handleClose=React.useCallback(()=>{setFocusedId("");},[]);const button=React.useMemo(()=>{return/* @__PURE__ */jsxRuntime.jsx(StatusButton,{icon:icons.UsersIcon,mode:"bleed",tone:hasPresence?"positive":void 0,tooltipProps:{// @todo: rename, as its no longer an aria-label
421
- content:t("presence.aria-label")}});},[hasPresence,t]);const popoverProps=React.useMemo(()=>({constrainSize:true,fallbackPlacements:["bottom"],placement:"bottom",portal:true,scheme}),[scheme]);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuButton,{button,id:"global-presence-menu",menu:/* @__PURE__ */jsxRuntime.jsxs(StyledMenu$1,{children:[hasPresence&&presence.map(item=>/* @__PURE__ */jsxRuntime.jsx(PresenceMenuItem,{focused:focusedId===item.user.id,onFocus:handleItemFocus,presence:item},item.user.id)),!hasPresence&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{padding:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{weight:"medium",size:1,children:t("presence.no-one-else-title")}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,children:t("presence.no-one-else-description")})]})}),/* @__PURE__ */jsxRuntime.jsxs(FooterStack,{space:1,children:[/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a",href:"https://sanity.io/manage/project/".concat(projectId),iconRight:icons.CogIcon,onFocus:handleClearFocusedItem,rel:"noopener noreferrer",target:"_blank",text:t("presence.action.manage-members")})]})]}),onClose:handleClose,popover:popoverProps});}function SanityLogo(){return/* @__PURE__ */jsxRuntime.jsxs("svg",{width:"100%",height:"100%",viewBox:"0 0 33 33",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[/* @__PURE__ */jsxRuntime.jsx("rect",{width:"100%",height:"100%",fill:"#EC5446"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M10.1637 8.5498C10.1637 11.3854 11.9461 13.0725 15.5143 13.9622L19.2955 14.8235C22.6725 15.5855 24.729 17.4783 24.729 20.5619C24.7553 21.9053 24.3107 23.2168 23.4698 24.2765C23.4698 21.1999 21.8499 19.5376 17.9425 18.538L14.2299 17.7086C11.257 17.0423 8.9623 15.4863 8.9623 12.1368C8.94666 10.8433 9.36932 9.58143 10.1637 8.5498Z",fill:"white"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M21.1463 19.8069C22.7591 20.8206 23.4662 22.2384 23.4662 24.2729C22.1313 25.953 19.7861 26.8958 17.0297 26.8958C12.3899 26.8958 9.1427 24.6521 8.42111 20.7533H12.8769C13.4506 22.5432 14.9695 23.3726 16.9972 23.3726C19.4722 23.3726 21.1175 22.0753 21.1499 19.7998",fill:"#F8B1AA"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M12.4801 12.7536C11.7436 12.3236 11.1394 11.7057 10.7316 10.9656C10.3238 10.2255 10.1276 9.3907 10.1638 8.54984C11.4518 6.88396 13.6923 5.8667 16.4235 5.8667C21.1499 5.8667 23.8848 8.31945 24.5595 11.7717H20.2732C19.8006 10.4107 18.6172 9.35089 16.4596 9.35089C14.1541 9.35089 12.5811 10.6694 12.4909 12.7536",fill:"#F8B1AA"})]});}var __freeze$B=Object.freeze;var __defProp$B=Object.defineProperty;var __template$B=(cooked,raw)=>__freeze$B(__defProp$B(cooked,"raw",{value:__freeze$B(raw||cooked.slice())}));var _a$B,_b$k;const LOGO_MARK_SIZE=25;const RADIUS=2;const LogoMarkContainer=styled__default.default(ui.Card).attrs({overflow:"hidden",radius:RADIUS})(_a$B||(_a$B=__template$B(["\n height: ","px;\n width: ","px;\n"])),LOGO_MARK_SIZE,LOGO_MARK_SIZE);const StyledCard=styled__default.default(ui.Card)(_ref483=>{let{theme}=_ref483;const{focusRing}=theme.sanity;const{base}=theme.sanity.color;return styled.css(_b$k||(_b$k=__template$B(["\n border-radius: ",";\n display: flex;\n outline: none;\n text-decoration: none;\n &:focus-visible {\n box-shadow: ",";\n }\n "])),ui.rem(theme.sanity.radius[RADIUS]),focusRingStyle$1({base,focusRing:{...focusRing,offset:1}}));});function HomeButton(){const workspaces=useWorkspaces();const{activeWorkspace}=useActiveWorkspace();const{href:rootHref,onClick:handleRootClick}=router.useStateLink({state:{}});const multipleWorkspaces=workspaces.length>1;return/* @__PURE__ */jsxRuntime.jsx(StyledCard,{__unstable_focusRing:true,as:"a",href:rootHref,onClick:handleRootClick,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",children:[/* @__PURE__ */jsxRuntime.jsx(LogoMarkContainer,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",height:"fill",justify:"center",children:multipleWorkspaces||activeWorkspace.customIcon?/* @__PURE__ */jsxRuntime.jsx(WorkspacePreviewIcon,{icon:activeWorkspace.icon,size:"small"}):/* @__PURE__ */jsxRuntime.jsx(SanityLogo,{})})}),!multipleWorkspaces&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,weight:"medium",children:activeWorkspace.title})})]})});}function AppearanceMenu(_ref484){let{setScheme}=_ref484;const{t}=useTranslation();const options=useColorSchemeOptions(setScheme,t);return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:true,flex:"none",padding:2,overflow:"auto",children:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"ul",space:1,children:options.map(_ref485=>{let{icon,label,name,onSelect,selected,title}=_ref485;return/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"li",children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":label,icon,iconRight:selected&&/* @__PURE__ */jsxRuntime.jsx(icons.CheckmarkIcon,{}),justify:"flex-start",mode:"bleed",onClick:onSelect,selected,size:"large",text:title})},name);})})});}function LocaleMenu(){useLocale();{return null;}}var __freeze$A=Object.freeze;var __defProp$A=Object.defineProperty;var __template$A=(cooked,raw)=>__freeze$A(__defProp$A(cooked,"raw",{value:__freeze$A(raw||cooked.slice())}));var _a$A,_b$j,_c$d,_d$5;const Divider=styled__default.default(ui.Box)(_a$A||(_a$A=__template$A(["\n height: 1px;\n background: var(--card-border-color);\n width: 100%;\n"])));const SerializerContainer=styled__default.default.div(_b$j||(_b$j=__template$A(["\n // Remove margin bottom to last box.\n > [data-ui='Box']:last-child {\n margin-bottom: 0;\n }\n"])));const Link=styled__default.default.a(_c$d||(_c$d=__template$A(["\n font-weight: 600;\n color: ",";\n"])),props=>props.useTextColor?"var(--card-muted-fg-color) !important":"");const DynamicIconContainer=styled__default.default.span(_d$5||(_d$5=__template$A(["\n > svg {\n display: inline;\n font-size: calc(21 / 16 * 1rem) !important;\n margin: -0.375rem 0 !important;\n *[stroke] {\n stroke: currentColor;\n }\n }\n"])));const DynamicIcon=props=>{const[ref,setRef]=React.useState(null);React.useEffect(()=>{if(!ref)return;const controller=new AbortController();const signal=controller.signal;fetch(props.icon.url,{signal}).then(response=>{if(!response.ok){throw new Error("HTTP error! status: ".concat(response.status));}return response.text();}).then(data=>{if(!ref)return;ref.innerHTML=data;}).catch(error=>{if(error.name!=="AbortError"){console.error(error);}});return()=>{controller.abort();};},[ref,props.icon.url]);return/* @__PURE__ */jsxRuntime.jsx(DynamicIconContainer,{ref:setRef});};function NormalBlock(props){const{children}=props;return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,marginBottom:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,children})});}const components={block:{normal:_ref486=>{let{children}=_ref486;return/* @__PURE__ */jsxRuntime.jsx(NormalBlock,{children});}},list:{bullet:_ref487=>{let{children}=_ref487;return children;},number:_ref488=>{let{children}=_ref488;return/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children});},checkmarks:_ref489=>{let{children}=_ref489;return/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children});}},listItem:{bullet:_ref490=>{let{children}=_ref490;return/* @__PURE__ */jsxRuntime.jsx(NormalBlock,{children});},number:_ref491=>{let{children}=_ref491;return/* @__PURE__ */jsxRuntime.jsx(NormalBlock,{children});},checkmarks:_ref492=>{let{children}=_ref492;return/* @__PURE__ */jsxRuntime.jsx(NormalBlock,{children});}},marks:{strong:_ref493=>{let{children}=_ref493;return/* @__PURE__ */jsxRuntime.jsx("strong",{children});},link:props=>/* @__PURE__ */jsxRuntime.jsxs(Link,{href:props.value.href,rel:"noopener noreferrer",target:"_blank",useTextColor:props.value.useTextColor,children:[props.children,props.value.showIcon&&/* @__PURE__ */jsxRuntime.jsx(icons.LinkIcon,{style:{marginLeft:"2px"}})]})},types:{inlineIcon:props=>/* @__PURE__ */jsxRuntime.jsx(DynamicIcon,{icon:props.value.icon}),divider:()=>/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginY:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingY:3,children:/* @__PURE__ */jsxRuntime.jsx(Divider,{})})}),iconAndText:props=>/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"flex-start",paddingX:2,paddingTop:1,paddingBottom:2,marginTop:2,gap:2,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{gap:2,style:{flexShrink:0},children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(DynamicIcon,{icon:props.value.icon})}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,weight:"semibold",children:props.value.title})]}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,children:props.value.text})]})}};function DescriptionSerializer(props){return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{tone:"default",children:/* @__PURE__ */jsxRuntime.jsx(SerializerContainer,{children:/* @__PURE__ */jsxRuntime.jsx(react$1.PortableText,{value:props.blocks,components,onMissingComponent:false})})});}var __freeze$z=Object.freeze;var __defProp$z=Object.defineProperty;var __template$z=(cooked,raw)=>__freeze$z(__defProp$z(cooked,"raw",{value:__freeze$z(raw||cooked.slice())}));var _a$z;const Image$2=styled__default.default.img(_a$z||(_a$z=__template$z(["\n object-fit: cover;\n width: 100%;\n height: 100%;\n height: 180px;\n"])));function PopoverContent(_ref494){let{content,handleClose,handleOpenNext}=_ref494;var _a2,_b,_c,_d,_e;return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{radius:3,overflow:"hidden",width:0,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Container,{width:0,children:[content.image&&/* @__PURE__ */jsxRuntime.jsx(Image$2,{src:content.image.asset.url,alt:(_a2=content.image.asset.altText)!=null?_a2:""}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{padding:3,direction:"column",children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,marginTop:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Heading,{size:1,children:content.headingText})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:4,children:/* @__PURE__ */jsxRuntime.jsx(DescriptionSerializer,{blocks:content.descriptionText})})]}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{width:"full",gap:3,justify:"flex-end",padding:3,children:[((_b=content.secondaryButton)==null?void 0:_b.text)&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"bleed",text:content.secondaryButton.text,tone:"default",onClick:handleClose}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"default",tooltipProps:null,text:(_c=content.ctaButton)==null?void 0:_c.text,autoFocus:true,tone:"primary",...(((_d=content.ctaButton)==null?void 0:_d.action)==="openUrl"?{href:content.ctaButton.url,target:"_blank",rel:"noopener noreferrer",as:"a"}:{onClick:((_e=content.ctaButton)==null?void 0:_e.action)==="openNext"?handleOpenNext:handleClose})})]})]})});}var __freeze$y=Object.freeze;var __defProp$y=Object.defineProperty;var __template$y=(cooked,raw)=>__freeze$y(__defProp$y(cooked,"raw",{value:__freeze$y(raw||cooked.slice())}));var _a$y,_b$i,_c$c;const StyledButton$1=styled__default.default(TooltipDelayGroupProvider.Button)(_a$y||(_a$y=__template$y(["\n position: absolute;\n top: 12px;\n right: 12px;\n z-index: 20;\n background: transparent;\n border-radius: 9999px;\n box-shadow: none;\n color: white;\n --card-fg-color: white;\n :hover {\n --card-fg-color: white;\n }\n"])));const Image$1=styled__default.default.img(_b$i||(_b$i=__template$y(["\n object-fit: cover;\n width: 100%;\n height: 100%;\n height: 196px;\n"])));const StyledDialog=styled__default.default(TooltipDelayGroupProvider.Dialog)(_c$c||(_c$c=__template$y(["\n > [data-ui='DialogCard'] {\n max-width: 22.5rem;\n }\n"])));function DialogContent(_ref495){let{handleClose,handleOpenNext,content,open}=_ref495;var _a2,_b2,_c2,_d,_e;const schemeValue=useColorSchemeValue();if(!open)return null;return/* @__PURE__ */jsxRuntime.jsxs(StyledDialog,{id:"free-trial-modal",onClose:handleClose,onClickOutside:handleClose,padding:false,__unstable_hideCloseButton:true,scheme:schemeValue,footer:{cancelButton:((_a2=content.secondaryButton)==null?void 0:_a2.text)?{text:content.secondaryButton.text,mode:"bleed",tone:"default",onClick:handleClose}:void 0,confirmButton:{text:(_b2=content.ctaButton)==null?void 0:_b2.text,mode:"default",tone:"primary",...(((_c2=content.ctaButton)==null?void 0:_c2.action)==="openUrl"?{href:content.ctaButton.url,target:"_blank",rel:"noopener noreferrer",as:"a"}:{onClick:((_d=content.ctaButton)==null?void 0:_d.action)==="openNext"?handleOpenNext:handleClose})}},children:[/* @__PURE__ */jsxRuntime.jsx(StyledButton$1,{icon:icons.CloseIcon,mode:"bleed",tone:"default",onClick:handleClose,tabIndex:-1,tooltipProps:null}),content.image&&/* @__PURE__ */jsxRuntime.jsx(Image$1,{src:content.image.asset.url,alt:(_e=content.image.asset.altText)!=null?_e:""}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{padding:3,direction:"column",children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,marginTop:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Heading,{size:2,children:content.headingText})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:4,paddingBottom:3,children:/* @__PURE__ */jsxRuntime.jsx(DescriptionSerializer,{blocks:content.descriptionText})})]})]});}var __freeze$x=Object.freeze;var __defProp$x=Object.defineProperty;var __template$x=(cooked,raw)=>__freeze$x(__defProp$x(cooked,"raw",{value:__freeze$x(raw||cooked.slice())}));var _a$x;const CenteredStroke=styled__default.default.div(_a$x||(_a$x=__template$x(["\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"])));const SvgFilledOutline=_ref496=>{let{daysLeft,totalDays}=_ref496;const progress=totalDays-daysLeft;const percentage=Math.round(progress/totalDays*100);const radius=10;const strokeDasharray=2*Math.PI*radius;const strokeDashOffset=strokeDasharray*((100-percentage)/100);const strokeWidth=1.2;const size=radius*2+strokeWidth;return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{children:/* @__PURE__ */jsxRuntime.jsx(CenteredStroke,{children:/* @__PURE__ */jsxRuntime.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:size,height:size,viewBox:"0 0 ".concat(size," ").concat(size),style:{transform:"rotate(-90deg)"},children:[/* @__PURE__ */jsxRuntime.jsx("circle",{r:radius,cx:size/2,cy:size/2,fill:"transparent",strokeWidth,stroke:percentage>75?color.yellow["600"].hex:color.purple["400"].hex}),/* @__PURE__ */jsxRuntime.jsx("circle",{r:radius,cx:size/2,cy:size/2,fill:"transparent",strokeWidth,stroke:"var(--card-border-color)",strokeDasharray,strokeDashoffset:strokeDashOffset})]})})});};const FreeTrialButtonTopbar=React.forwardRef(function FreeTrialButtonTopbar2(_ref497,ref){let{toggleShowContent,daysLeft,totalDays}=_ref497;const{t}=reactI18next.useTranslation();return/* @__PURE__ */jsxRuntime.jsxs(TooltipDelayGroupProvider.Button,{mode:"bleed",onClick:toggleShowContent,ref,tooltipProps:{content:daysLeft?t("free-trial.tooltip.days-count",{count:daysLeft}):t("free-trial.tooltip.trial-finished")},children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:0,children:/* @__PURE__ */jsxRuntime.jsx(icons.BoltIcon,{})}),daysLeft>0&&/* @__PURE__ */jsxRuntime.jsx(SvgFilledOutline,{daysLeft,totalDays})]});});const FreeTrialButtonSidebar=React.forwardRef(function FreeTrialButtonSidebar2(_ref498,ref){let{toggleShowContent,daysLeft}=_ref498;const{t}=reactI18next.useTranslation();return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{ref,icon:icons.BoltIcon,justify:"flex-start",mode:"bleed",size:"large",onClick:toggleShowContent,text:daysLeft?t("user-menu.action.free-trial",{count:daysLeft}):t("user-menu.action.free-trial-finished")});});const FreeTrialContext=React.createContext(void 0);const useFreeTrialContext=()=>{const context=React.useContext(FreeTrialContext);if(!context){throw new Error("useFreeTrial must be used within a FreeTrialProvider");}return context;};function FreeTrial(_ref499){let{type}=_ref499;const{data,showDialog,showOnLoad,toggleShowContent}=useFreeTrialContext();const scheme=useColorSchemeValue();const[ref,setRef]=React.useState(null);const[showPopover,setShowPopover]=React.useState(false);React.useEffect(()=>{if(ref){setShowPopover(true);}},[ref]);const closeAndReOpen=React.useCallback(()=>toggleShowContent(true),[toggleShowContent]);const toggleDialog=React.useCallback(()=>{ref==null?void 0:ref.focus();toggleShowContent(false);},[toggleShowContent,ref]);if(!(data==null?void 0:data.id))return null;const dialogToRender=showOnLoad?data.showOnLoad:data.showOnClick;if(!dialogToRender)return null;const button=type==="sidebar"?/* @__PURE__ */jsxRuntime.jsx(FreeTrialButtonSidebar,{toggleShowContent:closeAndReOpen,daysLeft:data.daysLeft,ref:setRef}):/* @__PURE__ */jsxRuntime.jsx(FreeTrialButtonTopbar,{toggleShowContent:closeAndReOpen,daysLeft:data.daysLeft,totalDays:data.totalDays,ref:setRef});if((dialogToRender==null?void 0:dialogToRender.dialogType)==="popover"){return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Popover,{open:showDialog&&showPopover,size:0,scheme,radius:3,portal:true,placement:type==="sidebar"?"top":"bottom-end",content:/* @__PURE__ */jsxRuntime.jsx(PopoverContent,{content:dialogToRender,handleClose:toggleDialog,handleOpenNext:closeAndReOpen}),children:button});}return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[button,/* @__PURE__ */jsxRuntime.jsx(DialogContent,{content:dialogToRender,handleClose:toggleDialog,handleOpenNext:closeAndReOpen,open:showDialog})]});}function ManageMenu(){const{currentUser,projectId}=useWorkspace();const isAdmin=Boolean(currentUser&&userHasRole(currentUser,"administrator"));const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:true,flex:"none",padding:2,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{as:"ul",space:1,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"li",children:/* @__PURE__ */jsxRuntime.jsx(FreeTrial,{type:"sidebar"})}),/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"li",children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":t("user-menu.action.manage-project-aria-label"),as:"a",href:"https://sanity.io/manage/project/".concat(projectId),icon:icons.CogIcon,justify:"flex-start",mode:"bleed",size:"large",target:"_blank",text:t("user-menu.action.manage-project")})}),isAdmin&&/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"li",children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":t("user-menu.action.invite-members-aria-label"),as:"a",href:"https://sanity.io/manage/project/".concat(projectId,"/members"),icon:icons.UsersIcon,justify:"flex-start",mode:"bleed",size:"large",target:"_blank",text:t("user-menu.action.invite-members")})})]})});}var __freeze$w=Object.freeze;var __defProp$w=Object.defineProperty;var __template$w=(cooked,raw)=>__freeze$w(__defProp$w(cooked,"raw",{value:__freeze$w(raw||cooked.slice())}));var _a$w,_b$h,_c$b;const ANIMATION_TRANSITION$1={bounce:0,damping:20,mass:0.5,stiffness:200,type:"spring"};const BACKDROP_VARIANTS={open:{opacity:1},closed:{opacity:0}};const INNER_CARD_VARIANTS={open:{x:"0%"},closed:{x:"-100%"}};const Root$5=styled__default.default(ui.Layer)(_a$w||(_a$w=__template$w(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n"])));const BackdropMotion=styled__default.default(framerMotion.motion(ui.Card))(_b$h||(_b$h=__template$w(["\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--card-shadow-penumbra-color);\n"])));const InnerCardMotion=styled__default.default(framerMotion.motion(ui.Card))(_c$b||(_c$b=__template$w(["\n position: relative;\n pointer-events: all;\n flex-direction: column;\n height: 100%;\n min-width: 200px;\n max-width: 280px;\n overflow: auto;\n"])));const NavDrawer=React.memo(function NavDrawer2(props){const{activeToolName,isOpen,onClose,tools}=props;const setScheme=useColorSchemeSetValue();const{auth,currentUser}=useWorkspace();const workspaces=useWorkspaces();const ToolMenu=useToolMenuComponent();const{t}=useTranslation();const handleKeyDown=React.useCallback(event=>{if(event.key==="Escape"){onClose();}},[onClose]);return/* @__PURE__ */jsxRuntime.jsx(framerMotion.AnimatePresence,{children:isOpen&&/* @__PURE__ */jsxRuntime.jsx(FocusLock__default.default,{returnFocus:true,children:/* @__PURE__ */jsxRuntime.jsxs(Root$5,{onKeyDown:handleKeyDown,children:[/* @__PURE__ */jsxRuntime.jsx(BackdropMotion,{animate:"open","data-open":isOpen,exit:"closed",initial:"closed",onClick:onClose,transition:ANIMATION_TRANSITION$1,variants:BACKDROP_VARIANTS}),/* @__PURE__ */jsxRuntime.jsxs(InnerCardMotion,{animate:"open","data-open":isOpen,display:"flex",exit:"closed",height:"fill",initial:"closed",shadow:1,transition:ANIMATION_TRANSITION$1,variants:INNER_CARD_VARIANTS,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderBottom:true,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,padding:3,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",children:[/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{flex:1,align:"center",paddingRight:2,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{flex:1,align:"center",children:[/* @__PURE__ */jsxRuntime.jsx(UserAvatar,{size:1,user:"me"}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:1,marginLeft:3,title:(currentUser==null?void 0:currentUser.name)||(currentUser==null?void 0:currentUser.email),children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,textOverflow:"ellipsis",weight:"medium",children:(currentUser==null?void 0:currentUser.name)||(currentUser==null?void 0:currentUser.email)})})]})}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{icon:icons.CloseIcon,mode:"bleed",onClick:onClose,tooltipProps:{content:t("user-menu.close-menu")}})]}),workspaces.length>1&&/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{flex:1,gap:1,children:[/* @__PURE__ */jsxRuntime.jsx(HomeButton,{}),/* @__PURE__ */jsxRuntime.jsx(WorkspaceMenuButton,{})]})]})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",flex:1,justify:"space-between",overflow:"auto",children:[/* @__PURE__ */jsxRuntime.jsx(ui.Card,{flex:"none",padding:2,children:/* @__PURE__ */jsxRuntime.jsx(ToolMenu,{activeToolName,closeSidebar:onClose,context:"sidebar",isSidebarOpen:isOpen,tools})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",children:[setScheme&&/* @__PURE__ */jsxRuntime.jsx(AppearanceMenu,{setScheme}),/* @__PURE__ */jsxRuntime.jsx(LocaleMenu,{}),/* @__PURE__ */jsxRuntime.jsx(ManageMenu,{})]})]}),auth.logout&&/* @__PURE__ */jsxRuntime.jsx(ui.Card,{flex:"none",padding:2,borderTop:true,children:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{iconRight:icons.LeaveIcon,justify:"flex-start",mode:"bleed",onClick:auth.logout,size:"large",text:t("user-menu.action.sign-out")})})})]})]})})});});function ConfigIssuesButton(){var _a;const schema=useSchema();const groupsWithWarnings=((_a=schema._validation)==null?void 0:_a.filter(group=>group.problems.some(problem=>problem.severity==="warning")))||[];const{scheme}=useColorScheme();const{t}=useTranslation();const dialogId=React.useId();const[isDialogOpen,setDialogOpen]=React.useState(false);const[buttonElement,setButtonElement]=React.useState(null);const handleOpen=React.useCallback(()=>setDialogOpen(true),[]);const handleClose=React.useCallback(()=>{setDialogOpen(false);if(buttonElement){buttonElement.focus();}},[buttonElement]);if(groupsWithWarnings.length===0){return null;}return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(StatusButton,{icon:icons.WarningOutlineIcon,mode:"bleed",onClick:handleOpen,ref:setButtonElement,selected:isDialogOpen,tone:"caution",tooltipProps:{scheme,content:t("configuration-issues.button.tooltip")}}),isDialogOpen&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Dialog,{header:"Configuration issues",width:2,onClickOutside:handleClose,onClose:handleClose,scheme,id:dialogId,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{as:"h2",size:1,weight:"medium",children:["Found ",groupsWithWarnings.length," schema warnings"]})," ",/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:"Configuration checks are only performed during development and will not be visible in production builds"})]}),/* @__PURE__ */jsxRuntime.jsx(SchemaProblemGroups,{problemGroups:groupsWithWarnings})]})})]});}const SearchButton=React.forwardRef(function SearchButton2(_ref500,ref){let{onClick}=_ref500;const{t}=reactI18next.useTranslation();return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":t("search.action-open-aria-label"),"data-testid":"studio-search",icon:icons.SearchIcon,tooltipProps:{content:t("search.button.tooltip"),hotkeys:[GLOBAL_SEARCH_KEY_MODIFIER,GLOBAL_SEARCH_KEY.toUpperCase()],portal:true},onClick,mode:"bleed",ref});});const isSearchHotKey=isHotkey__default.default("mod+".concat(GLOBAL_SEARCH_KEY));const isEscape$1=isHotkey__default.default("escape");function useSearchHotkeys(_ref501){let{open,onClose,onOpen}=_ref501;const{isTopLayer}=ui.useLayer();const handleClose=React.useCallback(()=>{onClose==null?void 0:onClose();},[onClose]);const handleGlobalKeyDown=React.useCallback(event=>{if(isSearchHotKey(event)){event.preventDefault();if(open){handleClose();}else{onOpen==null?void 0:onOpen();}}if(isEscape$1(event)&&open&&isTopLayer){handleClose();}},[handleClose,isTopLayer,open,onOpen]);ui.useGlobalKeyDown(handleGlobalKeyDown);}function SearchWrapper(_ref502){let{children,hasValidTerms,onClose,onOpen,open}=_ref502;const isMountedRef=React.useRef(false);const{dispatch,searchCommandList,setOnClose,state:{result}}=useSearchState();const handleClose=React.useCallback(()=>{var _a;dispatch({index:(_a=searchCommandList==null?void 0:searchCommandList.getTopIndex())!=null?_a:-1,type:"LAST_ACTIVE_INDEX_SET"});onClose();},[dispatch,onClose,searchCommandList]);useSearchHotkeys({onClose:handleClose,onOpen,open});React.useEffect(()=>{setOnClose(handleClose);},[handleClose,setOnClose]);React.useEffect(()=>{if((!hasValidTerms||result.loaded)&&isMountedRef.current){dispatch({index:0,type:"LAST_ACTIVE_INDEX_SET"});}},[dispatch,hasValidTerms,result.loaded]);React.useEffect(()=>{if(!hasValidTerms&&isMountedRef.current&&!open){dispatch({type:"ORDERING_RESET"});}},[dispatch,hasValidTerms,open]);React.useEffect(()=>{if(!(isMountedRef==null?void 0:isMountedRef.current)){isMountedRef.current=true;}},[]);return children;}function createOperatorDefinitionDictionary(operatorDefinitions){return operatorDefinitions.reduce((acc,val)=>{acc[val.type]=val;return acc;},{});}function getOperatorDefinition(operators,operatorType){return operatorType?operators[operatorType]:void 0;}function getOperatorInitialValue(operators,operatorType){var _a;return(_a=getOperatorDefinition(operators,operatorType))==null?void 0:_a.initialValue;}function buildSearchFilter(filterDefinition,fieldId){var _a;return{fieldId,filterName:filterDefinition.name,operatorType:((_a=filterDefinition==null?void 0:filterDefinition.operators.find(operator=>{return operator.type==="item";}))==null?void 0:_a.name)||""};}function generateFilterQuery(_ref503){let{fieldDefinitions,filterDefinitions,filters,operatorDefinitions}=_ref503;return filters.filter(filter=>validateFilter({filter,filterDefinitions,fieldDefinitions,operatorDefinitions})).map(filter=>{var _a;return(_a=getOperatorDefinition(operatorDefinitions,filter.operatorType))==null?void 0:_a.groqFilter({fieldPath:resolveFieldPath({filter,fieldDefinitions,filterDefinitions}),value:filter==null?void 0:filter.value});}).filter(filter=>!isEmpty__default.default(filter)).filter(isNonNullable$2).join(" && ");}function getFieldFromFilter(fields,filter){return(filter==null?void 0:filter.fieldId)?fields[filter.fieldId]:void 0;}function getFilterKey(filter){return[filter.filterName,...(filter.fieldId?[filter.fieldId]:[])].join("-");}function narrowDocumentTypes(_ref504){let{fieldDefinitions,filters,types}=_ref504;const selectedDocumentTypes=types.map(type=>type.name);const filteredDocumentTypes=Object.values(fieldDefinitions).filter(field=>filters.map(filter=>filter==null?void 0:filter.fieldId).includes(field.id)).filter(field=>field.documentTypes.length>0).map(field=>field.documentTypes);const intersectingDocumentTypes=intersection__default$1.default(...filteredDocumentTypes);const documentTypes=[];if(selectedDocumentTypes.length>0){documentTypes.push(selectedDocumentTypes);}if(intersectingDocumentTypes.length>0){documentTypes.push(intersectingDocumentTypes);}return intersection__default$1.default(...documentTypes).sort();}function resolveFieldPath(_ref505){let{filter,fieldDefinitions,filterDefinitions}=_ref505;const fieldDefinition=getFieldFromFilter(fieldDefinitions,filter);const filterDefinition=getFilterDefinition(filterDefinitions,filter.filterName);if(!filterDefinition){return void 0;}switch(filterDefinition.type){case"field":return fieldDefinition==null?void 0:fieldDefinition.fieldPath;case"pinned":return filterDefinition==null?void 0:filterDefinition.fieldPath;default:return void 0;}}function validateFilter(_ref506){let{filter,filterDefinitions,fieldDefinitions,operatorDefinitions}=_ref506;const filterDef=getFilterDefinition(filterDefinitions,filter.filterName);const operatorDef=getOperatorDefinition(operatorDefinitions,filter.operatorType);const fieldDef=getFieldFromFilter(fieldDefinitions,filter);if(!filterDef){return false;}if(!operatorDef){return false;}if(filter.fieldId){if(!fieldDef){return false;}}if(filterDef.type==="field"){if(!(fieldDef==null?void 0:fieldDef.fieldPath)){return false;}if(!filter.fieldId){return false;}const hasFilterValue=operatorDef.groqFilter({fieldPath:fieldDef.fieldPath,value:filter.value});if(!hasFilterValue){return false;}}if(filterDef.type==="pinned"){const hasFilterValue=operatorDef.groqFilter({fieldPath:filterDef.fieldPath,value:filter.value});if(!hasFilterValue){return false;}}return true;}var __freeze$v=Object.freeze;var __defProp$v=Object.defineProperty;var __template$v=(cooked,raw)=>__freeze$v(__defProp$v(cooked,"raw",{value:__freeze$v(raw||cooked.slice())}));var _a$v;const isEscape=isHotkey__default.default("escape");const MAX_HEIGHT=500;const HiddenOverlay=styled__default.default.div(_a$v||(_a$v=__template$v(["\n background: transparent;\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: -1;\n"])));function FilterPopoverWrapper(_ref507){let{anchorElement,children,onClose}=_ref507;const{isTopLayer}=ui.useLayer();const handleGlobalKeyDown=React.useCallback(event=>{if(isEscape(event)&&isTopLayer){onClose();}},[isTopLayer,onClose]);ui.useGlobalKeyDown(handleGlobalKeyDown);const popoverOffset=usePopoverOffset(anchorElement||null);return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(HiddenOverlay,{onClick:onClose}),/* @__PURE__ */jsxRuntime.jsx(FocusLock__default.default,{autoFocus:false,returnFocus:true,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{display:"flex",overflow:"hidden",radius:POPOVER_RADIUS,style:{maxHeight:"min(calc(100vh - ".concat(popoverOffset,"px - ").concat(POPOVER_VERTICAL_MARGIN,"px - ").concat(POPOVER_INPUT_PADDING,"px), ").concat(MAX_HEIGHT,"px"),zIndex:1},children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{children})})})]});}function calcPopoverOffset(element){const rect=element.getBoundingClientRect();const offset=rect.y+rect.height+POPOVER_VERTICAL_MARGIN;return offset;}function usePopoverOffset(element){const[offset,setOffset]=React.useState(element&&calcPopoverOffset(element));const handleWindowResize=React.useCallback(()=>{if(element){setOffset(calcPopoverOffset(element));}},[element]);React.useEffect(()=>{if(element){setOffset(calcPopoverOffset(element));}},[element]);React.useEffect(()=>{window.addEventListener("resize",handleWindowResize);return()=>window.removeEventListener("resize",handleWindowResize);},[handleWindowResize]);return offset;}var __freeze$u=Object.freeze;var __defProp$u=Object.defineProperty;var __template$u=(cooked,raw)=>__freeze$u(__defProp$u(cooked,"raw",{value:__freeze$u(raw||cooked.slice())}));var _a$u,_b$g;const SearchHeaderBox=styled__default.default(ui.Box)(_a$u||(_a$u=__template$u(["\n border-bottom: 1px solid ",";\n flex-shrink: 0;\n"])),_ref508=>{let{theme}=_ref508;return theme.sanity.color.base.border;});const SearchHeaderContentFlex=styled__default.default(ui.Flex)(_b$g||(_b$g=__template$u(["\n box-sizing: border-box;\n"])));const FilterPopoverContentHeader=React.forwardRef(function FilterPopoverContentHeader2(_ref509,ref){let{ariaInputLabel,onChange,onClear,typeFilter}=_ref509;const{state:{fullscreen}}=useSearchState();const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(SearchHeaderBox,{children:/* @__PURE__ */jsxRuntime.jsx(SearchHeaderContentFlex,{align:"center",flex:1,padding:1,children:/* @__PURE__ */jsxRuntime.jsx(CustomTextInput,{__unstable_disableFocusRing:true,$smallClearButton:true,"aria-label":ariaInputLabel,autoComplete:"off",border:false,clearButton:!!typeFilter,fontSize:fullscreen?2:1,icon:icons.SearchIcon,muted:true,onChange,onClear,placeholder:t("search.filter-placeholder"),ref,spellCheck:false,radius:2,value:typeFilter})})});});function createFilterMenuItems(_ref510){let{documentTypesNarrowed,fieldDefinitions,filterDefinitions,schema,titleFilter,types,t}=_ref510;const fieldFilters=Object.values(fieldDefinitions).filter(fieldDef=>includesTitleInFieldDefinition(fieldDef,titleFilter)).map(fieldDef=>{const filterDef=getFilterDefinition(filterDefinitions,fieldDef.filterName);if(filterDef){return buildSearchFilter(filterDef,fieldDef.id);}return null;}).filter(isNonNullable$2);const pinnedItems=buildPinnedMenuItems({fieldDefinitions,filterDefinitions,titleFilter});if(documentTypesNarrowed.length===0){return[...pinnedItems,// All fields
421
+ content:t("presence.aria-label")}});},[hasPresence,t]);const popoverProps=React.useMemo(()=>({constrainSize:true,fallbackPlacements:["bottom"],placement:"bottom",portal:true,scheme}),[scheme]);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuButton,{button,id:"global-presence-menu",menu:/* @__PURE__ */jsxRuntime.jsxs(StyledMenu$1,{children:[hasPresence&&presence.map(item=>/* @__PURE__ */jsxRuntime.jsx(PresenceMenuItem,{focused:focusedId===item.user.id,onFocus:handleItemFocus,presence:item},item.user.id)),!hasPresence&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{padding:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{weight:"medium",size:1,children:t("presence.no-one-else-title")}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,children:t("presence.no-one-else-description")})]})}),/* @__PURE__ */jsxRuntime.jsxs(FooterStack,{space:1,children:[/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a",href:"https://sanity.io/manage/project/".concat(projectId),iconRight:icons.CogIcon,onFocus:handleClearFocusedItem,rel:"noopener noreferrer",target:"_blank",text:t("presence.action.manage-members")})]})]}),onClose:handleClose,popover:popoverProps});}function SanityLogo(){return/* @__PURE__ */jsxRuntime.jsxs("svg",{width:"100%",height:"100%",viewBox:"0 0 33 33",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[/* @__PURE__ */jsxRuntime.jsx("rect",{width:"100%",height:"100%",fill:"#EC5446"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M10.1637 8.5498C10.1637 11.3854 11.9461 13.0725 15.5143 13.9622L19.2955 14.8235C22.6725 15.5855 24.729 17.4783 24.729 20.5619C24.7553 21.9053 24.3107 23.2168 23.4698 24.2765C23.4698 21.1999 21.8499 19.5376 17.9425 18.538L14.2299 17.7086C11.257 17.0423 8.9623 15.4863 8.9623 12.1368C8.94666 10.8433 9.36932 9.58143 10.1637 8.5498Z",fill:"white"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M21.1463 19.8069C22.7591 20.8206 23.4662 22.2384 23.4662 24.2729C22.1313 25.953 19.7861 26.8958 17.0297 26.8958C12.3899 26.8958 9.1427 24.6521 8.42111 20.7533H12.8769C13.4506 22.5432 14.9695 23.3726 16.9972 23.3726C19.4722 23.3726 21.1175 22.0753 21.1499 19.7998",fill:"#F8B1AA"}),/* @__PURE__ */jsxRuntime.jsx("path",{d:"M12.4801 12.7536C11.7436 12.3236 11.1394 11.7057 10.7316 10.9656C10.3238 10.2255 10.1276 9.3907 10.1638 8.54984C11.4518 6.88396 13.6923 5.8667 16.4235 5.8667C21.1499 5.8667 23.8848 8.31945 24.5595 11.7717H20.2732C19.8006 10.4107 18.6172 9.35089 16.4596 9.35089C14.1541 9.35089 12.5811 10.6694 12.4909 12.7536",fill:"#F8B1AA"})]});}var __freeze$B=Object.freeze;var __defProp$B=Object.defineProperty;var __template$B=(cooked,raw)=>__freeze$B(__defProp$B(cooked,"raw",{value:__freeze$B(raw||cooked.slice())}));var _a$B,_b$k;const LOGO_MARK_SIZE=25;const RADIUS=2;const LogoMarkContainer=styled__default.default(ui.Card).attrs({overflow:"hidden",radius:RADIUS})(_a$B||(_a$B=__template$B(["\n height: ","px;\n width: ","px;\n"])),LOGO_MARK_SIZE,LOGO_MARK_SIZE);const StyledCard=styled__default.default(ui.Card)(_ref484=>{let{theme}=_ref484;const{focusRing}=theme.sanity;const{base}=theme.sanity.color;return styled.css(_b$k||(_b$k=__template$B(["\n border-radius: ",";\n display: flex;\n outline: none;\n text-decoration: none;\n &:focus-visible {\n box-shadow: ",";\n }\n "])),ui.rem(theme.sanity.radius[RADIUS]),focusRingStyle$1({base,focusRing:{...focusRing,offset:1}}));});function HomeButton(){const workspaces=useWorkspaces();const{activeWorkspace}=useActiveWorkspace();const{href:rootHref,onClick:handleRootClick}=router.useStateLink({state:{}});const multipleWorkspaces=workspaces.length>1;return/* @__PURE__ */jsxRuntime.jsx(StyledCard,{__unstable_focusRing:true,as:"a",href:rootHref,onClick:handleRootClick,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",children:[/* @__PURE__ */jsxRuntime.jsx(LogoMarkContainer,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",height:"fill",justify:"center",children:multipleWorkspaces||activeWorkspace.customIcon?/* @__PURE__ */jsxRuntime.jsx(WorkspacePreviewIcon,{icon:activeWorkspace.icon,size:"small"}):/* @__PURE__ */jsxRuntime.jsx(SanityLogo,{})})}),!multipleWorkspaces&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,weight:"medium",children:activeWorkspace.title})})]})});}function AppearanceMenu(_ref485){let{setScheme}=_ref485;const{t}=useTranslation();const options=useColorSchemeOptions(setScheme,t);return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:true,flex:"none",padding:2,overflow:"auto",children:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"ul",space:1,children:options.map(_ref486=>{let{icon,label,name,onSelect,selected,title}=_ref486;return/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"li",children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":label,icon,iconRight:selected&&/* @__PURE__ */jsxRuntime.jsx(icons.CheckmarkIcon,{}),justify:"flex-start",mode:"bleed",onClick:onSelect,selected,size:"large",text:title})},name);})})});}function LocaleMenu(){useLocale();{return null;}}var __freeze$A=Object.freeze;var __defProp$A=Object.defineProperty;var __template$A=(cooked,raw)=>__freeze$A(__defProp$A(cooked,"raw",{value:__freeze$A(raw||cooked.slice())}));var _a$A,_b$j,_c$d,_d$5;const Divider=styled__default.default(ui.Box)(_a$A||(_a$A=__template$A(["\n height: 1px;\n background: var(--card-border-color);\n width: 100%;\n"])));const SerializerContainer=styled__default.default.div(_b$j||(_b$j=__template$A(["\n // Remove margin bottom to last box.\n > [data-ui='Box']:last-child {\n margin-bottom: 0;\n }\n"])));const Link=styled__default.default.a(_c$d||(_c$d=__template$A(["\n font-weight: 600;\n color: ",";\n"])),props=>props.useTextColor?"var(--card-muted-fg-color) !important":"");const DynamicIconContainer=styled__default.default.span(_d$5||(_d$5=__template$A(["\n > svg {\n display: inline;\n font-size: calc(21 / 16 * 1rem) !important;\n margin: -0.375rem 0 !important;\n *[stroke] {\n stroke: currentColor;\n }\n }\n"])));const DynamicIcon=props=>{const[ref,setRef]=React.useState(null);React.useEffect(()=>{if(!ref)return;const controller=new AbortController();const signal=controller.signal;fetch(props.icon.url,{signal}).then(response=>{if(!response.ok){throw new Error("HTTP error! status: ".concat(response.status));}return response.text();}).then(data=>{if(!ref)return;ref.innerHTML=data;}).catch(error=>{if(error.name!=="AbortError"){console.error(error);}});return()=>{controller.abort();};},[ref,props.icon.url]);return/* @__PURE__ */jsxRuntime.jsx(DynamicIconContainer,{ref:setRef});};function NormalBlock(props){const{children}=props;return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,marginBottom:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,children})});}const components={block:{normal:_ref487=>{let{children}=_ref487;return/* @__PURE__ */jsxRuntime.jsx(NormalBlock,{children});}},list:{bullet:_ref488=>{let{children}=_ref488;return children;},number:_ref489=>{let{children}=_ref489;return/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children});},checkmarks:_ref490=>{let{children}=_ref490;return/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children});}},listItem:{bullet:_ref491=>{let{children}=_ref491;return/* @__PURE__ */jsxRuntime.jsx(NormalBlock,{children});},number:_ref492=>{let{children}=_ref492;return/* @__PURE__ */jsxRuntime.jsx(NormalBlock,{children});},checkmarks:_ref493=>{let{children}=_ref493;return/* @__PURE__ */jsxRuntime.jsx(NormalBlock,{children});}},marks:{strong:_ref494=>{let{children}=_ref494;return/* @__PURE__ */jsxRuntime.jsx("strong",{children});},link:props=>/* @__PURE__ */jsxRuntime.jsxs(Link,{href:props.value.href,rel:"noopener noreferrer",target:"_blank",useTextColor:props.value.useTextColor,children:[props.children,props.value.showIcon&&/* @__PURE__ */jsxRuntime.jsx(icons.LinkIcon,{style:{marginLeft:"2px"}})]})},types:{inlineIcon:props=>/* @__PURE__ */jsxRuntime.jsx(DynamicIcon,{icon:props.value.icon}),divider:()=>/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginY:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingY:3,children:/* @__PURE__ */jsxRuntime.jsx(Divider,{})})}),iconAndText:props=>/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"flex-start",paddingX:2,paddingTop:1,paddingBottom:2,marginTop:2,gap:2,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{gap:2,style:{flexShrink:0},children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(DynamicIcon,{icon:props.value.icon})}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,weight:"semibold",children:props.value.title})]}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,children:props.value.text})]})}};function DescriptionSerializer(props){return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{tone:"default",children:/* @__PURE__ */jsxRuntime.jsx(SerializerContainer,{children:/* @__PURE__ */jsxRuntime.jsx(react$1.PortableText,{value:props.blocks,components,onMissingComponent:false})})});}var __freeze$z=Object.freeze;var __defProp$z=Object.defineProperty;var __template$z=(cooked,raw)=>__freeze$z(__defProp$z(cooked,"raw",{value:__freeze$z(raw||cooked.slice())}));var _a$z;const Image$2=styled__default.default.img(_a$z||(_a$z=__template$z(["\n object-fit: cover;\n width: 100%;\n height: 100%;\n height: 180px;\n"])));function PopoverContent(_ref495){let{content,handleClose,handleOpenNext}=_ref495;var _a2,_b,_c,_d,_e;return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{radius:3,overflow:"hidden",width:0,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Container,{width:0,children:[content.image&&/* @__PURE__ */jsxRuntime.jsx(Image$2,{src:content.image.asset.url,alt:(_a2=content.image.asset.altText)!=null?_a2:""}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{padding:3,direction:"column",children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,marginTop:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Heading,{size:1,children:content.headingText})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:4,children:/* @__PURE__ */jsxRuntime.jsx(DescriptionSerializer,{blocks:content.descriptionText})})]}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{width:"full",gap:3,justify:"flex-end",padding:3,children:[((_b=content.secondaryButton)==null?void 0:_b.text)&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"bleed",text:content.secondaryButton.text,tone:"default",onClick:handleClose}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"default",tooltipProps:null,text:(_c=content.ctaButton)==null?void 0:_c.text,autoFocus:true,tone:"primary",...(((_d=content.ctaButton)==null?void 0:_d.action)==="openUrl"?{href:content.ctaButton.url,target:"_blank",rel:"noopener noreferrer",as:"a"}:{onClick:((_e=content.ctaButton)==null?void 0:_e.action)==="openNext"?handleOpenNext:handleClose})})]})]})});}var __freeze$y=Object.freeze;var __defProp$y=Object.defineProperty;var __template$y=(cooked,raw)=>__freeze$y(__defProp$y(cooked,"raw",{value:__freeze$y(raw||cooked.slice())}));var _a$y,_b$i,_c$c;const StyledButton$1=styled__default.default(TooltipDelayGroupProvider.Button)(_a$y||(_a$y=__template$y(["\n position: absolute;\n top: 12px;\n right: 12px;\n z-index: 20;\n background: transparent;\n border-radius: 9999px;\n box-shadow: none;\n color: white;\n --card-fg-color: white;\n :hover {\n --card-fg-color: white;\n }\n"])));const Image$1=styled__default.default.img(_b$i||(_b$i=__template$y(["\n object-fit: cover;\n width: 100%;\n height: 100%;\n height: 196px;\n"])));const StyledDialog=styled__default.default(TooltipDelayGroupProvider.Dialog)(_c$c||(_c$c=__template$y(["\n > [data-ui='DialogCard'] {\n max-width: 22.5rem;\n }\n"])));function DialogContent(_ref496){let{handleClose,handleOpenNext,content,open}=_ref496;var _a2,_b2,_c2,_d,_e;const schemeValue=useColorSchemeValue();if(!open)return null;return/* @__PURE__ */jsxRuntime.jsxs(StyledDialog,{id:"free-trial-modal",onClose:handleClose,onClickOutside:handleClose,padding:false,__unstable_hideCloseButton:true,scheme:schemeValue,footer:{cancelButton:((_a2=content.secondaryButton)==null?void 0:_a2.text)?{text:content.secondaryButton.text,mode:"bleed",tone:"default",onClick:handleClose}:void 0,confirmButton:{text:(_b2=content.ctaButton)==null?void 0:_b2.text,mode:"default",tone:"primary",...(((_c2=content.ctaButton)==null?void 0:_c2.action)==="openUrl"?{href:content.ctaButton.url,target:"_blank",rel:"noopener noreferrer",as:"a"}:{onClick:((_d=content.ctaButton)==null?void 0:_d.action)==="openNext"?handleOpenNext:handleClose})}},children:[/* @__PURE__ */jsxRuntime.jsx(StyledButton$1,{icon:icons.CloseIcon,mode:"bleed",tone:"default",onClick:handleClose,tabIndex:-1,tooltipProps:null}),content.image&&/* @__PURE__ */jsxRuntime.jsx(Image$1,{src:content.image.asset.url,alt:(_e=content.image.asset.altText)!=null?_e:""}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{padding:3,direction:"column",children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,marginTop:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Heading,{size:2,children:content.headingText})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:4,paddingBottom:3,children:/* @__PURE__ */jsxRuntime.jsx(DescriptionSerializer,{blocks:content.descriptionText})})]})]});}var __freeze$x=Object.freeze;var __defProp$x=Object.defineProperty;var __template$x=(cooked,raw)=>__freeze$x(__defProp$x(cooked,"raw",{value:__freeze$x(raw||cooked.slice())}));var _a$x;const CenteredStroke=styled__default.default.div(_a$x||(_a$x=__template$x(["\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"])));const SvgFilledOutline=_ref497=>{let{daysLeft,totalDays}=_ref497;const progress=totalDays-daysLeft;const percentage=Math.round(progress/totalDays*100);const radius=10;const strokeDasharray=2*Math.PI*radius;const strokeDashOffset=strokeDasharray*((100-percentage)/100);const strokeWidth=1.2;const size=radius*2+strokeWidth;return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{children:/* @__PURE__ */jsxRuntime.jsx(CenteredStroke,{children:/* @__PURE__ */jsxRuntime.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:size,height:size,viewBox:"0 0 ".concat(size," ").concat(size),style:{transform:"rotate(-90deg)"},children:[/* @__PURE__ */jsxRuntime.jsx("circle",{r:radius,cx:size/2,cy:size/2,fill:"transparent",strokeWidth,stroke:percentage>75?color.yellow["600"].hex:color.purple["400"].hex}),/* @__PURE__ */jsxRuntime.jsx("circle",{r:radius,cx:size/2,cy:size/2,fill:"transparent",strokeWidth,stroke:"var(--card-border-color)",strokeDasharray,strokeDashoffset:strokeDashOffset})]})})});};const FreeTrialButtonTopbar=React.forwardRef(function FreeTrialButtonTopbar2(_ref498,ref){let{toggleShowContent,daysLeft,totalDays}=_ref498;const{t}=reactI18next.useTranslation();return/* @__PURE__ */jsxRuntime.jsxs(TooltipDelayGroupProvider.Button,{mode:"bleed",onClick:toggleShowContent,ref,tooltipProps:{content:daysLeft?t("free-trial.tooltip.days-count",{count:daysLeft}):t("free-trial.tooltip.trial-finished")},children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:0,children:/* @__PURE__ */jsxRuntime.jsx(icons.BoltIcon,{})}),daysLeft>0&&/* @__PURE__ */jsxRuntime.jsx(SvgFilledOutline,{daysLeft,totalDays})]});});const FreeTrialButtonSidebar=React.forwardRef(function FreeTrialButtonSidebar2(_ref499,ref){let{toggleShowContent,daysLeft}=_ref499;const{t}=reactI18next.useTranslation();return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{ref,icon:icons.BoltIcon,justify:"flex-start",mode:"bleed",size:"large",onClick:toggleShowContent,text:daysLeft?t("user-menu.action.free-trial",{count:daysLeft}):t("user-menu.action.free-trial-finished")});});const FreeTrialContext=React.createContext(void 0);const useFreeTrialContext=()=>{const context=React.useContext(FreeTrialContext);if(!context){throw new Error("useFreeTrial must be used within a FreeTrialProvider");}return context;};function FreeTrial(_ref500){let{type}=_ref500;const{data,showDialog,showOnLoad,toggleShowContent}=useFreeTrialContext();const scheme=useColorSchemeValue();const[ref,setRef]=React.useState(null);const[showPopover,setShowPopover]=React.useState(false);React.useEffect(()=>{if(ref){setShowPopover(true);}},[ref]);const closeAndReOpen=React.useCallback(()=>toggleShowContent(true),[toggleShowContent]);const toggleDialog=React.useCallback(()=>{ref==null?void 0:ref.focus();toggleShowContent(false);},[toggleShowContent,ref]);if(!(data==null?void 0:data.id))return null;const dialogToRender=showOnLoad?data.showOnLoad:data.showOnClick;if(!dialogToRender)return null;const button=type==="sidebar"?/* @__PURE__ */jsxRuntime.jsx(FreeTrialButtonSidebar,{toggleShowContent:closeAndReOpen,daysLeft:data.daysLeft,ref:setRef}):/* @__PURE__ */jsxRuntime.jsx(FreeTrialButtonTopbar,{toggleShowContent:closeAndReOpen,daysLeft:data.daysLeft,totalDays:data.totalDays,ref:setRef});if((dialogToRender==null?void 0:dialogToRender.dialogType)==="popover"){return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Popover,{open:showDialog&&showPopover,size:0,scheme,radius:3,portal:true,placement:type==="sidebar"?"top":"bottom-end",content:/* @__PURE__ */jsxRuntime.jsx(PopoverContent,{content:dialogToRender,handleClose:toggleDialog,handleOpenNext:closeAndReOpen}),children:button});}return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[button,/* @__PURE__ */jsxRuntime.jsx(DialogContent,{content:dialogToRender,handleClose:toggleDialog,handleOpenNext:closeAndReOpen,open:showDialog})]});}function ManageMenu(){const{currentUser,projectId}=useWorkspace();const isAdmin=Boolean(currentUser&&userHasRole(currentUser,"administrator"));const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:true,flex:"none",padding:2,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{as:"ul",space:1,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"li",children:/* @__PURE__ */jsxRuntime.jsx(FreeTrial,{type:"sidebar"})}),/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"li",children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":t("user-menu.action.manage-project-aria-label"),as:"a",href:"https://sanity.io/manage/project/".concat(projectId),icon:icons.CogIcon,justify:"flex-start",mode:"bleed",size:"large",target:"_blank",text:t("user-menu.action.manage-project")})}),isAdmin&&/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"li",children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":t("user-menu.action.invite-members-aria-label"),as:"a",href:"https://sanity.io/manage/project/".concat(projectId,"/members"),icon:icons.UsersIcon,justify:"flex-start",mode:"bleed",size:"large",target:"_blank",text:t("user-menu.action.invite-members")})})]})});}var __freeze$w=Object.freeze;var __defProp$w=Object.defineProperty;var __template$w=(cooked,raw)=>__freeze$w(__defProp$w(cooked,"raw",{value:__freeze$w(raw||cooked.slice())}));var _a$w,_b$h,_c$b;const ANIMATION_TRANSITION$1={bounce:0,damping:20,mass:0.5,stiffness:200,type:"spring"};const BACKDROP_VARIANTS={open:{opacity:1},closed:{opacity:0}};const INNER_CARD_VARIANTS={open:{x:"0%"},closed:{x:"-100%"}};const Root$5=styled__default.default(ui.Layer)(_a$w||(_a$w=__template$w(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n"])));const BackdropMotion=styled__default.default(framerMotion.motion(ui.Card))(_b$h||(_b$h=__template$w(["\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--card-shadow-penumbra-color);\n"])));const InnerCardMotion=styled__default.default(framerMotion.motion(ui.Card))(_c$b||(_c$b=__template$w(["\n position: relative;\n pointer-events: all;\n flex-direction: column;\n height: 100%;\n min-width: 200px;\n max-width: 280px;\n overflow: auto;\n"])));const NavDrawer=React.memo(function NavDrawer2(props){const{activeToolName,isOpen,onClose,tools}=props;const setScheme=useColorSchemeSetValue();const{auth,currentUser}=useWorkspace();const workspaces=useWorkspaces();const ToolMenu=useToolMenuComponent();const{t}=useTranslation();const handleKeyDown=React.useCallback(event=>{if(event.key==="Escape"){onClose();}},[onClose]);return/* @__PURE__ */jsxRuntime.jsx(framerMotion.AnimatePresence,{children:isOpen&&/* @__PURE__ */jsxRuntime.jsx(FocusLock__default.default,{returnFocus:true,children:/* @__PURE__ */jsxRuntime.jsxs(Root$5,{onKeyDown:handleKeyDown,children:[/* @__PURE__ */jsxRuntime.jsx(BackdropMotion,{animate:"open","data-open":isOpen,exit:"closed",initial:"closed",onClick:onClose,transition:ANIMATION_TRANSITION$1,variants:BACKDROP_VARIANTS}),/* @__PURE__ */jsxRuntime.jsxs(InnerCardMotion,{animate:"open","data-open":isOpen,display:"flex",exit:"closed",height:"fill",initial:"closed",shadow:1,transition:ANIMATION_TRANSITION$1,variants:INNER_CARD_VARIANTS,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderBottom:true,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,padding:3,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",children:[/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{flex:1,align:"center",paddingRight:2,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{flex:1,align:"center",children:[/* @__PURE__ */jsxRuntime.jsx(UserAvatar,{size:1,user:"me"}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:1,marginLeft:3,title:(currentUser==null?void 0:currentUser.name)||(currentUser==null?void 0:currentUser.email),children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,textOverflow:"ellipsis",weight:"medium",children:(currentUser==null?void 0:currentUser.name)||(currentUser==null?void 0:currentUser.email)})})]})}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{icon:icons.CloseIcon,mode:"bleed",onClick:onClose,tooltipProps:{content:t("user-menu.close-menu")}})]}),workspaces.length>1&&/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{flex:1,gap:1,children:[/* @__PURE__ */jsxRuntime.jsx(HomeButton,{}),/* @__PURE__ */jsxRuntime.jsx(WorkspaceMenuButton,{})]})]})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",flex:1,justify:"space-between",overflow:"auto",children:[/* @__PURE__ */jsxRuntime.jsx(ui.Card,{flex:"none",padding:2,children:/* @__PURE__ */jsxRuntime.jsx(ToolMenu,{activeToolName,closeSidebar:onClose,context:"sidebar",isSidebarOpen:isOpen,tools})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",children:[setScheme&&/* @__PURE__ */jsxRuntime.jsx(AppearanceMenu,{setScheme}),/* @__PURE__ */jsxRuntime.jsx(LocaleMenu,{}),/* @__PURE__ */jsxRuntime.jsx(ManageMenu,{})]})]}),auth.logout&&/* @__PURE__ */jsxRuntime.jsx(ui.Card,{flex:"none",padding:2,borderTop:true,children:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{iconRight:icons.LeaveIcon,justify:"flex-start",mode:"bleed",onClick:auth.logout,size:"large",text:t("user-menu.action.sign-out")})})})]})]})})});});function ConfigIssuesButton(){var _a;const schema=useSchema();const groupsWithWarnings=((_a=schema._validation)==null?void 0:_a.filter(group=>group.problems.some(problem=>problem.severity==="warning")))||[];const{scheme}=useColorScheme();const{t}=useTranslation();const dialogId=React.useId();const[isDialogOpen,setDialogOpen]=React.useState(false);const[buttonElement,setButtonElement]=React.useState(null);const handleOpen=React.useCallback(()=>setDialogOpen(true),[]);const handleClose=React.useCallback(()=>{setDialogOpen(false);if(buttonElement){buttonElement.focus();}},[buttonElement]);if(groupsWithWarnings.length===0){return null;}return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(StatusButton,{icon:icons.WarningOutlineIcon,mode:"bleed",onClick:handleOpen,ref:setButtonElement,selected:isDialogOpen,tone:"caution",tooltipProps:{scheme,content:t("configuration-issues.button.tooltip")}}),isDialogOpen&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Dialog,{header:"Configuration issues",width:2,onClickOutside:handleClose,onClose:handleClose,scheme,id:dialogId,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{as:"h2",size:1,weight:"medium",children:["Found ",groupsWithWarnings.length," schema warnings"]})," ",/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:"Configuration checks are only performed during development and will not be visible in production builds"})]}),/* @__PURE__ */jsxRuntime.jsx(SchemaProblemGroups,{problemGroups:groupsWithWarnings})]})})]});}const SearchButton=React.forwardRef(function SearchButton2(_ref501,ref){let{onClick}=_ref501;const{t}=reactI18next.useTranslation();return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":t("search.action-open-aria-label"),"data-testid":"studio-search",icon:icons.SearchIcon,tooltipProps:{content:t("search.button.tooltip"),hotkeys:[GLOBAL_SEARCH_KEY_MODIFIER,GLOBAL_SEARCH_KEY.toUpperCase()],portal:true},onClick,mode:"bleed",ref});});const isSearchHotKey=isHotkey__default.default("mod+".concat(GLOBAL_SEARCH_KEY));const isEscape$1=isHotkey__default.default("escape");function useSearchHotkeys(_ref502){let{open,onClose,onOpen}=_ref502;const{isTopLayer}=ui.useLayer();const handleClose=React.useCallback(()=>{onClose==null?void 0:onClose();},[onClose]);const handleGlobalKeyDown=React.useCallback(event=>{if(isSearchHotKey(event)){event.preventDefault();if(open){handleClose();}else{onOpen==null?void 0:onOpen();}}if(isEscape$1(event)&&open&&isTopLayer){handleClose();}},[handleClose,isTopLayer,open,onOpen]);ui.useGlobalKeyDown(handleGlobalKeyDown);}function SearchWrapper(_ref503){let{children,hasValidTerms,onClose,onOpen,open}=_ref503;const isMountedRef=React.useRef(false);const{dispatch,searchCommandList,setOnClose,state:{result}}=useSearchState();const handleClose=React.useCallback(()=>{var _a;dispatch({index:(_a=searchCommandList==null?void 0:searchCommandList.getTopIndex())!=null?_a:-1,type:"LAST_ACTIVE_INDEX_SET"});onClose();},[dispatch,onClose,searchCommandList]);useSearchHotkeys({onClose:handleClose,onOpen,open});React.useEffect(()=>{setOnClose(handleClose);},[handleClose,setOnClose]);React.useEffect(()=>{if((!hasValidTerms||result.loaded)&&isMountedRef.current){dispatch({index:0,type:"LAST_ACTIVE_INDEX_SET"});}},[dispatch,hasValidTerms,result.loaded]);React.useEffect(()=>{if(!hasValidTerms&&isMountedRef.current&&!open){dispatch({type:"ORDERING_RESET"});}},[dispatch,hasValidTerms,open]);React.useEffect(()=>{if(!(isMountedRef==null?void 0:isMountedRef.current)){isMountedRef.current=true;}},[]);return children;}function createOperatorDefinitionDictionary(operatorDefinitions){return operatorDefinitions.reduce((acc,val)=>{acc[val.type]=val;return acc;},{});}function getOperatorDefinition(operators,operatorType){return operatorType?operators[operatorType]:void 0;}function getOperatorInitialValue(operators,operatorType){var _a;return(_a=getOperatorDefinition(operators,operatorType))==null?void 0:_a.initialValue;}function buildSearchFilter(filterDefinition,fieldId){var _a;return{fieldId,filterName:filterDefinition.name,operatorType:((_a=filterDefinition==null?void 0:filterDefinition.operators.find(operator=>{return operator.type==="item";}))==null?void 0:_a.name)||""};}function generateFilterQuery(_ref504){let{fieldDefinitions,filterDefinitions,filters,operatorDefinitions}=_ref504;return filters.filter(filter=>validateFilter({filter,filterDefinitions,fieldDefinitions,operatorDefinitions})).map(filter=>{var _a;return(_a=getOperatorDefinition(operatorDefinitions,filter.operatorType))==null?void 0:_a.groqFilter({fieldPath:resolveFieldPath({filter,fieldDefinitions,filterDefinitions}),value:filter==null?void 0:filter.value});}).filter(filter=>!isEmpty__default.default(filter)).filter(isNonNullable$2).join(" && ");}function getFieldFromFilter(fields,filter){return(filter==null?void 0:filter.fieldId)?fields[filter.fieldId]:void 0;}function getFilterKey(filter){return[filter.filterName,...(filter.fieldId?[filter.fieldId]:[])].join("-");}function narrowDocumentTypes(_ref505){let{fieldDefinitions,filters,types}=_ref505;const selectedDocumentTypes=types.map(type=>type.name);const filteredDocumentTypes=Object.values(fieldDefinitions).filter(field=>filters.map(filter=>filter==null?void 0:filter.fieldId).includes(field.id)).filter(field=>field.documentTypes.length>0).map(field=>field.documentTypes);const intersectingDocumentTypes=intersection__default$1.default(...filteredDocumentTypes);const documentTypes=[];if(selectedDocumentTypes.length>0){documentTypes.push(selectedDocumentTypes);}if(intersectingDocumentTypes.length>0){documentTypes.push(intersectingDocumentTypes);}return intersection__default$1.default(...documentTypes).sort();}function resolveFieldPath(_ref506){let{filter,fieldDefinitions,filterDefinitions}=_ref506;const fieldDefinition=getFieldFromFilter(fieldDefinitions,filter);const filterDefinition=getFilterDefinition(filterDefinitions,filter.filterName);if(!filterDefinition){return void 0;}switch(filterDefinition.type){case"field":return fieldDefinition==null?void 0:fieldDefinition.fieldPath;case"pinned":return filterDefinition==null?void 0:filterDefinition.fieldPath;default:return void 0;}}function validateFilter(_ref507){let{filter,filterDefinitions,fieldDefinitions,operatorDefinitions}=_ref507;const filterDef=getFilterDefinition(filterDefinitions,filter.filterName);const operatorDef=getOperatorDefinition(operatorDefinitions,filter.operatorType);const fieldDef=getFieldFromFilter(fieldDefinitions,filter);if(!filterDef){return false;}if(!operatorDef){return false;}if(filter.fieldId){if(!fieldDef){return false;}}if(filterDef.type==="field"){if(!(fieldDef==null?void 0:fieldDef.fieldPath)){return false;}if(!filter.fieldId){return false;}const hasFilterValue=operatorDef.groqFilter({fieldPath:fieldDef.fieldPath,value:filter.value});if(!hasFilterValue){return false;}}if(filterDef.type==="pinned"){const hasFilterValue=operatorDef.groqFilter({fieldPath:filterDef.fieldPath,value:filter.value});if(!hasFilterValue){return false;}}return true;}var __freeze$v=Object.freeze;var __defProp$v=Object.defineProperty;var __template$v=(cooked,raw)=>__freeze$v(__defProp$v(cooked,"raw",{value:__freeze$v(raw||cooked.slice())}));var _a$v;const isEscape=isHotkey__default.default("escape");const MAX_HEIGHT=500;const HiddenOverlay=styled__default.default.div(_a$v||(_a$v=__template$v(["\n background: transparent;\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: -1;\n"])));function FilterPopoverWrapper(_ref508){let{anchorElement,children,onClose}=_ref508;const{isTopLayer}=ui.useLayer();const handleGlobalKeyDown=React.useCallback(event=>{if(isEscape(event)&&isTopLayer){onClose();}},[isTopLayer,onClose]);ui.useGlobalKeyDown(handleGlobalKeyDown);const popoverOffset=usePopoverOffset(anchorElement||null);return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(HiddenOverlay,{onClick:onClose}),/* @__PURE__ */jsxRuntime.jsx(FocusLock__default.default,{autoFocus:false,returnFocus:true,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{display:"flex",overflow:"hidden",radius:POPOVER_RADIUS,style:{maxHeight:"min(calc(100vh - ".concat(popoverOffset,"px - ").concat(POPOVER_VERTICAL_MARGIN,"px - ").concat(POPOVER_INPUT_PADDING,"px), ").concat(MAX_HEIGHT,"px"),zIndex:1},children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{children})})})]});}function calcPopoverOffset(element){const rect=element.getBoundingClientRect();const offset=rect.y+rect.height+POPOVER_VERTICAL_MARGIN;return offset;}function usePopoverOffset(element){const[offset,setOffset]=React.useState(element&&calcPopoverOffset(element));const handleWindowResize=React.useCallback(()=>{if(element){setOffset(calcPopoverOffset(element));}},[element]);React.useEffect(()=>{if(element){setOffset(calcPopoverOffset(element));}},[element]);React.useEffect(()=>{window.addEventListener("resize",handleWindowResize);return()=>window.removeEventListener("resize",handleWindowResize);},[handleWindowResize]);return offset;}var __freeze$u=Object.freeze;var __defProp$u=Object.defineProperty;var __template$u=(cooked,raw)=>__freeze$u(__defProp$u(cooked,"raw",{value:__freeze$u(raw||cooked.slice())}));var _a$u,_b$g;const SearchHeaderBox=styled__default.default(ui.Box)(_a$u||(_a$u=__template$u(["\n border-bottom: 1px solid ",";\n flex-shrink: 0;\n"])),_ref509=>{let{theme}=_ref509;return theme.sanity.color.base.border;});const SearchHeaderContentFlex=styled__default.default(ui.Flex)(_b$g||(_b$g=__template$u(["\n box-sizing: border-box;\n"])));const FilterPopoverContentHeader=React.forwardRef(function FilterPopoverContentHeader2(_ref510,ref){let{ariaInputLabel,onChange,onClear,typeFilter}=_ref510;const{state:{fullscreen}}=useSearchState();const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(SearchHeaderBox,{children:/* @__PURE__ */jsxRuntime.jsx(SearchHeaderContentFlex,{align:"center",flex:1,padding:1,children:/* @__PURE__ */jsxRuntime.jsx(CustomTextInput,{__unstable_disableFocusRing:true,$smallClearButton:true,"aria-label":ariaInputLabel,autoComplete:"off",border:false,clearButton:!!typeFilter,fontSize:fullscreen?2:1,icon:icons.SearchIcon,muted:true,onChange,onClear,placeholder:t("search.filter-placeholder"),ref,spellCheck:false,radius:2,value:typeFilter})})});});function createFilterMenuItems(_ref511){let{documentTypesNarrowed,fieldDefinitions,filterDefinitions,schema,titleFilter,types,t}=_ref511;const fieldFilters=Object.values(fieldDefinitions).filter(fieldDef=>includesTitleInFieldDefinition(fieldDef,titleFilter)).map(fieldDef=>{const filterDef=getFilterDefinition(filterDefinitions,fieldDef.filterName);if(filterDef){return buildSearchFilter(filterDef,fieldDef.id);}return null;}).filter(isNonNullable$2);const pinnedItems=buildPinnedMenuItems({fieldDefinitions,filterDefinitions,titleFilter});if(documentTypesNarrowed.length===0){return[...pinnedItems,// All fields
422
422
  ...filterGroup({fieldDefinitions,filterDefinitions,filters:fieldFilters,headerTitle:t("search.filter-all-fields-header"),id:"field"})];}return[...pinnedItems,// All shared / narrowed items
423
- ...buildFieldMenuItemsNarrowed({documentTypesNarrowed,fieldDefinitions,filterDefinitions,filters:fieldFilters,schema,types,t})];}function filterGroup(_ref511){let{fieldDefinitions,filterDefinitions,filters,id,headerTitle,tone}=_ref511;const header={title:headerTitle||"",tone:tone||"default",type:"header"};const filterItems=filters.map(filter=>({fieldDefinition:getFieldFromFilter(fieldDefinitions,filter),filterDefinition:getFilterDefinition(filterDefinitions,filter.filterName),filter,group:id,tone:tone||"default",type:"filter"}));return filterItems.length>0?[...(headerTitle?[header]:[]),//
424
- ...filterItems]:[];}function buildFieldMenuItemsNarrowed(_ref512){let{documentTypesNarrowed,fieldDefinitions,filterDefinitions,filters,schema,types,t}=_ref512;const sharedFilters=filters.filter(filter=>{const fieldDefinition=getFieldFromFilter(fieldDefinitions,filter);return sharesDocumentTypes(documentTypesNarrowed,fieldDefinition);});const sharedItems=documentTypesNarrowed.length>1&&types.length>1?filterGroup({fieldDefinitions,filterDefinitions,filters:sharedFilters,headerTitle:t("search.filter-shared-fields-header"),id:"shared",tone:"primary"}):[];const groupedItems=documentTypesNarrowed.map(documentType=>{const docType=schema.get(documentType);return{// Note: it shouldn't be possible to select document types that do not exist in schema,
423
+ ...buildFieldMenuItemsNarrowed({documentTypesNarrowed,fieldDefinitions,filterDefinitions,filters:fieldFilters,schema,types,t})];}function filterGroup(_ref512){let{fieldDefinitions,filterDefinitions,filters,id,headerTitle,tone}=_ref512;const header={title:headerTitle||"",tone:tone||"default",type:"header"};const filterItems=filters.map(filter=>({fieldDefinition:getFieldFromFilter(fieldDefinitions,filter),filterDefinition:getFilterDefinition(filterDefinitions,filter.filterName),filter,group:id,tone:tone||"default",type:"filter"}));return filterItems.length>0?[...(headerTitle?[header]:[]),//
424
+ ...filterItems]:[];}function buildFieldMenuItemsNarrowed(_ref513){let{documentTypesNarrowed,fieldDefinitions,filterDefinitions,filters,schema,types,t}=_ref513;const sharedFilters=filters.filter(filter=>{const fieldDefinition=getFieldFromFilter(fieldDefinitions,filter);return sharesDocumentTypes(documentTypesNarrowed,fieldDefinition);});const sharedItems=documentTypesNarrowed.length>1&&types.length>1?filterGroup({fieldDefinitions,filterDefinitions,filters:sharedFilters,headerTitle:t("search.filter-shared-fields-header"),id:"shared",tone:"primary"}):[];const groupedItems=documentTypesNarrowed.map(documentType=>{const docType=schema.get(documentType);return{// Note: it shouldn't be possible to select document types that do not exist in schema,
425
425
  // and there is no way to inject it into state (eg not persisted in URL), thus we leave
426
426
  // this fallback (`Unknown type`) only as a edge-case safety net and will not translate it.
427
- title:(docType==null?void 0:docType.title)||startCase__default.default(docType==null?void 0:docType.name)||"(Unknown type)",documentType};}).sort((a,b)=>a.title.localeCompare(b.title)).map(_ref513=>{let{documentType,title}=_ref513;const groupFilters=filters.filter(filter=>{const fieldDefinition=getFieldFromFilter(fieldDefinitions,filter);return includesDocumentTypes([documentType],fieldDefinition);});return filterGroup({fieldDefinitions,filterDefinitions,filters:groupFilters,id:title,headerTitle:title});}).flat();return[...sharedItems,...groupedItems];}function buildPinnedMenuItems(_ref514){let{fieldDefinitions,filterDefinitions,titleFilter}=_ref514;const ungroupedPinnedFilters=Object.values(filterDefinitions).filter(isPinnedFilterDefWithoutGroup).filter(filterDef=>includesTitleInPinnedFilterDefinition(filterDef,titleFilter)).map(filterDef=>buildSearchFilter(filterDef));const groupedPinnedFilters=Object.values(filterDefinitions).filter(isPinnedFilterDefWithGroup).filter(filterDef=>includesTitleInPinnedFilterDefinition(filterDef,titleFilter)).reduce((acc,val)=>{acc[val.group]=acc[val.group]||[];acc[val.group].push(buildSearchFilter(val));return acc;},{});return[// Ungrouped
427
+ title:(docType==null?void 0:docType.title)||startCase__default.default(docType==null?void 0:docType.name)||"(Unknown type)",documentType};}).sort((a,b)=>a.title.localeCompare(b.title)).map(_ref514=>{let{documentType,title}=_ref514;const groupFilters=filters.filter(filter=>{const fieldDefinition=getFieldFromFilter(fieldDefinitions,filter);return includesDocumentTypes([documentType],fieldDefinition);});return filterGroup({fieldDefinitions,filterDefinitions,filters:groupFilters,id:title,headerTitle:title});}).flat();return[...sharedItems,...groupedItems];}function buildPinnedMenuItems(_ref515){let{fieldDefinitions,filterDefinitions,titleFilter}=_ref515;const ungroupedPinnedFilters=Object.values(filterDefinitions).filter(isPinnedFilterDefWithoutGroup).filter(filterDef=>includesTitleInPinnedFilterDefinition(filterDef,titleFilter)).map(filterDef=>buildSearchFilter(filterDef));const groupedPinnedFilters=Object.values(filterDefinitions).filter(isPinnedFilterDefWithGroup).filter(filterDef=>includesTitleInPinnedFilterDefinition(filterDef,titleFilter)).reduce((acc,val)=>{acc[val.group]=acc[val.group]||[];acc[val.group].push(buildSearchFilter(val));return acc;},{});return[// Ungrouped
428
428
  ...filterGroup({fieldDefinitions,filterDefinitions,filters:ungroupedPinnedFilters,id:"pinned-ungrouped",tone:"primary"}),// Grouped
429
- ...Object.entries(groupedPinnedFilters).flatMap(_ref515=>{let[groupTitle,filters]=_ref515;return filterGroup({fieldDefinitions,filterDefinitions,filters,headerTitle:groupTitle,id:groupTitle,tone:"primary"});})];}function includesDocumentTypes(documentTypes,fieldDefinition){return fieldDefinition==null?void 0:fieldDefinition.documentTypes.some(type=>documentTypes.includes(type));}function includesTitleInFieldDefinition(field,currentTitle){const fieldTitle=field.titlePath.join("/");return fieldTitle.toLowerCase().includes(currentTitle.toLowerCase());}function includesTitleInPinnedFilterDefinition(filter,currentTitle){return filter.title.toLowerCase().includes(currentTitle.toLowerCase());}function isPinnedFilterDefWithGroup(filterDef){return filterDef.type==="pinned"&&typeof(filterDef==null?void 0:filterDef.group)!=="undefined";}function isPinnedFilterDefWithoutGroup(filterDef){return filterDef.type==="pinned"&&typeof(filterDef==null?void 0:filterDef.group)==="undefined";}function sharesDocumentTypes(documentTypes,fieldDefinition){return difference__default.default(documentTypes,(fieldDefinition==null?void 0:fieldDefinition.documentTypes)||[]).length===0;}function FilterTitle(_ref516){let{filter,maxLength}=_ref516;const{state:{definitions}}=useSearchState();const title=React.useMemo(()=>{const filterDef=getFilterDefinition(definitions.filters,filter.filterName);switch(filterDef==null?void 0:filterDef.type){case"field":{const fieldDefinition=getFieldFromFilter(definitions.fields,filter);if(fieldDefinition==null?void 0:fieldDefinition.titlePath){return fieldDefinition.titlePath[fieldDefinition.titlePath.length-1];}return null;}case"pinned":return filterDef.title;default:return null;}},[definitions,filter]);if(!title){return null;}return maxLength&&title.length>maxLength?/* @__PURE__ */jsxRuntime.jsxs("span",{children:[title.slice(0,maxLength),"\u2026"]}):/* @__PURE__ */jsxRuntime.jsx("span",{children:title});}function FilterIcon(_ref517){let{filter}=_ref517;var _a;const{state:{definitions}}=useSearchState();const icon=(_a=getFilterDefinition(definitions.filters,filter.filterName))==null?void 0:_a.icon;if(icon){return React.createElement(icon);}return/* @__PURE__ */jsxRuntime.jsx(icons.UnknownIcon,{});}function FilterDetails(_ref518){let{filter}=_ref518;var _a;const{state:{definitions}}=useSearchState();const fieldDefinition=getFieldFromFilter(definitions.fields,filter);return/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:2,children:[(fieldDefinition==null?void 0:fieldDefinition.titlePath)&&((_a=fieldDefinition.titlePath)==null?void 0:_a.length)>1&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginLeft:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:0,children:fieldDefinition.titlePath.slice(0,-1).map((pathTitle,index)=>{return/* @__PURE__ */jsxRuntime.jsxs(React__default.default.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx("span",{children:pathTitle}),index!==fieldDefinition.titlePath.length-2&&/* @__PURE__ */jsxRuntime.jsx("span",{style:{opacity:0.75,paddingLeft:"0.25em",paddingRight:"0.25em"},children:/* @__PURE__ */jsxRuntime.jsx(icons.ChevronRightIcon,{})})]},index);})})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"flex-start",gap:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{style:{flexShrink:0},children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(FilterIcon,{filter})})}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,weight:"medium",children:/* @__PURE__ */jsxRuntime.jsx(FilterTitle,{filter})})]})]});}function sanitizeFieldValue(name){if(React.isValidElement(name)){return stripHtmlTags(server.renderToString(name));}return typeof name==="string"?name:"";}function stripHtmlTags(str){var _a;return((_a=new DOMParser().parseFromString(str,"text/html"))==null?void 0:_a.body.textContent)||"";}const MAX_VISIBLE_TYPES=10;function FilterTooltip(_ref519){let{children,fieldDefinition,filterDefinition,visible}=_ref519;const{state:{documentTypesNarrowed}}=useSearchState();const{t}=useTranslation();const schema=useSchema();const fieldDefinitionDocumentTypeTitles=React.useMemo(()=>{if(fieldDefinition==null?void 0:fieldDefinition.documentTypes){return fieldDefinition.documentTypes.map(d=>{const defType=schema.get(d);return(defType==null?void 0:defType.title)||startCase__default.default(defType==null?void 0:defType.name);}).filter(isNonNullable$2).sort();}return[];},[fieldDefinition==null?void 0:fieldDefinition.documentTypes,schema]);const fieldDefinitionDescription=React.useMemo(()=>{if(fieldDefinition==null?void 0:fieldDefinition.documentTypes){const descriptions=fieldDefinition.documentTypes.map(d=>{const defType=schema.get(d);if(defType){const field=getSchemaField(defType,fieldDefinition.fieldPath);return(field==null?void 0:field.type.description)&&sanitizeFieldValue(field==null?void 0:field.type.description);}return null;}).filter(isNonNullable$2).sort();const uniqueDescriptions=uniq__default.default(descriptions);if(uniqueDescriptions.length===1){return uniqueDescriptions[0];}}return void 0;},[fieldDefinition==null?void 0:fieldDefinition.documentTypes,fieldDefinition==null?void 0:fieldDefinition.fieldPath,schema]);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{content:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{tone:"default",radius:2,style:{maxWidth:"250px"},children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[fieldDefinition&&/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,weight:"medium",children:t("search.filter-field-tooltip-name")}),/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{size:1,style:{fontFamily:"monospace"},tone:"primary",textOverflow:"ellipsis",children:fieldDefinition==null?void 0:fieldDefinition.name})]}),fieldDefinitionDescription&&/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,weight:"medium",children:t("search.filter-field-tooltip-description")}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:truncateString(fieldDefinitionDescription,256)})]}),(filterDefinition==null?void 0:filterDefinition.description)&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:truncateString(filterDefinition.description,256)}),!documentTypesNarrowed.length&&fieldDefinitionDocumentTypeTitles.length>0&&/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:2,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",gap:1,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,weight:"medium",children:t("search.filter-field-tooltip-used-in-document-types")}),/* @__PURE__ */jsxRuntime.jsx(ui.Card,{padding:1,radius:2,tone:"transparent",children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,children:fieldDefinitionDocumentTypeTitles.length})})]}),/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{size:1,weight:"regular",muted:true,children:[fieldDefinitionDocumentTypeTitles.slice(0,MAX_VISIBLE_TYPES).join(", "),(fieldDefinitionDocumentTypeTitles==null?void 0:fieldDefinitionDocumentTypeTitles.length)>MAX_VISIBLE_TYPES?" +".concat(fieldDefinitionDocumentTypeTitles.length-MAX_VISIBLE_TYPES," more"):""]})]})]})}),disabled:!visible,fallbackPlacements:["left"],placement:"right",portal:true,children});}const MenuItemFilter=React__default.default.memo(function MenuItemFilter2(_ref520){let{item,onClose,...rest}=_ref520;const{dispatch,state:{filters}}=useSearchState();const handleClick=React.useCallback(()=>{dispatch({filter:item.filter,type:"TERMS_FILTERS_ADD"});onClose==null?void 0:onClose();},[dispatch,item.filter,onClose]);const isAlreadyActive=!!filters.find(f=>getFilterKey(f)===getFilterKey(item.filter));const tooltipEnabled=!!(item.fieldDefinition||item.filterDefinition.description);return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{...rest,children:/* @__PURE__ */jsxRuntime.jsx(ui.Button,{disabled:isAlreadyActive,fontSize:1,justify:"flex-start",mode:"bleed",onClick:isAlreadyActive?void 0:handleClick,padding:0,style:{position:"relative",whiteSpace:"normal",width:"100%"},tabIndex:-1,tone:item==null?void 0:item.tone,children:/* @__PURE__ */jsxRuntime.jsx(FilterTooltip,{fieldDefinition:item.fieldDefinition,filterDefinition:item.filterDefinition,visible:tooltipEnabled,children:/* @__PURE__ */jsxRuntime.jsx(ui.Box,{padding:3,children:/* @__PURE__ */jsxRuntime.jsx(FilterDetails,{filter:item.filter})})})})});});const MenuItemHeader=React__default.default.memo(function MenuItemHeader2(_ref521){let{item}=_ref521;return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingTop:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderBottom:true,paddingX:2,paddingY:3,tone:item==null?void 0:item.tone,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",weight:"medium",children:item.title})})});});const POPOVER_STYLES$1={width:"300px"};function AddFilterPopoverContent(_ref522){let{onClose}=_ref522;const[inputElement,setInputElement]=React.useState(null);const[titleFilter,setTitleFilter]=React.useState("");const{t}=useTranslation();const handleFilterChange=React.useCallback(e=>setTitleFilter(e.currentTarget.value),[setTitleFilter]);const handleFilterClear=React.useCallback(()=>setTitleFilter(""),[]);const schema=useSchema();const{state:{documentTypesNarrowed,definitions,filters,terms:{types}}}=useSearchState();const filteredMenuItems=React.useMemo(()=>createFilterMenuItems({documentTypesNarrowed,fieldDefinitions:definitions.fields,filterDefinitions:definitions.filters,schema,titleFilter,types,t}),[documentTypesNarrowed,definitions.fields,definitions.filters,schema,titleFilter,types,t]);const renderItem=React.useCallback(item=>{if(item.type==="filter"){return/* @__PURE__ */jsxRuntime.jsx(MenuItemFilter,{item,onClose,paddingBottom:1});}if(item.type==="header"){return/* @__PURE__ */jsxRuntime.jsx(MenuItemHeader,{item});}return null;},[onClose]);const getItemDisabled=React.useCallback(index=>{const filterItem=filteredMenuItems[index];return filterItem.type!=="filter"||!!filters.find(f=>getFilterKey(f)===getFilterKey(filterItem.filter));},[filteredMenuItems,filters]);const getItemKey=React.useCallback(index=>{const menuItem=filteredMenuItems[index];switch(menuItem.type){case"filter":return[...(menuItem.group?[menuItem.group]:[]),//
430
- getFilterKey(menuItem.filter)].join("-");case"header":return"".concat(menuItem.type,"-").concat(menuItem.title);default:return index;}},[filteredMenuItems]);return/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",style:POPOVER_STYLES$1,children:[/* @__PURE__ */jsxRuntime.jsx(FilterPopoverContentHeader,{ariaInputLabel:t("search.filter-by-title-aria-label"),onChange:handleFilterChange,onClear:handleFilterClear,ref:setInputElement,typeFilter:titleFilter}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{children:[filteredMenuItems.length>0&&/* @__PURE__ */jsxRuntime.jsx(CommandList,{activeItemDataAttr:"data-hovered",ariaLabel:t("search.filters-aria-label",{count:filteredMenuItems.length}),autoFocus:"input",getItemDisabled,getItemKey,inputElement,itemHeight:45,items:filteredMenuItems,overscan:20,padding:1,paddingBottom:0,renderItem}),filteredMenuItems.length==0&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{padding:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:t("search.filter-no-matches-found",{filter:titleFilter})})})]})]});}function AddFilterButton(){const[open,setOpen]=React.useState(false);const[buttonElement,setButtonElement]=React.useState(null);const[popoverElement,setPopoverElement]=React.useState(null);const{t}=useTranslation();const{state:{fullscreen}}=useSearchState();const handleClose=React.useCallback(()=>setOpen(false),[]);const handleOpen=React.useCallback(()=>setOpen(true),[]);ui.useClickOutside(handleClose,[buttonElement,popoverElement]);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Popover,{__unstable_margins:[POPOVER_VERTICAL_MARGIN,0,0,0],content:/* @__PURE__ */jsxRuntime.jsx(FilterPopoverWrapper,{anchorElement:buttonElement,onClose:handleClose,children:/* @__PURE__ */jsxRuntime.jsx(AddFilterPopoverContent,{onClose:handleClose})}),open,placement:"bottom-start",radius:POPOVER_RADIUS,ref:setPopoverElement,portal:true,children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{icon:icons.AddIcon,mode:"bleed",onClick:handleOpen,size:fullscreen?"large":"default",ref:setButtonElement,selected:open,text:t("search.action.add-filter")})});}const DocumentTypeFilterItem=React__default.default.memo(function TypeFilterItem(_ref523){let{selected,type,...rest}=_ref523;var _a,_b;const{dispatch}=useSearchState();const handleTypeAdd=React.useCallback(()=>{dispatch({type:"TERMS_TYPE_ADD",schemaType:type});},[dispatch,type]);const handleTypeRemove=React.useCallback(()=>{dispatch({type:"TERMS_TYPE_REMOVE",schemaType:type});},[dispatch,type]);const handleClick=React.useCallback(()=>{if(selected){handleTypeRemove();}else{handleTypeAdd();}},[handleTypeAdd,handleTypeRemove,selected]);return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{...rest,children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{iconRight:selected&&icons.CheckmarkIcon,justify:"flex-start",mode:"bleed",onClick:handleClick,width:"fill",size:"large",tabIndex:-1,text:(_b=type.title)!=null?_b:type.name,tone:selected?"primary":"default"},(_a=type.title)!=null?_a:type.name)});});var __freeze$t=Object.freeze;var __defProp$t=Object.defineProperty;var __template$t=(cooked,raw)=>__freeze$t(__defProp$t(cooked,"raw",{value:__freeze$t(raw||cooked.slice())}));var _a$t;const ClearButtonBox=styled__default.default(ui.Box)(_a$t||(_a$t=__template$t(["\n border-top: 1px solid ",";\n flex-shrink: 0;\n"])),_ref524=>{let{theme}=_ref524;return theme.sanity.color.base.border;});const POPOVER_STYLES={width:"250px"};function DocumentTypesPopoverContent(){const[inputElement,setInputElement]=React.useState(null);const[typeFilter,setTypeFilter]=React.useState("");const commandListRef=React.useRef(null);const{t}=useTranslation();const schema=useSchema();const{dispatch,state:{terms:{types:selectedTypes}}}=useSearchState();const[selectedTypesSnapshot,setSelectedTypesSnapshot]=React.useState(selectedTypes);const documentTypeItems=useGetDocumentTypeItems(schema,selectedTypes,selectedTypesSnapshot,typeFilter);const handleFilterChange=React.useCallback(e=>setTypeFilter(e.currentTarget.value),[setTypeFilter]);const handleFilterClear=React.useCallback(()=>setTypeFilter(""),[]);const handleTypesClear=React.useCallback(()=>{var _a2,_b;setSelectedTypesSnapshot([]);dispatch({type:"TERMS_TYPES_CLEAR"});(_a2=commandListRef==null?void 0:commandListRef.current)==null?void 0:_a2.focusInputElement();(_b=commandListRef==null?void 0:commandListRef.current)==null?void 0:_b.scrollToIndex(0);},[dispatch]);const getItemKey=React.useCallback(index=>{const virtualItem=documentTypeItems[index];switch(virtualItem.type){case"divider":return"".concat(virtualItem.type,"-").concat(index);case"header":return"".concat(virtualItem.type,"-").concat(virtualItem.title);case"item":return"".concat(virtualItem.type,"-").concat(virtualItem.item.name);default:return index;}},[documentTypeItems]);const renderItem=React.useCallback(item=>{if(item.type==="divider"){return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingY:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{})});}if(item.type==="header"){return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{margin:2,padding:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,weight:"medium",children:item.title})});}if(item.type==="item"){return/* @__PURE__ */jsxRuntime.jsx(DocumentTypeFilterItem,{paddingBottom:1,selected:item.selected,type:item.item});}return null;},[]);const getItemDisabled=React.useCallback(index=>{const item=documentTypeItems[index];return item.type!=="item";},[documentTypeItems]);const getItemSelected=React.useCallback(index=>{const item=documentTypeItems[index];return item.type==="item"&&item.selected;},[documentTypeItems]);return/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",style:POPOVER_STYLES,children:[/* @__PURE__ */jsxRuntime.jsx(FilterPopoverContentHeader,{ariaInputLabel:t("search.action.filter-by-document-type-aria-label"),onChange:handleFilterChange,onClear:handleFilterClear,ref:setInputElement,typeFilter}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{children:[documentTypeItems.length>0&&/* @__PURE__ */jsxRuntime.jsx(CommandList,{activeItemDataAttr:"data-hovered",ariaLabel:t("search.document-types-aria-label"),ariaMultiselectable:true,autoFocus:"input",getItemDisabled,getItemSelected,getItemKey,inputElement,itemHeight:37,items:documentTypeItems,overscan:20,padding:1,paddingBottom:0,ref:commandListRef,renderItem}),!documentTypeItems.length&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{padding:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:t("search.document-types-no-matches-found",{filter:typeFilter})})})]}),!typeFilter&&selectedTypes.length>0&&/* @__PURE__ */jsxRuntime.jsx(ClearButton,{onClick:handleTypesClear,selectedTypes})]});}function ClearButton(_ref525){let{onClick,selectedTypes}=_ref525;const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(ClearButtonBox,{padding:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":t("search.action.clear-type-filters-aria-label"),"data-name":"type-filter-button",disabled:selectedTypes.length===0,mode:"bleed",onClick,text:t("search.action.clear-type-filters-label"),tone:"primary"})})});}function useGetDocumentTypeItems(schema,selectedTypes,selectedTypesSnapshot,typeFilter){return React.useMemo(()=>{const[itemsSelected,itemsUnselected]=partition__default.default(getSelectableOmnisearchTypes(schema,typeFilter),type=>selectedTypesSnapshot.includes(type));const hasSelectedItems=itemsSelected.length>0;const hasUnselectedItems=itemsSelected.length>0;const items=[];if(hasSelectedItems){items.push({title:"Selected",type:"header"});}itemsSelected.forEach(item=>items.push({item,selected:selectedTypes.includes(item),type:"item"}));if(hasSelectedItems&&hasUnselectedItems){items.push({type:"divider"});}itemsUnselected.forEach(item=>items.push({item,selected:selectedTypes.includes(item),type:"item"}));return items;},[schema,selectedTypes,selectedTypesSnapshot,typeFilter]);}const FALLBACK_PLACEMENTS=["top-start","bottom-start"];function DocumentTypesButton(){const[open,setOpen]=React.useState(false);const[buttonElement,setButtonElement]=React.useState(null);const[popoverElement,setPopoverElement]=React.useState(null);const{state:{fullscreen,terms:{types}}}=useSearchState();const{t}=useTranslation();const handleClose=React.useCallback(()=>setOpen(false),[]);const handleOpen=React.useCallback(()=>setOpen(true),[]);ui.useClickOutside(handleClose,[buttonElement,popoverElement]);const title=React.useMemo(()=>documentTypesTruncated({types,t}),[types,t]);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Popover,{__unstable_margins:[POPOVER_VERTICAL_MARGIN,0,0,0],content:/* @__PURE__ */jsxRuntime.jsx(FilterPopoverWrapper,{anchorElement:buttonElement,onClose:handleClose,children:/* @__PURE__ */jsxRuntime.jsx(DocumentTypesPopoverContent,{})}),open,placement:"bottom-start",fallbackPlacements:FALLBACK_PLACEMENTS,portal:true,radius:POPOVER_RADIUS,ref:setPopoverElement,children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{iconRight:icons.ChevronDownIcon,mode:"ghost",onClick:handleOpen,size:fullscreen?"large":"default",ref:setButtonElement,selected:open,text:title,tone:"default"})});}var __freeze$s=Object.freeze;var __defProp$s=Object.defineProperty;var __template$s=(cooked,raw)=>__freeze$s(__defProp$s(cooked,"raw",{value:__freeze$s(raw||cooked.slice())}));var _a$s;const CustomBox=styled__default.default(ui.Box)(_a$s||(_a$s=__template$s(["\n flex-shrink: ",";\n"])),_ref526=>{let{$flexShrink=0}=_ref526;return $flexShrink;});function FilterLabel(_ref527){let{filter,fontSize=1,showContent=true}=_ref527;const{t}=useTranslation();const{state:{definitions,fullscreen}}=useSearchState();const operator=getOperatorDefinition(definitions.operators,filter.operatorType);const ButtonValue=operator==null?void 0:operator.buttonValueComponent;const filterValue=filter.value;const components=React.useMemo(()=>({Field:()=>/* @__PURE__ */jsxRuntime.jsx(CustomBox,{$flexShrink:fullscreen?1:0,children:/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{tone:"default",size:fontSize,textOverflow:"ellipsis",weight:"medium",children:/* @__PURE__ */jsxRuntime.jsx(FilterTitle,{filter,maxLength:fullscreen?25:40})})}),Operator:_ref528=>{let{children}=_ref528;return showContent?/* @__PURE__ */jsxRuntime.jsx(CustomBox,{$flexShrink:0,children:/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{tone:"default",size:fontSize,textOverflow:"ellipsis",weight:"regular",children})}):null;},Value:_ref529=>{let{children}=_ref529;return showContent?/* @__PURE__ */jsxRuntime.jsx(CustomBox,{$flexShrink:1,children:/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{tone:"default",size:fontSize,textOverflow:"ellipsis",weight:"medium",children:ButtonValue?/* @__PURE__ */jsxRuntime.jsx(ButtonValue,{value:filterValue}):children})}):null;}}),[filter,fontSize,fullscreen,showContent,ButtonValue,filterValue]);if(!(operator==null?void 0:operator.descriptionKey)){console.warn("Missing `descriptionKey` for operator `%s`",filter.operatorType);}if(!showContent||!(operator==null?void 0:operator.descriptionKey)){const Field=components.Field;return/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",gap:1,children:/* @__PURE__ */jsxRuntime.jsx(Field,{})});}return/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",gap:1,children:/* @__PURE__ */jsxRuntime.jsx(Translate,{t,i18nKey:operator==null?void 0:operator.descriptionKey,components,values:getFilterValues(filter)})});}function getFilterValues(filter){const values={};if(typeof filter.value==="number"){values.count=filter.value;}if(isStringOrNumber(filter.value)){values.value=filter.value;}if(isRecord$4(filter.value)&&"from"in filter.value&&isStringOrNumber(filter.value.from)){values.from=filter.value.from;}if(isRecord$4(filter.value)&&"to"in filter.value&&isStringOrNumber(filter.value.to)){values.to=filter.value.to;}return values;}function isStringOrNumber(value){return typeof value==="string"||typeof value==="number";}function FilterError(props){const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{...props,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"flex-start",gap:3,children:[/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{tone:"critical",children:/* @__PURE__ */jsxRuntime.jsx(icons.ErrorOutlineIcon,{})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{size:1,tone:"critical",weight:"medium",children:t("search.error.display-filter-title")}),/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{size:1,tone:"critical",children:t("search.error.display-filter-description")})]})]})});}function CustomMenuItem$1(_ref530){let{onClick,operator,selected}=_ref530;const handleClick=React.useCallback(()=>onClick(operator.type),[onClick,operator.type]);const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{onClick:handleClick,pressed:selected,tone:"default",text:t(operator.nameKey),iconRight:operator==null?void 0:operator.icon});}function OperatorsMenuButton(_ref531){let{filter,operator}=_ref531;var _a;const menuButtonId=React.useId();const{t}=useTranslation();const{dispatch,state}=useSearchState();const operatorItems=(_a=getFilterDefinition(state.definitions.filters,filter.filterName))==null?void 0:_a.operators;const handleClick=React.useCallback(operatorType=>{dispatch({filterKey:getFilterKey(filter),operatorType,type:"TERMS_FILTERS_SET_OPERATOR"});},[dispatch,filter]);if(!operator||!operatorItems||operatorItems.length<=1){return null;}return/* @__PURE__ */jsxRuntime.jsx(ui.Inline,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuButton,{button:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"ghost",iconRight:icons.ChevronDownIcon,text:t(operator.nameKey)}),id:menuButtonId||"",menu:/* @__PURE__ */jsxRuntime.jsx(ui.Menu,{children:operatorItems.map((item,index)=>{if(item.type==="item"){const menuOperator=getOperatorDefinition(state.definitions.operators,item.name);if(!menuOperator){return null;}return/* @__PURE__ */jsxRuntime.jsx(CustomMenuItem$1,{onClick:handleClick,operator:menuOperator,selected:operator.type===item.name},index);}if(item.type==="divider"){return/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{},index);}return null;})}),placement:"bottom-start",popover:{constrainSize:true,portal:false,radius:2}})});}function FilterForm(_ref532){let{filter}=_ref532;const[errorParams,setErrorParams]=React.useState(null);const{dispatch,state:{definitions,fullscreen}}=useSearchState();const filterDefinition=getFilterDefinition(definitions.filters,filter.filterName);const operator=getOperatorDefinition(definitions.operators,filter.operatorType);const fieldDefinition=getFieldFromFilter(definitions.fields,filter);const filterKey=getFilterKey(filter);const handleClose=React.useCallback(()=>{dispatch({filterKey:getFilterKey(filter),type:"TERMS_FILTERS_REMOVE"});},[dispatch,filter]);const handleValueChange=React.useCallback(value=>{dispatch({filterKey,type:"TERMS_FILTERS_SET_VALUE",value});},[dispatch,filterKey]);const handleCatchError=React.useCallback(params=>{setErrorParams(params);},[]);const Component=operator==null?void 0:operator.inputComponent;if(errorParams){return/* @__PURE__ */jsxRuntime.jsx(FilterError,{padding:4});}return/* @__PURE__ */jsxRuntime.jsx(ui.ErrorBoundary,{onCatch:handleCatchError,children:/* @__PURE__ */jsxRuntime.jsx(FocusLock__default.default,{autoFocus:!supportsTouch,returnFocus:true,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column-reverse",children:[Component&&/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:true,padding:3,children:/* @__PURE__ */jsxRuntime.jsx(Component,{fieldDefinition,onChange:handleValueChange,value:filter.value},filter.operatorType)}),/* @__PURE__ */jsxRuntime.jsx(ui.Card,{padding:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"flex-start",gap:3,justify:"space-between",children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingLeft:1,paddingRight:2,paddingY:1,children:/* @__PURE__ */jsxRuntime.jsx(FilterDetails,{filter})}),fullscreen&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{icon:icons.TrashIcon,mode:"bleed",onClick:handleClose,tone:"critical",tooltipProps:{content:"Remove filter"}})]}),(filterDefinition==null?void 0:filterDefinition.description)&&/* @__PURE__ */jsxRuntime.jsx(ui.Card,{border:true,padding:3,radius:2,tone:"transparent",children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:filterDefinition.description})}),/* @__PURE__ */jsxRuntime.jsx(OperatorsMenuButton,{filter,operator})]})})]})})});}var __freeze$r=Object.freeze;var __defProp$r=Object.defineProperty;var __template$r=(cooked,raw)=>__freeze$r(__defProp$r(cooked,"raw",{value:__freeze$r(raw||cooked.slice())}));var _a$r;const ContainerFlex=styled__default.default(ui.Flex)(_a$r||(_a$r=__template$r(["\n max-width: 480px;\n min-width: 150px;\n overflow: hidden;\n overflow: clip;\n width: 100%;\n"])));function FilterPopoverContent(_ref533){let{filter}=_ref533;return/* @__PURE__ */jsxRuntime.jsxs(ContainerFlex,{direction:"column",children:[/* @__PURE__ */jsxRuntime.jsx(FilterForm,{filter}),DEBUG_MODE]});}var __freeze$q=Object.freeze;var __defProp$q=Object.defineProperty;var __template$q=(cooked,raw)=>__freeze$q(__defProp$q(cooked,"raw",{value:__freeze$q(raw||cooked.slice())}));var _a$q,_b$f,_c$a,_d$4;const CloseButton=styled__default.default(ui.Button)(_a$q||(_a$q=__template$q(["\n border-radius: ",";\n"])),_ref534=>{let{theme}=_ref534;return"0 ".concat(ui.rem(theme.sanity.radius[2])," ").concat(ui.rem(theme.sanity.radius[2])," 0");});const CloseCard=styled__default.default(ui.Card)(_b$f||(_b$f=__template$q(["\n position: absolute;\n right: 0;\n"])));const ContainerDiv=styled__default.default.div(_c$a||(_c$a=__template$q(["\n align-items: center;\n display: inline-flex;\n max-width: 100%;\n position: relative;\n"])));const LabelButton=styled__default.default(ui.Button)(_d$4||(_d$4=__template$q(["\n border: none;\n width: 100%;\n"])));function FilterButton(_ref535){let{filter,initialOpen}=_ref535;const[open,setOpen]=React.useState(initialOpen);const[buttonElement,setButtonElement]=React.useState(null);const[popoverElement,setPopoverElement]=React.useState(null);const{dispatch,state:{definitions,fullscreen}}=useSearchState();const{t}=useTranslation();const handleClose=React.useCallback(()=>setOpen(false),[]);const handleOpen=React.useCallback(()=>setOpen(true),[]);const handleRemove=React.useCallback(()=>dispatch({filterKey:getFilterKey(filter),type:"TERMS_FILTERS_REMOVE"}),[dispatch,filter]);const handleKeyDown=React.useCallback(event=>{if(["Backspace","Delete"].includes(event.key)){handleRemove();}},[handleRemove]);ui.useClickOutside(handleClose,[buttonElement,popoverElement]);const isValid=validateFilter({fieldDefinitions:definitions.fields,filter,filterDefinitions:definitions.filters,operatorDefinitions:definitions.operators});return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Popover,{__unstable_margins:[POPOVER_VERTICAL_MARGIN,0,0,0],content:/* @__PURE__ */jsxRuntime.jsx(FilterPopoverWrapper,{anchorElement:buttonElement,onClose:handleClose,children:/* @__PURE__ */jsxRuntime.jsx(FilterPopoverContent,{filter})}),constrainSize:true,open,overflow:"auto",placement:"bottom-start",portal:true,radius:POPOVER_RADIUS,ref:setPopoverElement,children:/* @__PURE__ */jsxRuntime.jsxs(ContainerDiv,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Card,{__unstable_focusRing:true,display:"flex",radius:2,tone:isValid?"primary":"transparent",children:/* @__PURE__ */jsxRuntime.jsx(LabelButton,{mode:"bleed",onClick:handleOpen,onKeyDown:handleKeyDown,paddingLeft:fullscreen?3:2,paddingRight:fullscreen?3:5,paddingY:fullscreen?3:2,ref:setButtonElement,children:/* @__PURE__ */jsxRuntime.jsx(FilterLabel,{filter,showContent:isValid})})}),!fullscreen&&/* @__PURE__ */jsxRuntime.jsx(CloseCard,{__unstable_focusRing:true,display:"flex",radius:2,tone:isValid?"primary":"transparent",children:/* @__PURE__ */jsxRuntime.jsx(CloseButton,{"aria-label":t("search.action.remove-filter-aria-label"),fontSize:1,icon:icons.CloseIcon,mode:"bleed",onClick:handleRemove,onKeyDown:handleKeyDown,padding:2,radius:2})})]})});}function Filters(){const{dispatch,state:{filters,fullscreen,lastAddedFilter,terms:{types}}}=useSearchState();const{t}=useTranslation();const isMounted=React.useRef(false);const handleClear=React.useCallback(()=>{dispatch({type:"TERMS_FILTERS_CLEAR"});dispatch({type:"TERMS_TYPES_CLEAR"});},[dispatch]);const clearFiltersButtonVisible=filters.length>0||types.length>0;React.useEffect(()=>{isMounted.current=true;},[]);const lastAddedFilterKey=lastAddedFilter&&getFilterKey(lastAddedFilter);const ClearFiltersButton=()=>/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"bleed",onClick:handleClear,size:fullscreen?"large":"default",text:t("search.action.clear-filters"),tone:"critical"});return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"flex-start",gap:3,justify:"space-between",padding:2,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{flex:1,gap:2,wrap:"wrap",children:[/* @__PURE__ */jsxRuntime.jsx(DocumentTypesButton,{}),filters==null?void 0:filters.map(filter=>{const key=getFilterKey(filter);return/* @__PURE__ */jsxRuntime.jsx(FilterButton,{filter,initialOpen:isMounted.current&&lastAddedFilterKey===key},key);}),!fullscreen&&/* @__PURE__ */jsxRuntime.jsx(AddFilterButton,{})]}),clearFiltersButtonVisible&&!fullscreen&&/* @__PURE__ */jsxRuntime.jsx(ClearFiltersButton,{})]}),fullscreen&&/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{justify:"space-between",paddingBottom:2,paddingX:2,children:[/* @__PURE__ */jsxRuntime.jsx(AddFilterButton,{}),clearFiltersButtonVisible&&/* @__PURE__ */jsxRuntime.jsx(ClearFiltersButton,{})]}),DEBUG_MODE]});}function Instructions(){const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",direction:"column",gap:4,paddingX:4,paddingY:5,children:/* @__PURE__ */jsxRuntime.jsx(ui.Inline,{space:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,children:/* @__PURE__ */jsxRuntime.jsx(Translate,{t,i18nKey:"search.instructions",components:{ControlsIcon:()=>/* @__PURE__ */jsxRuntime.jsx(icons.ControlsIcon,{style:{padding:"0 0.25rem"}},0)}})})})});}function DocumentTypesPill(_ref536){let{availableCharacters,types}=_ref536;const{t}=useTranslation();const title=React.useMemo(()=>documentTypesTruncated({availableCharacters,types,t}),[availableCharacters,types,t]);return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{border:true,padding:2,radius:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:title})});}var __freeze$p=Object.freeze;var __defProp$p=Object.defineProperty;var __template$p=(cooked,raw)=>__freeze$p(__defProp$p(cooked,"raw",{value:__freeze$p(raw||cooked.slice())}));var _a$p;const FilterPillCard=styled__default.default(ui.Card)(_a$p||(_a$p=__template$p(["\n cursor: default;\n"])));function FilterPill(_ref537){let{filter}=_ref537;return/* @__PURE__ */jsxRuntime.jsx(FilterPillCard,{border:true,padding:2,radius:2,tone:"primary",children:/* @__PURE__ */jsxRuntime.jsx(FilterLabel,{filter})});}var __freeze$o=Object.freeze;var __defProp$o=Object.defineProperty;var __template$o=(cooked,raw)=>__freeze$o(__defProp$o(cooked,"raw",{value:__freeze$o(raw||cooked.slice())}));var _a$o,_b$e,_c$9,_d$3;const DEFAULT_COMBINED_TYPE_COUNT=40;const RecentSearchItemButton=styled__default.default(ui.Button)(_a$o||(_a$o=__template$o(["\n border-radius: ",";\n cursor: default;\n width: 100%;\n"])),_ref538=>{let{theme}=_ref538;return ui.rem(theme.sanity.radius[2]);});const SearchItemPillsBox=styled__default.default(ui.Box)(_b$e||(_b$e=__template$o(["\n flex-shrink: 3;\n"])));const SearchItemQueryFlex=styled__default.default(ui.Flex)(_c$9||(_c$9=__template$o(["\n flex-shrink: 2;\n"])));const CloseButtonDiv=styled__default.default.div(_d$3||(_d$3=__template$o(["\n opacity: 0.8;\n visibility: hidden;\n\n @media (hover: hover) {\n ",":hover & {\n visibility: visible;\n }\n &:hover {\n opacity: 0.4;\n }\n }\n"])),RecentSearchItemButton);function RecentSearchItem(_ref539){let{index,maxVisibleTypePillChars=DEFAULT_COMBINED_TYPE_COUNT,value,...rest}=_ref539;var _a2;const{dispatch,recentSearchesStore}=useSearchState();const availableCharacters=maxVisibleTypePillChars-value.query.length;const handleClick=React.useCallback(()=>{dispatch({type:"TERMS_SET",filters:value==null?void 0:value.filters,terms:value});if(recentSearchesStore){const updatedRecentSearches=recentSearchesStore==null?void 0:recentSearchesStore.addSearch(value,value==null?void 0:value.filters);dispatch({recentSearches:updatedRecentSearches,type:"RECENT_SEARCHES_SET"});}},[dispatch,recentSearchesStore,value]);const handleDelete=React.useCallback(event=>{event.stopPropagation();if(recentSearchesStore){const updatedRecentSearches=recentSearchesStore==null?void 0:recentSearchesStore.removeSearchAtIndex(index);dispatch({recentSearches:updatedRecentSearches,type:"RECENT_SEARCHES_SET"});}},[dispatch,index,recentSearchesStore]);return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{...rest,children:/* @__PURE__ */jsxRuntime.jsx(RecentSearchItemButton,{mode:"bleed",onClick:handleClick,paddingLeft:3,paddingRight:1,paddingY:1,tabIndex:-1,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"stretch",children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Inline,{paddingY:2,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:/* @__PURE__ */jsxRuntime.jsx(icons.ClockIcon,{})}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{children:"\u200B"})]}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"stretch",flex:1,gap:2,justify:"flex-start",marginLeft:3,wrap:"wrap",children:[value.query&&/* @__PURE__ */jsxRuntime.jsx(SearchItemQueryFlex,{align:"center",paddingY:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",weight:"medium",children:value.query})}),value.types.length>0&&/* @__PURE__ */jsxRuntime.jsx(SearchItemPillsBox,{children:/* @__PURE__ */jsxRuntime.jsx(DocumentTypesPill,{availableCharacters,types:value.types})}),(_a2=value==null?void 0:value.filters)==null?void 0:_a2.map((filter,i)=>{return/* @__PURE__ */jsxRuntime.jsx(FilterPill,{filter},i);})]}),/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",children:/* @__PURE__ */jsxRuntime.jsx(CloseButtonDiv,{onClick:handleDelete,children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{padding:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(icons.CloseIcon,{})})})})})]})})});}var __freeze$n=Object.freeze;var __defProp$n=Object.defineProperty;var __template$n=(cooked,raw)=>__freeze$n(__defProp$n(cooked,"raw",{value:__freeze$n(raw||cooked.slice())}));var _a$n;const VIRTUAL_LIST_RECENT_SEARCH_ITEM_HEIGHT=36;const MAX_COMBINED_TYPE_COUNT_SMALL=20;const MAX_COMBINED_TYPE_COUNT_LARGE=40;const RecentSearchesBox=styled__default.default(ui.Card)(_a$n||(_a$n=__template$n(["\n overflow-x: hidden;\n overflow-y: auto;\n position: relative;\n"])));function RecentSearches(_ref540){let{inputElement}=_ref540;const{dispatch,recentSearchesStore,state:{filtersVisible,fullscreen,recentSearches}}=useSearchState();const commandListRef=React.useRef(null);const{t}=useTranslation();const handleClearRecentSearchesClick=React.useCallback(()=>{var _a2;if(recentSearchesStore){const updatedRecentSearches=recentSearchesStore.removeSearch();dispatch({recentSearches:updatedRecentSearches,type:"RECENT_SEARCHES_SET"});}(_a2=commandListRef==null?void 0:commandListRef.current)==null?void 0:_a2.focusInputElement();},[dispatch,recentSearchesStore]);const mediaIndex=ui.useMediaIndex();const maxVisibleTypePillChars=React.useMemo(()=>{return mediaIndex<2?MAX_COMBINED_TYPE_COUNT_SMALL:MAX_COMBINED_TYPE_COUNT_LARGE;},[mediaIndex]);const renderItem=React.useCallback((item,_ref541)=>{let{virtualIndex}=_ref541;return/* @__PURE__ */jsxRuntime.jsx(RecentSearchItem,{index:virtualIndex,maxVisibleTypePillChars,paddingBottom:1,value:item});},[maxVisibleTypePillChars]);const hasRecentSearches=!!recentSearches.length;return/* @__PURE__ */jsxRuntime.jsx(RecentSearchesBox,{borderTop:hasRecentSearches||!hasRecentSearches&&!filtersVisible&&fullscreen,flex:1,children:recentSearches.length>0?/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingBottom:2,paddingTop:4,paddingX:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,weight:"medium",children:t("search.recent-searches-label")})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:/* @__PURE__ */jsxRuntime.jsx(CommandList,{activeItemDataAttr:"data-hovered",ariaLabel:t("search.recent-searches-aria-label"),inputElement,initialIndex:0,itemHeight:VIRTUAL_LIST_RECENT_SEARCH_ITEM_HEIGHT,items:recentSearches,paddingX:2,paddingY:1,renderItem})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingBottom:2,paddingTop:1,paddingX:2,children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"bleed",onClick:handleClearRecentSearchesClick,tone:"default",text:t("search.action.clear-recent-searches"),muted:true})})]}):!filtersVisible&&fullscreen&&/* @__PURE__ */jsxRuntime.jsx(Instructions,{})});}var __freeze$m=Object.freeze;var __defProp$m=Object.defineProperty;var __template$m=(cooked,raw)=>__freeze$m(__defProp$m(cooked,"raw",{value:__freeze$m(raw||cooked.slice())}));var _a$m,_b$d,_c$8;const rotate=styled.keyframes(_a$m||(_a$m=__template$m(["\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n"])));const AnimatedSpinnerIcon=styled__default.default(icons.SpinnerIcon)(_b$d||(_b$d=__template$m(["\n animation: "," 500ms linear infinite;\n"])),rotate);const FilterDiv=styled__default.default.div(_c$8||(_c$8=__template$m(["\n line-height: 0;\n position: relative;\n"])));const SearchHeader=React.forwardRef(function SearchHeader2(_ref542,ref){let{ariaInputLabel,onClose}=_ref542;const isMountedRef=React.useRef(false);const{dispatch,state:{filters,filtersVisible,fullscreen,result:{loading},terms:{types,query}}}=useSearchState();const{t}=useTranslation();const handleFiltersToggle=React.useCallback(()=>dispatch({type:"FILTERS_VISIBLE_SET",visible:!filtersVisible}),[dispatch,filtersVisible]);const handleQueryChange=React.useCallback(e=>dispatch({type:"TERMS_QUERY_SET",query:e.currentTarget.value}),[dispatch]);const handleQueryClear=React.useCallback(()=>{dispatch({type:"TERMS_QUERY_SET",query:""});},[dispatch]);React.useEffect(()=>{if(!fullscreen){dispatch({type:"FILTERS_VISIBLE_SET",visible:true});}},[dispatch,fullscreen]);React.useEffect(()=>{isMountedRef.current=true;},[]);const notificationBadgeVisible=filters.length>0||types.length>0;return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{flex:"none",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:fullscreen?2:1,padding:fullscreen?2:1,children:[fullscreen&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":t("search.action.close-search-aria-label"),icon:icons.ArrowLeftIcon,mode:"bleed",onClick:onClose,size:"large",tooltipProps:{content:t("search.action.close-search-aria-label")}}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:1,children:/* @__PURE__ */jsxRuntime.jsx(CustomTextInput,{__unstable_disableFocusRing:true,$background:fullscreen,$smallClearButton:fullscreen,"aria-label":ariaInputLabel,autoComplete:"off",border:false,clearButton:!!query,fontSize:[2,2,1],icon:loading?AnimatedSpinnerIcon:icons.SearchIcon,onChange:handleQueryChange,onClear:handleQueryClear,placeholder:t("search.placeholder"),radius:2,ref,spellCheck:false,value:query})}),fullscreen&&/* @__PURE__ */jsxRuntime.jsx(FilterDiv,{children:/* @__PURE__ */jsxRuntime.jsx(StatusButton,{"aria-expanded":filtersVisible,"aria-label":t("search.action.toggle-filters-aria-label",{context:filtersVisible?"hide":"show"}),icon:icons.ControlsIcon,mode:"bleed",onClick:handleFiltersToggle,selected:filtersVisible,size:"large",tone:notificationBadgeVisible?"primary":void 0,tooltipProps:{content:t("search.action.toggle-filters-label",{context:filtersVisible?"hide":"show"})}})})]})});});function NoResults(){const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:0,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{"aria-live":"assertive",space:4,paddingX:4,paddingY:5,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{align:"center",muted:true,size:1,weight:"medium",children:t("search.no-results-title")}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{align:"center",muted:true,size:1,children:t("search.no-results-help-description")})]})});}var __freeze$l=Object.freeze;var __defProp$l=Object.defineProperty;var __template$l=(cooked,raw)=>__freeze$l(__defProp$l(cooked,"raw",{value:__freeze$l(raw||cooked.slice())}));var _a$l;const TextWithToneStyle=styled__default.default(ui.Text)(_a$l||(_a$l=__template$l(["\n &:not([data-muted]) {\n &[data-tone='default'] {\n --card-fg-color: var(--card-badge-default-fg-color);\n }\n &[data-tone='primary'] {\n --card-fg-color: var(--card-badge-primary-fg-color);\n }\n &[data-tone='positive'] {\n --card-fg-color: var(--card-badge-positive-fg-color);\n }\n &[data-tone='caution'] {\n --card-fg-color: var(--card-badge-caution-fg-color);\n }\n &[data-tone='critical'] {\n --card-fg-color: var(--card-badge-critical-fg-color);\n }\n }\n\n &[data-dimmed] {\n opacity: 0.3;\n }\n"])));const TextWithTone=React__default.default.forwardRef(function TextWithTone2(props,ref){const{tone,dimmed,muted,...rest}=props;return/* @__PURE__ */jsxRuntime.jsx(TextWithToneStyle,{"data-ui":"TextWithTone","data-dimmed":dimmed?"":void 0,"data-muted":muted?"":void 0,"data-tone":tone,muted,ref,...rest});});function SearchError(){const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center","aria-live":"assertive",direction:"column",flex:1,gap:3,marginY:2,padding:4,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginBottom:1,children:/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{tone:"critical",children:/* @__PURE__ */jsxRuntime.jsx(icons.WarningOutlineIcon,{})})}),/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{size:2,tone:"critical",weight:"medium",children:t("search.error.unspecified-error-title")}),/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{size:1,tone:"critical",children:t("search.error.unspecified-error-help-description")})]});}const ORDERINGS={createdAsc:{ignoreScore:true,sort:{direction:"asc",field:"_createdAt"},titleKey:"search.ordering.created-ascending-label"},createdDesc:{ignoreScore:true,sort:{direction:"desc",field:"_createdAt"},titleKey:"search.ordering.created-descending-label"},relevance:{customMeasurementLabel:"relevance",sort:{direction:"desc",field:"_updatedAt"},titleKey:"search.ordering.best-match-label"},updatedAsc:{ignoreScore:true,sort:{direction:"asc",field:"_updatedAt"},titleKey:"search.ordering.updated-ascending-label"},updatedDesc:{ignoreScore:true,sort:{direction:"desc",field:"_updatedAt"},titleKey:"search.ordering.updated-descending-label"}};var __freeze$k=Object.freeze;var __defProp$k=Object.defineProperty;var __template$k=(cooked,raw)=>__freeze$k(__defProp$k(cooked,"raw",{value:__freeze$k(raw||cooked.slice())}));var _a$k;const MENU_ORDERINGS=[ORDERINGS.relevance,{type:"divider"},ORDERINGS.createdAsc,ORDERINGS.createdDesc,{type:"divider"},ORDERINGS.updatedAsc,ORDERINGS.updatedDesc];const SortMenuContentFlex=styled__default.default(ui.Flex)(_a$k||(_a$k=__template$k(["\n box-sizing: border-box;\n"])));function isSearchDivider(item){return item.type==="divider";}function CustomMenuItem(_ref543){let{ordering}=_ref543;const{t}=useTranslation();const{dispatch,state:{ordering:currentOrdering}}=useSearchState();const handleClick=React.useCallback(()=>{dispatch({ordering,type:"ORDERING_SET"});},[dispatch,ordering]);const isSelected=React.useMemo(()=>isEqual__default$1.default(currentOrdering,ordering),[currentOrdering,ordering]);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{onClick:handleClick,pressed:isSelected,tone:"default",text:t(ordering.titleKey)});}function SortMenu(){const{t}=useTranslation();const{state:{ordering}}=useSearchState();const menuButtonId=React.useId();const currentMenuItem=MENU_ORDERINGS.find(item=>isEqual__default$1.default(ordering,item)&&!isSearchDivider(item));if(!currentMenuItem){return null;}return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderBottom:true,children:/* @__PURE__ */jsxRuntime.jsx(SortMenuContentFlex,{align:"center",flex:1,padding:2,children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuButton,{button:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"bleed",icon:icons.SortIcon,text:t(currentMenuItem.titleKey)}),id:menuButtonId||"",menu:/* @__PURE__ */jsxRuntime.jsx(ui.Menu,{children:MENU_ORDERINGS.map((item,index)=>{if(isSearchDivider(item)){return/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{},index);}return/* @__PURE__ */jsxRuntime.jsx(CustomMenuItem,{ordering:item},index);})}),placement:"bottom-start",popover:{portal:true,radius:2}})})});}var __freeze$j=Object.freeze;var __defProp$j=Object.defineProperty;var __template$j=(cooked,raw)=>__freeze$j(__defProp$j(cooked,"raw",{value:__freeze$j(raw||cooked.slice())}));var _a$j;const DebugScoreCard=styled__default.default(ui.Card)(_a$j||(_a$j=__template$j(["\n cursor: help;\n left: 0;\n position: absolute;\n top: 0;\n"])));function DebugOverlay(_ref544){let{data}=_ref544;const{score}=data;let tone="default";if(score<=0.1){tone="critical";}else if(score>=0.5){tone="primary";}const matchingStories=data.stories.filter(story=>story.score>0);return/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{content:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{space:2,children:matchingStories.length?/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children:matchingStories.map(story=>/* @__PURE__ */jsxRuntime.jsxs(ui.Inline,{space:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Code,{size:0,weight:"medium",children:story.path}),/* @__PURE__ */jsxRuntime.jsx(ui.Code,{size:0,children:story.why})]},story.path))}):/* @__PURE__ */jsxRuntime.jsx(ui.Code,{size:0,children:"No matches"})}),placement:"bottom-start",portal:true,children:/* @__PURE__ */jsxRuntime.jsx(DebugScoreCard,{padding:1,shadow:1,tone,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Code,{size:0,children:["score: ",score]})})})});}var __freeze$i=Object.freeze;var __defProp$i=Object.defineProperty;var __template$i=(cooked,raw)=>__freeze$i(__defProp$i(cooked,"raw",{value:__freeze$i(raw||cooked.slice())}));var _a$i;const VIRTUAL_LIST_SEARCH_RESULT_ITEM_HEIGHT=57;const VIRTUAL_LIST_OVERSCAN=4;const SearchResultsInnerFlex=styled__default.default(ui.Flex)(_a$i||(_a$i=__template$i(["\n opacity: ",";\n overflow-x: hidden;\n overflow-y: auto;\n position: relative;\n transition: 300ms opacity;\n width: 100%;\n"])),_ref545=>{let{$loading}=_ref545;return $loading?0.5:1;});function SearchResults(_ref546){let{inputElement}=_ref546;const{dispatch,onClose,recentSearchesStore,setSearchCommandList,state:{debug,filters,fullscreen,lastActiveIndex,result,terms}}=useSearchState();const{t}=useTranslation();const hasSearchResults=!!result.hits.length;const hasNoSearchResults=!result.hits.length&&result.loaded;const hasError=result.error;const handleSearchResultClick=React.useCallback(()=>{if(recentSearchesStore){const updatedRecentSearches=recentSearchesStore.addSearch(terms,filters);dispatch({recentSearches:updatedRecentSearches,type:"RECENT_SEARCHES_SET"});}onClose==null?void 0:onClose();},[dispatch,filters,onClose,recentSearchesStore,terms]);const renderItem=React.useCallback(item=>{return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(SearchResultItem,{documentId:getPublishedId(item.hit._id)||"",documentType:item.hit._type,onClick:handleSearchResultClick,paddingY:1}),debug&&/* @__PURE__ */jsxRuntime.jsx(DebugOverlay,{data:item})]});},[debug,handleSearchResultClick]);return/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:fullscreen||!!(hasError||hasSearchResults||hasNoSearchResults),flex:1,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",height:"fill",children:[hasSearchResults&&/* @__PURE__ */jsxRuntime.jsx(SortMenu,{}),/* @__PURE__ */jsxRuntime.jsx(SearchResultsInnerFlex,{$loading:result.loading,"aria-busy":result.loading,flex:1,children:hasError?/* @__PURE__ */jsxRuntime.jsx(SearchError,{}):/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[hasSearchResults&&/* @__PURE__ */jsxRuntime.jsx(CommandList,{activeItemDataAttr:"data-hovered",ariaLabel:t("search.search-results-label"),fixedHeight:true,initialIndex:lastActiveIndex,inputElement,itemHeight:VIRTUAL_LIST_SEARCH_RESULT_ITEM_HEIGHT,items:result.hits,overscan:VIRTUAL_LIST_OVERSCAN,paddingX:2,paddingY:1,ref:setSearchCommandList,renderItem}),hasNoSearchResults&&/* @__PURE__ */jsxRuntime.jsx(NoResults,{})]})})]})})});}var __freeze$h=Object.freeze;var __defProp$h=Object.defineProperty;var __template$h=(cooked,raw)=>__freeze$h(__defProp$h(cooked,"raw",{value:__freeze$h(raw||cooked.slice())}));var _a$h,_b$c;const InnerCard=styled__default.default(ui.Card)(_a$h||(_a$h=__template$h(["\n flex-direction: column;\n overflow: hidden;\n overflow: clip;\n pointer-events: all;\n position: relative;\n"])));const SearchDialogBox=styled__default.default(ui.Box)(_b$c||(_b$c=__template$h(["\n height: 100%;\n left: 0;\n overflow: hidden;\n overflow: clip;\n pointer-events: none;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 1;\n"])));function SearchDialog(_ref547){let{onClose,onOpen,open}=_ref547;const[inputElement,setInputElement]=React.useState(null);const{scheme}=useColorScheme();const{t}=useTranslation();const{state:{filtersVisible,terms}}=useSearchState();const hasValidTerms=hasSearchableTerms({terms});return/* @__PURE__ */jsxRuntime.jsx(SearchWrapper,{hasValidTerms,onClose,onOpen,open,children:open&&/* @__PURE__ */jsxRuntime.jsx(ui.Portal,{children:/* @__PURE__ */jsxRuntime.jsx(FocusLock__default.default,{autoFocus:!supportsTouch,returnFocus:true,children:/* @__PURE__ */jsxRuntime.jsx(SearchDialogBox,{children:/* @__PURE__ */jsxRuntime.jsxs(InnerCard,{display:"flex",height:"fill",scheme,tone:"default",children:[/* @__PURE__ */jsxRuntime.jsx(SearchHeader,{ariaInputLabel:hasValidTerms?t("search.search-results-aria-label"):t("search.recent-searches-aria-label"),onClose,ref:setInputElement}),filtersVisible&&/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:true,flex:"none",children:/* @__PURE__ */jsxRuntime.jsx(Filters,{})}),hasValidTerms?/* @__PURE__ */jsxRuntime.jsx(SearchResults,{inputElement}):/* @__PURE__ */jsxRuntime.jsx(RecentSearches,{inputElement})]})})})})});}const RECENT_SEARCHES_KEY="search::recent";const MAX_RECENT_SEARCHES=5;const RECENT_SEARCH_VERSION=2;function createRecentSearchesStore(_ref548){let{dataset,fieldDefinitions,filterDefinitions,operatorDefinitions,projectId,schema,user,version=RECENT_SEARCH_VERSION}=_ref548;if(!dataset||!projectId||!supportsLocalStorage||!user){return void 0;}const lsKey="".concat(RECENT_SEARCHES_KEY,"__").concat(projectId,":").concat(dataset,":").concat(user.id);return{/**
429
+ ...Object.entries(groupedPinnedFilters).flatMap(_ref516=>{let[groupTitle,filters]=_ref516;return filterGroup({fieldDefinitions,filterDefinitions,filters,headerTitle:groupTitle,id:groupTitle,tone:"primary"});})];}function includesDocumentTypes(documentTypes,fieldDefinition){return fieldDefinition==null?void 0:fieldDefinition.documentTypes.some(type=>documentTypes.includes(type));}function includesTitleInFieldDefinition(field,currentTitle){const fieldTitle=field.titlePath.join("/");return fieldTitle.toLowerCase().includes(currentTitle.toLowerCase());}function includesTitleInPinnedFilterDefinition(filter,currentTitle){return filter.title.toLowerCase().includes(currentTitle.toLowerCase());}function isPinnedFilterDefWithGroup(filterDef){return filterDef.type==="pinned"&&typeof(filterDef==null?void 0:filterDef.group)!=="undefined";}function isPinnedFilterDefWithoutGroup(filterDef){return filterDef.type==="pinned"&&typeof(filterDef==null?void 0:filterDef.group)==="undefined";}function sharesDocumentTypes(documentTypes,fieldDefinition){return difference__default.default(documentTypes,(fieldDefinition==null?void 0:fieldDefinition.documentTypes)||[]).length===0;}function FilterTitle(_ref517){let{filter,maxLength}=_ref517;const{state:{definitions}}=useSearchState();const title=React.useMemo(()=>{const filterDef=getFilterDefinition(definitions.filters,filter.filterName);switch(filterDef==null?void 0:filterDef.type){case"field":{const fieldDefinition=getFieldFromFilter(definitions.fields,filter);if(fieldDefinition==null?void 0:fieldDefinition.titlePath){return fieldDefinition.titlePath[fieldDefinition.titlePath.length-1];}return null;}case"pinned":return filterDef.title;default:return null;}},[definitions,filter]);if(!title){return null;}return maxLength&&title.length>maxLength?/* @__PURE__ */jsxRuntime.jsxs("span",{children:[title.slice(0,maxLength),"\u2026"]}):/* @__PURE__ */jsxRuntime.jsx("span",{children:title});}function FilterIcon(_ref518){let{filter}=_ref518;var _a;const{state:{definitions}}=useSearchState();const icon=(_a=getFilterDefinition(definitions.filters,filter.filterName))==null?void 0:_a.icon;if(icon){return React.createElement(icon);}return/* @__PURE__ */jsxRuntime.jsx(icons.UnknownIcon,{});}function FilterDetails(_ref519){let{filter}=_ref519;var _a;const{state:{definitions}}=useSearchState();const fieldDefinition=getFieldFromFilter(definitions.fields,filter);return/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:2,children:[(fieldDefinition==null?void 0:fieldDefinition.titlePath)&&((_a=fieldDefinition.titlePath)==null?void 0:_a.length)>1&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginLeft:4,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:0,children:fieldDefinition.titlePath.slice(0,-1).map((pathTitle,index)=>{return/* @__PURE__ */jsxRuntime.jsxs(React__default.default.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx("span",{children:pathTitle}),index!==fieldDefinition.titlePath.length-2&&/* @__PURE__ */jsxRuntime.jsx("span",{style:{opacity:0.75,paddingLeft:"0.25em",paddingRight:"0.25em"},children:/* @__PURE__ */jsxRuntime.jsx(icons.ChevronRightIcon,{})})]},index);})})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"flex-start",gap:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{style:{flexShrink:0},children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(FilterIcon,{filter})})}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,weight:"medium",children:/* @__PURE__ */jsxRuntime.jsx(FilterTitle,{filter})})]})]});}function sanitizeFieldValue(name){if(React.isValidElement(name)){return stripHtmlTags(server.renderToString(name));}return typeof name==="string"?name:"";}function stripHtmlTags(str){var _a;return((_a=new DOMParser().parseFromString(str,"text/html"))==null?void 0:_a.body.textContent)||"";}const MAX_VISIBLE_TYPES=10;function FilterTooltip(_ref520){let{children,fieldDefinition,filterDefinition,visible}=_ref520;const{state:{documentTypesNarrowed}}=useSearchState();const{t}=useTranslation();const schema=useSchema();const fieldDefinitionDocumentTypeTitles=React.useMemo(()=>{if(fieldDefinition==null?void 0:fieldDefinition.documentTypes){return fieldDefinition.documentTypes.map(d=>{const defType=schema.get(d);return(defType==null?void 0:defType.title)||startCase__default.default(defType==null?void 0:defType.name);}).filter(isNonNullable$2).sort();}return[];},[fieldDefinition==null?void 0:fieldDefinition.documentTypes,schema]);const fieldDefinitionDescription=React.useMemo(()=>{if(fieldDefinition==null?void 0:fieldDefinition.documentTypes){const descriptions=fieldDefinition.documentTypes.map(d=>{const defType=schema.get(d);if(defType){const field=getSchemaField(defType,fieldDefinition.fieldPath);return(field==null?void 0:field.type.description)&&sanitizeFieldValue(field==null?void 0:field.type.description);}return null;}).filter(isNonNullable$2).sort();const uniqueDescriptions=uniq__default.default(descriptions);if(uniqueDescriptions.length===1){return uniqueDescriptions[0];}}return void 0;},[fieldDefinition==null?void 0:fieldDefinition.documentTypes,fieldDefinition==null?void 0:fieldDefinition.fieldPath,schema]);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{content:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{tone:"default",radius:2,style:{maxWidth:"250px"},children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[fieldDefinition&&/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,weight:"medium",children:t("search.filter-field-tooltip-name")}),/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{size:1,style:{fontFamily:"monospace"},tone:"primary",textOverflow:"ellipsis",children:fieldDefinition==null?void 0:fieldDefinition.name})]}),fieldDefinitionDescription&&/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,weight:"medium",children:t("search.filter-field-tooltip-description")}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:truncateString(fieldDefinitionDescription,256)})]}),(filterDefinition==null?void 0:filterDefinition.description)&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:truncateString(filterDefinition.description,256)}),!documentTypesNarrowed.length&&fieldDefinitionDocumentTypeTitles.length>0&&/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:2,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",gap:1,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,weight:"medium",children:t("search.filter-field-tooltip-used-in-document-types")}),/* @__PURE__ */jsxRuntime.jsx(ui.Card,{padding:1,radius:2,tone:"transparent",children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,children:fieldDefinitionDocumentTypeTitles.length})})]}),/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{size:1,weight:"regular",muted:true,children:[fieldDefinitionDocumentTypeTitles.slice(0,MAX_VISIBLE_TYPES).join(", "),(fieldDefinitionDocumentTypeTitles==null?void 0:fieldDefinitionDocumentTypeTitles.length)>MAX_VISIBLE_TYPES?" +".concat(fieldDefinitionDocumentTypeTitles.length-MAX_VISIBLE_TYPES," more"):""]})]})]})}),disabled:!visible,fallbackPlacements:["left"],placement:"right",portal:true,children});}const MenuItemFilter=React__default.default.memo(function MenuItemFilter2(_ref521){let{item,onClose,...rest}=_ref521;const{dispatch,state:{filters}}=useSearchState();const handleClick=React.useCallback(()=>{dispatch({filter:item.filter,type:"TERMS_FILTERS_ADD"});onClose==null?void 0:onClose();},[dispatch,item.filter,onClose]);const isAlreadyActive=!!filters.find(f=>getFilterKey(f)===getFilterKey(item.filter));const tooltipEnabled=!!(item.fieldDefinition||item.filterDefinition.description);return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{...rest,children:/* @__PURE__ */jsxRuntime.jsx(ui.Button,{disabled:isAlreadyActive,fontSize:1,justify:"flex-start",mode:"bleed",onClick:isAlreadyActive?void 0:handleClick,padding:0,style:{position:"relative",whiteSpace:"normal",width:"100%"},tabIndex:-1,tone:item==null?void 0:item.tone,children:/* @__PURE__ */jsxRuntime.jsx(FilterTooltip,{fieldDefinition:item.fieldDefinition,filterDefinition:item.filterDefinition,visible:tooltipEnabled,children:/* @__PURE__ */jsxRuntime.jsx(ui.Box,{padding:3,children:/* @__PURE__ */jsxRuntime.jsx(FilterDetails,{filter:item.filter})})})})});});const MenuItemHeader=React__default.default.memo(function MenuItemHeader2(_ref522){let{item}=_ref522;return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingTop:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderBottom:true,paddingX:2,paddingY:3,tone:item==null?void 0:item.tone,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",weight:"medium",children:item.title})})});});const POPOVER_STYLES$1={width:"300px"};function AddFilterPopoverContent(_ref523){let{onClose}=_ref523;const[inputElement,setInputElement]=React.useState(null);const[titleFilter,setTitleFilter]=React.useState("");const{t}=useTranslation();const handleFilterChange=React.useCallback(e=>setTitleFilter(e.currentTarget.value),[setTitleFilter]);const handleFilterClear=React.useCallback(()=>setTitleFilter(""),[]);const schema=useSchema();const{state:{documentTypesNarrowed,definitions,filters,terms:{types}}}=useSearchState();const filteredMenuItems=React.useMemo(()=>createFilterMenuItems({documentTypesNarrowed,fieldDefinitions:definitions.fields,filterDefinitions:definitions.filters,schema,titleFilter,types,t}),[documentTypesNarrowed,definitions.fields,definitions.filters,schema,titleFilter,types,t]);const renderItem=React.useCallback(item=>{if(item.type==="filter"){return/* @__PURE__ */jsxRuntime.jsx(MenuItemFilter,{item,onClose,paddingBottom:1});}if(item.type==="header"){return/* @__PURE__ */jsxRuntime.jsx(MenuItemHeader,{item});}return null;},[onClose]);const getItemDisabled=React.useCallback(index=>{const filterItem=filteredMenuItems[index];return filterItem.type!=="filter"||!!filters.find(f=>getFilterKey(f)===getFilterKey(filterItem.filter));},[filteredMenuItems,filters]);const getItemKey=React.useCallback(index=>{const menuItem=filteredMenuItems[index];switch(menuItem.type){case"filter":return[...(menuItem.group?[menuItem.group]:[]),//
430
+ getFilterKey(menuItem.filter)].join("-");case"header":return"".concat(menuItem.type,"-").concat(menuItem.title);default:return index;}},[filteredMenuItems]);return/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",style:POPOVER_STYLES$1,children:[/* @__PURE__ */jsxRuntime.jsx(FilterPopoverContentHeader,{ariaInputLabel:t("search.filter-by-title-aria-label"),onChange:handleFilterChange,onClear:handleFilterClear,ref:setInputElement,typeFilter:titleFilter}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{children:[filteredMenuItems.length>0&&/* @__PURE__ */jsxRuntime.jsx(CommandList,{activeItemDataAttr:"data-hovered",ariaLabel:t("search.filters-aria-label",{count:filteredMenuItems.length}),autoFocus:"input",getItemDisabled,getItemKey,inputElement,itemHeight:45,items:filteredMenuItems,overscan:20,padding:1,paddingBottom:0,renderItem}),filteredMenuItems.length==0&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{padding:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:t("search.filter-no-matches-found",{filter:titleFilter})})})]})]});}function AddFilterButton(){const[open,setOpen]=React.useState(false);const[buttonElement,setButtonElement]=React.useState(null);const[popoverElement,setPopoverElement]=React.useState(null);const{t}=useTranslation();const{state:{fullscreen}}=useSearchState();const handleClose=React.useCallback(()=>setOpen(false),[]);const handleOpen=React.useCallback(()=>setOpen(true),[]);ui.useClickOutside(handleClose,[buttonElement,popoverElement]);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Popover,{__unstable_margins:[POPOVER_VERTICAL_MARGIN,0,0,0],content:/* @__PURE__ */jsxRuntime.jsx(FilterPopoverWrapper,{anchorElement:buttonElement,onClose:handleClose,children:/* @__PURE__ */jsxRuntime.jsx(AddFilterPopoverContent,{onClose:handleClose})}),open,placement:"bottom-start",radius:POPOVER_RADIUS,ref:setPopoverElement,portal:true,children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{icon:icons.AddIcon,mode:"bleed",onClick:handleOpen,size:fullscreen?"large":"default",ref:setButtonElement,selected:open,text:t("search.action.add-filter")})});}const DocumentTypeFilterItem=React__default.default.memo(function TypeFilterItem(_ref524){let{selected,type,...rest}=_ref524;var _a,_b;const{dispatch}=useSearchState();const handleTypeAdd=React.useCallback(()=>{dispatch({type:"TERMS_TYPE_ADD",schemaType:type});},[dispatch,type]);const handleTypeRemove=React.useCallback(()=>{dispatch({type:"TERMS_TYPE_REMOVE",schemaType:type});},[dispatch,type]);const handleClick=React.useCallback(()=>{if(selected){handleTypeRemove();}else{handleTypeAdd();}},[handleTypeAdd,handleTypeRemove,selected]);return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{...rest,children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{iconRight:selected&&icons.CheckmarkIcon,justify:"flex-start",mode:"bleed",onClick:handleClick,width:"fill",size:"large",tabIndex:-1,text:(_b=type.title)!=null?_b:type.name,tone:selected?"primary":"default"},(_a=type.title)!=null?_a:type.name)});});var __freeze$t=Object.freeze;var __defProp$t=Object.defineProperty;var __template$t=(cooked,raw)=>__freeze$t(__defProp$t(cooked,"raw",{value:__freeze$t(raw||cooked.slice())}));var _a$t;const ClearButtonBox=styled__default.default(ui.Box)(_a$t||(_a$t=__template$t(["\n border-top: 1px solid ",";\n flex-shrink: 0;\n"])),_ref525=>{let{theme}=_ref525;return theme.sanity.color.base.border;});const POPOVER_STYLES={width:"250px"};function DocumentTypesPopoverContent(){const[inputElement,setInputElement]=React.useState(null);const[typeFilter,setTypeFilter]=React.useState("");const commandListRef=React.useRef(null);const{t}=useTranslation();const schema=useSchema();const{dispatch,state:{terms:{types:selectedTypes}}}=useSearchState();const[selectedTypesSnapshot,setSelectedTypesSnapshot]=React.useState(selectedTypes);const documentTypeItems=useGetDocumentTypeItems(schema,selectedTypes,selectedTypesSnapshot,typeFilter);const handleFilterChange=React.useCallback(e=>setTypeFilter(e.currentTarget.value),[setTypeFilter]);const handleFilterClear=React.useCallback(()=>setTypeFilter(""),[]);const handleTypesClear=React.useCallback(()=>{var _a2,_b;setSelectedTypesSnapshot([]);dispatch({type:"TERMS_TYPES_CLEAR"});(_a2=commandListRef==null?void 0:commandListRef.current)==null?void 0:_a2.focusInputElement();(_b=commandListRef==null?void 0:commandListRef.current)==null?void 0:_b.scrollToIndex(0);},[dispatch]);const getItemKey=React.useCallback(index=>{const virtualItem=documentTypeItems[index];switch(virtualItem.type){case"divider":return"".concat(virtualItem.type,"-").concat(index);case"header":return"".concat(virtualItem.type,"-").concat(virtualItem.title);case"item":return"".concat(virtualItem.type,"-").concat(virtualItem.item.name);default:return index;}},[documentTypeItems]);const renderItem=React.useCallback(item=>{if(item.type==="divider"){return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingY:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{})});}if(item.type==="header"){return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{margin:2,padding:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,weight:"medium",children:item.title})});}if(item.type==="item"){return/* @__PURE__ */jsxRuntime.jsx(DocumentTypeFilterItem,{paddingBottom:1,selected:item.selected,type:item.item});}return null;},[]);const getItemDisabled=React.useCallback(index=>{const item=documentTypeItems[index];return item.type!=="item";},[documentTypeItems]);const getItemSelected=React.useCallback(index=>{const item=documentTypeItems[index];return item.type==="item"&&item.selected;},[documentTypeItems]);return/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",style:POPOVER_STYLES,children:[/* @__PURE__ */jsxRuntime.jsx(FilterPopoverContentHeader,{ariaInputLabel:t("search.action.filter-by-document-type-aria-label"),onChange:handleFilterChange,onClear:handleFilterClear,ref:setInputElement,typeFilter}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{children:[documentTypeItems.length>0&&/* @__PURE__ */jsxRuntime.jsx(CommandList,{activeItemDataAttr:"data-hovered",ariaLabel:t("search.document-types-aria-label"),ariaMultiselectable:true,autoFocus:"input",getItemDisabled,getItemSelected,getItemKey,inputElement,itemHeight:37,items:documentTypeItems,overscan:20,padding:1,paddingBottom:0,ref:commandListRef,renderItem}),!documentTypeItems.length&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{padding:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:t("search.document-types-no-matches-found",{filter:typeFilter})})})]}),!typeFilter&&selectedTypes.length>0&&/* @__PURE__ */jsxRuntime.jsx(ClearButton,{onClick:handleTypesClear,selectedTypes})]});}function ClearButton(_ref526){let{onClick,selectedTypes}=_ref526;const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(ClearButtonBox,{padding:1,children:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":t("search.action.clear-type-filters-aria-label"),"data-name":"type-filter-button",disabled:selectedTypes.length===0,mode:"bleed",onClick,text:t("search.action.clear-type-filters-label"),tone:"primary"})})});}function useGetDocumentTypeItems(schema,selectedTypes,selectedTypesSnapshot,typeFilter){return React.useMemo(()=>{const[itemsSelected,itemsUnselected]=partition__default.default(getSelectableOmnisearchTypes(schema,typeFilter),type=>selectedTypesSnapshot.includes(type));const hasSelectedItems=itemsSelected.length>0;const hasUnselectedItems=itemsSelected.length>0;const items=[];if(hasSelectedItems){items.push({title:"Selected",type:"header"});}itemsSelected.forEach(item=>items.push({item,selected:selectedTypes.includes(item),type:"item"}));if(hasSelectedItems&&hasUnselectedItems){items.push({type:"divider"});}itemsUnselected.forEach(item=>items.push({item,selected:selectedTypes.includes(item),type:"item"}));return items;},[schema,selectedTypes,selectedTypesSnapshot,typeFilter]);}const FALLBACK_PLACEMENTS=["top-start","bottom-start"];function DocumentTypesButton(){const[open,setOpen]=React.useState(false);const[buttonElement,setButtonElement]=React.useState(null);const[popoverElement,setPopoverElement]=React.useState(null);const{state:{fullscreen,terms:{types}}}=useSearchState();const{t}=useTranslation();const handleClose=React.useCallback(()=>setOpen(false),[]);const handleOpen=React.useCallback(()=>setOpen(true),[]);ui.useClickOutside(handleClose,[buttonElement,popoverElement]);const title=React.useMemo(()=>documentTypesTruncated({types,t}),[types,t]);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Popover,{__unstable_margins:[POPOVER_VERTICAL_MARGIN,0,0,0],content:/* @__PURE__ */jsxRuntime.jsx(FilterPopoverWrapper,{anchorElement:buttonElement,onClose:handleClose,children:/* @__PURE__ */jsxRuntime.jsx(DocumentTypesPopoverContent,{})}),open,placement:"bottom-start",fallbackPlacements:FALLBACK_PLACEMENTS,portal:true,radius:POPOVER_RADIUS,ref:setPopoverElement,children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{iconRight:icons.ChevronDownIcon,mode:"ghost",onClick:handleOpen,size:fullscreen?"large":"default",ref:setButtonElement,selected:open,text:title,tone:"default"})});}var __freeze$s=Object.freeze;var __defProp$s=Object.defineProperty;var __template$s=(cooked,raw)=>__freeze$s(__defProp$s(cooked,"raw",{value:__freeze$s(raw||cooked.slice())}));var _a$s;const CustomBox=styled__default.default(ui.Box)(_a$s||(_a$s=__template$s(["\n flex-shrink: ",";\n"])),_ref527=>{let{$flexShrink=0}=_ref527;return $flexShrink;});function FilterLabel(_ref528){let{filter,fontSize=1,showContent=true}=_ref528;const{t}=useTranslation();const{state:{definitions,fullscreen}}=useSearchState();const operator=getOperatorDefinition(definitions.operators,filter.operatorType);const ButtonValue=operator==null?void 0:operator.buttonValueComponent;const filterValue=filter.value;const components=React.useMemo(()=>({Field:()=>/* @__PURE__ */jsxRuntime.jsx(CustomBox,{$flexShrink:fullscreen?1:0,children:/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{tone:"default",size:fontSize,textOverflow:"ellipsis",weight:"medium",children:/* @__PURE__ */jsxRuntime.jsx(FilterTitle,{filter,maxLength:fullscreen?25:40})})}),Operator:_ref529=>{let{children}=_ref529;return showContent?/* @__PURE__ */jsxRuntime.jsx(CustomBox,{$flexShrink:0,children:/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{tone:"default",size:fontSize,textOverflow:"ellipsis",weight:"regular",children})}):null;},Value:_ref530=>{let{children}=_ref530;return showContent?/* @__PURE__ */jsxRuntime.jsx(CustomBox,{$flexShrink:1,children:/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{tone:"default",size:fontSize,textOverflow:"ellipsis",weight:"medium",children:ButtonValue?/* @__PURE__ */jsxRuntime.jsx(ButtonValue,{value:filterValue}):children})}):null;}}),[filter,fontSize,fullscreen,showContent,ButtonValue,filterValue]);if(!(operator==null?void 0:operator.descriptionKey)){console.warn("Missing `descriptionKey` for operator `%s`",filter.operatorType);}if(!showContent||!(operator==null?void 0:operator.descriptionKey)){const Field=components.Field;return/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",gap:1,children:/* @__PURE__ */jsxRuntime.jsx(Field,{})});}return/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",gap:1,children:/* @__PURE__ */jsxRuntime.jsx(Translate,{t,i18nKey:operator==null?void 0:operator.descriptionKey,components,values:getFilterValues(filter)})});}function getFilterValues(filter){const values={};if(typeof filter.value==="number"){values.count=filter.value;}if(isStringOrNumber(filter.value)){values.value=filter.value;}if(isRecord$4(filter.value)&&"from"in filter.value&&isStringOrNumber(filter.value.from)){values.from=filter.value.from;}if(isRecord$4(filter.value)&&"to"in filter.value&&isStringOrNumber(filter.value.to)){values.to=filter.value.to;}return values;}function isStringOrNumber(value){return typeof value==="string"||typeof value==="number";}function FilterError(props){const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{...props,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"flex-start",gap:3,children:[/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{tone:"critical",children:/* @__PURE__ */jsxRuntime.jsx(icons.ErrorOutlineIcon,{})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:4,children:[/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{size:1,tone:"critical",weight:"medium",children:t("search.error.display-filter-title")}),/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{size:1,tone:"critical",children:t("search.error.display-filter-description")})]})]})});}function CustomMenuItem$1(_ref531){let{onClick,operator,selected}=_ref531;const handleClick=React.useCallback(()=>onClick(operator.type),[onClick,operator.type]);const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{onClick:handleClick,pressed:selected,tone:"default",text:t(operator.nameKey),iconRight:operator==null?void 0:operator.icon});}function OperatorsMenuButton(_ref532){let{filter,operator}=_ref532;var _a;const menuButtonId=React.useId();const{t}=useTranslation();const{dispatch,state}=useSearchState();const operatorItems=(_a=getFilterDefinition(state.definitions.filters,filter.filterName))==null?void 0:_a.operators;const handleClick=React.useCallback(operatorType=>{dispatch({filterKey:getFilterKey(filter),operatorType,type:"TERMS_FILTERS_SET_OPERATOR"});},[dispatch,filter]);if(!operator||!operatorItems||operatorItems.length<=1){return null;}return/* @__PURE__ */jsxRuntime.jsx(ui.Inline,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuButton,{button:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"ghost",iconRight:icons.ChevronDownIcon,text:t(operator.nameKey)}),id:menuButtonId||"",menu:/* @__PURE__ */jsxRuntime.jsx(ui.Menu,{children:operatorItems.map((item,index)=>{if(item.type==="item"){const menuOperator=getOperatorDefinition(state.definitions.operators,item.name);if(!menuOperator){return null;}return/* @__PURE__ */jsxRuntime.jsx(CustomMenuItem$1,{onClick:handleClick,operator:menuOperator,selected:operator.type===item.name},index);}if(item.type==="divider"){return/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{},index);}return null;})}),placement:"bottom-start",popover:{constrainSize:true,portal:false,radius:2}})});}function FilterForm(_ref533){let{filter}=_ref533;const[errorParams,setErrorParams]=React.useState(null);const{dispatch,state:{definitions,fullscreen}}=useSearchState();const filterDefinition=getFilterDefinition(definitions.filters,filter.filterName);const operator=getOperatorDefinition(definitions.operators,filter.operatorType);const fieldDefinition=getFieldFromFilter(definitions.fields,filter);const filterKey=getFilterKey(filter);const handleClose=React.useCallback(()=>{dispatch({filterKey:getFilterKey(filter),type:"TERMS_FILTERS_REMOVE"});},[dispatch,filter]);const handleValueChange=React.useCallback(value=>{dispatch({filterKey,type:"TERMS_FILTERS_SET_VALUE",value});},[dispatch,filterKey]);const handleCatchError=React.useCallback(params=>{setErrorParams(params);},[]);const Component=operator==null?void 0:operator.inputComponent;if(errorParams){return/* @__PURE__ */jsxRuntime.jsx(FilterError,{padding:4});}return/* @__PURE__ */jsxRuntime.jsx(ui.ErrorBoundary,{onCatch:handleCatchError,children:/* @__PURE__ */jsxRuntime.jsx(FocusLock__default.default,{autoFocus:!supportsTouch,returnFocus:true,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column-reverse",children:[Component&&/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:true,padding:3,children:/* @__PURE__ */jsxRuntime.jsx(Component,{fieldDefinition,onChange:handleValueChange,value:filter.value},filter.operatorType)}),/* @__PURE__ */jsxRuntime.jsx(ui.Card,{padding:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{space:3,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"flex-start",gap:3,justify:"space-between",children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingLeft:1,paddingRight:2,paddingY:1,children:/* @__PURE__ */jsxRuntime.jsx(FilterDetails,{filter})}),fullscreen&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{icon:icons.TrashIcon,mode:"bleed",onClick:handleClose,tone:"critical",tooltipProps:{content:"Remove filter"}})]}),(filterDefinition==null?void 0:filterDefinition.description)&&/* @__PURE__ */jsxRuntime.jsx(ui.Card,{border:true,padding:3,radius:2,tone:"transparent",children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:filterDefinition.description})}),/* @__PURE__ */jsxRuntime.jsx(OperatorsMenuButton,{filter,operator})]})})]})})});}var __freeze$r=Object.freeze;var __defProp$r=Object.defineProperty;var __template$r=(cooked,raw)=>__freeze$r(__defProp$r(cooked,"raw",{value:__freeze$r(raw||cooked.slice())}));var _a$r;const ContainerFlex=styled__default.default(ui.Flex)(_a$r||(_a$r=__template$r(["\n max-width: 480px;\n min-width: 150px;\n overflow: hidden;\n overflow: clip;\n width: 100%;\n"])));function FilterPopoverContent(_ref534){let{filter}=_ref534;return/* @__PURE__ */jsxRuntime.jsxs(ContainerFlex,{direction:"column",children:[/* @__PURE__ */jsxRuntime.jsx(FilterForm,{filter}),DEBUG_MODE]});}var __freeze$q=Object.freeze;var __defProp$q=Object.defineProperty;var __template$q=(cooked,raw)=>__freeze$q(__defProp$q(cooked,"raw",{value:__freeze$q(raw||cooked.slice())}));var _a$q,_b$f,_c$a,_d$4;const CloseButton=styled__default.default(ui.Button)(_a$q||(_a$q=__template$q(["\n border-radius: ",";\n"])),_ref535=>{let{theme}=_ref535;return"0 ".concat(ui.rem(theme.sanity.radius[2])," ").concat(ui.rem(theme.sanity.radius[2])," 0");});const CloseCard=styled__default.default(ui.Card)(_b$f||(_b$f=__template$q(["\n position: absolute;\n right: 0;\n"])));const ContainerDiv=styled__default.default.div(_c$a||(_c$a=__template$q(["\n align-items: center;\n display: inline-flex;\n max-width: 100%;\n position: relative;\n"])));const LabelButton=styled__default.default(ui.Button)(_d$4||(_d$4=__template$q(["\n border: none;\n width: 100%;\n"])));function FilterButton(_ref536){let{filter,initialOpen}=_ref536;const[open,setOpen]=React.useState(initialOpen);const[buttonElement,setButtonElement]=React.useState(null);const[popoverElement,setPopoverElement]=React.useState(null);const{dispatch,state:{definitions,fullscreen}}=useSearchState();const{t}=useTranslation();const handleClose=React.useCallback(()=>setOpen(false),[]);const handleOpen=React.useCallback(()=>setOpen(true),[]);const handleRemove=React.useCallback(()=>dispatch({filterKey:getFilterKey(filter),type:"TERMS_FILTERS_REMOVE"}),[dispatch,filter]);const handleKeyDown=React.useCallback(event=>{if(["Backspace","Delete"].includes(event.key)){handleRemove();}},[handleRemove]);ui.useClickOutside(handleClose,[buttonElement,popoverElement]);const isValid=validateFilter({fieldDefinitions:definitions.fields,filter,filterDefinitions:definitions.filters,operatorDefinitions:definitions.operators});return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Popover,{__unstable_margins:[POPOVER_VERTICAL_MARGIN,0,0,0],content:/* @__PURE__ */jsxRuntime.jsx(FilterPopoverWrapper,{anchorElement:buttonElement,onClose:handleClose,children:/* @__PURE__ */jsxRuntime.jsx(FilterPopoverContent,{filter})}),constrainSize:true,open,overflow:"auto",placement:"bottom-start",portal:true,radius:POPOVER_RADIUS,ref:setPopoverElement,children:/* @__PURE__ */jsxRuntime.jsxs(ContainerDiv,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Card,{__unstable_focusRing:true,display:"flex",radius:2,tone:isValid?"primary":"transparent",children:/* @__PURE__ */jsxRuntime.jsx(LabelButton,{mode:"bleed",onClick:handleOpen,onKeyDown:handleKeyDown,paddingLeft:fullscreen?3:2,paddingRight:fullscreen?3:5,paddingY:fullscreen?3:2,ref:setButtonElement,children:/* @__PURE__ */jsxRuntime.jsx(FilterLabel,{filter,showContent:isValid})})}),!fullscreen&&/* @__PURE__ */jsxRuntime.jsx(CloseCard,{__unstable_focusRing:true,display:"flex",radius:2,tone:isValid?"primary":"transparent",children:/* @__PURE__ */jsxRuntime.jsx(CloseButton,{"aria-label":t("search.action.remove-filter-aria-label"),fontSize:1,icon:icons.CloseIcon,mode:"bleed",onClick:handleRemove,onKeyDown:handleKeyDown,padding:2,radius:2})})]})});}function Filters(){const{dispatch,state:{filters,fullscreen,lastAddedFilter,terms:{types}}}=useSearchState();const{t}=useTranslation();const isMounted=React.useRef(false);const handleClear=React.useCallback(()=>{dispatch({type:"TERMS_FILTERS_CLEAR"});dispatch({type:"TERMS_TYPES_CLEAR"});},[dispatch]);const clearFiltersButtonVisible=filters.length>0||types.length>0;React.useEffect(()=>{isMounted.current=true;},[]);const lastAddedFilterKey=lastAddedFilter&&getFilterKey(lastAddedFilter);const ClearFiltersButton=()=>/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"bleed",onClick:handleClear,size:fullscreen?"large":"default",text:t("search.action.clear-filters"),tone:"critical"});return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"flex-start",gap:3,justify:"space-between",padding:2,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{flex:1,gap:2,wrap:"wrap",children:[/* @__PURE__ */jsxRuntime.jsx(DocumentTypesButton,{}),filters==null?void 0:filters.map(filter=>{const key=getFilterKey(filter);return/* @__PURE__ */jsxRuntime.jsx(FilterButton,{filter,initialOpen:isMounted.current&&lastAddedFilterKey===key},key);}),!fullscreen&&/* @__PURE__ */jsxRuntime.jsx(AddFilterButton,{})]}),clearFiltersButtonVisible&&!fullscreen&&/* @__PURE__ */jsxRuntime.jsx(ClearFiltersButton,{})]}),fullscreen&&/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{justify:"space-between",paddingBottom:2,paddingX:2,children:[/* @__PURE__ */jsxRuntime.jsx(AddFilterButton,{}),clearFiltersButtonVisible&&/* @__PURE__ */jsxRuntime.jsx(ClearFiltersButton,{})]}),DEBUG_MODE]});}function Instructions(){const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",direction:"column",gap:4,paddingX:4,paddingY:5,children:/* @__PURE__ */jsxRuntime.jsx(ui.Inline,{space:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,children:/* @__PURE__ */jsxRuntime.jsx(Translate,{t,i18nKey:"search.instructions",components:{ControlsIcon:()=>/* @__PURE__ */jsxRuntime.jsx(icons.ControlsIcon,{style:{padding:"0 0.25rem"}},0)}})})})});}function DocumentTypesPill(_ref537){let{availableCharacters,types}=_ref537;const{t}=useTranslation();const title=React.useMemo(()=>documentTypesTruncated({availableCharacters,types,t}),[availableCharacters,types,t]);return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{border:true,padding:2,radius:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:title})});}var __freeze$p=Object.freeze;var __defProp$p=Object.defineProperty;var __template$p=(cooked,raw)=>__freeze$p(__defProp$p(cooked,"raw",{value:__freeze$p(raw||cooked.slice())}));var _a$p;const FilterPillCard=styled__default.default(ui.Card)(_a$p||(_a$p=__template$p(["\n cursor: default;\n"])));function FilterPill(_ref538){let{filter}=_ref538;return/* @__PURE__ */jsxRuntime.jsx(FilterPillCard,{border:true,padding:2,radius:2,tone:"primary",children:/* @__PURE__ */jsxRuntime.jsx(FilterLabel,{filter})});}var __freeze$o=Object.freeze;var __defProp$o=Object.defineProperty;var __template$o=(cooked,raw)=>__freeze$o(__defProp$o(cooked,"raw",{value:__freeze$o(raw||cooked.slice())}));var _a$o,_b$e,_c$9,_d$3;const DEFAULT_COMBINED_TYPE_COUNT=40;const RecentSearchItemButton=styled__default.default(ui.Button)(_a$o||(_a$o=__template$o(["\n border-radius: ",";\n cursor: default;\n width: 100%;\n"])),_ref539=>{let{theme}=_ref539;return ui.rem(theme.sanity.radius[2]);});const SearchItemPillsBox=styled__default.default(ui.Box)(_b$e||(_b$e=__template$o(["\n flex-shrink: 3;\n"])));const SearchItemQueryFlex=styled__default.default(ui.Flex)(_c$9||(_c$9=__template$o(["\n flex-shrink: 2;\n"])));const CloseButtonDiv=styled__default.default.div(_d$3||(_d$3=__template$o(["\n opacity: 0.8;\n visibility: hidden;\n\n @media (hover: hover) {\n ",":hover & {\n visibility: visible;\n }\n &:hover {\n opacity: 0.4;\n }\n }\n"])),RecentSearchItemButton);function RecentSearchItem(_ref540){let{index,maxVisibleTypePillChars=DEFAULT_COMBINED_TYPE_COUNT,value,...rest}=_ref540;var _a2;const{dispatch,recentSearchesStore}=useSearchState();const availableCharacters=maxVisibleTypePillChars-value.query.length;const handleClick=React.useCallback(()=>{dispatch({type:"TERMS_SET",filters:value==null?void 0:value.filters,terms:value});if(recentSearchesStore){const updatedRecentSearches=recentSearchesStore==null?void 0:recentSearchesStore.addSearch(value,value==null?void 0:value.filters);dispatch({recentSearches:updatedRecentSearches,type:"RECENT_SEARCHES_SET"});}},[dispatch,recentSearchesStore,value]);const handleDelete=React.useCallback(event=>{event.stopPropagation();if(recentSearchesStore){const updatedRecentSearches=recentSearchesStore==null?void 0:recentSearchesStore.removeSearchAtIndex(index);dispatch({recentSearches:updatedRecentSearches,type:"RECENT_SEARCHES_SET"});}},[dispatch,index,recentSearchesStore]);return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{...rest,children:/* @__PURE__ */jsxRuntime.jsx(RecentSearchItemButton,{mode:"bleed",onClick:handleClick,paddingLeft:3,paddingRight:1,paddingY:1,tabIndex:-1,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"stretch",children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Inline,{paddingY:2,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:/* @__PURE__ */jsxRuntime.jsx(icons.ClockIcon,{})}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{children:"\u200B"})]}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"stretch",flex:1,gap:2,justify:"flex-start",marginLeft:3,wrap:"wrap",children:[value.query&&/* @__PURE__ */jsxRuntime.jsx(SearchItemQueryFlex,{align:"center",paddingY:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",weight:"medium",children:value.query})}),value.types.length>0&&/* @__PURE__ */jsxRuntime.jsx(SearchItemPillsBox,{children:/* @__PURE__ */jsxRuntime.jsx(DocumentTypesPill,{availableCharacters,types:value.types})}),(_a2=value==null?void 0:value.filters)==null?void 0:_a2.map((filter,i)=>{return/* @__PURE__ */jsxRuntime.jsx(FilterPill,{filter},i);})]}),/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",children:/* @__PURE__ */jsxRuntime.jsx(CloseButtonDiv,{onClick:handleDelete,children:/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{padding:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,children:/* @__PURE__ */jsxRuntime.jsx(icons.CloseIcon,{})})})})})]})})});}var __freeze$n=Object.freeze;var __defProp$n=Object.defineProperty;var __template$n=(cooked,raw)=>__freeze$n(__defProp$n(cooked,"raw",{value:__freeze$n(raw||cooked.slice())}));var _a$n;const VIRTUAL_LIST_RECENT_SEARCH_ITEM_HEIGHT=36;const MAX_COMBINED_TYPE_COUNT_SMALL=20;const MAX_COMBINED_TYPE_COUNT_LARGE=40;const RecentSearchesBox=styled__default.default(ui.Card)(_a$n||(_a$n=__template$n(["\n overflow-x: hidden;\n overflow-y: auto;\n position: relative;\n"])));function RecentSearches(_ref541){let{inputElement}=_ref541;const{dispatch,recentSearchesStore,state:{filtersVisible,fullscreen,recentSearches}}=useSearchState();const commandListRef=React.useRef(null);const{t}=useTranslation();const handleClearRecentSearchesClick=React.useCallback(()=>{var _a2;if(recentSearchesStore){const updatedRecentSearches=recentSearchesStore.removeSearch();dispatch({recentSearches:updatedRecentSearches,type:"RECENT_SEARCHES_SET"});}(_a2=commandListRef==null?void 0:commandListRef.current)==null?void 0:_a2.focusInputElement();},[dispatch,recentSearchesStore]);const mediaIndex=ui.useMediaIndex();const maxVisibleTypePillChars=React.useMemo(()=>{return mediaIndex<2?MAX_COMBINED_TYPE_COUNT_SMALL:MAX_COMBINED_TYPE_COUNT_LARGE;},[mediaIndex]);const renderItem=React.useCallback((item,_ref542)=>{let{virtualIndex}=_ref542;return/* @__PURE__ */jsxRuntime.jsx(RecentSearchItem,{index:virtualIndex,maxVisibleTypePillChars,paddingBottom:1,value:item});},[maxVisibleTypePillChars]);const hasRecentSearches=!!recentSearches.length;return/* @__PURE__ */jsxRuntime.jsx(RecentSearchesBox,{borderTop:hasRecentSearches||!hasRecentSearches&&!filtersVisible&&fullscreen,flex:1,children:recentSearches.length>0?/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingBottom:2,paddingTop:4,paddingX:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,weight:"medium",children:t("search.recent-searches-label")})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{children:/* @__PURE__ */jsxRuntime.jsx(CommandList,{activeItemDataAttr:"data-hovered",ariaLabel:t("search.recent-searches-aria-label"),inputElement,initialIndex:0,itemHeight:VIRTUAL_LIST_RECENT_SEARCH_ITEM_HEIGHT,items:recentSearches,paddingX:2,paddingY:1,renderItem})}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingBottom:2,paddingTop:1,paddingX:2,children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"bleed",onClick:handleClearRecentSearchesClick,tone:"default",text:t("search.action.clear-recent-searches"),muted:true})})]}):!filtersVisible&&fullscreen&&/* @__PURE__ */jsxRuntime.jsx(Instructions,{})});}var __freeze$m=Object.freeze;var __defProp$m=Object.defineProperty;var __template$m=(cooked,raw)=>__freeze$m(__defProp$m(cooked,"raw",{value:__freeze$m(raw||cooked.slice())}));var _a$m,_b$d,_c$8;const rotate=styled.keyframes(_a$m||(_a$m=__template$m(["\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n"])));const AnimatedSpinnerIcon=styled__default.default(icons.SpinnerIcon)(_b$d||(_b$d=__template$m(["\n animation: "," 500ms linear infinite;\n"])),rotate);const FilterDiv=styled__default.default.div(_c$8||(_c$8=__template$m(["\n line-height: 0;\n position: relative;\n"])));const SearchHeader=React.forwardRef(function SearchHeader2(_ref543,ref){let{ariaInputLabel,onClose}=_ref543;const isMountedRef=React.useRef(false);const{dispatch,state:{filters,filtersVisible,fullscreen,result:{loading},terms:{types,query}}}=useSearchState();const{t}=useTranslation();const handleFiltersToggle=React.useCallback(()=>dispatch({type:"FILTERS_VISIBLE_SET",visible:!filtersVisible}),[dispatch,filtersVisible]);const handleQueryChange=React.useCallback(e=>dispatch({type:"TERMS_QUERY_SET",query:e.currentTarget.value}),[dispatch]);const handleQueryClear=React.useCallback(()=>{dispatch({type:"TERMS_QUERY_SET",query:""});},[dispatch]);React.useEffect(()=>{if(!fullscreen){dispatch({type:"FILTERS_VISIBLE_SET",visible:true});}},[dispatch,fullscreen]);React.useEffect(()=>{isMountedRef.current=true;},[]);const notificationBadgeVisible=filters.length>0||types.length>0;return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{flex:"none",children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:fullscreen?2:1,padding:fullscreen?2:1,children:[fullscreen&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":t("search.action.close-search-aria-label"),icon:icons.ArrowLeftIcon,mode:"bleed",onClick:onClose,size:"large",tooltipProps:{content:t("search.action.close-search-aria-label")}}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:1,children:/* @__PURE__ */jsxRuntime.jsx(CustomTextInput,{__unstable_disableFocusRing:true,$background:fullscreen,$smallClearButton:fullscreen,"aria-label":ariaInputLabel,autoComplete:"off",border:false,clearButton:!!query,fontSize:[2,2,1],icon:loading?AnimatedSpinnerIcon:icons.SearchIcon,onChange:handleQueryChange,onClear:handleQueryClear,placeholder:t("search.placeholder"),radius:2,ref,spellCheck:false,value:query})}),fullscreen&&/* @__PURE__ */jsxRuntime.jsx(FilterDiv,{children:/* @__PURE__ */jsxRuntime.jsx(StatusButton,{"aria-expanded":filtersVisible,"aria-label":t("search.action.toggle-filters-aria-label",{context:filtersVisible?"hide":"show"}),icon:icons.ControlsIcon,mode:"bleed",onClick:handleFiltersToggle,selected:filtersVisible,size:"large",tone:notificationBadgeVisible?"primary":void 0,tooltipProps:{content:t("search.action.toggle-filters-label",{context:filtersVisible?"hide":"show"})}})})]})});});function NoResults(){const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsx(ui.Container,{width:0,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{"aria-live":"assertive",space:4,paddingX:4,paddingY:5,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{align:"center",muted:true,size:1,weight:"medium",children:t("search.no-results-title")}),/* @__PURE__ */jsxRuntime.jsx(ui.Text,{align:"center",muted:true,size:1,children:t("search.no-results-help-description")})]})});}var __freeze$l=Object.freeze;var __defProp$l=Object.defineProperty;var __template$l=(cooked,raw)=>__freeze$l(__defProp$l(cooked,"raw",{value:__freeze$l(raw||cooked.slice())}));var _a$l;const TextWithToneStyle=styled__default.default(ui.Text)(_a$l||(_a$l=__template$l(["\n &:not([data-muted]) {\n &[data-tone='default'] {\n --card-fg-color: var(--card-badge-default-fg-color);\n }\n &[data-tone='primary'] {\n --card-fg-color: var(--card-badge-primary-fg-color);\n }\n &[data-tone='positive'] {\n --card-fg-color: var(--card-badge-positive-fg-color);\n }\n &[data-tone='caution'] {\n --card-fg-color: var(--card-badge-caution-fg-color);\n }\n &[data-tone='critical'] {\n --card-fg-color: var(--card-badge-critical-fg-color);\n }\n }\n\n &[data-dimmed] {\n opacity: 0.3;\n }\n"])));const TextWithTone=React__default.default.forwardRef(function TextWithTone2(props,ref){const{tone,dimmed,muted,...rest}=props;return/* @__PURE__ */jsxRuntime.jsx(TextWithToneStyle,{"data-ui":"TextWithTone","data-dimmed":dimmed?"":void 0,"data-muted":muted?"":void 0,"data-tone":tone,muted,ref,...rest});});function SearchError(){const{t}=useTranslation();return/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center","aria-live":"assertive",direction:"column",flex:1,gap:3,marginY:2,padding:4,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginBottom:1,children:/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{tone:"critical",children:/* @__PURE__ */jsxRuntime.jsx(icons.WarningOutlineIcon,{})})}),/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{size:2,tone:"critical",weight:"medium",children:t("search.error.unspecified-error-title")}),/* @__PURE__ */jsxRuntime.jsx(TextWithTone,{size:1,tone:"critical",children:t("search.error.unspecified-error-help-description")})]});}const ORDERINGS={createdAsc:{ignoreScore:true,sort:{direction:"asc",field:"_createdAt"},titleKey:"search.ordering.created-ascending-label"},createdDesc:{ignoreScore:true,sort:{direction:"desc",field:"_createdAt"},titleKey:"search.ordering.created-descending-label"},relevance:{customMeasurementLabel:"relevance",sort:{direction:"desc",field:"_updatedAt"},titleKey:"search.ordering.best-match-label"},updatedAsc:{ignoreScore:true,sort:{direction:"asc",field:"_updatedAt"},titleKey:"search.ordering.updated-ascending-label"},updatedDesc:{ignoreScore:true,sort:{direction:"desc",field:"_updatedAt"},titleKey:"search.ordering.updated-descending-label"}};var __freeze$k=Object.freeze;var __defProp$k=Object.defineProperty;var __template$k=(cooked,raw)=>__freeze$k(__defProp$k(cooked,"raw",{value:__freeze$k(raw||cooked.slice())}));var _a$k;const MENU_ORDERINGS=[ORDERINGS.relevance,{type:"divider"},ORDERINGS.createdAsc,ORDERINGS.createdDesc,{type:"divider"},ORDERINGS.updatedAsc,ORDERINGS.updatedDesc];const SortMenuContentFlex=styled__default.default(ui.Flex)(_a$k||(_a$k=__template$k(["\n box-sizing: border-box;\n"])));function isSearchDivider(item){return item.type==="divider";}function CustomMenuItem(_ref544){let{ordering}=_ref544;const{t}=useTranslation();const{dispatch,state:{ordering:currentOrdering}}=useSearchState();const handleClick=React.useCallback(()=>{dispatch({ordering,type:"ORDERING_SET"});},[dispatch,ordering]);const isSelected=React.useMemo(()=>isEqual__default$1.default(currentOrdering,ordering),[currentOrdering,ordering]);return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{onClick:handleClick,pressed:isSelected,tone:"default",text:t(ordering.titleKey)});}function SortMenu(){const{t}=useTranslation();const{state:{ordering}}=useSearchState();const menuButtonId=React.useId();const currentMenuItem=MENU_ORDERINGS.find(item=>isEqual__default$1.default(ordering,item)&&!isSearchDivider(item));if(!currentMenuItem){return null;}return/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderBottom:true,children:/* @__PURE__ */jsxRuntime.jsx(SortMenuContentFlex,{align:"center",flex:1,padding:2,children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuButton,{button:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"bleed",icon:icons.SortIcon,text:t(currentMenuItem.titleKey)}),id:menuButtonId||"",menu:/* @__PURE__ */jsxRuntime.jsx(ui.Menu,{children:MENU_ORDERINGS.map((item,index)=>{if(isSearchDivider(item)){return/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{},index);}return/* @__PURE__ */jsxRuntime.jsx(CustomMenuItem,{ordering:item},index);})}),placement:"bottom-start",popover:{portal:true,radius:2}})})});}var __freeze$j=Object.freeze;var __defProp$j=Object.defineProperty;var __template$j=(cooked,raw)=>__freeze$j(__defProp$j(cooked,"raw",{value:__freeze$j(raw||cooked.slice())}));var _a$j;const DebugScoreCard=styled__default.default(ui.Card)(_a$j||(_a$j=__template$j(["\n cursor: help;\n left: 0;\n position: absolute;\n top: 0;\n"])));function DebugOverlay(_ref545){let{data}=_ref545;const{score}=data;let tone="default";if(score<=0.1){tone="critical";}else if(score>=0.5){tone="primary";}const matchingStories=data.stories.filter(story=>story.score>0);return/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{content:/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{space:2,children:matchingStories.length?/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children:matchingStories.map(story=>/* @__PURE__ */jsxRuntime.jsxs(ui.Inline,{space:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Code,{size:0,weight:"medium",children:story.path}),/* @__PURE__ */jsxRuntime.jsx(ui.Code,{size:0,children:story.why})]},story.path))}):/* @__PURE__ */jsxRuntime.jsx(ui.Code,{size:0,children:"No matches"})}),placement:"bottom-start",portal:true,children:/* @__PURE__ */jsxRuntime.jsx(DebugScoreCard,{padding:1,shadow:1,tone,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Code,{size:0,children:["score: ",score]})})})});}var __freeze$i=Object.freeze;var __defProp$i=Object.defineProperty;var __template$i=(cooked,raw)=>__freeze$i(__defProp$i(cooked,"raw",{value:__freeze$i(raw||cooked.slice())}));var _a$i;const VIRTUAL_LIST_SEARCH_RESULT_ITEM_HEIGHT=57;const VIRTUAL_LIST_OVERSCAN=4;const SearchResultsInnerFlex=styled__default.default(ui.Flex)(_a$i||(_a$i=__template$i(["\n opacity: ",";\n overflow-x: hidden;\n overflow-y: auto;\n position: relative;\n transition: 300ms opacity;\n width: 100%;\n"])),_ref546=>{let{$loading}=_ref546;return $loading?0.5:1;});function SearchResults(_ref547){let{inputElement}=_ref547;const{dispatch,onClose,recentSearchesStore,setSearchCommandList,state:{debug,filters,fullscreen,lastActiveIndex,result,terms}}=useSearchState();const{t}=useTranslation();const hasSearchResults=!!result.hits.length;const hasNoSearchResults=!result.hits.length&&result.loaded;const hasError=result.error;const handleSearchResultClick=React.useCallback(()=>{if(recentSearchesStore){const updatedRecentSearches=recentSearchesStore.addSearch(terms,filters);dispatch({recentSearches:updatedRecentSearches,type:"RECENT_SEARCHES_SET"});}onClose==null?void 0:onClose();},[dispatch,filters,onClose,recentSearchesStore,terms]);const renderItem=React.useCallback(item=>{return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(SearchResultItem,{documentId:getPublishedId(item.hit._id)||"",documentType:item.hit._type,onClick:handleSearchResultClick,paddingY:1}),debug&&/* @__PURE__ */jsxRuntime.jsx(DebugOverlay,{data:item})]});},[debug,handleSearchResultClick]);return/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:fullscreen||!!(hasError||hasSearchResults||hasNoSearchResults),flex:1,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",height:"fill",children:[hasSearchResults&&/* @__PURE__ */jsxRuntime.jsx(SortMenu,{}),/* @__PURE__ */jsxRuntime.jsx(SearchResultsInnerFlex,{$loading:result.loading,"aria-busy":result.loading,flex:1,children:hasError?/* @__PURE__ */jsxRuntime.jsx(SearchError,{}):/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[hasSearchResults&&/* @__PURE__ */jsxRuntime.jsx(CommandList,{activeItemDataAttr:"data-hovered",ariaLabel:t("search.search-results-label"),fixedHeight:true,initialIndex:lastActiveIndex,inputElement,itemHeight:VIRTUAL_LIST_SEARCH_RESULT_ITEM_HEIGHT,items:result.hits,overscan:VIRTUAL_LIST_OVERSCAN,paddingX:2,paddingY:1,ref:setSearchCommandList,renderItem}),hasNoSearchResults&&/* @__PURE__ */jsxRuntime.jsx(NoResults,{})]})})]})})});}var __freeze$h=Object.freeze;var __defProp$h=Object.defineProperty;var __template$h=(cooked,raw)=>__freeze$h(__defProp$h(cooked,"raw",{value:__freeze$h(raw||cooked.slice())}));var _a$h,_b$c;const InnerCard=styled__default.default(ui.Card)(_a$h||(_a$h=__template$h(["\n flex-direction: column;\n overflow: hidden;\n overflow: clip;\n pointer-events: all;\n position: relative;\n"])));const SearchDialogBox=styled__default.default(ui.Box)(_b$c||(_b$c=__template$h(["\n height: 100%;\n left: 0;\n overflow: hidden;\n overflow: clip;\n pointer-events: none;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 1;\n"])));function SearchDialog(_ref548){let{onClose,onOpen,open}=_ref548;const[inputElement,setInputElement]=React.useState(null);const{scheme}=useColorScheme();const{t}=useTranslation();const{state:{filtersVisible,terms}}=useSearchState();const hasValidTerms=hasSearchableTerms({terms});return/* @__PURE__ */jsxRuntime.jsx(SearchWrapper,{hasValidTerms,onClose,onOpen,open,children:open&&/* @__PURE__ */jsxRuntime.jsx(ui.Portal,{children:/* @__PURE__ */jsxRuntime.jsx(FocusLock__default.default,{autoFocus:!supportsTouch,returnFocus:true,children:/* @__PURE__ */jsxRuntime.jsx(SearchDialogBox,{children:/* @__PURE__ */jsxRuntime.jsxs(InnerCard,{display:"flex",height:"fill",scheme,tone:"default",children:[/* @__PURE__ */jsxRuntime.jsx(SearchHeader,{ariaInputLabel:hasValidTerms?t("search.search-results-aria-label"):t("search.recent-searches-aria-label"),onClose,ref:setInputElement}),filtersVisible&&/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:true,flex:"none",children:/* @__PURE__ */jsxRuntime.jsx(Filters,{})}),hasValidTerms?/* @__PURE__ */jsxRuntime.jsx(SearchResults,{inputElement}):/* @__PURE__ */jsxRuntime.jsx(RecentSearches,{inputElement})]})})})})});}const RECENT_SEARCHES_KEY="search::recent";const MAX_RECENT_SEARCHES=5;const RECENT_SEARCH_VERSION=2;function createRecentSearchesStore(_ref549){let{dataset,fieldDefinitions,filterDefinitions,operatorDefinitions,projectId,schema,user,version=RECENT_SEARCH_VERSION}=_ref549;if(!dataset||!projectId||!supportsLocalStorage||!user){return void 0;}const lsKey="".concat(RECENT_SEARCHES_KEY,"__").concat(projectId,":").concat(dataset,":").concat(user.id);return{/**
431
431
  * Write a search term to Local Storage and return updated recent searches.
432
432
  */addSearch:(searchTerm,filters)=>{const storedFilters=(filters||[]).map(filter=>({fieldId:filter.fieldId,filterName:filter.filterName,operatorType:filter.operatorType,value:filter.value}));const validStoredFilters=storedFilters.filter(filter=>validateFilter({fieldDefinitions,filter,filterDefinitions,operatorDefinitions}));const newSearchItem={created:(/* @__PURE__ */new Date()).toISOString(),filters:validStoredFilters,terms:{query:searchTerm.query.trim(),typeNames:searchTerm.types.map(s=>s.name)}};const comparator=JSON.stringify(omit__default$1.default(newSearchItem,"created"));const newRecent={version,recentSearches:[newSearchItem,...getRecentStoredSearch(lsKey,version).recentSearches.filter(r=>{return JSON.stringify(omit__default$1.default(r,"created"))!==comparator;})].slice(0,MAX_RECENT_SEARCHES)};window.localStorage.setItem(lsKey,JSON.stringify(newRecent));return getRecentSearchTerms({fieldDefinitions,filterDefinitions,lsKey,operatorDefinitions,schema,version});},/**
433
433
  * Fetch all recent searches from Local Storage.
@@ -436,20 +436,20 @@ getFilterKey(menuItem.filter)].join("-");case"header":return"".concat(menuItem.t
436
436
  * Remove all search terms from Local Storage and return updated recent searches.
437
437
  */removeSearch:()=>{const searchTerms=getRecentStoredSearch(lsKey,version);const newRecent={...searchTerms,recentSearches:[]};window.localStorage.setItem(lsKey,JSON.stringify(newRecent));return getRecentSearchTerms({fieldDefinitions,filterDefinitions,lsKey,operatorDefinitions,schema,version});},/**
438
438
  * Remove a search term from Local Storage and return updated recent searches.
439
- */removeSearchAtIndex:index=>{const searchTerms=getRecentStoredSearch(lsKey,version);if(index<0||index>searchTerms.recentSearches.length){return getRecentSearchTerms({fieldDefinitions,filterDefinitions,lsKey,operatorDefinitions,schema,version});}const newRecent={...searchTerms,recentSearches:[...searchTerms.recentSearches.slice(0,index),...searchTerms.recentSearches.slice(index+1)]};window.localStorage.setItem(lsKey,JSON.stringify(newRecent));return getRecentSearchTerms({fieldDefinitions,filterDefinitions,lsKey,operatorDefinitions,schema,version});}};}function getRecentStoredSearch(lsKey,version){const recentString=supportsLocalStorage?window.localStorage.getItem(lsKey):void 0;return recentString?JSON.parse(recentString):{version,recentSearches:[]};}function getRecentSearchTerms(_ref549){let{lsKey,schema,fieldDefinitions,filterDefinitions,operatorDefinitions,version}=_ref549;const storedSearchTerms=verifySearchVersionNumber({lsKey,storedSearch:getRecentStoredSearch(lsKey,version)});return sanitizeStoredSearch({studioSchema:schema,storedSearch:storedSearchTerms,lsKey,filterDefinitions,fieldDefinitions,operatorDefinitions,version}).recentSearches.filter(r=>!!r.terms).map((r,index)=>({__recent:{index,timestamp:new Date(r.created).getTime()},filters:r.filters,query:r.terms.query,types:r.terms.typeNames.map(typeName=>schema.get(typeName)).filter(s=>!!(s&&s.jsonType==="object"))}));}function verifySearchVersionNumber(_ref550){let{lsKey,storedSearch}=_ref550;if(storedSearch.version!==RECENT_SEARCH_VERSION){const newStoredSearch={version:RECENT_SEARCH_VERSION,recentSearches:[]};window.localStorage.setItem(lsKey,JSON.stringify(newStoredSearch));return newStoredSearch;}return storedSearch;}function sanitizeStoredSearch(_ref551){let{fieldDefinitions,filterDefinitions,lsKey,operatorDefinitions,storedSearch,studioSchema,version}=_ref551;const searchableTypeNames=getSearchableOmnisearchTypes(studioSchema).map(schema=>schema.name);const filteredSearch=storedSearch.recentSearches.filter(recentSearch=>{return(// Has valid searchable types (not hidden by omnisearch)
440
- recentSearch.terms.typeNames.every(typeName=>searchableTypeNames.includes(typeName))&&recentSearch.filters.every(filter=>validateFilter({fieldDefinitions,filter,filterDefinitions,operatorDefinitions})));});const newStoredSearch={version:RECENT_SEARCH_VERSION,recentSearches:filteredSearch};if(newStoredSearch.recentSearches.length<storedSearch.recentSearches.length){window.localStorage.setItem(lsKey,JSON.stringify(newStoredSearch));}return getRecentStoredSearch(lsKey,version);}const MAX_OBJECT_TRAVERSAL_DEPTH=3;function createFieldDefinitions(schema,filterDefinitions){var _a;const searchableDocumentTypeNames=getSearchableOmnisearchTypes(schema).map(s=>s.name);const{documentTypes,objectTypes}=(((_a=schema._original)==null?void 0:_a.types)||[]).filter(t=>isDocumentObjectDefinition(t)?searchableDocumentTypeNames.includes(t.name):true).filter(schemaType=>schemaType.name!=="slug").filter(schemaType=>!schemaType.name.startsWith("sanity.")).reduce((acc,schemaType)=>{if(isDocumentObjectDefinition(schemaType)){acc.documentTypes[schemaType.name]=schemaType;}if(isObjectDefinition(schemaType)){acc.objectTypes[schemaType.name]=schemaType;}return acc;},{documentTypes:{},objectTypes:{}})||{documentTypes:{},objectTypes:{}};const supportedFieldTypes=getSupportedFieldTypes(filterDefinitions);return getDocumentFieldDefinitions(supportedFieldTypes,documentTypes,objectTypes);}function createFieldDefinitionDictionary(fieldDefinitions){return fieldDefinitions.reduce((acc,val)=>{acc[val.id]=val;return acc;},{});}function generateFieldId(field){return[field.type,field.fieldPath,field.filterName,field.documentTypes.join(",")].join("-");}function getDocumentFieldDefinitions(supportedFieldTypes,documentTypes,objectTypes){function addFieldDefinitionRecursive(_ref552){let{acc,defType,depth=0,documentType,prevFieldPath,prevTitlePath}=_ref552;var _a;const continueRecursion=depth<=MAX_OBJECT_TRAVERSAL_DEPTH;const isInternalField=defType.name.startsWith("_");const title=(defType==null?void 0:defType.title)?sanitizeFieldValue(defType.title):startCase__default$1.default(defType.name);const fieldPath=prevFieldPath?"".concat(prevFieldPath,".").concat(defType.name):defType.name;const titlePath=prevTitlePath?[...prevTitlePath,title]:[title];if(!continueRecursion)return;const existingObject=objectTypes[defType.type];const existingDocument=documentTypes[defType.type];const inlineObject=isObjectDefinition(defType)?defType:null;const targetObject=existingDocument||existingObject||inlineObject;if(targetObject){(_a=targetObject==null?void 0:targetObject.fields)==null?void 0:_a.forEach(field=>addFieldDefinitionRecursive({acc,defType:field,depth:depth+1,documentType,prevFieldPath:fieldPath,prevTitlePath:titlePath}));return;}if(!supportedFieldTypes.includes(defType.type))return;acc.push({documentTypes:documentType&&!isInternalField?[documentType]:[],fieldPath,filterName:resolveFilterName(defType),id:"",name:defType.name,titlePath,title,type:defType.type});}const fieldDefinitions=Object.values(documentTypes).reduce((acc,documentType)=>{const documentFields=documentType.fields.reduce((a,field)=>{addFieldDefinitionRecursive({acc:a,defType:field,documentType:documentType.name});return a;},[]);acc.push(...documentFields);return acc;},[]).reduce((acc,val)=>{const prevIndex=acc.findIndex(v=>v.fieldPath===val.fieldPath&&v.title===val.title&&v.type===val.type);if(prevIndex>-1){acc[prevIndex]={...acc[prevIndex],documentTypes:[...acc[prevIndex].documentTypes,...val.documentTypes]};}else{acc.push(val);}return acc;},[]).map(addFieldDefinitionId).sort(sortFieldDefinitions);return fieldDefinitions;}function addFieldDefinitionId(field){return{...field,id:generateFieldId(field)};}function isArrayOfPrimitives(schemaType){var _a;if(isArrayDefinition(schemaType)){return schemaType.of.every(item=>["boolean","number","string"].includes(item.type))&&(((_a=schemaType.options)==null?void 0:_a.list)?schemaType.options.list.length>0:false);}return false;}function isArrayDefinition(schemaType){return schemaType.type==="array";}function isDocumentObjectDefinition(schemaType){return schemaType.type==="document";}function isObjectDefinition(schemaType){return schemaType.type==="object";}function isStringDefinition(schemaType){return schemaType.type==="string";}function isStringListDefinition(schemaType){var _a;if(isStringDefinition(schemaType)){return((_a=schemaType.options)==null?void 0:_a.list)?schemaType.options.list.length>0:false;}return false;}function resolveFilterName(schemaType){if(isStringListDefinition(schemaType)){return"stringList";}if(isArrayDefinition(schemaType)){if(schemaType.of.some(item=>item.type==="reference")){return"arrayReferences";}if(schemaType.of.find(item=>item.type==="block")){return"portableText";}if(isArrayOfPrimitives(schemaType)){return"arrayList";}}return schemaType.type;}function sortFieldDefinitions(a,b){const aTitlePath=a.titlePath.slice(0,-1).join("/");const bTitlePath=b.titlePath.slice(0,-1).join("/");return a.title.localeCompare(b.title)||aTitlePath.localeCompare(bTitlePath)||a.fieldPath.localeCompare(b.fieldPath);}function isRecentSearchTerms(terms){return typeof terms.__recent!=="undefined";}const rootName="core:studio:navbar:search:";debug__default.default(rootName);function debugWithName(name){const namespace="".concat(rootName).concat(name);if(debug__default.default&&debug__default.default.enabled(namespace)){return debug__default.default(namespace);}return debug__default.default(rootName);}function isDebugMode(){return typeof window==="undefined"?false:window.location.hash.slice(1).split(";").includes(DEBUG_FRAGMENT);}function initialSearchState(_ref553){let{currentUser,fullscreen,recentSearches=[],definitions}=_ref553;return{currentUser,debug:isDebugMode(),documentTypesNarrowed:[],filters:[],filtersVisible:true,fullscreen,lastActiveIndex:-1,ordering:ORDERINGS.relevance,pageIndex:0,recentSearches,result:{error:null,hasMore:null,hits:[],loaded:false,loading:false},terms:{query:"",types:[]},definitions};}const debug=debugWithName("reducer");function searchReducer(state,action){let prefix="\u{1F50D}";if(action.type.startsWith("SEARCH_REQUEST")){prefix="\u{1F6A8}";}if(action.type.startsWith("RECENT_SEARCHES")){prefix="\u{1F4BE}";}debug(prefix,action);switch(action.type){case"FILTERS_VISIBLE_SET":return{...state,filtersVisible:action.visible};case"LAST_ACTIVE_INDEX_SET":return{...state,lastActiveIndex:action.index};case"ORDERING_RESET":return{...state,ordering:ORDERINGS.relevance,terms:stripRecent(state.terms)};case"ORDERING_SET":return{...state,ordering:action.ordering,terms:stripRecent(state.terms)};case"PAGE_INCREMENT":return{...state,pageIndex:state.pageIndex+1,terms:stripRecent(state.terms)};case"RECENT_SEARCHES_SET":return{...state,recentSearches:action.recentSearches};case"SEARCH_CLEAR":return{...state,pageIndex:0,result:{...state.result,hasMore:null,hits:[]}};case"SEARCH_REQUEST_COMPLETE":return{...state,result:{...state.result,error:null,hasMore:action.hits.length>0,hits:state.pageIndex>0?[...state.result.hits,...action.hits]:action.hits,loaded:true,loading:false}};case"SEARCH_REQUEST_ERROR":return{...state,result:{...state.result,error:action.error,loaded:false,loading:false}};case"SEARCH_REQUEST_START":return{...state,result:{...state.result,loaded:false,loading:true}};case"TERMS_FILTERS_ADD":{const newFilter={...action.filter,value:getOperatorInitialValue(state.definitions.operators,action.filter.operatorType)};const filters=[...state.filters,newFilter];return{...state,documentTypesNarrowed:narrowDocumentTypes({fieldDefinitions:state.definitions.fields,filters,types:state.terms.types}),filters,lastAddedFilter:newFilter,terms:{...state.terms,filter:generateFilterQuery({fieldDefinitions:state.definitions.fields,filterDefinitions:state.definitions.filters,filters,operatorDefinitions:state.definitions.operators})}};}case"TERMS_FILTERS_CLEAR":{const filters=[];return{...state,documentTypesNarrowed:narrowDocumentTypes({fieldDefinitions:state.definitions.fields,filters,types:state.terms.types}),filters,terms:{...state.terms,filter:generateFilterQuery({fieldDefinitions:state.definitions.fields,filterDefinitions:state.definitions.filters,filters,operatorDefinitions:state.definitions.operators})}};}case"TERMS_FILTERS_REMOVE":{const index=state.filters.findIndex(filter=>getFilterKey(filter)===action.filterKey);const filters=[...state.filters.slice(0,index),//
439
+ */removeSearchAtIndex:index=>{const searchTerms=getRecentStoredSearch(lsKey,version);if(index<0||index>searchTerms.recentSearches.length){return getRecentSearchTerms({fieldDefinitions,filterDefinitions,lsKey,operatorDefinitions,schema,version});}const newRecent={...searchTerms,recentSearches:[...searchTerms.recentSearches.slice(0,index),...searchTerms.recentSearches.slice(index+1)]};window.localStorage.setItem(lsKey,JSON.stringify(newRecent));return getRecentSearchTerms({fieldDefinitions,filterDefinitions,lsKey,operatorDefinitions,schema,version});}};}function getRecentStoredSearch(lsKey,version){const recentString=supportsLocalStorage?window.localStorage.getItem(lsKey):void 0;return recentString?JSON.parse(recentString):{version,recentSearches:[]};}function getRecentSearchTerms(_ref550){let{lsKey,schema,fieldDefinitions,filterDefinitions,operatorDefinitions,version}=_ref550;const storedSearchTerms=verifySearchVersionNumber({lsKey,storedSearch:getRecentStoredSearch(lsKey,version)});return sanitizeStoredSearch({studioSchema:schema,storedSearch:storedSearchTerms,lsKey,filterDefinitions,fieldDefinitions,operatorDefinitions,version}).recentSearches.filter(r=>!!r.terms).map((r,index)=>({__recent:{index,timestamp:new Date(r.created).getTime()},filters:r.filters,query:r.terms.query,types:r.terms.typeNames.map(typeName=>schema.get(typeName)).filter(s=>!!(s&&s.jsonType==="object"))}));}function verifySearchVersionNumber(_ref551){let{lsKey,storedSearch}=_ref551;if(storedSearch.version!==RECENT_SEARCH_VERSION){const newStoredSearch={version:RECENT_SEARCH_VERSION,recentSearches:[]};window.localStorage.setItem(lsKey,JSON.stringify(newStoredSearch));return newStoredSearch;}return storedSearch;}function sanitizeStoredSearch(_ref552){let{fieldDefinitions,filterDefinitions,lsKey,operatorDefinitions,storedSearch,studioSchema,version}=_ref552;const searchableTypeNames=getSearchableOmnisearchTypes(studioSchema).map(schema=>schema.name);const filteredSearch=storedSearch.recentSearches.filter(recentSearch=>{return(// Has valid searchable types (not hidden by omnisearch)
440
+ recentSearch.terms.typeNames.every(typeName=>searchableTypeNames.includes(typeName))&&recentSearch.filters.every(filter=>validateFilter({fieldDefinitions,filter,filterDefinitions,operatorDefinitions})));});const newStoredSearch={version:RECENT_SEARCH_VERSION,recentSearches:filteredSearch};if(newStoredSearch.recentSearches.length<storedSearch.recentSearches.length){window.localStorage.setItem(lsKey,JSON.stringify(newStoredSearch));}return getRecentStoredSearch(lsKey,version);}const MAX_OBJECT_TRAVERSAL_DEPTH=3;function createFieldDefinitions(schema,filterDefinitions){var _a;const searchableDocumentTypeNames=getSearchableOmnisearchTypes(schema).map(s=>s.name);const{documentTypes,objectTypes}=(((_a=schema._original)==null?void 0:_a.types)||[]).filter(t=>isDocumentObjectDefinition(t)?searchableDocumentTypeNames.includes(t.name):true).filter(schemaType=>schemaType.name!=="slug").filter(schemaType=>!schemaType.name.startsWith("sanity.")).reduce((acc,schemaType)=>{if(isDocumentObjectDefinition(schemaType)){acc.documentTypes[schemaType.name]=schemaType;}if(isObjectDefinition(schemaType)){acc.objectTypes[schemaType.name]=schemaType;}return acc;},{documentTypes:{},objectTypes:{}})||{documentTypes:{},objectTypes:{}};const supportedFieldTypes=getSupportedFieldTypes(filterDefinitions);return getDocumentFieldDefinitions(supportedFieldTypes,documentTypes,objectTypes);}function createFieldDefinitionDictionary(fieldDefinitions){return fieldDefinitions.reduce((acc,val)=>{acc[val.id]=val;return acc;},{});}function generateFieldId(field){return[field.type,field.fieldPath,field.filterName,field.documentTypes.join(",")].join("-");}function getDocumentFieldDefinitions(supportedFieldTypes,documentTypes,objectTypes){function addFieldDefinitionRecursive(_ref553){let{acc,defType,depth=0,documentType,prevFieldPath,prevTitlePath}=_ref553;var _a;const continueRecursion=depth<=MAX_OBJECT_TRAVERSAL_DEPTH;const isInternalField=defType.name.startsWith("_");const title=(defType==null?void 0:defType.title)?sanitizeFieldValue(defType.title):startCase__default$1.default(defType.name);const fieldPath=prevFieldPath?"".concat(prevFieldPath,".").concat(defType.name):defType.name;const titlePath=prevTitlePath?[...prevTitlePath,title]:[title];if(!continueRecursion)return;const existingObject=objectTypes[defType.type];const existingDocument=documentTypes[defType.type];const inlineObject=isObjectDefinition(defType)?defType:null;const targetObject=existingDocument||existingObject||inlineObject;if(targetObject){(_a=targetObject==null?void 0:targetObject.fields)==null?void 0:_a.forEach(field=>addFieldDefinitionRecursive({acc,defType:field,depth:depth+1,documentType,prevFieldPath:fieldPath,prevTitlePath:titlePath}));return;}if(!supportedFieldTypes.includes(defType.type))return;acc.push({documentTypes:documentType&&!isInternalField?[documentType]:[],fieldPath,filterName:resolveFilterName(defType),id:"",name:defType.name,titlePath,title,type:defType.type});}const fieldDefinitions=Object.values(documentTypes).reduce((acc,documentType)=>{const documentFields=documentType.fields.reduce((a,field)=>{addFieldDefinitionRecursive({acc:a,defType:field,documentType:documentType.name});return a;},[]);acc.push(...documentFields);return acc;},[]).reduce((acc,val)=>{const prevIndex=acc.findIndex(v=>v.fieldPath===val.fieldPath&&v.title===val.title&&v.type===val.type);if(prevIndex>-1){acc[prevIndex]={...acc[prevIndex],documentTypes:[...acc[prevIndex].documentTypes,...val.documentTypes]};}else{acc.push(val);}return acc;},[]).map(addFieldDefinitionId).sort(sortFieldDefinitions);return fieldDefinitions;}function addFieldDefinitionId(field){return{...field,id:generateFieldId(field)};}function isArrayOfPrimitives(schemaType){var _a;if(isArrayDefinition(schemaType)){return schemaType.of.every(item=>["boolean","number","string"].includes(item.type))&&(((_a=schemaType.options)==null?void 0:_a.list)?schemaType.options.list.length>0:false);}return false;}function isArrayDefinition(schemaType){return schemaType.type==="array";}function isDocumentObjectDefinition(schemaType){return schemaType.type==="document";}function isObjectDefinition(schemaType){return schemaType.type==="object";}function isStringDefinition(schemaType){return schemaType.type==="string";}function isStringListDefinition(schemaType){var _a;if(isStringDefinition(schemaType)){return((_a=schemaType.options)==null?void 0:_a.list)?schemaType.options.list.length>0:false;}return false;}function resolveFilterName(schemaType){if(isStringListDefinition(schemaType)){return"stringList";}if(isArrayDefinition(schemaType)){if(schemaType.of.some(item=>item.type==="reference")){return"arrayReferences";}if(schemaType.of.find(item=>item.type==="block")){return"portableText";}if(isArrayOfPrimitives(schemaType)){return"arrayList";}}return schemaType.type;}function sortFieldDefinitions(a,b){const aTitlePath=a.titlePath.slice(0,-1).join("/");const bTitlePath=b.titlePath.slice(0,-1).join("/");return a.title.localeCompare(b.title)||aTitlePath.localeCompare(bTitlePath)||a.fieldPath.localeCompare(b.fieldPath);}function isRecentSearchTerms(terms){return typeof terms.__recent!=="undefined";}const rootName="core:studio:navbar:search:";debug__default.default(rootName);function debugWithName(name){const namespace="".concat(rootName).concat(name);if(debug__default.default&&debug__default.default.enabled(namespace)){return debug__default.default(namespace);}return debug__default.default(rootName);}function isDebugMode(){return typeof window==="undefined"?false:window.location.hash.slice(1).split(";").includes(DEBUG_FRAGMENT);}function initialSearchState(_ref554){let{currentUser,fullscreen,recentSearches=[],definitions}=_ref554;return{currentUser,debug:isDebugMode(),documentTypesNarrowed:[],filters:[],filtersVisible:true,fullscreen,lastActiveIndex:-1,ordering:ORDERINGS.relevance,pageIndex:0,recentSearches,result:{error:null,hasMore:null,hits:[],loaded:false,loading:false},terms:{query:"",types:[]},definitions};}const debug=debugWithName("reducer");function searchReducer(state,action){let prefix="\u{1F50D}";if(action.type.startsWith("SEARCH_REQUEST")){prefix="\u{1F6A8}";}if(action.type.startsWith("RECENT_SEARCHES")){prefix="\u{1F4BE}";}debug(prefix,action);switch(action.type){case"FILTERS_VISIBLE_SET":return{...state,filtersVisible:action.visible};case"LAST_ACTIVE_INDEX_SET":return{...state,lastActiveIndex:action.index};case"ORDERING_RESET":return{...state,ordering:ORDERINGS.relevance,terms:stripRecent(state.terms)};case"ORDERING_SET":return{...state,ordering:action.ordering,terms:stripRecent(state.terms)};case"PAGE_INCREMENT":return{...state,pageIndex:state.pageIndex+1,terms:stripRecent(state.terms)};case"RECENT_SEARCHES_SET":return{...state,recentSearches:action.recentSearches};case"SEARCH_CLEAR":return{...state,pageIndex:0,result:{...state.result,hasMore:null,hits:[]}};case"SEARCH_REQUEST_COMPLETE":return{...state,result:{...state.result,error:null,hasMore:action.hits.length>0,hits:state.pageIndex>0?[...state.result.hits,...action.hits]:action.hits,loaded:true,loading:false}};case"SEARCH_REQUEST_ERROR":return{...state,result:{...state.result,error:action.error,loaded:false,loading:false}};case"SEARCH_REQUEST_START":return{...state,result:{...state.result,loaded:false,loading:true}};case"TERMS_FILTERS_ADD":{const newFilter={...action.filter,value:getOperatorInitialValue(state.definitions.operators,action.filter.operatorType)};const filters=[...state.filters,newFilter];return{...state,documentTypesNarrowed:narrowDocumentTypes({fieldDefinitions:state.definitions.fields,filters,types:state.terms.types}),filters,lastAddedFilter:newFilter,terms:{...state.terms,filter:generateFilterQuery({fieldDefinitions:state.definitions.fields,filterDefinitions:state.definitions.filters,filters,operatorDefinitions:state.definitions.operators})}};}case"TERMS_FILTERS_CLEAR":{const filters=[];return{...state,documentTypesNarrowed:narrowDocumentTypes({fieldDefinitions:state.definitions.fields,filters,types:state.terms.types}),filters,terms:{...state.terms,filter:generateFilterQuery({fieldDefinitions:state.definitions.fields,filterDefinitions:state.definitions.filters,filters,operatorDefinitions:state.definitions.operators})}};}case"TERMS_FILTERS_REMOVE":{const index=state.filters.findIndex(filter=>getFilterKey(filter)===action.filterKey);const filters=[...state.filters.slice(0,index),//
441
441
  ...state.filters.slice(index+1)];return{...state,documentTypesNarrowed:narrowDocumentTypes({fieldDefinitions:state.definitions.fields,filters,types:state.terms.types}),filters,terms:{...state.terms,filter:generateFilterQuery({fieldDefinitions:state.definitions.fields,filterDefinitions:state.definitions.filters,filters,operatorDefinitions:state.definitions.operators})}};}case"TERMS_FILTERS_SET_OPERATOR":{const matchedFilter=state.filters.find(filter=>getFilterKey(filter)===action.filterKey);const currentOperator=getOperatorDefinition(state.definitions.operators,matchedFilter==null?void 0:matchedFilter.operatorType);const nextOperator=getOperatorDefinition(state.definitions.operators,action.operatorType);const nextInitialValue=nextOperator==null?void 0:nextOperator.initialValue;const inputComponentChanged=(currentOperator==null?void 0:currentOperator.inputComponent)!=(nextOperator==null?void 0:nextOperator.inputComponent);const filters=state.filters.map(filter=>{if(getFilterKey(filter)===action.filterKey){return{...filter,operatorType:action.operatorType,...(inputComponentChanged?{value:nextInitialValue}:{})};}return filter;});return{...state,filters,terms:{...state.terms,filter:generateFilterQuery({fieldDefinitions:state.definitions.fields,filterDefinitions:state.definitions.filters,filters,operatorDefinitions:state.definitions.operators})}};}case"TERMS_FILTERS_SET_VALUE":{const filters=state.filters.map(filter=>{if(getFilterKey(filter)===action.filterKey){return{...filter,value:action.value};}return filter;});return{...state,filters,terms:{...state.terms,filter:generateFilterQuery({fieldDefinitions:state.definitions.fields,filterDefinitions:state.definitions.filters,filters,operatorDefinitions:state.definitions.operators})}};}case"TERMS_QUERY_SET":return{...state,pageIndex:0,result:{...state.result,loaded:false},terms:stripRecent({...state.terms,query:action.query})};case"TERMS_SET":{const filters=action.filters||[];const types=[...(state.terms.types||[]),//
442
442
  ...action.terms.types].sort(sortTypes);return{...state,documentTypesNarrowed:narrowDocumentTypes({fieldDefinitions:state.definitions.fields,filters,types}),filters,lastAddedFilter:null,pageIndex:0,result:{...state.result,loaded:false},terms:{...action.terms,filter:generateFilterQuery({fieldDefinitions:state.definitions.fields,filterDefinitions:state.definitions.filters,filters,operatorDefinitions:state.definitions.operators})}};}case"TERMS_TYPE_ADD":{const types=[...(state.terms.types||[]),//
443
- action.schemaType].sort(sortTypes);const documentTypesNarrowed=narrowDocumentTypes({fieldDefinitions:state.definitions.fields,filters:[],types});const filters=state.filters.filter(f=>{const fieldDefinition=getFieldFromFilter(state.definitions.fields,f);if(fieldDefinition){if(fieldDefinition.documentTypes.length===0){return true;}return documentTypesNarrowed.every(type=>fieldDefinition.documentTypes.findIndex(t=>t===type)>-1);}return true;});return{...state,documentTypesNarrowed,filters,pageIndex:0,result:{...state.result,loaded:false},terms:stripRecent({...state.terms,filter:generateFilterQuery({fieldDefinitions:state.definitions.fields,filterDefinitions:state.definitions.filters,operatorDefinitions:state.definitions.operators,filters}),types})};}case"TERMS_TYPE_REMOVE":{const types=(state.terms.types||[]).filter(s=>s!==action.schemaType);return{...state,documentTypesNarrowed:narrowDocumentTypes({fieldDefinitions:state.definitions.fields,filters:state.filters,types}),pageIndex:0,result:{...state.result,loaded:false},terms:stripRecent({...state.terms,types})};}case"TERMS_TYPES_CLEAR":{const types=[];return{...state,documentTypesNarrowed:narrowDocumentTypes({fieldDefinitions:state.definitions.fields,filters:state.filters,types}),pageIndex:0,result:{...state.result,loaded:false},terms:stripRecent({...state.terms,types:[]})};}default:return state;}}function stripRecent(terms){if(isRecentSearchTerms(terms)){const{__recent,...rest}=terms;return rest;}return terms;}function SearchProvider(_ref554){let{children,fullscreen}=_ref554;const onCloseRef=React.useRef(null);const[searchCommandList,setSearchCommandList]=React.useState(null);const client=useClient(DEFAULT_STUDIO_CLIENT_OPTIONS);const schema=useSchema();const currentUser=useCurrentUser();const{search:{operators,filters}}=useSource();const{dataset,projectId}=client.config();const{fieldDefinitions,filterDefinitions,operatorDefinitions}=React.useMemo(()=>{return{fieldDefinitions:createFieldDefinitionDictionary(createFieldDefinitions(schema,filters)),filterDefinitions:createFilterDefinitionDictionary(filters),operatorDefinitions:createOperatorDefinitionDictionary(operators)};},[filters,operators,schema]);const recentSearchesStore=React.useMemo(()=>createRecentSearchesStore({dataset,fieldDefinitions,filterDefinitions,operatorDefinitions,projectId,schema,user:currentUser,version:RECENT_SEARCH_VERSION}),[currentUser,dataset,fieldDefinitions,filterDefinitions,operatorDefinitions,projectId,schema]);const recentSearches=React.useMemo(()=>recentSearchesStore==null?void 0:recentSearchesStore.getRecentSearches(),[recentSearchesStore]);const initialState=React.useMemo(()=>initialSearchState({currentUser,fullscreen,recentSearches,definitions:{fields:fieldDefinitions,operators:operatorDefinitions,filters:filterDefinitions}}),[currentUser,fieldDefinitions,filterDefinitions,fullscreen,operatorDefinitions,recentSearches]);const[state,dispatch]=React.useReducer(searchReducer,initialState);const{documentTypesNarrowed,filters:currentFilters,ordering,pageIndex,result,terms}=state;const isMountedRef=React.useRef(false);const previousOrderingRef=React.useRef(initialState.ordering);const previousPageIndexRef=React.useRef(initialState.pageIndex);const previousTermsRef=React.useRef(initialState.terms);const{handleSearch,searchState}=useSearch({initialState:{...result,terms},onComplete:hits=>dispatch({hits,type:"SEARCH_REQUEST_COMPLETE"}),onError:error=>dispatch({error,type:"SEARCH_REQUEST_ERROR"}),onStart:()=>dispatch({type:"SEARCH_REQUEST_START"}),schema});const hasValidTerms=hasSearchableTerms({terms});const documentTypes=documentTypesNarrowed.map(documentType=>schema.get(documentType));const completeFilters=currentFilters.filter(filter=>validateFilter({fieldDefinitions,filter,filterDefinitions,operatorDefinitions}));const handleSetOnClose=React.useCallback(onClose=>{onCloseRef.current=onClose;},[]);React.useEffect(()=>{const orderingChanged=!isEqual__default$1.default(ordering,previousOrderingRef.current);const pageIndexChanged=pageIndex!==previousPageIndexRef.current;const termsChanged=!isEqual__default$1.default(terms,previousTermsRef.current);if(orderingChanged||pageIndexChanged||termsChanged){const sortLabel=(ordering==null?void 0:ordering.customMeasurementLabel)||"".concat(ordering.sort.field," ").concat(ordering.sort.direction);handleSearch({options:{// Comments prepended to each query for future measurement
443
+ action.schemaType].sort(sortTypes);const documentTypesNarrowed=narrowDocumentTypes({fieldDefinitions:state.definitions.fields,filters:[],types});const filters=state.filters.filter(f=>{const fieldDefinition=getFieldFromFilter(state.definitions.fields,f);if(fieldDefinition){if(fieldDefinition.documentTypes.length===0){return true;}return documentTypesNarrowed.every(type=>fieldDefinition.documentTypes.findIndex(t=>t===type)>-1);}return true;});return{...state,documentTypesNarrowed,filters,pageIndex:0,result:{...state.result,loaded:false},terms:stripRecent({...state.terms,filter:generateFilterQuery({fieldDefinitions:state.definitions.fields,filterDefinitions:state.definitions.filters,operatorDefinitions:state.definitions.operators,filters}),types})};}case"TERMS_TYPE_REMOVE":{const types=(state.terms.types||[]).filter(s=>s!==action.schemaType);return{...state,documentTypesNarrowed:narrowDocumentTypes({fieldDefinitions:state.definitions.fields,filters:state.filters,types}),pageIndex:0,result:{...state.result,loaded:false},terms:stripRecent({...state.terms,types})};}case"TERMS_TYPES_CLEAR":{const types=[];return{...state,documentTypesNarrowed:narrowDocumentTypes({fieldDefinitions:state.definitions.fields,filters:state.filters,types}),pageIndex:0,result:{...state.result,loaded:false},terms:stripRecent({...state.terms,types:[]})};}default:return state;}}function stripRecent(terms){if(isRecentSearchTerms(terms)){const{__recent,...rest}=terms;return rest;}return terms;}function SearchProvider(_ref555){let{children,fullscreen}=_ref555;const onCloseRef=React.useRef(null);const[searchCommandList,setSearchCommandList]=React.useState(null);const client=useClient(DEFAULT_STUDIO_CLIENT_OPTIONS);const schema=useSchema();const currentUser=useCurrentUser();const{search:{operators,filters}}=useSource();const{dataset,projectId}=client.config();const{fieldDefinitions,filterDefinitions,operatorDefinitions}=React.useMemo(()=>{return{fieldDefinitions:createFieldDefinitionDictionary(createFieldDefinitions(schema,filters)),filterDefinitions:createFilterDefinitionDictionary(filters),operatorDefinitions:createOperatorDefinitionDictionary(operators)};},[filters,operators,schema]);const recentSearchesStore=React.useMemo(()=>createRecentSearchesStore({dataset,fieldDefinitions,filterDefinitions,operatorDefinitions,projectId,schema,user:currentUser,version:RECENT_SEARCH_VERSION}),[currentUser,dataset,fieldDefinitions,filterDefinitions,operatorDefinitions,projectId,schema]);const recentSearches=React.useMemo(()=>recentSearchesStore==null?void 0:recentSearchesStore.getRecentSearches(),[recentSearchesStore]);const initialState=React.useMemo(()=>initialSearchState({currentUser,fullscreen,recentSearches,definitions:{fields:fieldDefinitions,operators:operatorDefinitions,filters:filterDefinitions}}),[currentUser,fieldDefinitions,filterDefinitions,fullscreen,operatorDefinitions,recentSearches]);const[state,dispatch]=React.useReducer(searchReducer,initialState);const{documentTypesNarrowed,filters:currentFilters,ordering,pageIndex,result,terms}=state;const isMountedRef=React.useRef(false);const previousOrderingRef=React.useRef(initialState.ordering);const previousPageIndexRef=React.useRef(initialState.pageIndex);const previousTermsRef=React.useRef(initialState.terms);const{handleSearch,searchState}=useSearch({initialState:{...result,terms},onComplete:hits=>dispatch({hits,type:"SEARCH_REQUEST_COMPLETE"}),onError:error=>dispatch({error,type:"SEARCH_REQUEST_ERROR"}),onStart:()=>dispatch({type:"SEARCH_REQUEST_START"}),schema});const hasValidTerms=hasSearchableTerms({terms});const documentTypes=documentTypesNarrowed.map(documentType=>schema.get(documentType));const completeFilters=currentFilters.filter(filter=>validateFilter({fieldDefinitions,filter,filterDefinitions,operatorDefinitions}));const handleSetOnClose=React.useCallback(onClose=>{onCloseRef.current=onClose;},[]);React.useEffect(()=>{const orderingChanged=!isEqual__default$1.default(ordering,previousOrderingRef.current);const pageIndexChanged=pageIndex!==previousPageIndexRef.current;const termsChanged=!isEqual__default$1.default(terms,previousTermsRef.current);if(orderingChanged||pageIndexChanged||termsChanged){const sortLabel=(ordering==null?void 0:ordering.customMeasurementLabel)||"".concat(ordering.sort.field," ").concat(ordering.sort.direction);handleSearch({options:{// Comments prepended to each query for future measurement
444
444
  comments:[...(isRecentSearchTerms(terms)?["findability-recent-search:".concat(terms.__recent.index)]:[]),"findability-selected-types:".concat(terms.types.length),"findability-sort:".concat(sortLabel),"findability-source: global","findability-filter-count:".concat(completeFilters.length)],limit:SEARCH_LIMIT,offset:pageIndex*SEARCH_LIMIT,skipSortByScore:ordering.ignoreScore,sort:[ordering.sort]},terms:{...terms,// Narrow document type search
445
445
  ...(documentTypes?{types:documentTypes}:{})}});previousPageIndexRef.current=pageIndex;}previousOrderingRef.current=ordering;previousTermsRef.current=terms;},[completeFilters.length,currentFilters,documentTypes,handleSearch,hasValidTerms,ordering,pageIndex,searchState.terms,terms]);React.useEffect(()=>{if(!hasValidTerms&&(isMountedRef==null?void 0:isMountedRef.current)&&result.hits.length>0){dispatch({type:"SEARCH_CLEAR"});}isMountedRef.current=true;},[dispatch,hasValidTerms,result.hits,terms.query,terms.types]);return/* @__PURE__ */jsxRuntime.jsx(SearchContext.Provider,{value:{dispatch,onClose:onCloseRef==null?void 0:onCloseRef.current,recentSearchesStore,searchCommandList,setSearchCommandList,setOnClose:handleSetOnClose,state:{...state,fullscreen}},children});}function getHelpResources(client,locale){return client.withConfig({apiVersion:"1"}).observable.request({url:"/help",/*
446
446
  query and tag is used by analytics for tracking.
447
447
  Builds to: `{m: ['sanity@3.0.2']}' and serializes to: `?m=sanity@3.0.2`.
448
448
  Final format will be e.g. https://api.sanity.io/v1/help?tag=sanity.studio.module.version-check&m=sanity%403.0.2
449
- */query:{m:["sanity@".concat(SANITY_VERSION)],locale},tag:"module.version-check",json:true});}function useGetHelpResources(){const client=useClient({apiVersion:"1"});const locale=useCurrentLocale().id;const moduleStatus$=React.useMemo(()=>getHelpResources(client,locale),[client,locale]);return useLoadable(moduleStatus$);}function ResourcesMenuItems(_ref555){let{error,isLoading,value}=_ref555;var _a;const sections=(_a=value==null?void 0:value.resources)==null?void 0:_a.sectionArray;const latestStudioVersion=value==null?void 0:value.latestVersion;const{t}=useTranslation();if(isLoading){return/* @__PURE__ */jsxRuntime.jsx(LoadingBlock,{showText:true});}const fallbackLinks=/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a",text:t("help-resources.action.join-our-community"),href:"https://www.sanity.io/exchange/community",target:"_blank"}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a",text:t("help-resources.action.help-and-support"),href:"https://www.sanity.io/contact/support",target:"_blank"}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a",text:t("help-resources.action.contact-sales"),href:"https://www.sanity.io/contact/sales?ref=studio",target:"_blank"}),/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{})]});return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[(value===void 0||error)&&/* @__PURE__ */jsxRuntime.jsx("div",{children:fallbackLinks}),!error&&(sections==null?void 0:sections.map(subSection=>{if(!subSection)return null;return/* @__PURE__ */jsxRuntime.jsx(SubSection,{subSection},subSection._key);})),/* @__PURE__ */jsxRuntime.jsxs(ui.Box,{padding:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,weight:"medium",textOverflow:"ellipsis",children:t("help-resources.studio-version",{studioVersion:SANITY_VERSION})}),!error&&latestStudioVersion&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingTop:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,textOverflow:"ellipsis",children:t("help-resources.latest-sanity-version",{latestVersion:latestStudioVersion})})})]})]});}function SubSection(_ref556){let{subSection}=_ref556;var _a;return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[(_a=subSection==null?void 0:subSection.items)==null?void 0:_a.map(item=>{if(!item||!item.title)return null;switch(item._type){case"externalLink":if(!item.url)return null;return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a",tone:"default",text:item.title,href:item.url,target:"_blank"},item._key);case"internalAction":if(!item.type)return null;return item.type==="show-welcome-modal"&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{text:item.title},item._key);default:return null;}}),/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{})]});}var __freeze$g=Object.freeze;var __defProp$g=Object.defineProperty;var __template$g=(cooked,raw)=>__freeze$g(__defProp$g(cooked,"raw",{value:__freeze$g(raw||cooked.slice())}));var _a$g;const StyledMenu=styled__default.default(ui.Menu)(_a$g||(_a$g=__template$g(["\n max-width: 300px;\n min-width: 200px;\n"])));function ResourcesButton(){const{t}=useTranslation();const{value,error,isLoading}=useGetHelpResources();return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuButton,{button:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":t("help-resources.title"),icon:icons.HelpCircleIcon,mode:"bleed",tooltipProps:{content:t("help-resources.title")}}),id:"menu-button-resources",menu:/* @__PURE__ */jsxRuntime.jsx(StyledMenu,{children:/* @__PURE__ */jsxRuntime.jsx(ResourcesMenuItems,{error,isLoading,value})}),popover:{constrainSize:true}});}const FreeTrialProvider=_ref557=>{let{children}=_ref557;var _a;const[data,setData]=React.useState(null);const[showDialog,setShowDialog]=React.useState(false);const[showOnLoad,setShowOnLoad]=React.useState(false);const client=useClient({apiVersion:"2023-12-11"});React.useEffect(()=>{const request=client.observable.request({url:"/journey/trial?studioVersion=".concat(SANITY_VERSION)}).subscribe(response=>{setData(response);if(response==null?void 0:response.showOnLoad){setShowOnLoad(true);setShowDialog(true);}},()=>{});return()=>{request.unsubscribe();};},[client]);const toggleShowContent=React.useCallback(function(){let closeAndReOpen=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;var _a2;if(showOnLoad){setShowOnLoad(false);setShowDialog(closeAndReOpen);if((_a2=data==null?void 0:data.showOnLoad)==null?void 0:_a2.id){client.request({url:"/journey/trial/".concat(data==null?void 0:data.showOnLoad.id),method:"POST"});}}else{setShowDialog(p=>!p);}},[client,showOnLoad,(_a=data==null?void 0:data.showOnLoad)==null?void 0:_a.id]);return/* @__PURE__ */jsxRuntime.jsx(FreeTrialContext.Provider,{value:{data,showDialog,toggleShowContent,showOnLoad},children});};var __freeze$f=Object.freeze;var __defProp$f=Object.defineProperty;var __template$f=(cooked,raw)=>__freeze$f(__defProp$f(cooked,"raw",{value:__freeze$f(raw||cooked.slice())}));var _a$f,_b$b;const ANIMATION_TRANSITION={duration:0.4,type:"spring"};const CARD_VARIANTS={open:{opacity:1,scale:1,x:"-50%"},closed:{opacity:0,scale:0.99,x:"-50%"}};const OVERLAY_VARIANTS={open:{opacity:1},closed:{opacity:0}};const Y_POSITION=12;const MotionOverlay=styled__default.default(framerMotion.motion(ui.Card))(_a$f||(_a$f=__template$f(["\n background-color: var(--card-backdrop-color);\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n"])));const SearchMotionCard=styled__default.default(framerMotion.motion(ui.Card))(_b$b||(_b$b=__template$f(["\n display: flex !important;\n flex-direction: column;\n left: 50%;\n max-height: min(\n calc(100vh - ","vh - ","px),\n ","px\n );\n position: absolute;\n top: ","vh;\n width: min(calc(100vw - ","px), ","px);\n"])),Y_POSITION,POPOVER_INPUT_PADDING,POPOVER_MAX_HEIGHT,Y_POSITION,POPOVER_INPUT_PADDING*2,POPOVER_MAX_WIDTH);function SearchPopover(_ref558){let{disableFocusLock,onClose,onOpen,open}=_ref558;const[inputElement,setInputElement]=React.useState(null);const popoverElement=React.useRef(null);const{isTopLayer,zIndex}=ui.useLayer();const{t}=useTranslation();const{onClose:onSearchClose,state:{filtersVisible,terms}}=useSearchState();const hasValidTerms=hasSearchableTerms({terms});const handleClickOutside=React.useCallback(()=>{if(isTopLayer&&onSearchClose&&open){onSearchClose();}},[isTopLayer,onSearchClose,open]);ui.useClickOutside(handleClickOutside,[popoverElement.current]);return/* @__PURE__ */jsxRuntime.jsx(SearchWrapper,{hasValidTerms,onClose,onOpen,open,children:/* @__PURE__ */jsxRuntime.jsx(framerMotion.AnimatePresence,{children:open&&/* @__PURE__ */jsxRuntime.jsx(ui.Portal,{children:/* @__PURE__ */jsxRuntime.jsxs(FocusLock__default.default,{autoFocus:!supportsTouch,disabled:disableFocusLock,returnFocus:true,children:[/* @__PURE__ */jsxRuntime.jsx(MotionOverlay,{animate:"open",exit:"closed",initial:"closed",style:{zIndex},transition:ANIMATION_TRANSITION,variants:OVERLAY_VARIANTS}),/* @__PURE__ */jsxRuntime.jsxs(SearchMotionCard,{animate:"open",exit:"closed",initial:"closed",overflow:"hidden",radius:POPOVER_RADIUS,ref:popoverElement,shadow:2,style:{zIndex},transition:ANIMATION_TRANSITION,variants:CARD_VARIANTS,children:[/* @__PURE__ */jsxRuntime.jsx(SearchHeader,{ariaInputLabel:hasValidTerms?t("search.search-results-aria-label"):t("search.recent-searches-aria-label"),onClose,ref:setInputElement}),filtersVisible&&/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:true,flex:"none",children:/* @__PURE__ */jsxRuntime.jsx(Filters,{})}),hasValidTerms?/* @__PURE__ */jsxRuntime.jsx(SearchResults,{inputElement}):/* @__PURE__ */jsxRuntime.jsx(RecentSearches,{inputElement})]})]})})})});}var __freeze$e=Object.freeze;var __defProp$e=Object.defineProperty;var __template$e=(cooked,raw)=>__freeze$e(__defProp$e(cooked,"raw",{value:__freeze$e(raw||cooked.slice())}));var _a$e,_b$a,_c$7;const RootLayer=styled__default.default(ui.Layer)(_a$e||(_a$e=__template$e(["\n min-height: auto;\n position: relative;\n\n &[data-search-open='true'] {\n top: 0;\n position: sticky;\n }\n"])));const RootCard=styled__default.default(ui.Card)(_b$a||(_b$a=__template$e(["\n line-height: 0;\n"])));const NavGrid=styled__default.default(ui.Grid)(_c$7||(_c$7=__template$e(["\n grid-template-columns: auto auto auto;\n"])));function StudioNavbar(){const{name,tools}=useWorkspace();const routerState=router.useRouterState();const mediaIndex=ui.useMediaIndex();const activeToolName=typeof routerState.tool==="string"?routerState.tool:void 0;const newDocumentOptions=useNewDocumentOptions();const{t}=useTranslation();const{onSearchFullscreenOpenChange,onSearchOpenChange,searchFullscreenOpen,searchFullscreenPortalEl,searchOpen}=React.useContext(NavbarContext);const ToolMenu=useToolMenuComponent();const[drawerOpen,setDrawerOpen]=React.useState(false);const routerStateRef=React.useRef(routerState);const workspaceNameRef=React.useRef(name);React.useEffect(()=>{if(routerStateRef.current.tool!==routerState.tool||name!==workspaceNameRef.current){setDrawerOpen(false);}routerStateRef.current=routerState;workspaceNameRef.current=name;},[name,routerState]);const[drawerButtonEl,setDrawerButtonEl]=React.useState(null);const[searchOpenButtonEl,setSearchOpenButtonEl]=React.useState(null);const shouldRender=React.useMemo(()=>({resources:mediaIndex>1,collapsedPresenceMenu:mediaIndex<=1,loginStatus:mediaIndex>1,searchFullscreen:mediaIndex<=1,configIssues:mediaIndex>1&&isDev,newDocumentFullscreen:mediaIndex<=1,tools:mediaIndex>=3}),[mediaIndex]);React.useEffect(()=>{onSearchFullscreenOpenChange(searchFullscreenOpen);},[searchFullscreenOpen,onSearchFullscreenOpenChange]);React.useEffect(()=>{if(shouldRender.searchFullscreen){onSearchOpenChange(false);}else{onSearchFullscreenOpenChange(false);}},[onSearchFullscreenOpenChange,onSearchOpenChange,shouldRender.searchFullscreen]);const handleOpenSearch=React.useCallback(()=>{onSearchOpenChange(true);},[onSearchOpenChange]);const handleOpenSearchFullscreen=React.useCallback(()=>{onSearchFullscreenOpenChange(true);},[onSearchFullscreenOpenChange]);const handleCloseSearch=React.useCallback(()=>{onSearchOpenChange(false);},[onSearchOpenChange]);const handleCloseSearchFullscreen=React.useCallback(()=>{onSearchFullscreenOpenChange(false);searchOpenButtonEl==null?void 0:searchOpenButtonEl.focus();},[onSearchFullscreenOpenChange,searchOpenButtonEl]);const handleCloseDrawer=React.useCallback(()=>{setDrawerOpen(false);drawerButtonEl==null?void 0:drawerButtonEl.focus();},[drawerButtonEl]);const handleOpenDrawer=React.useCallback(()=>{setDrawerOpen(true);},[]);return/* @__PURE__ */jsxRuntime.jsx(FreeTrialProvider,{children:/* @__PURE__ */jsxRuntime.jsxs(RootLayer,{zOffset:100,"data-search-open":searchFullscreenOpen,children:[/* @__PURE__ */jsxRuntime.jsx(RootCard,{borderBottom:true,"data-testid":"studio-navbar","data-ui":"Navbar",padding:3,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsxs(NavGrid,{gap:1,children:[/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.TooltipDelayGroupProvider,{children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",gap:2,justify:"flex-start",children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",gap:2,children:[!shouldRender.tools&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"bleed",icon:icons.MenuIcon,onClick:handleOpenDrawer,ref:setDrawerButtonEl,tooltipProps:{content:t("user-menu.open-menu"),placement:"bottom"}}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{gap:1,children:[/* @__PURE__ */jsxRuntime.jsx(HomeButton,{}),/* @__PURE__ */jsxRuntime.jsx(WorkspaceMenuButton,{})]})]}),/* @__PURE__ */jsxRuntime.jsx(NewDocumentButton,{...newDocumentOptions,modal:shouldRender.newDocumentFullscreen?"dialog":"popover"}),!shouldRender.searchFullscreen&&/* @__PURE__ */jsxRuntime.jsx(SearchButton,{onClick:handleOpenSearch,ref:setSearchOpenButtonEl})]})}),/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",justify:"center",children:shouldRender.tools&&/* @__PURE__ */jsxRuntime.jsx(ToolMenu,{activeToolName,closeSidebar:handleCloseDrawer,context:"topbar",isSidebarOpen:false,tools})}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.TooltipDelayGroupProvider,{children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",gap:1,justify:"flex-end",children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{gap:1,children:[/* @__PURE__ */jsxRuntime.jsx(ui.LayerProvider,{children:/* @__PURE__ */jsxRuntime.jsx(SearchProvider,{fullscreen:shouldRender.searchFullscreen,children:/* @__PURE__ */jsxRuntime.jsx(ui.BoundaryElementProvider,{element:document.body,children:shouldRender.searchFullscreen?/* @__PURE__ */jsxRuntime.jsx(ui.PortalProvider,{element:searchFullscreenPortalEl,children:/* @__PURE__ */jsxRuntime.jsx(SearchDialog,{onClose:handleCloseSearchFullscreen,onOpen:handleOpenSearchFullscreen,open:searchFullscreenOpen})}):/* @__PURE__ */jsxRuntime.jsx(SearchPopover,{onClose:handleCloseSearch,onOpen:handleOpenSearch,open:searchOpen})})})}),shouldRender.tools&&/* @__PURE__ */jsxRuntime.jsx(FreeTrial,{type:"topbar"}),shouldRender.configIssues&&/* @__PURE__ */jsxRuntime.jsx(ConfigIssuesButton,{}),shouldRender.resources&&/* @__PURE__ */jsxRuntime.jsx(ResourcesButton,{}),/* @__PURE__ */jsxRuntime.jsx(PresenceMenu,{}),shouldRender.searchFullscreen&&/* @__PURE__ */jsxRuntime.jsx(SearchButton,{onClick:handleOpenSearchFullscreen,ref:setSearchOpenButtonEl})]}),shouldRender.tools&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:"none",marginLeft:1,children:/* @__PURE__ */jsxRuntime.jsx(UserMenu,{})})]})})]})}),!shouldRender.tools&&/* @__PURE__ */jsxRuntime.jsx(NavDrawer,{activeToolName,isOpen:drawerOpen,onClose:handleCloseDrawer,tools})]})});}var __freeze$d=Object.freeze;var __defProp$d=Object.defineProperty;var __template$d=(cooked,raw)=>__freeze$d(__defProp$d(cooked,"raw",{value:__freeze$d(raw||cooked.slice())}));var _a$d,_b$9;function _isReactElement(node){return Boolean(node);}const OptionObserveElement=styled__default.default(ObserveElement)(_a$d||(_a$d=__template$d(["\n list-style: none;\n white-space: nowrap;\n flex-shrink: 0;\n opacity: 0;\n visibility: hidden;\n"])));const HiddenRow=styled__default.default(ui.Flex)(_b$9||(_b$9=__template$d(["\n opacity: 0;\n height: 0.1px;\n overflow: hidden;\n"])));const CollapseTabList=React.forwardRef(function CollapseTabList2(props,ref){const{children:childrenProp,gap,menuButtonProps,disableRestoreFocusOnClose,onMenuClose,collapsed,...rest}=props;const[rootEl,setRootEl]=React.useState(null);const[hiddenElements,setHiddenElements]=React.useState([]);const[showChildren,setShowChildren]=React.useState(false);const children=React.useMemo(()=>React__default.default.Children.toArray(childrenProp).filter(_isReactElement),[childrenProp]);const displayChildren=React.useMemo(()=>{if(collapsed)return null;if(!showChildren)return null;return children.filter(c=>!hiddenElements.some(h=>h.key===c.key));},[children,collapsed,hiddenElements,showChildren]);const intersectionOptions=React.useMemo(()=>({root:rootEl,threshold:1,rootMargin:"1px"}),[rootEl]);const menuButton=React.useMemo(()=>(menuButtonProps==null?void 0:menuButtonProps.button)||/* @__PURE__ */jsxRuntime.jsx(ContextMenuButton,{}),[menuButtonProps]);const menuOptionsArray=React.useMemo(()=>collapsed?children:// eslint-disable-next-line max-nested-callbacks
450
- children.filter(_ref559=>{let{key}=_ref559;return hiddenElements.find(o=>o.key===key);}),[children,hiddenElements,collapsed]);const handleIntersection=React.useCallback((e,child)=>{const isHidden=hiddenElements.some(el=>el.key===child.key);if(!showChildren)setShowChildren(true);const isIntersecting=e.isIntersecting;if(!isHidden&&!isIntersecting)setHiddenElements(prev=>[...prev,child]);if(isHidden&&isIntersecting)setHiddenElements(prev=>prev.filter(el=>el.key!==child.key));},[hiddenElements,showChildren,setShowChildren,setHiddenElements]);return/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",ref,sizing:"border",style:{position:"relative"},...rest,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{justify:"center",gap,flex:1,children:[displayChildren,(hiddenElements.length>0||collapsed)&&/* @__PURE__ */jsxRuntime.jsx(CollapseOverflowMenu,{disableRestoreFocusOnClose,menuButton,menuButtonProps,menuOptions:menuOptionsArray,onMenuClose})]}),/* @__PURE__ */jsxRuntime.jsxs(HiddenRow,{justify:"flex-start",gap,ref:setRootEl,"data-hidden":true,"aria-hidden":"true",children:[React.cloneElement(menuButton,{disabled:true,"aria-hidden":true}),children==null?void 0:children.map(child=>/* @__PURE__ */jsxRuntime.jsx(OptionObserveElement,{options:intersectionOptions,onIntersectionChange:e=>handleIntersection(e[0],child),children:React.cloneElement(child,{disabled:true,"aria-hidden":true,tabIndex:-1})},"".concat(child.key,"_observer")))]})]});});const ToolLink=React.forwardRef(function ToolLink2(props,ref){const{name,...rest}=props;const state=router.useRouterState(React.useCallback(()=>({tool:name,// make sure to clear tool state when navigating to another tool
451
- [name]:void 0}),[name]));return/* @__PURE__ */jsxRuntime.jsx(router.StateLink,{state,...rest,ref});});function ToolCollapseMenu(props){const{activeToolName,tools}=props;const{scheme}=useColorScheme();const[collapseMenuEl,setCollapseMenuEl]=React.useState(null);useRovingFocus({rootElement:collapseMenuEl,navigation:["arrows"]});const menuButtonProps=React.useMemo(()=>({popover:{constrainSize:true,portal:true,scheme}}),[scheme]);const children=React.useMemo(()=>tools.map((tool,index)=>{const title=(tool==null?void 0:tool.title)||startCase__default.default(tool.name);const Link=React.forwardRef(function Link2(linkProps,ref){return/* @__PURE__ */jsxRuntime.jsx(ToolLink,{...linkProps,ref,name:tool.name,children:linkProps.children});});return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{as:Link,"data-as":"a",mode:"bleed",selected:activeToolName===tool.name,text:title},"".concat(tool.name,"-").concat(index));}),[activeToolName,tools]);return/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{justify:"center",marginX:4,children:/* @__PURE__ */jsxRuntime.jsx(CollapseTabList,{"data-testid":"tool-collapse-menu",gap:1,menuButtonProps,ref:setCollapseMenuEl,children})});}function ToolVerticalMenu(props){const{activeToolName,isVisible,tools}=props;return React.useMemo(()=>/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"ul",space:1,children:tools.map(tool=>{const title=(tool==null?void 0:tool.title)||startCase__default.default(tool.name);const Link=React.forwardRef(function Link2(linkProps,ref){return/* @__PURE__ */jsxRuntime.jsx(ToolLink,{...linkProps,ref,name:tool.name,children:linkProps.children});});return/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"li",children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{as:Link,justify:"flex-start",mode:"bleed",selected:activeToolName===tool.name,size:"large",tabIndex:isVisible?0:-1,text:title})},tool.name);})}),[activeToolName,isVisible,tools]);}function StudioToolMenu(props){const{context,isSidebarOpen,tools,...restProps}=props;if(tools.length<=1){return null;}if(context==="sidebar"){return/* @__PURE__ */jsxRuntime.jsx(ToolVerticalMenu,{isVisible:isSidebarOpen,tools,...restProps});}return/* @__PURE__ */jsxRuntime.jsx(ToolCollapseMenu,{tools,...restProps});}function pickToolMenuComponent(plugin){var _a,_b;return(_b=(_a=plugin.studio)==null?void 0:_a.components)==null?void 0:_b.toolMenu;}function pickNavbarComponent(plugin){var _a,_b;return(_b=(_a=plugin.studio)==null?void 0:_a.components)==null?void 0:_b.navbar;}function pickLayoutComponent(plugin){var _a,_b;return(_b=(_a=plugin.studio)==null?void 0:_a.components)==null?void 0:_b.layout;}function useToolMenuComponent(){return useMiddlewareComponents({defaultComponent:StudioToolMenu,pick:pickToolMenuComponent});}function useNavbarComponent(){return useMiddlewareComponents({defaultComponent:StudioNavbar,pick:pickNavbarComponent});}function useLayoutComponent(){return useMiddlewareComponents({defaultComponent:StudioLayoutComponent,pick:pickLayoutComponent});}var __freeze$c=Object.freeze;var __defProp$c=Object.defineProperty;var __template$c=(cooked,raw)=>__freeze$c(__defProp$c(cooked,"raw",{value:__freeze$c(raw||cooked.slice())}));var _a$c;const SearchFullscreenPortalCard=styled__default.default(ui.Card)(_a$c||(_a$c=__template$c(["\n height: 100%;\n left: 0;\n overflow: hidden;\n overflow: clip;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 200;\n"])));const NavbarContext=React.createContext({onSearchFullscreenOpenChange:()=>"",onSearchOpenChange:()=>"",searchFullscreenOpen:false,searchFullscreenPortalEl:null,searchOpen:false});function StudioLayout(){const Layout=useLayoutComponent();return/* @__PURE__ */jsxRuntime.jsx(Layout,{});}function StudioLayoutComponent(){var _a2;const{name,title,tools}=useWorkspace();const router$1=router.useRouter();const activeToolName=router.useRouterState(React.useCallback(routerState=>typeof routerState.tool==="string"?routerState.tool:void 0,[]));const activeTool=React.useMemo(()=>tools.find(tool=>tool.name===activeToolName),[activeToolName,tools]);const[searchFullscreenOpen,setSearchFullscreenOpen]=React.useState(false);const[searchFullscreenPortalEl,setSearchFullscreenPortalEl]=React.useState(null);const[searchOpen,setSearchOpen]=React.useState(false);const documentTitle=React.useMemo(()=>{const mainTitle=title||startCase__default.default(name);if(activeToolName){return"".concat(startCase__default.default(activeToolName)," | ").concat(mainTitle);}return mainTitle;},[activeToolName,name,title]);const toolControlsDocumentTitle=!!(activeTool==null?void 0:activeTool.controlsDocumentTitle);React.useEffect(()=>{if(toolControlsDocumentTitle){return;}document.title=documentTitle;},[documentTitle,toolControlsDocumentTitle]);const handleSearchFullscreenOpenChange=React.useCallback(open=>{setSearchFullscreenOpen(open);},[]);const handleSearchOpenChange=React.useCallback(open=>{setSearchOpen(open);},[]);const navbarContextValue=React.useMemo(()=>({searchFullscreenOpen,searchFullscreenPortalEl,searchOpen,onSearchFullscreenOpenChange:handleSearchFullscreenOpenChange,onSearchOpenChange:handleSearchOpenChange}),[searchFullscreenOpen,searchFullscreenPortalEl,searchOpen,handleSearchFullscreenOpenChange,handleSearchOpenChange]);const Navbar=useNavbarComponent();const isLegacyDeskRedirect=!activeTool&&(activeToolName==="desk"||!activeToolName)&&typeof window!=="undefined"&&/\/desk(\/|$)/.test(window.location.pathname)&&tools.some(tool=>tool.name==="structure");React.useEffect(()=>{if(!isLegacyDeskRedirect){return;}router$1.navigateUrl({path:window.location.pathname.replace(/\/desk/,"/structure"),replace:true});},[isLegacyDeskRedirect,router$1]);return/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{"data-ui":"ToolScreen",direction:"column",height:"fill","data-testid":"studio-layout",children:[/* @__PURE__ */jsxRuntime.jsx(NavbarContext.Provider,{value:navbarContextValue,children:/* @__PURE__ */jsxRuntime.jsx(Navbar,{})}),isLegacyDeskRedirect&&/* @__PURE__ */jsxRuntime.jsx(RedirectingScreen,{}),tools.length===0&&/* @__PURE__ */jsxRuntime.jsx(NoToolsScreen,{}),tools.length>0&&!activeTool&&activeToolName&&!isLegacyDeskRedirect&&/* @__PURE__ */jsxRuntime.jsx(ToolNotFoundScreen,{toolName:activeToolName}),searchFullscreenOpen&&/* @__PURE__ */jsxRuntime.jsx(SearchFullscreenPortalCard,{ref:setSearchFullscreenPortalEl,overflow:"auto"}),/* @__PURE__ */jsxRuntime.jsx(StudioErrorBoundary,{heading:"The ".concat(activeTool==null?void 0:activeTool.name," tool crashed"),children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{flex:1,hidden:searchFullscreenOpen,children:activeTool&&activeToolName&&/* @__PURE__ */jsxRuntime.jsx(router.RouteScope,{scope:activeToolName,__unsafe_disableScopedSearchParams:(_a2=activeTool.router)==null?void 0:_a2.__unsafe_disableScopedSearchParams,children:/* @__PURE__ */jsxRuntime.jsx(React.Suspense,{fallback:/* @__PURE__ */jsxRuntime.jsx(LoadingBlock,{showText:true}),children:React.createElement(activeTool.component,{tool:activeTool})})})})},activeTool==null?void 0:activeTool.name)]});}function LocaleProvider(props){const{projectId,name:sourceId,i18n:{locales},__internal:{i18next}}=useSource();return/* @__PURE__ */jsxRuntime.jsx(LocaleProviderBase,{...props,projectId,sourceId,locales,i18next});}function LocaleProviderBase(_ref560){let{projectId,sourceId,locales,i18next,children}=_ref560;const subscribe=React.useCallback(callback=>{i18next.on("languageChanged",callback);return()=>i18next.off("languageChanged",callback);},[i18next]);const currentLocale=React.useSyncExternalStore(subscribe,()=>locales.find(candidate=>i18next.language===candidate.id)||defaultLocale);const context=React.useMemo(()=>({locales,currentLocale,__internal:{i18next},changeLocale:async newLocale=>{storePreferredLocale(projectId,sourceId,newLocale);await i18next.changeLanguage(newLocale);}}),[currentLocale,i18next,locales,projectId,sourceId]);return/* @__PURE__ */jsxRuntime.jsx(React.Suspense,{fallback:/* @__PURE__ */jsxRuntime.jsx(LoadingBlock,{}),children:/* @__PURE__ */jsxRuntime.jsx(reactI18next.I18nextProvider,{i18n:i18next,children:/* @__PURE__ */jsxRuntime.jsx(LocaleContext.Provider,{value:context,children},currentLocale.id)})});}const PREVIEW_SIZES={block:{icon:25,media:{width:33,height:33}},blockImage:{icon:25,media:{width:600,height:400}},compact:{icon:21,media:{width:25,height:25}},default:{icon:21,media:{width:33,height:33}},detail:{icon:25,media:{width:73,height:73}},inline:{icon:15,media:{width:15,height:15}},media:{icon:25,media:{width:160,height:160}}};function renderPreviewMedia(value,layout,dimensions){if(reactIs.isValidElementType(value)){return React.createElement(value,{layout,dimensions});}if(typeof value==="string"){return/* @__PURE__ */jsxRuntime.jsx("div",{children:value});}return value;}function renderPreviewNode(value,layout,fallbackNode){if(typeof value==="string"){return value;}if(reactIs.isValidElementType(value)){return React.createElement(value,{layout});}return value||fallbackNode;}var __freeze$b=Object.freeze;var __defProp$b=Object.defineProperty;var __template$b=(cooked,raw)=>__freeze$b(__defProp$b(cooked,"raw",{value:__freeze$b(raw||cooked.slice())}));var _a$b;const MediaWrapper=styled__default.default.span(props=>{const{$dimensions,$layout,$radius,$responsive}=props;const width=$dimensions.width||0;const height=$dimensions.width||0;const iconSize=PREVIEW_SIZES[$layout].icon;return styled.css(_a$b||(_a$b=__template$b(["\n position: relative;\n width: ",";\n height: ",";\n min-width: ",";\n border-radius: ",";\n display: flex;\n overflow: hidden;\n overflow: clip;\n align-items: center;\n justify-content: center;\n\n & img {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: inherit;\n }\n\n & svg {\n // Shared styles for SVG icons\n color: var(--card-icon-color);\n display: block;\n flex: 1;\n\n // Specific styles for non Sanity icons\n &:not([data-sanity-icon]) {\n height: 1em;\n width: 1em;\n max-width: 1em;\n max-height: 1em;\n }\n\n // Specific styles for Sanity icons\n &[data-sanity-icon] {\n display: block;\n font-size: calc("," / 16 * 1em);\n }\n }\n\n & > span[data-border] {\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n box-shadow: inset 0 0 0 1px var(--card-fg-color);\n opacity: 0.1;\n border-radius: inherit;\n pointer-events: none;\n }\n "])),$responsive?"100%":ui.rem(width),$responsive?"100%":ui.rem(height),$responsive?void 0:ui.rem(width),_ref561=>{let{theme}=_ref561;return ui.rem(theme.sanity.radius[$radius]);},iconSize);});MediaWrapper.displayName="MediaWrapper";function Media(props){const{border=true,dimensions,layout,media,radius=1,responsive=false,styles}=props;return/* @__PURE__ */jsxRuntime.jsxs(MediaWrapper,{$dimensions:dimensions,$layout:layout,$radius:radius,$responsive:responsive,className:styles==null?void 0:styles.media,"data-testid":"Media",children:[renderMedia({dimensions,layout,media}),border&&/* @__PURE__ */jsxRuntime.jsx("span",{"data-border":true})]});}function renderMedia(props){const{dimensions,layout,media,styles}=props;if(reactIs.isValidElementType(media)){return React.createElement(media,{dimensions,layout});}if(typeof media==="string"){return/* @__PURE__ */jsxRuntime.jsx(ui.Text,{as:"span",className:styles==null?void 0:styles.mediaString,size:1,children:media});}if(React.isValidElement(media)){return media;}return null;}var __freeze$a=Object.freeze;var __defProp$a=Object.defineProperty;var __template$a=(cooked,raw)=>__freeze$a(__defProp$a(cooked,"raw",{value:__freeze$a(raw||cooked.slice())}));var _a$a,_b$8;const DEFAULT_MEDIA_DIMENSIONS$6={...PREVIEW_SIZES.compact.media,aspect:1,fit:"crop",dpr:useDevicePixelRatio.getDevicePixelRatio()};const Root$4=styled__default.default(ui.Flex)(_a$a||(_a$a=__template$a(["\n height: ",";\n box-sizing: content-box;\n"])),ui.rem(PREVIEW_SIZES.compact.media.height));const TitleSkeleton$3=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_b$8||(_b$8=__template$a(["\n max-width: ",";\n width: 80%;\n"])),ui.rem(160));function CompactPreview(props){const{children,isPlaceholder,media,status,title}=props;const{t}=useTranslation();const statusNode=status&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{"data-testid":"compact-preview__status",paddingLeft:4,paddingRight:1,children:renderPreviewNode(status,"compact")});if(isPlaceholder){return/* @__PURE__ */jsxRuntime.jsx(Root$4,{align:"center","data-testid":"default-preview",paddingLeft:media?1:2,paddingRight:2,paddingY:1,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:2,children:[media&&/* @__PURE__ */jsxRuntime.jsx(ui.Skeleton,{animated:true,radius:2,style:PREVIEW_SIZES.compact.media}),/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{"data-testid":"compact-preview__heading",flex:1,space:2,children:/* @__PURE__ */jsxRuntime.jsx(TitleSkeleton$3,{})}),statusNode]})});}return/* @__PURE__ */jsxRuntime.jsxs(Root$4,{align:"center","data-testid":"compact-preview",paddingLeft:media?1:2,paddingRight:2,paddingY:1,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:2,children:[media&&/* @__PURE__ */jsxRuntime.jsx(Media,{border:false,dimensions:DEFAULT_MEDIA_DIMENSIONS$6,layout:"compact",media}),/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{"data-testid":"compact-preview__header",flex:1,space:2,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{size:1,style:{color:"inherit"},textOverflow:"ellipsis",weight:"medium",children:[title&&renderPreviewNode(title,"compact"),!title&&/* @__PURE__ */jsxRuntime.jsx("span",{style:{color:"var(--card-muted-fg-color)"},children:t("preview.default.title-fallback")})]})}),statusNode]}),children&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginLeft:1,children})]});}var __freeze$9=Object.freeze;var __defProp$9=Object.defineProperty;var __template$9=(cooked,raw)=>__freeze$9(__defProp$9(cooked,"raw",{value:__freeze$9(raw||cooked.slice())}));var _a$9,_b$7,_c$6;const DEFAULT_MEDIA_DIMENSIONS$5={...PREVIEW_SIZES.default.media,aspect:1,fit:"crop",dpr:useDevicePixelRatio.getDevicePixelRatio()};const Root$3=styled__default.default(ui.Flex)(_a$9||(_a$9=__template$9(["\n height: ",";\n box-sizing: content-box;\n"])),ui.rem(PREVIEW_SIZES.default.media.height));const TitleSkeleton$2=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_b$7||(_b$7=__template$9(["\n max-width: ",";\n width: 80%;\n"])),ui.rem(160));const SubtitleSkeleton$2=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_c$6||(_c$6=__template$9(["\n max-width: ",";\n width: 60%;\n"])),ui.rem(120));function DefaultPreview(props){const{title,subtitle,media,status,isPlaceholder,children,styles}=props;const{t}=useTranslation();const rootClassName=classNames__default.default(styles==null?void 0:styles.root,Boolean(subtitle)&&(styles==null?void 0:styles.hasSubtitle));const statusNode=status&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{className:styles==null?void 0:styles.status,"data-testid":"default-preview__status",children:renderPreviewNode(status,"default")});if(isPlaceholder){return/* @__PURE__ */jsxRuntime.jsx(Root$3,{align:"center",className:styles==null?void 0:styles.placeholder,"data-testid":"default-preview",padding:2,paddingLeft:media?2:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:2,children:[media&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:"none",children:/* @__PURE__ */jsxRuntime.jsx(ui.Skeleton,{animated:true,radius:1,style:PREVIEW_SIZES.default.media})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{"data-testid":"default-preview__heading",flex:1,space:2,children:[/* @__PURE__ */jsxRuntime.jsx(TitleSkeleton$2,{}),/* @__PURE__ */jsxRuntime.jsx(SubtitleSkeleton$2,{})]}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:"none",padding:1,children:statusNode})]})});}return/* @__PURE__ */jsxRuntime.jsx(Root$3,{align:"center",className:rootClassName,"data-testid":"default-preview",padding:2,paddingLeft:media?2:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:2,children:[media&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:"none",children:/* @__PURE__ */jsxRuntime.jsx(Media,{dimensions:DEFAULT_MEDIA_DIMENSIONS$5,layout:"default",media,styles})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{className:styles==null?void 0:styles.heading,"data-testid":"default-preview__header",flex:1,space:2,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{className:styles==null?void 0:styles.title,size:1,style:{color:"inherit"},textOverflow:"ellipsis",weight:"medium",children:[title&&renderPreviewNode(title,"default"),!title&&/* @__PURE__ */jsxRuntime.jsx("span",{style:{color:"var(--card-muted-fg-color)"},children:t("preview.default.title-fallback")})]}),subtitle&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",className:styles==null?void 0:styles.subtitle,children:renderPreviewNode(subtitle,"default")})]}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:"none",padding:1,children:statusNode}),children&&/* @__PURE__ */jsxRuntime.jsx("div",{className:styles==null?void 0:styles.children,children})]})});}var __freeze$8=Object.freeze;var __defProp$8=Object.defineProperty;var __template$8=(cooked,raw)=>__freeze$8(__defProp$8(cooked,"raw",{value:__freeze$8(raw||cooked.slice())}));var _a$8,_b$6,_c$5,_d$2,_e$1,_f,_g;const RootFlex=styled__default.default(ui.Flex).attrs({align:"center"})(_a$8||(_a$8=__template$8(["\n height: ",";\n"])),ui.rem(PREVIEW_SIZES.detail.media.height));const StatusBox=styled__default.default(ui.Box)(_b$6||(_b$6=__template$8(["\n white-space: nowrap;\n"])));const MediaSkeleton$1=styled__default.default(ui.Skeleton).attrs({animated:true,radius:2})(_c$5||(_c$5=__template$8(["\n width: ",";\n height: ",";\n"])),ui.rem(PREVIEW_SIZES.detail.media.width),ui.rem(PREVIEW_SIZES.detail.media.height));const TitleSkeleton$1=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_d$2||(_d$2=__template$8(["\n max-width: ","; /* 80% of 200px */\n width: 80%;\n"])),ui.rem(160));const SubtitleSkeleton$1=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_e$1||(_e$1=__template$8(["\n max-width: ","; /* 60% of 200px */\n width: 60%;\n"])),ui.rem(120));const DescriptionSkeleton=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_f||(_f=__template$8(["\n max-width: ","; /* 90% of 200px */\n width: 90%;\n"])),ui.rem(180));const DescriptionText=styled__default.default(ui.Text)(_ref562=>{let{theme}=_ref562;const{fonts}=theme.sanity;const textSize1=fonts.text.sizes[1];const maxLines=2;const maxHeight=textSize1.lineHeight*maxLines;return styled.css(_g||(_g=__template$8(["\n & > span {\n max-height: ",";\n\n /* Multi-line text overflow */\n display: -webkit-box;\n overflow: hidden;\n overflow: clip;\n text-overflow: ellipsis;\n -webkit-line-clamp: ",";\n -webkit-box-orient: vertical;\n }\n "])),ui.rem(maxHeight),maxLines);});const DEFAULT_MEDIA_DIMENSIONS$4={...PREVIEW_SIZES.detail.media,fit:"crop",aspect:1,dpr:useDevicePixelRatio.getDevicePixelRatio()};function DetailPreview(props){const{title,subtitle,description,mediaDimensions=DEFAULT_MEDIA_DIMENSIONS$4,media,status,children,isPlaceholder}=props;const{t}=useTranslation();const statusNode=status&&/* @__PURE__ */jsxRuntime.jsx(StatusBox,{marginLeft:3,paddingRight:1,children:renderPreviewNode(status,"detail")});if(isPlaceholder){return/* @__PURE__ */jsxRuntime.jsx(RootFlex,{"data-testid":"detail-preview",paddingLeft:media?2:3,paddingRight:2,paddingY:2,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:3,children:[media&&/* @__PURE__ */jsxRuntime.jsx(MediaSkeleton$1,{"data-testid":"detail-preview__media"}),/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center","data-testid":"detail-preview__header",flex:1,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,space:2,children:[/* @__PURE__ */jsxRuntime.jsx(TitleSkeleton$1,{}),/* @__PURE__ */jsxRuntime.jsx(SubtitleSkeleton$1,{}),description&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:1,children:/* @__PURE__ */jsxRuntime.jsx(DescriptionSkeleton,{})})]})}),statusNode]})});}return/* @__PURE__ */jsxRuntime.jsx(RootFlex,{"data-testid":"detail-preview",paddingLeft:media?2:3,paddingRight:2,paddingY:2,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:3,children:[media&&/* @__PURE__ */jsxRuntime.jsx(Media,{dimensions:mediaDimensions,layout:"detail",media}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center","data-testid":"detail-preview__header",flex:1,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,space:2,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{textOverflow:"ellipsis",size:1,style:{color:"inherit"},weight:"medium",children:[title&&renderPreviewNode(title,"detail"),!title&&/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children:t("preview.default.title-fallback")})]}),subtitle&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:renderPreviewNode(subtitle,"detail")}),description&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:1,children:/* @__PURE__ */jsxRuntime.jsx(DescriptionText,{muted:true,size:1,children:renderPreviewNode(description,"detail")})})]}),statusNode]}),children]})});}var __freeze$7=Object.freeze;var __defProp$7=Object.defineProperty;var __template$7=(cooked,raw)=>__freeze$7(__defProp$7(cooked,"raw",{value:__freeze$7(raw||cooked.slice())}));var _a$7,_b$5,_c$4;const SIZE=43;const STROKE_WIDTH$1=3;const Root$2=styled__default.default.svg(_a$7||(_a$7=__template$7(["\n width: ","px;\n height: ","px;\n transform: rotate(-90deg);\n"])),SIZE,SIZE);const BgCircle=styled__default.default.circle(_ref563=>{let{theme}=_ref563;const{color:color$1}=theme.sanity;return styled.css(_b$5||(_b$5=__template$7(["\n fill: none;\n stroke: ",";\n stroke-width: ","px;\n "])),color.hues.gray[color$1.dark?900:100].hex,STROKE_WIDTH$1);});const ProgressCircle=styled__default.default.circle(_ref564=>{let{theme}=_ref564;const{color:color$1}=theme.sanity;return styled.css(_c$4||(_c$4=__template$7(["\n fill: none;\n stroke: ",";\n stroke-width: ","px;\n transition: stroke-dashoffset 75ms;\n "])),color.hues.blue[color$1.dark?400:500].hex,STROKE_WIDTH$1);});function CircularProgress(props){const{value:valueProp}=props;const value=Math.min(Math.max(valueProp,0),100);const radius=SIZE/2-STROKE_WIDTH$1/2;const circ=2*Math.PI*radius;const offset=(100-value)/100*circ;const viewBox="".concat(SIZE/2," ").concat(SIZE/2," ").concat(SIZE," ").concat(SIZE);return/* @__PURE__ */jsxRuntime.jsxs(Root$2,{viewBox,children:[/* @__PURE__ */jsxRuntime.jsx(BgCircle,{cx:SIZE,cy:SIZE,r:radius}),/* @__PURE__ */jsxRuntime.jsx(ProgressCircle,{cx:SIZE,cy:SIZE,r:radius,style:{strokeDasharray:circ,strokeDashoffset:"".concat(offset,"px")}})]});}var __freeze$6=Object.freeze;var __defProp$6=Object.defineProperty;var __template$6=(cooked,raw)=>__freeze$6(__defProp$6(cooked,"raw",{value:__freeze$6(raw||cooked.slice())}));var _a$6,_b$4;const STROKE_WIDTH=0.5;const Root$1=styled__default.default(ui.Card)(_a$6||(_a$6=__template$6(["\n overflow: hidden;\n overflow: clip;\n"])));const Bar=styled__default.default(ui.Card)(_ref565=>{let{theme}=_ref565;const{color:color$1}=theme.sanity;return styled.css(_b$4||(_b$4=__template$6(["\n height: ","rem;\n background: ",";\n transition: transform 75ms;\n "])),STROKE_WIDTH,color.hues.blue[color$1.dark?400:500].hex);});function LinearProgress(props){const{value}=props;return/* @__PURE__ */jsxRuntime.jsx(Root$1,{radius:5,children:/* @__PURE__ */jsxRuntime.jsx(Bar,{radius:5,style:{transform:"translate3d(".concat(value-100,"%, 0, 0)")}})});}var __freeze$5=Object.freeze;var __defProp$5=Object.defineProperty;var __template$5=(cooked,raw)=>__freeze$5(__defProp$5(cooked,"raw",{value:__freeze$5(raw||cooked.slice())}));var _a$5,_b$3,_c$3,_d$1,_e;const RootBox$1=styled__default.default(ui.Box)(_a$5||(_a$5=__template$5(["\n position: relative;\n"])));const MediaFlex=styled__default.default(ui.Flex).attrs({align:"center",justify:"center"})(_b$3||(_b$3=__template$5(["\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n"])));const MediaSkeleton=styled__default.default(ui.Skeleton).attrs({animated:true,radius:2})(_c$3||(_c$3=__template$5(["\n width: 100%;\n height: 100%;\n"])));const ProgressFlex=styled__default.default(ui.Flex).attrs({align:"center",justify:"center"})(_d$1||(_d$1=__template$5(["\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n\n &:before {\n background-color: var(--card-bg-color);\n opacity: 0.75;\n content: '';\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n }\n\n > svg {\n position: relative;\n z-index: 2;\n }\n"])));const TooltipContentStack=styled__default.default(ui.Stack).attrs({space:2})(_e||(_e=__template$5(["\n max-width: ",";\n"])),ui.rem(200));const DEFAULT_MEDIA_DIMENSIONS$3={...PREVIEW_SIZES.media.media,aspect:1,fit:"crop",dpr:useDevicePixelRatio.getDevicePixelRatio()};function MediaPreview(props){const{media,mediaDimensions=DEFAULT_MEDIA_DIMENSIONS$3,children,isPlaceholder,progress=-1,subtitle,title,withBorder=true,withRadius=true}=props;const aspect=mediaDimensions.aspect||1;const STYLES_PADDER=React.useMemo(()=>({paddingBottom:"".concat(100/aspect,"%")}),[aspect]);const tooltipContent=React.useMemo(()=>{if(!title||!subtitle){return null;}return/* @__PURE__ */jsxRuntime.jsxs(TooltipContentStack,{children:[title&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{align:"center",size:1,weight:"medium",children:renderPreviewNode(title,"media")}),subtitle&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{align:"center",muted:true,size:1,children:renderPreviewNode(subtitle,"media")})]});},[subtitle,title]);return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{padding:2,children:/* @__PURE__ */jsxRuntime.jsxs(RootBox$1,{"data-testid":"media-preview",flex:1,overflow:"hidden",children:[/* @__PURE__ */jsxRuntime.jsx("div",{style:STYLES_PADDER}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{content:tooltipContent,disabled:!tooltipContent,placement:"top",portal:true,children:/* @__PURE__ */jsxRuntime.jsxs(MediaFlex,{children:[isPlaceholder?/* @__PURE__ */jsxRuntime.jsx(MediaSkeleton,{}):/* @__PURE__ */jsxRuntime.jsx(Media,{border:withBorder,dimensions:mediaDimensions,layout:"media",media,radius:withRadius?1:0,responsive:true}),typeof progress==="number"&&progress>-1&&/* @__PURE__ */jsxRuntime.jsx(ProgressFlex,{children:/* @__PURE__ */jsxRuntime.jsx(CircularProgress,{value:progress})})]})}),children]})});}var __freeze$4=Object.freeze;var __defProp$4=Object.defineProperty;var __template$4=(cooked,raw)=>__freeze$4(__defProp$4(cooked,"raw",{value:__freeze$4(raw||cooked.slice())}));var _a$4,_b$2,_c$2;const HeaderFlex$2=styled__default.default(ui.Flex).attrs({align:"center"})(_a$4||(_a$4=__template$4(["\n height: ",";\n white-space: nowrap;\n position: relative;\n z-index: 1;\n"])),ui.rem(PREVIEW_SIZES.block.media.height));const MediaCard=styled__default.default(ui.Card)(_b$2||(_b$2=__template$4(["\n overflow: hidden;\n position: relative;\n padding-bottom: ","%;\n\n & > span {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n"])),_ref566=>{let{$ratio}=_ref566;return $ratio;});const RootBox=styled__default.default(ui.Box).attrs({overflow:"hidden"})(_c$2||(_c$2=__template$4(["\n border-radius: ","px;\n"])),_ref567=>{let{theme}=_ref567;return theme.sanity.radius[1];});const DEFAULT_MEDIA_DIMENSIONS$2={...PREVIEW_SIZES.blockImage.media,fit:"fillmax",dpr:useDevicePixelRatio.getDevicePixelRatio()};const getRatio=dimensions=>{const{height,width}=dimensions;if(!height||!width){return 1;}return height/width*100;};function BlockImagePreview(props){const{actions,title,subtitle,description,fallbackTitle="Untitled",mediaDimensions=DEFAULT_MEDIA_DIMENSIONS$2,media,children,status}=props;return/* @__PURE__ */jsxRuntime.jsxs(RootBox,{children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{children:[/* @__PURE__ */jsxRuntime.jsxs(HeaderFlex$2,{paddingBottom:3,paddingLeft:2,paddingRight:1,paddingTop:1,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,space:2,children:[(title||fallbackTitle)&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,textOverflow:"ellipsis",weight:"medium",children:title?renderPreviewNode(title,"block"):fallbackTitle}),subtitle&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:renderPreviewNode(subtitle,"block")})]}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{gap:1,paddingLeft:1,children:[status&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,paddingY:3,children:renderPreviewNode(status,"block")}),actions]})]}),/* @__PURE__ */jsxRuntime.jsx(MediaCard,{$ratio:getRatio(mediaDimensions),__unstable_checkered:true,display:"flex",sizing:"border",radius:2,tone:"inherit",children:/* @__PURE__ */jsxRuntime.jsx(Media,{border:false,dimensions:mediaDimensions,layout:"blockImage",media,radius:0,responsive:true})})]}),description&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,paddingY:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:renderPreviewNode(description,"block")})}),children&&/* @__PURE__ */jsxRuntime.jsx("div",{children})]});}var __freeze$3=Object.freeze;var __defProp$3=Object.defineProperty;var __template$3=(cooked,raw)=>__freeze$3(__defProp$3(cooked,"raw",{value:__freeze$3(raw||cooked.slice())}));var _a$3;const DEFAULT_MEDIA_DIMENSIONS$1={...PREVIEW_SIZES.block.media,aspect:1,fit:"crop",dpr:useDevicePixelRatio.getDevicePixelRatio()};const HeaderFlex$1=styled__default.default(ui.Flex).attrs({align:"center"})(_a$3||(_a$3=__template$3(["\n min-height: ",";\n"])),ui.rem(PREVIEW_SIZES.block.media.height));function BlockPreview(props){const{actions,title,subtitle,description,mediaDimensions=DEFAULT_MEDIA_DIMENSIONS$1,media,status,children}=props;return/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{"data-testid":"block-preview",space:1,children:[/* @__PURE__ */jsxRuntime.jsxs(HeaderFlex$1,{"data-testid":"block-preview__header",children:[media&&/* @__PURE__ */jsxRuntime.jsx(Media,{dimensions:mediaDimensions,layout:"block",media}),/* @__PURE__ */jsxRuntime.jsxs(ui.Box,{flex:1,paddingLeft:media?2:1,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,textOverflow:"ellipsis",weight:"medium",children:title?renderPreviewNode(title,"block"):"Untitled"}),subtitle&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:renderPreviewNode(subtitle,"block")})}),description&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:renderPreviewNode(description,"block")})})]}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{gap:1,paddingLeft:1,children:[status&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,paddingY:3,children:renderPreviewNode(status,"block")}),actions]})]}),children&&/* @__PURE__ */jsxRuntime.jsx("div",{"data-testid":"block-preview__children",children})]});}var __freeze$2=Object.freeze;var __defProp$2=Object.defineProperty;var __template$2=(cooked,raw)=>__freeze$2(__defProp$2(cooked,"raw",{value:__freeze$2(raw||cooked.slice())}));var _a$2,_b$1,_c$1;const RootSpan=styled__default.default.span(_a$2||(_a$2=__template$2(["\n display: inline-flex;\n align-items: center;\n vertical-align: top;\n height: calc(1em - 1px);\n max-width: 100%;\n"])));const MediaSpan=styled__default.default.span(_b$1||(_b$1=__template$2(["\n position: relative;\n display: inline-block;\n width: calc(1em - 1px);\n height: calc(1em - 1px);\n min-width: calc(1em - 1px);\n\n & img {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: ",";\n }\n\n & img + span {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n box-shadow: inset 0 0 0 1px var(--card-fg-color);\n opacity: 0.2;\n border-radius: ",";\n }\n\n & svg {\n display: block;\n font-size: calc(14 / 16 * 1em);\n margin: 1px 0;\n\n &[data-sanity-icon] {\n font-size: calc(18 / 16 * 1em);\n margin: calc(1px + (2 / 18 * -1em)) 0;\n }\n }\n"])),_ref568=>{let{theme}=_ref568;return ui.rem(theme.sanity.radius[1]);},_ref569=>{let{theme}=_ref569;return ui.rem(theme.sanity.radius[1]);});const TextSpan=styled__default.default(ui.Text).attrs({forwardedAs:"span"})(_ref570=>{let{theme}=_ref570;const textFont=theme.sanity.fonts.text;const textSize=textFont.sizes[1];return styled.css(_c$1||(_c$1=__template$2(["\n font-size: calc("," / 16 * 1em);\n font-weight: ",";\n box-sizing: border-box;\n display: inline-block;\n vertical-align: top;\n line-height: ",";\n padding-left: 0.5em;\n padding-right: calc(0.5em - 2px);\n min-width: 0;\n\n & > span {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n }\n "])),textSize.fontSize,textFont.weights.medium,textSize.lineHeight/textSize.fontSize);});const DEFAULT_MEDIA_DIMENSIONS={...PREVIEW_SIZES.inline.media,fit:"crop",aspect:1,dpr:useDevicePixelRatio.getDevicePixelRatio()};function InlinePreview(props){const{title,fallbackTitle="Untitled",media,mediaDimensions=DEFAULT_MEDIA_DIMENSIONS}=props;return/* @__PURE__ */jsxRuntime.jsxs(RootSpan,{"data-testid":"inline-preview",children:[media&&/* @__PURE__ */jsxRuntime.jsxs(MediaSpan,{"data-testid":"inline-preview-media",children:[renderPreviewMedia(media,"inline",mediaDimensions),/* @__PURE__ */jsxRuntime.jsx("span",{})]}),/* @__PURE__ */jsxRuntime.jsx(TextSpan,{"data-testid":"inline-preview-title",size:1,children:renderPreviewNode(title,"inline",fallbackTitle)})]});}var __freeze$1=Object.freeze;var __defProp$1=Object.defineProperty;var __template$1=(cooked,raw)=>__freeze$1(__defProp$1(cooked,"raw",{value:__freeze$1(raw||cooked.slice())}));var _a$1,_b,_c,_d;const DEFAULT_MEDIA_DIMENSION={...PREVIEW_SIZES.default.media,aspect:1,fit:"crop",dpr:useDevicePixelRatio.getDevicePixelRatio()};const Root=styled__default.default(ui.Box)(_a$1||(_a$1=__template$1(["\n height: 100%;\n\n a {\n color: currentColor;\n text-decoration: none;\n }\n\n svg[data-sanity-icon] {\n margin: 0;\n }\n"])));const HeaderFlex=styled__default.default(ui.Flex).attrs({align:"center"})(_b||(_b=__template$1(["\n height: ",";\n"])),ui.rem(PREVIEW_SIZES.default.media.height));const TitleSkeleton=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1})(_c||(_c=__template$1(["\n max-width: ",";\n width: 80%;\n"])),ui.rem(160));const SubtitleSkeleton=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_d||(_d=__template$1(["\n max-width: ",";\n width: 60%;\n"])),ui.rem(120));function TemplatePreview(props){const{description,isPlaceholder,media,mediaDimensions=DEFAULT_MEDIA_DIMENSION,subtitle,title="Untitled"}=props;if(isPlaceholder){return/* @__PURE__ */jsxRuntime.jsx(Root,{children:/* @__PURE__ */jsxRuntime.jsx(HeaderFlex,{children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,space:2,children:[/* @__PURE__ */jsxRuntime.jsx(TitleSkeleton,{}),/* @__PURE__ */jsxRuntime.jsx(SubtitleSkeleton,{})]})})});}return/* @__PURE__ */jsxRuntime.jsxs(Root,{children:[/* @__PURE__ */jsxRuntime.jsxs(HeaderFlex,{children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,space:2,children:[reactIs.isValidElementType(title)&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{textOverflow:"ellipsis",children:React.createElement(title,{layout:"default"})}),React.isValidElement(title)&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{textOverflow:"ellipsis",children:title}),reactIs.isValidElementType(subtitle)&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:React.createElement(subtitle,{layout:"default"})}),React.isValidElement(subtitle)&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:subtitle})]}),media&&/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"flex-start",paddingLeft:2,children:/* @__PURE__ */jsxRuntime.jsx(Media,{dimensions:mediaDimensions,layout:"default",media})})]}),description&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,style:{whiteSpace:"break-spaces"},children:description})})]});}const MUTATION_ATTRIBUTE_FILTER=["aria-hidden","disabled","href"];const FOCUSABLE='a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])';function getFocusableElements(element){return[...element.querySelectorAll(FOCUSABLE)].filter(el=>!el.hasAttribute("disabled")&&el.getAttribute("aria-hidden")!=="true");}function useRovingFocus(props){const{direction="horizontal",initialFocus,loop=true,navigation=["arrows"],pause=false,rootElement}=props;const[focusedIndex,setFocusedIndex]=React.useState(-1);const[focusableElements,setFocusableElements]=React.useState([]);const focusableLen=focusableElements.length;const lastFocusableIndex=focusableLen-1;const nextKey=direction==="horizontal"?"ArrowRight":"ArrowDown";const prevKey=direction==="horizontal"?"ArrowLeft":"ArrowUp";const handleSetElements=React.useCallback(()=>{if(rootElement){const els=getFocusableElements(rootElement);setFocusableElements(els);}},[rootElement]);const handleFocus=React.useCallback(index=>{setFocusedIndex(index);},[]);const handleKeyDown=React.useCallback(event=>{if(pause){return;}const focusPrev=()=>{event.preventDefault();setFocusedIndex(prevIndex=>{const next=(prevIndex+lastFocusableIndex)%focusableLen;if(!loop&&next===lastFocusableIndex){return prevIndex;}return next;});};const focusNext=()=>{event.preventDefault();setFocusedIndex(prevIndex=>{const next=(prevIndex+1)%focusableLen;if(!loop&&next===0){return prevIndex;}return next;});};if(event.key==="Tab"&&navigation.includes("tab")){if(event.shiftKey){focusPrev();}else{focusNext();}}if(navigation.includes("arrows")){if(event.key===prevKey){focusPrev();}if(event.key===nextKey){focusNext();}}},[pause,prevKey,navigation,nextKey,lastFocusableIndex,focusableLen,loop]);React.useEffect(()=>{handleSetElements();},[handleSetElements,initialFocus,direction]);React.useEffect(()=>{const mo=new MutationObserver(handleSetElements);if(rootElement){mo.observe(rootElement,{childList:true,subtree:true,attributeFilter:MUTATION_ATTRIBUTE_FILTER});}return()=>{mo.disconnect();};},[focusableElements,handleSetElements,rootElement]);React.useEffect(()=>{var _a;focusableElements.forEach((el,index)=>{if(index===focusedIndex){el.setAttribute("tabIndex","0");el.setAttribute("aria-selected","true");el.focus();el.onfocus=()=>handleFocus(index);el.onblur=()=>handleFocus(-1);}else{el.setAttribute("tabIndex","-1");el.setAttribute("aria-selected","false");el.onfocus=()=>handleFocus(index);}});if(focusedIndex===-1&&focusableElements){const initialIndex=initialFocus==="last"?lastFocusableIndex:0;(_a=focusableElements[initialIndex])==null?void 0:_a.setAttribute("tabIndex","0");}},[focusableElements,focusedIndex,handleFocus,initialFocus,lastFocusableIndex]);React.useEffect(()=>{rootElement==null?void 0:rootElement.addEventListener("keydown",handleKeyDown);return()=>{rootElement==null?void 0:rootElement.removeEventListener("keydown",handleKeyDown);};},[handleKeyDown,rootElement]);return void 0;}var __freeze=Object.freeze;var __defProp=Object.defineProperty;var __template=(cooked,raw)=>__freeze(__defProp(cooked,"raw",{value:__freeze(raw||cooked.slice())}));var _a;const StyledButton=styled__default.default(TooltipDelayGroupProvider.Button)(_a||(_a=__template(["\n position: relative;\n // The children in button is rendered inside a span, we need to absolutely position it.\n & > span:nth-child(2) {\n position: absolute;\n top: 6px;\n right: 6px;\n padding: 0;\n }\n"])));const Dot=styled__default.default.div({width:4,height:4,borderRadius:3,boxShadow:"0 0 0 1px var(--card-bg-color)"});const StatusButton=React.forwardRef(function StatusButton2(props,ref){const{disabled:disabledProp,icon,label,mode="bleed",text,tone,...restProps}=props;const theme=ui.useTheme();const toneColor=tone&&theme.sanity.color.solid[tone];const dotStyle=React.useMemo(()=>({backgroundColor:toneColor==null?void 0:toneColor.enabled.bg}),[toneColor]);const disabled=Boolean(disabledProp);return/* @__PURE__ */jsxRuntime.jsx(StyledButton,{"data-ui":"StatusButton",...restProps,"aria-label":label,disabled,mode,ref,text,icon,children:tone&&/* @__PURE__ */jsxRuntime.jsx(Dot,{style:dotStyle})});});const TooltipOfDisabled=React.forwardRef(function DisabledTooltip(_ref571,ref){let{children,content,disabled,...restProps}=_ref571;return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{...restProps,content,disabled:disabled||!content,ref,children:/* @__PURE__ */jsxRuntime.jsx("div",{children})});});const ImperativeToast=React.forwardRef((_,ref)=>{const{push}=ui.useToast();React.useImperativeHandle(ref,()=>({push}));return null;});ImperativeToast.displayName="ImperativeToast";const defaults={navbar:200,navbarPopover:5e5,navbarDialog:500001,// pane
449
+ */query:{m:["sanity@".concat(SANITY_VERSION)],locale},tag:"module.version-check",json:true});}function useGetHelpResources(){const client=useClient({apiVersion:"1"});const locale=useCurrentLocale().id;const moduleStatus$=React.useMemo(()=>getHelpResources(client,locale),[client,locale]);return useLoadable(moduleStatus$);}function ResourcesMenuItems(_ref556){let{error,isLoading,value}=_ref556;var _a;const sections=(_a=value==null?void 0:value.resources)==null?void 0:_a.sectionArray;const latestStudioVersion=value==null?void 0:value.latestVersion;const{t}=useTranslation();if(isLoading){return/* @__PURE__ */jsxRuntime.jsx(LoadingBlock,{showText:true});}const fallbackLinks=/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a",text:t("help-resources.action.join-our-community"),href:"https://www.sanity.io/exchange/community",target:"_blank"}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a",text:t("help-resources.action.help-and-support"),href:"https://www.sanity.io/contact/support",target:"_blank"}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a",text:t("help-resources.action.contact-sales"),href:"https://www.sanity.io/contact/sales?ref=studio",target:"_blank"}),/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{})]});return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[(value===void 0||error)&&/* @__PURE__ */jsxRuntime.jsx("div",{children:fallbackLinks}),!error&&(sections==null?void 0:sections.map(subSection=>{if(!subSection)return null;return/* @__PURE__ */jsxRuntime.jsx(SubSection,{subSection},subSection._key);})),/* @__PURE__ */jsxRuntime.jsxs(ui.Box,{padding:3,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,weight:"medium",textOverflow:"ellipsis",children:t("help-resources.studio-version",{studioVersion:SANITY_VERSION})}),!error&&latestStudioVersion&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingTop:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,muted:true,textOverflow:"ellipsis",children:t("help-resources.latest-sanity-version",{latestVersion:latestStudioVersion})})})]})]});}function SubSection(_ref557){let{subSection}=_ref557;var _a;return/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[(_a=subSection==null?void 0:subSection.items)==null?void 0:_a.map(item=>{if(!item||!item.title)return null;switch(item._type){case"externalLink":if(!item.url)return null;return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{as:"a",tone:"default",text:item.title,href:item.url,target:"_blank"},item._key);case"internalAction":if(!item.type)return null;return item.type==="show-welcome-modal"&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuItem,{text:item.title},item._key);default:return null;}}),/* @__PURE__ */jsxRuntime.jsx(ui.MenuDivider,{})]});}var __freeze$g=Object.freeze;var __defProp$g=Object.defineProperty;var __template$g=(cooked,raw)=>__freeze$g(__defProp$g(cooked,"raw",{value:__freeze$g(raw||cooked.slice())}));var _a$g;const StyledMenu=styled__default.default(ui.Menu)(_a$g||(_a$g=__template$g(["\n max-width: 300px;\n min-width: 200px;\n"])));function ResourcesButton(){const{t}=useTranslation();const{value,error,isLoading}=useGetHelpResources();return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.MenuButton,{button:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{"aria-label":t("help-resources.title"),icon:icons.HelpCircleIcon,mode:"bleed",tooltipProps:{content:t("help-resources.title")}}),id:"menu-button-resources",menu:/* @__PURE__ */jsxRuntime.jsx(StyledMenu,{children:/* @__PURE__ */jsxRuntime.jsx(ResourcesMenuItems,{error,isLoading,value})}),popover:{constrainSize:true}});}const FreeTrialProvider=_ref558=>{let{children}=_ref558;var _a;const[data,setData]=React.useState(null);const[showDialog,setShowDialog]=React.useState(false);const[showOnLoad,setShowOnLoad]=React.useState(false);const client=useClient({apiVersion:"2023-12-11"});React.useEffect(()=>{const request=client.observable.request({url:"/journey/trial?studioVersion=".concat(SANITY_VERSION)}).subscribe(response=>{setData(response);if(response==null?void 0:response.showOnLoad){setShowOnLoad(true);setShowDialog(true);}},()=>{});return()=>{request.unsubscribe();};},[client]);const toggleShowContent=React.useCallback(function(){let closeAndReOpen=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;var _a2;if(showOnLoad){setShowOnLoad(false);setShowDialog(closeAndReOpen);if((_a2=data==null?void 0:data.showOnLoad)==null?void 0:_a2.id){client.request({url:"/journey/trial/".concat(data==null?void 0:data.showOnLoad.id),method:"POST"});}}else{setShowDialog(p=>!p);}},[client,showOnLoad,(_a=data==null?void 0:data.showOnLoad)==null?void 0:_a.id]);return/* @__PURE__ */jsxRuntime.jsx(FreeTrialContext.Provider,{value:{data,showDialog,toggleShowContent,showOnLoad},children});};var __freeze$f=Object.freeze;var __defProp$f=Object.defineProperty;var __template$f=(cooked,raw)=>__freeze$f(__defProp$f(cooked,"raw",{value:__freeze$f(raw||cooked.slice())}));var _a$f,_b$b;const ANIMATION_TRANSITION={duration:0.4,type:"spring"};const CARD_VARIANTS={open:{opacity:1,scale:1,x:"-50%"},closed:{opacity:0,scale:0.99,x:"-50%"}};const OVERLAY_VARIANTS={open:{opacity:1},closed:{opacity:0}};const Y_POSITION=12;const MotionOverlay=styled__default.default(framerMotion.motion(ui.Card))(_a$f||(_a$f=__template$f(["\n background-color: var(--card-backdrop-color);\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n"])));const SearchMotionCard=styled__default.default(framerMotion.motion(ui.Card))(_b$b||(_b$b=__template$f(["\n display: flex !important;\n flex-direction: column;\n left: 50%;\n max-height: min(\n calc(100vh - ","vh - ","px),\n ","px\n );\n position: absolute;\n top: ","vh;\n width: min(calc(100vw - ","px), ","px);\n"])),Y_POSITION,POPOVER_INPUT_PADDING,POPOVER_MAX_HEIGHT,Y_POSITION,POPOVER_INPUT_PADDING*2,POPOVER_MAX_WIDTH);function SearchPopover(_ref559){let{disableFocusLock,onClose,onOpen,open}=_ref559;const[inputElement,setInputElement]=React.useState(null);const popoverElement=React.useRef(null);const{isTopLayer,zIndex}=ui.useLayer();const{t}=useTranslation();const{onClose:onSearchClose,state:{filtersVisible,terms}}=useSearchState();const hasValidTerms=hasSearchableTerms({terms});const handleClickOutside=React.useCallback(()=>{if(isTopLayer&&onSearchClose&&open){onSearchClose();}},[isTopLayer,onSearchClose,open]);ui.useClickOutside(handleClickOutside,[popoverElement.current]);return/* @__PURE__ */jsxRuntime.jsx(SearchWrapper,{hasValidTerms,onClose,onOpen,open,children:/* @__PURE__ */jsxRuntime.jsx(framerMotion.AnimatePresence,{children:open&&/* @__PURE__ */jsxRuntime.jsx(ui.Portal,{children:/* @__PURE__ */jsxRuntime.jsxs(FocusLock__default.default,{autoFocus:!supportsTouch,disabled:disableFocusLock,returnFocus:true,children:[/* @__PURE__ */jsxRuntime.jsx(MotionOverlay,{animate:"open",exit:"closed",initial:"closed",style:{zIndex},transition:ANIMATION_TRANSITION,variants:OVERLAY_VARIANTS}),/* @__PURE__ */jsxRuntime.jsxs(SearchMotionCard,{animate:"open",exit:"closed",initial:"closed",overflow:"hidden",radius:POPOVER_RADIUS,ref:popoverElement,shadow:2,style:{zIndex},transition:ANIMATION_TRANSITION,variants:CARD_VARIANTS,children:[/* @__PURE__ */jsxRuntime.jsx(SearchHeader,{ariaInputLabel:hasValidTerms?t("search.search-results-aria-label"):t("search.recent-searches-aria-label"),onClose,ref:setInputElement}),filtersVisible&&/* @__PURE__ */jsxRuntime.jsx(ui.Card,{borderTop:true,flex:"none",children:/* @__PURE__ */jsxRuntime.jsx(Filters,{})}),hasValidTerms?/* @__PURE__ */jsxRuntime.jsx(SearchResults,{inputElement}):/* @__PURE__ */jsxRuntime.jsx(RecentSearches,{inputElement})]})]})})})});}var __freeze$e=Object.freeze;var __defProp$e=Object.defineProperty;var __template$e=(cooked,raw)=>__freeze$e(__defProp$e(cooked,"raw",{value:__freeze$e(raw||cooked.slice())}));var _a$e,_b$a,_c$7;const RootLayer=styled__default.default(ui.Layer)(_a$e||(_a$e=__template$e(["\n min-height: auto;\n position: relative;\n\n &[data-search-open='true'] {\n top: 0;\n position: sticky;\n }\n"])));const RootCard=styled__default.default(ui.Card)(_b$a||(_b$a=__template$e(["\n line-height: 0;\n"])));const NavGrid=styled__default.default(ui.Grid)(_c$7||(_c$7=__template$e(["\n grid-template-columns: auto auto auto;\n"])));function StudioNavbar(){const{name,tools}=useWorkspace();const routerState=router.useRouterState();const mediaIndex=ui.useMediaIndex();const activeToolName=typeof routerState.tool==="string"?routerState.tool:void 0;const newDocumentOptions=useNewDocumentOptions();const{t}=useTranslation();const{onSearchFullscreenOpenChange,onSearchOpenChange,searchFullscreenOpen,searchFullscreenPortalEl,searchOpen}=React.useContext(NavbarContext);const ToolMenu=useToolMenuComponent();const[drawerOpen,setDrawerOpen]=React.useState(false);const routerStateRef=React.useRef(routerState);const workspaceNameRef=React.useRef(name);React.useEffect(()=>{if(routerStateRef.current.tool!==routerState.tool||name!==workspaceNameRef.current){setDrawerOpen(false);}routerStateRef.current=routerState;workspaceNameRef.current=name;},[name,routerState]);const[drawerButtonEl,setDrawerButtonEl]=React.useState(null);const[searchOpenButtonEl,setSearchOpenButtonEl]=React.useState(null);const shouldRender=React.useMemo(()=>({resources:mediaIndex>1,collapsedPresenceMenu:mediaIndex<=1,loginStatus:mediaIndex>1,searchFullscreen:mediaIndex<=1,configIssues:mediaIndex>1&&isDev,newDocumentFullscreen:mediaIndex<=1,tools:mediaIndex>=3}),[mediaIndex]);React.useEffect(()=>{onSearchFullscreenOpenChange(searchFullscreenOpen);},[searchFullscreenOpen,onSearchFullscreenOpenChange]);React.useEffect(()=>{if(shouldRender.searchFullscreen){onSearchOpenChange(false);}else{onSearchFullscreenOpenChange(false);}},[onSearchFullscreenOpenChange,onSearchOpenChange,shouldRender.searchFullscreen]);const handleOpenSearch=React.useCallback(()=>{onSearchOpenChange(true);},[onSearchOpenChange]);const handleOpenSearchFullscreen=React.useCallback(()=>{onSearchFullscreenOpenChange(true);},[onSearchFullscreenOpenChange]);const handleCloseSearch=React.useCallback(()=>{onSearchOpenChange(false);},[onSearchOpenChange]);const handleCloseSearchFullscreen=React.useCallback(()=>{onSearchFullscreenOpenChange(false);searchOpenButtonEl==null?void 0:searchOpenButtonEl.focus();},[onSearchFullscreenOpenChange,searchOpenButtonEl]);const handleCloseDrawer=React.useCallback(()=>{setDrawerOpen(false);drawerButtonEl==null?void 0:drawerButtonEl.focus();},[drawerButtonEl]);const handleOpenDrawer=React.useCallback(()=>{setDrawerOpen(true);},[]);return/* @__PURE__ */jsxRuntime.jsx(FreeTrialProvider,{children:/* @__PURE__ */jsxRuntime.jsxs(RootLayer,{zOffset:100,"data-search-open":searchFullscreenOpen,children:[/* @__PURE__ */jsxRuntime.jsx(RootCard,{borderBottom:true,"data-testid":"studio-navbar","data-ui":"Navbar",padding:3,sizing:"border",children:/* @__PURE__ */jsxRuntime.jsxs(NavGrid,{gap:1,children:[/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.TooltipDelayGroupProvider,{children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",gap:2,justify:"flex-start",children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",gap:2,children:[!shouldRender.tools&&/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{mode:"bleed",icon:icons.MenuIcon,onClick:handleOpenDrawer,ref:setDrawerButtonEl,tooltipProps:{content:t("user-menu.open-menu"),placement:"bottom"}}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{gap:1,children:[/* @__PURE__ */jsxRuntime.jsx(HomeButton,{}),/* @__PURE__ */jsxRuntime.jsx(WorkspaceMenuButton,{})]})]}),/* @__PURE__ */jsxRuntime.jsx(NewDocumentButton,{...newDocumentOptions,modal:shouldRender.newDocumentFullscreen?"dialog":"popover"}),!shouldRender.searchFullscreen&&/* @__PURE__ */jsxRuntime.jsx(SearchButton,{onClick:handleOpenSearch,ref:setSearchOpenButtonEl})]})}),/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center",justify:"center",children:shouldRender.tools&&/* @__PURE__ */jsxRuntime.jsx(ToolMenu,{activeToolName,closeSidebar:handleCloseDrawer,context:"topbar",isSidebarOpen:false,tools})}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.TooltipDelayGroupProvider,{children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",gap:1,justify:"flex-end",children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{gap:1,children:[/* @__PURE__ */jsxRuntime.jsx(ui.LayerProvider,{children:/* @__PURE__ */jsxRuntime.jsx(SearchProvider,{fullscreen:shouldRender.searchFullscreen,children:/* @__PURE__ */jsxRuntime.jsx(ui.BoundaryElementProvider,{element:document.body,children:shouldRender.searchFullscreen?/* @__PURE__ */jsxRuntime.jsx(ui.PortalProvider,{element:searchFullscreenPortalEl,children:/* @__PURE__ */jsxRuntime.jsx(SearchDialog,{onClose:handleCloseSearchFullscreen,onOpen:handleOpenSearchFullscreen,open:searchFullscreenOpen})}):/* @__PURE__ */jsxRuntime.jsx(SearchPopover,{onClose:handleCloseSearch,onOpen:handleOpenSearch,open:searchOpen})})})}),shouldRender.tools&&/* @__PURE__ */jsxRuntime.jsx(FreeTrial,{type:"topbar"}),shouldRender.configIssues&&/* @__PURE__ */jsxRuntime.jsx(ConfigIssuesButton,{}),shouldRender.resources&&/* @__PURE__ */jsxRuntime.jsx(ResourcesButton,{}),/* @__PURE__ */jsxRuntime.jsx(PresenceMenu,{}),shouldRender.searchFullscreen&&/* @__PURE__ */jsxRuntime.jsx(SearchButton,{onClick:handleOpenSearchFullscreen,ref:setSearchOpenButtonEl})]}),shouldRender.tools&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:"none",marginLeft:1,children:/* @__PURE__ */jsxRuntime.jsx(UserMenu,{})})]})})]})}),!shouldRender.tools&&/* @__PURE__ */jsxRuntime.jsx(NavDrawer,{activeToolName,isOpen:drawerOpen,onClose:handleCloseDrawer,tools})]})});}var __freeze$d=Object.freeze;var __defProp$d=Object.defineProperty;var __template$d=(cooked,raw)=>__freeze$d(__defProp$d(cooked,"raw",{value:__freeze$d(raw||cooked.slice())}));var _a$d,_b$9;function _isReactElement(node){return Boolean(node);}const OptionObserveElement=styled__default.default(ObserveElement)(_a$d||(_a$d=__template$d(["\n list-style: none;\n white-space: nowrap;\n flex-shrink: 0;\n opacity: 0;\n visibility: hidden;\n"])));const HiddenRow=styled__default.default(ui.Flex)(_b$9||(_b$9=__template$d(["\n opacity: 0;\n height: 0.1px;\n overflow: hidden;\n"])));const CollapseTabList=React.forwardRef(function CollapseTabList2(props,ref){const{children:childrenProp,gap,menuButtonProps,disableRestoreFocusOnClose,onMenuClose,collapsed,...rest}=props;const[rootEl,setRootEl]=React.useState(null);const[hiddenElements,setHiddenElements]=React.useState([]);const[showChildren,setShowChildren]=React.useState(false);const children=React.useMemo(()=>React__default.default.Children.toArray(childrenProp).filter(_isReactElement),[childrenProp]);const displayChildren=React.useMemo(()=>{if(collapsed)return null;if(!showChildren)return null;return children.filter(c=>!hiddenElements.some(h=>h.key===c.key));},[children,collapsed,hiddenElements,showChildren]);const intersectionOptions=React.useMemo(()=>({root:rootEl,threshold:1,rootMargin:"1px"}),[rootEl]);const menuButton=React.useMemo(()=>(menuButtonProps==null?void 0:menuButtonProps.button)||/* @__PURE__ */jsxRuntime.jsx(ContextMenuButton,{}),[menuButtonProps]);const menuOptionsArray=React.useMemo(()=>collapsed?children:// eslint-disable-next-line max-nested-callbacks
450
+ children.filter(_ref560=>{let{key}=_ref560;return hiddenElements.find(o=>o.key===key);}),[children,hiddenElements,collapsed]);const handleIntersection=React.useCallback((e,child)=>{const isHidden=hiddenElements.some(el=>el.key===child.key);if(!showChildren)setShowChildren(true);const isIntersecting=e.isIntersecting;if(!isHidden&&!isIntersecting)setHiddenElements(prev=>[...prev,child]);if(isHidden&&isIntersecting)setHiddenElements(prev=>prev.filter(el=>el.key!==child.key));},[hiddenElements,showChildren,setShowChildren,setHiddenElements]);return/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{direction:"column",ref,sizing:"border",style:{position:"relative"},...rest,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{justify:"center",gap,flex:1,children:[displayChildren,(hiddenElements.length>0||collapsed)&&/* @__PURE__ */jsxRuntime.jsx(CollapseOverflowMenu,{disableRestoreFocusOnClose,menuButton,menuButtonProps,menuOptions:menuOptionsArray,onMenuClose})]}),/* @__PURE__ */jsxRuntime.jsxs(HiddenRow,{justify:"flex-start",gap,ref:setRootEl,"data-hidden":true,"aria-hidden":"true",children:[React.cloneElement(menuButton,{disabled:true,"aria-hidden":true}),children==null?void 0:children.map(child=>/* @__PURE__ */jsxRuntime.jsx(OptionObserveElement,{options:intersectionOptions,onIntersectionChange:e=>handleIntersection(e[0],child),children:React.cloneElement(child,{disabled:true,"aria-hidden":true,tabIndex:-1})},"".concat(child.key,"_observer")))]})]});});const ToolLink=React.forwardRef(function ToolLink2(props,ref){const{name,...rest}=props;const state=router.useRouterState(React.useCallback(()=>({tool:name,// make sure to clear tool state when navigating to another tool
451
+ [name]:void 0}),[name]));return/* @__PURE__ */jsxRuntime.jsx(router.StateLink,{state,...rest,ref});});function ToolCollapseMenu(props){const{activeToolName,tools}=props;const{scheme}=useColorScheme();const[collapseMenuEl,setCollapseMenuEl]=React.useState(null);useRovingFocus({rootElement:collapseMenuEl,navigation:["arrows"]});const menuButtonProps=React.useMemo(()=>({popover:{constrainSize:true,portal:true,scheme}}),[scheme]);const children=React.useMemo(()=>tools.map((tool,index)=>{const title=(tool==null?void 0:tool.title)||startCase__default.default(tool.name);const Link=React.forwardRef(function Link2(linkProps,ref){return/* @__PURE__ */jsxRuntime.jsx(ToolLink,{...linkProps,ref,name:tool.name,children:linkProps.children});});return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{as:Link,"data-as":"a",mode:"bleed",selected:activeToolName===tool.name,text:title},"".concat(tool.name,"-").concat(index));}),[activeToolName,tools]);return/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{justify:"center",marginX:4,children:/* @__PURE__ */jsxRuntime.jsx(CollapseTabList,{"data-testid":"tool-collapse-menu",gap:1,menuButtonProps,ref:setCollapseMenuEl,children})});}function ToolVerticalMenu(props){const{activeToolName,isVisible,tools}=props;return React.useMemo(()=>/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"ul",space:1,children:tools.map(tool=>{const title=(tool==null?void 0:tool.title)||startCase__default.default(tool.name);const Link=React.forwardRef(function Link2(linkProps,ref){return/* @__PURE__ */jsxRuntime.jsx(ToolLink,{...linkProps,ref,name:tool.name,children:linkProps.children});});return/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{as:"li",children:/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Button,{as:Link,justify:"flex-start",mode:"bleed",selected:activeToolName===tool.name,size:"large",tabIndex:isVisible?0:-1,text:title})},tool.name);})}),[activeToolName,isVisible,tools]);}function StudioToolMenu(props){const{context,isSidebarOpen,tools,...restProps}=props;if(tools.length<=1){return null;}if(context==="sidebar"){return/* @__PURE__ */jsxRuntime.jsx(ToolVerticalMenu,{isVisible:isSidebarOpen,tools,...restProps});}return/* @__PURE__ */jsxRuntime.jsx(ToolCollapseMenu,{tools,...restProps});}function pickToolMenuComponent(plugin){var _a,_b;return(_b=(_a=plugin.studio)==null?void 0:_a.components)==null?void 0:_b.toolMenu;}function pickNavbarComponent(plugin){var _a,_b;return(_b=(_a=plugin.studio)==null?void 0:_a.components)==null?void 0:_b.navbar;}function pickLayoutComponent(plugin){var _a,_b;return(_b=(_a=plugin.studio)==null?void 0:_a.components)==null?void 0:_b.layout;}function useToolMenuComponent(){return useMiddlewareComponents({defaultComponent:StudioToolMenu,pick:pickToolMenuComponent});}function useNavbarComponent(){return useMiddlewareComponents({defaultComponent:StudioNavbar,pick:pickNavbarComponent});}function useLayoutComponent(){return useMiddlewareComponents({defaultComponent:StudioLayoutComponent,pick:pickLayoutComponent});}var __freeze$c=Object.freeze;var __defProp$c=Object.defineProperty;var __template$c=(cooked,raw)=>__freeze$c(__defProp$c(cooked,"raw",{value:__freeze$c(raw||cooked.slice())}));var _a$c;const SearchFullscreenPortalCard=styled__default.default(ui.Card)(_a$c||(_a$c=__template$c(["\n height: 100%;\n left: 0;\n overflow: hidden;\n overflow: clip;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 200;\n"])));const NavbarContext=React.createContext({onSearchFullscreenOpenChange:()=>"",onSearchOpenChange:()=>"",searchFullscreenOpen:false,searchFullscreenPortalEl:null,searchOpen:false});function StudioLayout(){const Layout=useLayoutComponent();return/* @__PURE__ */jsxRuntime.jsx(Layout,{});}function StudioLayoutComponent(){var _a2;const{name,title,tools}=useWorkspace();const router$1=router.useRouter();const activeToolName=router.useRouterState(React.useCallback(routerState=>typeof routerState.tool==="string"?routerState.tool:void 0,[]));const activeTool=React.useMemo(()=>tools.find(tool=>tool.name===activeToolName),[activeToolName,tools]);const[searchFullscreenOpen,setSearchFullscreenOpen]=React.useState(false);const[searchFullscreenPortalEl,setSearchFullscreenPortalEl]=React.useState(null);const[searchOpen,setSearchOpen]=React.useState(false);const documentTitle=React.useMemo(()=>{const mainTitle=title||startCase__default.default(name);if(activeToolName){return"".concat(startCase__default.default(activeToolName)," | ").concat(mainTitle);}return mainTitle;},[activeToolName,name,title]);const toolControlsDocumentTitle=!!(activeTool==null?void 0:activeTool.controlsDocumentTitle);React.useEffect(()=>{if(toolControlsDocumentTitle){return;}document.title=documentTitle;},[documentTitle,toolControlsDocumentTitle]);const handleSearchFullscreenOpenChange=React.useCallback(open=>{setSearchFullscreenOpen(open);},[]);const handleSearchOpenChange=React.useCallback(open=>{setSearchOpen(open);},[]);const navbarContextValue=React.useMemo(()=>({searchFullscreenOpen,searchFullscreenPortalEl,searchOpen,onSearchFullscreenOpenChange:handleSearchFullscreenOpenChange,onSearchOpenChange:handleSearchOpenChange}),[searchFullscreenOpen,searchFullscreenPortalEl,searchOpen,handleSearchFullscreenOpenChange,handleSearchOpenChange]);const Navbar=useNavbarComponent();const isLegacyDeskRedirect=!activeTool&&(activeToolName==="desk"||!activeToolName)&&typeof window!=="undefined"&&/\/desk(\/|$)/.test(window.location.pathname)&&tools.some(tool=>tool.name==="structure");React.useEffect(()=>{if(!isLegacyDeskRedirect){return;}router$1.navigateUrl({path:window.location.pathname.replace(/\/desk/,"/structure"),replace:true});},[isLegacyDeskRedirect,router$1]);return/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{"data-ui":"ToolScreen",direction:"column",height:"fill","data-testid":"studio-layout",children:[/* @__PURE__ */jsxRuntime.jsx(NavbarContext.Provider,{value:navbarContextValue,children:/* @__PURE__ */jsxRuntime.jsx(Navbar,{})}),isLegacyDeskRedirect&&/* @__PURE__ */jsxRuntime.jsx(RedirectingScreen,{}),tools.length===0&&/* @__PURE__ */jsxRuntime.jsx(NoToolsScreen,{}),tools.length>0&&!activeTool&&activeToolName&&!isLegacyDeskRedirect&&/* @__PURE__ */jsxRuntime.jsx(ToolNotFoundScreen,{toolName:activeToolName}),searchFullscreenOpen&&/* @__PURE__ */jsxRuntime.jsx(SearchFullscreenPortalCard,{ref:setSearchFullscreenPortalEl,overflow:"auto"}),/* @__PURE__ */jsxRuntime.jsx(StudioErrorBoundary,{heading:"The ".concat(activeTool==null?void 0:activeTool.name," tool crashed"),children:/* @__PURE__ */jsxRuntime.jsx(ui.Card,{flex:1,hidden:searchFullscreenOpen,children:activeTool&&activeToolName&&/* @__PURE__ */jsxRuntime.jsx(router.RouteScope,{scope:activeToolName,__unsafe_disableScopedSearchParams:(_a2=activeTool.router)==null?void 0:_a2.__unsafe_disableScopedSearchParams,children:/* @__PURE__ */jsxRuntime.jsx(React.Suspense,{fallback:/* @__PURE__ */jsxRuntime.jsx(LoadingBlock,{showText:true}),children:React.createElement(activeTool.component,{tool:activeTool})})})})},activeTool==null?void 0:activeTool.name)]});}function LocaleProvider(props){const{projectId,name:sourceId,i18n:{locales},__internal:{i18next}}=useSource();return/* @__PURE__ */jsxRuntime.jsx(LocaleProviderBase,{...props,projectId,sourceId,locales,i18next});}function LocaleProviderBase(_ref561){let{projectId,sourceId,locales,i18next,children}=_ref561;const subscribe=React.useCallback(callback=>{i18next.on("languageChanged",callback);return()=>i18next.off("languageChanged",callback);},[i18next]);const currentLocale=React.useSyncExternalStore(subscribe,()=>locales.find(candidate=>i18next.language===candidate.id)||defaultLocale);const context=React.useMemo(()=>({locales,currentLocale,__internal:{i18next},changeLocale:async newLocale=>{storePreferredLocale(projectId,sourceId,newLocale);await i18next.changeLanguage(newLocale);}}),[currentLocale,i18next,locales,projectId,sourceId]);return/* @__PURE__ */jsxRuntime.jsx(React.Suspense,{fallback:/* @__PURE__ */jsxRuntime.jsx(LoadingBlock,{}),children:/* @__PURE__ */jsxRuntime.jsx(reactI18next.I18nextProvider,{i18n:i18next,children:/* @__PURE__ */jsxRuntime.jsx(LocaleContext.Provider,{value:context,children},currentLocale.id)})});}const PREVIEW_SIZES={block:{icon:25,media:{width:33,height:33}},blockImage:{icon:25,media:{width:600,height:400}},compact:{icon:21,media:{width:25,height:25}},default:{icon:21,media:{width:33,height:33}},detail:{icon:25,media:{width:73,height:73}},inline:{icon:15,media:{width:15,height:15}},media:{icon:25,media:{width:160,height:160}}};function renderPreviewMedia(value,layout,dimensions){if(reactIs.isValidElementType(value)){return React.createElement(value,{layout,dimensions});}if(typeof value==="string"){return/* @__PURE__ */jsxRuntime.jsx("div",{children:value});}return value;}function renderPreviewNode(value,layout,fallbackNode){if(typeof value==="string"){return value;}if(reactIs.isValidElementType(value)){return React.createElement(value,{layout});}return value||fallbackNode;}var __freeze$b=Object.freeze;var __defProp$b=Object.defineProperty;var __template$b=(cooked,raw)=>__freeze$b(__defProp$b(cooked,"raw",{value:__freeze$b(raw||cooked.slice())}));var _a$b;const MediaWrapper=styled__default.default.span(props=>{const{$dimensions,$layout,$radius,$responsive}=props;const width=$dimensions.width||0;const height=$dimensions.width||0;const iconSize=PREVIEW_SIZES[$layout].icon;return styled.css(_a$b||(_a$b=__template$b(["\n position: relative;\n width: ",";\n height: ",";\n min-width: ",";\n border-radius: ",";\n display: flex;\n overflow: hidden;\n overflow: clip;\n align-items: center;\n justify-content: center;\n\n & img {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: inherit;\n }\n\n & svg {\n // Shared styles for SVG icons\n color: var(--card-icon-color);\n display: block;\n flex: 1;\n\n // Specific styles for non Sanity icons\n &:not([data-sanity-icon]) {\n height: 1em;\n width: 1em;\n max-width: 1em;\n max-height: 1em;\n }\n\n // Specific styles for Sanity icons\n &[data-sanity-icon] {\n display: block;\n font-size: calc("," / 16 * 1em);\n }\n }\n\n & > span[data-border] {\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n box-shadow: inset 0 0 0 1px var(--card-fg-color);\n opacity: 0.1;\n border-radius: inherit;\n pointer-events: none;\n }\n "])),$responsive?"100%":ui.rem(width),$responsive?"100%":ui.rem(height),$responsive?void 0:ui.rem(width),_ref562=>{let{theme}=_ref562;return ui.rem(theme.sanity.radius[$radius]);},iconSize);});MediaWrapper.displayName="MediaWrapper";function Media(props){const{border=true,dimensions,layout,media,radius=1,responsive=false,styles}=props;return/* @__PURE__ */jsxRuntime.jsxs(MediaWrapper,{$dimensions:dimensions,$layout:layout,$radius:radius,$responsive:responsive,className:styles==null?void 0:styles.media,"data-testid":"Media",children:[renderMedia({dimensions,layout,media}),border&&/* @__PURE__ */jsxRuntime.jsx("span",{"data-border":true})]});}function renderMedia(props){const{dimensions,layout,media,styles}=props;if(reactIs.isValidElementType(media)){return React.createElement(media,{dimensions,layout});}if(typeof media==="string"){return/* @__PURE__ */jsxRuntime.jsx(ui.Text,{as:"span",className:styles==null?void 0:styles.mediaString,size:1,children:media});}if(React.isValidElement(media)){return media;}return null;}var __freeze$a=Object.freeze;var __defProp$a=Object.defineProperty;var __template$a=(cooked,raw)=>__freeze$a(__defProp$a(cooked,"raw",{value:__freeze$a(raw||cooked.slice())}));var _a$a,_b$8;const DEFAULT_MEDIA_DIMENSIONS$6={...PREVIEW_SIZES.compact.media,aspect:1,fit:"crop",dpr:useDevicePixelRatio.getDevicePixelRatio()};const Root$4=styled__default.default(ui.Flex)(_a$a||(_a$a=__template$a(["\n height: ",";\n box-sizing: content-box;\n"])),ui.rem(PREVIEW_SIZES.compact.media.height));const TitleSkeleton$3=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_b$8||(_b$8=__template$a(["\n max-width: ",";\n width: 80%;\n"])),ui.rem(160));function CompactPreview(props){const{children,isPlaceholder,media,status,title}=props;const{t}=useTranslation();const statusNode=status&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{"data-testid":"compact-preview__status",paddingLeft:4,paddingRight:1,children:renderPreviewNode(status,"compact")});if(isPlaceholder){return/* @__PURE__ */jsxRuntime.jsx(Root$4,{align:"center","data-testid":"default-preview",paddingLeft:media?1:2,paddingRight:2,paddingY:1,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:2,children:[media&&/* @__PURE__ */jsxRuntime.jsx(ui.Skeleton,{animated:true,radius:2,style:PREVIEW_SIZES.compact.media}),/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{"data-testid":"compact-preview__heading",flex:1,space:2,children:/* @__PURE__ */jsxRuntime.jsx(TitleSkeleton$3,{})}),statusNode]})});}return/* @__PURE__ */jsxRuntime.jsxs(Root$4,{align:"center","data-testid":"compact-preview",paddingLeft:media?1:2,paddingRight:2,paddingY:1,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:2,children:[media&&/* @__PURE__ */jsxRuntime.jsx(Media,{border:false,dimensions:DEFAULT_MEDIA_DIMENSIONS$6,layout:"compact",media}),/* @__PURE__ */jsxRuntime.jsx(ui.Stack,{"data-testid":"compact-preview__header",flex:1,space:2,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{size:1,style:{color:"inherit"},textOverflow:"ellipsis",weight:"medium",children:[title&&renderPreviewNode(title,"compact"),!title&&/* @__PURE__ */jsxRuntime.jsx("span",{style:{color:"var(--card-muted-fg-color)"},children:t("preview.default.title-fallback")})]})}),statusNode]}),children&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginLeft:1,children})]});}var __freeze$9=Object.freeze;var __defProp$9=Object.defineProperty;var __template$9=(cooked,raw)=>__freeze$9(__defProp$9(cooked,"raw",{value:__freeze$9(raw||cooked.slice())}));var _a$9,_b$7,_c$6;const DEFAULT_MEDIA_DIMENSIONS$5={...PREVIEW_SIZES.default.media,aspect:1,fit:"crop",dpr:useDevicePixelRatio.getDevicePixelRatio()};const Root$3=styled__default.default(ui.Flex)(_a$9||(_a$9=__template$9(["\n height: ",";\n box-sizing: content-box;\n"])),ui.rem(PREVIEW_SIZES.default.media.height));const TitleSkeleton$2=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_b$7||(_b$7=__template$9(["\n max-width: ",";\n width: 80%;\n"])),ui.rem(160));const SubtitleSkeleton$2=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_c$6||(_c$6=__template$9(["\n max-width: ",";\n width: 60%;\n"])),ui.rem(120));function DefaultPreview(props){const{title,subtitle,media,status,isPlaceholder,children,styles}=props;const{t}=useTranslation();const rootClassName=classNames__default.default(styles==null?void 0:styles.root,Boolean(subtitle)&&(styles==null?void 0:styles.hasSubtitle));const statusNode=status&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{className:styles==null?void 0:styles.status,"data-testid":"default-preview__status",children:renderPreviewNode(status,"default")});if(isPlaceholder){return/* @__PURE__ */jsxRuntime.jsx(Root$3,{align:"center",className:styles==null?void 0:styles.placeholder,"data-testid":"default-preview",padding:2,paddingLeft:media?2:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:2,children:[media&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:"none",children:/* @__PURE__ */jsxRuntime.jsx(ui.Skeleton,{animated:true,radius:1,style:PREVIEW_SIZES.default.media})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{"data-testid":"default-preview__heading",flex:1,space:2,children:[/* @__PURE__ */jsxRuntime.jsx(TitleSkeleton$2,{}),/* @__PURE__ */jsxRuntime.jsx(SubtitleSkeleton$2,{})]}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:"none",padding:1,children:statusNode})]})});}return/* @__PURE__ */jsxRuntime.jsx(Root$3,{align:"center",className:rootClassName,"data-testid":"default-preview",padding:2,paddingLeft:media?2:3,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:2,children:[media&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:"none",children:/* @__PURE__ */jsxRuntime.jsx(Media,{dimensions:DEFAULT_MEDIA_DIMENSIONS$5,layout:"default",media,styles})}),/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{className:styles==null?void 0:styles.heading,"data-testid":"default-preview__header",flex:1,space:2,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{className:styles==null?void 0:styles.title,size:1,style:{color:"inherit"},textOverflow:"ellipsis",weight:"medium",children:[title&&renderPreviewNode(title,"default"),!title&&/* @__PURE__ */jsxRuntime.jsx("span",{style:{color:"var(--card-muted-fg-color)"},children:t("preview.default.title-fallback")})]}),subtitle&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",className:styles==null?void 0:styles.subtitle,children:renderPreviewNode(subtitle,"default")})]}),/* @__PURE__ */jsxRuntime.jsx(ui.Box,{flex:"none",padding:1,children:statusNode}),children&&/* @__PURE__ */jsxRuntime.jsx("div",{className:styles==null?void 0:styles.children,children})]})});}var __freeze$8=Object.freeze;var __defProp$8=Object.defineProperty;var __template$8=(cooked,raw)=>__freeze$8(__defProp$8(cooked,"raw",{value:__freeze$8(raw||cooked.slice())}));var _a$8,_b$6,_c$5,_d$2,_e$1,_f,_g;const RootFlex=styled__default.default(ui.Flex).attrs({align:"center"})(_a$8||(_a$8=__template$8(["\n height: ",";\n"])),ui.rem(PREVIEW_SIZES.detail.media.height));const StatusBox=styled__default.default(ui.Box)(_b$6||(_b$6=__template$8(["\n white-space: nowrap;\n"])));const MediaSkeleton$1=styled__default.default(ui.Skeleton).attrs({animated:true,radius:2})(_c$5||(_c$5=__template$8(["\n width: ",";\n height: ",";\n"])),ui.rem(PREVIEW_SIZES.detail.media.width),ui.rem(PREVIEW_SIZES.detail.media.height));const TitleSkeleton$1=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_d$2||(_d$2=__template$8(["\n max-width: ","; /* 80% of 200px */\n width: 80%;\n"])),ui.rem(160));const SubtitleSkeleton$1=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_e$1||(_e$1=__template$8(["\n max-width: ","; /* 60% of 200px */\n width: 60%;\n"])),ui.rem(120));const DescriptionSkeleton=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_f||(_f=__template$8(["\n max-width: ","; /* 90% of 200px */\n width: 90%;\n"])),ui.rem(180));const DescriptionText=styled__default.default(ui.Text)(_ref563=>{let{theme}=_ref563;const{fonts}=theme.sanity;const textSize1=fonts.text.sizes[1];const maxLines=2;const maxHeight=textSize1.lineHeight*maxLines;return styled.css(_g||(_g=__template$8(["\n & > span {\n max-height: ",";\n\n /* Multi-line text overflow */\n display: -webkit-box;\n overflow: hidden;\n overflow: clip;\n text-overflow: ellipsis;\n -webkit-line-clamp: ",";\n -webkit-box-orient: vertical;\n }\n "])),ui.rem(maxHeight),maxLines);});const DEFAULT_MEDIA_DIMENSIONS$4={...PREVIEW_SIZES.detail.media,fit:"crop",aspect:1,dpr:useDevicePixelRatio.getDevicePixelRatio()};function DetailPreview(props){const{title,subtitle,description,mediaDimensions=DEFAULT_MEDIA_DIMENSIONS$4,media,status,children,isPlaceholder}=props;const{t}=useTranslation();const statusNode=status&&/* @__PURE__ */jsxRuntime.jsx(StatusBox,{marginLeft:3,paddingRight:1,children:renderPreviewNode(status,"detail")});if(isPlaceholder){return/* @__PURE__ */jsxRuntime.jsx(RootFlex,{"data-testid":"detail-preview",paddingLeft:media?2:3,paddingRight:2,paddingY:2,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:3,children:[media&&/* @__PURE__ */jsxRuntime.jsx(MediaSkeleton$1,{"data-testid":"detail-preview__media"}),/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"center","data-testid":"detail-preview__header",flex:1,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,space:2,children:[/* @__PURE__ */jsxRuntime.jsx(TitleSkeleton$1,{}),/* @__PURE__ */jsxRuntime.jsx(SubtitleSkeleton$1,{}),description&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:1,children:/* @__PURE__ */jsxRuntime.jsx(DescriptionSkeleton,{})})]})}),statusNode]})});}return/* @__PURE__ */jsxRuntime.jsx(RootFlex,{"data-testid":"detail-preview",paddingLeft:media?2:3,paddingRight:2,paddingY:2,children:/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center",flex:1,gap:3,children:[media&&/* @__PURE__ */jsxRuntime.jsx(Media,{dimensions:mediaDimensions,layout:"detail",media}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{align:"center","data-testid":"detail-preview__header",flex:1,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,space:2,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Text,{textOverflow:"ellipsis",size:1,style:{color:"inherit"},weight:"medium",children:[title&&renderPreviewNode(title,"detail"),!title&&/* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment,{children:t("preview.default.title-fallback")})]}),subtitle&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:renderPreviewNode(subtitle,"detail")}),description&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:1,children:/* @__PURE__ */jsxRuntime.jsx(DescriptionText,{muted:true,size:1,children:renderPreviewNode(description,"detail")})})]}),statusNode]}),children]})});}var __freeze$7=Object.freeze;var __defProp$7=Object.defineProperty;var __template$7=(cooked,raw)=>__freeze$7(__defProp$7(cooked,"raw",{value:__freeze$7(raw||cooked.slice())}));var _a$7,_b$5,_c$4;const SIZE=43;const STROKE_WIDTH$1=3;const Root$2=styled__default.default.svg(_a$7||(_a$7=__template$7(["\n width: ","px;\n height: ","px;\n transform: rotate(-90deg);\n"])),SIZE,SIZE);const BgCircle=styled__default.default.circle(_ref564=>{let{theme}=_ref564;const{color:color$1}=theme.sanity;return styled.css(_b$5||(_b$5=__template$7(["\n fill: none;\n stroke: ",";\n stroke-width: ","px;\n "])),color.hues.gray[color$1.dark?900:100].hex,STROKE_WIDTH$1);});const ProgressCircle=styled__default.default.circle(_ref565=>{let{theme}=_ref565;const{color:color$1}=theme.sanity;return styled.css(_c$4||(_c$4=__template$7(["\n fill: none;\n stroke: ",";\n stroke-width: ","px;\n transition: stroke-dashoffset 75ms;\n "])),color.hues.blue[color$1.dark?400:500].hex,STROKE_WIDTH$1);});function CircularProgress(props){const{value:valueProp}=props;const value=Math.min(Math.max(valueProp,0),100);const radius=SIZE/2-STROKE_WIDTH$1/2;const circ=2*Math.PI*radius;const offset=(100-value)/100*circ;const viewBox="".concat(SIZE/2," ").concat(SIZE/2," ").concat(SIZE," ").concat(SIZE);return/* @__PURE__ */jsxRuntime.jsxs(Root$2,{viewBox,children:[/* @__PURE__ */jsxRuntime.jsx(BgCircle,{cx:SIZE,cy:SIZE,r:radius}),/* @__PURE__ */jsxRuntime.jsx(ProgressCircle,{cx:SIZE,cy:SIZE,r:radius,style:{strokeDasharray:circ,strokeDashoffset:"".concat(offset,"px")}})]});}var __freeze$6=Object.freeze;var __defProp$6=Object.defineProperty;var __template$6=(cooked,raw)=>__freeze$6(__defProp$6(cooked,"raw",{value:__freeze$6(raw||cooked.slice())}));var _a$6,_b$4;const STROKE_WIDTH=0.5;const Root$1=styled__default.default(ui.Card)(_a$6||(_a$6=__template$6(["\n overflow: hidden;\n overflow: clip;\n"])));const Bar=styled__default.default(ui.Card)(_ref566=>{let{theme}=_ref566;const{color:color$1}=theme.sanity;return styled.css(_b$4||(_b$4=__template$6(["\n height: ","rem;\n background: ",";\n transition: transform 75ms;\n "])),STROKE_WIDTH,color.hues.blue[color$1.dark?400:500].hex);});function LinearProgress(props){const{value}=props;return/* @__PURE__ */jsxRuntime.jsx(Root$1,{radius:5,children:/* @__PURE__ */jsxRuntime.jsx(Bar,{radius:5,style:{transform:"translate3d(".concat(value-100,"%, 0, 0)")}})});}var __freeze$5=Object.freeze;var __defProp$5=Object.defineProperty;var __template$5=(cooked,raw)=>__freeze$5(__defProp$5(cooked,"raw",{value:__freeze$5(raw||cooked.slice())}));var _a$5,_b$3,_c$3,_d$1,_e;const RootBox$1=styled__default.default(ui.Box)(_a$5||(_a$5=__template$5(["\n position: relative;\n"])));const MediaFlex=styled__default.default(ui.Flex).attrs({align:"center",justify:"center"})(_b$3||(_b$3=__template$5(["\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n"])));const MediaSkeleton=styled__default.default(ui.Skeleton).attrs({animated:true,radius:2})(_c$3||(_c$3=__template$5(["\n width: 100%;\n height: 100%;\n"])));const ProgressFlex=styled__default.default(ui.Flex).attrs({align:"center",justify:"center"})(_d$1||(_d$1=__template$5(["\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n\n &:before {\n background-color: var(--card-bg-color);\n opacity: 0.75;\n content: '';\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n }\n\n > svg {\n position: relative;\n z-index: 2;\n }\n"])));const TooltipContentStack=styled__default.default(ui.Stack).attrs({space:2})(_e||(_e=__template$5(["\n max-width: ",";\n"])),ui.rem(200));const DEFAULT_MEDIA_DIMENSIONS$3={...PREVIEW_SIZES.media.media,aspect:1,fit:"crop",dpr:useDevicePixelRatio.getDevicePixelRatio()};function MediaPreview(props){const{media,mediaDimensions=DEFAULT_MEDIA_DIMENSIONS$3,children,isPlaceholder,progress=-1,subtitle,title,withBorder=true,withRadius=true}=props;const aspect=mediaDimensions.aspect||1;const STYLES_PADDER=React.useMemo(()=>({paddingBottom:"".concat(100/aspect,"%")}),[aspect]);const tooltipContent=React.useMemo(()=>{if(!title||!subtitle){return null;}return/* @__PURE__ */jsxRuntime.jsxs(TooltipContentStack,{children:[title&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{align:"center",size:1,weight:"medium",children:renderPreviewNode(title,"media")}),subtitle&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{align:"center",muted:true,size:1,children:renderPreviewNode(subtitle,"media")})]});},[subtitle,title]);return/* @__PURE__ */jsxRuntime.jsx(ui.Box,{padding:2,children:/* @__PURE__ */jsxRuntime.jsxs(RootBox$1,{"data-testid":"media-preview",flex:1,overflow:"hidden",children:[/* @__PURE__ */jsxRuntime.jsx("div",{style:STYLES_PADDER}),/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{content:tooltipContent,disabled:!tooltipContent,placement:"top",portal:true,children:/* @__PURE__ */jsxRuntime.jsxs(MediaFlex,{children:[isPlaceholder?/* @__PURE__ */jsxRuntime.jsx(MediaSkeleton,{}):/* @__PURE__ */jsxRuntime.jsx(Media,{border:withBorder,dimensions:mediaDimensions,layout:"media",media,radius:withRadius?1:0,responsive:true}),typeof progress==="number"&&progress>-1&&/* @__PURE__ */jsxRuntime.jsx(ProgressFlex,{children:/* @__PURE__ */jsxRuntime.jsx(CircularProgress,{value:progress})})]})}),children]})});}var __freeze$4=Object.freeze;var __defProp$4=Object.defineProperty;var __template$4=(cooked,raw)=>__freeze$4(__defProp$4(cooked,"raw",{value:__freeze$4(raw||cooked.slice())}));var _a$4,_b$2,_c$2;const HeaderFlex$2=styled__default.default(ui.Flex).attrs({align:"center"})(_a$4||(_a$4=__template$4(["\n height: ",";\n white-space: nowrap;\n position: relative;\n z-index: 1;\n"])),ui.rem(PREVIEW_SIZES.block.media.height));const MediaCard=styled__default.default(ui.Card)(_b$2||(_b$2=__template$4(["\n overflow: hidden;\n position: relative;\n padding-bottom: ","%;\n\n & > span {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n"])),_ref567=>{let{$ratio}=_ref567;return $ratio;});const RootBox=styled__default.default(ui.Box).attrs({overflow:"hidden"})(_c$2||(_c$2=__template$4(["\n border-radius: ","px;\n"])),_ref568=>{let{theme}=_ref568;return theme.sanity.radius[1];});const DEFAULT_MEDIA_DIMENSIONS$2={...PREVIEW_SIZES.blockImage.media,fit:"fillmax",dpr:useDevicePixelRatio.getDevicePixelRatio()};const getRatio=dimensions=>{const{height,width}=dimensions;if(!height||!width){return 1;}return height/width*100;};function BlockImagePreview(props){const{actions,title,subtitle,description,fallbackTitle="Untitled",mediaDimensions=DEFAULT_MEDIA_DIMENSIONS$2,media,children,status}=props;return/* @__PURE__ */jsxRuntime.jsxs(RootBox,{children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{children:[/* @__PURE__ */jsxRuntime.jsxs(HeaderFlex$2,{paddingBottom:3,paddingLeft:2,paddingRight:1,paddingTop:1,children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,space:2,children:[(title||fallbackTitle)&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,textOverflow:"ellipsis",weight:"medium",children:title?renderPreviewNode(title,"block"):fallbackTitle}),subtitle&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:renderPreviewNode(subtitle,"block")})]}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{gap:1,paddingLeft:1,children:[status&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,paddingY:3,children:renderPreviewNode(status,"block")}),actions]})]}),/* @__PURE__ */jsxRuntime.jsx(MediaCard,{$ratio:getRatio(mediaDimensions),__unstable_checkered:true,display:"flex",sizing:"border",radius:2,tone:"inherit",children:/* @__PURE__ */jsxRuntime.jsx(Media,{border:false,dimensions:mediaDimensions,layout:"blockImage",media,radius:0,responsive:true})})]}),description&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,paddingY:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,children:renderPreviewNode(description,"block")})}),children&&/* @__PURE__ */jsxRuntime.jsx("div",{children})]});}var __freeze$3=Object.freeze;var __defProp$3=Object.defineProperty;var __template$3=(cooked,raw)=>__freeze$3(__defProp$3(cooked,"raw",{value:__freeze$3(raw||cooked.slice())}));var _a$3;const DEFAULT_MEDIA_DIMENSIONS$1={...PREVIEW_SIZES.block.media,aspect:1,fit:"crop",dpr:useDevicePixelRatio.getDevicePixelRatio()};const HeaderFlex$1=styled__default.default(ui.Flex).attrs({align:"center"})(_a$3||(_a$3=__template$3(["\n min-height: ",";\n"])),ui.rem(PREVIEW_SIZES.block.media.height));function BlockPreview(props){const{actions,title,subtitle,description,mediaDimensions=DEFAULT_MEDIA_DIMENSIONS$1,media,status,children}=props;return/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{"data-testid":"block-preview",space:1,children:[/* @__PURE__ */jsxRuntime.jsxs(HeaderFlex$1,{"data-testid":"block-preview__header",children:[media&&/* @__PURE__ */jsxRuntime.jsx(Media,{dimensions:mediaDimensions,layout:"block",media}),/* @__PURE__ */jsxRuntime.jsxs(ui.Box,{flex:1,paddingLeft:media?2:1,children:[/* @__PURE__ */jsxRuntime.jsx(ui.Text,{size:1,textOverflow:"ellipsis",weight:"medium",children:title?renderPreviewNode(title,"block"):"Untitled"}),subtitle&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:2,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:renderPreviewNode(subtitle,"block")})}),description&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:renderPreviewNode(description,"block")})})]}),/* @__PURE__ */jsxRuntime.jsxs(ui.Flex,{gap:1,paddingLeft:1,children:[status&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{paddingX:2,paddingY:3,children:renderPreviewNode(status,"block")}),actions]})]}),children&&/* @__PURE__ */jsxRuntime.jsx("div",{"data-testid":"block-preview__children",children})]});}var __freeze$2=Object.freeze;var __defProp$2=Object.defineProperty;var __template$2=(cooked,raw)=>__freeze$2(__defProp$2(cooked,"raw",{value:__freeze$2(raw||cooked.slice())}));var _a$2,_b$1,_c$1;const RootSpan=styled__default.default.span(_a$2||(_a$2=__template$2(["\n display: inline-flex;\n align-items: center;\n vertical-align: top;\n height: calc(1em - 1px);\n max-width: 100%;\n"])));const MediaSpan=styled__default.default.span(_b$1||(_b$1=__template$2(["\n position: relative;\n display: inline-block;\n width: calc(1em - 1px);\n height: calc(1em - 1px);\n min-width: calc(1em - 1px);\n\n & img {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: ",";\n }\n\n & img + span {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n box-shadow: inset 0 0 0 1px var(--card-fg-color);\n opacity: 0.2;\n border-radius: ",";\n }\n\n & svg {\n display: block;\n font-size: calc(14 / 16 * 1em);\n margin: 1px 0;\n\n &[data-sanity-icon] {\n font-size: calc(18 / 16 * 1em);\n margin: calc(1px + (2 / 18 * -1em)) 0;\n }\n }\n"])),_ref569=>{let{theme}=_ref569;return ui.rem(theme.sanity.radius[1]);},_ref570=>{let{theme}=_ref570;return ui.rem(theme.sanity.radius[1]);});const TextSpan=styled__default.default(ui.Text).attrs({forwardedAs:"span"})(_ref571=>{let{theme}=_ref571;const textFont=theme.sanity.fonts.text;const textSize=textFont.sizes[1];return styled.css(_c$1||(_c$1=__template$2(["\n font-size: calc("," / 16 * 1em);\n font-weight: ",";\n box-sizing: border-box;\n display: inline-block;\n vertical-align: top;\n line-height: ",";\n padding-left: 0.5em;\n padding-right: calc(0.5em - 2px);\n min-width: 0;\n\n & > span {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n }\n "])),textSize.fontSize,textFont.weights.medium,textSize.lineHeight/textSize.fontSize);});const DEFAULT_MEDIA_DIMENSIONS={...PREVIEW_SIZES.inline.media,fit:"crop",aspect:1,dpr:useDevicePixelRatio.getDevicePixelRatio()};function InlinePreview(props){const{title,fallbackTitle="Untitled",media,mediaDimensions=DEFAULT_MEDIA_DIMENSIONS}=props;return/* @__PURE__ */jsxRuntime.jsxs(RootSpan,{"data-testid":"inline-preview",children:[media&&/* @__PURE__ */jsxRuntime.jsxs(MediaSpan,{"data-testid":"inline-preview-media",children:[renderPreviewMedia(media,"inline",mediaDimensions),/* @__PURE__ */jsxRuntime.jsx("span",{})]}),/* @__PURE__ */jsxRuntime.jsx(TextSpan,{"data-testid":"inline-preview-title",size:1,children:renderPreviewNode(title,"inline",fallbackTitle)})]});}var __freeze$1=Object.freeze;var __defProp$1=Object.defineProperty;var __template$1=(cooked,raw)=>__freeze$1(__defProp$1(cooked,"raw",{value:__freeze$1(raw||cooked.slice())}));var _a$1,_b,_c,_d;const DEFAULT_MEDIA_DIMENSION={...PREVIEW_SIZES.default.media,aspect:1,fit:"crop",dpr:useDevicePixelRatio.getDevicePixelRatio()};const Root=styled__default.default(ui.Box)(_a$1||(_a$1=__template$1(["\n height: 100%;\n\n a {\n color: currentColor;\n text-decoration: none;\n }\n\n svg[data-sanity-icon] {\n margin: 0;\n }\n"])));const HeaderFlex=styled__default.default(ui.Flex).attrs({align:"center"})(_b||(_b=__template$1(["\n height: ",";\n"])),ui.rem(PREVIEW_SIZES.default.media.height));const TitleSkeleton=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1})(_c||(_c=__template$1(["\n max-width: ",";\n width: 80%;\n"])),ui.rem(160));const SubtitleSkeleton=styled__default.default(ui.TextSkeleton).attrs({animated:true,radius:1,size:1})(_d||(_d=__template$1(["\n max-width: ",";\n width: 60%;\n"])),ui.rem(120));function TemplatePreview(props){const{description,isPlaceholder,media,mediaDimensions=DEFAULT_MEDIA_DIMENSION,subtitle,title="Untitled"}=props;if(isPlaceholder){return/* @__PURE__ */jsxRuntime.jsx(Root,{children:/* @__PURE__ */jsxRuntime.jsx(HeaderFlex,{children:/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,space:2,children:[/* @__PURE__ */jsxRuntime.jsx(TitleSkeleton,{}),/* @__PURE__ */jsxRuntime.jsx(SubtitleSkeleton,{})]})})});}return/* @__PURE__ */jsxRuntime.jsxs(Root,{children:[/* @__PURE__ */jsxRuntime.jsxs(HeaderFlex,{children:[/* @__PURE__ */jsxRuntime.jsxs(ui.Stack,{flex:1,space:2,children:[reactIs.isValidElementType(title)&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{textOverflow:"ellipsis",children:React.createElement(title,{layout:"default"})}),React.isValidElement(title)&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{textOverflow:"ellipsis",children:title}),reactIs.isValidElementType(subtitle)&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:React.createElement(subtitle,{layout:"default"})}),React.isValidElement(subtitle)&&/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,textOverflow:"ellipsis",children:subtitle})]}),media&&/* @__PURE__ */jsxRuntime.jsx(ui.Flex,{align:"flex-start",paddingLeft:2,children:/* @__PURE__ */jsxRuntime.jsx(Media,{dimensions:mediaDimensions,layout:"default",media})})]}),description&&/* @__PURE__ */jsxRuntime.jsx(ui.Box,{marginTop:3,children:/* @__PURE__ */jsxRuntime.jsx(ui.Text,{muted:true,size:1,style:{whiteSpace:"break-spaces"},children:description})})]});}const MUTATION_ATTRIBUTE_FILTER=["aria-hidden","disabled","href"];const FOCUSABLE='a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])';function getFocusableElements(element){return[...element.querySelectorAll(FOCUSABLE)].filter(el=>!el.hasAttribute("disabled")&&el.getAttribute("aria-hidden")!=="true");}function useRovingFocus(props){const{direction="horizontal",initialFocus,loop=true,navigation=["arrows"],pause=false,rootElement}=props;const[focusedIndex,setFocusedIndex]=React.useState(-1);const[focusableElements,setFocusableElements]=React.useState([]);const focusableLen=focusableElements.length;const lastFocusableIndex=focusableLen-1;const nextKey=direction==="horizontal"?"ArrowRight":"ArrowDown";const prevKey=direction==="horizontal"?"ArrowLeft":"ArrowUp";const handleSetElements=React.useCallback(()=>{if(rootElement){const els=getFocusableElements(rootElement);setFocusableElements(els);}},[rootElement]);const handleFocus=React.useCallback(index=>{setFocusedIndex(index);},[]);const handleKeyDown=React.useCallback(event=>{if(pause){return;}const focusPrev=()=>{event.preventDefault();setFocusedIndex(prevIndex=>{const next=(prevIndex+lastFocusableIndex)%focusableLen;if(!loop&&next===lastFocusableIndex){return prevIndex;}return next;});};const focusNext=()=>{event.preventDefault();setFocusedIndex(prevIndex=>{const next=(prevIndex+1)%focusableLen;if(!loop&&next===0){return prevIndex;}return next;});};if(event.key==="Tab"&&navigation.includes("tab")){if(event.shiftKey){focusPrev();}else{focusNext();}}if(navigation.includes("arrows")){if(event.key===prevKey){focusPrev();}if(event.key===nextKey){focusNext();}}},[pause,prevKey,navigation,nextKey,lastFocusableIndex,focusableLen,loop]);React.useEffect(()=>{handleSetElements();},[handleSetElements,initialFocus,direction]);React.useEffect(()=>{const mo=new MutationObserver(handleSetElements);if(rootElement){mo.observe(rootElement,{childList:true,subtree:true,attributeFilter:MUTATION_ATTRIBUTE_FILTER});}return()=>{mo.disconnect();};},[focusableElements,handleSetElements,rootElement]);React.useEffect(()=>{var _a;focusableElements.forEach((el,index)=>{if(index===focusedIndex){el.setAttribute("tabIndex","0");el.setAttribute("aria-selected","true");el.focus();el.onfocus=()=>handleFocus(index);el.onblur=()=>handleFocus(-1);}else{el.setAttribute("tabIndex","-1");el.setAttribute("aria-selected","false");el.onfocus=()=>handleFocus(index);}});if(focusedIndex===-1&&focusableElements){const initialIndex=initialFocus==="last"?lastFocusableIndex:0;(_a=focusableElements[initialIndex])==null?void 0:_a.setAttribute("tabIndex","0");}},[focusableElements,focusedIndex,handleFocus,initialFocus,lastFocusableIndex]);React.useEffect(()=>{rootElement==null?void 0:rootElement.addEventListener("keydown",handleKeyDown);return()=>{rootElement==null?void 0:rootElement.removeEventListener("keydown",handleKeyDown);};},[handleKeyDown,rootElement]);return void 0;}var __freeze=Object.freeze;var __defProp=Object.defineProperty;var __template=(cooked,raw)=>__freeze(__defProp(cooked,"raw",{value:__freeze(raw||cooked.slice())}));var _a;const StyledButton=styled__default.default(TooltipDelayGroupProvider.Button)(_a||(_a=__template(["\n position: relative;\n // The children in button is rendered inside a span, we need to absolutely position it.\n & > span:nth-child(2) {\n position: absolute;\n top: 6px;\n right: 6px;\n padding: 0;\n }\n"])));const Dot=styled__default.default.div({width:4,height:4,borderRadius:3,boxShadow:"0 0 0 1px var(--card-bg-color)"});const StatusButton=React.forwardRef(function StatusButton2(props,ref){const{disabled:disabledProp,icon,label,mode="bleed",text,tone,...restProps}=props;const theme=ui.useTheme();const toneColor=tone&&theme.sanity.color.solid[tone];const dotStyle=React.useMemo(()=>({backgroundColor:toneColor==null?void 0:toneColor.enabled.bg}),[toneColor]);const disabled=Boolean(disabledProp);return/* @__PURE__ */jsxRuntime.jsx(StyledButton,{"data-ui":"StatusButton",...restProps,"aria-label":label,disabled,mode,ref,text,icon,children:tone&&/* @__PURE__ */jsxRuntime.jsx(Dot,{style:dotStyle})});});const TooltipOfDisabled=React.forwardRef(function DisabledTooltip(_ref572,ref){let{children,content,disabled,...restProps}=_ref572;return/* @__PURE__ */jsxRuntime.jsx(TooltipDelayGroupProvider.Tooltip,{...restProps,content,disabled:disabled||!content,ref,children:/* @__PURE__ */jsxRuntime.jsx("div",{children})});});const ImperativeToast=React.forwardRef((_,ref)=>{const{push}=ui.useToast();React.useImperativeHandle(ref,()=>({push}));return null;});ImperativeToast.displayName="ImperativeToast";const defaults={navbar:200,navbarPopover:5e5,navbarDialog:500001,// pane
452
452
  pane:100,paneHeader:[110,15e3],paneFooter:[120,2e4],paneResizer:[130,25e3],//
453
453
  popover:200,modal:200,movingItem:1e4,drawershade:1e6,drawer:1000001,fullscreen:12e5,toast:[100,11e3],// NOT IN USE
454
- portal:200,dropdown:200,navbarFixed:1010,fullscreenEdit:1050,popoverBackground:1060,tooltip:200,modalBackground:2e3,spinner:3e3};const ZIndexContext=React.createContext(defaults);function useZIndex(){return React.useContext(ZIndexContext);}function LegacyLayerProvider(_ref572){let{children,zOffset:zOffsetKey}=_ref572;const zIndex=useZIndex();const zOffset=zIndex[zOffsetKey];return/* @__PURE__ */jsxRuntime.jsx(ui.LayerProvider,{zOffset,children});}const TransformPatches=React.memo(function OnChangeProvider(props){const{transform}=props;const callbacks=useFormCallbacks();const handleChange=React.useCallback(patchEvent=>{const patches=patchEvent.patches;const transformedPatches=transform(patches);callbacks.onChange(PatchEvent.from(transformedPatches));},[callbacks,transform]);const contextValue=React.useMemo(()=>({...callbacks,onChange:handleChange}),[callbacks,handleChange]);return/* @__PURE__ */jsxRuntime.jsx(FormCallbacksContext.Provider,{value:contextValue,children:props.children});});exports.ActiveWorkspaceMatcher=ActiveWorkspaceMatcher;exports.ActiveWorkspaceMatcherContext=ActiveWorkspaceMatcherContext;exports.ArrayOfObjectOptionsInput=ArrayOfObjectOptionsInput;exports.ArrayOfObjectsFunctions=ArrayOfObjectsFunctions;exports.ArrayOfObjectsInput=ArrayOfObjectsInput;exports.ArrayOfObjectsItem=ArrayOfObjectsItem;exports.ArrayOfOptionsInput=ArrayOfOptionsInput;exports.ArrayOfPrimitiveOptionsInput=ArrayOfPrimitiveOptionsInput;exports.ArrayOfPrimitivesFunctions=ArrayOfPrimitivesFunctions;exports.ArrayOfPrimitivesInput=ArrayOfPrimitivesInput;exports.ArrayOfPrimitivesItem=ArrayOfPrimitivesItem;exports.AutoCollapseMenu=AutoCollapseMenu;exports.BlockImagePreview=BlockImagePreview;exports.BlockPreview=BlockPreview;exports.BooleanInput=BooleanInput;exports.CONNECTING=CONNECTING;exports.ChangeBreadcrumb=ChangeBreadcrumb;exports.ChangeIndicator=ChangeIndicator;exports.ChangeIndicatorContext=ChangeIndicatorContext;exports.ChangeList=ChangeList;exports.ChangeResolver=ChangeResolver;exports.ChangeTitleSegment=ChangeTitleSegment;exports.Checkbox=Checkbox;exports.CircularProgress=CircularProgress;exports.CollapseMenu=CollapseMenu;exports.CollapseMenuButton=CollapseMenuButton;exports.ColorSchemeCustomProvider=ColorSchemeCustomProvider;exports.ColorSchemeLocalStorageProvider=ColorSchemeLocalStorageProvider;exports.ColorSchemeProvider=ColorSchemeProvider;exports.ColorSchemeSetValueContext=ColorSchemeSetValueContext;exports.ColorSchemeValueContext=ColorSchemeValueContext;exports.CommandList=CommandList;exports.CompactPreview=CompactPreview;exports.ConfigPropertyError=ConfigPropertyError;exports.ConfigResolutionError=ConfigResolutionError;exports.Connector=Connector;exports.ConnectorContext=ConnectorContext;exports.ContextMenuButton=ContextMenuButton;exports.CorsOriginError=CorsOriginError;exports.DEBUG_LAYER_BOUNDS=DEBUG_LAYER_BOUNDS;exports.DEFAULT_MAX_RECURSION_DEPTH=DEFAULT_MAX_RECURSION_DEPTH;exports.DEFAULT_STUDIO_CLIENT_OPTIONS=DEFAULT_STUDIO_CLIENT_OPTIONS;exports.DRAFTS_FOLDER=DRAFTS_FOLDER;exports.DateInput=DateInput;exports.DateTimeInput=DateTimeInput;exports.DatetimeFieldDiff=DatetimeFieldDiff;exports.DefaultMarkers=DefaultMarkers;exports.DefaultPreview=DefaultPreview;exports.DetailPreview=DetailPreview;exports.DiffCard=DiffCard;exports.DiffContext=DiffContext;exports.DiffErrorBoundary=DiffErrorBoundary;exports.DiffFromTo=DiffFromTo;exports.DiffInspectWrapper=DiffInspectWrapper;exports.DiffString=DiffString;exports.DiffStringSegment=DiffStringSegment;exports.DiffTooltip=DiffTooltip;exports.DocumentChangeContext=DocumentChangeContext;exports.DocumentFieldActionsProvider=DocumentFieldActionsProvider;exports.DocumentIdProvider=DocumentIdProvider;exports.DocumentPreviewPresence=DocumentPreviewPresence;exports.DocumentStatus=DocumentStatus;exports.DocumentStatusIndicator=DocumentStatusIndicator;exports.EMPTY_ARRAY=EMPTY_ARRAY$9;exports.EMPTY_OBJECT=EMPTY_OBJECT;exports.EmailInput=EmailInput;exports.FallbackDiff=FallbackDiff;exports.FieldActionMenu=FieldActionMenu;exports.FieldActionsProvider=FieldActionsProvider;exports.FieldActionsResolver=FieldActionsResolver;exports.FieldChange=FieldChange;exports.FieldPresence=FieldPresence;exports.FieldPresenceInner=FieldPresenceInner;exports.FieldPresenceWithOverlay=FieldPresenceWithOverlay;exports.FieldPresenceWithoutOverlay=FieldPresenceWithoutOverlay;exports.FormBuilderContext=FormBuilderContext;exports.FormCallbacksContext=FormCallbacksContext;exports.FormCallbacksProvider=FormCallbacksProvider;exports.FormField=FormField;exports.FormFieldHeaderText=FormFieldHeaderText;exports.FormFieldPresenceContext=FormFieldPresenceContext;exports.FormFieldSet=FormFieldSet;exports.FormFieldStatus=FormFieldStatus;exports.FormFieldValidationStatus=FormFieldValidationStatus;exports.FormInput=FormInput;exports.FormValueProvider=FormValueProvider;exports.FromTo=FromTo;exports.FromToArrow=FromToArrow;exports.GetFormValueProvider=GetFormValueProvider;exports.GlobalStyle=GlobalStyle;exports.GroupChange=GroupChange;exports.HookStateContainer=HookStateContainer;exports.HoveredFieldContext=HoveredFieldContext;exports.ImperativeToast=ImperativeToast;exports.InlinePreview=InlinePreview;exports.InsufficientPermissionsMessage=InsufficientPermissionsMessage;exports.LegacyLayerProvider=LegacyLayerProvider;exports.LinearProgress=LinearProgress;exports.LoadingBlock=LoadingBlock;exports.LocaleProvider=LocaleProvider;exports.LocaleProviderBase=LocaleProviderBase;exports.MediaPreview=MediaPreview;exports.MemberField=MemberField;exports.MemberFieldError=MemberFieldError;exports.MemberFieldSet=MemberFieldSet;exports.MemberItemError=MemberItemError;exports.MetaInfo=MetaInfo;exports.NavbarContext=NavbarContext;exports.NoChanges=NoChanges;exports.NumberInput=NumberInput;exports.ObjectInput=ObjectInput;exports.ObjectInputMember=ObjectInputMember;exports.ObjectInputMembers=ObjectInputMembers;exports.ObjectMembers=ObjectMembers;exports.OverlayDisabled=OverlayDisabled;exports.PatchEvent=PatchEvent;exports.PopoverDialog=PopoverDialog;exports.PortableTextInput=PortableTextInput;exports.PresenceOverlay=PresenceOverlay;exports.PresenceProvider=PresenceProvider;exports.Preview=Preview;exports.PreviewCard=PreviewCard$1;exports.PreviewLoader=PreviewLoader;exports.ReferenceInputOptionsProvider=ReferenceInputOptionsProvider;exports.ResourceCacheProvider=ResourceCacheProvider;exports.RevertChangesButton=RevertChangesButton;exports.ReviewChangesContext=ReviewChangesContext;exports.SANITY_PATCH_TYPE=SANITY_PATCH_TYPE;exports.SANITY_VERSION=SANITY_VERSION;exports.SESSION_ID=SESSION_ID;exports.SanityDefaultPreview=SanityDefaultPreview;exports.SchemaError=SchemaError;exports.ScrollContainer=ScrollContainer;exports.ScrollContext=ScrollContext;exports.SearchButton=SearchButton;exports.SearchDialog=SearchDialog;exports.SelectInput=SelectInput;exports.SlugInput=SlugInput;exports.SlugPreview=SlugPreview;exports.SourceProvider=SourceProvider;exports.StatusButton=StatusButton;exports.StringInput=StringInput;exports.StringPreview=StringPreview;exports.StudioCrossDatasetReferenceInput=StudioCrossDatasetReferenceInput;exports.StudioFileInput=StudioFileInput;exports.StudioImageInput=StudioImageInput;exports.StudioLayout=StudioLayout;exports.StudioLayoutComponent=StudioLayoutComponent;exports.StudioNavbar=StudioNavbar;exports.StudioProvider=StudioProvider;exports.StudioReferenceInput=StudioReferenceInput;exports.StudioToolMenu=StudioToolMenu;exports.SvgWrapper=SvgWrapper;exports.TagsArrayInput=TagsArrayInput;exports.TemplatePreview=TemplatePreview;exports.TextInput=TextInput;exports.TextWithTone=TextWithTone;exports.Timeline=Timeline;exports.TimelineController=TimelineController;exports.ToolLink=ToolLink;exports.TooltipOfDisabled=TooltipOfDisabled;exports.Tracker=Tracker$1;exports.TransformPatches=TransformPatches;exports.Translate=Translate;exports.UniversalArrayInput=UniversalArrayInput;exports.UrlInput=UrlInput;exports.UserAvatar=UserAvatar;exports.UserColorManagerProvider=UserColorManagerProvider;exports.ValidationProvider=ValidationProvider;exports.ValueError=ValueError;exports.VirtualizerScrollInstanceContext=VirtualizerScrollInstanceContext;exports.VirtualizerScrollInstanceProvider=VirtualizerScrollInstanceProvider;exports.WorkspaceProvider=WorkspaceProvider;exports.WorkspacesContext=WorkspacesContext;exports.WorkspacesProvider=WorkspacesProvider;exports.ZIndexContext=ZIndexContext;exports.__tmp_wrap_presenceStore=__tmp_wrap_presenceStore;exports._createAuthStore=_createAuthStore;exports._useColorSchemeInternalValue=_useColorSchemeInternalValue;exports.asLoadable=asLoadable;exports.checkoutPair=checkoutPair;exports.collate=collate;exports.createAuthStore=createAuthStore;exports.createBufferedDocument=createBufferedDocument;exports.createConnectionStatusStore=createConnectionStatusStore;exports.createDocumentPreviewStore=createDocumentPreviewStore;exports.createDocumentStore=createDocumentStore;exports.createDraftFrom=createDraftFrom;exports.createGrantsStore=createGrantsStore;exports.createHistoryStore=createHistoryStore;exports.createHookFromObservableFactory=createHookFromObservableFactory;exports.createObservableBufferedDocument=createObservableBufferedDocument;exports.createProjectStore=createProjectStore;exports.createPublishedFrom=createPublishedFrom;exports.createSchema=createSchema;exports.createSearchQuery=createSearchQuery;exports.createSettingsStore=createSettingsStore;exports.createSharedResizeObserver=createSharedResizeObserver;exports.createTrackerScope=createTrackerScope;exports.createUseReporter=createUseReporter;exports.createUserColorManager=createUserColorManager;exports.createUserStore=createUserStore;exports.dec=dec;exports.defaultLocale=defaultLocale;exports.defaultResolveAnnotationComponent=defaultResolveAnnotationComponent;exports.defaultResolveBlockComponent=defaultResolveBlockComponent;exports.defaultResolveFieldComponent=defaultResolveFieldComponent;exports.defaultResolveInlineBlockComponent=defaultResolveInlineBlockComponent;exports.defaultResolveInputComponent=defaultResolveInputComponent;exports.defaultResolveItemComponent=defaultResolveItemComponent;exports.defaultTheme=defaultTheme;exports.defaults=defaults;exports.defineLocale=defineLocale;exports.defineLocaleResourceBundle=defineLocaleResourceBundle;exports.defineLocalesResources=defineLocalesResources;exports.defineSearchFilter=defineSearchFilter;exports.defineSearchFilterOperators=defineSearchFilterOperators;exports.defineSearchOperator=defineSearchOperator;exports.diffMatchPatch=diffMatchPatch;exports.documentFieldActionsReducer=documentFieldActionsReducer;exports.documentIdEquals=documentIdEquals;exports.editState=editState;exports.emitOperation=emitOperation;exports.escapeField=escapeField;exports.fieldNeedsEscape=fieldNeedsEscape;exports.findIndex=findIndex;exports.flattenConfig=flattenConfig;exports.getAnnotationAtPath=getAnnotationAtPath;exports.getAnnotationColor=getAnnotationColor;exports.getDiffAtPath=getDiffAtPath;exports.getDocumentPairPermissions=getDocumentPairPermissions;exports.getDocumentValuePermissions=getDocumentValuePermissions;exports.getDraftId=getDraftId;exports.getFieldLevel=getFieldLevel;exports.getIdPair=getIdPair;exports.getInitialValueStream=getInitialValueStream;exports.getItemKey=getItemKey$1;exports.getItemKeySegment=getItemKeySegment;exports.getNamelessWorkspaceIdentifier=getNamelessWorkspaceIdentifier;exports.getPairListener=getPairListener;exports.getPreviewPaths=getPreviewPaths;exports.getPreviewStateObservable=getPreviewStateObservable;exports.getPreviewValueWithFallback=getPreviewValueWithFallback;exports.getProviderTitle=getProviderTitle;exports.getPublishedId=getPublishedId;exports.getSchemaTypeTitle=getSchemaTypeTitle;exports.getSearchTypesWithMaxDepth=getSearchTypesWithMaxDepth;exports.getSearchableTypes=getSearchableTypes;exports.getTemplatePermissions=getTemplatePermissions;exports.getValueAtPath=getValueAtPath;exports.getValueError=getValueError;exports.getWorkspaceIdentifier=getWorkspaceIdentifier;exports.globalScope=globalScope;exports.grantsPermissionOn=grantsPermissionOn;exports.immutableReconcile=immutableReconcile;exports.inc=inc;exports.initialDocumentFieldActions=initialDocumentFieldActions;exports.insert=insert;exports.intlCache=intlCache;exports.isAddedItemDiff=isAddedItemDiff;exports.isArrayOfBlocksInputProps=isArrayOfBlocksInputProps;exports.isArrayOfObjectsInputProps=isArrayOfObjectsInputProps;exports.isArrayOfPrimitivesInputProps=isArrayOfPrimitivesInputProps;exports.isAuthStore=isAuthStore;exports.isBooleanInputProps=isBooleanInputProps;exports.isBuilder=isBuilder;exports.isCookielessCompatibleLoginMethod=isCookielessCompatibleLoginMethod;exports.isDev=isDev;exports.isDraft=isDraft;exports.isDraftId=isDraftId;exports.isEmptyObject=isEmptyObject$1;exports.isFieldChange=isFieldChange;exports.isGroupChange=isGroupChange;exports.isMemberArrayOfObjects=isMemberArrayOfObjects;exports.isMemberObject=isMemberObject;exports.isNonNullable=isNonNullable$2;exports.isNumberInputProps=isNumberInputProps;exports.isObjectInputProps=isObjectInputProps;exports.isObjectItemProps=isObjectItemProps;exports.isProd=isProd;exports.isPublishedId=isPublishedId;exports.isRecord=isRecord$4;exports.isRemovedItemDiff=isRemovedItemDiff;exports.isString=isString;exports.isStringInputProps=isStringInputProps;exports.isUnchangedDiff=isUnchangedDiff;exports.joinPath=joinPath;exports.listenQuery=listenQuery;exports.matchWorkspace=matchWorkspace;exports.memoize=memoize;exports.memoizeKeyGen=memoizeKeyGen;exports.memoizedPair=memoizedPair;exports.newDraftFrom=newDraftFrom;exports.noop=noop$2;exports.normalizeIndexSegment=normalizeIndexSegment;exports.normalizeIndexTupleSegment=normalizeIndexTupleSegment;exports.normalizeKeySegment=normalizeKeySegment;exports.normalizePathSegment=normalizePathSegment;exports.onRetry=onRetry;exports.operationEvents=operationEvents;exports.operatorDefinitions=operatorDefinitions;exports.pathToString=pathToString;exports.pathsAreEqual=pathsAreEqual;exports.prefixPath=prefixPath;exports.prepareConfig=prepareConfig;exports.prepareForPreview=prepareForPreview;exports.removeDupes=removeDupes;exports.removeMissingReferences=removeMissingReferences;exports.removeUndefinedLocaleResources=removeUndefinedLocaleResources;exports.resizeObserver=resizeObserver;exports.resolveDiffComponent=resolveDiffComponent;exports.resolveInitialObjectValue=resolveInitialObjectValue;exports.resolveInitialValue=resolveInitialValue;exports.resolveInitialValueForType=resolveInitialValueForType;exports.set=set$2;exports.setIfMissing=setIfMissing;exports.sliceString=sliceString;exports.snapshotPair=snapshotPair;exports.stringToPath=stringToPath;exports.supportsTouch=supportsTouch;exports.truncateString=truncateString;exports.unset=unset;exports.usEnglishLocale=usEnglishLocale;exports.useActiveWorkspace=useActiveWorkspace;exports.useAnnotationColor=useAnnotationColor;exports.useAnnotationComponent=useAnnotationComponent;exports.useBlockComponent=useBlockComponent;exports.useClient=useClient;exports.useColorScheme=useColorScheme;exports.useColorSchemeOptions=useColorSchemeOptions;exports.useColorSchemeSetValue=useColorSchemeSetValue;exports.useColorSchemeValue=useColorSchemeValue;exports.useConnectionStatusStore=useConnectionStatusStore;exports.useCurrentLocale=useCurrentLocale;exports.useCurrentUser=useCurrentUser;exports.useDataset=useDataset;exports.useDateTimeFormat=useDateTimeFormat;exports.useDidUpdate=useDidUpdate;exports.useDiffAnnotationColor=useDiffAnnotationColor;exports.useDocumentChange=useDocumentChange;exports.useDocumentOperation=useDocumentOperation;exports.useDocumentPairPermissions=useDocumentPairPermissions;exports.useDocumentPairPermissionsFromHookFactory=useDocumentPairPermissionsFromHookFactory;exports.useDocumentPresence=useDocumentPresence;exports.useDocumentPreview=useDocumentPreview;exports.useDocumentPreviewStore=useDocumentPreviewStore;exports.useDocumentStore=useDocumentStore;exports.useDocumentValuePermissions=useDocumentValuePermissions;exports.useDocumentValuePermissionsFromHookFactory=useDocumentValuePermissionsFromHookFactory;exports.useDocumentValues=useDocumentValues;exports.useFeatureEnabled=useFeatureEnabled;exports.useFieldActions=useFieldActions;exports.useFieldComponent=useFieldComponent;exports.useFormBuilder=useFormBuilder;exports.useFormCallbacks=useFormCallbacks;exports.useFormValue=useFormValue;exports.useGetI18nText=useGetI18nText;exports.useGlobalPresence=useGlobalPresence;exports.useGrantsStore=useGrantsStore;exports.useHistoryStore=useHistoryStore;exports.useHoveredField=useHoveredField;exports.useI18nText=useI18nText;exports.useInitialValue=useInitialValue;exports.useInitialValueResolverContext=useInitialValueResolverContext;exports.useInlineBlockComponent=useInlineBlockComponent;exports.useInputComponent=useInputComponent;exports.useItemComponent=useItemComponent;exports.useListFormat=useListFormat;exports.useLoadable=useLoadable;exports.useLocale=useLocale;exports.useMiddlewareComponents=useMiddlewareComponents;exports.usePresenceStore=usePresenceStore;exports.usePreviewCard=usePreviewCard;exports.usePreviewComponent=usePreviewComponent;exports.useProjectId=useProjectId$1;exports.useProjectStore=useProjectStore;exports.useReferenceInputOptions=useReferenceInputOptions;exports.useReferringDocuments=useReferringDocuments;exports.useRelativeTime=useRelativeTime;exports.useReportedValues=useReportedValues$1;exports.useReporter=useReporter$1;exports.useResolveInitialValueForType=useResolveInitialValueForType;exports.useResourceCache=useResourceCache;exports.useRovingFocus=useRovingFocus;exports.useSchema=useSchema;exports.useSearchMaxFieldDepth=useSearchMaxFieldDepth;exports.useSettingsStore=useSettingsStore;exports.useSource=useSource;exports.useTemplatePermissions=useTemplatePermissions;exports.useTemplatePermissionsFromHookFactory=useTemplatePermissionsFromHookFactory;exports.useTemplates=useTemplates;exports.useTranslation=useTranslation;exports.useUnique=useUnique;exports.useUnitFormatter=useUnitFormatter;exports.useUser=useUser;exports.useUserColor=useUserColor;exports.useUserColorManager=useUserColorManager;exports.useUserStore=useUserStore;exports.useVirtualizerScrollInstance=useVirtualizerScrollInstance;exports.useWorkspace=useWorkspace;exports.useWorkspaces=useWorkspaces;exports.useZIndex=useZIndex;exports.userHasRole=userHasRole;exports.validateBasePaths=validateBasePaths;exports.validateDocument=validateDocument;exports.validateNames=validateNames;exports.validateTemplates=validateTemplates;exports.validateWorkspaces=validateWorkspaces;exports.validation=validation;exports.visitDiff=visitDiff;
455
- //# sourceMappingURL=_internalBrowser-Y0qKZ-GA.js.map
454
+ portal:200,dropdown:200,navbarFixed:1010,fullscreenEdit:1050,popoverBackground:1060,tooltip:200,modalBackground:2e3,spinner:3e3};const ZIndexContext=React.createContext(defaults);function useZIndex(){return React.useContext(ZIndexContext);}function LegacyLayerProvider(_ref573){let{children,zOffset:zOffsetKey}=_ref573;const zIndex=useZIndex();const zOffset=zIndex[zOffsetKey];return/* @__PURE__ */jsxRuntime.jsx(ui.LayerProvider,{zOffset,children});}const TransformPatches=React.memo(function OnChangeProvider(props){const{transform}=props;const callbacks=useFormCallbacks();const handleChange=React.useCallback(patchEvent=>{const patches=patchEvent.patches;const transformedPatches=transform(patches);callbacks.onChange(PatchEvent.from(transformedPatches));},[callbacks,transform]);const contextValue=React.useMemo(()=>({...callbacks,onChange:handleChange}),[callbacks,handleChange]);return/* @__PURE__ */jsxRuntime.jsx(FormCallbacksContext.Provider,{value:contextValue,children:props.children});});exports.ActiveWorkspaceMatcher=ActiveWorkspaceMatcher;exports.ActiveWorkspaceMatcherContext=ActiveWorkspaceMatcherContext;exports.ArrayOfObjectOptionsInput=ArrayOfObjectOptionsInput;exports.ArrayOfObjectsFunctions=ArrayOfObjectsFunctions;exports.ArrayOfObjectsInput=ArrayOfObjectsInput;exports.ArrayOfObjectsItem=ArrayOfObjectsItem;exports.ArrayOfOptionsInput=ArrayOfOptionsInput;exports.ArrayOfPrimitiveOptionsInput=ArrayOfPrimitiveOptionsInput;exports.ArrayOfPrimitivesFunctions=ArrayOfPrimitivesFunctions;exports.ArrayOfPrimitivesInput=ArrayOfPrimitivesInput;exports.ArrayOfPrimitivesItem=ArrayOfPrimitivesItem;exports.AutoCollapseMenu=AutoCollapseMenu;exports.BlockImagePreview=BlockImagePreview;exports.BlockPreview=BlockPreview;exports.BooleanInput=BooleanInput;exports.CONNECTING=CONNECTING;exports.ChangeBreadcrumb=ChangeBreadcrumb;exports.ChangeIndicator=ChangeIndicator;exports.ChangeIndicatorContext=ChangeIndicatorContext;exports.ChangeList=ChangeList;exports.ChangeResolver=ChangeResolver;exports.ChangeTitleSegment=ChangeTitleSegment;exports.Checkbox=Checkbox;exports.CircularProgress=CircularProgress;exports.CollapseMenu=CollapseMenu;exports.CollapseMenuButton=CollapseMenuButton;exports.ColorSchemeCustomProvider=ColorSchemeCustomProvider;exports.ColorSchemeLocalStorageProvider=ColorSchemeLocalStorageProvider;exports.ColorSchemeProvider=ColorSchemeProvider;exports.ColorSchemeSetValueContext=ColorSchemeSetValueContext;exports.ColorSchemeValueContext=ColorSchemeValueContext;exports.CommandList=CommandList;exports.CompactPreview=CompactPreview;exports.ConfigPropertyError=ConfigPropertyError;exports.ConfigResolutionError=ConfigResolutionError;exports.Connector=Connector;exports.ConnectorContext=ConnectorContext;exports.ContextMenuButton=ContextMenuButton;exports.CorsOriginError=CorsOriginError;exports.DEBUG_LAYER_BOUNDS=DEBUG_LAYER_BOUNDS;exports.DEFAULT_MAX_RECURSION_DEPTH=DEFAULT_MAX_RECURSION_DEPTH;exports.DEFAULT_STUDIO_CLIENT_OPTIONS=DEFAULT_STUDIO_CLIENT_OPTIONS;exports.DRAFTS_FOLDER=DRAFTS_FOLDER;exports.DateInput=DateInput;exports.DateTimeInput=DateTimeInput;exports.DatetimeFieldDiff=DatetimeFieldDiff;exports.DefaultMarkers=DefaultMarkers;exports.DefaultPreview=DefaultPreview;exports.DetailPreview=DetailPreview;exports.DiffCard=DiffCard;exports.DiffContext=DiffContext;exports.DiffErrorBoundary=DiffErrorBoundary;exports.DiffFromTo=DiffFromTo;exports.DiffInspectWrapper=DiffInspectWrapper;exports.DiffString=DiffString;exports.DiffStringSegment=DiffStringSegment;exports.DiffTooltip=DiffTooltip;exports.DocumentChangeContext=DocumentChangeContext;exports.DocumentFieldActionsProvider=DocumentFieldActionsProvider;exports.DocumentIdProvider=DocumentIdProvider;exports.DocumentPreviewPresence=DocumentPreviewPresence;exports.DocumentStatus=DocumentStatus;exports.DocumentStatusIndicator=DocumentStatusIndicator;exports.EMPTY_ARRAY=EMPTY_ARRAY$9;exports.EMPTY_OBJECT=EMPTY_OBJECT;exports.EmailInput=EmailInput;exports.FallbackDiff=FallbackDiff;exports.FieldActionMenu=FieldActionMenu;exports.FieldActionsProvider=FieldActionsProvider;exports.FieldActionsResolver=FieldActionsResolver;exports.FieldChange=FieldChange;exports.FieldPresence=FieldPresence;exports.FieldPresenceInner=FieldPresenceInner;exports.FieldPresenceWithOverlay=FieldPresenceWithOverlay;exports.FieldPresenceWithoutOverlay=FieldPresenceWithoutOverlay;exports.FormBuilderContext=FormBuilderContext;exports.FormCallbacksContext=FormCallbacksContext;exports.FormCallbacksProvider=FormCallbacksProvider;exports.FormField=FormField;exports.FormFieldHeaderText=FormFieldHeaderText;exports.FormFieldPresenceContext=FormFieldPresenceContext;exports.FormFieldSet=FormFieldSet;exports.FormFieldStatus=FormFieldStatus;exports.FormFieldValidationStatus=FormFieldValidationStatus;exports.FormInput=FormInput;exports.FormValueProvider=FormValueProvider;exports.FromTo=FromTo;exports.FromToArrow=FromToArrow;exports.GetFormValueProvider=GetFormValueProvider;exports.GlobalStyle=GlobalStyle;exports.GroupChange=GroupChange;exports.HookStateContainer=HookStateContainer;exports.HoveredFieldContext=HoveredFieldContext;exports.ImperativeToast=ImperativeToast;exports.InlinePreview=InlinePreview;exports.InsufficientPermissionsMessage=InsufficientPermissionsMessage;exports.LegacyLayerProvider=LegacyLayerProvider;exports.LinearProgress=LinearProgress;exports.LoadingBlock=LoadingBlock;exports.LocaleProvider=LocaleProvider;exports.LocaleProviderBase=LocaleProviderBase;exports.MediaPreview=MediaPreview;exports.MemberField=MemberField;exports.MemberFieldError=MemberFieldError;exports.MemberFieldSet=MemberFieldSet;exports.MemberItemError=MemberItemError;exports.MetaInfo=MetaInfo;exports.NavbarContext=NavbarContext;exports.NoChanges=NoChanges;exports.NumberInput=NumberInput;exports.ObjectInput=ObjectInput;exports.ObjectInputMember=ObjectInputMember;exports.ObjectInputMembers=ObjectInputMembers;exports.ObjectMembers=ObjectMembers;exports.OverlayDisabled=OverlayDisabled;exports.PatchEvent=PatchEvent;exports.PopoverDialog=PopoverDialog;exports.PortableTextInput=PortableTextInput;exports.PresenceOverlay=PresenceOverlay;exports.PresenceProvider=PresenceProvider;exports.Preview=Preview;exports.PreviewCard=PreviewCard$1;exports.PreviewLoader=PreviewLoader;exports.ReferenceInputOptionsProvider=ReferenceInputOptionsProvider;exports.ResourceCacheProvider=ResourceCacheProvider;exports.RevertChangesButton=RevertChangesButton;exports.ReviewChangesContext=ReviewChangesContext;exports.SANITY_PATCH_TYPE=SANITY_PATCH_TYPE;exports.SANITY_VERSION=SANITY_VERSION;exports.SESSION_ID=SESSION_ID;exports.SanityDefaultPreview=SanityDefaultPreview;exports.SchemaError=SchemaError;exports.ScrollContainer=ScrollContainer;exports.ScrollContext=ScrollContext;exports.SearchButton=SearchButton;exports.SearchDialog=SearchDialog;exports.SelectInput=SelectInput;exports.SlugInput=SlugInput;exports.SlugPreview=SlugPreview;exports.SourceProvider=SourceProvider;exports.StatusButton=StatusButton;exports.StringInput=StringInput;exports.StringPreview=StringPreview;exports.StudioCrossDatasetReferenceInput=StudioCrossDatasetReferenceInput;exports.StudioFileInput=StudioFileInput;exports.StudioImageInput=StudioImageInput;exports.StudioLayout=StudioLayout;exports.StudioLayoutComponent=StudioLayoutComponent;exports.StudioNavbar=StudioNavbar;exports.StudioProvider=StudioProvider;exports.StudioReferenceInput=StudioReferenceInput;exports.StudioToolMenu=StudioToolMenu;exports.SvgWrapper=SvgWrapper;exports.TagsArrayInput=TagsArrayInput;exports.TemplatePreview=TemplatePreview;exports.TextInput=TextInput;exports.TextWithTone=TextWithTone;exports.Timeline=Timeline;exports.TimelineController=TimelineController;exports.ToolLink=ToolLink;exports.TooltipOfDisabled=TooltipOfDisabled;exports.Tracker=Tracker$1;exports.TransformPatches=TransformPatches;exports.Translate=Translate;exports.UniversalArrayInput=UniversalArrayInput;exports.UrlInput=UrlInput;exports.UserAvatar=UserAvatar;exports.UserColorManagerProvider=UserColorManagerProvider;exports.ValidationProvider=ValidationProvider;exports.ValueError=ValueError;exports.VirtualizerScrollInstanceContext=VirtualizerScrollInstanceContext;exports.VirtualizerScrollInstanceProvider=VirtualizerScrollInstanceProvider;exports.WorkspaceProvider=WorkspaceProvider;exports.WorkspacesContext=WorkspacesContext;exports.WorkspacesProvider=WorkspacesProvider;exports.ZIndexContext=ZIndexContext;exports.__tmp_wrap_presenceStore=__tmp_wrap_presenceStore;exports._createAuthStore=_createAuthStore;exports._useColorSchemeInternalValue=_useColorSchemeInternalValue;exports.asLoadable=asLoadable;exports.checkoutPair=checkoutPair;exports.collate=collate;exports.createAuthStore=createAuthStore;exports.createBufferedDocument=createBufferedDocument;exports.createConnectionStatusStore=createConnectionStatusStore;exports.createDocumentPreviewStore=createDocumentPreviewStore;exports.createDocumentStore=createDocumentStore;exports.createDraftFrom=createDraftFrom;exports.createGrantsStore=createGrantsStore;exports.createHistoryStore=createHistoryStore;exports.createHookFromObservableFactory=createHookFromObservableFactory;exports.createObservableBufferedDocument=createObservableBufferedDocument;exports.createProjectStore=createProjectStore;exports.createPublishedFrom=createPublishedFrom;exports.createSchema=createSchema;exports.createSearchQuery=createSearchQuery;exports.createSettingsStore=createSettingsStore;exports.createSharedResizeObserver=createSharedResizeObserver;exports.createTrackerScope=createTrackerScope;exports.createUseReporter=createUseReporter;exports.createUserColorManager=createUserColorManager;exports.createUserStore=createUserStore;exports.dec=dec;exports.defaultLocale=defaultLocale;exports.defaultResolveAnnotationComponent=defaultResolveAnnotationComponent;exports.defaultResolveBlockComponent=defaultResolveBlockComponent;exports.defaultResolveFieldComponent=defaultResolveFieldComponent;exports.defaultResolveInlineBlockComponent=defaultResolveInlineBlockComponent;exports.defaultResolveInputComponent=defaultResolveInputComponent;exports.defaultResolveItemComponent=defaultResolveItemComponent;exports.defaultTheme=defaultTheme;exports.defaults=defaults;exports.defineLocale=defineLocale;exports.defineLocaleResourceBundle=defineLocaleResourceBundle;exports.defineLocalesResources=defineLocalesResources;exports.defineSearchFilter=defineSearchFilter;exports.defineSearchFilterOperators=defineSearchFilterOperators;exports.defineSearchOperator=defineSearchOperator;exports.diffMatchPatch=diffMatchPatch;exports.documentFieldActionsReducer=documentFieldActionsReducer;exports.documentIdEquals=documentIdEquals;exports.editState=editState;exports.emitOperation=emitOperation;exports.escapeField=escapeField;exports.fieldNeedsEscape=fieldNeedsEscape;exports.findIndex=findIndex;exports.flattenConfig=flattenConfig;exports.getAnnotationAtPath=getAnnotationAtPath;exports.getAnnotationColor=getAnnotationColor;exports.getDiffAtPath=getDiffAtPath;exports.getDocumentPairPermissions=getDocumentPairPermissions;exports.getDocumentValuePermissions=getDocumentValuePermissions;exports.getDraftId=getDraftId;exports.getFieldLevel=getFieldLevel;exports.getIdPair=getIdPair;exports.getInitialValueStream=getInitialValueStream;exports.getItemKey=getItemKey$1;exports.getItemKeySegment=getItemKeySegment;exports.getNamelessWorkspaceIdentifier=getNamelessWorkspaceIdentifier;exports.getPairListener=getPairListener;exports.getPreviewPaths=getPreviewPaths;exports.getPreviewStateObservable=getPreviewStateObservable;exports.getPreviewValueWithFallback=getPreviewValueWithFallback;exports.getProviderTitle=getProviderTitle;exports.getPublishedId=getPublishedId;exports.getSchemaTypeTitle=getSchemaTypeTitle;exports.getSearchTypesWithMaxDepth=getSearchTypesWithMaxDepth;exports.getSearchableTypes=getSearchableTypes;exports.getTemplatePermissions=getTemplatePermissions;exports.getValueAtPath=getValueAtPath;exports.getValueError=getValueError;exports.getWorkspaceIdentifier=getWorkspaceIdentifier;exports.globalScope=globalScope;exports.grantsPermissionOn=grantsPermissionOn;exports.immutableReconcile=immutableReconcile;exports.inc=inc;exports.initialDocumentFieldActions=initialDocumentFieldActions;exports.insert=insert;exports.intlCache=intlCache;exports.isAddedItemDiff=isAddedItemDiff;exports.isArrayOfBlocksInputProps=isArrayOfBlocksInputProps;exports.isArrayOfObjectsInputProps=isArrayOfObjectsInputProps;exports.isArrayOfPrimitivesInputProps=isArrayOfPrimitivesInputProps;exports.isAuthStore=isAuthStore;exports.isBooleanInputProps=isBooleanInputProps;exports.isBuilder=isBuilder;exports.isCookielessCompatibleLoginMethod=isCookielessCompatibleLoginMethod;exports.isDev=isDev;exports.isDraft=isDraft;exports.isDraftId=isDraftId;exports.isEmptyObject=isEmptyObject$1;exports.isFieldChange=isFieldChange;exports.isGroupChange=isGroupChange;exports.isMemberArrayOfObjects=isMemberArrayOfObjects;exports.isMemberObject=isMemberObject;exports.isNonNullable=isNonNullable$2;exports.isNumberInputProps=isNumberInputProps;exports.isObjectInputProps=isObjectInputProps;exports.isObjectItemProps=isObjectItemProps;exports.isProd=isProd;exports.isPublishedId=isPublishedId;exports.isRecord=isRecord$4;exports.isRemovedItemDiff=isRemovedItemDiff;exports.isString=isString;exports.isStringInputProps=isStringInputProps;exports.isUnchangedDiff=isUnchangedDiff;exports.joinPath=joinPath;exports.listenQuery=listenQuery;exports.matchWorkspace=matchWorkspace;exports.memoize=memoize;exports.memoizeKeyGen=memoizeKeyGen;exports.memoizedPair=memoizedPair;exports.newDraftFrom=newDraftFrom;exports.noop=noop$2;exports.normalizeIndexSegment=normalizeIndexSegment;exports.normalizeIndexTupleSegment=normalizeIndexTupleSegment;exports.normalizeKeySegment=normalizeKeySegment;exports.normalizePathSegment=normalizePathSegment;exports.onRetry=onRetry;exports.operationEvents=operationEvents;exports.operatorDefinitions=operatorDefinitions;exports.pathToString=pathToString;exports.pathsAreEqual=pathsAreEqual;exports.prefixPath=prefixPath;exports.prepareConfig=prepareConfig;exports.prepareForPreview=prepareForPreview;exports.removeDupes=removeDupes;exports.removeMissingReferences=removeMissingReferences;exports.removeUndefinedLocaleResources=removeUndefinedLocaleResources;exports.resizeObserver=resizeObserver;exports.resolveDiffComponent=resolveDiffComponent;exports.resolveInitialObjectValue=resolveInitialObjectValue;exports.resolveInitialValue=resolveInitialValue;exports.resolveInitialValueForType=resolveInitialValueForType;exports.resolveSchemaTypes=resolveSchemaTypes;exports.set=set$2;exports.setIfMissing=setIfMissing;exports.sliceString=sliceString;exports.snapshotPair=snapshotPair;exports.stringToPath=stringToPath;exports.supportsTouch=supportsTouch;exports.truncateString=truncateString;exports.unset=unset;exports.usEnglishLocale=usEnglishLocale;exports.useActiveWorkspace=useActiveWorkspace;exports.useAnnotationColor=useAnnotationColor;exports.useAnnotationComponent=useAnnotationComponent;exports.useBlockComponent=useBlockComponent;exports.useClient=useClient;exports.useColorScheme=useColorScheme;exports.useColorSchemeOptions=useColorSchemeOptions;exports.useColorSchemeSetValue=useColorSchemeSetValue;exports.useColorSchemeValue=useColorSchemeValue;exports.useConnectionStatusStore=useConnectionStatusStore;exports.useCurrentLocale=useCurrentLocale;exports.useCurrentUser=useCurrentUser;exports.useDataset=useDataset;exports.useDateTimeFormat=useDateTimeFormat;exports.useDidUpdate=useDidUpdate;exports.useDiffAnnotationColor=useDiffAnnotationColor;exports.useDocumentChange=useDocumentChange;exports.useDocumentOperation=useDocumentOperation;exports.useDocumentPairPermissions=useDocumentPairPermissions;exports.useDocumentPairPermissionsFromHookFactory=useDocumentPairPermissionsFromHookFactory;exports.useDocumentPresence=useDocumentPresence;exports.useDocumentPreview=useDocumentPreview;exports.useDocumentPreviewStore=useDocumentPreviewStore;exports.useDocumentStore=useDocumentStore;exports.useDocumentValuePermissions=useDocumentValuePermissions;exports.useDocumentValuePermissionsFromHookFactory=useDocumentValuePermissionsFromHookFactory;exports.useDocumentValues=useDocumentValues;exports.useFeatureEnabled=useFeatureEnabled;exports.useFieldActions=useFieldActions;exports.useFieldComponent=useFieldComponent;exports.useFormBuilder=useFormBuilder;exports.useFormCallbacks=useFormCallbacks;exports.useFormValue=useFormValue;exports.useGetI18nText=useGetI18nText;exports.useGlobalPresence=useGlobalPresence;exports.useGrantsStore=useGrantsStore;exports.useHistoryStore=useHistoryStore;exports.useHoveredField=useHoveredField;exports.useI18nText=useI18nText;exports.useInitialValue=useInitialValue;exports.useInitialValueResolverContext=useInitialValueResolverContext;exports.useInlineBlockComponent=useInlineBlockComponent;exports.useInputComponent=useInputComponent;exports.useItemComponent=useItemComponent;exports.useListFormat=useListFormat;exports.useLoadable=useLoadable;exports.useLocale=useLocale;exports.useMiddlewareComponents=useMiddlewareComponents;exports.usePresenceStore=usePresenceStore;exports.usePreviewCard=usePreviewCard;exports.usePreviewComponent=usePreviewComponent;exports.useProjectId=useProjectId$1;exports.useProjectStore=useProjectStore;exports.useReferenceInputOptions=useReferenceInputOptions;exports.useReferringDocuments=useReferringDocuments;exports.useRelativeTime=useRelativeTime;exports.useReportedValues=useReportedValues$1;exports.useReporter=useReporter$1;exports.useResolveInitialValueForType=useResolveInitialValueForType;exports.useResourceCache=useResourceCache;exports.useRovingFocus=useRovingFocus;exports.useSchema=useSchema;exports.useSearchMaxFieldDepth=useSearchMaxFieldDepth;exports.useSettingsStore=useSettingsStore;exports.useSource=useSource;exports.useTemplatePermissions=useTemplatePermissions;exports.useTemplatePermissionsFromHookFactory=useTemplatePermissionsFromHookFactory;exports.useTemplates=useTemplates;exports.useTranslation=useTranslation;exports.useUnique=useUnique;exports.useUnitFormatter=useUnitFormatter;exports.useUser=useUser;exports.useUserColor=useUserColor;exports.useUserColorManager=useUserColorManager;exports.useUserStore=useUserStore;exports.useVirtualizerScrollInstance=useVirtualizerScrollInstance;exports.useWorkspace=useWorkspace;exports.useWorkspaces=useWorkspaces;exports.useZIndex=useZIndex;exports.userHasRole=userHasRole;exports.validateBasePaths=validateBasePaths;exports.validateDocument=validateDocument;exports.validateNames=validateNames;exports.validateTemplates=validateTemplates;exports.validateWorkspaces=validateWorkspaces;exports.validation=validation;exports.visitDiff=visitDiff;
455
+ //# sourceMappingURL=_internalBrowser-TWIhitgI.js.map