@haklex/rich-plugin-toolbar 0.56.0 → 0.58.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarButton.d.ts","sourceRoot":"","sources":["../src/ToolbarButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,SAAS,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,OAAO,EACP,aAAa,GACd,EAAE,kBAAkB,+BAoCpB"}
1
+ {"version":3,"file":"ToolbarButton.d.ts","sourceRoot":"","sources":["../src/ToolbarButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,SAAS,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,OAAO,EACP,aAAa,GACd,EAAE,kBAAkB,+BAmCpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarDropdown.d.ts","sourceRoot":"","sources":["../src/ToolbarDropdown.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,SAAS,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,KAAK,EACL,YAAY,EACZ,aAAa,GACd,EAAE,oBAAoB,+BAyEtB"}
1
+ {"version":3,"file":"ToolbarDropdown.d.ts","sourceRoot":"","sources":["../src/ToolbarDropdown.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,SAAS,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,KAAK,EACL,YAAY,EACZ,aAAa,GACd,EAAE,oBAAoB,+BA8DtB"}
@@ -0,0 +1,20 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ import { ToolbarEntry, ToolbarMenuItem } from './entries';
3
+ import { ToolbarTooltipHandle } from './types';
4
+ interface ToolbarMenuButtonProps {
5
+ children: ReactNode;
6
+ handle: ToolbarTooltipHandle;
7
+ title: string;
8
+ }
9
+ export declare function ToolbarMenuButton({ children, handle, title, }: ToolbarMenuButtonProps): ReactElement;
10
+ export declare function ToolbarMenuItems({ items }: {
11
+ items: ToolbarMenuItem[];
12
+ }): ReactElement;
13
+ interface ToolbarOverflowMenuProps {
14
+ entries: ToolbarEntry[];
15
+ handle: ToolbarTooltipHandle;
16
+ icon: ReactNode;
17
+ }
18
+ export declare function ToolbarOverflowMenu({ entries, handle, icon, }: ToolbarOverflowMenuProps): ReactElement;
19
+ export {};
20
+ //# sourceMappingURL=ToolbarOverflowMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarOverflowMenu.d.ts","sourceRoot":"","sources":["../src/ToolbarOverflowMenu.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE/D,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,SAAS,CAAC;AAE3E,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,MAAM,EACN,KAAK,GACN,EAAE,sBAAsB,GAAG,YAAY,CAgBvC;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,eAAe,EAAE,CAAA;CAAE,GAAG,YAAY,CAiBtF;AAED,UAAU,wBAAwB;IAChC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,MAAM,EACN,IAAI,GACL,EAAE,wBAAwB,GAAG,YAAY,CA2BzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarPlugin.d.ts","sourceRoot":"","sources":["../src/ToolbarPlugin.tsx"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAmBzD,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,qBAAwD,EACxD,eAAe,GAChB,EAAE,kBAAkB,GAAG,YAAY,CAkUnC"}
1
+ {"version":3,"file":"ToolbarPlugin.d.ts","sourceRoot":"","sources":["../src/ToolbarPlugin.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAiB,YAAY,EAAa,MAAM,OAAO,CAAC;AAsBpE,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AA6BD,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,qBAAwD,EACxD,eAAe,GAChB,EAAE,kBAAkB,GAAG,YAAY,CA0InC"}
@@ -0,0 +1,38 @@
1
+ import { LexicalEditor } from 'lexical';
2
+ import { ReactNode } from 'react';
3
+ import { ToolbarDropdownItem } from './ToolbarDropdown';
4
+ import { ToolbarTooltipHandle } from './types';
5
+ import { ToolbarState } from './use-toolbar-state';
6
+ export declare const TOOLBAR_GAP = 2;
7
+ export declare const TOOLBAR_BUTTON_SIZE = 28;
8
+ export interface ToolbarMenuItem {
9
+ active?: boolean;
10
+ disabled?: boolean;
11
+ icon?: ReactNode;
12
+ label: string;
13
+ onSelect: () => void;
14
+ shortcut?: string;
15
+ }
16
+ export interface ToolbarEntry {
17
+ key: string;
18
+ menu?: {
19
+ items: ToolbarMenuItem[];
20
+ label?: string;
21
+ };
22
+ node: ReactNode;
23
+ separator?: boolean;
24
+ width: number;
25
+ }
26
+ export interface ToolbarButtonSpec extends ToolbarMenuItem {
27
+ key: string;
28
+ }
29
+ export declare function separatorEntry(key: string): ToolbarEntry;
30
+ export declare function buttonEntry(spec: ToolbarButtonSpec, handle: ToolbarTooltipHandle): ToolbarEntry;
31
+ export declare function dropdownEntry(key: string, options: {
32
+ items: ToolbarDropdownItem[];
33
+ label: string;
34
+ title: string;
35
+ width: number;
36
+ }, handle: ToolbarTooltipHandle): ToolbarEntry;
37
+ export declare function formattingButtons(editor: LexicalEditor, state: ToolbarState): ToolbarButtonSpec[][];
38
+ //# sourceMappingURL=entries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../src/entries.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAoB7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAGtC,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAExD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,oBAAoB,GAAG,YAAY,CAkB/F;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;IAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACtF,MAAM,EAAE,oBAAoB,GAC3B,YAAY,CAmBd;AAID,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,GAClB,iBAAiB,EAAE,EAAE,CAwIvB"}
package/dist/index.mjs CHANGED
@@ -2,12 +2,12 @@ import { $isListNode, INSERT_CHECK_LIST_COMMAND, INSERT_ORDERED_LIST_COMMAND, IN
2
2
  import { $createHeadingNode, $isHeadingNode } from "@lexical/rich-text";
3
3
  import { $getSelectionStyleValueForProperty, $patchStyleText, $setBlocksType } from "@lexical/selection";
4
4
  import { $createParagraphNode, $getSelection, $isElementNode, $isRangeSelection, $isRootOrShadowRoot, CAN_REDO_COMMAND, CAN_UNDO_COMMAND, COMMAND_PRIORITY_LOW, FORMAT_ELEMENT_COMMAND, FORMAT_TEXT_COMMAND, REDO_COMMAND, UNDO_COMMAND } from "lexical";
5
- import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, TooltipContent, TooltipProvider, TooltipRoot, TooltipTrigger, createTooltipHandle } from "@haklex/rich-editor-ui";
5
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, TooltipContent, TooltipProvider, TooltipRoot, TooltipTrigger, createTooltipHandle } from "@haklex/rich-editor-ui";
6
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
- import { AlignCenter, AlignJustify, AlignLeft, AlignRight, Bold, ChevronDown, Code, Ellipsis, EyeOff, Heading1, Heading2, Heading3, Highlighter, Italic, List, ListChecks, ListOrdered, Pilcrow, Redo, Strikethrough, Underline, Undo } from "lucide-react";
7
+ import { AlignCenter, AlignJustify, AlignLeft, AlignRight, Bold, ChevronDown, Code, Ellipsis, EyeOff, Heading1, Heading2, Heading3, Highlighter, Italic, List, ListChecks, ListOrdered, Pilcrow, Plus, Redo, Strikethrough, Underline, Undo } from "lucide-react";
8
8
  import { $selectionTouchesSpoiler, $toggleSpoilerSelection, collectCommandItems } from "@haklex/rich-editor/commands";
9
9
  import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
10
- import { useCallback, useEffect, useMemo, useState } from "react";
10
+ import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
11
11
  import { $findMatchingParent } from "@lexical/utils";
12
12
  //#region src/actions.ts
13
13
  /**
@@ -152,13 +152,11 @@ function ToolbarButton({ icon, title, shortcut, active, disabled, onClick, toolt
152
152
  return /* @__PURE__ */ jsxs(TooltipRoot, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
153
153
  render: button,
154
154
  children: icon
155
- }), /* @__PURE__ */ jsxs(TooltipContent, {
155
+ }), /* @__PURE__ */ jsx(TooltipContent, {
156
+ shortcut,
156
157
  side: "bottom",
157
158
  sideOffset: 4,
158
- children: [title, shortcut && /* @__PURE__ */ jsx("span", {
159
- className: "_1e1ersc8",
160
- children: shortcut
161
- })]
159
+ children: title
162
160
  })] });
163
161
  }
164
162
  //#endregion
@@ -171,7 +169,7 @@ function ToolbarDropdown({ label, title, items, triggerWidth, tooltipHandle }) {
171
169
  });
172
170
  const triggerContent = /* @__PURE__ */ jsxs(Fragment, { children: [label, /* @__PURE__ */ jsx("span", {
173
171
  className: toolbarDropdownTriggerChevron,
174
- children: /* @__PURE__ */ jsx(ChevronDown, { size: 12 })
172
+ children: /* @__PURE__ */ jsx(ChevronDown, { size: 14 })
175
173
  })] });
176
174
  const menu = /* @__PURE__ */ jsx(DropdownMenuContent, {
177
175
  sideOffset: 4,
@@ -179,15 +177,7 @@ function ToolbarDropdown({ label, title, items, triggerWidth, tooltipHandle }) {
179
177
  className: item.active ? toolbarDropdownItemActive : void 0,
180
178
  style: item.style,
181
179
  onClick: item.onSelect,
182
- children: [item.icon && /* @__PURE__ */ jsx("span", {
183
- style: {
184
- marginRight: 8,
185
- display: "inline-flex",
186
- transform: "scale(0.8)",
187
- transformOrigin: "left center"
188
- },
189
- children: item.icon
190
- }), item.label]
180
+ children: [item.icon, item.label]
191
181
  }, item.label))
192
182
  });
