import { BlockModel } from '@blockeditor/store'; import { defineEmbedModel } from '../_common/embed-block-helper/embed-block-model.js'; import type { EmbedCardStyle } from '../_common/types.js'; export const githubUrlRegex: RegExp = /^(?:https?:\/\/)?(?:www\.)?github\.com\/([^/]+)\/([^/]+)\/(issue|pull)s?\/(\d+)$/; export type EmbedGithubBlockUrlData = { image: string | null; status: string | null; statusReason: string | null; title: string | null; description: string | null; createdAt: string | null; assignees: string[] | null; }; export const EmbedGithubStyles: EmbedCardStyle[] = [ 'vertical', 'horizontal', 'list', 'cube', ] as const; export type EmbedGithubBlockProps = { style: (typeof EmbedGithubStyles)[number]; owner: string; repo: string; githubType: 'issue' | 'pr'; githubId: string; url: string; caption: string | null; } & EmbedGithubBlockUrlData; export class EmbedGithubModel extends defineEmbedModel( BlockModel ) {}