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

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
 
@@ -82,13 +82,47 @@ viewer.destroy();
82
82
  | `onOpenLink` | `openLinkInNewTab` | `(href) => void`: 設計書のリンク(ビューアがスクロールする `#見出し` 以外)を開きます。既定では http(s) と mailto のリンクを新しいタブで開き、ほかは何もしません。 |
83
83
  | `onRevealLine` | | `(line) => void`: ビューアでダブルクリックした Markdown の行(0 始まり)で呼ばれます(エディタでその行を表示するなど)。ないときはダブルクリックしても何もしません。 |
84
84
 
85
+ ## HTML ファイルに書き出す
86
+
87
+ ```ts
88
+ const { exportHtml } = await import('markdown-design-doc-viewer-embed/export');
89
+
90
+ const html = await exportHtml({
91
+ markdown,
92
+ lang: 'ja',
93
+ title: '設計書', // 設計書にタイトルがないとき
94
+ resolveImage: async (path) => toDataUri(path), // 画像をファイルに埋め込む
95
+ });
96
+ // 例: ファイルとしてダウンロードさせる
97
+ const link = document.createElement('a');
98
+ link.href = URL.createObjectURL(new Blob([html], { type: 'text/html' }));
99
+ link.download = 'design-doc.html';
100
+ link.click();
101
+ setTimeout(() => URL.revokeObjectURL(link.href), 1000);
102
+ ```
103
+
104
+ `exportHtml(options)` は、設計書を 1 つの HTML ファイルにした文字列を返します。拡張の **Export Design Doc as HTML** や CLI の `md-design-doc export` と同じファイルです。スタイルとスクリプトを含むので、そのファイルだけで目次、図と処理概要の横並び、矢印と見出しのハイライト、印刷したときの縦並びが動きます。ライトテーマで、警告と紐付け漏れの印は入れません。
105
+
106
+ - 図はビューアと同じく、呼び出したページの中でブラウザが描きます。図はそのスタイルで測るので、ビューアと同じく `viewer.css` を読み込んでください。ページのビューアの配色は変わりません(mermaid の描画は順番に行います)。
107
+ - 描けない図は、ビューアと同じくエラーとともにファイルに入ります。そのときも `exportHtml` は完了します。
108
+ - `export.js` は書き出すファイルのスタイルとスクリプトを含みます(ビューアの `index.js` には入っていません)。使うときに読み込んでください(`import()`)。
109
+
110
+ | オプション | 既定値 | |
111
+ | --- | --- | --- |
112
+ | `markdown` | (必須) | 設計書の Markdown。 |
113
+ | `title` | | 設計書にタイトル(front matter の `title` も `#` の見出しも)がないときの、ページのタイトル。 |
114
+ | `resolveImage` | `baseUrl` から解決 | `(path) => string \| Promise<string>`: 設計書の画像(URL ではなくパス)を、ファイルの中で何にするか。埋め込むなら data URI、リンクにするなら URL を返します。画像の `src` からクエリとフラグメントを除いたもの(`icons.svg#save` なら `icons.svg`)を受け取り、返した URL にはそれを付け直します。失敗したときは `src` のままにします。 |
115
+ | `baseUrl`, `readFile` | | ビューアと同じです。ワイヤーフレームのファイルと、`resolveImage` がないときの画像に使います。 |
116
+ | `lang` | ブラウザの言語 | `'en'` または `'ja'`: ファイルの文言の言語。 |
117
+ | `diagramLook`, `splitMinWidth`, `toc`, `limitContentWidth`, `stickyTableHeader`, `tableTreeHighlight`, `frontMatter`, `headingNumbers`, `messageWrapWidth` | ビューアと同じ | 書き出すファイルについての、ビューアと同じオプション([オプション](#オプション))。 |
118
+
85
119
  ## スタイル
86
120
 
87
121
  `viewer.css` はビューアのスタイルで、すべてビューアの要素(`.seqnotes-viewer`)の下に効き、ライト・ダークのテーマの色も含みます。**カスケードレイヤーに入れずに**(`@import "…" layer(components)` などにせずに)そのまま読み込んでください。設計書の要素(見出し・リスト・表など)のスタイルは詳細度を持たない(`:where()`)もので、ビューアはレイヤーに入れた CSS リセット(レイヤー `base` に入る Tailwind CSS v4 の preflight など)が消すブラウザの既定のスタイルを戻します。レイヤーの外にあるので、それらに勝ちます。レイヤーの外にある、ページの要素に対するグローバルなスタイル(`h1 { … }` や、Tailwind CSS v3 の preflight・normalize.css などのリセット)はビューアの中にも効きます。
88
122
 
89
123
  ## サーバーサイドレンダリング
90
124
 
91
- モジュールはサーバー(Next.js など)で import できます。document や window を使うのはビューアを作るときだけです。`DesignDocViewer` はビューアを effect の中、つまりブラウザで作ります。
125
+ モジュールはサーバー(Next.js など)で import できます。document や window を使うのはビューアを作るとき(と設計書を書き出すとき)だけです。`DesignDocViewer` はビューアを effect の中、つまりブラウザで作ります。
92
126
 
93
127
  ## 制約
94
128
 
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
 
@@ -82,13 +82,47 @@ viewer.destroy();
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
84
 
85
+ ## Exporting to an HTML file
86
+
87
+ ```ts
88
+ const { exportHtml } = await import('markdown-design-doc-viewer-embed/export');
89
+
90
+ const html = await exportHtml({
91
+ markdown,
92
+ lang: 'en',
93
+ title: 'Design doc', // when the document has no title of its own
94
+ resolveImage: async (path) => toDataUri(path), // embeds the images in the file
95
+ });
96
+ // e.g. downloaded as a file
97
+ const link = document.createElement('a');
98
+ link.href = URL.createObjectURL(new Blob([html], { type: 'text/html' }));
99
+ link.download = 'design-doc.html';
100
+ link.click();
101
+ setTimeout(() => URL.revokeObjectURL(link.href), 1000);
102
+ ```
103
+
104
+ `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.
105
+
106
+ - 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.
107
+ - A diagram that cannot be rendered is in the file with its error, as in the viewer: `exportHtml` still resolves.
108
+ - `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()`).
109
+
110
+ | Option | Default | |
111
+ | --- | --- | --- |
112
+ | `markdown` | (required) | The Markdown of the design document. |
113
+ | `title` | | The title of the page when the document has none (neither `title` in its front matter nor a `#` heading). |
114
+ | `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. |
115
+ | `baseUrl`, `readFile` | | As for the viewer: the files of the wireframes, and the images without `resolveImage`. |
116
+ | `lang` | that of the browser | `'en'` or `'ja'`: the language of the texts of the file. |
117
+ | `diagramLook`, `splitMinWidth`, `toc`, `limitContentWidth`, `stickyTableHeader`, `tableTreeHighlight`, `frontMatter`, `headingNumbers`, `messageWrapWidth` | as for the viewer | As for the viewer (see [Options](#options)), for the exported file. |
118
+
85
119
  ## Styles
86
120
 
87
121
  `viewer.css` has the styles of the viewer, all under its element (`.seqnotes-viewer`), with the colors of its light and dark themes. Import it as is, **not in a cascade layer** (such as `@import "…" layer(components)`): the styles of the elements of the document (headings, lists, tables...) have no specificity (`:where()`), and the viewer gives back the defaults of the browser that a CSS reset in a layer takes away (such as the preflight of Tailwind CSS v4, in its layer `base`): they win over it because they are not in a layer. The global styles of your page for elements outside a layer (`h1 { … }`, or a reset such as Tailwind CSS v3's preflight or normalize.css) still apply in the viewer.
88
122
 
89
123
  ## Server-side rendering
90
124
 
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.
125
+ 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
126
 
93
127
  ## Limitations
94
128
 
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 l=document.createElement("span");l.className="seqnotes-diff-counts";let d=document.createElement("span");d.className="seqnotes-diff-buttons";let f=(b,s,c)=>{let m=document.createElement("button");return m.type="button",m.innerHTML=b,m.title=s??"",m.setAttribute("aria-label",m.title),m.addEventListener("click",c),m},p=f(Ge,n.seqnotesDiffPreviousTitle,()=>y(-1)),A=f(ze,n.seqnotesDiffNextTitle,()=>y(1));d.append(p,A);let L,q,w,x=0,g=!0,h=()=>{p.disabled=A.disabled=x===0||!g};if("onClose"in o)d.append(f("&times;",n.seqnotesDiffCloseTitle,o.onClose));else{let b=f(ce,n.seqnotesDiffHideTitle,()=>{g=!g,L?.classList.remove("seqnotes-diff-focus"),b.innerHTML=g?ce:Ve,b.title=(g?n.seqnotesDiffHideTitle:n.seqnotesDiffShowTitle)??"",b.setAttribute("aria-label",b.title),h(),o.onToggle(g)});d.append(b)}a.append(i,l,d),r.append(a);let S=()=>Array.from(e.querySelectorAll("[data-seqnotes-diff]")).filter(b=>b.getClientRects().length>0);function y(b){let s=S();if(s.length===0)return;let c=t.viewport(),m=c.top+c.height*.25,v=L?s.indexOf(L):-1,u;v>=0&&q!==void 0&&Math.abs(t.top()-q)<2?u=s[(v+b+s.length)%s.length]:b>0?u=s.find(E=>E.getBoundingClientRect().top>m+1)??s[0]:u=[...s].reverse().find(E=>E.getBoundingClientRect().top<m-1)??s[s.length-1],L?.classList.remove("seqnotes-diff-focus"),L=u,u.classList.add("seqnotes-diff-focus"),t.reveal(u,"start"),q=t.top(),clearTimeout(w),w=setTimeout(()=>u.classList.remove("seqnotes-diff-focus"),1500)}return{show(b){if(a.hidden=!b,L=void 0,q=void 0,!b)return;i.textContent=b.label,i.title=b.label;let{added:s,changed:c,deleted:m}=b.stats,v=[["added",s,n.seqnotesDiffAdded],["changed",c,n.seqnotesDiffChanged],["deleted",m,n.seqnotesDiffDeleted]];l.replaceChildren(...v.filter(([,u])=>u>0).map(([u,E,T])=>{let M=document.createElement("span");return M.className="seqnotes-diff-count",M.dataset.kind=u,M.textContent=Fe(T,E),M})),x=s+c+m,x===0&&(l.textContent=n.seqnotesDiffNoChanges??""),h()},dispose(){clearTimeout(w),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,_,me=0,pe=e=>{_={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),_=void 0))}}var B=e=>_!==void 0&&Math.hypot(e.clientX-_.x,e.clientY-_.y)>Ue,j=e=>e.closest(".seqnotes-viewer.seqnotes-wide")!==null&&!e.closest(".seqnotes-pair-stacked");function H(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 l=n.parentElement.getBoundingClientRect(),d=r.viewport();(l.top>d.top||l.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=l=>X(e,l),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,I=8,W=\'.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,l,d,f=(g,h)=>{window.clearTimeout(d),d=window.setTimeout(g,h)};function p(){window.clearTimeout(d),l?.removeAttribute("aria-describedby"),l=void 0,t.hidden=!0,t.replaceChildren()}function A(g){if(window.clearTimeout(d),g===l)return;let h=g.getAttribute("href").slice(1);try{h=decodeURIComponent(h)}catch{}let S=X(e,h);if(!S||!S.matches(".footnote-item")){p();return}p();let y=S.cloneNode(!0);y.querySelectorAll(".footnote-backref, .seqnotes-zoom-button").forEach(b=>b.remove()),y.querySelectorAll(".seqnotes-zoomable").forEach(b=>{b.classList.remove("seqnotes-zoomable");for(let s of["tabindex","role","aria-label"])b.removeAttribute(s)}),y.querySelectorAll("[id]").forEach(b=>{b.closest("svg")||b.removeAttribute("id")}),t.replaceChildren(...Array.from(y.childNodes)),t.hidden=!1,l=g,g.setAttribute("aria-describedby",t.id),L(g)}function L(g){t.style.left="0",t.style.top="0";let h=g.getBoundingClientRect(),{width:S,height:y}=t.getBoundingClientRect(),b=window.innerHeight-h.bottom-F-I,s=h.top-F-I,c=y>b&&s>b?Math.max(I,h.top-F-y):h.bottom+F,m=Math.max(I,Math.min(h.left-16,window.innerWidth-I-S));t.style.left=`${m}px`,t.style.top=`${c}px`}e.addEventListener("mouseover",g=>{let h=g.target.closest(W);h&&f(()=>A(h),h===l?0:je)},{signal:i}),e.addEventListener("mouseout",g=>{let h=g.target.closest(W);h&&!h.contains(g.relatedTarget)&&f(p,Z)},{signal:i}),t.addEventListener("mouseenter",()=>window.clearTimeout(d),{signal:i}),t.addEventListener("mouseleave",()=>f(p,Z),{signal:i}),e.addEventListener("focusin",g=>{let h=g.target.closest(W);h?.matches(":focus-visible")&&A(h)},{signal:i}),e.addEventListener("focusout",g=>{g.target.closest(W)&&!t.contains(g.relatedTarget)&&f(p,Z)},{signal:i}),e.addEventListener("click",g=>{g.target.closest(W)&&p()},{signal:i}),t.addEventListener("click",g=>{let h=g.target.closest("a[href]");h&&o(h.getAttribute("href"))&&(g.preventDefault(),p())},{signal:i});let q=g=>{g.key==="Escape"&&l&&(g.stopImmediatePropagation(),p())};document.addEventListener("keydown",q,{capture:!0,signal:i});let w=g=>{l&&!t.contains(g.target)&&p()};document.addEventListener("scroll",w,{capture:!0,passive:!0,signal:i}),window.addEventListener("resize",p,{signal:i});let x=new ResizeObserver(()=>{l&&L(l)});return x.observe(t),{hide:p,dispose(){p(),a.abort(),x.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=w=>e.getAttribute(`data-seqnotes-${w}`)??"",a={...o},i=new Map(n.map(w=>[w,Array.from(w.tBodies[0]?.rows??[])])),l=[...i.values()].reduce((w,x)=>w+x.length,0),d=document.createElement("div");d.className="seqnotes-index-filter";let f=document.createElement("input");f.type="search",f.value=a.query,f.placeholder=t("filter-placeholder"),f.setAttribute("aria-label",t("filter-label"));let p=document.createElement("span");p.className="seqnotes-index-count",p.setAttribute("aria-live","polite"),d.append(f,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(w=>Array.from(w.tHead?.rows[0]?.cells??[],x=>{let g=x.dataset.seqnotesColumn??"",h=document.createElement("button");return h.type="button",h.className="seqnotes-index-sort",h.title=t("sort-title"),h.append(...Array.from(x.childNodes)),h.addEventListener("click",()=>{let S=a.sort;a={...a,sort:S?.column!==g?{column:g,descending:!1}:S.descending?void 0:{column:g,descending:!0}},q(),r?.(a)}),x.replaceChildren(h),h}));f.addEventListener("input",()=>{a={...a,query:f.value},q(),r?.(a)});function q(){let w=Ye(a.query),x=a.sort,g=0;n.forEach((h,S)=>{let y=[...i.get(h)],b=x?L[S].findIndex(m=>m.parentElement.dataset.seqnotesColumn===x.column):-1;if(x&&b>=0){let m=v=>{let u=v.cells[b];return u?.dataset.seqnotesSort??u?.textContent?.trim()??""};y.sort((v,u)=>{let[E,T]=[m(v),m(u)];return E===""||T===""?+(E==="")-+(T===""):Je.compare(E,T)*(x.descending?-1:1)})}let s=0;for(let m of y){let v=(m.textContent??"").toLocaleLowerCase();m.hidden=!w.every(u=>v.includes(u)),s+=m.hidden?0:1}h.tBodies[0]?.append(...y),h.hidden=s===0;let c=h.previousElementSibling;c?.tagName==="H2"&&(c.hidden=s===0),L[S].forEach(m=>{let v=m.parentElement;x&&x.column===v.dataset.seqnotesColumn?v.setAttribute("aria-sort",x.descending?"descending":"ascending"):v.removeAttribute("aria-sort")}),g+=s}),p.textContent=t("count").replace("{0}",String(g)).replace("{1}",String(l)),A.hidden=g>0}return q(),f}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,l=[],d=s=>s.closest("svg"),f=(s,c,m)=>Array.from(s.querySelectorAll(`[${c}="${CSS.escape(m)}"]`)),p=s=>{let c=s.getAttribute("data-seqnotes-goto-diagram");return c===null?d(s):e.querySelector(`svg[data-seqnotes-diagram="${CSS.escape(c)}"]`)},A=(s,c)=>{let m=s.getAttribute("data-seqnotes-diagram");return f(e,"data-seqnotes-goto",c).filter(v=>{let u=v.getAttribute("data-seqnotes-goto-diagram");return u===null?d(v)===s:u===m})};function L(){l.forEach(s=>s.classList.remove(ye)),l=[]}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 w(){t?.observer.disconnect(),t?.button.remove(),t=void 0}function x(s,c,m){let v=c.getBoundingClientRect(),u=m.getBoundingClientRect(),E=v.right-u.left+8,T=E+s.offsetWidth>u.width?Math.max(0,v.left-u.left-8-s.offsetWidth):E;s.style.left=`${T}px`,s.style.top=`${v.top-u.top+v.height/2}px`}function g(s,c){w();let m=s.closest(".seqnotes-diagram"),v=d(s);if(!m||!v)return;let u=document.createElement("button");u.type="button",u.className="seqnotes-jump-back";let E=Ee(Array.from(c.querySelectorAll("text"),M=>M.textContent??"").join(" "));u.textContent=`\\u21A9 ${E.length>24?`${E.slice(0,23)}\\u2026`:E}`,u.title=v.getAttribute("data-seqnotes-back-title")??"",u.addEventListener("click",M=>{M.stopPropagation();let $=u.matches(":focus-visible");w(),h(c,$)}),m.append(u);let T=new ResizeObserver(()=>x(u,s,m));T.observe(m),t={button:u,observer:T},x(u,s,m)}function h(s,c){P(s,!0,o),q(s),c&&s.focus({preventScroll:!0})}function S(s,c){let m=p(s),v=s.getAttribute("data-seqnotes-goto"),u=m&&v!==null?f(m,"data-seqnotes-anchor",v)[0]:void 0;if(!m||v===null||!u)return;let E=u.getAttribute("data-seqnotes-first-target"),T=u.closest(".seqnotes-pair"),M=T!==null&&j(T);M&&m!==d(s)&&o.reveal(T,"start","auto"),P(u,!0,o);let $=f(m,"data-seqnotes-branch",v)[0];q($??u),$&&q(u),E!==null&&T&&r({pair:T,target:E,kind:"message"},M),g(u,s),c&&t?.button.focus({preventScroll:!0})}function y(s,c){let m=d(s),v=s.getAttribute("data-seqnotes-anchor");if(!m||v===null)return;let u=A(m,v);if(u.length===0)return;let E=a.get(m);E||(E=new Map,a.set(m,E));let T=(E.get(v)??0)%u.length;E.set(v,T+1),w(),h(u[T],c)}function b(s,c){s.hasAttribute("data-seqnotes-goto")?S(s,c):y(s,c)}return e.addEventListener("mouseover",s=>{L();let c=s.target.closest?.(te),m=c&&d(c);if(!c||!m)return;let v=c.getAttribute("data-seqnotes-goto"),u=v??c.getAttribute("data-seqnotes-anchor"),E=v!==null?p(c):m,T=E?[...f(E,"data-seqnotes-anchor",u),...f(E,"data-seqnotes-branch",u)]:[];l=[c,...T,...v!==null?[]:A(m,u)],l.forEach(M=>M.classList.add(ye))},{signal:n}),e.addEventListener("mouseleave",L,{signal:n}),n?.addEventListener("abort",w),e.addEventListener("click",s=>{let c=s.target.closest?.(te);!c||B(s)||s.detail>1||b(c,!1)},{signal:n}),e.addEventListener("keydown",s=>{let c=s.target.matches?.(te)?s.target:null;c&&(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),b(c,!0))},{signal:n}),{clear(){w(),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 f=e.getBoundingClientRect().width;return f>0&&a?a.getBoundingClientRect().width/f*100:0},l=()=>t.setAttribute("aria-valuenow",String(Math.round(i()))),d=f=>{r(f),l()};t.addEventListener("pointerdown",f=>{f.preventDefault(),t.setPointerCapture(f.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",f=>{f.stopPropagation(),d(void 0)},{signal:n}),t.addEventListener("focus",l,{signal:n}),t.addEventListener("keydown",f=>{let p;switch(f.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}f.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",D=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=D(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=D(e),a=[];for(let l=n+1;l<r.length&&D(r[l])>t;l++)a.push(r[l]);let i=t;for(let l=n-1;l>=0&&i>0;l--)D(r[l])<i&&(i=D(r[l]),a.push(r[l]));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 f=i.closest(Le)?.closest("tr");f&&(a.stopPropagation(),a.type==="click"&&(tt(f,!f.classList.contains(re)),et(f.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(l=>l.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 l=[],d=-1;function f(S){let y=S?Array.from(e.querySelectorAll("h1, h2, h3")).filter(c=>!c.closest(\'[data-seqnotes-diff="deleted"]\')).map(c=>({heading:c,level:Number(c.tagName[1]),text:st(c)})).filter(c=>c.text):[],b=Math.min(...y.map(c=>c.level)),s=i.scrollTop;i.replaceChildren(...y.map(({heading:c,level:m,text:v})=>{let u=document.createElement("li");u.style.setProperty("--seqnotes-toc-depth",String(m-b));let E=document.createElement("button");E.type="button",E.title=v;let T=document.createElement("span");return T.className="seqnotes-toc-text",T.textContent=v,E.append(T),E.addEventListener("mousedown",M=>M.preventDefault()),E.addEventListener("click",()=>it(c,n)),u.append(E),u})),i.scrollTop=s,l=y.map(c=>c.heading),d=-1,t.hidden=y.length===0,p()}function p(){let S=n.viewport(),y=n.top(),b=y>0&&y+S.height>=n.scrollHeight()-1,s=S.top+(b?S.height:S.height*.2),c=-1;for(let[m,v]of l.entries()){let u=v.getBoundingClientRect();if(u.height!==0){if(u.top>s)break;c=m}}c!==d&&(A(d,!1),A(c,!0),d=c,t.matches(":hover")||L())}function A(S,y){let b=i.children[S];if(!b)return;b.classList.toggle(rt,y);let s=b.querySelector("button");y?s.setAttribute("aria-current","location"):s.removeAttribute("aria-current")}function L(){let S=i.children[d];if(!(S instanceof HTMLElement))return;let y=S.offsetTop,b=y+S.offsetHeight;y<i.scrollTop?i.scrollTop=y:b>i.scrollTop+i.clientHeight&&(i.scrollTop=b-i.clientHeight)}t.addEventListener("pointerenter",L),t.addEventListener("pointerleave",L),t.addEventListener("focusin",S=>{t.contains(S.relatedTarget)||L()});let q=0;function w(){q||(q=requestAnimationFrame(()=>{q=0,p()}))}let x=n.onScroll(w),g=n.onResize(w),h=new ResizeObserver(w);return h.observe(e),{build:f,dispose(){x(),g(),h.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,O,Ne=new Set,dt=e=>e instanceof CSSFontFaceRule||typeof CSSPropertyRule=="function"&&e instanceof CSSPropertyRule;function ut(e){O||(O=new CSSStyleSheet,document.adoptedStyleSheets=[...document.adoptedStyleSheets,O]),Ne.has(e.cssText)||(Ne.add(e.cssText),O.insertRule(e.cssText,O.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,l,d)=>(i??"").replace(/\\{([01])\\}/g,(f,p)=>p==="0"?String(l):d),a=new Set;for(let[i,l]of o){let d;try{d=Array.from(e.querySelectorAll(l.replace(_e,"html"))).filter(f=>!a.has(f))}catch{n.push(t(r.dataset.seqnotesItemInvalid,i,l));continue}d.length===0&&n.push(t(r.dataset.seqnotesItemUnmatched,i,l));for(let f of d)f.setAttribute("data-item",String(i)),a.add(f)}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,l=>{l.target.closest("a[href], area[href]")&&l.preventDefault()});n.addEventListener("submit",i=>i.preventDefault()),n.addEventListener("mouseover",i=>{let l=i;l.relatedTarget instanceof Node&&n.contains(l.relatedTarget)&&l.target?.dispatchEvent(new MouseEvent("mouseover",{bubbles:!0,composed:!0,clientX:l.clientX,clientY:l.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),f=e.clientWidth-parseFloat(d.paddingLeft)-parseFloat(d.paddingRight),p=Math.min(1,f/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 f=se(d.getAttribute("data-item"));f!==void 0&&a.set(f,[...a.get(f)??[],d])}let i=o.getBoundingClientRect(),l=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)/l-o.clientLeft}px`,d.style.top=`${(p.top-i.top)/l-o.clientTop}px`,d.style.width=`${p.width/l}px`,d.style.height=`${p.height/l}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"),N=document.body.dataset,R=Ce(),Oe=Number(N.seqnotesSplitMinWidth),yt=Number.isFinite(Oe)?Oe:1e3,C,le=!1;ge();k.querySelectorAll(".seqnotes-pair:not(.seqnotes-pair-stacked)").forEach(e=>{Te(e,N.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,R),!0):!1,{container:document.body,id:"seqnotes-footnote-popup"});Me(k);N.seqnotesToc!==void 0&&Re(k,{container:document.body,title:N.seqnotesTocTitle??"",scroll:R}).build(!0);var{seqnotesDiffLabel:$e,seqnotesDiffStats:Be}=N;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:N,scroll:R}).show({label:$e,stats:{added:e,changed:o,deleted:r}})}var Pe=k.querySelector(".seqnotes-index");Pe&&be(Pe);k.addEventListener("mouseover",e=>H(k,J(ae(e))??C));k.addEventListener("mouseleave",()=>H(k,C));k.addEventListener("click",e=>{let r=e.target.closest(\'a[href^="#"]\');if(r){e.preventDefault(),K(k,r.getAttribute("href"),R);return}let n=B(e)?void 0:J(ae(e));n&&(C={pair:n.pair,target:n.target},H(k,C),Y(n,R))});var St=Se(k,{scroll:R,pin(e,o){C={pair:e.pair,target:e.target},H(k,C),o&&Y(e,R)}});document.addEventListener("keydown",e=>{e.key==="Escape"&&(C=void 0,H(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
+ };