// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. import { IDocNodeParameters, DocNode, DocSection } from '@microsoft/tsdoc'; import { CustomDocNodeKind } from './CustomDocNodeKind'; export type DocNoteBoxType = 'tip' | 'note' | 'important' | 'warning' | 'danger'; /** * Constructor parameters for {@link DocNoteBox}. */ export interface IDocNoteBoxParameters extends IDocNodeParameters { type?: DocNoteBoxType, title?: string, } /** * Represents a note box, which is typically displayed as a bordered box containing informational text. */ export class DocNoteBox extends DocNode { public readonly content: DocSection; private readonly _title: string | undefined; private readonly _type: DocNoteBoxType; public constructor(parameters: IDocNoteBoxParameters, sectionChildNodes?: ReadonlyArray) { super(parameters); this._title = parameters.title; this._type = parameters.type ? parameters.type : 'note'; this.content = new DocSection({ configuration: this.configuration }, sectionChildNodes); } public get title(): string | undefined { return this._title; } public get type(): string { return this._type; } /** @override */ public get kind(): string { return CustomDocNodeKind.NoteBox; } /** @override */ protected onGetChildNodes(): ReadonlyArray { return [this.content]; } }