193
183
  if (tooltipHandle) return /* @__PURE__ */ jsxs(DropdownMenu, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
@@ -210,6 +200,243 @@ function ToolbarDropdown({ label, title, items, triggerWidth, tooltipHandle }) {
210
200
  function ToolbarSeparator() {
211
201
  return /* @__PURE__ */ jsx("div", { className: toolbarSeparator });
212
202
  }
203
+ var SEPARATOR_WIDTH = 13;
204
+ function separatorEntry(key) {
205
+ return {
206
+ key,
207
+ node: /* @__PURE__ */ jsx(ToolbarSeparator, {}, key),
208
+ separator: true,
209
+ width: SEPARATOR_WIDTH
210
+ };
211
+ }
212
+ function buttonEntry(spec, handle) {
213
+ return {
214
+ key: spec.key,
215
+ width: 28,
216
+ menu: { items: [spec] },
217
+ node: /* @__PURE__ */ jsx(ToolbarButton, {
218
+ active: spec.active,
219
+ disabled: spec.disabled,
220
+ icon: spec.icon,
221
+ shortcut: spec.shortcut,
222
+ title: spec.label,
223
+ tooltipHandle: handle,
224
+ onClick: spec.onSelect
225
+ }, spec.key)
226
+ };
227
+ }
228
+ function dropdownEntry(key, options, handle) {
229
+ return {
230
+ key,
231
+ width: options.width,
232
+ menu: {
233
+ label: options.title,
234
+ items: options.items.map((item) => ({
235
+ ...item,
236
+ onSelect: item.onSelect
237
+ }))
238
+ },
239
+ node: /* @__PURE__ */ jsx(ToolbarDropdown, {
240
+ items: options.items,
241
+ label: options.label,
242
+ title: options.title,
243
+ tooltipHandle: handle,
244
+ triggerWidth: options.width
245
+ }, key)
246
+ };
247
+ }
248
+ var icon = (Icon) => /* @__PURE__ */ jsx(Icon, {
249
+ size: 16,
250
+ strokeWidth: 2
251
+ });
252
+ function formattingButtons(editor, state) {
253
+ const text = (format) => () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, format);
254
+ const align = (format) => () => editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, format);
255
+ return [
256
+ [{
257
+ key: "undo",
258
+ label: "Undo",
259
+ icon: icon(Undo),
260
+ shortcut: "Mod+Z",
261
+ disabled: !state.canUndo,
262
+ onSelect: () => editor.dispatchCommand(UNDO_COMMAND, void 0)
263
+ }, {
264
+ key: "redo",
265
+ label: "Redo",
266
+ icon: icon(Redo),
267
+ shortcut: "Mod+Shift+Z",
268
+ disabled: !state.canRedo,
269
+ onSelect: () => editor.dispatchCommand(REDO_COMMAND, void 0)
270
+ }],
271
+ [
272
+ {
273
+ key: "bold",
274
+ label: "Bold",
275
+ icon: icon(Bold),
276
+ shortcut: "Mod+B",
277
+ active: state.isBold,
278
+ onSelect: text("bold")
279
+ },
280
+ {
281
+ key: "italic",
282
+ label: "Italic",
283
+ icon: icon(Italic),
284
+ shortcut: "Mod+I",
285
+ active: state.isItalic,
286
+ onSelect: text("italic")
287
+ },
288
+ {
289
+ key: "underline",
290
+ label: "Underline",
291
+ icon: icon(Underline),
292
+ shortcut: "Mod+U",
293
+ active: state.isUnderline,
294
+ onSelect: text("underline")
295
+ },
296
+ {
297
+ key: "strikethrough",
298
+ label: "Strikethrough",
299
+ icon: icon(Strikethrough),
300
+ active: state.isStrikethrough,
301
+ onSelect: text("strikethrough")
302
+ },
303
+ {
304
+ key: "code",
305
+ label: "Inline Code",
306
+ icon: icon(Code),
307
+ active: state.isCode,
308
+ onSelect: text("code")
309
+ }
310
+ ],
311
+ [{
312
+ key: "highlight",
313
+ label: "Highlight",
314
+ icon: icon(Highlighter),
315
+ active: state.isHighlight,
316
+ onSelect: text("highlight")
317
+ }, {
318
+ key: "spoiler",
319
+ label: "Spoiler",
320
+ icon: icon(EyeOff),
321
+ active: state.isSpoiler,
322
+ onSelect: () => editor.update($toggleSpoilerSelection)
323
+ }],
324
+ [
325
+ {
326
+ key: "bullet",
327
+ label: "Bulleted List",
328
+ icon: icon(List),
329
+ active: state.blockType === "bullet",
330
+ onSelect: () => editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, void 0)
331
+ },
332
+ {
333
+ key: "number",
334
+ label: "Numbered List",
335
+ icon: icon(ListOrdered),
336
+ active: state.blockType === "number",
337
+ onSelect: () => editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, void 0)
338
+ },
339
+ {
340
+ key: "check",
341
+ label: "Checklist",
342
+ icon: icon(ListChecks),
343
+ active: state.blockType === "check",
344
+ onSelect: () => editor.dispatchCommand(INSERT_CHECK_LIST_COMMAND, void 0)
345
+ }
346
+ ],
347
+ [
348
+ {
349
+ key: "align-left",
350
+ label: "Align Left",
351
+ icon: icon(AlignLeft),
352
+ active: state.elementFormat === "left" || state.elementFormat === "",
353
+ onSelect: align("left")
354
+ },
355
+ {
356
+ key: "align-center",
357
+ label: "Align Center",
358
+ icon: icon(AlignCenter),
359
+ active: state.elementFormat === "center",
360
+ onSelect: align("center")
361
+ },
362
+ {
363
+ key: "align-right",
364
+ label: "Align Right",
365
+ icon: icon(AlignRight),
366
+ active: state.elementFormat === "right",
367
+ onSelect: align("right")
368
+ },
369
+ {
370
+ key: "align-justify",
371
+ label: "Justify",
372
+ icon: icon(AlignJustify),
373
+ active: state.elementFormat === "justify",
374
+ onSelect: align("justify")
375
+ }
376
+ ]
377
+ ];
378
+ }
379
+ //#endregion
380
+ //#region src/overflow.ts
381
+ function runWidth(entries, count, gap) {
382
+ let total = 0;
383
+ for (let i = 0; i < count; i++) total += entries[i].width + (i > 0 ? gap : 0);
384
+ return total;
385
+ }
386
+ function fitCount(entries, { available, gap, reserve }) {
387
+ if (available === null || runWidth(entries, entries.length, gap) <= available) return entries.length;
388
+ let count = 0;
389
+ while (count < entries.length && runWidth(entries, count + 1, gap) + gap + reserve <= available) count++;
390
+ while (count > 0 && entries[count - 1].separator) count--;
391
+ return count;
392
+ }
393
+ //#endregion
394
+ //#region src/ToolbarOverflowMenu.tsx
395
+ function ToolbarMenuButton({ children, handle, title }) {
396
+ return /* @__PURE__ */ jsx(TooltipTrigger, {
397
+ handle,
398
+ payload: { title },
399
+ render: /* @__PURE__ */ jsx(DropdownMenuTrigger, {
400
+ "aria-label": title,
401
+ className: toolbarButton,
402
+ render: /* @__PURE__ */ jsx("button", { type: "button" })
403
+ }),
404
+ children
405
+ });
406
+ }
407
+ function ToolbarMenuItems({ items }) {
408
+ return /* @__PURE__ */ jsx(Fragment, { children: items.map((item) => /* @__PURE__ */ jsxs(DropdownMenuItem, {
409
+ className: item.active ? toolbarDropdownItemActive : void 0,
410
+ disabled: item.disabled,
411
+ shortcut: item.shortcut,
412
+ onClick: item.onSelect,
413
+ children: [item.icon, item.label]
414
+ }, item.label)) });
415
+ }
416
+ function ToolbarOverflowMenu({ entries, handle, icon }) {
417
+ const sections = entries.filter((entry) => entry.separator || entry.menu);
418
+ return /* @__PURE__ */ jsxs(DropdownMenu, {
419
+ modal: false,
420
+ children: [/* @__PURE__ */ jsx(ToolbarMenuButton, {
421
+ handle,
422
+ title: "More tools",
423
+ children: icon
424
+ }), /* @__PURE__ */ jsx(DropdownMenuContent, {
425
+ align: "end",
426
+ positionMethod: "fixed",
427
+ sideOffset: 4,
428
+ children: sections.map((entry, index) => {
429
+ if (entry.separator) {
430
+ const prev = sections[index - 1];
431
+ return prev && !prev.separator && index < sections.length - 1 ? /* @__PURE__ */ jsx(DropdownMenuSeparator, {}, entry.key) : null;
432
+ }
433
+ const menu = entry.menu;
434
+ if (!menu.label) return /* @__PURE__ */ jsx(ToolbarMenuItems, { items: menu.items }, entry.key);
435
+ return /* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [/* @__PURE__ */ jsx(DropdownMenuLabel, { children: menu.label }), /* @__PURE__ */ jsx(ToolbarMenuItems, { items: menu.items })] }, entry.key);
436
+ })
437
+ })]
438
+ });
439
+ }
213
440
  //#endregion
214
441
  //#region src/use-toolbar-state.ts
