{"version":3,"sources":["jsdelivr-header.js","/npm/@portabletext/schema@2.0.0/src/compile-schema.ts","/npm/@portabletext/schema@2.0.0/src/define-schema.ts","/npm/@portabletext/schema@2.0.0/src/types.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACAO,SAAS,cAAc,GAC5B,MAAM,GAAU,EAAW,QAAU,IAAI,KAAK,IAAA,IACzC,EACH,MAAO,EAAM,SAGT,EAAsC,GAE5C,GAAI,EAAW,OAAO,OACpB,UAAW,KAAS,EAAW,MAAM,OAElB,UAAf,EAAM,MACS,SAAf,EAAM,MACS,aAAf,EAAM,MACS,aAAf,EAAM,MACS,UAAf,EAAM,MACS,aAAf,EAAM,MACS,UAAf,EAAM,KAQR,EAAY,KAAK,GANf,QAAQ,KACN,IAAI,EAAM,0DASlB,MAAO,CACL,MAAO,CACL,KAAM,EAAW,OAAO,MAAQ,WAC5B,EAAY,OAAS,EAAI,CAAC,OAAQ,GAAe,IAEvD,KAAM,CACJ,KAAM,QAER,OAAS,EAAO,MAAM,GAA0B,WAAhB,EAAM,QAElC,EADA,CAAC,CAAC,MAAO,SAAU,KAAM,SAAU,MAAO,aAAc,GAE5D,OAAQ,EAAW,OAAS,IAAI,KAAK,IAAA,IAChC,EACH,MAAO,EAAK,SAEd,YAAa,EAAW,YAAc,IAAI,KAAK,IAAA,IAC1C,EACH,MAAO,EAAU,SAEnB,aAAc,EAAW,aAAe,IAAI,KAAK,IAAA,IAC5C,EACH,OAAQ,EAAW,QAAU,OAE/B,cAAe,EAAW,cAAgB,IAAI,KAAK,IAAA,IAC9C,EACH,OAAQ,EAAY,QAAU,OAEhC,eAAgB,EAAW,eAAiB,IAAI,KAAK,IAAA,IAChD,EACH,OAAQ,EAAa,QAAU,OAGrC,CC1BO,SAAS,aACd,GAEA,OAAO,CACT,CChCO,SAAS,cAAc,GAC5B,OAAO,SAAS,IAAmC,iBAAjB,EAAO,KAC3C,CAEA,SAAS,SAAS,GAChB,QAAS,IAA2B,iBAAV,GAAuC,mBAAV,EACzD,CAyBO,SAAS,YACd,EACA,GAUA,SARK,cAAc,IAIf,EAAM,QAAU,EAAQ,OAAO,MAAM,OAIpC,MAAM,QAAQ,EAAM,UAK3B,CAeO,SAAS,OACd,EACA,GAUA,SARK,cAAc,IAIf,EAAM,QAAU,EAAQ,OAAO,KAAK,MAId,iBAAf,EAAM,KAKnB,Q","file":"/npm/@portabletext/schema@2.0.0/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@portabletext/schema@2.0.0/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import type {SchemaDefinition} from './define-schema'\nimport type {FieldDefinition, Schema} from './schema'\n\n/**\n * @public\n */\nexport function compileSchema(definition: SchemaDefinition): Schema {\n  const styles = (definition.styles ?? []).map((style) => ({\n    ...style,\n    value: style.name,\n  }))\n\n  const blockFields: Array<FieldDefinition> = []\n\n  if (definition.block?.fields) {\n    for (const field of definition.block.fields) {\n      if (\n        field.name === '_type' ||\n        field.name === '_key' ||\n        field.name === 'children' ||\n        field.name === 'markDefs' ||\n        field.name === 'style' ||\n        field.name === 'listItem' ||\n        field.name === 'level'\n      ) {\n        console.warn(\n          `\"${field.name}\" is a reserved field name on Portable Text blocks`,\n        )\n        continue\n      }\n\n      blockFields.push(field)\n    }\n  }\n\n  return {\n    block: {\n      name: definition.block?.name ?? 'block',\n      ...(blockFields.length > 0 ? {fields: blockFields} : {}),\n    },\n    span: {\n      name: 'span',\n    },\n    styles: !styles.some((style) => style.value === 'normal')\n      ? [{value: 'normal', name: 'normal', title: 'Normal'}, ...styles]\n      : styles,\n    lists: (definition.lists ?? []).map((list) => ({\n      ...list,\n      value: list.name,\n    })),\n    decorators: (definition.decorators ?? []).map((decorator) => ({\n      ...decorator,\n      value: decorator.name,\n    })),\n    annotations: (definition.annotations ?? []).map((annotation) => ({\n      ...annotation,\n      fields: annotation.fields ?? [],\n    })),\n    blockObjects: (definition.blockObjects ?? []).map((blockObject) => ({\n      ...blockObject,\n      fields: blockObject.fields ?? [],\n    })),\n    inlineObjects: (definition.inlineObjects ?? []).map((inlineObject) => ({\n      ...inlineObject,\n      fields: inlineObject.fields ?? [],\n    })),\n  }\n}\n","import type {BaseDefinition, FieldDefinition} from './schema'\n\n/**\n * @public\n */\nexport type SchemaDefinition = {\n  block?: {\n    name?: string\n    fields?: ReadonlyArray<FieldDefinition>\n  }\n  styles?: ReadonlyArray<StyleDefinition>\n  lists?: ReadonlyArray<ListDefinition>\n  decorators?: ReadonlyArray<DecoratorDefinition>\n  annotations?: ReadonlyArray<AnnotationDefinition>\n  blockObjects?: ReadonlyArray<BlockObjectDefinition>\n  inlineObjects?: ReadonlyArray<InlineObjectDefinition>\n}\n\n/**\n * @public\n * A helper wrapper that adds editor support, such as autocomplete and type checking, for a schema definition.\n * @example\n * ```ts\n * import { defineSchema } from '@portabletext/editor'\n *\n * const schemaDefinition = defineSchema({\n *  decorators: [{name: 'strong'}, {name: 'em'}, {name: 'underline'}],\n *  annotations: [{name: 'link'}],\n *  styles: [\n *    {name: 'normal'},\n *    {name: 'h1'},\n *    {name: 'h2'},\n *    {name: 'h3'},\n *    {name: 'blockquote'},\n *  ],\n *  lists: [],\n *  inlineObjects: [],\n *  blockObjects: [],\n * }\n * ```\n */\nexport function defineSchema<const TSchemaDefinition extends SchemaDefinition>(\n  definition: TSchemaDefinition,\n): TSchemaDefinition {\n  return definition\n}\n\n/**\n * @public\n */\nexport type StyleDefinition<\n  TBaseDefinition extends BaseDefinition = BaseDefinition,\n> = TBaseDefinition\n\n/**\n * @public\n */\nexport type ListDefinition<\n  TBaseDefinition extends BaseDefinition = BaseDefinition,\n> = TBaseDefinition\n\n/**\n * @public\n */\nexport type DecoratorDefinition<\n  TBaseDefinition extends BaseDefinition = BaseDefinition,\n> = TBaseDefinition\n\n/**\n * @public\n */\nexport type AnnotationDefinition<\n  TBaseDefinition extends BaseDefinition = BaseDefinition,\n> = TBaseDefinition & {\n  fields?: ReadonlyArray<FieldDefinition>\n}\n\n/**\n * @public\n */\nexport type BlockObjectDefinition<\n  TBaseDefinition extends BaseDefinition = BaseDefinition,\n> = TBaseDefinition & {\n  fields?: ReadonlyArray<FieldDefinition>\n}\n\n/**\n * @public\n */\nexport type InlineObjectDefinition<\n  TBaseDefinition extends BaseDefinition = BaseDefinition,\n> = TBaseDefinition & {\n  fields?: ReadonlyArray<FieldDefinition>\n}\n","import type {Schema} from './schema'\n\n/**\n * @public\n */\nexport interface TypedObject {\n  [key: string]: unknown\n  _type: string\n}\n\n/**\n * @public\n */\nexport function isTypedObject(object: unknown): object is TypedObject {\n  return isRecord(object) && typeof object._type === 'string'\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n  return !!value && (typeof value === 'object' || typeof value === 'function')\n}\n\n/**\n * @public\n */\nexport type PortableTextBlock = PortableTextTextBlock | PortableTextObject\n\n/**\n * @public\n */\nexport interface PortableTextTextBlock<\n  TChild = PortableTextSpan | PortableTextObject,\n> {\n  _type: string\n  _key: string\n  children: TChild[]\n  markDefs?: PortableTextObject[]\n  listItem?: string\n  style?: string\n  level?: number\n}\n\n/**\n * @public\n */\nexport function isTextBlock(\n  context: {schema: Schema},\n  block: unknown,\n): block is PortableTextTextBlock {\n  if (!isTypedObject(block)) {\n    return false\n  }\n\n  if (block._type !== context.schema.block.name) {\n    return false\n  }\n\n  if (!Array.isArray(block.children)) {\n    return false\n  }\n\n  return true\n}\n\n/**\n * @public\n */\nexport interface PortableTextSpan {\n  _key: string\n  _type: 'span'\n  text: string\n  marks?: string[]\n}\n\n/**\n * @public\n */\nexport function isSpan(\n  context: {schema: Schema},\n  child: unknown,\n): child is PortableTextSpan {\n  if (!isTypedObject(child)) {\n    return false\n  }\n\n  if (child._type !== context.schema.span.name) {\n    return false\n  }\n\n  if (typeof child.text !== 'string') {\n    return false\n  }\n\n  return true\n}\n\n/**\n * @public\n */\nexport interface PortableTextObject {\n  _type: string\n  _key: string\n  [other: string]: unknown\n}\n"]}