sanity-plugin-documents-pane

4.1.84.1.9
~

Modified (4 files)

Index: package/dist/index.js
===================================================================
--- package/dist/index.js
+++ package/dist/index.js
@@ -282,11 +282,11 @@
 	let entries = Object.entries(resolvedParams);
 	if (!entries.some(([, value]) => value === void 0)) return Object.fromEntries(entries.filter((entry) => entry[1] !== void 0));
 }
 function DocumentsPane(props) {
-	let $ = c(30), { document } = props, { query, params, useDraft: t0, debug: t1, initialValueTemplates: initialValueTemplatesResolver, options: t2, duplicate: t3 } = props.options, useDraft = t0 === void 0 ? !1 : t0, debug = t1 === void 0 ? !1 : t1, t4;
+	let $ = c(30), { document } = props, { query, params, useDraft: t0, debug: t1, initialValueTemplates: initialValueTemplatesResolver, options: t2, duplicate: t3 } = props.options, useDraft = t0 !== void 0 && t0, debug = t1 !== void 0 && t1, t4;
 	$[0] === t2 ? t4 = $[1] : (t4 = t2 === void 0 ? {} : t2, $[0] = t2, $[1] = t4);
-	let options = t4, duplicate = t3 === void 0 ? !1 : t3;
+	let options = t4, duplicate = t3 !== void 0 && t3;
 	if (useDraft && typeof params == "function") {
 		let t5;
 		$[2] === Symbol.for("react.memo_cache_sentinel") ? (t5 = /* @__PURE__ */ jsx("code", { children: "useDraft" }), $[2] = t5) : t5 = $[2];
 		let t6;
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "sanity-plugin-documents-pane",
-  "version": "4.1.8",
+  "version": "4.1.9",
   "description": "Displays the results of a GROQ query in a View Pane",
   "keywords": [
     "sanity",
     "sanity-plugin"
@@ -27,27 +27,27 @@
     "./package.json": "./package.json"
   },
   "dependencies": {
     "@sanity/icons": "^5.0.0",
-    "@sanity/ui": "^3.3.0",
+    "@sanity/ui": "^3.3.5",
     "@sanity/util": "^6.3.0",
     "@sanity/uuid": "^3.0.3",
     "dlv": "^1.1.3",
     "rxjs": "^7.8.2",
-    "sanity-plugin-utils": "^2.0.6"
+    "sanity-plugin-utils": "^2.0.7"
   },
   "devDependencies": {
     "@sanity/tsconfig": "^2.2.0",
-    "@sanity/tsdown-config": "^0.11.0",
+    "@sanity/tsdown-config": "^0.13.1",
     "@types/dlv": "^1.1.5",
     "@types/react": "^19.2.17",
     "@types/react-dom": "^19.2.3",
     "babel-plugin-react-compiler": "^1.0.0",
     "react": "^19.2.7",
     "react-dom": "^19.2.7",
     "sanity": "^6.3.0",
     "styled-components": "^6.4.3",
-    "tsdown": "^0.22.3"
+    "tsdown": "^0.22.5"
   },
   "peerDependencies": {
     "react": "^19.2",
     "react-dom": "^19.2",
Index: package/dist/index.d.ts.map
===================================================================
--- package/dist/index.d.ts.map
+++ package/dist/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/DocumentsPane.tsx"],"mappings":";;;KAIY,0BAAA,GAA6B,cAAc,CAAC,iBAAA;AAAA,KAE5C,8BAAA,GAAiC,MAAM;AAAA,KAEvC,0BAAA,IAA8B,MAAA;EACxC,QAAA,EAAU,0BAAA;AAAA,MACN,MAAM;AAAA,KAEA,wBAAA,GAA2B,8BAAA,GAAiC,0BAA0B;AAAA,UAEjF,iCAAA;EACf,UAAA;EACA,QAAA;EACA,UAAA,GAAa,MAAM;EACnB,KAAA;AAAA;AAAA,KAGU,yCAAA,IAA6C,MAAA;EACvD,QAAA,EAAU,0BAAA;AAAA,MACN,iCAAiC;AAAA,KAE3B,oBAAA;EACV,KAAA;EACA,MAAA,GAAS,wBAAA;EACT,KAAA;EACA,QAAA;EACA,qBAAA,GAAwB,yCAAA;EACxB,OAAA,GAAU,kBAAA;EACV,SAAA;AAAA;AAAA,KAGU,kBAAA,GAAqB,cAAA,CAAe,iBAAA,CAAkB,oBAAA;AAAA,iBC1B1C,aAAA,CAAc,KAAA,EAAO,kBAAkB,mBAAA,GAAA,CAAA,OAAA"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/DocumentsPane.tsx"],"mappings":";;;KAIY,6BAA6B,eAAe;KAE5C,iCAAiC;KAEjC,8BAA8B;EACxC,UAAU;MACN;KAEM,2BAA2B,iCAAiC;UAEvD;EACf;EACA;EACA,aAAa;EACb;;KAGU,6CAA6C;EACvD,UAAU;MACN;KAEM;EACV;EACA,SAAS;EACT;EACA;EACA,wBAAwB;EACxB,UAAU;EACV;;KAGU,qBAAqB,eAAe,kBAAkB;iBC1B1C,cAAc,OAAO,qCAAkB,IAAA"}
\ No newline at end of file
Index: package/dist/index.js.map
===================================================================
--- package/dist/index.js.map
+++ package/dist/index.js.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.js","names":["Box","Code","Label","Stack","Debug","t0","$","_c","query","params","t1","Symbol","for","t2","t3","JSON","stringify","t4","CopyIcon","Box","Button","Text","Tooltip","fromString","pathFromString","uuid","useCallback","useState","MouseEvent","filter","firstValueFrom","useDocumentOperation","useDocumentPairPermissions","useDocumentStore","useTranslation","structureLocaleNamespace","usePaneRouter","DuplicateDocumentProps","id","type","DuplicateDocument","props","$","_c","documentStore","duplicate","routerPanesState","groupIndex","handleEditReference","isDuplicating","setDuplicating","t0","permission","permissions","isPermissionsLoading","t","t1","pair","event","stopPropagation","dupeId","duplicateSuccess","operationEvents","pipe","_temp","execute","childParams","params","parentRefPath","template","handle","granted","t2","t3","t4","t5","Boolean","disabled","t6","Symbol","for","cursor","t7","t8","e","op","ComposeIcon","Button","Card","Flex","uuid","usePaneRouter","DocumentsPaneInitialValueTemplate","NewDocumentProps","initialValueTemplates","NewDocument","props","$","_c","ReferenceChildLink","length","t0","t1","template","schemaType","id","params","parameters","title","map","WarningOutlineIcon","Box","Button","Card","Flex","Spinner","Stack","Text","fromString","pathFromString","useCallback","DefaultPreview","getPublishedId","Preview","useSchema","ListenQueryOptions","SanityDocument","Feedback","useListeningQuery","usePaneRouter","Debug","DuplicateDocument","NewDocument","DocumentsPaneInitialValueTemplate","DocumentsProps","query","params","Record","debug","initialValueTemplates","options","duplicate","Documents","props","$","_c","routerPanesState","groupIndex","handleEditReference","schema","t0","Symbol","for","t1","initialValue","loading","error","data","_data","t2","t3","id","type","childParams","parentRefPath","template","handleClick","t4","t5","t6","length","t7","t8","t9","doc","schemaType","get","_type","originalId","_originalId","previewValue","_id","map","DocumentsCount","count","label","DocumentVersionsCollection","DocumentsPaneInitialValueTemplate","DocumentsPaneInitialValueTemplateResolver","ResolveInitialValueTemplatesOptions","resolver","document","resolveInitialValueTemplates","options","delve","DocumentVersionsCollection","DocumentsPaneQueryParams","ResolveParamsOptions","params","document","useDraft","ResolveParamsReturn","Record","defaultResolver","options","doc","displayed","published","undefined","resolved","key","path","Object","entries","resolveParams","resolvedParams","some","value","fromEntries","filter","entry","Stack","Feedback","Debug","Documents","resolveInitialValueTemplates","resolveParams","DocumentsPaneProps","DocumentsPane","props","$","_c","document","query","params","useDraft","t0","debug","t1","initialValueTemplates","initialValueTemplatesResolver","options","t2","duplicate","t3","undefined","t4","t5","Symbol","for","t6","t7","t8","t9","paramValues","resolver"],"sources":["../src/Debug.tsx","../src/DuplicateDocument.tsx","../src/NewDocument.tsx","../src/Documents.tsx","../src/resolveInitialValueTemplates.ts","../src/resolveParams.ts","../src/DocumentsPane.tsx","../src/index.ts"],"sourcesContent":["import {Box, Code, Label, Stack} from '@sanity/ui'\n\nexport default function Debug({query, params}: {query: string; params?: Record<string, string>}) {\n  return (\n    <>\n      <Stack gap={4}>\n        <Box>\n          <Label>Query</Label>\n        </Box>\n        <Box>\n          <Code>{query}</Code>\n        </Box>\n      </Stack>\n      {params ? (\n        <Stack gap={4}>\n          <Box>\n            <Label>Params</Label>\n          </Box>\n          <Box>\n            <Code>{JSON.stringify(params)}</Code>\n          </Box>\n        </Stack>\n      ) : null}\n    </>\n  )\n}\n","import {CopyIcon} from '@sanity/icons/Copy'\nimport {Box, Button, Text, Tooltip} from '@sanity/ui'\nimport {fromString as pathFromString} from '@sanity/util/paths'\nimport {uuid} from '@sanity/uuid'\nimport {useCallback, useState, type MouseEvent} from 'react'\nimport {filter, firstValueFrom} from 'rxjs'\nimport {\n  useDocumentOperation,\n  useDocumentPairPermissions,\n  useDocumentStore,\n  useTranslation,\n} from 'sanity'\nimport {structureLocaleNamespace} from 'sanity/structure'\nimport {usePaneRouter} from 'sanity/structure'\n\ninterface DuplicateDocumentProps {\n  id: string\n  type: string\n}\n\nexport default function DuplicateDocument(props: DuplicateDocumentProps) {\n  const {id, type} = props\n\n  const documentStore = useDocumentStore()\n  const {duplicate} = useDocumentOperation(id, type)\n  const {routerPanesState, groupIndex, handleEditReference} = usePaneRouter()\n  const [isDuplicating, setDuplicating] = useState(false)\n  const [permissions, isPermissionsLoading] = useDocumentPairPermissions({\n    id,\n    type,\n    permission: 'duplicate',\n  })\n\n  const {t} = useTranslation(structureLocaleNamespace)\n\n  const handle = useCallback(\n    async (event: MouseEvent<HTMLElement>) => {\n      event.stopPropagation()\n      const dupeId = uuid()\n\n      setDuplicating(true)\n\n      const duplicateSuccess = firstValueFrom(\n        documentStore.pair\n          .operationEvents(id, type)\n          .pipe(filter((e) => e.op === 'duplicate' && e.type === 'success')),\n      )\n      duplicate.execute(dupeId)\n\n      await duplicateSuccess\n      setDuplicating(false)\n\n      const childParams = routerPanesState[groupIndex + 1]?.[0]?.params || {}\n      const {parentRefPath} = childParams\n\n      handleEditReference({\n        id: dupeId,\n        type,\n        parentRefPath: parentRefPath ? pathFromString(parentRefPath) : [''],\n        template: {id: dupeId},\n      })\n    },\n    [documentStore.pair, duplicate, groupIndex, handleEditReference, id, routerPanesState, type],\n  )\n\n  if (isPermissionsLoading || !permissions?.granted) {\n    return null\n  }\n\n  return (\n    <Tooltip\n      content={\n        <Box>\n          <Text muted size={1}>\n            {t('action.duplicate.label')}\n          </Text>\n        </Box>\n      }\n      placement=\"left\"\n      portal\n    >\n      <Button\n        aria-label={t('action.duplicate.label')}\n        as={Box}\n        disabled={isDuplicating || Boolean(duplicate.disabled) || isPermissionsLoading}\n        fontSize={1}\n        icon={CopyIcon}\n        mode=\"ghost\"\n        onClick={handle}\n        padding={2}\n        style={{cursor: 'pointer'}}\n        tone=\"default\"\n      />\n    </Tooltip>\n  )\n}\n","import {ComposeIcon} from '@sanity/icons/Compose'\nimport {Button, Card, Flex} from '@sanity/ui'\nimport {uuid} from '@sanity/uuid'\nimport {usePaneRouter} from 'sanity/structure'\n\nimport type {DocumentsPaneInitialValueTemplate} from './types'\n\ninterface NewDocumentProps {\n  initialValueTemplates: DocumentsPaneInitialValueTemplate[]\n}\n\nexport default function NewDocument(props: NewDocumentProps) {\n  const {initialValueTemplates} = props\n  const {ReferenceChildLink} = usePaneRouter()\n\n  if (!initialValueTemplates.length) return null\n\n  return (\n    <Card borderBottom padding={2}>\n      <Flex gap={1} justify=\"flex-end\">\n        {initialValueTemplates.map((template) => {\n          if (!template.template) {\n            return null\n          }\n          return (\n            <ReferenceChildLink\n              documentId={uuid()}\n              documentType={template.schemaType}\n              key={`${template.schemaType}-${template.template}`}\n              parentRefPath={[]}\n              template={{\n                id: template.template,\n                params: template.parameters ?? {},\n              }}\n            >\n              <Button as=\"span\" icon={ComposeIcon} mode=\"bleed\" text={template.title} />\n            </ReferenceChildLink>\n          )\n        })}\n      </Flex>\n    </Card>\n  )\n}\n","import {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\nimport {Box, Button, Card, Flex, Spinner, Stack, Text} from '@sanity/ui'\nimport {fromString as pathFromString} from '@sanity/util/paths'\nimport {useCallback} from 'react'\nimport {\n  DefaultPreview,\n  getPublishedId,\n  Preview,\n  useSchema,\n  type ListenQueryOptions,\n  type SanityDocument,\n} from 'sanity'\nimport {Feedback, useListeningQuery} from 'sanity-plugin-utils'\nimport {usePaneRouter} from 'sanity/structure'\n\nimport Debug from './Debug'\nimport DuplicateDocument from './DuplicateDocument'\nimport NewDocument from './NewDocument'\nimport type {DocumentsPaneInitialValueTemplate} from './types'\n\ntype DocumentsProps = {\n  query: string\n  params: Record<string, string>\n  debug: boolean\n  initialValueTemplates: DocumentsPaneInitialValueTemplate[]\n  options: ListenQueryOptions\n  duplicate: boolean\n}\n\nexport default function Documents(props: DocumentsProps) {\n  const {query, params, options, debug, initialValueTemplates, duplicate} = props\n  const {routerPanesState, groupIndex, handleEditReference} = usePaneRouter()\n  const schema = useSchema()\n\n  const {\n    loading,\n    error,\n    data: _data,\n  } = useListeningQuery<SanityDocument[]>(query, {\n    params,\n    initialValue: [],\n    options,\n  })\n  const data = _data ?? []\n\n  const handleClick = useCallback(\n    (id: string, type: string) => {\n      const childParams = routerPanesState[groupIndex + 1]?.[0]?.params || {}\n      const {parentRefPath} = childParams\n\n      handleEditReference({\n        id,\n        type,\n        parentRefPath: parentRefPath ? pathFromString(parentRefPath) : [''],\n        template: {id},\n      })\n    },\n    [routerPanesState, groupIndex, handleEditReference],\n  )\n\n  if (loading) {\n    return (\n      <Box padding={4}>\n        <Flex align=\"center\" justify=\"center\">\n          <Spinner muted />\n        </Flex>\n      </Box>\n    )\n  }\n\n  if (error) {\n    return (\n      <Stack gap={5} padding={4}>\n        <Feedback>There was an error performing this query</Feedback>\n        {debug ? <Debug params={params} query={query} /> : null}\n      </Stack>\n    )\n  }\n\n  if (!data.length) {\n    return (\n      <>\n        <NewDocument initialValueTemplates={initialValueTemplates} />\n        <Stack gap={4} padding={4}>\n          <DocumentsCount count={0} />\n          <Feedback>No Documents found</Feedback>\n          {debug ? <Debug params={params} query={query} /> : null}\n        </Stack>\n      </>\n    )\n  }\n\n  return (\n    <>\n      <NewDocument initialValueTemplates={initialValueTemplates} />\n      <Box paddingX={3} paddingTop={3} paddingBottom={1}>\n        <Box paddingLeft={1}>\n          <DocumentsCount count={data.length} />\n        </Box>\n      </Box>\n      <Stack gap={1} padding={2}>\n        {data.map((doc) => {\n          const schemaType = schema.get(doc._type)\n          const originalId = doc['_originalId']\n          const previewValue = typeof originalId === 'string' ? {...doc, _id: originalId} : doc\n\n          return schemaType ? (\n            <Button\n              key={doc._id}\n              mode=\"bleed\"\n              onClick={() => handleClick(doc._id, doc._type)}\n              padding={2}\n            >\n              <Preview\n                actions={\n                  duplicate ? (\n                    <DuplicateDocument id={getPublishedId(doc._id)} type={doc._type} />\n                  ) : null\n                }\n                layout=\"block\"\n                schemaType={schemaType}\n                value={previewValue}\n              />\n            </Button>\n          ) : (\n            <Card data-ui=\"Alert\" key={doc._id} padding={2} radius={2} tone=\"caution\">\n              <DefaultPreview\n                media={<WarningOutlineIcon />}\n                subtitle={`Encountered type \"${doc._type}\" that is not defined in the schema.`}\n                title=\"Unknown schema type found\"\n              />\n            </Card>\n          )\n        })}\n      </Stack>\n    </>\n  )\n}\n\nfunction DocumentsCount({count}: {count: number}) {\n  const label = count === 1 ? 'document' : 'documents'\n\n  return (\n    <Text muted size={1}>\n      {count} {label}\n    </Text>\n  )\n}\n","import type {\n  DocumentVersionsCollection,\n  DocumentsPaneInitialValueTemplate,\n  DocumentsPaneInitialValueTemplateResolver,\n} from './types'\n\ninterface ResolveInitialValueTemplatesOptions {\n  resolver: DocumentsPaneInitialValueTemplateResolver | undefined\n  document: DocumentVersionsCollection\n}\n\nexport default function resolveInitialValueTemplates(\n  options: ResolveInitialValueTemplatesOptions,\n): DocumentsPaneInitialValueTemplate[] {\n  const {resolver, document} = options\n\n  if (!resolver) return []\n\n  return resolver({document})\n}\n","import delve from 'dlv'\n\nimport type {DocumentVersionsCollection, DocumentsPaneQueryParams} from './types'\n\ninterface ResolveParamsOptions {\n  params?: DocumentsPaneQueryParams\n  document: DocumentVersionsCollection\n  useDraft: boolean\n}\n\ntype ResolveParamsReturn = undefined | Record<string, string>\n\nfunction defaultResolver(\n  options: ResolveParamsOptions,\n): Record<string, string | undefined> | undefined {\n  const {params, document, useDraft} = options\n\n  if (!params || typeof params === 'function') {\n    return {}\n  }\n\n  const doc = useDraft ? document.displayed : document.published\n\n  if (!doc) {\n    return undefined\n  }\n\n  const resolved: Record<string, string | undefined> = {}\n\n  for (const [key, path] of Object.entries(params)) {\n    resolved[key] = delve(doc, path)\n  }\n\n  return resolved\n}\n\nexport default function resolveParams(options: ResolveParamsOptions): ResolveParamsReturn {\n  const {params, document} = options\n\n  const resolvedParams =\n    typeof params === 'function' ? params({document}) : defaultResolver(options)\n\n  if (!resolvedParams) {\n    return undefined\n  }\n\n  const entries = Object.entries(resolvedParams)\n\n  if (entries.some(([, value]) => value === undefined)) {\n    return undefined\n  }\n\n  return Object.fromEntries(\n    entries.filter((entry): entry is [string, string] => entry[1] !== undefined),\n  )\n}\n","import {Stack} from '@sanity/ui'\nimport {Feedback} from 'sanity-plugin-utils'\n\nimport Debug from './Debug'\nimport Documents from './Documents'\nimport resolveInitialValueTemplates from './resolveInitialValueTemplates'\nimport resolveParams from './resolveParams'\nimport type {DocumentsPaneProps} from './types'\n\nexport default function DocumentsPane(props: DocumentsPaneProps) {\n  const {document} = props\n  const {\n    query,\n    params,\n    useDraft = false,\n    debug = false,\n    initialValueTemplates: initialValueTemplatesResolver,\n    options = {},\n    duplicate = false,\n  } = props.options\n\n  if (useDraft && typeof params === 'function') {\n    return (\n      <Stack gap={5} padding={4}>\n        <Feedback>\n          <code>useDraft</code> should not be <code>true</code> when supplying a function for\n          <code>params</code>\n        </Feedback>\n        {debug ? <Debug query={query} /> : null}\n      </Stack>\n    )\n  }\n\n  const paramValues = resolveParams({document, params, useDraft})\n\n  const initialValueTemplates = resolveInitialValueTemplates({\n    resolver: initialValueTemplatesResolver,\n    document,\n  })\n\n  if (!paramValues) {\n    return (\n      <Stack gap={5} padding={4}>\n        <Feedback>\n          Parameters for this query could not be resolved. This may mean the document does not yet\n          exist, or is incomplete.\n        </Feedback>\n        {debug ? <Debug query={query} /> : null}\n      </Stack>\n    )\n  }\n\n  return (\n    <Documents\n      query={query}\n      params={paramValues}\n      options={options}\n      debug={debug}\n      initialValueTemplates={initialValueTemplates}\n      duplicate={duplicate}\n    />\n  )\n}\n","import DocumentsPane from './DocumentsPane'\n\nexport default DocumentsPane\n"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","names":["Box","Code","Label","Stack","Debug","t0","$","_c","query","params","t1","Symbol","for","t2","t3","JSON","stringify","t4","CopyIcon","Box","Button","Text","Tooltip","fromString","pathFromString","uuid","useCallback","useState","MouseEvent","filter","firstValueFrom","useDocumentOperation","useDocumentPairPermissions","useDocumentStore","useTranslation","structureLocaleNamespace","usePaneRouter","DuplicateDocumentProps","id","type","DuplicateDocument","props","$","_c","documentStore","duplicate","routerPanesState","groupIndex","handleEditReference","isDuplicating","setDuplicating","t0","permission","permissions","isPermissionsLoading","t","t1","pair","event","stopPropagation","dupeId","duplicateSuccess","operationEvents","pipe","_temp","execute","childParams","params","parentRefPath","template","handle","granted","t2","t3","t4","t5","Boolean","disabled","t6","Symbol","for","cursor","t7","t8","e","op","ComposeIcon","Button","Card","Flex","uuid","usePaneRouter","DocumentsPaneInitialValueTemplate","NewDocumentProps","initialValueTemplates","NewDocument","props","$","_c","ReferenceChildLink","length","t0","t1","template","schemaType","id","params","parameters","title","map","WarningOutlineIcon","Box","Button","Card","Flex","Spinner","Stack","Text","fromString","pathFromString","useCallback","DefaultPreview","getPublishedId","Preview","useSchema","ListenQueryOptions","SanityDocument","Feedback","useListeningQuery","usePaneRouter","Debug","DuplicateDocument","NewDocument","DocumentsPaneInitialValueTemplate","DocumentsProps","query","params","Record","debug","initialValueTemplates","options","duplicate","Documents","props","$","_c","routerPanesState","groupIndex","handleEditReference","schema","t0","Symbol","for","t1","initialValue","loading","error","data","_data","t2","t3","id","type","childParams","parentRefPath","template","handleClick","t4","t5","t6","length","t7","t8","t9","doc","schemaType","get","_type","originalId","_originalId","previewValue","_id","map","DocumentsCount","count","label","DocumentVersionsCollection","DocumentsPaneInitialValueTemplate","DocumentsPaneInitialValueTemplateResolver","ResolveInitialValueTemplatesOptions","resolver","document","resolveInitialValueTemplates","options","delve","DocumentVersionsCollection","DocumentsPaneQueryParams","ResolveParamsOptions","params","document","useDraft","ResolveParamsReturn","Record","defaultResolver","options","doc","displayed","published","undefined","resolved","key","path","Object","entries","resolveParams","resolvedParams","some","value","fromEntries","filter","entry","Stack","Feedback","Debug","Documents","resolveInitialValueTemplates","resolveParams","DocumentsPaneProps","DocumentsPane","props","$","_c","document","query","params","useDraft","t0","debug","t1","initialValueTemplates","initialValueTemplatesResolver","options","t2","duplicate","t3","undefined","t4","t5","Symbol","for","t6","t7","t8","t9","paramValues","resolver"],"sources":["../src/Debug.tsx","../src/DuplicateDocument.tsx","../src/NewDocument.tsx","../src/Documents.tsx","../src/resolveInitialValueTemplates.ts","../src/resolveParams.ts","../src/DocumentsPane.tsx","../src/index.ts"],"sourcesContent":["import {Box, Code, Label, Stack} from '@sanity/ui'\n\nexport default function Debug({query, params}: {query: string; params?: Record<string, string>}) {\n  return (\n    <>\n      <Stack gap={4}>\n        <Box>\n          <Label>Query</Label>\n        </Box>\n        <Box>\n          <Code>{query}</Code>\n        </Box>\n      </Stack>\n      {params ? (\n        <Stack gap={4}>\n          <Box>\n            <Label>Params</Label>\n          </Box>\n          <Box>\n            <Code>{JSON.stringify(params)}</Code>\n          </Box>\n        </Stack>\n      ) : null}\n    </>\n  )\n}\n","import {CopyIcon} from '@sanity/icons/Copy'\nimport {Box, Button, Text, Tooltip} from '@sanity/ui'\nimport {fromString as pathFromString} from '@sanity/util/paths'\nimport {uuid} from '@sanity/uuid'\nimport {useCallback, useState, type MouseEvent} from 'react'\nimport {filter, firstValueFrom} from 'rxjs'\nimport {\n  useDocumentOperation,\n  useDocumentPairPermissions,\n  useDocumentStore,\n  useTranslation,\n} from 'sanity'\nimport {structureLocaleNamespace} from 'sanity/structure'\nimport {usePaneRouter} from 'sanity/structure'\n\ninterface DuplicateDocumentProps {\n  id: string\n  type: string\n}\n\nexport default function DuplicateDocument(props: DuplicateDocumentProps) {\n  const {id, type} = props\n\n  const documentStore = useDocumentStore()\n  const {duplicate} = useDocumentOperation(id, type)\n  const {routerPanesState, groupIndex, handleEditReference} = usePaneRouter()\n  const [isDuplicating, setDuplicating] = useState(false)\n  const [permissions, isPermissionsLoading] = useDocumentPairPermissions({\n    id,\n    type,\n    permission: 'duplicate',\n  })\n\n  const {t} = useTranslation(structureLocaleNamespace)\n\n  const handle = useCallback(\n    async (event: MouseEvent<HTMLElement>) => {\n      event.stopPropagation()\n      const dupeId = uuid()\n\n      setDuplicating(true)\n\n      const duplicateSuccess = firstValueFrom(\n        documentStore.pair\n          .operationEvents(id, type)\n          .pipe(filter((e) => e.op === 'duplicate' && e.type === 'success')),\n      )\n      duplicate.execute(dupeId)\n\n      await duplicateSuccess\n      setDuplicating(false)\n\n      const childParams = routerPanesState[groupIndex + 1]?.[0]?.params || {}\n      const {parentRefPath} = childParams\n\n      handleEditReference({\n        id: dupeId,\n        type,\n        parentRefPath: parentRefPath ? pathFromString(parentRefPath) : [''],\n        template: {id: dupeId},\n      })\n    },\n    [documentStore.pair, duplicate, groupIndex, handleEditReference, id, routerPanesState, type],\n  )\n\n  if (isPermissionsLoading || !permissions?.granted) {\n    return null\n  }\n\n  return (\n    <Tooltip\n      content={\n        <Box>\n          <Text muted size={1}>\n            {t('action.duplicate.label')}\n          </Text>\n        </Box>\n      }\n      placement=\"left\"\n      portal\n    >\n      <Button\n        aria-label={t('action.duplicate.label')}\n        as={Box}\n        disabled={isDuplicating || Boolean(duplicate.disabled) || isPermissionsLoading}\n        fontSize={1}\n        icon={CopyIcon}\n        mode=\"ghost\"\n        onClick={handle}\n        padding={2}\n        style={{cursor: 'pointer'}}\n        tone=\"default\"\n      />\n    </Tooltip>\n  )\n}\n","import {ComposeIcon} from '@sanity/icons/Compose'\nimport {Button, Card, Flex} from '@sanity/ui'\nimport {uuid} from '@sanity/uuid'\nimport {usePaneRouter} from 'sanity/structure'\n\nimport type {DocumentsPaneInitialValueTemplate} from './types'\n\ninterface NewDocumentProps {\n  initialValueTemplates: DocumentsPaneInitialValueTemplate[]\n}\n\nexport default function NewDocument(props: NewDocumentProps) {\n  const {initialValueTemplates} = props\n  const {ReferenceChildLink} = usePaneRouter()\n\n  if (!initialValueTemplates.length) return null\n\n  return (\n    <Card borderBottom padding={2}>\n      <Flex gap={1} justify=\"flex-end\">\n        {initialValueTemplates.map((template) => {\n          if (!template.template) {\n            return null\n          }\n          return (\n            <ReferenceChildLink\n              documentId={uuid()}\n              documentType={template.schemaType}\n              key={`${template.schemaType}-${template.template}`}\n              parentRefPath={[]}\n              template={{\n                id: template.template,\n                params: template.parameters ?? {},\n              }}\n            >\n              <Button as=\"span\" icon={ComposeIcon} mode=\"bleed\" text={template.title} />\n            </ReferenceChildLink>\n          )\n        })}\n      </Flex>\n    </Card>\n  )\n}\n","import {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\nimport {Box, Button, Card, Flex, Spinner, Stack, Text} from '@sanity/ui'\nimport {fromString as pathFromString} from '@sanity/util/paths'\nimport {useCallback} from 'react'\nimport {\n  DefaultPreview,\n  getPublishedId,\n  Preview,\n  useSchema,\n  type ListenQueryOptions,\n  type SanityDocument,\n} from 'sanity'\nimport {Feedback, useListeningQuery} from 'sanity-plugin-utils'\nimport {usePaneRouter} from 'sanity/structure'\n\nimport Debug from './Debug'\nimport DuplicateDocument from './DuplicateDocument'\nimport NewDocument from './NewDocument'\nimport type {DocumentsPaneInitialValueTemplate} from './types'\n\ntype DocumentsProps = {\n  query: string\n  params: Record<string, string>\n  debug: boolean\n  initialValueTemplates: DocumentsPaneInitialValueTemplate[]\n  options: ListenQueryOptions\n  duplicate: boolean\n}\n\nexport default function Documents(props: DocumentsProps) {\n  const {query, params, options, debug, initialValueTemplates, duplicate} = props\n  const {routerPanesState, groupIndex, handleEditReference} = usePaneRouter()\n  const schema = useSchema()\n\n  const {\n    loading,\n    error,\n    data: _data,\n  } = useListeningQuery<SanityDocument[]>(query, {\n    params,\n    initialValue: [],\n    options,\n  })\n  const data = _data ?? []\n\n  const handleClick = useCallback(\n    (id: string, type: string) => {\n      const childParams = routerPanesState[groupIndex + 1]?.[0]?.params || {}\n      const {parentRefPath} = childParams\n\n      handleEditReference({\n        id,\n        type,\n        parentRefPath: parentRefPath ? pathFromString(parentRefPath) : [''],\n        template: {id},\n      })\n    },\n    [routerPanesState, groupIndex, handleEditReference],\n  )\n\n  if (loading) {\n    return (\n      <Box padding={4}>\n        <Flex align=\"center\" justify=\"center\">\n          <Spinner muted />\n        </Flex>\n      </Box>\n    )\n  }\n\n  if (error) {\n    return (\n      <Stack gap={5} padding={4}>\n        <Feedback>There was an error performing this query</Feedback>\n        {debug ? <Debug params={params} query={query} /> : null}\n      </Stack>\n    )\n  }\n\n  if (!data.length) {\n    return (\n      <>\n        <NewDocument initialValueTemplates={initialValueTemplates} />\n        <Stack gap={4} padding={4}>\n          <DocumentsCount count={0} />\n          <Feedback>No Documents found</Feedback>\n          {debug ? <Debug params={params} query={query} /> : null}\n        </Stack>\n      </>\n    )\n  }\n\n  return (\n    <>\n      <NewDocument initialValueTemplates={initialValueTemplates} />\n      <Box paddingX={3} paddingTop={3} paddingBottom={1}>\n        <Box paddingLeft={1}>\n          <DocumentsCount count={data.length} />\n        </Box>\n      </Box>\n      <Stack gap={1} padding={2}>\n        {data.map((doc) => {\n          const schemaType = schema.get(doc._type)\n          const originalId = doc['_originalId']\n          const previewValue = typeof originalId === 'string' ? {...doc, _id: originalId} : doc\n\n          return schemaType ? (\n            <Button\n              key={doc._id}\n              mode=\"bleed\"\n              onClick={() => handleClick(doc._id, doc._type)}\n              padding={2}\n            >\n              <Preview\n                actions={\n                  duplicate ? (\n                    <DuplicateDocument id={getPublishedId(doc._id)} type={doc._type} />\n                  ) : null\n                }\n                layout=\"block\"\n                schemaType={schemaType}\n                value={previewValue}\n              />\n            </Button>\n          ) : (\n            <Card data-ui=\"Alert\" key={doc._id} padding={2} radius={2} tone=\"caution\">\n              <DefaultPreview\n                media={<WarningOutlineIcon />}\n                subtitle={`Encountered type \"${doc._type}\" that is not defined in the schema.`}\n                title=\"Unknown schema type found\"\n              />\n            </Card>\n          )\n        })}\n      </Stack>\n    </>\n  )\n}\n\nfunction DocumentsCount({count}: {count: number}) {\n  const label = count === 1 ? 'document' : 'documents'\n\n  return (\n    <Text muted size={1}>\n      {count} {label}\n    </Text>\n  )\n}\n","import type {\n  DocumentVersionsCollection,\n  DocumentsPaneInitialValueTemplate,\n  DocumentsPaneInitialValueTemplateResolver,\n} from './types'\n\ninterface ResolveInitialValueTemplatesOptions {\n  resolver: DocumentsPaneInitialValueTemplateResolver | undefined\n  document: DocumentVersionsCollection\n}\n\nexport default function resolveInitialValueTemplates(\n  options: ResolveInitialValueTemplatesOptions,\n): DocumentsPaneInitialValueTemplate[] {\n  const {resolver, document} = options\n\n  if (!resolver) return []\n\n  return resolver({document})\n}\n","import delve from 'dlv'\n\nimport type {DocumentVersionsCollection, DocumentsPaneQueryParams} from './types'\n\ninterface ResolveParamsOptions {\n  params?: DocumentsPaneQueryParams\n  document: DocumentVersionsCollection\n  useDraft: boolean\n}\n\ntype ResolveParamsReturn = undefined | Record<string, string>\n\nfunction defaultResolver(\n  options: ResolveParamsOptions,\n): Record<string, string | undefined> | undefined {\n  const {params, document, useDraft} = options\n\n  if (!params || typeof params === 'function') {\n    return {}\n  }\n\n  const doc = useDraft ? document.displayed : document.published\n\n  if (!doc) {\n    return undefined\n  }\n\n  const resolved: Record<string, string | undefined> = {}\n\n  for (const [key, path] of Object.entries(params)) {\n    resolved[key] = delve(doc, path)\n  }\n\n  return resolved\n}\n\nexport default function resolveParams(options: ResolveParamsOptions): ResolveParamsReturn {\n  const {params, document} = options\n\n  const resolvedParams =\n    typeof params === 'function' ? params({document}) : defaultResolver(options)\n\n  if (!resolvedParams) {\n    return undefined\n  }\n\n  const entries = Object.entries(resolvedParams)\n\n  if (entries.some(([, value]) => value === undefined)) {\n    return undefined\n  }\n\n  return Object.fromEntries(\n    entries.filter((entry): entry is [string, string] => entry[1] !== undefined),\n  )\n}\n","import {Stack} from '@sanity/ui'\nimport {Feedback} from 'sanity-plugin-utils'\n\nimport Debug from './Debug'\nimport Documents from './Documents'\nimport resolveInitialValueTemplates from './resolveInitialValueTemplates'\nimport resolveParams from './resolveParams'\nimport type {DocumentsPaneProps} from './types'\n\nexport default function DocumentsPane(props: DocumentsPaneProps) {\n  const {document} = props\n  const {\n    query,\n    params,\n    useDraft = false,\n    debug = false,\n    initialValueTemplates: initialValueTemplatesResolver,\n    options = {},\n    duplicate = false,\n  } = props.options\n\n  if (useDraft && typeof params === 'function') {\n    return (\n      <Stack gap={5} padding={4}>\n        <Feedback>\n          <code>useDraft</code> should not be <code>true</code> when supplying a function for\n          <code>params</code>\n        </Feedback>\n        {debug ? <Debug query={query} /> : null}\n      </Stack>\n    )\n  }\n\n  const paramValues = resolveParams({document, params, useDraft})\n\n  const initialValueTemplates = resolveInitialValueTemplates({\n    resolver: initialValueTemplatesResolver,\n    document,\n  })\n\n  if (!paramValues) {\n    return (\n      <Stack gap={5} padding={4}>\n        <Feedback>\n          Parameters for this query could not be resolved. This may mean the document does not yet\n          exist, or is incomplete.\n        </Feedback>\n        {debug ? <Debug query={query} /> : null}\n      </Stack>\n    )\n  }\n\n  return (\n    <Documents\n      query={query}\n      params={paramValues}\n      options={options}\n      debug={debug}\n      initialValueTemplates={initialValueTemplates}\n      duplicate={duplicate}\n    />\n  )\n}\n","import DocumentsPane from './DocumentsPane'\n\nexport default DocumentsPane\n"],"mappings":"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"}
\ No newline at end of file