215
442
  var INITIAL_TOOLBAR_STATE = {
@@ -300,14 +527,53 @@ function useToolbarState() {
300
527
  }
301
528
  //#endregion
302
529
  //#region src/ToolbarPlugin.tsx
303
- var ICON_SIZE = 15;
304
- var ICON_STROKE = 2;
305
530
  var DEFAULT_MAX_VISIBLE_INSERT_ITEMS = 5;
531
+ function setBlock(editor, create) {
532
+ editor.update(() => {
533
+ const selection = $getSelection();
534
+ if ($isRangeSelection(selection)) $setBlocksType(selection, create);
535
+ });
536
+ }
537
+ var HEADINGS = [
538
+ {
539
+ label: "Text",
540
+ type: "paragraph",
541
+ icon: /* @__PURE__ */ jsx(Pilcrow, { size: 16 })
542
+ },
543
+ {
544
+ label: "Heading 1",
545
+ type: "h1",
546
+ icon: /* @__PURE__ */ jsx(Heading1, { size: 16 })
547
+ },
548
+ {
549
+ label: "Heading 2",
550
+ type: "h2",
551
+ icon: /* @__PURE__ */ jsx(Heading2, { size: 16 })
552
+ },
553
+ {
554
+ label: "Heading 3",
555
+ type: "h3",
556
+ icon: /* @__PURE__ */ jsx(Heading3, { size: 16 })
557
+ }
558
+ ];
559
+ function useAvailableWidth() {
560
+ const ref = useRef(null);
561
+ const [width, setWidth] = useState(null);
562
+ useLayoutEffect(() => {
563
+ const el = ref.current;
564
+ if (!el) return;
565
+ const observer = new ResizeObserver(([entry]) => setWidth(entry.contentRect.width));
566
+ observer.observe(el);
567
+ return () => observer.disconnect();
568
+ }, []);
569
+ return [ref, width];
570
+ }
306
571
  function ToolbarPlugin({ className, maxVisibleInsertItems = DEFAULT_MAX_VISIBLE_INSERT_ITEMS, insertItemOrder }) {
307
572
  const [editor] = useLexicalComposerContext();
308
573
  const state = useToolbarState();
309
- const [tooltipHandle] = useState(() => createTooltipHandle());
310
- const toolbarItems = useMemo(() => {
574
+ const [handle] = useState(() => createTooltipHandle());
575
+ const [rowRef, available] = useAvailableWidth();
576
+ const insertItems = useMemo(() => {
311
577
  const items = collectCommandItems(editor).filter((item) => item.placement?.includes("toolbar") && item.group === "insert");
312
578
  if (!insertItemOrder || insertItemOrder.length === 0) return items;
313
579
  return items.sort((a, b) => {
@@ -316,318 +582,109 @@ function ToolbarPlugin({ className, maxVisibleInsertItems = DEFAULT_MAX_VISIBLE_
316
582
  return (ai === -1 ? Infinity : ai) - (bi === -1 ? Infinity : bi);
317
583
  });
318
584
  }, [editor, insertItemOrder]);
319
- const fontFamilyItems = useMemo(() => FONT_FAMILIES.map((def) => ({
320
- label: def.label,
321
- active: state.fontFamily === def.value,
322
- style: def.value ? { fontFamily: def.value } : void 0,
323
- onSelect: () => applyFontFamily(editor, def.value)
324
- })), [editor, state.fontFamily]);
325
- const headingItems = useMemo(() => [
326
- {
327
- label: "Text",
328
- icon: /* @__PURE__ */ jsx(Pilcrow, {
329
- size: ICON_SIZE,
330
- strokeWidth: ICON_STROKE
331
- }),
332
- active: state.blockType === "paragraph",
333
- onSelect: () => {
334
- editor.update(() => {
335
- const selection = $getSelection();
336
- if ($isRangeSelection(selection)) $setBlocksType(selection, () => $createParagraphNode());
337
- });
338
- }
339
- },
340
- {
341
- label: "Heading 1",
342
- icon: /* @__PURE__ */ jsx(Heading1, {
343
- size: ICON_SIZE,
344
- strokeWidth: ICON_STROKE
345
- }),
346
- active: state.blockType === "h1",
347
- onSelect: () => {
348
- editor.update(() => {
349
- const selection = $getSelection();
350
- if ($isRangeSelection(selection)) $setBlocksType(selection, () => $createHeadingNode("h1"));
351
- });
352
- }
353
- },
354
- {
355
- label: "Heading 2",
356
- icon: /* @__PURE__ */ jsx(Heading2, {
357
- size: ICON_SIZE,
358
- strokeWidth: ICON_STROKE
359
- }),
360
- active: state.blockType === "h2",
361
- onSelect: () => {
362
- editor.update(() => {
363
- const selection = $getSelection();
364
- if ($isRangeSelection(selection)) $setBlocksType(selection, () => $createHeadingNode("h2"));
365
- });
366
- }
367
- },
368
- {
369
- label: "Heading 3",
370
- icon: /* @__PURE__ */ jsx(Heading3, {
371
- size: ICON_SIZE,
372
- strokeWidth: ICON_STROKE
373
- }),
374
- active: state.blockType === "h3",
375
- onSelect: () => {
376
- editor.update(() => {
377
- const selection = $getSelection();
378
- if ($isRangeSelection(selection)) $setBlocksType(selection, () => $createHeadingNode("h3"));
379
- });
380
- }
585
+ const entries = useMemo(() => {
586
+ const list = [
587
+ dropdownEntry("font", {
588
+ title: "Font family",
589
+ label: getFontLabel(state.fontFamily),
590
+ width: 76,
591
+ items: FONT_FAMILIES.map((def) => ({
592
+ label: def.label,
593
+ active: state.fontFamily === def.value,
594
+ style: def.value ? { fontFamily: def.value } : void 0,
595
+ onSelect: () => applyFontFamily(editor, def.value)
596
+ }))
597
+ }, handle),
598
+ separatorEntry("sep-font"),
599
+ dropdownEntry("block", {
600
+ title: "Block type",
601
+ label: BLOCK_TYPE_LABELS[state.blockType] ?? "Text",
602
+ width: 112,
603
+ items: HEADINGS.map((heading) => ({
604
+ label: heading.label,
605
+ icon: heading.icon,
606
+ active: state.blockType === heading.type,
607
+ onSelect: () => setBlock(editor, () => heading.type === "paragraph" ? $createParagraphNode() : $createHeadingNode(heading.type))
608
+ }))
609
+ }, handle)
610
+ ];
611
+ for (const [index, group] of formattingButtons(editor, state).entries()) {
612
+ list.push(separatorEntry(`sep-${index}`));
613
+ for (const spec of group) list.push(buttonEntry(spec, handle));
381
614
  }
382
- ], [editor, state.blockType]);
383
- const containerClassName = className ? `${toolbarContainer} ${className}` : toolbarContainer;
384
- const h = tooltipHandle;
615
+ if (insertItems.length > 0) {
616
+ list.push(separatorEntry("sep-insert"));
617
+ for (const item of insertItems.slice(0, maxVisibleInsertItems)) list.push(buttonEntry({
618
+ key: `insert-${item.title}`,
619
+ label: item.title,
620
+ icon: item.icon,
621
+ shortcut: item.shortcut,
622
+ onSelect: () => item.onSelect(editor, "")
623
+ }, handle));
624
+ const rest = insertItems.slice(maxVisibleInsertItems).map((item) => ({
625
+ label: item.title,
626
+ icon: item.icon,
627
+ shortcut: item.shortcut,
628
+ onSelect: () => item.onSelect(editor, "")
629
+ }));
630
+ if (rest.length > 0) list.push({
631
+ key: "insert-menu",
632
+ width: 28,
633
+ menu: {
634
+ label: "Insert",
635
+ items: rest
636
+ },
637
+ node: /* @__PURE__ */ jsxs(DropdownMenu, {
638
+ modal: false,
639
+ children: [/* @__PURE__ */ jsx(ToolbarMenuButton, {
640
+ handle,
641
+ title: "Insert",
642
+ children: /* @__PURE__ */ jsx(Plus, { size: 16 })
643
+ }), /* @__PURE__ */ jsx(DropdownMenuContent, {
644
+ positionMethod: "fixed",
645
+ sideOffset: 4,
646
+ children: /* @__PURE__ */ jsx(ToolbarMenuItems, { items: rest })
647
+ })]
648
+ }, "insert-menu")
649
+ });
650
+ }
651
+ return list;
652
+ }, [
653
+ editor,
654
+ state,
655
+ handle,
656
+ insertItems,
657
+ maxVisibleInsertItems
658
+ ]);
659
+ const visibleCount = fitCount(entries, {
660
+ available,
661
+ gap: 2,
662
+ reserve: 28
663
+ });
664
+ const hidden = entries.slice(visibleCount);
385
665
  return /* @__PURE__ */ jsxs(TooltipProvider, {
386
666
  delay: 300,
387
667
  children: [/* @__PURE__ */ jsx(TooltipRoot, {
388
668
  disableHoverablePopup: true,
389
- handle: tooltipHandle,
390
- children: ((props) => props.payload !== void 0 ? /* @__PURE__ */ jsxs(TooltipContent, {
669
+ handle,
670
+ children: ((props) => props.payload !== void 0 ? /* @__PURE__ */ jsx(TooltipContent, {
671
+ shortcut: props.payload.shortcut,
391
672
  side: "bottom",
392
673
  sideOffset: 4,
393
- children: [props.payload.title, props.payload.shortcut && /* @__PURE__ */ jsx("span", {
394
- className: "_1e1ersc8",
395
- children: props.payload.shortcut
396
- })]
674
+ children: props.payload.title
397
675
  }) : null)
398
676
  }), /* @__PURE__ */ jsx("div", {
399
677
  "aria-label": "Editor toolbar",
400
- className: containerClassName,
678
+ className: className ? `${toolbarContainer} ${className}` : toolbarContainer,
401
679
  role: "toolbar",
402
680
  children: /* @__PURE__ */ jsxs("div", {
403
681
  className: toolbarRow,
404
- children: [
405
- /* @__PURE__ */ jsx(ToolbarDropdown, {
406
- items: fontFamilyItems,
407
- label: getFontLabel(state.fontFamily),
408
- title: "Font family",
409
- tooltipHandle: h,
410
- triggerWidth: 76
411
- }),
412
- /* @__PURE__ */ jsx(ToolbarSeparator, {}),
413
- /* @__PURE__ */ jsx(ToolbarDropdown, {
414
- items: headingItems,
415
- label: BLOCK_TYPE_LABELS[state.blockType] ?? "Text",
416
- title: "Block type",
417
- tooltipHandle: h,
418
- triggerWidth: 120
419
- }),
420
- /* @__PURE__ */ jsx(ToolbarSeparator, {}),
421
- /* @__PURE__ */ jsx(ToolbarButton, {
422
- disabled: !state.canUndo,
423
- icon: /* @__PURE__ */ jsx(Undo, {
424
- size: ICON_SIZE,
425
- strokeWidth: ICON_STROKE
426
- }),
427
- shortcut: "Ctrl+Z",
428
- title: "Undo",
429
- tooltipHandle: h,
430
- onClick: () => editor.dispatchCommand(UNDO_COMMAND, void 0)
431
- }),
432
- /* @__PURE__ */ jsx(ToolbarButton, {
433
- disabled: !state.canRedo,
434
- icon: /* @__PURE__ */ jsx(Redo, {
435
- size: ICON_SIZE,
436
- strokeWidth: ICON_STROKE
437
- }),
438
- shortcut: "Ctrl+Y",
439
- title: "Redo",
440
- tooltipHandle: h,
441
- onClick: () => editor.dispatchCommand(REDO_COMMAND, void 0)
442
- }),
443
- /* @__PURE__ */ jsx(ToolbarSeparator, {}),
444
- /* @__PURE__ */ jsx(ToolbarButton, {
445
- active: state.isBold,
446
- icon: /* @__PURE__ */ jsx(Bold, {
447
- size: ICON_SIZE,
448
- strokeWidth: ICON_STROKE
449
- }),
450
- shortcut: "Ctrl+B",
451
- title: "Bold",
452
- tooltipHandle: h,
453
- onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "bold")
454
- }),
455
- /* @__PURE__ */ jsx(ToolbarButton, {
456
- active: state.isItalic,
457
- icon: /* @__PURE__ */ jsx(Italic, {
458
- size: ICON_SIZE,
459
- strokeWidth: ICON_STROKE
460
- }),
461
- shortcut: "Ctrl+I",
462
- title: "Italic",
463
- tooltipHandle: h,
464
- onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "italic")
465
- }),
466
- /* @__PURE__ */ jsx(ToolbarButton, {
467
- active: state.isUnderline,
468
- icon: /* @__PURE__ */ jsx(Underline, {
469
- size: ICON_SIZE,
470
- strokeWidth: ICON_STROKE
471
- }),
472
- shortcut: "Ctrl+U",
473
- title: "Underline",
474
- tooltipHandle: h,
475
- onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "underline")
476
- }),
477
- /* @__PURE__ */ jsx(ToolbarButton, {
478
- active: state.isStrikethrough,
479
- icon: /* @__PURE__ */ jsx(Strikethrough, {
480
- size: ICON_SIZE,
481
- strokeWidth: ICON_STROKE
482
- }),
483
- title: "Strikethrough",
484
- tooltipHandle: h,
485
- onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "strikethrough")
486
- }),
487
- /* @__PURE__ */ jsx(ToolbarButton, {
488
- active: state.isCode,
489
- icon: /* @__PURE__ */ jsx(Code, {
490
- size: ICON_SIZE,
491
- strokeWidth: ICON_STROKE
492
- }),
493
- title: "Inline Code",
494
- tooltipHandle: h,
495
- onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "code")
496
- }),
497
- /* @__PURE__ */ jsx(ToolbarSeparator, {}),
498
- /* @__PURE__ */ jsx(ToolbarButton, {
499
- active: state.isHighlight,
500
- icon: /* @__PURE__ */ jsx(Highlighter, {
501
- size: ICON_SIZE,
502
- strokeWidth: ICON_STROKE
503
- }),
504
- title: "Highlight",
505
- tooltipHandle: h,
506
- onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "highlight")
507
- }),
508
- /* @__PURE__ */ jsx(ToolbarButton, {
509
- active: state.isSpoiler,
510
- icon: /* @__PURE__ */ jsx(EyeOff, {
511
- size: ICON_SIZE,
512
- strokeWidth: ICON_STROKE
513
- }),
514
- title: "Spoiler",
515
- tooltipHandle: h,
516
- onClick: () => editor.update($toggleSpoilerSelection)
517
- }),
518
- /* @__PURE__ */ jsx(ToolbarSeparator, {}),
519
- /* @__PURE__ */ jsx(ToolbarButton, {
520
- active: state.blockType === "bullet",
521
- icon: /* @__PURE__ */ jsx(List, {
522
- size: ICON_SIZE,
523
- strokeWidth: ICON_STROKE
524
- }),
525
- title: "Bulleted List",
526
- tooltipHandle: h,
527
- onClick: () => editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, void 0)
528
- }),
529
- /* @__PURE__ */ jsx(ToolbarButton, {
530
- active: state.blockType === "number",
531
- icon: /* @__PURE__ */ jsx(ListOrdered, {
532
- size: ICON_SIZE,
533
- strokeWidth: ICON_STROKE
534
- }),
535
- title: "Numbered List",
536
- tooltipHandle: h,
537
- onClick: () => editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, void 0)
538
- }),
539
- /* @__PURE__ */ jsx(ToolbarButton, {
540
- active: state.blockType === "check",
541
- icon: /* @__PURE__ */ jsx(ListChecks, {
542
- size: ICON_SIZE,
543
- strokeWidth: ICON_STROKE
544
- }),
545
- title: "Checklist",
546
- tooltipHandle: h,
547
- onClick: () => editor.dispatchCommand(INSERT_CHECK_LIST_COMMAND, void 0)
548
- }),
549
- /* @__PURE__ */ jsx(ToolbarSeparator, {}),
550
- /* @__PURE__ */ jsx(ToolbarButton, {
551
- active: state.elementFormat === "left" || state.elementFormat === "",
552
- icon: /* @__PURE__ */ jsx(AlignLeft, {
553
- size: ICON_SIZE,
554
- strokeWidth: ICON_STROKE
555
- }),
556
- title: "Align Left",
557
- tooltipHandle: h,
558
- onClick: () => editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, "left")
559
- }),
560
- /* @__PURE__ */ jsx(ToolbarButton, {
561
- active: state.elementFormat === "center",
562
- icon: /* @__PURE__ */ jsx(AlignCenter, {
563
- size: ICON_SIZE,
564
- strokeWidth: ICON_STROKE
565
- }),
566
- title: "Align Center",
567
- tooltipHandle: h,
568
- onClick: () => editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, "center")
569
- }),
570
- /* @__PURE__ */ jsx(ToolbarButton, {
571
- active: state.elementFormat === "right",
572
- icon: /* @__PURE__ */ jsx(AlignRight, {
573
- size: ICON_SIZE,
574
- strokeWidth: ICON_STROKE
575
- }),
576
- title: "Align Right",
577
- tooltipHandle: h,
578
- onClick: () => editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, "right")
579
- }),
580
- /* @__PURE__ */ jsx(ToolbarButton, {
581
- active: state.elementFormat === "justify",
582
- icon: /* @__PURE__ */ jsx(AlignJustify, {
583
- size: ICON_SIZE,
584
- strokeWidth: ICON_STROKE
585
- }),
586
- title: "Justify",
587
- tooltipHandle: h,
588
- onClick: () => editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, "justify")
589
- }),
590
- toolbarItems.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
591
- /* @__PURE__ */ jsx(ToolbarSeparator, {}),
592
- toolbarItems.slice(0, maxVisibleInsertItems).map((item) => /* @__PURE__ */ jsx(ToolbarButton, {
593
- icon: item.icon,
594
- shortcut: item.shortcut,
595
- title: item.title,
596
- tooltipHandle: h,
597
- onClick: () => item.onSelect(editor, "")
598
- }, item.title)),
599
- toolbarItems.length > maxVisibleInsertItems && /* @__PURE__ */ jsxs(DropdownMenu, {
600
- modal: false,
601
- children: [/* @__PURE__ */ jsx(TooltipTrigger, {
602
- handle: h,
603
- payload: { title: "More" },
604
- render: /* @__PURE__ */ jsx(DropdownMenuTrigger, {
605
- className: "_1e1ersc2",
606
- render: /* @__PURE__ */ jsx("button", { type: "button" })
607
- }),
608
- children: /* @__PURE__ */ jsx(Ellipsis, {
609
- size: ICON_SIZE,
610
- strokeWidth: ICON_STROKE
611
- })
612
- }), /* @__PURE__ */ jsx(DropdownMenuContent, {
613
- positionMethod: "fixed",
614
- sideOffset: 4,
615
- children: toolbarItems.slice(maxVisibleInsertItems).map((item) => /* @__PURE__ */ jsxs(DropdownMenuItem, {
616
- onClick: () => item.onSelect(editor, ""),
617
- children: [item.icon && /* @__PURE__ */ jsx("span", {
618
- style: {
619
- marginRight: 8,
620
- display: "inline-flex",
621
- transform: "scale(0.8)",
622
- transformOrigin: "left center"
623
- },
624
- children: item.icon
625
- }), item.title]
626
- }, item.title))
627
- })]
628
- })
629
- ] })
630
- ]
682
+ ref: rowRef,
683
+ children: [entries.slice(0, visibleCount).map((entry) => entry.node), hidden.length > 0 && /* @__PURE__ */ jsx(ToolbarOverflowMenu, {
684
+ entries: hidden,
685
+ handle,
686
+ icon: /* @__PURE__ */ jsx(Ellipsis, { size: 16 })
687
+ })]
631
688
  })
632
689
  })]
633
690
  });
@@ -0,0 +1,12 @@
1
+ export interface MeasuredEntry {
2
+ separator?: boolean;
3
+ width: number;
4
+ }
5
+ interface FitOptions {
6
+ available: number | null;
7
+ gap: number;
8
+ reserve: number;
9
+ }
10
+ export declare function fitCount(entries: MeasuredEntry[], { available, gap, reserve }: FitOptions): number;
11
+ export {};
12
+ //# sourceMappingURL=overflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overflow.d.ts","sourceRoot":"","sources":["../src/overflow.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,UAAU;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,UAAU,UAUzF"}
@@ -1,2 +1,2 @@
1
- :root{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#f5f5f5);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-max-width:700px;--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-flow-paragraph:1.25em;--rc-flow-list:.375em;--rc-flow-block:2em;--rc-flow-heading:2em;--rc-font-family-sans:var(--rc-host-font-family-sans,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-font-family-serif:var(--rc-host-font-family-serif,"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif);--rc-font-family-kai:var(--rc-host-font-family-kai,"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif);--rc-font-mono:var(--rc-host-font-mono,"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, "PingFang SC", "Noto Sans SC", monospace);--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-font-size-code:.8125em;--rc-font-size-caption:.8125em;--rc-line-height:1.75;--rc-line-height-tight:1.35;--rc-line-height-compact:1.6;--rc-line-height-code:1.7;--rc-font-family:var(--rc-host-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}:root.dark,[data-theme=dark]{--rc-text:var(--rc-host-text,#ededed);--rc-text-secondary:var(--rc-host-text-secondary,#c4c4c4);--rc-text-tertiary:var(--rc-host-text-tertiary,#8f8f8f);--rc-text-quaternary:var(--rc-host-text-quaternary,#5c5c5c);--rc-bg:var(--rc-host-bg,#0a0a0a);--rc-bg-secondary:var(--rc-host-bg-secondary,#121212);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#1a1a1a);--rc-fill:var(--rc-host-fill,#ffffff17);--rc-fill-secondary:var(--rc-host-fill-secondary,#ffffff0f);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#ffffff0a);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#ffffff06);--rc-border:var(--rc-host-border,#262626);--rc-border-subtle:var(--rc-host-border-subtle,#1c1c1c);--rc-ring:var(--rc-host-ring,#ffffff1a);--rc-accent:var(--rc-host-accent,#60a5fa);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 16%, transparent));--rc-link:var(--rc-host-link,#60a5fa);--rc-code-text:var(--rc-host-code-text,#ededed);--rc-code-bg:var(--rc-host-code-bg,#1a1a1a);--rc-code-header-bg:var(--rc-host-code-header-bg,#1a1a1a);--rc-hr-border:var(--rc-host-hr-border,#262626);--rc-quote-border:var(--rc-host-quote-border,#262626);--rc-quote-bg:var(--rc-host-quote-bg,#1a1a1a);--rc-alert-info:var(--rc-host-alert-info,#60a5fa);--rc-alert-warning:var(--rc-host-alert-warning,#fbbf24);--rc-alert-tip:var(--rc-host-alert-tip,#4ade80);--rc-alert-caution:var(--rc-host-alert-caution,#f87171);--rc-alert-important:var(--rc-host-alert-important,#a78bfa);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0006;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009;--rc-shadow-modal:0 0 0 1px #ffffff14, 0 16px 48px -12px #000000b3;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009}._88yfio0{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#f5f5f5);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-max-width:700px;--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-flow-paragraph:1.25em;--rc-flow-list:.375em;--rc-flow-block:2em;--rc-flow-heading:2em;--rc-font-family-sans:var(--rc-host-font-family-sans,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-font-family-serif:var(--rc-host-font-family-serif,"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif);--rc-font-family-kai:var(--rc-host-font-family-kai,"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif);--rc-font-mono:var(--rc-host-font-mono,"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, "PingFang SC", "Noto Sans SC", monospace);--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-font-size-code:.8125em;--rc-font-size-caption:.8125em;--rc-line-height:1.75;--rc-line-height-tight:1.35;--rc-line-height-compact:1.6;--rc-line-height-code:1.7;--rc-font-family:var(--rc-host-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}._88yfio1{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#f5f5f5);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-max-width:700px;--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-flow-paragraph:.5em;--rc-flow-list:.375em;--rc-flow-block:2em;--rc-flow-heading:2em;--rc-font-family-sans:var(--rc-host-font-family-sans,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-font-family-serif:var(--rc-host-font-family-serif,"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif);--rc-font-family-kai:var(--rc-host-font-family-kai,"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif);--rc-font-mono:var(--rc-host-font-mono,"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, "PingFang SC", "Noto Sans SC", monospace);--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-font-size-code:.8125em;--rc-font-size-caption:.8125em;--rc-line-height:1.85;--rc-line-height-tight:1.35;--rc-line-height-compact:1.6;--rc-line-height-code:1.7;--rc-font-family:var(--rc-host-font-family,"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif);--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}._88yfio2{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#fafafa);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-max-width:none;--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-space-xs:2px;--rc-space-sm:4px;--rc-space-md:10px;--rc-space-lg:16px;--rc-space-xl:20px;--rc-flow-paragraph:.6em;--rc-flow-list:.25em;--rc-flow-block:1em;--rc-flow-heading:1em;--rc-font-family-sans:var(--rc-host-font-family-sans,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-font-family-serif:var(--rc-host-font-family-serif,"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif);--rc-font-family-kai:var(--rc-host-font-family-kai,"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif);--rc-font-mono:var(--rc-host-font-mono,"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, "PingFang SC", "Noto Sans SC", monospace);--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:14px;--rc-font-size-small:12px;--rc-font-size-code:.9286em;--rc-font-size-caption:.9286em;--rc-line-height:1.6;--rc-line-height-tight:1.3;--rc-line-height-compact:1.6;--rc-line-height-code:1.7;--rc-font-family:var(--rc-host-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-radius-sm:3px;--rc-radius-md:6px;--rc-radius-lg:12px}._88yfio3{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#fafafa);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-max-width:none;--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-flow-paragraph:.75em;--rc-flow-list:.25em;--rc-flow-block:1em;--rc-flow-heading:1em;--rc-font-family-sans:var(--rc-host-font-family-sans,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-font-family-serif:var(--rc-host-font-family-serif,"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif);--rc-font-family-kai:var(--rc-host-font-family-kai,"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif);--rc-font-mono:var(--rc-host-font-mono,"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, "PingFang SC", "Noto Sans SC", monospace);--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:15px;--rc-font-size-small:13px;--rc-font-size-code:.8667em;--rc-font-size-caption:.8667em;--rc-line-height:1.65;--rc-line-height-tight:1.3;--rc-line-height-compact:1.6;--rc-line-height-code:1.7;--rc-font-family:var(--rc-host-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}.dark ._88yfio0,[data-theme=dark] ._88yfio0,.dark._88yfio0,[data-theme=dark]._88yfio0,.dark ._88yfio1,[data-theme=dark] ._88yfio1,.dark._88yfio1,[data-theme=dark]._88yfio1,.dark ._88yfio2,[data-theme=dark] ._88yfio2,.dark._88yfio2,[data-theme=dark]._88yfio2,.dark ._88yfio3,[data-theme=dark] ._88yfio3,.dark._88yfio3,[data-theme=dark]._88yfio3{--rc-text:var(--rc-host-text,#ededed);--rc-text-secondary:var(--rc-host-text-secondary,#c4c4c4);--rc-text-tertiary:var(--rc-host-text-tertiary,#8f8f8f);--rc-text-quaternary:var(--rc-host-text-quaternary,#5c5c5c);--rc-bg:var(--rc-host-bg,#0a0a0a);--rc-bg-secondary:var(--rc-host-bg-secondary,#121212);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#1a1a1a);--rc-fill:var(--rc-host-fill,#ffffff17);--rc-fill-secondary:var(--rc-host-fill-secondary,#ffffff0f);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#ffffff0a);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#ffffff06);--rc-border:var(--rc-host-border,#262626);--rc-border-subtle:var(--rc-host-border-subtle,#1c1c1c);--rc-ring:var(--rc-host-ring,#ffffff1a);--rc-accent:var(--rc-host-accent,#60a5fa);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 16%, transparent));--rc-link:var(--rc-host-link,#60a5fa);--rc-code-text:var(--rc-host-code-text,#ededed);--rc-code-bg:var(--rc-host-code-bg,#1a1a1a);--rc-code-header-bg:var(--rc-host-code-header-bg,#1a1a1a);--rc-hr-border:var(--rc-host-hr-border,#262626);--rc-quote-border:var(--rc-host-quote-border,#262626);--rc-quote-bg:var(--rc-host-quote-bg,#1a1a1a);--rc-alert-info:var(--rc-host-alert-info,#60a5fa);--rc-alert-warning:var(--rc-host-alert-warning,#fbbf24);--rc-alert-tip:var(--rc-host-alert-tip,#4ade80);--rc-alert-caution:var(--rc-host-alert-caution,#f87171);--rc-alert-important:var(--rc-host-alert-important,#a78bfa);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0006;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009;--rc-shadow-modal:0 0 0 1px #ffffff14, 0 16px 48px -12px #000000b3;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009}._1e1ersc0{letter-spacing:normal;word-spacing:normal;font-feature-settings:normal;font-variant:normal;text-transform:none;text-indent:0;color:var(--rc-text);font-style:normal;font-weight:400;font-family:var(--rc-font-family-sans);font-size:var(--rc-font-size-small);line-height:var(--rc-line-height-compact);border-radius:var(--rc-radius-lg);background-color:var(--rc-bg);box-shadow:var(--rc-shadow-top-bar);z-index:50;max-width:var(--rc-max-width);border:none;flex-direction:column;gap:4px;margin:12px auto 0;display:flex;position:sticky;top:0}._1e1ersc1{flex-flow:wrap;align-items:center;gap:4px;min-height:36px;padding:6px 12px;display:flex}._1e1ersc2{border-radius:var(--rc-radius-md);width:32px;height:32px;color:var(--rc-text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .12s ease-out,background-color .12s ease-out;display:flex;position:relative}._1e1ersc2:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}._1e1ersc2:active{background-color:var(--rc-fill)}._1e1ersc2[data-popup-open]{background-color:var(--rc-fill);color:var(--rc-text)}._1e1ersc2:disabled{opacity:.35;cursor:default;color:var(--rc-text-quaternary);background-color:#0000}._1e1ersc2 svg{stroke-width:2px;width:15px;height:15px}._1e1ersc3,._1e1ersc3:hover{color:var(--rc-text);background-color:var(--rc-fill)}._1e1ersc4{border-radius:var(--rc-radius-md);height:32px;color:var(--rc-text);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0 10px;font-family:inherit;font-size:13px;font-weight:500;line-height:1;transition:color .12s ease-out,background-color .12s ease-out;display:inline-flex}._1e1ersc4:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}._1e1ersc5{flex-shrink:0;margin-left:auto;display:inline-flex}._1e1ersc6{background-color:var(--rc-border);flex-shrink:0;width:1px;height:18px;margin-inline-start:6px;margin-inline-end:6px}._1e1ersc7{background-color:var(--rc-fill);color:var(--rc-text)}._1e1ersc8{opacity:.7;margin-left:6px;font-size:11px}
1
+ :root{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-bg-elevated:var(--rc-host-bg-elevated,#fff);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-scrim:var(--rc-host-scrim,#00000052);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#f5f5f5);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-max-width:700px;--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-flow-paragraph:1.25em;--rc-flow-list:.375em;--rc-flow-block:2em;--rc-flow-heading:2em;--rc-font-family-sans:var(--rc-host-font-family-sans,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-font-family-serif:var(--rc-host-font-family-serif,"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif);--rc-font-family-kai:var(--rc-host-font-family-kai,"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif);--rc-font-mono:var(--rc-host-font-mono,"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, "PingFang SC", "Noto Sans SC", monospace);--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-font-size-code:.8125em;--rc-font-size-caption:.8125em;--rc-line-height:1.75;--rc-line-height-tight:1.35;--rc-line-height-compact:1.6;--rc-line-height-code:1.7;--rc-font-family:var(--rc-host-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}:root.dark,[data-theme=dark]{--rc-text:var(--rc-host-text,#ededed);--rc-text-secondary:var(--rc-host-text-secondary,#c4c4c4);--rc-text-tertiary:var(--rc-host-text-tertiary,#8f8f8f);--rc-text-quaternary:var(--rc-host-text-quaternary,#5c5c5c);--rc-bg:var(--rc-host-bg,#0a0a0a);--rc-bg-secondary:var(--rc-host-bg-secondary,#121212);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#1a1a1a);--rc-bg-elevated:var(--rc-host-bg-elevated,#171717);--rc-fill:var(--rc-host-fill,#ffffff17);--rc-fill-secondary:var(--rc-host-fill-secondary,#ffffff0f);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#ffffff0a);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#ffffff06);--rc-border:var(--rc-host-border,#262626);--rc-border-subtle:var(--rc-host-border-subtle,#1c1c1c);--rc-ring:var(--rc-host-ring,#ffffff1f);--rc-scrim:var(--rc-host-scrim,#0000008f);--rc-accent:var(--rc-host-accent,#60a5fa);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 16%, transparent));--rc-link:var(--rc-host-link,#60a5fa);--rc-code-text:var(--rc-host-code-text,#ededed);--rc-code-bg:var(--rc-host-code-bg,#1a1a1a);--rc-code-header-bg:var(--rc-host-code-header-bg,#1a1a1a);--rc-hr-border:var(--rc-host-hr-border,#262626);--rc-quote-border:var(--rc-host-quote-border,#262626);--rc-quote-bg:var(--rc-host-quote-bg,#1a1a1a);--rc-alert-info:var(--rc-host-alert-info,#60a5fa);--rc-alert-warning:var(--rc-host-alert-warning,#fbbf24);--rc-alert-tip:var(--rc-host-alert-tip,#4ade80);--rc-alert-caution:var(--rc-host-alert-caution,#f87171);--rc-alert-important:var(--rc-host-alert-important,#a78bfa);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0006;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009;--rc-shadow-modal:0 0 0 1px #ffffff14, 0 16px 48px -12px #000000b3;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009}._88yfio0{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-bg-elevated:var(--rc-host-bg-elevated,#fff);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-scrim:var(--rc-host-scrim,#00000052);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#f5f5f5);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-max-width:700px;--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-flow-paragraph:1.25em;--rc-flow-list:.375em;--rc-flow-block:2em;--rc-flow-heading:2em;--rc-font-family-sans:var(--rc-host-font-family-sans,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-font-family-serif:var(--rc-host-font-family-serif,"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif);--rc-font-family-kai:var(--rc-host-font-family-kai,"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif);--rc-font-mono:var(--rc-host-font-mono,"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, "PingFang SC", "Noto Sans SC", monospace);--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-font-size-code:.8125em;--rc-font-size-caption:.8125em;--rc-line-height:1.75;--rc-line-height-tight:1.35;--rc-line-height-compact:1.6;--rc-line-height-code:1.7;--rc-font-family:var(--rc-host-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}._88yfio1{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-bg-elevated:var(--rc-host-bg-elevated,#fff);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-scrim:var(--rc-host-scrim,#00000052);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#f5f5f5);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-max-width:700px;--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-flow-paragraph:.5em;--rc-flow-list:.375em;--rc-flow-block:2em;--rc-flow-heading:2em;--rc-font-family-sans:var(--rc-host-font-family-sans,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-font-family-serif:var(--rc-host-font-family-serif,"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif);--rc-font-family-kai:var(--rc-host-font-family-kai,"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif);--rc-font-mono:var(--rc-host-font-mono,"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, "PingFang SC", "Noto Sans SC", monospace);--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-font-size-code:.8125em;--rc-font-size-caption:.8125em;--rc-line-height:1.85;--rc-line-height-tight:1.35;--rc-line-height-compact:1.6;--rc-line-height-code:1.7;--rc-font-family:var(--rc-host-font-family,"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif);--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}._88yfio2{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-bg-elevated:var(--rc-host-bg-elevated,#fff);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-scrim:var(--rc-host-scrim,#00000052);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#fafafa);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-max-width:none;--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-space-xs:2px;--rc-space-sm:4px;--rc-space-md:10px;--rc-space-lg:16px;--rc-space-xl:20px;--rc-flow-paragraph:.6em;--rc-flow-list:.25em;--rc-flow-block:1em;--rc-flow-heading:1em;--rc-font-family-sans:var(--rc-host-font-family-sans,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-font-family-serif:var(--rc-host-font-family-serif,"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif);--rc-font-family-kai:var(--rc-host-font-family-kai,"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif);--rc-font-mono:var(--rc-host-font-mono,"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, "PingFang SC", "Noto Sans SC", monospace);--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:14px;--rc-font-size-small:12px;--rc-font-size-code:.9286em;--rc-font-size-caption:.9286em;--rc-line-height:1.6;--rc-line-height-tight:1.3;--rc-line-height-compact:1.6;--rc-line-height-code:1.7;--rc-font-family:var(--rc-host-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-radius-sm:3px;--rc-radius-md:6px;--rc-radius-lg:12px}._88yfio3{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-bg-elevated:var(--rc-host-bg-elevated,#fff);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-scrim:var(--rc-host-scrim,#00000052);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#fafafa);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-max-width:none;--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-flow-paragraph:.75em;--rc-flow-list:.25em;--rc-flow-block:1em;--rc-flow-heading:1em;--rc-font-family-sans:var(--rc-host-font-family-sans,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-font-family-serif:var(--rc-host-font-family-serif,"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif);--rc-font-family-kai:var(--rc-host-font-family-kai,"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif);--rc-font-mono:var(--rc-host-font-mono,"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, "PingFang SC", "Noto Sans SC", monospace);--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:15px;--rc-font-size-small:13px;--rc-font-size-code:.8667em;--rc-font-size-caption:.8667em;--rc-line-height:1.65;--rc-line-height-tight:1.3;--rc-line-height-compact:1.6;--rc-line-height-code:1.7;--rc-font-family:var(--rc-host-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji");--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}.dark ._88yfio0,[data-theme=dark] ._88yfio0,.dark._88yfio0,[data-theme=dark]._88yfio0,.dark ._88yfio1,[data-theme=dark] ._88yfio1,.dark._88yfio1,[data-theme=dark]._88yfio1,.dark ._88yfio2,[data-theme=dark] ._88yfio2,.dark._88yfio2,[data-theme=dark]._88yfio2,.dark ._88yfio3,[data-theme=dark] ._88yfio3,.dark._88yfio3,[data-theme=dark]._88yfio3{--rc-text:var(--rc-host-text,#ededed);--rc-text-secondary:var(--rc-host-text-secondary,#c4c4c4);--rc-text-tertiary:var(--rc-host-text-tertiary,#8f8f8f);--rc-text-quaternary:var(--rc-host-text-quaternary,#5c5c5c);--rc-bg:var(--rc-host-bg,#0a0a0a);--rc-bg-secondary:var(--rc-host-bg-secondary,#121212);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#1a1a1a);--rc-bg-elevated:var(--rc-host-bg-elevated,#171717);--rc-fill:var(--rc-host-fill,#ffffff17);--rc-fill-secondary:var(--rc-host-fill-secondary,#ffffff0f);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#ffffff0a);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#ffffff06);--rc-border:var(--rc-host-border,#262626);--rc-border-subtle:var(--rc-host-border-subtle,#1c1c1c);--rc-ring:var(--rc-host-ring,#ffffff1f);--rc-scrim:var(--rc-host-scrim,#0000008f);--rc-accent:var(--rc-host-accent,#60a5fa);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 16%, transparent));--rc-link:var(--rc-host-link,#60a5fa);--rc-code-text:var(--rc-host-code-text,#ededed);--rc-code-bg:var(--rc-host-code-bg,#1a1a1a);--rc-code-header-bg:var(--rc-host-code-header-bg,#1a1a1a);--rc-hr-border:var(--rc-host-hr-border,#262626);--rc-quote-border:var(--rc-host-quote-border,#262626);--rc-quote-bg:var(--rc-host-quote-bg,#1a1a1a);--rc-alert-info:var(--rc-host-alert-info,#60a5fa);--rc-alert-warning:var(--rc-host-alert-warning,#fbbf24);--rc-alert-tip:var(--rc-host-alert-tip,#4ade80);--rc-alert-caution:var(--rc-host-alert-caution,#f87171);--rc-alert-important:var(--rc-host-alert-important,#a78bfa);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0006;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009;--rc-shadow-modal:0 0 0 1px #ffffff14, 0 16px 48px -12px #000000b3;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009}[data-theme=dark] [data-theme=light] ._88yfio0{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-bg-elevated:var(--rc-host-bg-elevated,#fff);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-scrim:var(--rc-host-scrim,#00000052);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#f5f5f5);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f}[data-theme=light] [data-theme=dark] ._88yfio0{--rc-text:var(--rc-host-text,#ededed);--rc-text-secondary:var(--rc-host-text-secondary,#c4c4c4);--rc-text-tertiary:var(--rc-host-text-tertiary,#8f8f8f);--rc-text-quaternary:var(--rc-host-text-quaternary,#5c5c5c);--rc-bg:var(--rc-host-bg,#0a0a0a);--rc-bg-secondary:var(--rc-host-bg-secondary,#121212);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#1a1a1a);--rc-bg-elevated:var(--rc-host-bg-elevated,#171717);--rc-fill:var(--rc-host-fill,#ffffff17);--rc-fill-secondary:var(--rc-host-fill-secondary,#ffffff0f);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#ffffff0a);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#ffffff06);--rc-border:var(--rc-host-border,#262626);--rc-border-subtle:var(--rc-host-border-subtle,#1c1c1c);--rc-ring:var(--rc-host-ring,#ffffff1f);--rc-scrim:var(--rc-host-scrim,#0000008f);--rc-accent:var(--rc-host-accent,#60a5fa);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 16%, transparent));--rc-link:var(--rc-host-link,#60a5fa);--rc-code-text:var(--rc-host-code-text,#ededed);--rc-code-bg:var(--rc-host-code-bg,#1a1a1a);--rc-code-header-bg:var(--rc-host-code-header-bg,#1a1a1a);--rc-hr-border:var(--rc-host-hr-border,#262626);--rc-quote-border:var(--rc-host-quote-border,#262626);--rc-quote-bg:var(--rc-host-quote-bg,#1a1a1a);--rc-alert-info:var(--rc-host-alert-info,#60a5fa);--rc-alert-warning:var(--rc-host-alert-warning,#fbbf24);--rc-alert-tip:var(--rc-host-alert-tip,#4ade80);--rc-alert-caution:var(--rc-host-alert-caution,#f87171);--rc-alert-important:var(--rc-host-alert-important,#a78bfa);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0006;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009;--rc-shadow-modal:0 0 0 1px #ffffff14, 0 16px 48px -12px #000000b3;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009}[data-theme=light][data-theme]._88yfio0{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-bg-elevated:var(--rc-host-bg-elevated,#fff);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-scrim:var(--rc-host-scrim,#00000052);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#f5f5f5);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f}[data-theme=dark][data-theme]._88yfio0{--rc-text:var(--rc-host-text,#ededed);--rc-text-secondary:var(--rc-host-text-secondary,#c4c4c4);--rc-text-tertiary:var(--rc-host-text-tertiary,#8f8f8f);--rc-text-quaternary:var(--rc-host-text-quaternary,#5c5c5c);--rc-bg:var(--rc-host-bg,#0a0a0a);--rc-bg-secondary:var(--rc-host-bg-secondary,#121212);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#1a1a1a);--rc-bg-elevated:var(--rc-host-bg-elevated,#171717);--rc-fill:var(--rc-host-fill,#ffffff17);--rc-fill-secondary:var(--rc-host-fill-secondary,#ffffff0f);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#ffffff0a);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#ffffff06);--rc-border:var(--rc-host-border,#262626);--rc-border-subtle:var(--rc-host-border-subtle,#1c1c1c);--rc-ring:var(--rc-host-ring,#ffffff1f);--rc-scrim:var(--rc-host-scrim,#0000008f);--rc-accent:var(--rc-host-accent,#60a5fa);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 16%, transparent));--rc-link:var(--rc-host-link,#60a5fa);--rc-code-text:var(--rc-host-code-text,#ededed);--rc-code-bg:var(--rc-host-code-bg,#1a1a1a);--rc-code-header-bg:var(--rc-host-code-header-bg,#1a1a1a);--rc-hr-border:var(--rc-host-hr-border,#262626);--rc-quote-border:var(--rc-host-quote-border,#262626);--rc-quote-bg:var(--rc-host-quote-bg,#1a1a1a);--rc-alert-info:var(--rc-host-alert-info,#60a5fa);--rc-alert-warning:var(--rc-host-alert-warning,#fbbf24);--rc-alert-tip:var(--rc-host-alert-tip,#4ade80);--rc-alert-caution:var(--rc-host-alert-caution,#f87171);--rc-alert-important:var(--rc-host-alert-important,#a78bfa);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0006;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009;--rc-shadow-modal:0 0 0 1px #ffffff14, 0 16px 48px -12px #000000b3;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009}[data-theme=dark] [data-theme=light] ._88yfio1{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-bg-elevated:var(--rc-host-bg-elevated,#fff);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-scrim:var(--rc-host-scrim,#00000052);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#f5f5f5);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f}[data-theme=light] [data-theme=dark] ._88yfio1{--rc-text:var(--rc-host-text,#ededed);--rc-text-secondary:var(--rc-host-text-secondary,#c4c4c4);--rc-text-tertiary:var(--rc-host-text-tertiary,#8f8f8f);--rc-text-quaternary:var(--rc-host-text-quaternary,#5c5c5c);--rc-bg:var(--rc-host-bg,#0a0a0a);--rc-bg-secondary:var(--rc-host-bg-secondary,#121212);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#1a1a1a);--rc-bg-elevated:var(--rc-host-bg-elevated,#171717);--rc-fill:var(--rc-host-fill,#ffffff17);--rc-fill-secondary:var(--rc-host-fill-secondary,#ffffff0f);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#ffffff0a);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#ffffff06);--rc-border:var(--rc-host-border,#262626);--rc-border-subtle:var(--rc-host-border-subtle,#1c1c1c);--rc-ring:var(--rc-host-ring,#ffffff1f);--rc-scrim:var(--rc-host-scrim,#0000008f);--rc-accent:var(--rc-host-accent,#60a5fa);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 16%, transparent));--rc-link:var(--rc-host-link,#60a5fa);--rc-code-text:var(--rc-host-code-text,#ededed);--rc-code-bg:var(--rc-host-code-bg,#1a1a1a);--rc-code-header-bg:var(--rc-host-code-header-bg,#1a1a1a);--rc-hr-border:var(--rc-host-hr-border,#262626);--rc-quote-border:var(--rc-host-quote-border,#262626);--rc-quote-bg:var(--rc-host-quote-bg,#1a1a1a);--rc-alert-info:var(--rc-host-alert-info,#60a5fa);--rc-alert-warning:var(--rc-host-alert-warning,#fbbf24);--rc-alert-tip:var(--rc-host-alert-tip,#4ade80);--rc-alert-caution:var(--rc-host-alert-caution,#f87171);--rc-alert-important:var(--rc-host-alert-important,#a78bfa);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0006;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009;--rc-shadow-modal:0 0 0 1px #ffffff14, 0 16px 48px -12px #000000b3;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009}[data-theme=light][data-theme]._88yfio1{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-bg-elevated:var(--rc-host-bg-elevated,#fff);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-scrim:var(--rc-host-scrim,#00000052);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#f5f5f5);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f}[data-theme=dark][data-theme]._88yfio1{--rc-text:var(--rc-host-text,#ededed);--rc-text-secondary:var(--rc-host-text-secondary,#c4c4c4);--rc-text-tertiary:var(--rc-host-text-tertiary,#8f8f8f);--rc-text-quaternary:var(--rc-host-text-quaternary,#5c5c5c);--rc-bg:var(--rc-host-bg,#0a0a0a);--rc-bg-secondary:var(--rc-host-bg-secondary,#121212);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#1a1a1a);--rc-bg-elevated:var(--rc-host-bg-elevated,#171717);--rc-fill:var(--rc-host-fill,#ffffff17);--rc-fill-secondary:var(--rc-host-fill-secondary,#ffffff0f);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#ffffff0a);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#ffffff06);--rc-border:var(--rc-host-border,#262626);--rc-border-subtle:var(--rc-host-border-subtle,#1c1c1c);--rc-ring:var(--rc-host-ring,#ffffff1f);--rc-scrim:var(--rc-host-scrim,#0000008f);--rc-accent:var(--rc-host-accent,#60a5fa);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 16%, transparent));--rc-link:var(--rc-host-link,#60a5fa);--rc-code-text:var(--rc-host-code-text,#ededed);--rc-code-bg:var(--rc-host-code-bg,#1a1a1a);--rc-code-header-bg:var(--rc-host-code-header-bg,#1a1a1a);--rc-hr-border:var(--rc-host-hr-border,#262626);--rc-quote-border:var(--rc-host-quote-border,#262626);--rc-quote-bg:var(--rc-host-quote-bg,#1a1a1a);--rc-alert-info:var(--rc-host-alert-info,#60a5fa);--rc-alert-warning:var(--rc-host-alert-warning,#fbbf24);--rc-alert-tip:var(--rc-host-alert-tip,#4ade80);--rc-alert-caution:var(--rc-host-alert-caution,#f87171);--rc-alert-important:var(--rc-host-alert-important,#a78bfa);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0006;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009;--rc-shadow-modal:0 0 0 1px #ffffff14, 0 16px 48px -12px #000000b3;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009}[data-theme=dark] [data-theme=light] ._88yfio2{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-bg-elevated:var(--rc-host-bg-elevated,#fff);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-scrim:var(--rc-host-scrim,#00000052);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#fafafa);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f}[data-theme=light] [data-theme=dark] ._88yfio2{--rc-text:var(--rc-host-text,#ededed);--rc-text-secondary:var(--rc-host-text-secondary,#c4c4c4);--rc-text-tertiary:var(--rc-host-text-tertiary,#8f8f8f);--rc-text-quaternary:var(--rc-host-text-quaternary,#5c5c5c);--rc-bg:var(--rc-host-bg,#0a0a0a);--rc-bg-secondary:var(--rc-host-bg-secondary,#121212);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#1a1a1a);--rc-bg-elevated:var(--rc-host-bg-elevated,#171717);--rc-fill:var(--rc-host-fill,#ffffff17);--rc-fill-secondary:var(--rc-host-fill-secondary,#ffffff0f);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#ffffff0a);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#ffffff06);--rc-border:var(--rc-host-border,#262626);--rc-border-subtle:var(--rc-host-border-subtle,#1c1c1c);--rc-ring:var(--rc-host-ring,#ffffff1f);--rc-scrim:var(--rc-host-scrim,#0000008f);--rc-accent:var(--rc-host-accent,#60a5fa);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 16%, transparent));--rc-link:var(--rc-host-link,#60a5fa);--rc-code-text:var(--rc-host-code-text,#ededed);--rc-code-bg:var(--rc-host-code-bg,#1a1a1a);--rc-code-header-bg:var(--rc-host-code-header-bg,#1a1a1a);--rc-hr-border:var(--rc-host-hr-border,#262626);--rc-quote-border:var(--rc-host-quote-border,#262626);--rc-quote-bg:var(--rc-host-quote-bg,#1a1a1a);--rc-alert-info:var(--rc-host-alert-info,#60a5fa);--rc-alert-warning:var(--rc-host-alert-warning,#fbbf24);--rc-alert-tip:var(--rc-host-alert-tip,#4ade80);--rc-alert-caution:var(--rc-host-alert-caution,#f87171);--rc-alert-important:var(--rc-host-alert-important,#a78bfa);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0006;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009;--rc-shadow-modal:0 0 0 1px #ffffff14, 0 16px 48px -12px #000000b3;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009}[data-theme=light][data-theme]._88yfio2{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-bg-elevated:var(--rc-host-bg-elevated,#fff);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-scrim:var(--rc-host-scrim,#00000052);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#fafafa);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f}[data-theme=dark][data-theme]._88yfio2{--rc-text:var(--rc-host-text,#ededed);--rc-text-secondary:var(--rc-host-text-secondary,#c4c4c4);--rc-text-tertiary:var(--rc-host-text-tertiary,#8f8f8f);--rc-text-quaternary:var(--rc-host-text-quaternary,#5c5c5c);--rc-bg:var(--rc-host-bg,#0a0a0a);--rc-bg-secondary:var(--rc-host-bg-secondary,#121212);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#1a1a1a);--rc-bg-elevated:var(--rc-host-bg-elevated,#171717);--rc-fill:var(--rc-host-fill,#ffffff17);--rc-fill-secondary:var(--rc-host-fill-secondary,#ffffff0f);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#ffffff0a);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#ffffff06);--rc-border:var(--rc-host-border,#262626);--rc-border-subtle:var(--rc-host-border-subtle,#1c1c1c);--rc-ring:var(--rc-host-ring,#ffffff1f);--rc-scrim:var(--rc-host-scrim,#0000008f);--rc-accent:var(--rc-host-accent,#60a5fa);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 16%, transparent));--rc-link:var(--rc-host-link,#60a5fa);--rc-code-text:var(--rc-host-code-text,#ededed);--rc-code-bg:var(--rc-host-code-bg,#1a1a1a);--rc-code-header-bg:var(--rc-host-code-header-bg,#1a1a1a);--rc-hr-border:var(--rc-host-hr-border,#262626);--rc-quote-border:var(--rc-host-quote-border,#262626);--rc-quote-bg:var(--rc-host-quote-bg,#1a1a1a);--rc-alert-info:var(--rc-host-alert-info,#60a5fa);--rc-alert-warning:var(--rc-host-alert-warning,#fbbf24);--rc-alert-tip:var(--rc-host-alert-tip,#4ade80);--rc-alert-caution:var(--rc-host-alert-caution,#f87171);--rc-alert-important:var(--rc-host-alert-important,#a78bfa);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0006;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009;--rc-shadow-modal:0 0 0 1px #ffffff14, 0 16px 48px -12px #000000b3;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009}[data-theme=dark] [data-theme=light] ._88yfio3{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-bg-elevated:var(--rc-host-bg-elevated,#fff);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-scrim:var(--rc-host-scrim,#00000052);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#fafafa);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f}[data-theme=light] [data-theme=dark] ._88yfio3{--rc-text:var(--rc-host-text,#ededed);--rc-text-secondary:var(--rc-host-text-secondary,#c4c4c4);--rc-text-tertiary:var(--rc-host-text-tertiary,#8f8f8f);--rc-text-quaternary:var(--rc-host-text-quaternary,#5c5c5c);--rc-bg:var(--rc-host-bg,#0a0a0a);--rc-bg-secondary:var(--rc-host-bg-secondary,#121212);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#1a1a1a);--rc-bg-elevated:var(--rc-host-bg-elevated,#171717);--rc-fill:var(--rc-host-fill,#ffffff17);--rc-fill-secondary:var(--rc-host-fill-secondary,#ffffff0f);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#ffffff0a);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#ffffff06);--rc-border:var(--rc-host-border,#262626);--rc-border-subtle:var(--rc-host-border-subtle,#1c1c1c);--rc-ring:var(--rc-host-ring,#ffffff1f);--rc-scrim:var(--rc-host-scrim,#0000008f);--rc-accent:var(--rc-host-accent,#60a5fa);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 16%, transparent));--rc-link:var(--rc-host-link,#60a5fa);--rc-code-text:var(--rc-host-code-text,#ededed);--rc-code-bg:var(--rc-host-code-bg,#1a1a1a);--rc-code-header-bg:var(--rc-host-code-header-bg,#1a1a1a);--rc-hr-border:var(--rc-host-hr-border,#262626);--rc-quote-border:var(--rc-host-quote-border,#262626);--rc-quote-bg:var(--rc-host-quote-bg,#1a1a1a);--rc-alert-info:var(--rc-host-alert-info,#60a5fa);--rc-alert-warning:var(--rc-host-alert-warning,#fbbf24);--rc-alert-tip:var(--rc-host-alert-tip,#4ade80);--rc-alert-caution:var(--rc-host-alert-caution,#f87171);--rc-alert-important:var(--rc-host-alert-important,#a78bfa);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0006;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009;--rc-shadow-modal:0 0 0 1px #ffffff14, 0 16px 48px -12px #000000b3;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009}[data-theme=light][data-theme]._88yfio3{--rc-text:var(--rc-host-text,#171717);--rc-text-secondary:var(--rc-host-text-secondary,#404040);--rc-text-tertiary:var(--rc-host-text-tertiary,#737373);--rc-text-quaternary:var(--rc-host-text-quaternary,#a3a3a3);--rc-bg:var(--rc-host-bg,#fff);--rc-bg-secondary:var(--rc-host-bg-secondary,#fafafa);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#f5f5f5);--rc-bg-elevated:var(--rc-host-bg-elevated,#fff);--rc-fill:var(--rc-host-fill,#00000012);--rc-fill-secondary:var(--rc-host-fill-secondary,#0000000b);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#00000008);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#00000005);--rc-border:var(--rc-host-border,#e5e5e5);--rc-border-subtle:var(--rc-host-border-subtle,#f0f0f0);--rc-ring:var(--rc-host-ring,#00000014);--rc-scrim:var(--rc-host-scrim,#00000052);--rc-accent:var(--rc-host-accent,#2563eb);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 10%, transparent));--rc-link:var(--rc-host-link,#2563eb);--rc-code-text:var(--rc-host-code-text,#171717);--rc-code-bg:var(--rc-host-code-bg,#f5f5f5);--rc-code-header-bg:var(--rc-host-code-header-bg,#f5f5f5);--rc-hr-border:var(--rc-host-hr-border,#e5e5e5);--rc-quote-border:var(--rc-host-quote-border,#e5e5e5);--rc-quote-bg:var(--rc-host-quote-bg,#fafafa);--rc-alert-info:var(--rc-host-alert-info,#2563eb);--rc-alert-warning:var(--rc-host-alert-warning,#b45309);--rc-alert-tip:var(--rc-host-alert-tip,#15803d);--rc-alert-caution:var(--rc-host-alert-caution,#dc2626);--rc-alert-important:var(--rc-host-alert-important,#7c3aed);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0000000d;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f;--rc-shadow-modal:0 0 0 1px #0000000f, 0 16px 48px -12px #00000040;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 4px 12px #0000000f, 0 12px 32px -8px #0000001f}[data-theme=dark][data-theme]._88yfio3{--rc-text:var(--rc-host-text,#ededed);--rc-text-secondary:var(--rc-host-text-secondary,#c4c4c4);--rc-text-tertiary:var(--rc-host-text-tertiary,#8f8f8f);--rc-text-quaternary:var(--rc-host-text-quaternary,#5c5c5c);--rc-bg:var(--rc-host-bg,#0a0a0a);--rc-bg-secondary:var(--rc-host-bg-secondary,#121212);--rc-bg-tertiary:var(--rc-host-bg-tertiary,#1a1a1a);--rc-bg-elevated:var(--rc-host-bg-elevated,#171717);--rc-fill:var(--rc-host-fill,#ffffff17);--rc-fill-secondary:var(--rc-host-fill-secondary,#ffffff0f);--rc-fill-tertiary:var(--rc-host-fill-tertiary,#ffffff0a);--rc-fill-quaternary:var(--rc-host-fill-quaternary,#ffffff06);--rc-border:var(--rc-host-border,#262626);--rc-border-subtle:var(--rc-host-border-subtle,#1c1c1c);--rc-ring:var(--rc-host-ring,#ffffff1f);--rc-scrim:var(--rc-host-scrim,#0000008f);--rc-accent:var(--rc-host-accent,#60a5fa);--rc-accent-light:var(--rc-host-accent-light,color-mix(in oklab, var(--rc-accent) 16%, transparent));--rc-link:var(--rc-host-link,#60a5fa);--rc-code-text:var(--rc-host-code-text,#ededed);--rc-code-bg:var(--rc-host-code-bg,#1a1a1a);--rc-code-header-bg:var(--rc-host-code-header-bg,#1a1a1a);--rc-hr-border:var(--rc-host-hr-border,#262626);--rc-quote-border:var(--rc-host-quote-border,#262626);--rc-quote-bg:var(--rc-host-quote-bg,#1a1a1a);--rc-alert-info:var(--rc-host-alert-info,#60a5fa);--rc-alert-warning:var(--rc-host-alert-warning,#fbbf24);--rc-alert-tip:var(--rc-host-alert-tip,#4ade80);--rc-alert-caution:var(--rc-host-alert-caution,#f87171);--rc-alert-important:var(--rc-host-alert-important,#a78bfa);--rc-shadow-xs:0 0 0 1px var(--rc-ring), 0 1px 2px #0006;--rc-shadow-top-bar:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009;--rc-shadow-modal:0 0 0 1px #ffffff14, 0 16px 48px -12px #000000b3;--rc-shadow-menu:0 0 0 1px var(--rc-ring), 0 8px 24px #00000080, 0 16px 40px -8px #0009}._1e1ersc0{letter-spacing:normal;word-spacing:normal;font-feature-settings:normal;font-variant:normal;text-transform:none;text-indent:0;color:var(--rc-text);font-style:normal;font-weight:400;font-family:var(--rc-font-family-sans);z-index:50;box-sizing:border-box;background-color:var(--rc-bg);border-bottom:1px solid var(--rc-border-subtle);flex-direction:column;width:100%;font-size:14px;line-height:20px;display:flex;position:sticky;top:0}._1e1ersc1{box-sizing:border-box;flex-flow:row;align-items:center;gap:2px;min-width:0;height:40px;padding:0 8px;display:flex;overflow:hidden}._1e1ersc2{width:28px;height:28px;color:var(--rc-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;outline:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:color .12s,background-color .12s;display:flex;position:relative}._1e1ersc2:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}._1e1ersc2:focus-visible{box-shadow:0 0 0 1px var(--rc-accent), 0 0 0 3px var(--rc-accent-light)}._1e1ersc2:active{background-color:var(--rc-fill)}._1e1ersc2[data-popup-open]{background-color:var(--rc-fill);color:var(--rc-text)}._1e1ersc2:disabled{opacity:.5;cursor:default;color:var(--rc-text-secondary);background-color:#0000}._1e1ersc2 svg{stroke-width:2px;width:16px;height:16px}._1e1ersc3._1e1ersc3{color:var(--rc-text);background-color:var(--rc-fill)}._1e1ersc4{box-sizing:border-box;height:28px;color:var(--rc-text);cursor:pointer;font-size:13px;line-height:20px;font-family:var(--rc-font-family-sans);white-space:nowrap;background:0 0;border:none;border-radius:8px;outline:none;flex-shrink:0;align-items:center;gap:4px;padding:0 6px 0 8px;font-weight:500;transition:color .12s,background-color .12s;display:inline-flex}._1e1ersc4:hover{background-color:var(--rc-fill-secondary)}._1e1ersc4:focus-visible{box-shadow:0 0 0 1px var(--rc-accent), 0 0 0 3px var(--rc-accent-light)}._1e1ersc4[data-popup-open]{background-color:var(--rc-fill)}._1e1ersc5{color:var(--rc-text-tertiary);flex-shrink:0;margin-left:auto;display:inline-flex}._1e1ersc6{background-color:var(--rc-border-subtle);flex-shrink:0;width:1px;height:16px;margin-inline-start:6px;margin-inline-end:6px}._1e1ersc7{background-color:var(--rc-fill-tertiary);font-weight:500}
2
2
  /*$vite$:1*/
@@ -6,5 +6,4 @@ export declare const toolbarDropdownTrigger: string;
6
6
  export declare const toolbarDropdownTriggerChevron: string;
7
7
  export declare const toolbarSeparator: string;
8
8
  export declare const toolbarDropdownItemActive: string;
9
- export declare const tooltipShortcut: string;
10
9
  //# sourceMappingURL=styles.css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../src/styles.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,QAc3B,CAAC;AAEH,eAAO,MAAM,UAAU,QAQrB,CAAC;AAEH,eAAO,MAAM,aAAa,QAiCxB,CAAC;AAQH,eAAO,MAAM,mBAAmB,QAO9B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAoBjC,CAAC;AAEH,eAAO,MAAM,6BAA6B,QAIxC,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAM3B,CAAC;AAEH,eAAO,MAAM,yBAAyB,QAGpC,CAAC;AAEH,eAAO,MAAM,eAAe,QAI1B,CAAC"}
1
+ {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../src/styles.css.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,gBAAgB,QAW3B,CAAC;AAEH,eAAO,MAAM,UAAU,QAWrB,CAAC;AAEH,eAAO,MAAM,aAAa,QAsCxB,CAAC;AAQH,eAAO,MAAM,mBAAmB,QAO9B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QA8BjC,CAAC;AAEH,eAAO,MAAM,6BAA6B,QAKxC,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAM3B,CAAC;AAEH,eAAO,MAAM,yBAAyB,QAGpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haklex/rich-plugin-toolbar",
3
- "version": "0.56.0",
3
+ "version": "0.58.0",
4
4
  "description": "Top toolbar plugin for rich editor",
5
5
  "repository": {
6
6
  "type": "git",
@@ -39,9 +39,9 @@
39
39
  "vite": "^8.3.4"
40
40
  },
41
41
  "peerDependencies": {
42
- "@haklex/rich-editor": "^0.56.0",
43
- "@haklex/rich-editor-ui": "^0.56.0",
44
- "@haklex/rich-style-token": "^0.56.0",
42
+ "@haklex/rich-editor": "^0.58.0",
43
+ "@haklex/rich-editor-ui": "^0.58.0",
44
+ "@haklex/rich-style-token": "^0.58.0",
45
45
  "@lexical/list": "^0.52.0",
46
46
  "@lexical/react": "^0.52.0",
47
47
  "@lexical/rich-text": "^0.52.0",