Socket
Socket
Sign inDemoInstall

@portabletext/types

Package Overview
Dependencies
0
Maintainers
9
Versions
19
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

@portabletext/types


Version published
Weekly downloads
185K
decreased by-2.89%
Maintainers
9
Created
Weekly downloads
 

Package description

What is @portabletext/types?

@portabletext/types is a TypeScript library that provides type definitions for Portable Text, a JSON-based rich text format. It helps developers to work with Portable Text data structures in a type-safe manner.

What are @portabletext/types's main functionalities?

Type Definitions for Portable Text

This feature provides type definitions for Portable Text blocks, ensuring that the data structure adheres to the expected format. The code sample demonstrates how to define a Portable Text block with a single span child.

import { PortableTextBlock } from '@portabletext/types';

const exampleBlock: PortableTextBlock = {
  _type: 'block',
  _key: 'a1b2c3',
  children: [
    {
      _type: 'span',
      _key: 'd4e5f6',
      text: 'Hello, world!',
      marks: []
    }
  ],
  markDefs: [],
  style: 'normal'
};

Type Definitions for Annotations and Marks

This feature provides type definitions for annotations and marks within Portable Text. The code sample shows how to define a link annotation with a URL.

import { PortableTextMarkDefinition } from '@portabletext/types';

const exampleMarkDef: PortableTextMarkDefinition = {
  _type: 'link',
  _key: 'g7h8i9',
  href: 'https://example.com'
};

Type Definitions for Custom Portable Text Objects

This feature allows developers to define custom Portable Text objects with specific properties. The code sample demonstrates how to define a custom image object with a URL and alt text.

import { PortableTextObject } from '@portabletext/types';

const exampleCustomObject: PortableTextObject = {
  _type: 'image',
  _key: 'j1k2l3',
  url: 'https://example.com/image.jpg',
  alt: 'An example image'
};

Other packages similar to @portabletext/types

Changelog

Source

2.0.10 (2024-03-18)

Bug Fixes

  • deps: update non-major (#61) (70f13e7)

Readme

Source

@portabletext/types

npm versionBuild Status

TypeScript types for Portable Text

Installation

npm install --save @portabletext/types

Documentation

See https://portabletext.github.io/types/

Usage

import type {
  PortableTextBlock,
  PortableTextSpan,
  PortableTextLink
} from '@portabletext/types'

const headingSpan: PortableTextSpan = {
  _type: 'span',
  _key: '5p4n',
  text: 'A simple Portable Text heading block',
  marks: [],
}

const myBlocks: PortableTextBlock[] = [
  {
    _type: 'block',
    _key: 'abc123',
    style: 'h1',
    children: [headingSpan],
    markDefs: [],
  },
  {
    _type: 'block',
    _key: 'xyz987',
    style: 'normal',
    children: [
      {_type: 'span', _key: 'c7', text: 'Check out the ', marks: []}
      {_type: 'span', _key: 'x2', text: 'TypeScript definitions', marks: ['m4hl1nk']},
      {_type: 'span', _key: 'u5', text: ' if you are using TS!', marks: []}
    ],
    markDefs: [
      {
        _key: 'm4hl1nk',
        _type: 'link',
        href: 'https://github.com/portabletext/types'
      }
    ],
  },
]

/**
 * Very specific Portable Text block, where:
 * - Only link and author references (custom) are allowed as marks
 * - Only Portable Text spans and `localCurrency` objects can be inline children
 * - Blocks can only be of style `normal` or `call-to-action` (custom)
 * - List items can only be of type `bullet`
 */
type MyCustomBlock = PortableTextListItemBlock<
  PortableTextLink | AuthorReference, // `M`: Marks
  PortableTextSpan | LocalCurrency,   // `C`: Children
  'normal' | 'call-to-action',        // `S`: Styles
  'bullet'                            // `L`: List item types
>

License

MIT © Sanity.io

Keywords

FAQs

Last updated on 18 Mar 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc