# types/document.types.ts

> 40 lines of code and 6 definitions.

Tree: Site tree
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/tree#file-types-document-types-ts
Source text: https://banes-lab.com/assets/sources/source.261f3cc3e3bfb8b35d22cb759256347cc6d3885e159ad12a217e2ea35a5de201.generated.txt

## Definitions

- `Subsection` (interface_declaration, line 3, exported)
- `Section` (interface_declaration, line 11, exported)
- `Tab` (interface_declaration, line 21, exported)
- `DocumentMeta` (interface_declaration, line 29, exported)
- `TabbedMeta` (interface_declaration, line 39, exported)
- `TabLayout` (type_alias_declaration, line 46, exported)

## Source

```typescript
import type { Block } from "#types/block.types";

export interface Subsection {
    readonly blocks?: readonly Block[];
    readonly content?: string;
    readonly id?: string;
    readonly layout?: "grid";
    readonly title: string;
}

export interface Section {
    readonly blocks?: readonly Block[];
    readonly icon: string;
    readonly id: string;
    readonly intro?: string;
    readonly layout?: "callout";
    readonly subsections: readonly Subsection[];
    readonly title: string;
}

export interface Tab {
    readonly icon: string;
    readonly id: string;
    readonly label: string;
    readonly layout?: TabLayout;
    readonly sections: readonly Section[];
}

export interface DocumentMeta {
    readonly closing: string;
    readonly effectiveDate: string;
    readonly emblem?: string;
    readonly intro?: string;
    readonly lastUpdated: string;
    readonly title: string;
    readonly version: string;
}

export interface TabbedMeta {
    readonly emblem?: string;
    readonly subtitle: string;
    readonly title: string;
    readonly version: string;
}

export type TabLayout = "chapter" | "glossary" | "grid" | "ontology" | "tree";
```
