markdown-design-doc-viewer-embed 1.5.3 → 1.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ja.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  [English](https://github.com/playree/markdown-design-doc-viewer/blob/main/docs/embed.md) | 日本語
7
7
 
8
- [Markdown 設計書ビューア](https://github.com/playree/markdown-design-doc-viewer/blob/main/README.ja.md)のビューアを、Web アプリの部品にしたものです。Markdown で書いた設計書を、VS Code 拡張のプレビューと同じようにページの要素の中に表示します。**mermaid のシーケンス図・フローチャート・ER 図・状態遷移図と処理概要を横並びにして**、矢印(ノード)と見出しを紐付け、画面のワイヤーフレームと項目の表も紐付けます。目次、front matter の設計書のヘッダ、ライト・ダークのテーマもあります。
8
+ [Markdown 設計書ビューア](https://github.com/playree/markdown-design-doc-viewer/blob/main/README.ja.md)のビューアを、Web アプリの部品にしたものです。Markdown で書いた設計書を、VS Code 拡張のプレビューと同じようにページの要素の中に表示します。**mermaid のシーケンス図・フローチャート・ER 図・状態遷移図と処理概要を横並びにして**、矢印(ノード)と見出しを紐付け、画面のワイヤーフレームと項目の表も紐付けます。目次、front matter の設計書のヘッダ、ライト・ダークのテーマもあります。拡張と同じく、設計書を 1 つの HTML ファイルに書き出すこともできます([HTML ファイルに書き出す](#html-ファイルに書き出す))。
9
9
 
10
10
  ![シーケンス図の矢印にマウスを載せると右の処理概要がハイライトされ、クリックするとそこまでスクロールし、見出しにマウスを載せると矢印がハイライトされる](https://raw.githubusercontent.com/playree/markdown-design-doc-viewer/main/images/demo.ja.gif)
11
11
 
@@ -81,6 +81,93 @@ viewer.destroy();
81
81
  | `messageWrapWidth` | `40` | シーケンス図の矢印のラベルをこの文字数(全角は 2 文字と数える)で改行します。`0` にすると改行しません。 |
82
82
  | `onOpenLink` | `openLinkInNewTab` | `(href) => void`: 設計書のリンク(ビューアがスクロールする `#見出し` 以外)を開きます。既定では http(s) と mailto のリンクを新しいタブで開き、ほかは何もしません。 |
83
83
  | `onRevealLine` | | `(line) => void`: ビューアでダブルクリックした Markdown の行(0 始まり)で呼ばれます(エディタでその行を表示するなど)。ないときはダブルクリックしても何もしません。 |
84
+ | `compareWith` | | 設計書の別の版(古い版など)の Markdown。指定すると、`markdown` をその版からの差分付きで表示します([版との差分を表示する](#版との差分を表示する))。ないときは設計書だけを表示します。 |
85
+ | `compareLabel` | | 比べる版の説明(`バージョン 3(2026-11-01)と比較` など)。差分バーに表示します。 |
86
+ | `onCloseDiff` | | `() => void`: 差分バーを閉じたとき(× ボタン)に呼ばれます(`compareWith` を外すなど)。ないときは、`compareWith` が変わるまでビューアが設計書だけを表示します。 |
87
+
88
+ ## 版との差分を表示する
89
+
90
+ ```tsx
91
+ <DesignDocViewer
92
+ markdown={latest}
93
+ compareWith={compared?.markdown}
94
+ compareLabel={compared ? `バージョン ${compared.version} と比較` : undefined}
95
+ onCloseDiff={() => setCompared(undefined)}
96
+ style={{ height: 600 }}
97
+ />
98
+ ```
99
+
100
+ `compareWith` に設計書の別の版の Markdown を渡すと、拡張の Git の版との比較と同じく、`markdown` をその版からの差分付きで表示します。追加・変更・削除したブロックに印を付け、変更したブロックでは変わった語を示し、変更した図の下には変更前の図を(折りたたんで)表示します。下部の差分バーには、比べている版(`compareLabel`)、変更したブロックの数と、変更の間を移動するボタンを表示します。古い版から新しい版への変更を見るときは、新しい版を `markdown` に、古い版を `compareWith` に渡します。
101
+
102
+ - `compareWith` を外す(`undefined` にする)と、設計書だけの表示に戻ります。
103
+ - 差分バーの × ボタンは `onCloseDiff` を呼びます。利用側はそこで `compareWith` を外します。`onCloseDiff` がないときは、`compareWith` が変わるまでビューアが自分で設計書だけを表示します。
104
+ - ワイヤーフレームのファイルは設計書のものを使い、比べません。
105
+ - `exportHtml` も `compareWith` と `compareLabel` を受け取ります。書き出したファイルは差分を表示し、差分バーで差分を隠したり表示したりできます。
106
+
107
+ ## 設計書一覧
108
+
109
+ ```tsx
110
+ import { DesignDocList } from 'markdown-design-doc-viewer-embed/react';
111
+
112
+ <DesignDocList
113
+ documents={[
114
+ { markdown: loginMarkdown, href: '/docs/login', file: 'login.md' },
115
+ { markdown: frontMatterOnly, href: '/docs/screens/top', folder: 'screens', file: 'top.md' },
116
+ ]}
117
+ onOpenLink={(href) => router.push(href)}
118
+ />
119
+ ```
120
+
121
+ `DesignDocList`(React を使わないときは `createDesignDocList(container, options)`)は、拡張・デスクトップアプリの設計書一覧と同じ一覧を表示します。フォルダごとの表に、文書のタイトルとファイル名、front matter の版数・プロダクト・ステータス・更新日(どれかの文書が持つ列)を並べ、絞り込みの入力欄と並べ替えられる列見出しが付きます。ビューアと違って高さは要らず、一覧の高さで表示します。`createDesignDocList` は `ready`、`update(options)`(絞り込みと並び順は保ちます)、`destroy()` を返します。
122
+
123
+ - 文書の `markdown` は Markdown 全体か、front matter だけでもかまいません。タイトルとメタ情報はビューアと同じように読み取ります。
124
+ - `documents` が変わると表示し直すので、変わらない間は描画のたびに同じ配列を渡してください(`useMemo`)。
125
+
126
+ | オプション | 既定値 | |
127
+ | --- | --- | --- |
128
+ | `documents` | (必須) | `{ markdown, href, folder?, file?, title? }[]`: 文書。`href` はタイトルのリンク。`folder`(フォルダの間は `/`、最上位は `''`)ごとに表と見出しを分けます。`file` はタイトルの横に出します。`title` は Markdown のタイトル(front matter の `title`、最初の `#` の見出し、`file`、または `href`)の代わりに使います。 |
129
+ | `title` | `設計書一覧`(`Design Docs`) | 一覧の見出し。 |
130
+ | `fileLabel` | `ファイル`(`File`) | `file` の列の見出し(ページの番号など)。 |
131
+ | `filterPlaceholder` | | 絞り込みの入力欄のプレースホルダ。既定ではタイトル・ファイル名・メタ情報を挙げます。 |
132
+ | `empty` | | 文書がないときの文言。既定は拡張と同じです。 |
133
+ | `keepOrder` | `false` | フォルダと文書を、名前順ではなく `documents` の順(フォルダは最初の文書の位置)に並べます。 |
134
+ | `lang`, `theme`, `limitContentWidth` | ビューアと同じ | ビューアと同じオプション([オプション](#オプション))。 |
135
+ | `onOpenLink` | `openLinkInPage` | `(href) => void`: タイトルのリンクを開きます。既定ではページをそのリンクへ移します(`javascript:`・`data:`・`vbscript:` のリンクを除く)。`#` で始まるリンクは、代わりに一覧の中のその位置へスクロールします。 |
136
+
137
+ ## HTML ファイルに書き出す
138
+
139
+ ```ts
140
+ const { exportHtml } = await import('markdown-design-doc-viewer-embed/export');
141
+
142
+ const html = await exportHtml({
143
+ markdown,
144
+ lang: 'ja',
145
+ title: '設計書', // 設計書にタイトルがないとき
146
+ resolveImage: async (path) => toDataUri(path), // 画像をファイルに埋め込む
147
+ });
148
+ // 例: ファイルとしてダウンロードさせる
149
+ const link = document.createElement('a');
150
+ link.href = URL.createObjectURL(new Blob([html], { type: 'text/html' }));
151
+ link.download = 'design-doc.html';
152
+ link.click();
153
+ setTimeout(() => URL.revokeObjectURL(link.href), 1000);
154
+ ```
155
+
156
+ `exportHtml(options)` は、設計書を 1 つの HTML ファイルにした文字列を返します。拡張の **Export Design Doc as HTML** や CLI の `md-design-doc export` と同じファイルです。スタイルとスクリプトを含むので、そのファイルだけで目次、図と処理概要の横並び、矢印と見出しのハイライト、印刷したときの縦並びが動きます。ライトテーマで、警告と紐付け漏れの印は入れません。
157
+
158
+ - 図はビューアと同じく、呼び出したページの中でブラウザが描きます。図はそのスタイルで測るので、ビューアと同じく `viewer.css` を読み込んでください。ページのビューアの配色は変わりません(mermaid の描画は順番に行います)。
159
+ - 描けない図は、ビューアと同じくエラーとともにファイルに入ります。そのときも `exportHtml` は完了します。
160
+ - `export.js` は書き出すファイルのスタイルとスクリプトを含みます(ビューアの `index.js` には入っていません)。使うときに読み込んでください(`import()`)。
161
+
162
+ | オプション | 既定値 | |
163
+ | --- | --- | --- |
164
+ | `markdown` | (必須) | 設計書の Markdown。 |
165
+ | `title` | | 設計書にタイトル(front matter の `title` も `#` の見出しも)がないときの、ページのタイトル。 |
166
+ | `resolveImage` | `baseUrl` から解決 | `(path) => string \| Promise<string>`: 設計書の画像(URL ではなくパス)を、ファイルの中で何にするか。埋め込むなら data URI、リンクにするなら URL を返します。画像の `src` からクエリとフラグメントを除いたもの(`icons.svg#save` なら `icons.svg`)を受け取り、返した URL にはそれを付け直します。失敗したときは `src` のままにします。 |
167
+ | `baseUrl`, `readFile` | | ビューアと同じです。ワイヤーフレームのファイルと、`resolveImage` がないときの画像に使います。 |
168
+ | `lang` | ブラウザの言語 | `'en'` または `'ja'`: ファイルの文言の言語。 |
169
+ | `compareWith`, `compareLabel` | | ビューアと同じです。書き出したファイルは `compareWith` からの差分を表示し、差分バーで隠したり表示したりできます。 |
170
+ | `diagramLook`, `splitMinWidth`, `toc`, `limitContentWidth`, `stickyTableHeader`, `tableTreeHighlight`, `frontMatter`, `headingNumbers`, `messageWrapWidth` | ビューアと同じ | 書き出すファイルについての、ビューアと同じオプション([オプション](#オプション))。 |
84
171
 
85
172
  ## スタイル
86
173
 
@@ -88,7 +175,7 @@ viewer.destroy();
88
175
 
89
176
  ## サーバーサイドレンダリング
90
177
 
91
- モジュールはサーバー(Next.js など)で import できます。document や window を使うのはビューアを作るときだけです。`DesignDocViewer` はビューアを effect の中、つまりブラウザで作ります。
178
+ モジュールはサーバー(Next.js など)で import できます。document や window を使うのはビューアを作るとき(と設計書を書き出すとき)だけです。`DesignDocViewer` はビューアを effect の中、つまりブラウザで作ります。
92
179
 
93
180
  ## 制約
94
181
 
@@ -96,7 +183,6 @@ viewer.destroy();
96
183
  - ワイヤーフレームの `@font-face` は、Shadow DOM の中ではフォントを読み込まないので、ページに追加します(`document.adoptedStyleSheets`)。
97
184
  - 拡大した図と脚注のポップアップは、ページ全体の上に表示します(`position: fixed`)。
98
185
  - 画像は同期で解決します(`resolveResource`)。URL から読むようにしてください。
99
- - リビジョンとの差分(拡張の Git の比較)は表示できません。
100
186
 
101
187
  ## 書き方
102
188
 
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  English | [日本語](https://github.com/playree/markdown-design-doc-viewer/blob/main/docs/embed.ja.md)
7
7
 
8
- The viewer of [Markdown Design Doc Viewer](https://github.com/playree/markdown-design-doc-viewer) as a component of a web app: it shows a design document written in Markdown in an element of your page, as the VS Code extension's preview does. **Mermaid sequence diagrams, flowcharts, ER diagrams and state diagrams are shown side by side with their step descriptions**, each arrow (or node) linked to its heading, and wireframes of screens linked to their item tables, with the table of contents, the document header of the front matter, and the light and dark themes.
8
+ The viewer of [Markdown Design Doc Viewer](https://github.com/playree/markdown-design-doc-viewer) as a component of a web app: it shows a design document written in Markdown in an element of your page, as the VS Code extension's preview does. **Mermaid sequence diagrams, flowcharts, ER diagrams and state diagrams are shown side by side with their step descriptions**, each arrow (or node) linked to its heading, and wireframes of screens linked to their item tables, with the table of contents, the document header of the front matter, and the light and dark themes. It can also export the document to a single HTML file, as the extension does ([Exporting to an HTML file](#exporting-to-an-html-file)).
9
9
 
10
10
  ![Hovering an arrow of the sequence diagram highlights its step on the right, clicking it scrolls to the step, and hovering a heading highlights its arrow](https://raw.githubusercontent.com/playree/markdown-design-doc-viewer/main/images/demo.gif)
11
11
 
@@ -81,6 +81,93 @@ viewer.destroy();
81
81
  | `messageWrapWidth` | `40` | Breaks the labels of the arrows of the sequence diagrams into lines at this many characters (a full-width one counts as 2). `0` does not break them. |
82
82
  | `onOpenLink` | `openLinkInNewTab` | `(href) => void`: opens a link of the document (other than `#heading`, which the viewer scrolls to). By default, http(s) and mailto links open in a new tab, and the others do nothing. |
83
83
  | `onRevealLine` | | `(line) => void`: called with the line (0-based) of the Markdown double-clicked in the viewer, e.g. to show it in an editor. Without it, a double-click does nothing. |
84
+ | `compareWith` | | The Markdown of another version of the document (an older one, for instance): the viewer shows `markdown` with its differences from it ([Showing the differences from a version](#showing-the-differences-from-a-version)). Without it, the document alone. |
85
+ | `compareLabel` | | What the document is compared with (e.g. `Compared with version 3 (2026-11-01)`), shown on the bar of the differences. |
86
+ | `onCloseDiff` | | `() => void`: called when the bar of the differences is closed (its × button), e.g. to remove `compareWith`. Without it, the viewer shows the document alone until `compareWith` changes. |
87
+
88
+ ## Showing the differences from a version
89
+
90
+ ```tsx
91
+ <DesignDocViewer
92
+ markdown={latest}
93
+ compareWith={compared?.markdown}
94
+ compareLabel={compared ? `Compared with version ${compared.version}` : undefined}
95
+ onCloseDiff={() => setCompared(undefined)}
96
+ style={{ height: 600 }}
97
+ />
98
+ ```
99
+
100
+ With `compareWith`, the Markdown of another version of the document, the viewer shows `markdown` with its differences from that version, the same as the comparison with a Git revision of the extension: the blocks added, changed and deleted are marked, with the words changed in a changed block, the diagram before the change under a changed diagram (folded), and a bar at the bottom with what it is compared with (`compareLabel`), the number of blocks changed, and buttons to go from one change to the next. To see the changes of a newer version from an older one, give the newer one as `markdown` and the older one as `compareWith`.
101
+
102
+ - Without `compareWith` (or with `undefined`), the document is shown alone again.
103
+ - The × button of the bar calls `onCloseDiff`, with which the app removes `compareWith`. Without `onCloseDiff`, the viewer shows the document alone by itself, until `compareWith` changes.
104
+ - The files of the wireframes are those of the document: they are not compared.
105
+ - `exportHtml` takes `compareWith` and `compareLabel` too: the exported file shows the differences, with a bar that hides and shows them.
106
+
107
+ ## Listing design documents
108
+
109
+ ```tsx
110
+ import { DesignDocList } from 'markdown-design-doc-viewer-embed/react';
111
+
112
+ <DesignDocList
113
+ documents={[
114
+ { markdown: loginMarkdown, href: '/docs/login', file: 'login.md' },
115
+ { markdown: frontMatterOnly, href: '/docs/screens/top', folder: 'screens', file: 'top.md' },
116
+ ]}
117
+ onOpenLink={(href) => router.push(href)}
118
+ />
119
+ ```
120
+
121
+ `DesignDocList` (`createDesignDocList(container, options)` without React) shows a list of design documents, the same as the list of the design docs of the extension and the desktop app: a table for each folder, with the title and file name of each document and the version, product, status and updated date of its front matter (the columns that a document has), a search box and sortable columns. Unlike the viewer, it does not need a height: it is as high as the list. `createDesignDocList` returns `ready`, `update(options)` (which keeps the search and the order) and `destroy()`.
122
+
123
+ - `markdown` of a document is its Markdown, or only its front matter: its title and entries are read from it as the viewer does.
124
+ - `documents` shows the list again when it changes: keep it the same across renders while it does not change (`useMemo`).
125
+
126
+ | Option | Default | |
127
+ | --- | --- | --- |
128
+ | `documents` | (required) | `{ markdown, href, folder?, file?, title? }[]`: the documents. `href` is the link of the title. `folder` (with `/` between folders, `''` at the top) gives a table and a heading to each folder. `file` is shown next to the title. `title` replaces that of the Markdown (the `title` of its front matter, its first `#` heading, `file`, or `href`). |
129
+ | `title` | `Design Docs` | The heading of the list. |
130
+ | `fileLabel` | `File` | The header of the column of `file` (e.g. the number of a page). |
131
+ | `filterPlaceholder` | | The placeholder of the search box. By default, it names the title, the file name and the metadata. |
132
+ | `empty` | | The text without documents. By default, the one of the extension. |
133
+ | `keepOrder` | `false` | Lists the folders and the documents in the order of `documents` (a folder where its first document is), instead of by name. |
134
+ | `lang`, `theme`, `limitContentWidth` | as the viewer | The same as the options of the viewer ([Options](#options)). |
135
+ | `onOpenLink` | `openLinkInPage` | `(href) => void`: opens the link of a title. By default, goes to it in the page (except `javascript:`, `data:` and `vbscript:` links). A link that starts with `#` scrolls the list to that fragment instead. |
136
+
137
+ ## Exporting to an HTML file
138
+
139
+ ```ts
140
+ const { exportHtml } = await import('markdown-design-doc-viewer-embed/export');
141
+
142
+ const html = await exportHtml({
143
+ markdown,
144
+ lang: 'en',
145
+ title: 'Design doc', // when the document has no title of its own
146
+ resolveImage: async (path) => toDataUri(path), // embeds the images in the file
147
+ });
148
+ // e.g. downloaded as a file
149
+ const link = document.createElement('a');
150
+ link.href = URL.createObjectURL(new Blob([html], { type: 'text/html' }));
151
+ link.download = 'design-doc.html';
152
+ link.click();
153
+ setTimeout(() => URL.revokeObjectURL(link.href), 1000);
154
+ ```
155
+
156
+ `exportHtml(options)` resolves with a single HTML file of the design document, as a string: the same file as the extension's **Export Design Doc as HTML** and the command line's `md-design-doc export`. Its styles and script are in it, so that it works on its own: the table of contents, the diagrams side by side with their steps, the highlighting of the arrows and steps, and the diagrams above their steps when it is printed. It has the light theme, without the warnings and the marks of missing links.
157
+
158
+ - The diagrams are rendered in your page, by the browser, as the viewer does: import `viewer.css` (as for the viewer), with which they are measured. The viewers of the page keep their colors: the renders of mermaid wait for one another.
159
+ - A diagram that cannot be rendered is in the file with its error, as in the viewer: `exportHtml` still resolves.
160
+ - `export.js` has the styles and script of the exported file, which the viewer (`index.js`) does not carry: import it when it is needed (`import()`).
161
+
162
+ | Option | Default | |
163
+ | --- | --- | --- |
164
+ | `markdown` | (required) | The Markdown of the design document. |
165
+ | `title` | | The title of the page when the document has none (neither `title` in its front matter nor a `#` heading). |
166
+ | `resolveImage` | resolved from `baseUrl` | `(path) => string \| Promise<string>`: what an image of the document (a path, not a URL) becomes in the file: a data URI that embeds it, or a URL that links it. It is given the `src` of the image without its query and fragment (`icons.svg` of `icons.svg#save`), which are added back to a URL. When it fails, the `src` is kept. |
167
+ | `baseUrl`, `readFile` | | As for the viewer: the files of the wireframes, and the images without `resolveImage`. |
168
+ | `lang` | that of the browser | `'en'` or `'ja'`: the language of the texts of the file. |
169
+ | `compareWith`, `compareLabel` | | As for the viewer: the exported file shows the differences from `compareWith`, with a bar that hides and shows them. |
170
+ | `diagramLook`, `splitMinWidth`, `toc`, `limitContentWidth`, `stickyTableHeader`, `tableTreeHighlight`, `frontMatter`, `headingNumbers`, `messageWrapWidth` | as for the viewer | As for the viewer (see [Options](#options)), for the exported file. |
84
171
 
85
172
  ## Styles
86
173
 
@@ -88,7 +175,7 @@ viewer.destroy();
88
175
 
89
176
  ## Server-side rendering
90
177
 
91
- The modules can be imported on a server (Next.js, for instance): they use the document and the window only when a viewer is created. `DesignDocViewer` creates it in an effect, in the browser.
178
+ The modules can be imported on a server (Next.js, for instance): they use the document and the window only when a viewer is created (or a document exported). `DesignDocViewer` creates it in an effect, in the browser.
92
179
 
93
180
  ## Limitations
94
181
 
@@ -96,7 +183,6 @@ The modules can be imported on a server (Next.js, for instance): they use the do
96
183
  - The `@font-face` rules of wireframes are added to the page (`document.adoptedStyleSheets`), since fonts are not loaded in a shadow root otherwise.
97
184
  - The zoomed diagrams and the popups of the footnotes are over the whole page (`position: fixed`).
98
185
  - Images are resolved synchronously (`resolveResource`): read them from URLs.
99
- - The differences from a revision (the extension's Git comparison) are not shown.
100
186
 
101
187
  ## Writing linked documents
102
188
 
package/export.js ADDED
@@ -0,0 +1,16 @@
1
+ // embed/exportAssets.ts
2
+ var webviewCss = '.seqnotes-viewer{--seqnotes-accent: var(--vscode-textLink-activeForeground, #3794ff);--seqnotes-accent-bg: color-mix(in srgb, var(--seqnotes-accent) 12%, transparent);--seqnotes-current: var(--vscode-editorLineNumber-activeForeground, #c6c6c6);--seqnotes-border: var(--vscode-panel-border, rgba(128, 128, 128, .35));--seqnotes-muted: var(--vscode-descriptionForeground, rgba(128, 128, 128, .9));--seqnotes-th-bg: var(--vscode-textCodeBlock-background, rgba(128, 128, 128, .1))}.seqnotes-viewer[data-seqnotes-theme=light]:not(.vscode-light,.vscode-high-contrast-light){color-scheme:light;--vscode-editor-background: #ffffff;--vscode-editor-foreground: #3b3b3b;--vscode-foreground: #3b3b3b;--vscode-descriptionForeground: #717171;--vscode-icon-foreground: #3b3b3b;--vscode-errorForeground: #f85149;--vscode-focusBorder: #005fb8;--vscode-textLink-foreground: #005fb8;--vscode-textLink-activeForeground: #005fb8;--vscode-textCodeBlock-background: #f3f3f3;--vscode-textBlockQuote-border: #e5e5e5;--vscode-textBlockQuote-foreground: #616161;--vscode-panel-border: #e5e5e5;--vscode-editorLineNumber-activeForeground: #171184;--vscode-editorWidget-background: #f8f8f8;--vscode-editorWidget-border: #c8c8c8;--vscode-widget-shadow: rgba(0, 0, 0, .16);--vscode-list-hoverBackground: #f2f2f2;--vscode-toolbar-hoverBackground: rgba(184, 184, 184, .31);--vscode-sash-hoverBorder: #005fb8;--vscode-inputValidation-warningBackground: #f6f5d2;--vscode-inputValidation-warningBorder: #b89500;--vscode-input-background: #ffffff;--vscode-input-foreground: #3b3b3b;--vscode-input-border: #cecece;--vscode-input-placeholderForeground: #767676;--vscode-charts-blue: #1a85ff;--vscode-charts-green: #388a34;--vscode-charts-purple: #652d90;--vscode-charts-red: #e51400;--vscode-charts-yellow: #bf8803;--vscode-editorGutter-addedBackground: #2ea043;--vscode-editorGutter-modifiedBackground: #005fb8;--vscode-editorGutter-deletedBackground: #f85149;--vscode-diffEditor-insertedTextBackground: rgba(156, 204, 44, .25);--vscode-diffEditor-removedTextBackground: rgba(255, 0, 0, .2);--vscode-textPreformat-foreground: #3b3b3b;--vscode-textBlockQuote-background: #f8f8f8;--vscode-keybindingLabel-background: rgba(221, 221, 221, .4);--vscode-keybindingLabel-foreground: #3b3b3b;--vscode-keybindingLabel-border: rgba(204, 204, 204, .4);--vscode-keybindingLabel-bottomBorder: rgba(187, 187, 187, .4);--vscode-scrollbarSlider-background: rgba(100, 100, 100, .4);--vscode-scrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-scrollbarSlider-activeBackground: rgba(0, 0, 0, .6)}.seqnotes-viewer[data-seqnotes-theme=dark]:is(.vscode-light,.vscode-high-contrast-light){color-scheme:dark;--vscode-editor-background: #1f1f1f;--vscode-editor-foreground: #cccccc;--vscode-foreground: #cccccc;--vscode-descriptionForeground: #9d9d9d;--vscode-icon-foreground: #cccccc;--vscode-errorForeground: #f85149;--vscode-focusBorder: #0078d4;--vscode-textLink-foreground: #4daafc;--vscode-textLink-activeForeground: #4daafc;--vscode-textCodeBlock-background: #2b2b2b;--vscode-textBlockQuote-border: #616161;--vscode-textBlockQuote-foreground: #cccccc;--vscode-panel-border: #2b2b2b;--vscode-editorLineNumber-activeForeground: #cccccc;--vscode-editorWidget-background: #202020;--vscode-editorWidget-border: #313131;--vscode-widget-shadow: rgba(0, 0, 0, .36);--vscode-list-hoverBackground: #2a2d2e;--vscode-toolbar-hoverBackground: rgba(90, 93, 94, .31);--vscode-sash-hoverBorder: #0078d4;--vscode-inputValidation-warningBackground: #352a05;--vscode-inputValidation-warningBorder: #b89500;--vscode-input-background: #313131;--vscode-input-foreground: #cccccc;--vscode-input-border: #3c3c3c;--vscode-input-placeholderForeground: #989898;--vscode-charts-blue: #3794ff;--vscode-charts-green: #89d185;--vscode-charts-purple: #b180d7;--vscode-charts-red: #f14c4c;--vscode-charts-yellow: #cca700;--vscode-editorGutter-addedBackground: #2ea043;--vscode-editorGutter-modifiedBackground: #0078d4;--vscode-editorGutter-deletedBackground: #f85149;--vscode-diffEditor-insertedTextBackground: rgba(156, 204, 44, .2);--vscode-diffEditor-removedTextBackground: rgba(255, 0, 0, .2);--vscode-textPreformat-foreground: #d0d0d0;--vscode-textBlockQuote-background: #2b2b2b;--vscode-keybindingLabel-background: rgba(128, 128, 128, .17);--vscode-keybindingLabel-foreground: #cccccc;--vscode-keybindingLabel-border: rgba(51, 51, 51, .6);--vscode-keybindingLabel-bottomBorder: rgba(68, 68, 68, .6);--vscode-scrollbarSlider-background: rgba(121, 121, 121, .4);--vscode-scrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-scrollbarSlider-activeBackground: rgba(191, 191, 191, .4)}html:has(>body[data-seqnotes-theme=light]:not(.vscode-light,.vscode-high-contrast-light)){color-scheme:light;background:#fff;scrollbar-color:rgba(100,100,100,.4) #ffffff}html:has(>body[data-seqnotes-theme=dark]:is(.vscode-light,.vscode-high-contrast-light)){color-scheme:dark;background:#1f1f1f;scrollbar-color:rgba(121,121,121,.4) #1f1f1f}.seqnotes-viewer{padding:2px 26px 40vh;font-family:var(--vscode-markdown-font-family, var(--vscode-font-family));font-size:var(--vscode-markdown-font-size, 14px);line-height:var(--vscode-markdown-line-height, 1.6);color:var(--vscode-editor-foreground);background:var(--vscode-editor-background);word-wrap:break-word}:where(.seqnotes-viewer) :is(h1,h2,h3,h4,h5,h6){font-weight:600;line-height:1.25;margin:1.4em 0 .6em}:where(.seqnotes-viewer) h1{font-size:2em;padding-bottom:.3em;border-bottom:1px solid var(--seqnotes-border)}:where(.seqnotes-viewer) h2{font-size:1.5em;padding-bottom:.3em;border-bottom:1px solid var(--seqnotes-border)}:where(.seqnotes-viewer) h3{font-size:1.25em}:where(.seqnotes-viewer) a{color:var(--vscode-textLink-foreground);text-decoration:none}:where(.seqnotes-viewer) a:hover{color:var(--vscode-textLink-activeForeground);text-decoration:underline}:where(.seqnotes-viewer) code{font-family:var(--vscode-editor-font-family, monospace);font-size:.9em;background:var(--vscode-textCodeBlock-background, rgba(128, 128, 128, .15));padding:.1em .35em;border-radius:3px}:where(.seqnotes-viewer) pre{background:var(--vscode-textCodeBlock-background, rgba(128, 128, 128, .15));padding:12px 16px;border-radius:4px;overflow:auto}:where(.seqnotes-viewer) pre code{background:none;padding:0}:where(.seqnotes-viewer) blockquote{margin:0 0 1em;padding:0 1em;border-left:4px solid var(--vscode-textBlockQuote-border, var(--seqnotes-border));color:var(--vscode-textBlockQuote-foreground, inherit)}:where(.seqnotes-viewer) table{border-collapse:collapse;margin-bottom:1em}:where(.seqnotes-viewer) :is(th,td){border:1px solid var(--seqnotes-border);padding:4px 10px}:where(.seqnotes-viewer) th{background:var(--seqnotes-th-bg)}.seqnotes-viewer.seqnotes-sticky-table-header thead th{position:sticky;top:0;z-index:1;background:linear-gradient(var(--seqnotes-th-bg),var(--seqnotes-th-bg)),var(--vscode-editor-background)}.seqnotes-cell-hidden{display:none}.seqnotes-cell-sub{display:block;font-size:.9em;font-weight:400;color:var(--seqnotes-muted)}.seqnotes-cell-sub code{font-size:1em}.seqnotes-tree-table{--seqnotes-tree-indent: 1.25em;--seqnotes-tree-line: color-mix(in srgb, var(--seqnotes-muted) 55%, transparent);--seqnotes-tree-y: calc(5px + .8em) }@supports (top: 1lh){.seqnotes-tree-table{--seqnotes-tree-y: calc(5px + .5lh) }}.seqnotes-tree-head{text-align:left}.seqnotes-tree-head,.seqnotes-tree-cell{padding-left:calc(10px + (var(--seqnotes-depth, 0) + 1) * var(--seqnotes-tree-indent))}.seqnotes-tree-cell{position:relative;white-space:nowrap}.seqnotes-tree-guides{position:absolute;top:-1px;bottom:-1px;left:10px;display:flex;pointer-events:none}.seqnotes-tree-guides>span{position:relative;flex:none;width:var(--seqnotes-tree-indent)}.seqnotes-tree-guides>span:before,.seqnotes-tree-guides>span:after{content:"";position:absolute;left:50%}.seqnotes-tree-pipe:before,.seqnotes-tree-tee:before{top:0;bottom:0;border-left:1px solid var(--seqnotes-tree-line)}.seqnotes-tree-elbow:before{top:0;height:var(--seqnotes-tree-y);border-left:1px solid var(--seqnotes-tree-line)}.seqnotes-tree-tee:after,.seqnotes-tree-elbow:after{top:var(--seqnotes-tree-y);width:calc(1.5 * var(--seqnotes-tree-indent) - 4px);border-top:1px solid var(--seqnotes-tree-line)}.seqnotes-tree-parent :is(.seqnotes-tree-tee,.seqnotes-tree-elbow):after{width:calc(var(--seqnotes-tree-indent) - .45em)}.seqnotes-tree-stem:before{top:calc(var(--seqnotes-tree-y) + .45em);bottom:0;border-left:1px solid var(--seqnotes-tree-line)}.seqnotes-tree-folded .seqnotes-tree-stem{display:none}.seqnotes-tree-toggle{position:absolute;top:calc(var(--seqnotes-tree-y) - .6em);left:calc(10px + var(--seqnotes-depth) * var(--seqnotes-tree-indent));display:grid;place-items:center;width:var(--seqnotes-tree-indent);height:1.2em;padding:0;border:none;border-radius:3px;background:none;color:var(--seqnotes-muted);font:inherit;cursor:pointer}.seqnotes-tree-toggle:hover{color:inherit;background:var(--seqnotes-accent-bg)}.seqnotes-tree-toggle:focus-visible{outline:1px solid var(--vscode-focusBorder, var(--seqnotes-accent))}.seqnotes-tree-toggle:before{content:"";width:.4em;height:.4em;margin-top:-.2em;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}.seqnotes-tree-folded .seqnotes-tree-toggle:before{margin:0 0 0 -.2em;transform:rotate(-45deg)}:where(.seqnotes-tree-table:not(.seqnotes-table-plain)) .seqnotes-tree-parent>td{background:color-mix(in srgb,var(--seqnotes-th-bg) 50%,transparent)}:where(.seqnotes-tree-table:not(.seqnotes-table-plain)) .seqnotes-tree-parent>.seqnotes-tree-cell{font-weight:600}.seqnotes-tree-hidden{display:none}.seqnotes-table-tree-highlight .seqnotes-tree-table:not(.seqnotes-table-plain)>tbody>.seqnotes-tree-related>td{background:color-mix(in srgb,var(--seqnotes-accent) 6%,transparent)}.seqnotes-table-tree-highlight .seqnotes-tree-table:not(.seqnotes-table-plain)>tbody>.seqnotes-tree-current>td{background:var(--seqnotes-accent-bg)}.seqnotes-table-plain-cell{position:relative;padding-right:34px}.seqnotes-table-plain-cell>.seqnotes-table-plain-toggle{top:50%;right:4px;transform:translateY(-50%)}.seqnotes-item-table:hover .seqnotes-table-plain-toggle{opacity:1}.seqnotes-table-plain-toggle[aria-pressed=true]{background:var(--seqnotes-accent-bg)}.seqnotes-table-plain :is(th,td).seqnotes-cell-hidden{display:table-cell}.seqnotes-table-plain :is(.seqnotes-cell-sub,.seqnotes-tree-guides,.seqnotes-tree-toggle){display:none}.seqnotes-table-plain :is(.seqnotes-tree-head,.seqnotes-tree-cell){padding-left:10px;white-space:normal}.seqnotes-table-plain .seqnotes-tree-head{text-align:revert}.seqnotes-table-plain .seqnotes-tree-hidden{display:table-row}@media print{.seqnotes-tree-hidden{display:table-row}.seqnotes-tree-toggle{visibility:hidden}.seqnotes-table-plain-toggle{display:none}.seqnotes-table-plain-cell{padding-right:10px}.seqnotes-tree-folded .seqnotes-tree-stem{display:block}.seqnotes-tree-parent :is(.seqnotes-tree-tee,.seqnotes-tree-elbow):after{width:calc(1.5 * var(--seqnotes-tree-indent) - 4px)}}.seqnotes-front-matter{font-size:.9em}.seqnotes-front-matter th,.seqnotes-front-matter td{padding:2px 8px}.seqnotes-front-matter th{text-align:left;font-weight:400;color:var(--seqnotes-muted);background:none}.seqnotes-front-matter td{white-space:pre-wrap}.seqnotes-doc-header{font-size:.9em;margin-bottom:1.5em}.seqnotes-doc-headline{display:flex;flex-wrap:wrap;overflow:hidden;border:1px solid var(--seqnotes-border);border-radius:4px}.seqnotes-doc-title,.seqnotes-doc-meta>div{min-width:0;margin:0 0 -1px -1px;padding:.5em 8px;border-left:1px solid var(--seqnotes-border);border-bottom:1px solid var(--seqnotes-border);overflow-wrap:anywhere}.seqnotes-doc-title{flex:1 1 auto;display:flex;align-items:center;font-weight:600;white-space:pre-wrap}.seqnotes-doc-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;margin:0 0 0 auto}.seqnotes-doc-meta:first-child{margin-left:0;justify-content:flex-start}.seqnotes-doc-meta>div{flex:1 1 auto;display:flex;align-items:center;gap:.5em}.seqnotes-doc-meta dt{color:var(--seqnotes-muted);white-space:nowrap}.seqnotes-doc-meta dd{min-width:0;margin:0;white-space:pre-wrap}.seqnotes-doc-status dd{padding:0 .6em;border:1px solid var(--seqnotes-border);border-radius:1em}.seqnotes-doc-header .seqnotes-front-matter{margin:.4em 0 0;font-size:1em}.seqnotes-doc-header details.seqnotes-doc-more{margin:0;padding:0;border:none;border-radius:0}.seqnotes-doc-headline+details.seqnotes-doc-more{margin-top:.6em}.seqnotes-doc-header .seqnotes-doc-more>summary{display:inline-flex;margin:0;padding:0;background:none;border:none;font-weight:400;color:var(--seqnotes-muted)}.seqnotes-doc-header .seqnotes-doc-more>summary:hover{color:var(--vscode-foreground, inherit)}.seqnotes-index table{width:100%}.seqnotes-index th{text-align:left}.seqnotes-index-file{color:var(--seqnotes-muted);font-family:var(--vscode-editor-font-family);font-size:.9em}.seqnotes-index-status span{padding:0 .6em;border:1px solid var(--seqnotes-border);border-radius:1em;white-space:nowrap}.seqnotes-index-changes .seqnotes-diff-counts{flex-wrap:wrap}.seqnotes-index-unchanged{color:var(--seqnotes-muted)}.seqnotes-index-new{padding:0 .6em;border:1px solid var(--vscode-editorGutter-addedBackground, #2ea043);border-radius:1em;white-space:nowrap}.seqnotes-index-filter{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0 0 1em}.seqnotes-index-filter input{flex:0 1 28em;min-width:0;padding:4px 8px;font:inherit;color:var(--vscode-input-foreground, inherit);background:var(--vscode-input-background, transparent);border:1px solid var(--vscode-input-border, var(--seqnotes-border));border-radius:2px}.seqnotes-index-filter input::placeholder{color:var(--vscode-input-placeholderForeground, var(--seqnotes-muted))}.seqnotes-index-filter input:focus{outline:1px solid var(--vscode-focusBorder, #0078d4);outline-offset:-1px}.seqnotes-index-count,.seqnotes-index-empty{color:var(--seqnotes-muted)}.seqnotes-index th:has(>.seqnotes-index-sort){padding:0}.seqnotes-index-sort{display:flex;align-items:center;gap:.3em;width:100%;padding:4px 10px;font:inherit;font-weight:inherit;text-align:left;color:inherit;background:none;border:none;cursor:pointer}.seqnotes-index-sort:focus-visible{outline:1px solid var(--vscode-focusBorder, #0078d4);outline-offset:-1px}.seqnotes-index-sort:after{content:"\\2195";color:var(--seqnotes-muted);opacity:0}.seqnotes-index-sort:hover:after{opacity:1}.seqnotes-index th[aria-sort=ascending] .seqnotes-index-sort:after{content:"\\2191";opacity:1}.seqnotes-index th[aria-sort=descending] .seqnotes-index-sort:after{content:"\\2193";opacity:1}@media print{.seqnotes-index-filter{display:none}.seqnotes-index-sort:after{display:none}}:where(.seqnotes-viewer) img{max-width:100%}:where(.seqnotes-viewer) hr{border:0;border-top:1px solid var(--seqnotes-border)}.markdown-alert{--seqnotes-alert: var(--vscode-charts-blue, #3794ff);margin:0 0 1em;padding:0 1em;border-left:4px solid var(--seqnotes-alert)}.markdown-alert-tip{--seqnotes-alert: var(--vscode-charts-green, #388a34)}.markdown-alert-important{--seqnotes-alert: var(--vscode-charts-purple, #b180d7)}.markdown-alert-warning{--seqnotes-alert: var(--vscode-charts-yellow, #cca700)}.markdown-alert-caution{--seqnotes-alert: var(--vscode-charts-red, #f14c4c)}.markdown-alert-title{display:flex;align-items:center;color:var(--seqnotes-alert);font-weight:600}.markdown-alert-title .octicon{flex:none;margin-right:.5em;fill:currentColor}.task-list-item{list-style-type:none}.task-list-item-checkbox{margin:0 .3em .2em -1.4em;vertical-align:middle}.footnote-ref{font-size:.75em;line-height:0}.footnote-ref a{margin:0 .1em}.footnotes-sep{margin-top:2em}.footnotes{font-size:.9em;color:var(--seqnotes-muted)}.footnotes-list{padding-left:2em}.footnote-item p{margin:.3em 0}.footnote-backref{text-decoration:none}.seqnotes-footnote-popup{position:fixed;z-index:15;box-sizing:border-box;max-width:min(480px,calc(100vw - 16px));max-height:50vh;overflow:auto;padding:8px 12px;font-size:.9em;background:var(--vscode-editorWidget-background, var(--vscode-editor-background));border:1px solid var(--vscode-editorWidget-border, var(--seqnotes-border));border-radius:4px;box-shadow:0 2px 8px var(--vscode-widget-shadow, rgba(0, 0, 0, .16))}.seqnotes-footnote-popup[hidden]{display:none}.seqnotes-footnote-popup>:first-child{margin-top:0}.seqnotes-footnote-popup>:last-child{margin-bottom:0}@media print{.seqnotes-footnote-popup{display:none}}.footnote-ref a,.footnote-item{scroll-margin-top:1em}:where(.seqnotes-viewer) details{margin:0 0 1em;padding:0 12px;border:1px solid var(--seqnotes-border);border-radius:4px}:where(.seqnotes-viewer) details[open]{padding-bottom:.8em}:where(.seqnotes-viewer) summary{display:flex;align-items:center;gap:.6em;margin:0 -12px;padding:6px 12px;border-radius:3px;background:var(--vscode-textCodeBlock-background, rgba(128, 128, 128, .1));font-weight:600;list-style:none;cursor:pointer;user-select:none;transition:background-color .15s}:where(.seqnotes-viewer) summary::-webkit-details-marker{display:none}:where(.seqnotes-viewer) summary:before{content:"";flex:none;width:.4em;height:.4em;margin:0 .1em;border-right:2px solid var(--seqnotes-muted);border-bottom:2px solid var(--seqnotes-muted);transform:rotate(-45deg);transition:transform .15s,border-color .15s}:where(.seqnotes-viewer) details[open]>summary{margin-bottom:.8em;border-bottom:1px solid var(--seqnotes-border);border-bottom-left-radius:0;border-bottom-right-radius:0}:where(.seqnotes-viewer) details[open]>summary:before{transform:rotate(45deg)}:where(.seqnotes-viewer) summary:hover{background:var(--vscode-list-hoverBackground, rgba(128, 128, 128, .2))}:where(.seqnotes-viewer) summary:hover:before{border-color:var(--seqnotes-accent)}:where(.seqnotes-viewer) summary:focus-visible{outline:1px solid var(--vscode-focusBorder);outline-offset:-1px}:where(.seqnotes-viewer) details>:last-child:not(summary){margin-bottom:0}.seqnotes-viewer{--seqnotes-hl-keyword: #569cd6;--seqnotes-hl-type: #4ec9b0;--seqnotes-hl-number: #b5cea8;--seqnotes-hl-string: #ce9178;--seqnotes-hl-function: #dcdcaa;--seqnotes-hl-comment: #6a9955;--seqnotes-hl-meta: #9b9b9b;--seqnotes-hl-variable: #9cdcfe;--seqnotes-hl-selector: #d7ba7d}.seqnotes-viewer:is(.vscode-light,.vscode-high-contrast-light):not([data-seqnotes-theme=dark]),.seqnotes-viewer[data-seqnotes-theme=light]{--seqnotes-hl-keyword: #0000ff;--seqnotes-hl-type: #267f99;--seqnotes-hl-number: #098658;--seqnotes-hl-string: #a31515;--seqnotes-hl-function: #795e26;--seqnotes-hl-comment: #008000;--seqnotes-hl-meta: #808080;--seqnotes-hl-variable: #001080;--seqnotes-hl-selector: #800000}.hljs-keyword,.hljs-literal,.hljs-symbol,.hljs-name,.hljs-link{color:var(--seqnotes-hl-keyword)}.hljs-built_in,.hljs-type{color:var(--seqnotes-hl-type)}.hljs-number,.hljs-class,.hljs-addition{color:var(--seqnotes-hl-number)}.hljs-string,.hljs-regexp,.hljs-deletion{color:var(--seqnotes-hl-string)}.hljs-title,.hljs-title.function_{color:var(--seqnotes-hl-function)}.hljs-comment,.hljs-quote{color:var(--seqnotes-hl-comment);font-style:italic}.hljs-meta,.hljs-tag{color:var(--seqnotes-hl-meta)}.hljs-variable,.hljs-template-variable,.hljs-attr,.hljs-attribute,.hljs-property{color:var(--seqnotes-hl-variable)}.hljs-section,.hljs-bullet,.hljs-selector-tag,.hljs-selector-id,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo{color:var(--seqnotes-hl-selector)}.hljs-section,.hljs-strong{font-weight:700}.hljs-emphasis{font-style:italic}.seqnotes-mermaid{margin:1em 0}.seqnotes-mermaid-scratch{position:fixed;top:0;left:0;width:100vw;height:0;overflow:hidden;visibility:hidden;pointer-events:none}.seqnotes-diagram{position:relative}.seqnotes-diagram svg{display:block;max-width:100%;height:auto;margin:0 auto}.seqnotes-zoom-button,.seqnotes-zoom-toolbar button,.seqnotes-table-plain-toggle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;border-radius:4px;background:none;color:var(--vscode-icon-foreground, currentColor);font:inherit;font-size:16px;line-height:1;cursor:pointer}.seqnotes-zoom-button:hover,.seqnotes-zoom-toolbar button:hover,.seqnotes-table-plain-toggle:hover{background:var(--vscode-toolbar-hoverBackground, rgba(128, 128, 128, .2))}.seqnotes-zoom-button:focus-visible,.seqnotes-zoom-toolbar button:focus-visible,.seqnotes-table-plain-toggle:focus-visible{outline:1px solid var(--vscode-focusBorder)}.seqnotes-zoom-button,.seqnotes-table-plain-toggle{position:absolute;top:0;right:0;z-index:1;opacity:0;border:1px solid var(--vscode-editorWidget-border, var(--seqnotes-border));background:var(--vscode-editorWidget-background, var(--vscode-editor-background));transition:opacity .15s}.seqnotes-diagram:hover>.seqnotes-zoom-button,.seqnotes-zoom-button:focus-visible,.seqnotes-table-plain-toggle:focus-visible{opacity:1}.seqnotes-zoomable{cursor:zoom-in}.seqnotes-zoomable:focus-visible{outline:1px solid var(--vscode-focusBorder);outline-offset:2px}.seqnotes-zoom{position:fixed;inset:0;z-index:20;overflow:hidden;background:var(--vscode-editor-background);outline:none;cursor:grab;touch-action:none;user-select:none}.seqnotes-zoom[hidden]{display:none}.seqnotes-zoom-stage{position:absolute;top:0;left:0;transform-origin:0 0}.seqnotes-zoom-stage svg{display:block}.seqnotes-zoom-stage img{display:block;max-width:none}.seqnotes-zoom.seqnotes-zoom-dragging{cursor:grabbing}.seqnotes-zoom .seqnotes-wireframe-screen{cursor:auto;user-select:text}.seqnotes-zoom.seqnotes-zoom-space .seqnotes-wireframe-screen{cursor:grab;user-select:none}.seqnotes-zoom-toolbar{position:absolute;top:8px;right:8px;display:flex;gap:2px;padding:2px;border:1px solid var(--vscode-editorWidget-border, var(--seqnotes-border));border-radius:6px;background:var(--vscode-editorWidget-background, var(--vscode-editor-background));box-shadow:0 2px 8px var(--vscode-widget-shadow, rgba(0, 0, 0, .36))}.seqnotes-mermaid-src{white-space:pre}.seqnotes-error-message{color:var(--vscode-errorForeground, #f14c4c);margin-bottom:4px;white-space:pre-wrap}.seqnotes-warnings{position:relative;margin:12px 0;padding:6px 2em 6px 12px;border:1px solid var(--vscode-inputValidation-warningBorder, #b89500);background:var(--vscode-inputValidation-warningBackground, rgba(184, 149, 0, .15));border-radius:4px}.seqnotes-warnings p{margin:4px 0}.seqnotes-warnings-close{position:absolute;top:4px;right:4px;width:1.6em;height:1.6em;padding:0;border:none;border-radius:4px;background:none;color:var(--vscode-icon-foreground, currentColor);font:inherit;line-height:1;cursor:pointer}.seqnotes-warnings-close:hover{background:var(--vscode-toolbar-hoverBackground, rgba(128, 128, 128, .2))}.seqnotes-warnings-close:focus-visible{outline:1px solid var(--vscode-focusBorder)}.seqnotes-viewer.seqnotes-limit-width .seqnotes-viewer-root>*{margin-inline:max(0px,(100% - 1280px) / 2)}.seqnotes-viewer.seqnotes-limit-width.seqnotes-wide .seqnotes-viewer-root>.seqnotes-pair:not(.seqnotes-pair-stacked){margin-inline:0}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked){display:grid;grid-template-columns:minmax(0,var(--seqnotes-split, 55%)) 24px minmax(0,1fr);align-items:stretch}.seqnotes-splitter{display:none}.seqnotes-viewer.seqnotes-wide .seqnotes-splitter{display:block;cursor:col-resize;position:relative;touch-action:none}.seqnotes-viewer.seqnotes-wide .seqnotes-splitter:after{content:"";position:absolute;top:0;bottom:0;left:11px;width:2px;background:transparent;transition:background-color .15s}.seqnotes-viewer.seqnotes-wide .seqnotes-splitter:hover:after,.seqnotes-viewer.seqnotes-wide .seqnotes-splitter:active:after{background:var(--vscode-sash-hoverBorder, var(--seqnotes-accent))}.seqnotes-viewer.seqnotes-wide .seqnotes-splitter:focus{outline:none}.seqnotes-viewer.seqnotes-wide .seqnotes-splitter:focus-visible:after{background:var(--vscode-focusBorder, var(--seqnotes-accent))}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-seq-col{align-self:start;position:sticky;top:0;max-height:var(--seqnotes-viewport-height, 100vh);overflow:auto;box-sizing:border-box;padding:8px 0}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-seq-col .seqnotes-mermaid{margin:0}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-overview-col>:first-child,.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-overview-col>:first-child>:first-child{margin-top:8px}.seqnotes-linked{cursor:pointer}.seqnotes-hit{stroke:transparent!important;stroke-width:14px!important;fill:none!important;pointer-events:stroke}.messageText.seqnotes-active{fill:var(--seqnotes-accent)!important;font-weight:700}.seqnotes-msg.seqnotes-active:not(.seqnotes-hit,.messageText){stroke:var(--seqnotes-accent)!important;stroke-width:3px!important}.seqnotes-note.seqnotes-anchor>rect{fill:var(--seqnotes-accent)!important;stroke:var(--seqnotes-accent)!important}.seqnotes-note.seqnotes-anchor :is(text,tspan){fill:var(--vscode-editor-background, #fff)!important;font-weight:700}text.seqnotes-anchor,text.seqnotes-anchor tspan{fill:var(--seqnotes-accent)!important;font-weight:700}.seqnotes-anchor,.seqnotes-goto{cursor:pointer}.seqnotes-goto>rect{stroke:var(--seqnotes-accent)!important;stroke-dasharray:5 3}.seqnotes-goto.seqnotes-jump-hover>rect,.seqnotes-note.seqnotes-anchor.seqnotes-jump-hover>rect{stroke-width:3px!important}.seqnotes-goto.seqnotes-jump-hover :is(text,tspan){fill:var(--seqnotes-accent)!important}text.seqnotes-anchor.seqnotes-jump-hover{text-decoration:underline}.seqnotes-goto:focus-visible,.seqnotes-anchor:focus-visible{outline:2px solid var(--vscode-focusBorder, var(--seqnotes-accent));outline-offset:2px}.seqnotes-branch{fill:var(--seqnotes-accent);fill-opacity:0;pointer-events:none;transition:fill-opacity .15s}.seqnotes-branch.seqnotes-jump-hover{fill-opacity:.08}.seqnotes-branch.seqnotes-flash{animation:seqnotes-branch-flash 1.2s ease-out}@keyframes seqnotes-branch-flash{0%,30%{fill-opacity:.25}to{fill-opacity:0}}g.seqnotes-flash>rect{animation:seqnotes-note-flash 1.2s ease-out}@keyframes seqnotes-note-flash{0%,30%{stroke:var(--seqnotes-accent);stroke-width:6px}}text.seqnotes-flash{animation:seqnotes-text-flash 1.2s ease-out}@keyframes seqnotes-text-flash{0%,30%{opacity:.3}}.seqnotes-jump-back{position:absolute;z-index:1;transform:translateY(-50%);max-width:60%;overflow:hidden;padding:1px 8px;border:1px solid var(--seqnotes-accent);border-radius:10px;background:var(--vscode-editorWidget-background, var(--vscode-editor-background, #fff));color:var(--seqnotes-accent);font:12px/1.6 var(--vscode-font-family, sans-serif);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;box-shadow:0 1px 4px #0003}.seqnotes-jump-back:hover{background:var(--seqnotes-accent);color:var(--vscode-editor-background, #fff)}.seqnotes-jump-back:focus-visible{outline:1px solid var(--vscode-focusBorder);outline-offset:1px}.seqnotes-node.seqnotes-linked .nodeLabel:not([class*=attribute-] *){text-decoration:underline dotted}.seqnotes-node.seqnotes-active :is(rect,polygon,circle,ellipse,path,polyline):not(.label *,.divider *,[class^=row-rect] *){stroke:var(--seqnotes-accent)!important;stroke-width:3px!important}.seqnotes-node.seqnotes-active .nodeLabel:not([class*=attribute-] *){color:var(--seqnotes-accent)!important;font-weight:700}.seqnotes-node.seqnotes-active text{fill:var(--seqnotes-accent)!important;font-weight:700}.seqnotes-wireframe{margin:1em 0;padding:10px}.seqnotes-wireframe-src{display:none}.seqnotes-wireframe-frame{position:relative;max-width:100%;margin:0 auto;border:1px solid var(--seqnotes-border);background:#fff}.seqnotes-wireframe-screen{transform-origin:0 0;contain:layout paint}.seqnotes-wireframe-frame:hover>.seqnotes-zoom-button{opacity:1}.seqnotes-wireframe-note{margin:6px 0 0;color:var(--vscode-editorWarning-foreground, #b89500);font-size:.9em}.seqnotes-wireframe-missing>p{margin:0;padding:2em 1em;border:1px dashed var(--seqnotes-border);color:var(--seqnotes-muted);text-align:center}.seqnotes-part{position:absolute;box-sizing:border-box;pointer-events:none;border:2px solid transparent;border-radius:3px;transition:background-color .15s,border-color .15s}.seqnotes-part.seqnotes-active{border-color:var(--seqnotes-accent);background:var(--seqnotes-accent-bg)}.seqnotes-part-number{position:absolute;left:0;top:0;min-width:18px;height:18px;padding:0 4px;border-radius:9px;box-sizing:border-box;background:#d93025;color:#fff;font:bold 11px/18px var(--vscode-font-family, sans-serif);text-align:center;transform:translate(-50%,-50%);pointer-events:none}.seqnotes-part.seqnotes-active .seqnotes-part-number{background:var(--seqnotes-accent)}.seqnotes-part.seqnotes-unlinked:not(.seqnotes-active) .seqnotes-part-number{opacity:.45}tr.seqnotes-row{cursor:pointer}tr.seqnotes-row.seqnotes-active>td{background:var(--seqnotes-accent-bg)}tr.seqnotes-row.seqnotes-active>td:first-child{box-shadow:inset 3px 0 0 var(--seqnotes-accent)}.seqnotes-section{display:flow-root;margin:.8em 0;border-left:3px solid transparent;padding:0 8px 0 12px;border-radius:2px;transition:background-color .15s,border-color .15s}.seqnotes-section.seqnotes-active{border-left-color:var(--seqnotes-accent);background:var(--seqnotes-accent-bg)}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-overview-col>.seqnotes-section~.seqnotes-section{position:relative;margin-top:1.6em}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-overview-col>.seqnotes-section~.seqnotes-section:before{content:"";position:absolute;top:-.8em;left:-3px;right:0;border-top:1px solid var(--seqnotes-border)}.seqnotes-section>:is(h1,h2,h3,h4,h5,h6){cursor:pointer;margin-top:.5em}.seqnotes-section>:is(h1,h2,h3,h4,h5,h6):hover{color:var(--seqnotes-accent)}.seqnotes-step{display:inline-block;min-width:1.6em;margin-right:.5em;padding:0 .45em;border-radius:.8em;background:var(--vscode-foreground, #333);color:var(--vscode-editor-background, #fff);font-size:.65em;line-height:1.6em;text-align:center;vertical-align:middle;box-sizing:border-box}.messageText.seqnotes-unlinked:not(.seqnotes-current){opacity:.55}.seqnotes-node.seqnotes-unlinked:not(.seqnotes-current) .label{opacity:.55}.seqnotes-unlinked:is(h1,h2,h3,h4,h5,h6):after,.seqnotes-unlinked>td[data-seqnotes-mark]:after{content:attr(data-seqnotes-mark);margin-left:.6em;padding:0 .5em;border:1px dashed var(--seqnotes-border);border-radius:1em;color:var(--seqnotes-muted);font-size:.6em;font-weight:400;vertical-align:middle}[data-line].seqnotes-current:not(.seqnotes-mermaid){box-shadow:-10px 0 0 -7px var(--seqnotes-current)}.messageText.seqnotes-current{font-weight:700;text-decoration:underline}.seqnotes-msg.seqnotes-current:not(.seqnotes-hit,.messageText){stroke-width:3px!important}.seqnotes-node.seqnotes-current :is(rect,polygon,circle,ellipse,path,polyline):not(.label *,.divider *,[class^=row-rect] *){stroke-width:3px!important}.seqnotes-node.seqnotes-current .nodeLabel:not([class*=attribute-] *){font-weight:700;text-decoration:underline}.seqnotes-node.statediagram-cluster:is(.seqnotes-active,.seqnotes-current) .nodeLabel{font-weight:400}.seqnotes-toc{position:fixed;top:50%;right:4px;z-index:10;transform:translateY(-50%);display:flex;flex-direction:column;box-sizing:border-box;width:20px;max-height:70vh;padding:6px 0;border:1px solid transparent;border-radius:6px;font-size:13px;line-height:1.4}.seqnotes-toc[hidden],.seqnotes-toc-title{display:none}.seqnotes-toc ol{position:relative;min-height:0;margin:0;padding:0;list-style:none;overflow:hidden}.seqnotes-toc button{display:block;position:relative;box-sizing:border-box;width:100%;height:8px;padding:0;border:none;background:none;color:inherit;font:inherit;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.seqnotes-toc button:before{content:"";position:absolute;top:3px;right:2px;width:calc(14px - var(--seqnotes-toc-depth, 0) * 4px);height:2px;border-radius:1px;background:var(--seqnotes-border)}.seqnotes-toc .seqnotes-toc-current button:before{background:var(--seqnotes-accent)}.seqnotes-toc-text{display:none}.seqnotes-toc:is(:hover,:has(:focus-visible)){width:max-content;min-width:160px;max-width:min(320px,60vw);padding:6px;border-color:var(--vscode-editorWidget-border, var(--seqnotes-border));background:var(--vscode-editorWidget-background, var(--vscode-editor-background));box-shadow:0 2px 8px var(--vscode-widget-shadow, rgba(0, 0, 0, .36))}.seqnotes-toc:is(:hover,:has(:focus-visible)) .seqnotes-toc-title{display:block;padding:0 8px 4px;color:var(--seqnotes-muted);font-size:11px;font-weight:600}.seqnotes-toc:is(:hover,:has(:focus-visible)) ol{overflow-y:auto}.seqnotes-toc:is(:hover,:has(:focus-visible)) button{height:auto;padding:2px 8px 2px calc(8px + var(--seqnotes-toc-depth, 0) * 12px);border-left:2px solid transparent;border-radius:3px}.seqnotes-toc:is(:hover,:has(:focus-visible)) button:before{display:none}.seqnotes-toc:is(:hover,:has(:focus-visible)) .seqnotes-toc-text{display:inline}.seqnotes-toc:is(:hover,:has(:focus-visible)) button:hover{background:var(--vscode-list-hoverBackground, rgba(128, 128, 128, .2))}.seqnotes-toc:is(:hover,:has(:focus-visible)) .seqnotes-toc-current button{border-left-color:var(--seqnotes-accent);color:var(--seqnotes-accent)}.seqnotes-toc button:focus-visible{outline:1px solid var(--vscode-focusBorder);outline-offset:-1px}[data-seqnotes-diff]{--seqnotes-diff-color: var(--vscode-editorGutter-addedBackground, #2ea043)}[data-seqnotes-diff=changed]{--seqnotes-diff-color: var(--vscode-editorGutter-modifiedBackground, #005fb8)}[data-seqnotes-diff=deleted]{--seqnotes-diff-color: var(--vscode-editorGutter-deletedBackground, #f85149)}[data-seqnotes-diff]:not(tr,:where(.seqnotes-diff-off *)){border-radius:2px;background:color-mix(in srgb,var(--seqnotes-diff-color) 8%,transparent);box-shadow:-4px 0 0 0 var(--vscode-editor-background, transparent),-8px 0 0 0 var(--seqnotes-diff-color)}tr[data-seqnotes-diff]:not(:where(.seqnotes-diff-off *))>:is(td,th){background:color-mix(in srgb,var(--seqnotes-diff-color) 10%,transparent)}tr[data-seqnotes-diff]:not(:where(.seqnotes-diff-off *))>:first-child{box-shadow:inset 4px 0 0 0 var(--seqnotes-diff-color)}[data-seqnotes-diff=deleted]{opacity:.75}:is(h1,h2,h3,h4,h5,h6)[data-seqnotes-diff]:not(:where(.seqnotes-diff-off *)){padding-left:4px}ins.seqnotes-diff-ins{text-decoration:none}ins.seqnotes-diff-ins:not(:where(.seqnotes-diff-off *)){border-radius:2px;background:var(--vscode-diffEditor-insertedTextBackground, rgba(156, 204, 44, .25));box-shadow:0 1.5px 0 0 var(--vscode-editorGutter-addedBackground, #2ea043)}del.seqnotes-diff-del{border-radius:2px;background:var(--vscode-diffEditor-removedTextBackground, rgba(255, 0, 0, .2));text-decoration:line-through;text-decoration-color:var(--vscode-editorGutter-deletedBackground, #f85149)}.seqnotes-diff-old-diagram{margin:.5em 0 1em}.seqnotes-diff-old-diagram>summary{color:var(--seqnotes-muted);font-size:.9em}.seqnotes-diff-old-diagram>.seqnotes-mermaid{opacity:.75;background:color-mix(in srgb,var(--vscode-editorGutter-deletedBackground, #f85149) 8%,transparent)}.seqnotes-diff-focus{outline:2px solid var(--vscode-focusBorder, #005fb8);outline-offset:2px}[data-seqnotes-diff]{scroll-margin:25vh 0}.seqnotes-diff-bar{position:fixed;bottom:16px;left:50%;z-index:12;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);box-sizing:border-box;padding:3px 3px 3px 12px;border:1px solid var(--vscode-editorWidget-border, var(--seqnotes-border));border-radius:6px;background:var(--vscode-editorWidget-background, var(--vscode-editor-background));box-shadow:0 2px 8px var(--vscode-widget-shadow, rgba(0, 0, 0, .36));font-size:12px;transform:translate(-50%)}.seqnotes-diff-bar[hidden]{display:none}.seqnotes-diff-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seqnotes-diff-counts{display:flex;gap:8px;color:var(--seqnotes-muted);white-space:nowrap}.seqnotes-diff-count:before{content:"";display:inline-block;width:8px;height:8px;margin-right:4px;border-radius:2px;background:var(--seqnotes-diff-color)}.seqnotes-diff-count[data-kind=added]{--seqnotes-diff-color: var(--vscode-editorGutter-addedBackground, #2ea043)}.seqnotes-diff-count[data-kind=changed]{--seqnotes-diff-color: var(--vscode-editorGutter-modifiedBackground, #005fb8)}.seqnotes-diff-count[data-kind=deleted]{--seqnotes-diff-color: var(--vscode-editorGutter-deletedBackground, #f85149)}.seqnotes-diff-buttons{display:flex;gap:2px}.seqnotes-diff-buttons button{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--vscode-icon-foreground, currentColor);cursor:pointer}.seqnotes-diff-buttons button:hover{background:var(--vscode-toolbar-hoverBackground, rgba(128, 128, 128, .2))}.seqnotes-diff-buttons button:focus-visible{outline:1px solid var(--vscode-focusBorder)}.seqnotes-diff-buttons button:disabled{opacity:.4;cursor:default;background:transparent}@media print{.seqnotes-diff-bar{display:none}}\n';
3
+ var exportCss = ':root{--vscode-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "Noto Sans JP", sans-serif;--vscode-markdown-font-family: var(--vscode-font-family);--vscode-markdown-font-size: 14px;--vscode-markdown-line-height: 1.6;--vscode-editor-font-family: "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}.seqnotes-viewer.seqnotes-export{max-width:1600px;margin:0 auto;padding:16px 26px 40px}.seqnotes-viewer.seqnotes-diff-off :is([data-seqnotes-diff=deleted],del.seqnotes-diff-del,.seqnotes-diff-old-diagram){display:none}@media print{.seqnotes-viewer.seqnotes-export{max-width:none;padding:0}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked){display:block}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-seq-col{position:static;max-height:none;overflow:visible}.seqnotes-splitter,.seqnotes-toc{display:none!important}.seqnotes-viewer.seqnotes-sticky-table-header thead th{position:static}.seqnotes-section.seqnotes-active{background:none;border-left-color:transparent}.seqnotes-part.seqnotes-active{background:none;border-color:transparent}.seqnotes-part.seqnotes-active .seqnotes-part-number{background:#d93025}.seqnotes-part-number{-webkit-print-color-adjust:exact;print-color-adjust:exact}tr.seqnotes-row.seqnotes-active>td{background:none;box-shadow:none}.seqnotes-diagram,.seqnotes-wireframe,pre,table,.markdown-alert,details{break-inside:avoid}h1,h2,h3,h4,h5,h6{break-after:avoid}}\n';
4
+ var exportScript = '"use strict";(()=>{var Fe=(e,o)=>(e??"{0}").replace("{0}",String(o)),Ge=\'<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M3.5 10l4.5-4.5 4.5 4.5" fill="none" stroke="currentColor" stroke-width="1.5"/></svg>\',ze=\'<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M3.5 6l4.5 4.5 4.5-4.5" fill="none" stroke="currentColor" stroke-width="1.5"/></svg>\',ce=\'<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M1.5 8s2.5-4.5 6.5-4.5S14.5 8 14.5 8 12 12.5 8 12.5 1.5 8 1.5 8z" fill="none" stroke="currentColor" stroke-width="1.3"/><circle cx="8" cy="8" r="2" fill="none" stroke="currentColor" stroke-width="1.3"/></svg>\',Ve=\'<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M1.5 8s2.5-4.5 6.5-4.5S14.5 8 14.5 8 12 12.5 8 12.5 1.5 8 1.5 8z" fill="none" stroke="currentColor" stroke-width="1.3"/><circle cx="8" cy="8" r="2" fill="none" stroke="currentColor" stroke-width="1.3"/><path d="M2.5 13.5l11-11" stroke="currentColor" stroke-width="1.3"/></svg>\';function de(e,o,{container:r,titles:n,scroll:t}){let a=document.createElement("div");a.className="seqnotes-diff-bar",a.setAttribute("role","toolbar"),a.hidden=!0;let i=document.createElement("span");i.className="seqnotes-diff-label";let c=document.createElement("span");c.className="seqnotes-diff-counts";let d=document.createElement("span");d.className="seqnotes-diff-buttons";let u=(s,l,g)=>{let f=document.createElement("button");return f.type="button",f.innerHTML=s,f.title=l??"",f.setAttribute("aria-label",f.title),f.addEventListener("click",g),f},p=u(Ge,n.seqnotesDiffPreviousTitle,()=>E(-1)),A=u(ze,n.seqnotesDiffNextTitle,()=>E(1));d.append(p,A);let L,q,x,T=0,h=!0,b=()=>{p.disabled=A.disabled=T===0||!h};if("onClose"in o)d.append(u("&times;",n.seqnotesDiffCloseTitle,o.onClose));else{let s=u(ce,n.seqnotesDiffHideTitle,()=>{h=!h,L?.classList.remove("seqnotes-diff-focus"),s.innerHTML=h?ce:Ve,s.title=(h?n.seqnotesDiffHideTitle:n.seqnotesDiffShowTitle)??"",s.setAttribute("aria-label",s.title),b(),o.onToggle(h)});d.append(s)}a.append(i,c,d),r.append(a);let y=()=>Array.from(e.querySelectorAll("[data-seqnotes-diff]")).filter(s=>s.getClientRects().length>0);function E(s){let l=y();if(l.length===0)return;let g=t.viewport(),f=g.top+g.height*.25,m=L?l.indexOf(L):-1,v;m>=0&&q!==void 0&&Math.abs(t.top()-q)<2?v=l[(m+s+l.length)%l.length]:s>0?v=l.find(w=>w.getBoundingClientRect().top>f+1)??l[0]:v=[...l].reverse().find(w=>w.getBoundingClientRect().top<f-1)??l[l.length-1],L?.classList.remove("seqnotes-diff-focus"),L=v,v.classList.add("seqnotes-diff-focus"),t.reveal(v,"start"),q=t.top(),clearTimeout(x),x=setTimeout(()=>v.classList.remove("seqnotes-diff-focus"),1500)}function S(s){i.textContent=s,i.title=s}return{setLabel:S,show(s){if(a.hidden=!s,L=void 0,q=void 0,!s)return;S(s.label);let{added:l,changed:g,deleted:f}=s.stats,m=[["added",l,n.seqnotesDiffAdded],["changed",g,n.seqnotesDiffChanged],["deleted",f,n.seqnotesDiffDeleted]];c.replaceChildren(...m.filter(([,v])=>v>0).map(([v,w,M])=>{let R=document.createElement("span");return R.className="seqnotes-diff-count",R.dataset.kind=v,R.textContent=Fe(M,w),R})),T=l+g+f,T===0&&(c.textContent=n.seqnotesDiffNoChanges??""),b()},dispose(){clearTimeout(x),a.remove()}}}function ue(e){return e.trim().toLowerCase().replace(/[^\\p{L}\\p{N}\\s_-]/gu,"").replace(/\\s+/g,"-")||"section"}var U="seqnotes-active",Ue=4,I,me=0,pe=e=>{I={x:e.clientX,y:e.clientY}};function ge(){me++===0&&document.addEventListener("pointerdown",pe,!0);let e=!1;return()=>{e||(e=!0,--me===0&&(document.removeEventListener("pointerdown",pe,!0),I=void 0))}}var B=e=>I!==void 0&&Math.hypot(e.clientX-I.x,e.clientY-I.y)>Ue,j=e=>e.closest(".seqnotes-viewer.seqnotes-wide")!==null&&!e.closest(".seqnotes-pair-stacked");function N(e,o){if(e.querySelectorAll(`.${U}`).forEach(n=>n.classList.remove(U)),!o)return;let r=CSS.escape(o.target);o.pair.querySelectorAll(`[data-seqnotes-target="${r}"], [data-seqnotes-section="${r}"]`).forEach(n=>n.classList.add(U))}function J(e){let o=e?.closest(".seqnotes-pair");if(!e||!o)return;let r=e.closest("[data-seqnotes-target]");if(r)return{pair:o,target:r.getAttribute("data-seqnotes-target"),kind:"message"};let n=e.closest("tr[data-seqnotes-section]");if(n)return{pair:o,target:n.getAttribute("data-seqnotes-section"),kind:"heading"};let t=e.closest(":is(h1, h2, h3, h4, h5, h6)[id]");if(t&&t.parentElement?.getAttribute("data-seqnotes-section")===t.id)return{pair:o,target:t.id,kind:"heading"}}function P(e,o,r){let n=e.closest(".seqnotes-seq-col"),t=o?"smooth":"auto";if(n&&j(n)){let a=e.getBoundingClientRect(),i=n.getBoundingClientRect();n.scrollBy({top:a.top-i.top-i.height/2,behavior:t});let c=n.parentElement.getBoundingClientRect(),d=r.viewport();(c.top>d.top||c.bottom<d.top+d.height/2)&&r.reveal(n.parentElement,"start",t)}else r.reveal(e,"center",t)}function Y(e,o){let r=CSS.escape(e.target);if(e.kind==="message"){let n=e.pair.querySelector(`[data-seqnotes-section="${r}"]`);n&&o.reveal(n,"nearest","smooth")}else{let n=e.pair.querySelector(`.seqnotes-item[data-seqnotes-target="${r}"]`);n&&P(n,!0,o)}}function X(e,o){return e.querySelector(`[id="${CSS.escape(o)}"]`)}function K(e,o,r){let n=o.slice(1);try{n=decodeURIComponent(n)}catch{}let t=c=>X(e,c),a=t(n),i=(a?.closest(".footnote-item, .footnote-ref")?a:null)??t("sn-"+n)??t("sn-"+ue(n))??a;i&&r.reveal(i,"start")}var je=150,Z=200,F=6,W=8,D=\'.footnote-ref a[href^="#"]\';function he(e,o,{container:r,id:n}){let t=document.createElement("div");t.className="seqnotes-footnote-popup",t.id=n,t.setAttribute("role","tooltip"),t.hidden=!0,r.append(t);let a=new AbortController,{signal:i}=a,c,d,u=(h,b)=>{window.clearTimeout(d),d=window.setTimeout(h,b)};function p(){window.clearTimeout(d),c?.removeAttribute("aria-describedby"),c=void 0,t.hidden=!0,t.replaceChildren()}function A(h){if(window.clearTimeout(d),h===c)return;let b=h.getAttribute("href").slice(1);try{b=decodeURIComponent(b)}catch{}let y=X(e,b);if(!y||!y.matches(".footnote-item")){p();return}p();let E=y.cloneNode(!0);E.querySelectorAll(".footnote-backref, .seqnotes-zoom-button").forEach(S=>S.remove()),E.querySelectorAll(".seqnotes-zoomable").forEach(S=>{S.classList.remove("seqnotes-zoomable");for(let s of["tabindex","role","aria-label"])S.removeAttribute(s)}),E.querySelectorAll("[id]").forEach(S=>{S.closest("svg")||S.removeAttribute("id")}),t.replaceChildren(...Array.from(E.childNodes)),t.hidden=!1,c=h,h.setAttribute("aria-describedby",t.id),L(h)}function L(h){t.style.left="0",t.style.top="0";let b=h.getBoundingClientRect(),{width:y,height:E}=t.getBoundingClientRect(),S=window.innerHeight-b.bottom-F-W,s=b.top-F-W,l=E>S&&s>S?Math.max(W,b.top-F-E):b.bottom+F,g=Math.max(W,Math.min(b.left-16,window.innerWidth-W-y));t.style.left=`${g}px`,t.style.top=`${l}px`}e.addEventListener("mouseover",h=>{let b=h.target.closest(D);b&&u(()=>A(b),b===c?0:je)},{signal:i}),e.addEventListener("mouseout",h=>{let b=h.target.closest(D);b&&!b.contains(h.relatedTarget)&&u(p,Z)},{signal:i}),t.addEventListener("mouseenter",()=>window.clearTimeout(d),{signal:i}),t.addEventListener("mouseleave",()=>u(p,Z),{signal:i}),e.addEventListener("focusin",h=>{let b=h.target.closest(D);b?.matches(":focus-visible")&&A(b)},{signal:i}),e.addEventListener("focusout",h=>{h.target.closest(D)&&!t.contains(h.relatedTarget)&&u(p,Z)},{signal:i}),e.addEventListener("click",h=>{h.target.closest(D)&&p()},{signal:i}),t.addEventListener("click",h=>{let b=h.target.closest("a[href]");b&&o(b.getAttribute("href"))&&(h.preventDefault(),p())},{signal:i});let q=h=>{h.key==="Escape"&&c&&(h.stopImmediatePropagation(),p())};document.addEventListener("keydown",q,{capture:!0,signal:i});let x=h=>{c&&!t.contains(h.target)&&p()};document.addEventListener("scroll",x,{capture:!0,passive:!0,signal:i}),window.addEventListener("resize",p,{signal:i});let T=new ResizeObserver(()=>{c&&L(c)});return T.observe(t),{hide:p,dispose(){p(),a.abort(),T.disconnect(),t.remove()}}}var Je=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function Ye(e){return e.toLocaleLowerCase().split(/\\s+/).filter(Boolean)}function be(e,o={query:""},r){let n=Array.from(e.querySelectorAll(":scope > table"));if(n.length===0)return;let t=x=>e.getAttribute(`data-seqnotes-${x}`)??"",a={...o},i=new Map(n.map(x=>[x,Array.from(x.tBodies[0]?.rows??[])])),c=[...i.values()].reduce((x,T)=>x+T.length,0),d=document.createElement("div");d.className="seqnotes-index-filter";let u=document.createElement("input");u.type="search",u.value=a.query,u.placeholder=t("filter-placeholder"),u.setAttribute("aria-label",t("filter-label"));let p=document.createElement("span");p.className="seqnotes-index-count",p.setAttribute("aria-live","polite"),d.append(u,p);let A=document.createElement("p");A.className="seqnotes-index-empty",A.textContent=t("no-match"),e.querySelector(":scope > h1")?.after(d),n[n.length-1].after(A);let L=n.map(x=>Array.from(x.tHead?.rows[0]?.cells??[],T=>{let h=T.dataset.seqnotesColumn??"",b=document.createElement("button");return b.type="button",b.className="seqnotes-index-sort",b.title=t("sort-title"),b.append(...Array.from(T.childNodes)),b.addEventListener("click",()=>{let y=a.sort;a={...a,sort:y?.column!==h?{column:h,descending:!1}:y.descending?void 0:{column:h,descending:!0}},q(),r?.(a)}),T.replaceChildren(b),b}));u.addEventListener("input",()=>{a={...a,query:u.value},q(),r?.(a)});function q(){let x=Ye(a.query),T=a.sort,h=0;n.forEach((b,y)=>{let E=[...i.get(b)],S=T?L[y].findIndex(g=>g.parentElement.dataset.seqnotesColumn===T.column):-1;if(T&&S>=0){let g=f=>{let m=f.cells[S];return m?.dataset.seqnotesSort??m?.textContent?.trim()??""};E.sort((f,m)=>{let[v,w]=[g(f),g(m)];return v===""||w===""?+(v==="")-+(w===""):Je.compare(v,w)*(T.descending?-1:1)})}let s=0;for(let g of E){let f=(g.textContent??"").toLocaleLowerCase();g.hidden=!x.every(m=>f.includes(m)),s+=g.hidden?0:1}b.tBodies[0]?.append(...E),b.hidden=s===0;let l=b.previousElementSibling;l?.tagName==="H2"&&(l.hidden=s===0),L[y].forEach(g=>{let f=g.parentElement;T&&T.column===f.dataset.seqnotesColumn?f.setAttribute("aria-sort",T.descending?"descending":"ascending"):f.removeAttribute("aria-sort")}),h+=s}),p.textContent=t("count").replace("{0}",String(h)).replace("{1}",String(c)),A.hidden=h>0}return q(),u}var Xe=["<<-->>","<<->>","-->>","->>","-->","->","--x","-x","--)","-)","--|\\\\","--|/","--\\\\\\\\","--//","/|--","\\\\|--","//--","\\\\\\\\--","-|\\\\","-|/","-\\\\\\\\","-//","/|-","\\\\|-","//-","\\\\\\\\-"],Ke=e=>e.replace(/[.*+?^${}()|[\\]\\\\/]/g,"\\\\$&"),Mt=new RegExp("^\\\\s*([^:]+?)\\\\s*(?:\\\\(\\\\))?("+Xe.map(Ke).join("|")+")(?:\\\\(\\\\))?\\\\s*[+-]?\\\\s*([^:]+?)\\\\s*:(.*)$");var G="\\u24B6-\\u24E9",Rt=new RegExp(`^[${G}]$`),Ct=new RegExp(`^([${G}])(?![${G}])`),Ht=new RegExp(`[${G}]`,"g");var ve="(\\\\d+(?:\\\\.\\\\d{1,2})?|\\\\.\\\\d{1,2})",Nt=new RegExp(`^\\\\s*autonumber(?:\\\\s+(off)|\\\\s+${ve}(?:\\\\s+${ve})?)?\\\\s*(?:(?:%%|#).*)?$`,"i");function Ee(e){return e.replace(/<br\\s*\\/?>/gi," ").replace(/#(\\d+);/g,(o,r)=>String.fromCharCode(Number(r))).replace(/\\s+/g," ").trim()}var Q=e=>e.replace(/[\uFF10-\uFF19]/g,o=>String.fromCharCode(o.charCodeAt(0)-65248));var ye="seqnotes-jump-hover",ee="seqnotes-flash",te="svg [data-seqnotes-goto], svg [data-seqnotes-anchor]",Ze=1200;function Se(e,{scroll:o,pin:r,signal:n}){let t,a=new WeakMap,i=new WeakMap,c=[],d=s=>s.closest("svg"),u=(s,l,g)=>Array.from(s.querySelectorAll(`[${l}="${CSS.escape(g)}"]`)),p=s=>{let l=s.getAttribute("data-seqnotes-goto-diagram");return l===null?d(s):e.querySelector(`svg[data-seqnotes-diagram="${CSS.escape(l)}"]`)},A=(s,l)=>{let g=s.getAttribute("data-seqnotes-diagram");return u(e,"data-seqnotes-goto",l).filter(f=>{let m=f.getAttribute("data-seqnotes-goto-diagram");return m===null?d(f)===s:m===g})};function L(){c.forEach(s=>s.classList.remove(ye)),c=[]}function q(s){clearTimeout(i.get(s)),s.classList.remove(ee),s.getBoundingClientRect(),s.classList.add(ee),i.set(s,setTimeout(()=>s.classList.remove(ee),Ze))}function x(){t?.observer.disconnect(),t?.button.remove(),t=void 0}function T(s,l,g){let f=l.getBoundingClientRect(),m=g.getBoundingClientRect(),v=f.right-m.left+8,w=v+s.offsetWidth>m.width?Math.max(0,f.left-m.left-8-s.offsetWidth):v;s.style.left=`${w}px`,s.style.top=`${f.top-m.top+f.height/2}px`}function h(s,l){x();let g=s.closest(".seqnotes-diagram"),f=d(s);if(!g||!f)return;let m=document.createElement("button");m.type="button",m.className="seqnotes-jump-back";let v=Ee(Array.from(l.querySelectorAll("text"),M=>M.textContent??"").join(" "));m.textContent=`\\u21A9 ${v.length>24?`${v.slice(0,23)}\\u2026`:v}`,m.title=f.getAttribute("data-seqnotes-back-title")??"",m.addEventListener("click",M=>{M.stopPropagation();let R=m.matches(":focus-visible");x(),b(l,R)}),g.append(m);let w=new ResizeObserver(()=>T(m,s,g));w.observe(g),t={button:m,observer:w},T(m,s,g)}function b(s,l){P(s,!0,o),q(s),l&&s.focus({preventScroll:!0})}function y(s,l){let g=p(s),f=s.getAttribute("data-seqnotes-goto"),m=g&&f!==null?u(g,"data-seqnotes-anchor",f)[0]:void 0;if(!g||f===null||!m)return;let v=m.getAttribute("data-seqnotes-first-target"),w=m.closest(".seqnotes-pair"),M=w!==null&&j(w);M&&g!==d(s)&&o.reveal(w,"start","auto"),P(m,!0,o);let R=u(g,"data-seqnotes-branch",f)[0];q(R??m),R&&q(m),v!==null&&w&&r({pair:w,target:v,kind:"message"},M),h(m,s),l&&t?.button.focus({preventScroll:!0})}function E(s,l){let g=d(s),f=s.getAttribute("data-seqnotes-anchor");if(!g||f===null)return;let m=A(g,f);if(m.length===0)return;let v=a.get(g);v||(v=new Map,a.set(g,v));let w=(v.get(f)??0)%m.length;v.set(f,w+1),x(),b(m[w],l)}function S(s,l){s.hasAttribute("data-seqnotes-goto")?y(s,l):E(s,l)}return e.addEventListener("mouseover",s=>{L();let l=s.target.closest?.(te),g=l&&d(l);if(!l||!g)return;let f=l.getAttribute("data-seqnotes-goto"),m=f??l.getAttribute("data-seqnotes-anchor"),v=f!==null?p(l):g,w=v?[...u(v,"data-seqnotes-anchor",m),...u(v,"data-seqnotes-branch",m)]:[];c=[l,...w,...f!==null?[]:A(g,m)],c.forEach(M=>M.classList.add(ye))},{signal:n}),e.addEventListener("mouseleave",L,{signal:n}),n?.addEventListener("abort",x),e.addEventListener("click",s=>{let l=s.target.closest?.(te);!l||B(s)||s.detail>1||S(l,!1)},{signal:n}),e.addEventListener("keydown",s=>{let l=s.target.matches?.(te)?s.target:null;l&&(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),S(l,!0))},{signal:n}),{clear(){x(),L()}}}function xe(e,o){if(o===void 0||!Number.isFinite(o)){e.style.removeProperty("--seqnotes-split");return}return o=Math.min(80,Math.max(20,o)),e.style.setProperty("--seqnotes-split",`${o}%`),o}var we=5;function Te(e,o,r,n){let t=document.createElement("div");t.className="seqnotes-splitter",t.title=o,t.tabIndex=0,t.setAttribute("role","separator"),t.setAttribute("aria-orientation","vertical"),t.setAttribute("aria-valuemin",String(20)),t.setAttribute("aria-valuemax",String(80));let a=e.querySelector(".seqnotes-seq-col");a?.after(t);let i=()=>{let u=e.getBoundingClientRect().width;return u>0&&a?a.getBoundingClientRect().width/u*100:0},c=()=>t.setAttribute("aria-valuenow",String(Math.round(i()))),d=u=>{r(u),c()};t.addEventListener("pointerdown",u=>{u.preventDefault(),t.setPointerCapture(u.pointerId);let p=L=>{let q=e.getBoundingClientRect();d((L.clientX-q.left)/q.width*100)},A=()=>{t.removeEventListener("pointermove",p),t.removeEventListener("lostpointercapture",A)};t.addEventListener("pointermove",p,{signal:n}),t.addEventListener("lostpointercapture",A,{signal:n})},{signal:n}),t.addEventListener("dblclick",u=>{u.stopPropagation(),d(void 0)},{signal:n}),t.addEventListener("focus",c,{signal:n}),t.addEventListener("keydown",u=>{let p;switch(u.key){case"ArrowLeft":p=i()-we;break;case"ArrowRight":p=i()+we;break;case"Home":p=20;break;case"End":p=80;break;case"Enter":p=void 0;break;default:return}u.preventDefault(),d(p)},{signal:n})}var Le=".seqnotes-tree-toggle",re="seqnotes-tree-folded",Qe="seqnotes-tree-hidden",qe=".seqnotes-table-plain-toggle",Ae="seqnotes-table-plain",ne="seqnotes-tree-current",oe="seqnotes-tree-related",O=e=>Number(e.getAttribute("data-seqnotes-depth")),ke=e=>Array.from(e.querySelectorAll(":scope > tbody > tr[data-seqnotes-depth]"));function et(e){let o=1/0;for(let r of ke(e)){let n=O(r);n<=o&&(o=1/0);let t=n>o;r.classList.toggle(Qe,t),!t&&r.classList.contains(re)&&(o=n)}}function tt(e,o){e.classList.toggle(re,o),e.querySelector(Le)?.setAttribute("aria-expanded",String(!o))}function nt(e){let o=e.closest("table");if(!o)return[];let r=ke(o),n=r.indexOf(e),t=O(e),a=[];for(let c=n+1;c<r.length&&O(r[c])>t;c++)a.push(r[c]);let i=t;for(let c=n-1;c>=0&&i>0;c--)O(r[c])<i&&(i=O(r[c]),a.push(r[c]));return a}function ot(e,o){e.classList.toggle(Ae,o),e.querySelector(qe)?.setAttribute("aria-pressed",String(o))}function Me(e,o){let r=a=>{let i=a.target,d=i.closest(qe)?.closest("table");if(d){a.stopPropagation(),a.type==="click"&&ot(d,!d.classList.contains(Ae));return}let u=i.closest(Le)?.closest("tr");u&&(a.stopPropagation(),a.type==="click"&&(tt(u,!u.classList.contains(re)),et(u.closest("table"))))};e.addEventListener("click",r,{capture:!0,signal:o}),e.addEventListener("dblclick",r,{capture:!0,signal:o});let n,t=()=>{e.querySelectorAll(`.${ne}, .${oe}`).forEach(a=>a.classList.remove(ne,oe)),n=void 0};e.addEventListener("mouseover",a=>{let i=a.target.closest(".seqnotes-tree-table > tbody > tr[data-seqnotes-depth]");i!==n&&(t(),i&&(n=i,i.classList.add(ne),nt(i).forEach(c=>c.classList.add(oe))))},{signal:o}),e.addEventListener("mouseleave",t,{signal:o})}var rt="seqnotes-toc-current";function st(e){let o=e.cloneNode(!0);return o.querySelectorAll(".seqnotes-step, .footnote-ref, .seqnotes-diff-del").forEach(r=>r.remove()),(o.textContent??"").trim()}function it(e,o){for(let r=e.closest("details");r;r=r.parentElement?.closest("details")??null)r.open=!0;o.reveal(e,"start")}function Re(e,{container:o,title:r,scroll:n}){let t=document.createElement("nav");t.className="seqnotes-toc",t.hidden=!0;let a=document.createElement("div");a.className="seqnotes-toc-title",a.textContent=r,t.setAttribute("aria-label",a.textContent);let i=document.createElement("ol");t.append(a,i),o.append(t);let c=[],d=-1;function u(y){let E=y?Array.from(e.querySelectorAll("h1, h2, h3")).filter(l=>!l.closest(\'[data-seqnotes-diff="deleted"]\')).map(l=>({heading:l,level:Number(l.tagName[1]),text:st(l)})).filter(l=>l.text):[],S=Math.min(...E.map(l=>l.level)),s=i.scrollTop;i.replaceChildren(...E.map(({heading:l,level:g,text:f})=>{let m=document.createElement("li");m.style.setProperty("--seqnotes-toc-depth",String(g-S));let v=document.createElement("button");v.type="button",v.title=f;let w=document.createElement("span");return w.className="seqnotes-toc-text",w.textContent=f,v.append(w),v.addEventListener("mousedown",M=>M.preventDefault()),v.addEventListener("click",()=>it(l,n)),m.append(v),m})),i.scrollTop=s,c=E.map(l=>l.heading),d=-1,t.hidden=E.length===0,p()}function p(){let y=n.viewport(),E=n.top(),S=E>0&&E+y.height>=n.scrollHeight()-1,s=y.top+(S?y.height:y.height*.2),l=-1;for(let[g,f]of c.entries()){let m=f.getBoundingClientRect();if(m.height!==0){if(m.top>s)break;l=g}}l!==d&&(A(d,!1),A(l,!0),d=l,t.matches(":hover")||L())}function A(y,E){let S=i.children[y];if(!S)return;S.classList.toggle(rt,E);let s=S.querySelector("button");E?s.setAttribute("aria-current","location"):s.removeAttribute("aria-current")}function L(){let y=i.children[d];if(!(y instanceof HTMLElement))return;let E=y.offsetTop,S=E+y.offsetHeight;E<i.scrollTop?i.scrollTop=E:S>i.scrollTop+i.clientHeight&&(i.scrollTop=S-i.clientHeight)}t.addEventListener("pointerenter",L),t.addEventListener("pointerleave",L),t.addEventListener("focusin",y=>{t.contains(y.relatedTarget)||L()});let q=0;function x(){q||(q=requestAnimationFrame(()=>{q=0,p()}))}let T=n.onScroll(x),h=n.onResize(x),b=new ResizeObserver(x);return b.observe(e),{build:u,dispose(){T(),h(),b.disconnect(),cancelAnimationFrame(q),t.remove()}}}function Ce(){return{top:()=>window.scrollY,scrollTo:e=>window.scrollTo(0,e),scrollBy:e=>window.scrollBy(0,e),viewport:()=>({top:0,bottom:window.innerHeight,left:0,width:window.innerWidth,height:window.innerHeight}),scrollHeight:()=>document.documentElement.scrollHeight,onScroll(e){return window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},onResize(e){return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},reveal:(e,o,r)=>e.scrollIntoView({block:o,behavior:r})}}var He="script|style|textarea|title";function se(e){let o=Q(e.trim());return/^\\d+$/.test(o)?Number(o):void 0}var rn=new RegExp(`<!--[\\\\s\\\\S]*?(?:-->|$)|<(${He})(?=[\\\\s/>])((?:[^>"\']|"[^"]*"|\'[^\']*\')*)>([\\\\s\\\\S]*?)(?:</\\\\1\\\\s*>|$)|<([a-zA-Z][\\\\w:-]*)((?:[^>"\']|"[^"]*"|\'[^\']*\')*)>`,"gi");var lt=":host { all: initial; display: block; } html { display: block; background: #fff; color: #000; color-scheme: light; } head { display: none; }",_e=/:root(?![\\w-])/g,ct=typeof CSSStyleSheet=="function"&&"adoptedStyleSheets"in Document.prototype&&"replaceSync"in CSSStyleSheet.prototype,$,Ne=new Set,dt=e=>e instanceof CSSFontFaceRule||typeof CSSPropertyRule=="function"&&e instanceof CSSPropertyRule;function ut(e){$||($=new CSSStyleSheet,document.adoptedStyleSheets=[...document.adoptedStyleSheets,$]),Ne.has(e.cssText)||(Ne.add(e.cssText),$.insertRule(e.cssText,$.cssRules.length))}function ft(e){let o=new CSSStyleSheet(e.media?{media:e.media}:{});o.replaceSync(e.textContent??"");let r=n=>{for(let t=n.cssRules.length-1;t>=0;t--){let a=n.cssRules[t];if(dt(a)){ut(a),n.deleteRule(t);continue}if(a instanceof CSSStyleRule){let i=a.selectorText.replace(_e,":is(:root, html)");i!==a.selectorText&&(a.selectorText=i)}(a instanceof CSSGroupingRule||a instanceof CSSStyleRule)&&r(a)}};return r(o),o}var mt=/@import\\b(?:[^;"\']|"[^"]*"|\'[^\']*\')*;/gi;function pt(e,o){if(!ct)return;let r=Array.from(o.querySelectorAll("style")),n=r.flatMap(t=>(t.textContent??"").match(mt)??[]);if(n.length>0){let t=document.createElement("style");t.textContent=n.join(`\n`),e.append(t)}e.adoptedStyleSheets=r.map(ft),r.forEach(t=>t.remove())}function gt(e,o,r){let n=[],t=(i,c,d)=>(i??"").replace(/\\{([01])\\}/g,(u,p)=>p==="0"?String(c):d),a=new Set;for(let[i,c]of o){let d;try{d=Array.from(e.querySelectorAll(c.replace(_e,"html"))).filter(u=>!a.has(u))}catch{n.push(t(r.dataset.seqnotesItemInvalid,i,c));continue}d.length===0&&n.push(t(r.dataset.seqnotesItemUnmatched,i,c));for(let u of d)u.setAttribute("data-item",String(i)),a.add(u)}return n}function ht(e){try{return JSON.parse(e.dataset.seqnotesItems??"[]")}catch{return[]}}function bt(e,o,r){let n=o.attachShadow({mode:"open"});for(let i of["click","auxclick"])n.addEventListener(i,c=>{c.target.closest("a[href], area[href]")&&c.preventDefault()});n.addEventListener("submit",i=>i.preventDefault()),n.addEventListener("mouseover",i=>{let c=i;c.relatedTarget instanceof Node&&n.contains(c.relatedTarget)&&c.target?.dispatchEvent(new MouseEvent("mouseover",{bubbles:!0,composed:!0,clientX:c.clientX,clientY:c.clientY}))});let t=document.createElement("style");t.textContent=lt;let a=new DOMParser().parseFromString(r,"text/html").documentElement;return n.append(t),pt(n,a),n.append(document.importNode(a,!0)),{shadow:n,notes:gt(n,ht(e),e)}}var z,vt=e=>{let o=new Set;for(let{target:r}of e){let n=r instanceof HTMLElement&&r.matches(".seqnotes-wireframe")?r:Ie.get(r);n?.isConnected?o.add(n):z?.unobserve(r)}o.forEach(We)},Ie=new WeakMap;function Et(e,o){let r=o.querySelector("html");z??=new ResizeObserver(vt),z.observe(e),r&&(Ie.set(r,e),z.observe(r))}function We(e){let o=e.querySelector(":scope > .seqnotes-wireframe-frame"),r=o?.querySelector(":scope > .seqnotes-wireframe-screen"),n=r?.shadowRoot;if(!o||!r||!n||e.clientWidth===0)return;let t=Number(e.dataset.seqnotesWidth)||void 0;if(t){let d=getComputedStyle(e),u=e.clientWidth-parseFloat(d.paddingLeft)-parseFloat(d.paddingRight),p=Math.min(1,u/t);r.style.width=`${t}px`,r.style.transform=p<1?`scale(${p})`:"",o.style.width=`${t*p}px`,o.style.height=`${r.offsetHeight*p}px`}let a=new Map;for(let d of Array.from(n.querySelectorAll("[data-item]"))){let u=se(d.getAttribute("data-item"));u!==void 0&&a.set(u,[...a.get(u)??[],d])}let i=o.getBoundingClientRect(),c=o.offsetWidth>0?i.width/o.offsetWidth:1;for(let d of Array.from(o.querySelectorAll(".seqnotes-part"))){let p=a.get(Number(d.dataset.seqnotesPart))?.[Number(d.dataset.seqnotesPartIndex)]?.getBoundingClientRect();d.hidden=!p||p.width===0&&p.height===0,p&&!d.hidden&&(d.style.left=`${(p.left-i.left)/c-o.clientLeft}px`,d.style.top=`${(p.top-i.top)/c-o.clientTop}px`,d.style.width=`${p.width/c}px`,d.style.height=`${p.height/c}px`)}}function ie(e){e.querySelectorAll(".seqnotes-wireframe").forEach(We)}function De(e){for(let o of Array.from(e.querySelectorAll(".seqnotes-wireframe"))){let r=o.querySelector(":scope > .seqnotes-wireframe-src")?.textContent,n=o.querySelector(":scope > .seqnotes-wireframe-frame > .seqnotes-wireframe-screen");typeof r=="string"&&n&&!n.shadowRoot&&Et(o,bt(o,n,r).shadow)}ie(e)}function ae(e){let o=e.composedPath(),r=o.find(i=>i instanceof HTMLElement&&i.matches(".seqnotes-wireframe-screen")),n=o[0];if(!r||!(n instanceof Element)||n===r)return e.target;let t=se(n.closest("[data-item]")?.getAttribute("data-item")??"");return(t===void 0?null:r.parentElement?.querySelector(`:scope > .seqnotes-wireframe-parts > .seqnotes-part[data-seqnotes-part="${t}"]`))??r}var k=document.getElementById("seqnotes-root"),_=document.body.dataset,C=Ce(),Oe=Number(_.seqnotesSplitMinWidth),yt=Number.isFinite(Oe)?Oe:1e3,H,le=!1;ge();k.querySelectorAll(".seqnotes-pair:not(.seqnotes-pair-stacked)").forEach(e=>{Te(e,_.seqnotesSplitterTitle??"",o=>{xe(document.body,o)})});function V(){document.body.classList.toggle("seqnotes-wide",!le&&window.innerWidth>=yt)}V();window.addEventListener("resize",V);window.addEventListener("beforeprint",()=>{le=!0,V(),ie(k)});window.addEventListener("afterprint",()=>{le=!1,V()});De(k);he(k,e=>e.startsWith("#")?(K(k,e,C),!0):!1,{container:document.body,id:"seqnotes-footnote-popup"});Me(k);_.seqnotesToc!==void 0&&Re(k,{container:document.body,title:_.seqnotesTocTitle??"",scroll:C}).build(!0);var{seqnotesDiffLabel:$e,seqnotesDiffStats:Be}=_;if($e!==void 0&&Be!==void 0){let[e=0,o=0,r=0]=Be.split(",").map(Number);de(k,{onToggle:t=>{document.body.classList.toggle("seqnotes-diff-off",!t)}},{container:document.body,titles:_,scroll:C}).show({label:$e,stats:{added:e,changed:o,deleted:r}})}var Pe=k.querySelector(".seqnotes-index");Pe&&be(Pe);k.addEventListener("mouseover",e=>N(k,J(ae(e))??H));k.addEventListener("mouseleave",()=>N(k,H));k.addEventListener("click",e=>{let r=e.target.closest(\'a[href^="#"]\');if(r){e.preventDefault(),K(k,r.getAttribute("href"),C);return}let n=B(e)?void 0:J(ae(e));n&&(H={pair:n.pair,target:n.target},N(k,H),Y(n,C))});var St=Se(k,{scroll:C,pin(e,o){H={pair:e.pair,target:e.target},N(k,H),o&&Y(e,C)}});document.addEventListener("keydown",e=>{e.key==="Escape"&&(H=void 0,N(k,void 0),St.clear())});})();\n';
5
+
6
+ // embed/export.ts
7
+ import { exportDocument } from "./index.js";
8
+ function exportHtml(options) {
9
+ if (!exportScript) {
10
+ return Promise.reject(new Error("exportHtml was built without the styles and script of the exported page."));
11
+ }
12
+ return exportDocument(options, { styles: [webviewCss, exportCss], script: exportScript });
13
+ }
14
+ export {
15
+ exportHtml
16
+ };