oasis-editor 0.0.14 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{OasisEditorApp-BtRbOf8l.js → OasisEditorApp-C8YG4Yzr.js} +18 -5
- package/dist/core/commands/builtinCommands.d.ts +1 -1
- package/dist/core/commands/publicCommandTypes.d.ts +1 -0
- package/dist/i18n/locales/en.d.ts +4 -0
- package/dist/i18n/locales/pt-BR.d.ts +4 -0
- package/dist/{index-4CDpujGG.js → index-Dqm-2RUA.js} +62 -7
- package/dist/oasis-editor.css +1 -1
- package/dist/oasis-editor.js +1 -1
- package/dist/oasis-editor.umd.cjs +3 -3
- package/dist/plugins/internal/createEssentialsPlugin.d.ts +1 -0
- package/dist/ui/editorLayoutConstants.d.ts +13 -0
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import { n as normalizeSelection, g as getParagraphs, c as createEditorParagraphFromRuns, a as getParagraphLength, b as createEditorRun, d as getDocumentSections, e as createEditorStyledRun, f as getParagraphText, h as getActiveZone, i as getActiveSectionIndex, p as positionToParagraphOffset, j as paragraphOffsetToPosition, k as clampPosition, l as findParagraphIndex, m as createCollapsedSelection, o as isSelectionCollapsed, q as createEditorParagraph, r as getBlockParagraphs, s as findParagraphTableLocation, t as buildTableCellLayout, u as createEditorTableCell, v as createEditorTable, w as createEditorTableRow, x as underlineStyleToCssDecorationStyle, y as resolveImageSrc, z as createEditorFootnote, A as createFootnoteReferenceRun, B as renumberFootnotes, C as iterateFootnoteReferenceRuns, D as getFootnoteDisplayMarker, E as createSignal, F as createEffect, G as onCleanup, H as buildCanvasLayoutSnapshot, I as on, J as onMount, K as debounce, L as unwrap, M as getDocumentParagraphs, N as getDocumentSectionsCanonical, O as createEditorDocument, P as getPageContentWidth, Q as getDocumentPageSettings, R as getTableCellContentWidthForParagraph, S as resolveResizedDimensions, T as resolveTextBoxRenderHeight, U as resolveEffectiveParagraphStyle, V as resolveEffectiveTextStyleForParagraph, W as iterateEndnoteReferenceRuns, X as JSZip, Y as imageContentTypeDefaults, Z as imageExtensionFromMime, _ as pxToPt$1, $ as buildSegmentTable, a0 as buildCanvasTableLayout, a1 as resolveFloatingObjectRect, a2 as getTextBoxFloatingGeometry, a3 as getPresetPathSegments, a4 as projectBlocksLayout, a5 as textStyleToFontSizePt, a6 as PX_PER_POINT, a7 as DEFAULT_FONT_SIZE_PX, a8 as isDoubleUnderlineStyle, a9 as isWavyUnderlineStyle, aa as underlineStyleLineWidthPx, ab as underlineStyleDashArray, ac as getListLabelInset, ad as getParagraphBorderInsets, ae as normalizeFamily, af as ROBOTO_FONT_FILES, ag as loadFontAsset, ah as OFFICE_COMPAT_FONT_FAMILIES, ai as buildSfnt, aj as defaultFontDecoderRegistry, ak as SfntFontProgram, al as collectPdfFontFamilies, am as projectDocumentLayout, an as getPageHeaderZoneTop, ao as getPageBodyTop, ap as findFootnoteReference, aq as FOOTNOTE_MARKER_GUTTER_PX, ar as resolveImporterForFile, as as createEditorStateFromDocument, at as getDocumentParagraphsCanonical, au as getToolbarStyleState, av as STANDARD_FONT_SIZES_PT, aw as fontSizePxToPt, ax as probeLocalFontFamilies, ay as createInitialEditorState, az as parseFontSizePtToPx, aA as formatFontSizePt, aB as listKindForTag, aC as isParagraphTag, aD as collectInlineRuns, aE as parseParagraphStyle, aF as t, aG as preciseFontModeVersion, aH as isPreciseFontModeEnabled, aI as togglePreciseFontMode, aJ as nextFontSizePt, aK as previousFontSizePt, aL as fontSizePtToPx, aM as createDefaultToolbarPreset, aN as defaultMenuItems, aO as MenuRegistry, aP as createToolbarRegistry, aQ as Editor, aR as resolveCommandRef, aS as commandRefName, aT as InlineShell, aU as BalloonShell, aV as DocumentShell, aW as createMemo, aX as getCaretRectFromSnapshot, aY as getParagraphRectFromSnapshot, aZ as createComponent, a_ as CaretOverlay, a$ as Show, b0 as createRenderEffect, b1 as style, b2 as setAttribute, b3 as setStyleProperty, b4 as memo, b5 as template, b6 as insert, b7 as use, b8 as addEventListener, b9 as Dialog, ba as delegateEvents, bb as className, bc as For, bd as UNDERLINE_STYLE_OPTIONS, be as Tabs, bf as measureParagraphMinContentWidthPx, bg as getEditableBlocksForZone, bh as findParagraphLocation, bi as createSectionBoundaryParagraph, bj as normalizePageSettings, bk as DEFAULT_EDITOR_PAGE_SETTINGS, bl as markStart, bm as markEnd, bn as getParagraphEntries, bo as getParagraphById, bp as PluginUiHost, bq as OasisEditorEditor, br as perfTimer, bs as OasisBrandMark, bt as setPreciseFontPreference, bu as setWelcomeSeen, bv as enablePreciseFontMode, bw as createOasisEditorClient, bx as setLocale, by as startLongTaskObserver, bz as installGlobalReport, bA as applyStoredPreciseFontPreference, bB as getWelcomeSeen, bC as isLocalFontAccessSupported, bD as EDITOR_SCROLL_PADDING_PX, bE as Toolbar, bF as OasisEditorLoading, bG as createEditorLogger, bH as getCachedCanvasImage, bI as registerDomStatsSurface } from "./index-
|
|
4
|
+
import { n as normalizeSelection, g as getParagraphs, c as createEditorParagraphFromRuns, a as getParagraphLength, b as createEditorRun, d as getDocumentSections, e as createEditorStyledRun, f as getParagraphText, h as getActiveZone, i as getActiveSectionIndex, p as positionToParagraphOffset, j as paragraphOffsetToPosition, k as clampPosition, l as findParagraphIndex, m as createCollapsedSelection, o as isSelectionCollapsed, q as createEditorParagraph, r as getBlockParagraphs, s as findParagraphTableLocation, t as buildTableCellLayout, u as createEditorTableCell, v as createEditorTable, w as createEditorTableRow, x as underlineStyleToCssDecorationStyle, y as resolveImageSrc, z as createEditorFootnote, A as createFootnoteReferenceRun, B as renumberFootnotes, C as iterateFootnoteReferenceRuns, D as getFootnoteDisplayMarker, E as createSignal, F as createEffect, G as onCleanup, H as buildCanvasLayoutSnapshot, I as on, J as onMount, K as debounce, L as unwrap, M as getDocumentParagraphs, N as getDocumentSectionsCanonical, O as createEditorDocument, P as getPageContentWidth, Q as getDocumentPageSettings, R as getTableCellContentWidthForParagraph, S as resolveResizedDimensions, T as resolveTextBoxRenderHeight, U as resolveEffectiveParagraphStyle, V as resolveEffectiveTextStyleForParagraph, W as iterateEndnoteReferenceRuns, X as JSZip, Y as imageContentTypeDefaults, Z as imageExtensionFromMime, _ as pxToPt$1, $ as buildSegmentTable, a0 as buildCanvasTableLayout, a1 as resolveFloatingObjectRect, a2 as getTextBoxFloatingGeometry, a3 as getPresetPathSegments, a4 as projectBlocksLayout, a5 as textStyleToFontSizePt, a6 as PX_PER_POINT, a7 as DEFAULT_FONT_SIZE_PX, a8 as isDoubleUnderlineStyle, a9 as isWavyUnderlineStyle, aa as underlineStyleLineWidthPx, ab as underlineStyleDashArray, ac as getListLabelInset, ad as getParagraphBorderInsets, ae as normalizeFamily, af as ROBOTO_FONT_FILES, ag as loadFontAsset, ah as OFFICE_COMPAT_FONT_FAMILIES, ai as buildSfnt, aj as defaultFontDecoderRegistry, ak as SfntFontProgram, al as collectPdfFontFamilies, am as projectDocumentLayout, an as getPageHeaderZoneTop, ao as getPageBodyTop, ap as findFootnoteReference, aq as FOOTNOTE_MARKER_GUTTER_PX, ar as resolveImporterForFile, as as createEditorStateFromDocument, at as getDocumentParagraphsCanonical, au as getToolbarStyleState, av as STANDARD_FONT_SIZES_PT, aw as fontSizePxToPt, ax as probeLocalFontFamilies, ay as createInitialEditorState, az as parseFontSizePtToPx, aA as formatFontSizePt, aB as listKindForTag, aC as isParagraphTag, aD as collectInlineRuns, aE as parseParagraphStyle, aF as t, aG as preciseFontModeVersion, aH as isPreciseFontModeEnabled, aI as togglePreciseFontMode, aJ as nextFontSizePt, aK as previousFontSizePt, aL as fontSizePtToPx, aM as createDefaultToolbarPreset, aN as defaultMenuItems, aO as MenuRegistry, aP as createToolbarRegistry, aQ as Editor, aR as resolveCommandRef, aS as commandRefName, aT as InlineShell, aU as BalloonShell, aV as DocumentShell, aW as createMemo, aX as getCaretRectFromSnapshot, aY as getParagraphRectFromSnapshot, aZ as createComponent, a_ as CaretOverlay, a$ as Show, b0 as createRenderEffect, b1 as style, b2 as setAttribute, b3 as setStyleProperty, b4 as memo, b5 as template, b6 as insert, b7 as use, b8 as addEventListener, b9 as Dialog, ba as delegateEvents, bb as className, bc as For, bd as UNDERLINE_STYLE_OPTIONS, be as Tabs, bf as measureParagraphMinContentWidthPx, bg as getEditableBlocksForZone, bh as findParagraphLocation, bi as createSectionBoundaryParagraph, bj as normalizePageSettings, bk as DEFAULT_EDITOR_PAGE_SETTINGS, bl as markStart, bm as markEnd, bn as getParagraphEntries, bo as getParagraphById, bp as PluginUiHost, bq as OasisEditorEditor, br as perfTimer, bs as OasisBrandMark, bt as setPreciseFontPreference, bu as setWelcomeSeen, bv as enablePreciseFontMode, bw as createOasisEditorClient, bx as setLocale, by as startLongTaskObserver, bz as installGlobalReport, bA as applyStoredPreciseFontPreference, bB as getWelcomeSeen, bC as isLocalFontAccessSupported, bD as EDITOR_SCROLL_PADDING_PX, bE as Toolbar, bF as OasisEditorLoading, bG as createEditorLogger, bH as getCachedCanvasImage, bI as registerDomStatsSurface } from "./index-Dqm-2RUA.js";
|
|
5
5
|
function getSelectedObjectRun(state, predicate) {
|
|
6
6
|
const normalized = normalizeSelection(state);
|
|
7
7
|
if (normalized.isCollapsed || normalized.startIndex !== normalized.endIndex || normalized.endParagraphOffset - normalized.startParagraphOffset !== 1) {
|
|
@@ -41177,6 +41177,10 @@ function buildParagraphAndSectionCommands({
|
|
|
41177
41177
|
() => section.toggleOrientation(),
|
|
41178
41178
|
() => ({ isActive: section.isLandscape() })
|
|
41179
41179
|
),
|
|
41180
|
+
setOrientation: actionCommand(
|
|
41181
|
+
"setOrientation",
|
|
41182
|
+
(p) => section.setOrientation(p)
|
|
41183
|
+
),
|
|
41180
41184
|
sectionBreakNextPage: actionCommand(
|
|
41181
41185
|
"sectionBreakNextPage",
|
|
41182
41186
|
() => section.breakNextPage()
|
|
@@ -41589,19 +41593,28 @@ function createEditorEssentialsRuntimePlugin(options) {
|
|
|
41589
41593
|
const section = ((_a = options.state().document.sections) == null ? void 0 : _a[idx]) ?? options.state().document;
|
|
41590
41594
|
return ((_b = section == null ? void 0 : section.pageSettings) == null ? void 0 : _b.orientation) === "landscape";
|
|
41591
41595
|
},
|
|
41592
|
-
|
|
41593
|
-
var _a
|
|
41596
|
+
setOrientation: (orientation) => {
|
|
41597
|
+
var _a;
|
|
41594
41598
|
const idx = getActiveSectionIndex(options.state());
|
|
41595
41599
|
const section = ((_a = options.state().document.sections) == null ? void 0 : _a[idx]) ?? options.state().document;
|
|
41596
41600
|
if (!section) return;
|
|
41597
|
-
const current = ((_b = section.pageSettings) == null ? void 0 : _b.orientation) ?? "portrait";
|
|
41598
41601
|
options.commandsController.applyUpdateSectionSettingsCommand(idx, {
|
|
41599
41602
|
pageSettings: {
|
|
41600
41603
|
...section.pageSettings,
|
|
41601
|
-
orientation
|
|
41604
|
+
orientation
|
|
41602
41605
|
}
|
|
41603
41606
|
});
|
|
41604
41607
|
},
|
|
41608
|
+
toggleOrientation: () => {
|
|
41609
|
+
var _a, _b;
|
|
41610
|
+
const idx = getActiveSectionIndex(options.state());
|
|
41611
|
+
const section = ((_a = options.state().document.sections) == null ? void 0 : _a[idx]) ?? options.state().document;
|
|
41612
|
+
if (!section) return;
|
|
41613
|
+
const current = ((_b = section.pageSettings) == null ? void 0 : _b.orientation) ?? "portrait";
|
|
41614
|
+
essentialsSection.setOrientation(
|
|
41615
|
+
current === "portrait" ? "landscape" : "portrait"
|
|
41616
|
+
);
|
|
41617
|
+
},
|
|
41605
41618
|
breakNextPage: () => options.commandsController.applyInsertSectionBreakCommand("nextPage"),
|
|
41606
41619
|
breakContinuous: () => options.commandsController.applyInsertSectionBreakCommand("continuous"),
|
|
41607
41620
|
setPageMargins: (margins) => {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const OASIS_BUILTIN_COMMANDS: readonly ["selectAll", "insertFootnote", "pastePlainText", "bold", "italic", "underline", "strike", "superscript", "subscript", "link", "unlink", "alignLeft", "alignCenter", "alignRight", "alignJustify", "orderedList", "bulletList", "find", "replace", "toggleTrackChanges", "acceptRevisions", "rejectRevisions", "toggleShowMargins", "toggleShowParagraphMarks", "togglePreciseFonts", "undo", "redo", "pageBreak", "lineBreak", "splitBlock", "setFontFamily", "setFontSize", "increaseFontSize", "decreaseFontSize", "changeTextCase", "clearFormatting", "setColor", "setHighlight", "setTextShading", "setStyleId", "setUnderlineStyle", "documentStyles", "print", "copy", "exportDocx", "exportPdf", "importDocument", "insertImage", "editImageAlt", "insertImageCaption", "outdent", "indent", "togglePageBreakBefore", "toggleKeepWithNext", "setSpacingAfter", "setSpacingBefore", "setIndentLeft", "setIndentRight", "setIndentFirstLine", "setIndentHanging", "setSpecialIndent", "setParagraphShading", "applyParagraphBorders", "setLineHeight", "setListFormat", "setListStartAt", "toggleOrientation", "sectionBreakNextPage", "sectionBreakContinuous", "setPageMargins", "tableContext", "tableMerge", "tableSplit", "tableInsertColumnBefore", "tableInsertColumnAfter", "tableDeleteColumn", "tableInsertRowBefore", "tableInsertRowAfter", "tableDeleteRow", "tableCellShading", "tableCellBorders", "tableCellNoBorders", "tableWidth100", "tableAlignLeft", "tableAlignCenter", "tableAlignRight", "tableSetCellWidth", "insertTable"];
|
|
1
|
+
export declare const OASIS_BUILTIN_COMMANDS: readonly ["selectAll", "insertFootnote", "pastePlainText", "bold", "italic", "underline", "strike", "superscript", "subscript", "link", "unlink", "alignLeft", "alignCenter", "alignRight", "alignJustify", "orderedList", "bulletList", "find", "replace", "toggleTrackChanges", "acceptRevisions", "rejectRevisions", "toggleShowMargins", "toggleShowParagraphMarks", "togglePreciseFonts", "undo", "redo", "pageBreak", "lineBreak", "splitBlock", "setFontFamily", "setFontSize", "increaseFontSize", "decreaseFontSize", "changeTextCase", "clearFormatting", "setColor", "setHighlight", "setTextShading", "setStyleId", "setUnderlineStyle", "documentStyles", "print", "copy", "exportDocx", "exportPdf", "importDocument", "insertImage", "editImageAlt", "insertImageCaption", "outdent", "indent", "togglePageBreakBefore", "toggleKeepWithNext", "setSpacingAfter", "setSpacingBefore", "setIndentLeft", "setIndentRight", "setIndentFirstLine", "setIndentHanging", "setSpecialIndent", "setParagraphShading", "applyParagraphBorders", "setLineHeight", "setListFormat", "setListStartAt", "toggleOrientation", "setOrientation", "sectionBreakNextPage", "sectionBreakContinuous", "setPageMargins", "tableContext", "tableMerge", "tableSplit", "tableInsertColumnBefore", "tableInsertColumnAfter", "tableDeleteColumn", "tableInsertRowBefore", "tableInsertRowAfter", "tableDeleteRow", "tableCellShading", "tableCellBorders", "tableCellNoBorders", "tableWidth100", "tableAlignLeft", "tableAlignCenter", "tableAlignRight", "tableSetCellWidth", "insertTable"];
|
|
2
2
|
export type OasisBuiltinCommand = (typeof OASIS_BUILTIN_COMMANDS)[number];
|
|
@@ -83,6 +83,7 @@ export interface OasisCommandPayloads {
|
|
|
83
83
|
setListFormat: string;
|
|
84
84
|
setListStartAt: number | null;
|
|
85
85
|
toggleOrientation: undefined;
|
|
86
|
+
setOrientation: "portrait" | "landscape";
|
|
86
87
|
sectionBreakNextPage: undefined;
|
|
87
88
|
sectionBreakContinuous: undefined;
|
|
88
89
|
setPageMargins: SetPageMarginsPayload;
|
|
@@ -142,6 +142,9 @@ export declare const en: {
|
|
|
142
142
|
"paragraph.preview": string;
|
|
143
143
|
"paragraph.previewText": string;
|
|
144
144
|
"section.orient": string;
|
|
145
|
+
"section.orientation": string;
|
|
146
|
+
"section.portrait": string;
|
|
147
|
+
"section.landscape": string;
|
|
145
148
|
"section.pageSetup": string;
|
|
146
149
|
"section.toggleOrientation": string;
|
|
147
150
|
"section.margins": string;
|
|
@@ -356,6 +359,7 @@ export declare const en: {
|
|
|
356
359
|
"menu.view.outline": string;
|
|
357
360
|
"menu.view.fullscreen": string;
|
|
358
361
|
"menu.insert": string;
|
|
362
|
+
"menu.layout": string;
|
|
359
363
|
"menu.format": string;
|
|
360
364
|
"menu.format.align": string;
|
|
361
365
|
"menu.format.text": string;
|
|
@@ -142,6 +142,9 @@ export declare const ptBR: {
|
|
|
142
142
|
"paragraph.preview": string;
|
|
143
143
|
"paragraph.previewText": string;
|
|
144
144
|
"section.orient": string;
|
|
145
|
+
"section.orientation": string;
|
|
146
|
+
"section.portrait": string;
|
|
147
|
+
"section.landscape": string;
|
|
145
148
|
"section.pageSetup": string;
|
|
146
149
|
"section.toggleOrientation": string;
|
|
147
150
|
"section.margins": string;
|
|
@@ -356,6 +359,7 @@ export declare const ptBR: {
|
|
|
356
359
|
"menu.view.outline": string;
|
|
357
360
|
"menu.view.fullscreen": string;
|
|
358
361
|
"menu.insert": string;
|
|
362
|
+
"menu.layout": string;
|
|
359
363
|
"menu.format": string;
|
|
360
364
|
"menu.format.align": string;
|
|
361
365
|
"menu.format.text": string;
|
|
@@ -1562,6 +1562,9 @@ const en = {
|
|
|
1562
1562
|
"paragraph.previewText": "The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.",
|
|
1563
1563
|
// Section
|
|
1564
1564
|
"section.orient": "Orient",
|
|
1565
|
+
"section.orientation": "Orientation",
|
|
1566
|
+
"section.portrait": "Portrait",
|
|
1567
|
+
"section.landscape": "Landscape",
|
|
1565
1568
|
"section.pageSetup": "Page Setup",
|
|
1566
1569
|
"section.toggleOrientation": "Toggle Orientation",
|
|
1567
1570
|
"section.margins": "Margins",
|
|
@@ -1784,6 +1787,7 @@ const en = {
|
|
|
1784
1787
|
"menu.view.outline": "Show Outline",
|
|
1785
1788
|
"menu.view.fullscreen": "Full Screen",
|
|
1786
1789
|
"menu.insert": "Insert",
|
|
1790
|
+
"menu.layout": "Layout",
|
|
1787
1791
|
"menu.format": "Format",
|
|
1788
1792
|
"menu.format.align": "Align",
|
|
1789
1793
|
"menu.format.text": "Text",
|
|
@@ -1958,6 +1962,9 @@ const ptBR = {
|
|
|
1958
1962
|
"paragraph.previewText": "Texto de Exemplo Texto de Exemplo Texto de Exemplo Texto de Exemplo Texto de Exemplo Texto de Exemplo.",
|
|
1959
1963
|
// Section
|
|
1960
1964
|
"section.orient": "Orient",
|
|
1965
|
+
"section.orientation": "Orientação",
|
|
1966
|
+
"section.portrait": "Retrato",
|
|
1967
|
+
"section.landscape": "Paisagem",
|
|
1961
1968
|
"section.pageSetup": "Configurações de Página",
|
|
1962
1969
|
"section.toggleOrientation": "Alternar Orientação",
|
|
1963
1970
|
"section.margins": "Margens",
|
|
@@ -2180,6 +2187,7 @@ const ptBR = {
|
|
|
2180
2187
|
"menu.view.outline": "Mostrar Estrutura",
|
|
2181
2188
|
"menu.view.fullscreen": "Tela Inteira",
|
|
2182
2189
|
"menu.insert": "Inserir",
|
|
2190
|
+
"menu.layout": "Layout",
|
|
2183
2191
|
"menu.format": "Formatar",
|
|
2184
2192
|
"menu.format.align": "Alinhar",
|
|
2185
2193
|
"menu.format.text": "Texto",
|
|
@@ -2318,7 +2326,7 @@ function OasisEditorAppLazy(props = {}) {
|
|
|
2318
2326
|
onCleanup(() => {
|
|
2319
2327
|
cancelled = true;
|
|
2320
2328
|
});
|
|
2321
|
-
import("./OasisEditorApp-
|
|
2329
|
+
import("./OasisEditorApp-C8YG4Yzr.js").then((m) => {
|
|
2322
2330
|
cancelled = true;
|
|
2323
2331
|
setProgress(1);
|
|
2324
2332
|
setTimeout(() => setApp(() => m.OasisEditorApp), 180);
|
|
@@ -4292,6 +4300,7 @@ const OASIS_BUILTIN_COMMANDS = [
|
|
|
4292
4300
|
"setListFormat",
|
|
4293
4301
|
"setListStartAt",
|
|
4294
4302
|
"toggleOrientation",
|
|
4303
|
+
"setOrientation",
|
|
4295
4304
|
"sectionBreakNextPage",
|
|
4296
4305
|
"sectionBreakContinuous",
|
|
4297
4306
|
"setPageMargins",
|
|
@@ -4678,6 +4687,27 @@ const defaultMenuItems = [
|
|
|
4678
4687
|
icon: "list-ordered"
|
|
4679
4688
|
},
|
|
4680
4689
|
{ id: "format_clear", path: "Format/Clear formatting", hidden: true },
|
|
4690
|
+
// Layout
|
|
4691
|
+
{
|
|
4692
|
+
id: "layout_orientation",
|
|
4693
|
+
path: "Layout/Orientation",
|
|
4694
|
+
labelKey: "section.orientation",
|
|
4695
|
+
icon: "layout"
|
|
4696
|
+
},
|
|
4697
|
+
{
|
|
4698
|
+
id: "layout_orientation_portrait",
|
|
4699
|
+
path: "Layout/Orientation/Portrait",
|
|
4700
|
+
labelKey: "section.portrait",
|
|
4701
|
+
command: { name: "setOrientation", payload: "portrait" },
|
|
4702
|
+
icon: (host) => host.commands.state("toggleOrientation").isActive ? "" : "check"
|
|
4703
|
+
},
|
|
4704
|
+
{
|
|
4705
|
+
id: "layout_orientation_landscape",
|
|
4706
|
+
path: "Layout/Orientation/Landscape",
|
|
4707
|
+
labelKey: "section.landscape",
|
|
4708
|
+
command: { name: "setOrientation", payload: "landscape" },
|
|
4709
|
+
icon: (host) => host.commands.state("toggleOrientation").isActive ? "check" : ""
|
|
4710
|
+
},
|
|
4681
4711
|
// Tools
|
|
4682
4712
|
{
|
|
4683
4713
|
id: "tools_wordcount",
|
|
@@ -19902,6 +19932,7 @@ function getToolbarStyleState(state) {
|
|
|
19902
19932
|
};
|
|
19903
19933
|
}
|
|
19904
19934
|
const EDITOR_SCROLL_PADDING_PX = 34;
|
|
19935
|
+
const EDITOR_SCROLLBAR_RESERVE_PX = 10;
|
|
19905
19936
|
const PX_PER_INCH$2 = 96;
|
|
19906
19937
|
const PX_PER_CM = PX_PER_INCH$2 / 2.54;
|
|
19907
19938
|
const MIN_CONTENT_WIDTH_PX = 24;
|
|
@@ -34741,6 +34772,7 @@ function OasisEditorEditor(props) {
|
|
|
34741
34772
|
let viewportElement;
|
|
34742
34773
|
const [viewportRef, setViewportRef] = createSignal();
|
|
34743
34774
|
const pageSettings = () => getDocumentPageSettings(props.state().document);
|
|
34775
|
+
const widestPageWidth = () => getDocumentSections(props.state().document).reduce((max, section) => Math.max(max, section.pageSettings.width), 0) || pageSettings().width;
|
|
34744
34776
|
const viewportHeight = () => {
|
|
34745
34777
|
const rawViewportHeight = layout().viewportHeight;
|
|
34746
34778
|
if (typeof rawViewportHeight === "number") {
|
|
@@ -34749,7 +34781,13 @@ function OasisEditorEditor(props) {
|
|
|
34749
34781
|
return rawViewportHeight ?? "min(72vh, 920px)";
|
|
34750
34782
|
};
|
|
34751
34783
|
const shellStyle = createMemo(() => ({
|
|
34752
|
-
|
|
34784
|
+
// pageWidth + both horizontal gutters + the reserved vertical-scrollbar
|
|
34785
|
+
// gutter. The paper is width:100% of the scroll content and
|
|
34786
|
+
// `.oasis-editor-editor` reserves the scrollbar via `scrollbar-gutter:
|
|
34787
|
+
// stable`, so this keeps the paper exactly `pageWidth` while leaving room for
|
|
34788
|
+
// the scrollbar — preventing a spurious horizontal scrollbar (notably in
|
|
34789
|
+
// landscape) and letting the editor area grow to fit a wider page.
|
|
34790
|
+
width: `min(${widestPageWidth() + EDITOR_SCROLL_PADDING_PX * 2 + EDITOR_SCROLLBAR_RESERVE_PX}px, 100%)`,
|
|
34753
34791
|
height: "100%",
|
|
34754
34792
|
"max-height": viewportHeight(),
|
|
34755
34793
|
...layout().style ?? {}
|
|
@@ -37218,16 +37256,33 @@ function SectionGroup(props) {
|
|
|
37218
37256
|
return [(() => {
|
|
37219
37257
|
var _el$ = _tmpl$();
|
|
37220
37258
|
insert(_el$, createComponent(Button$1, {
|
|
37221
|
-
icon: "
|
|
37259
|
+
icon: "rectangle-vertical",
|
|
37260
|
+
get active() {
|
|
37261
|
+
return !api.commands.state("toggleOrientation").isActive;
|
|
37262
|
+
},
|
|
37263
|
+
"data-testid": "editor-toolbar-orientation-portrait",
|
|
37264
|
+
onClick: () => api.commands.execute({
|
|
37265
|
+
name: "setOrientation",
|
|
37266
|
+
payload: "portrait"
|
|
37267
|
+
}),
|
|
37268
|
+
get tooltip() {
|
|
37269
|
+
return t("section.portrait");
|
|
37270
|
+
}
|
|
37271
|
+
}), null);
|
|
37272
|
+
insert(_el$, createComponent(Button$1, {
|
|
37273
|
+
icon: "rectangle-horizontal",
|
|
37222
37274
|
get active() {
|
|
37223
37275
|
return api.commands.state("toggleOrientation").isActive;
|
|
37224
37276
|
},
|
|
37225
|
-
"data-testid": "editor-toolbar-orientation",
|
|
37226
|
-
onClick: () => api.commands.execute(
|
|
37277
|
+
"data-testid": "editor-toolbar-orientation-landscape",
|
|
37278
|
+
onClick: () => api.commands.execute({
|
|
37279
|
+
name: "setOrientation",
|
|
37280
|
+
payload: "landscape"
|
|
37281
|
+
}),
|
|
37227
37282
|
get tooltip() {
|
|
37228
|
-
return t("section.
|
|
37283
|
+
return t("section.landscape");
|
|
37229
37284
|
}
|
|
37230
|
-
}));
|
|
37285
|
+
}), null);
|
|
37231
37286
|
return _el$;
|
|
37232
37287
|
})(), (() => {
|
|
37233
37288
|
var _el$2 = _tmpl$();
|
package/dist/oasis-editor.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root,.oasis-editor{--oasis-bg: #f6f8fb;--oasis-paper: #ffffff;--oasis-paper-shadow: 0 1px 3px rgba(60, 64, 67, .15), 0 4px 8px rgba(60, 64, 67, .07);--oasis-toolbar-bg: rgba(255, 255, 255, .85);--oasis-toolbar-border: rgba(148, 163, 184, .22);--oasis-toolbar-shadow: 0 4px 12px rgba(15, 23, 42, .04), 0 1px 0 rgba(255, 255, 255, .6) inset;--oasis-text: #202124;--oasis-text-muted: #5f6368;--oasis-accent: #1a73e8;--oasis-accent-soft: #e8f0fe;--oasis-accent-active: #c2e7ff;--oasis-accent-active-text: #001d35;--oasis-radius: 8px;--oasis-radius-lg: 14px;--oasis-radius-xl: 28px;--oasis-font-ui: "Inter", system-ui, -apple-system, sans-serif;--oasis-font-doc: "Source Serif Pro", Georgia, serif;--oasis-border-color: rgba(148, 163, 184, .22);--oasis-border-color-muted: rgba(148, 163, 184, .15);--oasis-hover-bg: rgba(226, 232, 240, .8);--oasis-active-bg: #e2e8f0;--oasis-selection-bg: rgba(37, 99, 235, .22);--oasis-caret-color: #2563eb;--oasis-comment-bg: rgba(245, 158, 11, .28);--oasis-comment-bg-active: rgba(245, 158, 11, .48);--oasis-comment-underline: rgba(217, 119, 6, .7);--oasis-success: #15803d;--oasis-warning: #a16207;--oasis-danger: #b91c1c;--oasis-revision-insert: #059669;--oasis-revision-delete: #dc2626;--oasis-chrome-height: 64px;--oasis-menu-height: 28px;--oasis-docs-surface: #edf2f7;--oasis-menu-shadow: 0 8px 24px rgba(60, 64, 67, .18);--oasis-focus-ring: 0 0 0 2px rgba(26, 115, 232, .22)}.oasis-editor-app{position:relative;display:grid;grid-template-rows:auto auto 1fr;width:100%;height:100%;padding:28px 24px 32px;box-sizing:border-box;gap:20px;font-family:var(--oasis-font-ui);color:var(--oasis-text);background-color:var(--oasis-bg);--oasis-editor-gutter-top: 34px;--oasis-editor-gutter-bottom: 34px}.oasis-editor-header{width:min(860px,100%);margin:0 auto}.oasis-editor-eyebrow{margin:0 0 10px;font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--oasis-accent)}.oasis-editor-title{margin:0;font-size:clamp(34px,5vw,54px);line-height:.95;letter-spacing:-.05em}.oasis-editor-copy{margin:14px 0 0;max-width:68ch;font-size:16px;line-height:1.6;color:var(--oasis-text-muted)}.oasis-editor-shell{display:flex;flex-direction:column;height:100%;gap:16px}.oasis-editor-main-container{display:flex;flex:1;min-height:0;gap:16px;width:min(1160px,100%);margin:0 auto;align-items:stretch}.oasis-editor-stage{flex:1;min-width:0;min-height:0;display:flex;justify-content:center}.oasis-editor-editor-shell{position:relative;display:flex;flex-direction:column;width:min(860px,100%);min-height:0;max-height:100%;border-radius:var(--oasis-radius-xl);background:#ffffffb8;border:1px solid var(--oasis-border-color);box-shadow:0 26px 80px #0f172a1f,0 4px 14px #0f172a0d;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overflow:hidden}.oasis-editor-editor{position:relative;flex:1 1 auto;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(95,99,104,.42) transparent}.oasis-editor-editor::-webkit-scrollbar{width:10px;height:10px}.oasis-editor-editor::-webkit-scrollbar-track{background:transparent}.oasis-editor-editor::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:#5f63685c;background-clip:content-box}.oasis-editor-editor::-webkit-scrollbar-thumb:hover{background:#5f636880;background-clip:content-box}.oasis-editor-statusbar{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:6px 16px;font-size:12px;color:var(--oasis-text-muted);background:#f8fafcd9;border-top:1px solid var(--oasis-border-color)}.oasis-editor-statusbar-item{white-space:nowrap;font-variant-numeric:tabular-nums}.oasis-editor-persistence-status{padding:2px 6px;border-radius:4px;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.oasis-editor-status-saved{color:var(--oasis-success)}.oasis-editor-status-saving{color:var(--oasis-warning)}.oasis-editor-status-error{color:var(--oasis-danger)}.oasis-editor-editor-scroll-content{position:relative;min-height:100%;padding:var(--oasis-editor-gutter-top) var(--oasis-editor-gutter-x) var(--oasis-editor-gutter-bottom);box-sizing:border-box;cursor:text}.oasis-editor-import-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:24px;background:#f8fafccc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.oasis-editor-import-card{width:min(360px,100%);padding:22px 24px;border:1px solid rgba(148,163,184,.3);border-radius:18px;background:#fffffff2;box-shadow:0 18px 48px #0f172a29}.oasis-editor-import-title{font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--oasis-text)}.oasis-editor-import-phase{margin-top:8px;font-size:12px;color:var(--oasis-text-muted)}.oasis-editor-import-progress-track{width:100%;height:8px;margin-top:16px;overflow:hidden;border-radius:999px;background:#cbd5e18c}.oasis-editor-import-progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#0f766e);position:relative;overflow:hidden}.oasis-editor-import-progress-bar-indeterminate{background:linear-gradient(90deg,#2563eb,#3b82f6,#2563eb);background-size:200% 100%;animation:oasis-indeterminate 1.2s ease-in-out infinite}@keyframes oasis-indeterminate{0%{background-position:200% 0}to{background-position:-200% 0}}.oasis-editor-import-progress-bar-done{background:linear-gradient(90deg,#059669,#10b981)}.oasis-editor-import-progress-bar-error{background:linear-gradient(90deg,#dc2626,#ef4444)}.oasis-editor-import-overlay-done{background:#f8fafcd9}.oasis-editor-import-overlay-error{background:#fef2f2d9}.oasis-editor-import-progress-label{margin-top:10px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--oasis-text-muted);text-align:right}.oasis-editor-import-done-icon{display:inline-flex;align-items:center;gap:4px;color:#059669;font-weight:600}.oasis-editor-import-done-icon:before{content:"";display:inline-block;width:14px;height:14px;border-radius:50%;background:#059669;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center / contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center / contain no-repeat;animation:oasis-pop .3s cubic-bezier(.34,1.56,.64,1)}.oasis-editor-import-error-icon{display:inline-flex;align-items:center;gap:4px;color:#dc2626;font-weight:600}.oasis-editor-import-error-icon:before{content:"";display:inline-block;width:14px;height:14px;border-radius:50%;background:#dc2626;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z'/%3E%3C/svg%3E") center / contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z'/%3E%3C/svg%3E") center / contain no-repeat}@keyframes oasis-pop{0%{transform:scale(0)}to{transform:scale(1)}}.oasis-editor-loading{display:grid;place-items:center;align-content:center;gap:16px;background:var(--oasis-bg)}.oasis-editor-loading .oasis-editor-import-card,.oasis-editor-import-overlay .oasis-editor-import-card{text-align:center}.oasis-editor-loading-mark{display:block;margin:0 auto 12px}.oasis-editor-loading--overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1000}.oasis-editor-loading--fill{position:relative;width:100%;height:100%;min-height:240px}.oasis-editor-welcome-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1001;display:grid;place-items:center;padding:24px;background:#0f172a52;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.oasis-editor-welcome-card{width:min(420px,100%);padding:28px 28px 24px;border:1px solid rgba(148,163,184,.3);border-radius:18px;background:#fffffffa;box-shadow:0 18px 48px #0f172a3d;text-align:center;animation:oasis-pop .22s cubic-bezier(.34,1.36,.64,1)}.oasis-editor-welcome-mark{display:block;margin:0 auto 14px;border-radius:16px}.oasis-editor-welcome-title{margin:0 0 10px;font-size:18px;font-weight:700;color:var(--oasis-text)}.oasis-editor-welcome-body{margin:0 0 12px;font-size:13px;line-height:1.5;color:var(--oasis-text)}.oasis-editor-welcome-note{margin:0 0 20px;font-size:12px;line-height:1.45;color:var(--oasis-text-muted)}.oasis-editor-welcome-actions{display:flex;justify-content:center;gap:10px}@keyframes oasis-editor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.oasis-editor-toolbar{display:flex;align-items:center;gap:8px;width:min(1160px,100%);margin:0 auto;padding:8px 10px;border-radius:var(--oasis-radius-lg);background:var(--oasis-toolbar-bg);border:1px solid var(--oasis-toolbar-border);box-shadow:var(--oasis-toolbar-shadow);min-height:48px;flex-wrap:nowrap;overflow:visible}.oasis-editor-toolbar-view-ribbon{display:block;width:100%;height:118px;min-height:118px;margin:0;padding:0;box-sizing:border-box;border-radius:0;background:#f4f4f4;border:0;border-bottom:1px solid #cfcfcf;box-shadow:none;overflow:hidden}.oasis-editor-toolbar-wrap-strip{display:flex;align-items:center;gap:8px;width:100%;min-width:0;flex:1 1 100%;flex-wrap:wrap;overflow:visible}.oasis-editor-toolbar-group{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;padding:2px;border-radius:10px;background:#f1f5f98c;border:1px solid var(--oasis-border-color-muted)}.oasis-editor-table-actions-advanced{display:flex;align-items:center;gap:6px}.oasis-editor-table-actions-summary{list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none;height:30px;display:inline-flex;align-items:center;padding:0 10px;border-radius:var(--oasis-radius);border:1px solid transparent;background:transparent;color:var(--oasis-text-muted);font-size:12px;font-weight:600;letter-spacing:.01em;transition:background .15s ease,color .15s ease,border-color .15s ease}.oasis-editor-table-actions-summary:hover{background:var(--oasis-hover-bg);color:var(--oasis-text)}.oasis-editor-table-actions-advanced[open] .oasis-editor-table-actions-summary{background:var(--oasis-active-bg);border-color:#94a3b852;color:var(--oasis-text)}.oasis-editor-table-actions-group{padding-top:2px}.oasis-editor-tool-button,.oasis-editor-tool-select,.oasis-editor-tool-color{border:1px solid transparent;background:transparent;color:var(--oasis-text);transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.oasis-editor-tool-button{min-width:30px;height:30px;padding:0 10px;border-radius:var(--oasis-radius);font:inherit;font-size:13px;font-weight:600;cursor:pointer;letter-spacing:.01em}.oasis-editor-tool-button:hover,.oasis-editor-tool-select:hover,.oasis-editor-tool-color:hover{background:var(--oasis-hover-bg);border-color:#94a3b847}.oasis-editor-tool-button:focus-visible,.oasis-editor-tool-select:focus-visible,.oasis-editor-tool-color:focus-visible{outline:none;border-color:#2563eb8c;box-shadow:0 0 0 2px #2563eb2e}.oasis-editor-tool-button-wide{min-width:64px}.oasis-editor-tool-button-active{background:var(--oasis-accent-active);border-color:#2563eb66;color:var(--oasis-accent-active-text);box-shadow:inset 0 1px #fff9}.oasis-editor-tool-button-active:hover{background:var(--oasis-accent-soft);border-color:#2563eb8c}.oasis-editor-tool-button:disabled,.oasis-editor-tool-select:disabled,.oasis-editor-tool-color:has(input:disabled){opacity:.45;cursor:not-allowed}.oasis-editor-tool-select{height:30px;padding:0 8px;border-radius:var(--oasis-radius);border:1px solid rgba(148,163,184,.3);background:#ffffffb3;font:inherit;font-size:13px;color:var(--oasis-text)}.oasis-editor-tool-select-small{min-width:64px}.oasis-editor-tool-color{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 8px;border-radius:var(--oasis-radius);border:1px solid rgba(148,163,184,.3);background:#ffffffb3;font-size:12px;font-weight:600}.oasis-editor-tool-metric{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 8px;border-radius:var(--oasis-radius);border:1px solid rgba(148,163,184,.3);background:#ffffffb3;font-size:12px;font-weight:600;color:var(--oasis-text-muted)}.oasis-editor-tool-metric:focus-within{border-color:#2563eb8c;box-shadow:0 0 0 2px #2563eb2e}.oasis-editor-toolbar-badge{display:inline-flex;align-items:center;height:30px;padding:0 10px;border-radius:999px;border:1px solid rgba(37,99,235,.22);background:#dbeafed9;color:var(--oasis-accent);font-size:12px;font-weight:700;white-space:nowrap}.oasis-editor-toolbar-note{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;border:1px solid rgba(124,58,237,.18);background:#7c3aed0f;color:var(--oasis-text-muted);font-size:11px;font-weight:600;white-space:nowrap}.oasis-editor-tool-number{width:48px;padding:0;border:0;outline:none;background:transparent;color:var(--oasis-text);font:inherit;font-size:12px;font-weight:600}.oasis-editor-tool-color-input{width:18px;height:18px;padding:0;border:0;border-radius:4px;background:transparent;cursor:pointer}.oasis-editor-toolbar-more-measure{position:absolute;top:0;right:0;visibility:hidden;pointer-events:none}.oasis-editor-toolbar-overflow-menu .oasis-editor-toolbar-group{flex-direction:row;flex-wrap:wrap;align-items:center;border:0;background:transparent}.oasis-editor-toolbar-overflow-dropdown-menu{width:min(360px,calc(100vw - 16px));max-height:min(520px,calc(100vh - 88px));overflow:auto}.oasis-editor-toolbar-overflow-menu .oasis-editor-toolbar-separator{width:100%;height:1px;margin:2px 0;background:var(--oasis-border-color-muted)}.oasis-editor-ui-button,.oasis-editor-ui-icon-button,.oasis-editor-ui-input,.oasis-editor-ui-select{font:inherit;color:var(--oasis-text)}.oasis-editor-ui-button,.oasis-editor-ui-icon-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:var(--oasis-radius);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.oasis-editor-ui-button-sm,.oasis-editor-ui-icon-button-sm{min-height:28px;padding:0 10px;font-size:12px}.oasis-editor-ui-button-md{min-height:34px;padding:0 14px;font-size:13px}.oasis-editor-ui-icon-button-md{width:34px;height:34px;padding:0}.oasis-editor-ui-button-full{width:100%}.oasis-editor-ui-button-primary{background:var(--oasis-accent);color:#fff}.oasis-editor-ui-button-secondary,.oasis-editor-ui-icon-button-secondary{border-color:var(--oasis-border-color);background:var(--oasis-paper)}.oasis-editor-ui-button-ghost,.oasis-editor-ui-icon-button-ghost{background:transparent}.oasis-editor-ui-button-danger{background:var(--oasis-danger);color:#fff}.oasis-editor-ui-button:hover:not(:disabled),.oasis-editor-ui-icon-button:hover:not(:disabled){background:var(--oasis-hover-bg);border-color:#94a3b852}.oasis-editor-ui-button-primary:hover:not(:disabled){background:#1557b0;border-color:transparent}.oasis-editor-ui-button-danger:hover:not(:disabled){background:#991b1b;border-color:transparent}.oasis-editor-ui-button:focus-visible,.oasis-editor-ui-icon-button:focus-visible,.oasis-editor-ui-input:focus-visible,.oasis-editor-ui-select:focus-visible,.oasis-editor-ui-checkbox-input:focus-visible{outline:none;box-shadow:var(--oasis-focus-ring)}.oasis-editor-ui-button:disabled,.oasis-editor-ui-icon-button:disabled,.oasis-editor-ui-input:disabled,.oasis-editor-ui-select:disabled,.oasis-editor-ui-checkbox-input:disabled{opacity:.5;cursor:not-allowed}.oasis-editor-ui-icon-button.is-active{background:var(--oasis-accent-active);color:var(--oasis-accent-active-text)}.oasis-editor-ui-field{display:flex;min-width:0;flex-direction:column;gap:4px}.oasis-editor-ui-field-label{font-size:12px;font-weight:600;color:var(--oasis-text)}.oasis-editor-ui-field-description{font-size:12px;line-height:1.35;color:var(--oasis-text-muted)}.oasis-editor-ui-field-error{font-size:12px;line-height:1.35;color:var(--oasis-danger)}.oasis-editor-ui-input,.oasis-editor-ui-select{min-height:34px;min-width:0;border:1px solid rgba(148,163,184,.4);border-radius:var(--oasis-radius);background:var(--oasis-paper);padding:0 10px;font-size:13px}.oasis-editor-ui-input[aria-invalid=true],.oasis-editor-ui-select[aria-invalid=true]{border-color:#b91c1ca6}.oasis-editor-ui-checkbox{display:inline-flex;align-items:flex-start;gap:8px;min-width:0;color:var(--oasis-text)}.oasis-editor-ui-checkbox-input{width:16px;height:16px;margin:2px 0 0;accent-color:var(--oasis-accent)}.oasis-editor-ui-checkbox-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.oasis-editor-ui-dialog-footer{display:flex;flex-wrap:wrap;gap:8px;width:100%}.oasis-editor-ui-dialog-footer-start{justify-content:flex-start}.oasis-editor-ui-dialog-footer-end{justify-content:flex-end}.oasis-editor-ui-dialog-footer-between{justify-content:space-between}.oasis-editor-plugin-ui-host{position:relative;display:flex;min-width:0;min-height:0;flex:1 1 auto}.oasis-editor-plugin-ui-main{display:flex;min-width:0;min-height:0;flex:1 1 auto}.oasis-editor-plugin-ui-main>.oasis-editor-main-container{flex:1 1 auto}.oasis-editor-plugin-side-panel{display:flex;width:var(--oasis-plugin-side-panel-width, 360px);min-width:min(var(--oasis-plugin-side-panel-width, 360px),100%);max-width:min(var(--oasis-plugin-side-panel-width, 360px),100%);min-height:0;flex:0 0 var(--oasis-plugin-side-panel-width, 360px);flex-direction:column;border-left:1px solid var(--oasis-border-color);background:var(--oasis-surface, var(--oasis-paper));color:var(--oasis-text);box-shadow:-8px 0 24px #0f172a1f;z-index:30}.oasis-editor-plugin-side-panel-overlay{position:absolute;inset:0 0 0 auto;display:flex;justify-content:flex-end;pointer-events:none;z-index:40}.oasis-editor-plugin-side-panel-overlay .oasis-editor-plugin-side-panel{pointer-events:auto;height:100%}.oasis-editor-plugin-side-panel-header,.oasis-editor-plugin-side-panel-footer{display:flex;align-items:center;gap:8px;padding:12px;border-bottom:1px solid var(--oasis-border-color)}.oasis-editor-plugin-side-panel-footer{border-top:1px solid var(--oasis-border-color);border-bottom:0}.oasis-editor-plugin-side-panel-title{display:inline-flex;min-width:0;flex:1 1 auto;align-items:center;gap:8px;font-size:14px;font-weight:700}.oasis-editor-plugin-side-panel-title span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oasis-editor-plugin-side-panel-body{min-height:0;flex:1 1 auto;overflow:auto;padding:12px}.oasis-editor-plugin-floating-actions{position:absolute;display:flex;gap:8px;z-index:45}.oasis-editor-plugin-floating-actions-viewport{position:fixed}.oasis-editor-plugin-floating-actions-bottom-right{right:18px;bottom:18px}.oasis-editor-plugin-floating-actions-bottom-left{bottom:18px;left:18px}.oasis-editor-plugin-floating-actions-top-right{top:18px;right:18px}.oasis-editor-plugin-floating-actions-top-left{top:18px;left:18px}.oasis-editor-plugin-floating-action{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.36);border-radius:999px;background:var(--oasis-accent);color:#fff;box-shadow:0 12px 30px #0f172a3d;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}.oasis-editor-plugin-floating-action:hover:not(:disabled){background:#1557b0;transform:translateY(-1px)}.oasis-editor-plugin-floating-action:focus-visible{outline:none;box-shadow:var(--oasis-focus-ring),0 12px 30px #0f172a3d}.oasis-editor-plugin-floating-action:disabled{opacity:.5;cursor:not-allowed}.oasis-editor-paper{position:relative;width:100%;min-height:100%;border-radius:20px;background:var(--oasis-paper);cursor:text;box-shadow:inset 0 0 0 1px var(--oasis-border-color-muted),var(--oasis-paper-shadow)}.oasis-editor-paper-stack{display:grid;gap:24px;justify-items:center}.oasis-editor-page-virtual-placeholder{width:100%;height:100%;min-height:100%;pointer-events:none}.oasis-editor-paper-dimmed-main .oasis-editor-surface{opacity:.3}.oasis-editor-surface{position:relative;min-height:100%;box-sizing:border-box;cursor:text;z-index:1}.oasis-editor-page-header-zone,.oasis-editor-page-footer-zone{position:absolute;box-sizing:border-box;z-index:2;transition:opacity .2s ease-in-out}.oasis-editor-zone-dimmed{opacity:.3}.oasis-editor-zone-active{opacity:1;z-index:3}.oasis-editor-page-header-guide,.oasis-editor-page-footer-guide{position:absolute;left:0;right:0;border-top:1px dashed rgba(148,163,184,.35)}.oasis-editor-page-footer-guide{border-top:0;border-bottom:1px dashed rgba(148,163,184,.35)}.oasis-editor-block{margin:0;letter-spacing:.002em;white-space:pre-wrap;word-break:break-word}.oasis-editor-block-list{display:flex;align-items:flex-start;--list-level: 0}.oasis-editor-block-list[data-list-align=center]{justify-content:center}.oasis-editor-block-list[data-list-align=right]{justify-content:flex-end}.oasis-editor-list-item{display:flex;align-items:flex-start;gap:14px;width:100%;max-width:100%}.oasis-editor-block-list[data-list-align=center] .oasis-editor-list-item,.oasis-editor-block-list[data-list-align=right] .oasis-editor-list-item{width:fit-content}.oasis-editor-list-content{flex:1 1 auto;min-width:0}.oasis-editor-link{color:inherit;text-decoration:inherit}.oasis-editor-revision-insert{color:var(--oasis-revision-insert);text-decoration:underline;text-decoration-thickness:1px}.oasis-editor-revision-delete{color:var(--oasis-revision-delete);text-decoration:line-through;text-decoration-thickness:1px}.oasis-editor-revision-overlay{position:absolute;z-index:1000;pointer-events:none;filter:drop-shadow(0 4px 6px -1px rgb(0 0 0 / .1))}.oasis-editor-revision-overlay-content{background:var(--oasis-paper);border:1px solid var(--oasis-border-color);border-radius:6px;padding:8px 12px;display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--oasis-text);white-space:nowrap}.oasis-editor-revision-overlay-author{font-weight:500}.oasis-editor-revision-overlay-date{color:var(--oasis-text-muted);font-size:11px}.oasis-editor-revision-overlay-arrow{position:absolute;bottom:-6px;left:12px;width:12px;height:12px;background:var(--oasis-paper);border-right:1px solid var(--oasis-border-color);border-bottom:1px solid var(--oasis-border-color);transform:rotate(45deg)}.oasis-editor-image-char{display:inline-block}.oasis-editor-tab-char{display:inline-block;-webkit-user-select:none;user-select:none}.oasis-editor-image-inline{position:relative;display:inline-block;vertical-align:bottom}.oasis-editor-image-inline-selected{z-index:2}.oasis-editor-image{display:inline-block;max-width:100%;height:auto;vertical-align:bottom;border-radius:4px;box-sizing:border-box}.oasis-editor-image-selected{outline:2px solid rgba(37,99,235,.9);outline-offset:2px;box-shadow:0 0 0 4px #2563eb2e}.oasis-editor-selection-overlay{position:absolute;box-sizing:border-box;border:2px solid rgba(37,99,235,.9);box-shadow:0 0 0 4px #2563eb2e;border-radius:2px;z-index:3;pointer-events:auto}.oasis-editor-selection-overlay-root{pointer-events:none}.oasis-editor-image-selection-overlay{cursor:grab}.oasis-editor-image-selection-overlay:active{cursor:grabbing}.oasis-editor-caret{position:absolute;width:0;height:1em;border-left:2px solid transparent;pointer-events:none;z-index:3}.oasis-editor-caret-active{border-left-color:var(--oasis-caret-color);animation:oasis-editor-blink 1.05s steps(1) infinite}.oasis-editor-selection-box{position:absolute;pointer-events:none;z-index:1;background:var(--oasis-selection-bg);border-radius:0}.oasis-editor-comment-overlay-root{pointer-events:none}.oasis-editor-comment-highlight{position:absolute;pointer-events:auto;cursor:pointer;z-index:1;background:var(--oasis-comment-bg);border-bottom:1px solid var(--oasis-comment-underline)}.oasis-editor-comment-highlight-active{background:var(--oasis-comment-bg-active)}.oasis-editor-comment-popup{position:absolute;z-index:1000;max-width:260px;pointer-events:auto;background:var(--oasis-paper);border:1px solid var(--oasis-border-color);border-radius:6px;padding:8px 12px;font-size:12px;color:var(--oasis-text);filter:drop-shadow(0 4px 6px -1px rgb(0 0 0 / .1))}.oasis-editor-comment-popup-header{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}.oasis-editor-comment-popup-author{font-weight:500}.oasis-editor-comment-popup-date{color:var(--oasis-text-muted);font-size:11px}.oasis-editor-comment-popup-resolved{color:var(--oasis-revision-insert);margin-left:auto}.oasis-editor-comment-popup-body{white-space:pre-wrap;line-height:1.4}.oasis-editor-resize-handle{position:absolute;width:14px;height:14px;padding:0;border:2px solid var(--oasis-paper);border-radius:999px;background:var(--oasis-caret-color);box-shadow:0 2px 6px #0f172a33;pointer-events:auto}.oasis-editor-resize-handle[data-direction=nw]{top:-7px;left:-7px;cursor:nwse-resize}.oasis-editor-resize-handle[data-direction=n]{top:-7px;left:calc(50% - 7px);cursor:ns-resize}.oasis-editor-resize-handle[data-direction=ne]{top:-7px;right:-7px;cursor:nesw-resize}.oasis-editor-resize-handle[data-direction=e]{top:calc(50% - 7px);right:-7px;cursor:ew-resize}.oasis-editor-resize-handle[data-direction=se]{right:-7px;bottom:-7px;cursor:nwse-resize}.oasis-editor-resize-handle[data-direction=s]{bottom:-7px;left:calc(50% - 7px);cursor:ns-resize}.oasis-editor-resize-handle[data-direction=sw]{bottom:-7px;left:-7px;cursor:nesw-resize}.oasis-editor-resize-handle[data-direction=w]{top:calc(50% - 7px);left:-7px;cursor:ew-resize}.oasis-editor-rotate-handle{position:absolute;width:14px;height:14px;padding:0;top:-28px;left:calc(50% - 7px);border:2px solid var(--oasis-paper);border-radius:999px;background:var(--oasis-caret-color);box-shadow:0 2px 6px #0f172a33;cursor:grab;pointer-events:auto}.oasis-editor-rotate-handle:active{cursor:grabbing}.oasis-editor-rotate-handle:before{content:"";position:absolute;top:12px;left:calc(50% - 1px);width:2px;height:14px;background:#2563ebe6}.oasis-editor-input{position:absolute;width:1.4ch;min-width:14px;margin:0;padding:0;border:0;outline:none;resize:none;overflow:hidden;background:transparent;color:transparent;caret-color:transparent;opacity:0;pointer-events:none}.oasis-editor-horizontal-ruler{flex:0 0 22px;height:22px;position:relative;overflow:hidden;background:var(--oasis-toolbar-bg, rgba(255, 255, 255, .85));border-bottom:1px solid var(--oasis-border-color);-webkit-user-select:none;user-select:none;touch-action:none;z-index:6}.oasis-editor-horizontal-ruler-track{position:relative;height:100%;will-change:transform}.oasis-editor-horizontal-ruler-page{position:absolute;top:0;bottom:0}.oasis-editor-horizontal-ruler-margin{position:absolute;top:4px;bottom:4px;background:#c9ced6;border-radius:2px}.oasis-editor-horizontal-ruler-content{position:absolute;top:4px;bottom:4px;background:#fff;box-shadow:inset 0 0 0 1px #94a3b859;border-radius:2px}.oasis-editor-horizontal-ruler-tick{position:absolute;top:50%;width:1px;background:#8a909b;transform:translateY(-50%);pointer-events:none}.oasis-editor-horizontal-ruler-tick-minor{height:3px;opacity:.55}.oasis-editor-horizontal-ruler-tick-medium{height:6px;opacity:.75}.oasis-editor-horizontal-ruler-tick-major{height:9px}.oasis-editor-horizontal-ruler-label{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:9px;line-height:1;color:var(--oasis-text-muted);font-variant-numeric:tabular-nums;pointer-events:none}.oasis-editor-horizontal-ruler-margin-handle{position:absolute;top:0;bottom:0;width:10px;margin:0;padding:0;border:0;background:transparent;cursor:col-resize;transform:translate(-50%);z-index:3}.oasis-editor-ruler-marker{position:absolute;width:0;height:0;margin:0;padding:0;border-style:solid;background:transparent;cursor:ew-resize;transform:translate(-50%)}.oasis-editor-ruler-marker-first-line{top:1px;border-width:7px 5px 0 5px;border-color:var(--oasis-accent, #1a73e8) transparent transparent transparent;z-index:4}.oasis-editor-ruler-marker-hanging,.oasis-editor-ruler-marker-right-indent{bottom:6px;border-width:0 5px 7px 5px;border-color:transparent transparent var(--oasis-accent, #1a73e8) transparent;z-index:4}.oasis-editor-ruler-marker-left-box{bottom:1px;width:10px;height:4px;border:0;border-radius:1px;background:var(--oasis-accent, #1a73e8);transform:translate(-50%);z-index:5}.oasis-editor-read-only .oasis-editor-ruler-marker,.oasis-editor-read-only .oasis-editor-horizontal-ruler-margin-handle{cursor:default;pointer-events:none}.oasis-editor-hover-col-resize,.oasis-editor-hover-col-resize *{cursor:col-resize!important}.oasis-editor-hover-row-resize,.oasis-editor-hover-row-resize *{cursor:row-resize!important}.oasis-editor-table-resize-guide{position:fixed;z-index:10000;pointer-events:none;background-color:transparent;border:1px dashed rgba(0,0,0,.5)}.oasis-editor-table-resize-guide-column{width:0;border-left-width:1px;border-right-width:0;border-top-width:0;border-bottom-width:0}.oasis-editor-table-resize-guide-row{height:0;border-top-width:1px;border-bottom-width:0;border-left-width:0;border-right-width:0}.oasis-editor-table-block{margin:0 0 18px;position:relative}.oasis-editor-table-drag-handle{position:absolute;top:-12px;left:-12px;width:24px;height:24px;background-color:var(--oasis-paper);border:1px solid var(--oasis-border-color);border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:move;opacity:0;transition:opacity .2s;z-index:100;color:var(--oasis-text-muted);box-shadow:0 1px 2px #0000000d}.oasis-editor-table-block:hover .oasis-editor-table-drag-handle{opacity:1}.oasis-editor-table-drag-handle svg{width:14px;height:14px}.oasis-editor-table-ghost{position:fixed;pointer-events:none;background-color:#e2e8f066;border:2px dashed var(--oasis-text-muted);border-radius:4px;z-index:10001;transform:scale(.95);transform-origin:top left;box-shadow:0 10px 15px -3px #0000001a}.oasis-editor-image-ghost{position:fixed;pointer-events:none;opacity:.5;z-index:10001;transform:scale(.95);transform-origin:top left;box-shadow:0 10px 15px -3px #0000001a;border:1px solid var(--oasis-text-muted)}.oasis-editor-table-grid{width:100%;border-collapse:collapse;background:#ffffffb3}.oasis-editor-list-marker{flex:0 0 34px;min-width:34px;padding-top:.1em;font-size:.95em;line-height:inherit;text-align:right;color:var(--oasis-text-muted);-webkit-user-select:none;user-select:none}.oasis-editor-docs.oasis-editor-app{grid-template-rows:auto auto 1fr;gap:0;padding:0;background:linear-gradient(180deg,#ffffffb8,#fff0),var(--oasis-docs-surface);--oasis-editor-gutter-top: 18px;--oasis-editor-gutter-bottom: 28px}.oasis-editor-docs .oasis-editor-main-container{width:100%;max-width:none;gap:0;margin:0;padding:0;background:var(--oasis-docs-surface)}.oasis-editor-docs .oasis-editor-stage{padding:18px 24px 8px;overflow:hidden;align-items:stretch}.oasis-editor-docs .oasis-editor-toolbar{width:100%;max-width:none;margin:0;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.oasis-editor-docs .oasis-editor-toolbar-view-compact{width:100%;max-width:none;min-height:42px;margin:0;padding:6px 20px 6px 14px;border-width:1px 0;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fffffff0}.oasis-editor-docs .oasis-editor-toolbar-view-ribbon{height:118px;min-height:118px;padding:0;border-width:0 0 1px;border-radius:0;background:#f4f4f4;overflow:hidden}.oasis-editor-docs .oasis-editor-toolbar-group{flex-wrap:nowrap;gap:2px;padding:0 3px;border-color:transparent;background:transparent}.oasis-editor-docs .oasis-editor-toolbar-item-wrapper{max-width:100%}.oasis-editor-docs .oasis-editor-toolbar-separator{height:24px;margin:0 3px;background:#5f636838}.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-button,.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-select,.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-color,.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-metric{height:32px;min-height:32px}.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-button i,.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-button svg{width:18px;height:18px}.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-button:disabled,.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-select:disabled,.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-color:has(input:disabled){opacity:.56}.oasis-editor-docs .oasis-editor-editor-shell{height:100%;max-height:100%!important;min-height:0;border:0;border-radius:2px;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.oasis-editor-docs .oasis-editor-editor,.oasis-editor-docs .oasis-editor-editor-scroll-content{background:transparent}.oasis-editor-docs .oasis-editor-paper{border-radius:2px;border:1px solid rgba(218,220,224,.92);box-shadow:0 1px 2px #3c40433d,0 2px 6px 1px #3c40431a}.oasis-editor-docs .oasis-editor-statusbar{min-height:28px;margin-top:8px;padding:4px 22px;border:0;border-radius:999px;background:#ffffffb8;align-self:flex-end;box-shadow:0 1px 2px #3c40431a}.oasis-titlebar{display:flex;align-items:center;min-height:calc(var(--oasis-menu-height) + 8px);padding:2px 16px;border-bottom:1px solid var(--oasis-border-color-muted);background:var(--oasis-toolbar-bg);color:var(--oasis-text);box-sizing:border-box}.oasis-titlebar-left{display:flex;align-items:center}.oasis-titlebar-left{min-width:0}.oasis-titlebar svg,.oasis-outline-toggle svg,.oasis-menubar-submenu-icon{width:18px;height:18px}.oasis-titlebar-menubar-slot{min-width:0}.oasis-menubar{display:flex;align-items:center;min-height:var(--oasis-menu-height);background:transparent;color:var(--oasis-text);font:13px/1.2 var(--oasis-font-ui);-webkit-user-select:none;user-select:none}.oasis-menubar-menu{position:relative}.oasis-menubar-button{padding:5px 8px;border-radius:4px;cursor:pointer}.oasis-menubar-button:hover,.oasis-menubar-button-active{background:var(--oasis-hover-bg)}.oasis-menubar-dropdown,.oasis-menubar-submenu{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:220px;padding:6px 0;border:1px solid var(--oasis-toolbar-border);border-radius:6px;background:var(--oasis-paper);box-shadow:var(--oasis-menu-shadow)}.oasis-menubar-dropdown{top:100%;left:0}.oasis-menubar-submenu{top:-6px;left:100%;min-width:180px}.oasis-menubar-item{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:7px 16px;cursor:pointer;white-space:nowrap}.oasis-menubar-item-main{display:inline-flex;align-items:center;gap:10px;min-width:0}.oasis-menubar-item-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--oasis-text-muted);flex:0 0 16px}.oasis-menubar-item-icon svg{width:16px;height:16px;stroke-width:2}.oasis-menubar-item:hover{background:var(--oasis-hover-bg)}.oasis-menubar-shortcut{margin-left:auto;color:var(--oasis-text-muted);font-variant-numeric:tabular-nums}.oasis-menubar-separator{height:1px;margin:6px 0;background:var(--oasis-border-color-muted)}.oasis-outline-panel{display:flex;flex:0 0 248px;flex-direction:column;width:248px;border-right:1px solid var(--oasis-border-color-muted);background:#ffffffad;overflow:hidden;transition:width .18s ease,flex-basis .18s ease}.oasis-outline-panel-collapsed{flex-basis:32px;width:32px;border-right-color:transparent;background:transparent}.oasis-outline-header{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 14px;box-sizing:border-box}.oasis-outline-header-collapsed{justify-content:center;padding:0}.oasis-outline-title{font-size:14px;font-weight:600}.oasis-outline-toggle{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--oasis-text-muted);cursor:pointer}.oasis-outline-toggle:hover{background:var(--oasis-hover-bg);color:var(--oasis-text)}.oasis-outline-list{flex:1;overflow:auto;padding:0 12px 16px}.oasis-outline-empty{margin-top:14px;padding:0 4px;color:var(--oasis-text-muted);font-size:12px;line-height:1.45;text-align:left}.oasis-outline-item{margin:0 0 2px;margin-left:calc(var(--oasis-outline-level, 0) * 12px);padding:6px 8px;border-radius:4px;color:var(--oasis-text-muted);cursor:pointer;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oasis-outline-item:hover,.oasis-outline-item-active{background:var(--oasis-accent-soft);color:var(--oasis-accent)}@media (max-width: 900px){.oasis-editor-docs .oasis-editor-stage{padding:10px 8px 8px}.oasis-titlebar{min-height:auto;align-items:center;padding:8px}.oasis-outline-panel{display:none}.oasis-editor-app{padding:20px 14px;--oasis-editor-gutter-top: 18px;--oasis-editor-gutter-bottom: 18px}.oasis-editor-docs.oasis-editor-app{padding:0}.oasis-editor-toolbar{padding:10px}.oasis-editor-editor-shell{border-radius:22px}.oasis-editor-surface{min-height:0}.oasis-editor-block{font-size:inherit}}.oasis-editor-toolbar{display:flex;align-items:center;padding:6px 10px;background:var(--oasis-toolbar-bg);border-bottom:1px solid var(--oasis-toolbar-border);position:relative;min-height:44px;flex-wrap:nowrap;overflow:visible}.oasis-editor-toolbar-view-ribbon{display:block;width:100%;height:118px;min-height:118px;padding:0;box-sizing:border-box;background:#f4f4f4;border-bottom:1px solid #cfcfcf;box-shadow:none;overflow:hidden}.oasis-editor-ribbon-tabs{display:flex;align-items:flex-end;gap:0;height:34px;padding:0 8px;box-sizing:border-box;background:#f2f2f2;border-bottom:1px solid #d0d0d0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.oasis-editor-ribbon-tabs::-webkit-scrollbar{display:none}.oasis-editor-ribbon-tab{height:32px;padding:0 10px;border:1px solid transparent;border-bottom:none;border-radius:3px 3px 0 0;background:transparent;color:#2f2f2f;font:inherit;font-size:12px;line-height:1;cursor:pointer;white-space:nowrap}.oasis-editor-ribbon-tab:hover{background:#ececec}.oasis-editor-ribbon-tab:focus-visible{outline:2px solid #4c8bf5;outline-offset:-2px}.oasis-editor-ribbon-tab-active{background:#fff;border-color:#cfcfcf;color:#111}.oasis-editor-ribbon-panel{display:flex;align-items:stretch;gap:0;height:83px;min-height:83px;padding:5px 8px 3px;box-sizing:border-box;background:#fff;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.oasis-editor-ribbon-group{display:grid;grid-template-rows:63px 12px;align-items:stretch;padding:0 9px;box-sizing:border-box;border-right:1px solid #dcdcdc;min-width:max-content;max-height:75px}.oasis-editor-ribbon-group:first-child{padding-left:0}.oasis-editor-ribbon-group-rows{display:grid;grid-template-rows:30px 30px;align-content:start;gap:3px;min-height:63px}.oasis-editor-ribbon-row{display:flex;align-items:center;gap:2px;height:30px;min-height:30px;max-height:30px;overflow:visible}.oasis-editor-ribbon-group-label{min-width:0;color:#6f6f6f;font-size:10px;line-height:12px;text-align:center;white-space:nowrap}.oasis-editor-toolbar-view-ribbon .oasis-editor-toolbar-item{flex-shrink:0}.oasis-editor-toolbar-view-ribbon .oasis-editor-tool-button,.oasis-editor-toolbar-view-ribbon .oasis-editor-tool-select,.oasis-editor-toolbar-view-ribbon .oasis-editor-color-split{min-height:30px;height:30px;box-sizing:border-box}.oasis-editor-toolbar-view-ribbon .oasis-editor-tool-button{min-width:30px;padding:4px 7px;border-radius:3px}.oasis-editor-toolbar-view-ribbon .oasis-editor-tool-select{padding:3px 7px;border-radius:3px}.oasis-editor-toolbar-view-ribbon .oasis-editor-tool-select-wide{min-width:150px;max-width:150px}.oasis-editor-toolbar-view-ribbon .oasis-editor-tool-select-small{min-width:54px;max-width:54px}.oasis-editor-toolbar-view-ribbon .oasis-editor-toolbar-separator{height:24px;margin:0 4px}.oasis-editor-toolbar-view-ribbon .oasis-editor-color-split-main,.oasis-editor-toolbar-view-ribbon .oasis-editor-color-split-menu-button{min-height:28px}.oasis-editor-toolbar-view-ribbon .oasis-editor-toolbar-dropdown-menu,.oasis-editor-toolbar-view-ribbon .oasis-editor-color-menu,.oasis-editor-toolbar-view-ribbon .oasis-editor-table-grid-picker{overflow:auto}.oasis-editor-toolbar-layout-wrap{align-items:flex-start}.oasis-editor-toolbar-wrap-strip{display:flex;align-items:center;gap:6px;width:100%;min-width:0;flex:1 1 100%;flex-wrap:wrap;overflow:visible}.oasis-editor-toolbar-wrap-strip>.oasis-editor-toolbar-item{display:flex;align-items:center;flex-shrink:0}.oasis-editor-toolbar-strip{display:flex;align-items:center;gap:6px;width:100%;min-width:0;flex-wrap:nowrap;overflow:hidden}.oasis-editor-toolbar-group{display:flex;flex-direction:row;align-items:center;gap:2px;background:var(--oasis-paper);padding:4px;border-radius:var(--oasis-radius);border:1px solid var(--oasis-border-color-muted);flex-shrink:0}.oasis-editor-toolbar-item-hidden{display:none!important}.oasis-editor-toolbar-separator{width:1px;height:24px;background:var(--oasis-toolbar-border);margin:0 4px;flex-shrink:0}.oasis-editor-tool-button{background:transparent;border:none;padding:6px 8px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--oasis-text);font-size:13px;gap:4px;min-width:32px;min-height:32px;max-width:160px;transition:background .2s}.oasis-editor-tool-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oasis-editor-tool-button:hover:not(:disabled){background:var(--oasis-hover-bg)}.oasis-editor-tool-button:disabled{opacity:.4;cursor:default}.oasis-editor-tool-button-active{background:var(--oasis-accent-active)!important;color:var(--oasis-accent-active-text)!important}.oasis-editor-tool-button-wide{padding-left:10px;padding-right:10px}.oasis-editor-tool-button i{width:18px;height:18px;display:flex;align-items:center;justify-content:center}.oasis-editor-tool-select{padding:4px 8px;font-size:13px;border-radius:4px;border:1px solid var(--oasis-toolbar-border);background:var(--oasis-paper);color:var(--oasis-text);cursor:pointer;outline:none;height:32px}.oasis-editor-tool-select:hover{background:var(--oasis-bg);border-color:#c0c4c9}.oasis-editor-tool-select-wide{min-width:120px}.oasis-editor-tool-select-small{min-width:60px}.oasis-editor-tool-metric{display:grid;grid-template-columns:minmax(58px,1fr) minmax(64px,88px);align-items:center;gap:4px;font-size:11px;color:var(--oasis-text-muted);padding:0}.oasis-editor-tool-number{width:100%;box-sizing:border-box;height:28px;border:1px solid var(--oasis-toolbar-border);border-radius:4px;padding:0 4px;font-size:12px}.oasis-editor-tool-color{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--oasis-text-muted);padding:0 4px}.oasis-editor-tool-color-input{width:24px;height:24px;padding:0;border:1px solid var(--oasis-toolbar-border);border-radius:2px;cursor:pointer}.oasis-editor-color-split{display:inline-flex;align-items:stretch;height:32px;border:1px solid transparent;border-radius:4px;color:var(--oasis-text);background:transparent;overflow:hidden}.oasis-editor-color-split:hover,.oasis-editor-color-split:focus-within,.oasis-editor-color-split-active{background:var(--oasis-hover-bg);border-color:var(--oasis-toolbar-border)}.oasis-editor-color-split-main,.oasis-editor-color-split-menu-button{border:none;background:transparent;color:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;min-height:30px}.oasis-editor-color-split-main{width:30px;padding:3px 5px}.oasis-editor-color-split-menu-button{width:18px;padding:0;border-left:1px solid transparent}.oasis-editor-color-split:hover .oasis-editor-color-split-menu-button,.oasis-editor-color-split:focus-within .oasis-editor-color-split-menu-button,.oasis-editor-color-split-active .oasis-editor-color-split-menu-button{border-left-color:var(--oasis-toolbar-border)}.oasis-editor-color-split-main:hover,.oasis-editor-color-split-menu-button:hover,.oasis-editor-color-split-open,.oasis-editor-color-split-active .oasis-editor-color-split-main,.oasis-editor-color-split-active .oasis-editor-color-split-menu-button{background:var(--oasis-accent-soft)}.oasis-editor-color-split-main:focus-visible,.oasis-editor-color-split-menu-button:focus-visible{outline:2px solid var(--oasis-accent);outline-offset:-2px}.oasis-editor-color-split-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:20px;height:22px;padding-bottom:5px;box-sizing:border-box}.oasis-editor-color-split-icon i{width:18px;height:18px}.oasis-editor-underline-split-glyph{display:inline-flex;align-items:center;justify-content:center;width:20px;height:24px;font-size:20px;font-weight:400;line-height:1;font-family:Calibri,Arial,sans-serif;transform:translateY(1px)}.oasis-editor-underline-split-icon{height:22px;padding-bottom:5px}.oasis-editor-color-split-indicator{position:absolute;left:2px;right:2px;bottom:0;height:3px;border:1px solid rgba(0,0,0,.22);box-sizing:border-box}.oasis-editor-color-split-indicator-empty{background:linear-gradient(135deg,transparent 0 46%,#c0392b 46% 54%,transparent 54%),linear-gradient(45deg,#fff 0,#fff 25%,#e5e7eb 25%,#e5e7eb 50%,#fff 50%,#fff 75%,#e5e7eb 75%);background-size:auto,6px 6px}.oasis-editor-color-split-menu-button i{width:13px;height:13px}.oasis-editor-color-menu{z-index:1000;width:min(248px,calc(100vw - 16px));max-height:min(420px,calc(100vh - 88px));overflow:auto;box-sizing:border-box;padding:6px;display:grid;gap:6px;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 4px 12px #00000026}.oasis-editor-color-menu-section{display:grid;gap:5px}.oasis-editor-color-menu-heading{font-size:11px;font-weight:600;color:var(--oasis-text-muted);line-height:1.2;padding:2px 1px}.oasis-editor-color-theme-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:2px}.oasis-editor-color-theme-column{display:grid;gap:2px}.oasis-editor-color-standard-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:2px}.oasis-editor-color-swatch{width:20px;height:20px;padding:0;border:1px solid rgba(0,0,0,.18);border-radius:2px;cursor:pointer;position:relative}.oasis-editor-color-swatch:hover,.oasis-editor-color-swatch:focus-visible{outline:2px solid var(--oasis-accent);outline-offset:1px}.oasis-editor-color-swatch-active:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:solid #111827;border-width:0 2px 2px 0;transform:rotate(45deg);filter:drop-shadow(0 0 1px #ffffff)}.oasis-editor-color-menu-action{width:100%;min-height:30px;border:none;border-radius:4px;padding:5px 7px;display:flex;align-items:center;gap:8px;background:transparent;color:var(--oasis-text);font-size:12px;cursor:pointer}.oasis-editor-color-menu-action:hover,.oasis-editor-color-menu-action:focus-visible{background:var(--oasis-hover-bg);outline:none}.oasis-editor-color-menu-action-swatch{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--oasis-toolbar-border);border-radius:2px;background:var(--oasis-paper)}.oasis-editor-color-menu-action-swatch i{width:13px;height:13px}.oasis-editor-color-menu-more-swatch{background:linear-gradient(135deg,red 0,red 25%,#ffc000 25%,#ffc000 50%,#00b050 50%,#00b050 75%,#0070c0 75%)}.oasis-editor-color-custom-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.oasis-editor-toolbar-badge{background:var(--oasis-accent-soft);color:var(--oasis-accent);padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500}.oasis-editor-toolbar-note{font-size:11px;color:var(--oasis-text-muted);font-style:italic;margin-left:8px}.oasis-editor-table-actions-advanced{display:inline-block}.oasis-editor-table-actions-summary{font-size:12px;color:var(--oasis-accent);cursor:pointer;padding:4px 8px;border-radius:4px;list-style:none}.oasis-editor-table-actions-summary:hover{background:var(--oasis-hover-bg)}.oasis-editor-table-actions-group{position:absolute;top:100%;left:0;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 2px 10px #00000026;padding:8px;z-index:1000;display:flex;flex-wrap:wrap;max-width:400px;gap:4px}.oasis-editor-toolbar-dropdown{position:relative;display:inline-block}.oasis-editor-tool-button-dropdown{display:flex;align-items:center;gap:6px;padding:0 10px}.oasis-editor-dropdown-chevron{opacity:.5;margin-left:2px}.oasis-editor-toolbar-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:1000;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 4px 12px #00000026;padding:6px;min-width:200px;display:flex;flex-direction:column;gap:2px}.oasis-editor-toolbar-panel{width:min(320px,calc(100vw - 16px));max-height:min(420px,calc(100vh - 88px));overflow:auto;padding:10px;box-sizing:border-box;gap:8px}.oasis-editor-toolbar-table-panel{width:min(280px,calc(100vw - 16px))}.oasis-editor-toolbar-panel-section{display:grid;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--oasis-hover-bg)}.oasis-editor-toolbar-panel-section:last-child{padding-bottom:0;border-bottom:none}.oasis-editor-toolbar-panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.oasis-editor-toolbar-panel-grid{display:grid;grid-template-columns:1fr;gap:8px}.oasis-editor-toolbar-panel .oasis-editor-tool-button{min-width:32px;max-width:none}.oasis-editor-toolbar-panel .oasis-editor-tool-select{width:100%;box-sizing:border-box}.oasis-editor-toolbar-overflow-dropdown-menu{max-width:calc(100vw - 16px);max-height:min(520px,calc(100vh - 88px));overflow:auto;padding:8px;box-sizing:border-box;width:auto}.oasis-editor-toolbar-dropdown-menu>.oasis-editor-tool-button{width:100%;justify-content:flex-start;padding:8px 12px;border-radius:4px;background:transparent;border:none}.oasis-editor-toolbar-dropdown-menu .oasis-editor-tool-button:hover{background:var(--oasis-hover-bg)}.oasis-editor-toolbar-list-options{display:grid;gap:10px;min-width:188px;padding:6px}.oasis-editor-toolbar-field{display:grid;gap:5px;color:var(--oasis-text-muted);font-size:12px;font-weight:600}.oasis-editor-toolbar-field .oasis-editor-tool-select,.oasis-editor-toolbar-field .oasis-editor-tool-number{width:100%;box-sizing:border-box}.oasis-editor-toolbar-field .oasis-editor-tool-number{height:30px;padding:0 8px;border:1px solid var(--oasis-toolbar-border);border-radius:4px;background:var(--oasis-paper)}.oasis-editor-toolbar-overflow-menu{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px}.oasis-editor-toolbar-overflow-menu .oasis-editor-toolbar-group{background:transparent;border:none;padding:0;display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:2px}.oasis-editor-toolbar-overflow-menu .oasis-editor-toolbar-separator{width:1px;height:24px;background:var(--oasis-toolbar-border);margin:0 2px;flex-shrink:0}.oasis-editor-toolbar-overflow-menu .oasis-editor-toolbar-item-wrapper{flex-shrink:0}.oasis-editor-toolbar-overflow-menu .oasis-editor-tool-button{width:auto;padding:6px 8px}.oasis-editor-toolbar-more-measure{position:absolute;visibility:hidden;pointer-events:none;right:0;top:0}@media (max-width: 760px){.oasis-editor-toolbar{padding:5px 8px}.oasis-editor-toolbar-strip{gap:4px}.oasis-editor-tool-select-wide{max-width:120px}.oasis-editor-tool-select:not(.oasis-editor-tool-select-small){max-width:168px}.oasis-editor-tool-select-wide{min-width:104px}.oasis-editor-tool-select-small{min-width:52px}}@media (max-width: 480px){.oasis-editor-toolbar-group{padding:3px}.oasis-editor-tool-button{min-width:30px;min-height:30px;padding:5px 7px}.oasis-editor-tool-button i{width:17px;height:17px}.oasis-editor-tool-select{max-width:132px}.oasis-editor-tool-select-wide{max-width:112px}}.oasis-editor-table-grid-picker{z-index:1000;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 4px 12px #00000026;padding:8px;display:flex;flex-direction:column;gap:6px;-webkit-user-select:none;user-select:none}.oasis-editor-table-grid-picker-status{font-size:12px;font-weight:600;color:var(--oasis-text);text-align:center;min-height:16px}.oasis-editor-table-grid-picker-grid{display:grid;gap:2px}.oasis-editor-table-grid-picker-cell{width:18px;height:18px;padding:0;margin:0;border:1px solid var(--oasis-toolbar-border);background:var(--oasis-bg);border-radius:2px;cursor:pointer;transition:background .05s,border-color .05s}.oasis-editor-table-grid-picker-cell:hover{border-color:var(--oasis-accent)}.oasis-editor-table-grid-picker-cell-active{background:var(--oasis-accent-soft);border-color:var(--oasis-accent)}.oasis-editor-underline-split-indicator{position:absolute;left:3px;right:3px;bottom:0;height:0;border-bottom:1px solid currentColor;box-sizing:border-box}.oasis-editor-underline-split-indicator[data-style=double]{border-bottom-style:double;border-bottom-width:3px}.oasis-editor-underline-split-indicator[data-style=thick]{border-bottom-width:2px}.oasis-editor-underline-split-indicator[data-style=dotted],.oasis-editor-underline-split-indicator[data-style=dottedheavy]{border-bottom-style:dotted}.oasis-editor-underline-split-indicator[data-style=dash],.oasis-editor-underline-split-indicator[data-style=dashedheavy],.oasis-editor-underline-split-indicator[data-style=dashlong],.oasis-editor-underline-split-indicator[data-style=dashlongheavy],.oasis-editor-underline-split-indicator[data-style=dotdash],.oasis-editor-underline-split-indicator[data-style=dashdotheavy],.oasis-editor-underline-split-indicator[data-style=dotdotdash],.oasis-editor-underline-split-indicator[data-style=dashdotdotheavy]{border-bottom-style:dashed}.oasis-editor-underline-split-indicator[data-style=wave],.oasis-editor-underline-split-indicator[data-style=wavyheavy],.oasis-editor-underline-split-indicator[data-style=wavydouble]{border-bottom-style:solid;border-bottom-width:0;background-image:linear-gradient(135deg,transparent 0 40%,currentColor 40% 60%,transparent 60%),linear-gradient(45deg,transparent 0 40%,currentColor 40% 60%,transparent 60%);background-repeat:repeat-x;background-size:4px 3px;background-position:0 100%,2px 100%;height:3px}.oasis-editor-underline-menu{width:min(220px,calc(100vw - 16px))}.oasis-editor-underline-menu-list{display:grid;gap:2px}.oasis-editor-underline-menu-item{width:100%;min-height:26px;border:none;border-radius:4px;padding:4px 8px;display:grid;grid-template-columns:64px 1fr;align-items:center;gap:10px;background:transparent;color:var(--oasis-text);font-size:12px;cursor:pointer;text-align:left}.oasis-editor-underline-menu-item:hover,.oasis-editor-underline-menu-item:focus-visible{background:var(--oasis-hover-bg);outline:none}.oasis-editor-underline-menu-item-active{background:var(--oasis-accent-soft)}.oasis-editor-underline-menu-preview{display:inline-flex;align-items:flex-end;justify-content:stretch;height:14px;width:100%;color:currentColor}.oasis-editor-underline-menu-stroke{display:block;width:100%;border-bottom:1px solid currentColor;height:0;align-self:flex-end}.oasis-editor-underline-menu-stroke-svg{border-bottom:none;height:9px;align-self:center}.oasis-editor-underline-menu-label{font-size:12px;color:var(--oasis-text);line-height:1.2}.oasis-editor-line-spacing-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:currentColor}.oasis-editor-line-spacing-icon svg{width:18px;height:18px;display:block}.oasis-editor-line-spacing-menu{min-width:200px;padding:4px;gap:0}.oasis-editor-line-spacing-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;background:transparent;border:none;border-radius:4px;cursor:pointer;font-size:13px;text-align:left;color:var(--oasis-text)}.oasis-editor-line-spacing-item:hover{background:var(--oasis-hover-bg)}.oasis-editor-line-spacing-item-active{font-weight:600}.oasis-editor-line-spacing-item-check{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--oasis-text)}.oasis-editor-line-spacing-item-label{flex:1;min-width:0}.oasis-editor-line-spacing-menu-separator{height:1px;background:var(--oasis-toolbar-border);margin:4px 0}.oasis-editor-line-spacing-item-more{color:var(--oasis-text)}.oasis-editor-floating-toolbar{position:fixed;display:flex;align-items:center;gap:4px;padding:6px 8px;background:#fff;border:1px solid #dadce0;border-radius:10px;box-shadow:0 8px 24px #0f172a2e,0 2px 6px #0f172a14;z-index:2147483600;pointer-events:auto;white-space:nowrap;width:max-content;max-width:calc(100vw - 24px);transform:translate(-50%,calc(-100% - 12px));animation:oasis-editor-floating-toolbar-fade .12s ease-out}@keyframes oasis-editor-floating-toolbar-fade{0%{opacity:0;transform:translate(-50%,calc(-100% - 6px))}to{opacity:1;transform:translate(-50%,calc(-100% - 12px))}}.oasis-editor-floating-toolbar .oasis-editor-toolbar-group{background:transparent;border:none;padding:0;gap:2px;flex-shrink:0}.oasis-editor-floating-toolbar .oasis-editor-toolbar-separator{height:22px;margin:0 2px;flex-shrink:0}.oasis-editor-floating-toolbar .oasis-editor-tool-button{min-width:28px;min-height:28px;padding:4px 6px;flex-shrink:0}.oasis-editor-floating-toolbar .oasis-editor-tool-button i{width:16px;height:16px}.oasis-editor-layout-options-anchor{position:fixed;z-index:2147483600;display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:#fff;border:1px solid #dadce0;border-radius:6px;box-shadow:0 2px 6px #0f172a2e;color:#444746;cursor:pointer;pointer-events:auto}.oasis-editor-layout-options-anchor:hover{background:#f1f5f9}.oasis-editor-layout-options-anchor svg{width:18px;height:18px}.oasis-editor-layout-options-popup{position:fixed;z-index:2147483601;width:248px;padding:10px 12px 12px;background:#fff;border:1px solid #dadce0;border-radius:10px;box-shadow:0 8px 24px #0f172a2e,0 2px 6px #0f172a14;pointer-events:auto;font-family:Segoe UI,system-ui,sans-serif;animation:oasis-editor-floating-toolbar-fade .12s ease-out}.oasis-editor-layout-options-popup-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.oasis-editor-layout-options-title{font-size:11px;font-weight:600;color:#5f6368;text-transform:uppercase;letter-spacing:.04em}.oasis-editor-layout-options-close{border:none;background:transparent;color:#5f6368;cursor:pointer;font-size:16px;line-height:1;padding:2px 4px;border-radius:4px}.oasis-editor-layout-options-close:hover{background:#f1f5f9}.oasis-editor-layout-options-group-label{font-size:11px;font-weight:600;color:#5f6368;margin:8px 0 4px}.oasis-editor-layout-options-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.oasis-editor-layout-options-cell{display:flex;align-items:center;justify-content:center;height:40px;border:1px solid transparent;border-radius:6px;background:transparent;color:#3c4043;cursor:pointer}.oasis-editor-layout-options-cell:hover{background:#f1f5f9}.oasis-editor-layout-options-cell.oasis-editor-layout-options-cell-active{border-color:#1a73e8;background:#e8f0fe;color:#1a73e8}.oasis-editor-layout-options-cell svg{width:34px;height:28px}.oasis-editor-layout-options-radios{margin-top:10px;border-top:1px solid #ececec;padding-top:8px;display:flex;flex-direction:column;gap:6px}.oasis-editor-layout-options-radio{display:flex;align-items:center;gap:6px;font-size:12px;color:#3c4043;cursor:pointer}.oasis-editor-layout-options-radio[aria-disabled=true]{opacity:.5;cursor:default}.oasis-editor-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.oasis-editor-dialog{background:#fff;border-radius:8px;box-shadow:0 4px 24px #0003;min-width:320px;max-width:90vw;max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden;animation:oasis-dialog-in .2s ease-out}.oasis-editor-dialog-sm{width:min(360px,calc(100vw - 32px))}.oasis-editor-dialog-md{width:min(520px,calc(100vw - 32px))}.oasis-editor-dialog-lg{width:min(720px,calc(100vw - 32px))}.oasis-editor-dialog-font{width:min(720px,calc(100vw - 32px));min-height:min(640px,calc(100vh - 48px))}@keyframes oasis-dialog-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.oasis-editor-dialog-header{padding:12px 16px;border-bottom:1px solid #dadce0;display:flex;align-items:center;justify-content:space-between;background:#f8f9fa}.oasis-editor-dialog-title{margin:0;font-size:14px;font-weight:600;color:#444746}.oasis-editor-dialog-close{background:transparent;border:none;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#70757a;border-radius:4px;transition:background .2s}.oasis-editor-dialog-close:hover{background:#0000000d;color:#1f1f1f}.oasis-editor-dialog-body{padding:16px;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto}.oasis-editor-dialog-footer{flex:0 0 auto;padding:12px 16px;border-top:1px solid #dadce0;display:flex;justify-content:flex-end;gap:8px;background:#f8f9fa}.oasis-editor-dialog-input-group{display:flex;flex-direction:column;gap:4px}.oasis-editor-dialog-label{font-size:12px;font-weight:500;color:#70757a}.oasis-editor-dialog-input{padding:8px 12px;font-size:13px;border:1px solid #dadce0;border-radius:4px;outline:none;transition:border-color .2s,box-shadow .2s}.oasis-editor-dialog-input:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e833}.oasis-editor-dialog-button{padding:8px 16px;font-size:13px;font-weight:500;border-radius:4px;cursor:pointer;transition:background .2s}.oasis-editor-dialog-button-primary{background:#1a73e8;color:#fff;border:none}.oasis-editor-dialog-button-primary:hover{background:#1557b0}.oasis-editor-dialog-button-secondary{background:#fff;color:#1a73e8;border:1px solid #dadce0}.oasis-editor-dialog-button-secondary:hover{background:#f1f3f4}.oasis-editor-dialog-row{display:flex;gap:12px;align-items:flex-end}.oasis-editor-dialog-input-group-grow{flex:1;min-width:0}.oasis-editor-dialog-color{width:56px;height:32px;padding:2px;border:1px solid #dadce0;border-radius:4px;background:#fff;cursor:pointer}.oasis-editor-dialog-style-row{display:flex;flex-wrap:wrap;gap:6px 14px;padding:4px 0}.oasis-editor-dialog-style-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#1f1f1f;cursor:pointer}.oasis-editor-dialog-style-toggle input{accent-color:#1a73e8;cursor:pointer}.oasis-editor-dialog-preview{min-height:56px;padding:12px;border:1px dashed #dadce0;border-radius:4px;background:#fafbfc;line-height:1.4}.oasis-editor-dialog-help-text{min-height:16px;font-size:12px;color:#70757a}.oasis-editor-font-dialog-body{padding:12px}.oasis-editor-font-dialog-tabs{min-height:500px}.oasis-editor-font-dialog-tabs .oasis-editor-tabs-panel{min-height:468px;padding:12px;overflow:auto}.oasis-editor-font-dialog-panel{display:flex;min-height:444px;flex-direction:column;gap:10px}.oasis-editor-font-dialog-font-panel .oasis-editor-dialog-row{align-items:flex-start}.oasis-editor-font-dialog-size-group{width:96px;flex:0 0 96px}.oasis-editor-font-dialog-custom-size-group,.oasis-editor-font-dialog-style-list-group,.oasis-editor-font-dialog-color-mode-group{width:170px;flex:0 0 170px}.oasis-editor-font-dialog-color-row{align-items:flex-start}.oasis-editor-font-dialog-fieldset{margin:0 0 12px;padding:10px 8px 8px;border:1px solid #d9d9d9;border-radius:0}.oasis-editor-font-dialog-fieldset legend{padding:0 6px;font-size:12px;color:#202124}.oasis-editor-font-dialog-word-row{display:grid;grid-template-columns:156px minmax(160px,172px) 36px 76px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:6px}.oasis-editor-font-dialog-word-row .oasis-editor-dialog-input{min-width:0;width:100%}.oasis-editor-font-dialog-word-row .oasis-editor-dialog-label{margin:0}.oasis-editor-font-dialog-small-input{width:76px}.oasis-editor-font-dialog-by-label{justify-self:end}.oasis-editor-font-dialog-kerning-row{grid-template-columns:max-content 64px max-content 1fr;column-gap:8px}.oasis-editor-font-dialog-kerning-toggle,.oasis-editor-font-dialog-contextual-toggle{margin-top:2px}.oasis-editor-font-dialog-kerning-toggle{min-width:136px;white-space:nowrap}.oasis-editor-font-dialog-kerning-input{width:64px}.oasis-editor-font-dialog-kerning-suffix{min-height:0;white-space:nowrap}.oasis-editor-font-dialog-advanced-preview{min-height:42px;display:flex;align-items:center;justify-content:center;border-style:solid;overflow:hidden;white-space:nowrap;background:linear-gradient(#111,#111) left 12px center / 80px 1px no-repeat,linear-gradient(#111,#111) right 12px center / 80px 1px no-repeat,#fff;font-size:18px}.oasis-editor-table-properties-dialog{width:min(680px,calc(100vw - 32px))}.oasis-editor-table-properties-body{padding:10px 12px 12px}.oasis-editor-table-properties-tabs .oasis-editor-tabs-panel{min-height:360px;padding:12px 4px 0;overflow:auto}.oasis-editor-table-properties-panel{display:flex;flex-direction:column;gap:10px}.oasis-editor-table-properties-cell-preview{width:92px;height:48px;margin-top:8px;box-sizing:border-box;background:#fff}.oasis-editor-table-properties-textarea{min-height:120px;resize:vertical}@media (max-width: 640px){.oasis-editor-dialog-font{min-height:0}.oasis-editor-dialog-row,.oasis-editor-font-dialog-word-row,.oasis-editor-font-dialog-kerning-row{display:flex;align-items:stretch;flex-direction:column}.oasis-editor-font-dialog-size-group,.oasis-editor-font-dialog-custom-size-group,.oasis-editor-font-dialog-style-list-group,.oasis-editor-font-dialog-color-mode-group{width:auto;flex:1 1 auto}.oasis-editor-font-dialog-by-label{justify-self:start}}.oasis-editor-tabs{display:flex;min-width:0;flex-direction:column}.oasis-editor-tabs-list{display:flex;align-items:flex-end;gap:2px;border-bottom:1px solid #c7cbd1;padding:0 8px}.oasis-editor-tabs-tab{position:relative;bottom:-1px;min-height:30px;padding:6px 13px;border:1px solid #c7cbd1;border-bottom-color:transparent;border-radius:4px 4px 0 0;background:#f3f4f6;color:#202124;font:inherit;font-size:13px;cursor:pointer}.oasis-editor-tabs-tab:hover:not(:disabled){background:#fff}.oasis-editor-tabs-tab:focus-visible{outline:2px solid #1a73e8;outline-offset:-2px}.oasis-editor-tabs-tab.is-active{z-index:1;background:#fff;border-bottom-color:#fff;font-weight:500}.oasis-editor-tabs-tab:disabled{color:#9aa0a6;cursor:default}.oasis-editor-tabs-panel{display:none;min-width:0;border:1px solid #c7cbd1;border-top:0;background:#fff}.oasis-editor-tabs-panel.is-active{display:block}.oasis-editor-find-replace-dialog{position:fixed;top:100px;right:40px;width:320px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;z-index:1000;display:flex;flex-direction:column;animation:oasis-fr-slide-in .2s ease-out}@keyframes oasis-fr-slide-in{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.oasis-editor-fr-header{padding:12px 16px;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;align-items:center;font-weight:600;color:#1e293b;font-size:.875rem}.oasis-editor-fr-close{background:transparent;border:none;cursor:pointer;color:#94a3b8;padding:4px;border-radius:4px;display:flex}.oasis-editor-fr-close:hover{background:#f1f5f9;color:#64748b}.oasis-editor-fr-body{padding:16px;display:flex;flex-direction:column;gap:12px}.oasis-editor-fr-input-group{display:flex;flex-direction:column;gap:8px}.oasis-editor-fr-input-wrapper{position:relative;display:flex;align-items:center}.oasis-editor-fr-input{width:100%;padding:8px 80px 8px 12px;border:1px solid #cbd5e1;border-radius:4px;font-size:.875rem;outline:none}.oasis-editor-fr-input:focus{border-color:#3b82f6;ring:2px solid #bfdbfe}.oasis-editor-fr-counter{position:absolute;right:12px;font-size:.75rem;color:#94a3b8;pointer-events:none}.oasis-editor-fr-actions{display:flex;gap:4px;justify-content:flex-end}.oasis-editor-fr-actions button{background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;padding:6px;cursor:pointer;color:#475569;display:flex;align-items:center}.oasis-editor-fr-actions button:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.oasis-editor-fr-actions button:disabled{opacity:.5;cursor:not-allowed}.oasis-editor-fr-btn-text{font-size:.75rem;font-weight:500;padding:6px 12px!important}.oasis-editor-fr-options{display:flex;gap:16px;margin-top:4px}.oasis-editor-fr-checkbox{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#64748b;cursor:pointer}.oasis-editor-fr-checkbox input{cursor:pointer}.oasis-editor-context-menu{position:fixed;z-index:2147483600;min-width:200px;background:#fff;border:1px solid #dadce0;border-radius:8px;box-shadow:0 8px 24px #0f172a2e,0 2px 6px #0f172a14;padding:6px 0;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none;font-size:13px;color:#1f1f1f;animation:oasis-editor-context-menu-in .1s ease-out}@keyframes oasis-editor-context-menu-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.oasis-editor-context-menu-item{display:flex;align-items:center;gap:10px;padding:6px 14px;background:transparent;border:none;cursor:pointer;text-align:left;font-size:13px;color:inherit;width:100%;transition:background .1s}.oasis-editor-context-menu-item:hover:not(:disabled),.oasis-editor-context-menu-item:focus-visible:not(:disabled){background:#f1f3f4;outline:none}.oasis-editor-context-menu-item:disabled{color:#9aa0a6;cursor:default}.oasis-editor-context-menu-item i{width:16px;height:16px;flex-shrink:0;color:#5f6368}.oasis-editor-context-menu-item:disabled i{color:#bdc1c6}.oasis-editor-context-menu-label{flex:1}.oasis-editor-context-menu-shortcut{color:#5f6368;font-size:12px;margin-left:16px}.oasis-editor-context-menu-item:disabled .oasis-editor-context-menu-shortcut{color:#bdc1c6}.oasis-editor-context-menu-separator{height:1px;background:#e8eaed;margin:4px 0}
|
|
1
|
+
:root,.oasis-editor{--oasis-bg: #f6f8fb;--oasis-paper: #ffffff;--oasis-paper-shadow: 0 1px 3px rgba(60, 64, 67, .15), 0 4px 8px rgba(60, 64, 67, .07);--oasis-toolbar-bg: rgba(255, 255, 255, .85);--oasis-toolbar-border: rgba(148, 163, 184, .22);--oasis-toolbar-shadow: 0 4px 12px rgba(15, 23, 42, .04), 0 1px 0 rgba(255, 255, 255, .6) inset;--oasis-text: #202124;--oasis-text-muted: #5f6368;--oasis-accent: #1a73e8;--oasis-accent-soft: #e8f0fe;--oasis-accent-active: #c2e7ff;--oasis-accent-active-text: #001d35;--oasis-radius: 8px;--oasis-radius-lg: 14px;--oasis-radius-xl: 28px;--oasis-font-ui: "Inter", system-ui, -apple-system, sans-serif;--oasis-font-doc: "Source Serif Pro", Georgia, serif;--oasis-border-color: rgba(148, 163, 184, .22);--oasis-border-color-muted: rgba(148, 163, 184, .15);--oasis-hover-bg: rgba(226, 232, 240, .8);--oasis-active-bg: #e2e8f0;--oasis-selection-bg: rgba(37, 99, 235, .22);--oasis-caret-color: #2563eb;--oasis-comment-bg: rgba(245, 158, 11, .28);--oasis-comment-bg-active: rgba(245, 158, 11, .48);--oasis-comment-underline: rgba(217, 119, 6, .7);--oasis-success: #15803d;--oasis-warning: #a16207;--oasis-danger: #b91c1c;--oasis-revision-insert: #059669;--oasis-revision-delete: #dc2626;--oasis-chrome-height: 64px;--oasis-menu-height: 28px;--oasis-docs-surface: #edf2f7;--oasis-menu-shadow: 0 8px 24px rgba(60, 64, 67, .18);--oasis-focus-ring: 0 0 0 2px rgba(26, 115, 232, .22)}.oasis-editor-app{position:relative;display:grid;grid-template-rows:auto auto 1fr;width:100%;height:100%;padding:28px 24px 32px;box-sizing:border-box;gap:20px;font-family:var(--oasis-font-ui);color:var(--oasis-text);background-color:var(--oasis-bg);--oasis-editor-gutter-top: 34px;--oasis-editor-gutter-bottom: 34px}.oasis-editor-header{width:min(860px,100%);margin:0 auto}.oasis-editor-eyebrow{margin:0 0 10px;font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--oasis-accent)}.oasis-editor-title{margin:0;font-size:clamp(34px,5vw,54px);line-height:.95;letter-spacing:-.05em}.oasis-editor-copy{margin:14px 0 0;max-width:68ch;font-size:16px;line-height:1.6;color:var(--oasis-text-muted)}.oasis-editor-shell{display:flex;flex-direction:column;height:100%;gap:16px}.oasis-editor-main-container{display:flex;flex:1;min-height:0;gap:16px;width:min(1160px,100%);margin:0 auto;align-items:stretch}.oasis-editor-stage{flex:1;min-width:0;min-height:0;display:flex;justify-content:center}.oasis-editor-editor-shell{position:relative;display:flex;flex-direction:column;width:min(860px,100%);min-height:0;max-height:100%;border-radius:var(--oasis-radius-xl);background:#ffffffb8;border:1px solid var(--oasis-border-color);box-shadow:0 26px 80px #0f172a1f,0 4px 14px #0f172a0d;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overflow:hidden}.oasis-editor-editor{position:relative;flex:1 1 auto;min-height:0;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(95,99,104,.42) transparent}.oasis-editor-editor::-webkit-scrollbar{width:10px;height:10px}.oasis-editor-editor::-webkit-scrollbar-track{background:transparent}.oasis-editor-editor::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:#5f63685c;background-clip:content-box}.oasis-editor-editor::-webkit-scrollbar-thumb:hover{background:#5f636880;background-clip:content-box}.oasis-editor-statusbar{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:6px 16px;font-size:12px;color:var(--oasis-text-muted);background:#f8fafcd9;border-top:1px solid var(--oasis-border-color)}.oasis-editor-statusbar-item{white-space:nowrap;font-variant-numeric:tabular-nums}.oasis-editor-persistence-status{padding:2px 6px;border-radius:4px;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.oasis-editor-status-saved{color:var(--oasis-success)}.oasis-editor-status-saving{color:var(--oasis-warning)}.oasis-editor-status-error{color:var(--oasis-danger)}.oasis-editor-editor-scroll-content{position:relative;min-height:100%;padding:var(--oasis-editor-gutter-top) var(--oasis-editor-gutter-x) var(--oasis-editor-gutter-bottom);box-sizing:border-box;cursor:text}.oasis-editor-import-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:24px;background:#f8fafccc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.oasis-editor-import-card{width:min(360px,100%);padding:22px 24px;border:1px solid rgba(148,163,184,.3);border-radius:18px;background:#fffffff2;box-shadow:0 18px 48px #0f172a29}.oasis-editor-import-title{font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--oasis-text)}.oasis-editor-import-phase{margin-top:8px;font-size:12px;color:var(--oasis-text-muted)}.oasis-editor-import-progress-track{width:100%;height:8px;margin-top:16px;overflow:hidden;border-radius:999px;background:#cbd5e18c}.oasis-editor-import-progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#0f766e);position:relative;overflow:hidden}.oasis-editor-import-progress-bar-indeterminate{background:linear-gradient(90deg,#2563eb,#3b82f6,#2563eb);background-size:200% 100%;animation:oasis-indeterminate 1.2s ease-in-out infinite}@keyframes oasis-indeterminate{0%{background-position:200% 0}to{background-position:-200% 0}}.oasis-editor-import-progress-bar-done{background:linear-gradient(90deg,#059669,#10b981)}.oasis-editor-import-progress-bar-error{background:linear-gradient(90deg,#dc2626,#ef4444)}.oasis-editor-import-overlay-done{background:#f8fafcd9}.oasis-editor-import-overlay-error{background:#fef2f2d9}.oasis-editor-import-progress-label{margin-top:10px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--oasis-text-muted);text-align:right}.oasis-editor-import-done-icon{display:inline-flex;align-items:center;gap:4px;color:#059669;font-weight:600}.oasis-editor-import-done-icon:before{content:"";display:inline-block;width:14px;height:14px;border-radius:50%;background:#059669;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center / contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center / contain no-repeat;animation:oasis-pop .3s cubic-bezier(.34,1.56,.64,1)}.oasis-editor-import-error-icon{display:inline-flex;align-items:center;gap:4px;color:#dc2626;font-weight:600}.oasis-editor-import-error-icon:before{content:"";display:inline-block;width:14px;height:14px;border-radius:50%;background:#dc2626;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z'/%3E%3C/svg%3E") center / contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z'/%3E%3C/svg%3E") center / contain no-repeat}@keyframes oasis-pop{0%{transform:scale(0)}to{transform:scale(1)}}.oasis-editor-loading{display:grid;place-items:center;align-content:center;gap:16px;background:var(--oasis-bg)}.oasis-editor-loading .oasis-editor-import-card,.oasis-editor-import-overlay .oasis-editor-import-card{text-align:center}.oasis-editor-loading-mark{display:block;margin:0 auto 12px}.oasis-editor-loading--overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1000}.oasis-editor-loading--fill{position:relative;width:100%;height:100%;min-height:240px}.oasis-editor-welcome-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1001;display:grid;place-items:center;padding:24px;background:#0f172a52;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.oasis-editor-welcome-card{width:min(420px,100%);padding:28px 28px 24px;border:1px solid rgba(148,163,184,.3);border-radius:18px;background:#fffffffa;box-shadow:0 18px 48px #0f172a3d;text-align:center;animation:oasis-pop .22s cubic-bezier(.34,1.36,.64,1)}.oasis-editor-welcome-mark{display:block;margin:0 auto 14px;border-radius:16px}.oasis-editor-welcome-title{margin:0 0 10px;font-size:18px;font-weight:700;color:var(--oasis-text)}.oasis-editor-welcome-body{margin:0 0 12px;font-size:13px;line-height:1.5;color:var(--oasis-text)}.oasis-editor-welcome-note{margin:0 0 20px;font-size:12px;line-height:1.45;color:var(--oasis-text-muted)}.oasis-editor-welcome-actions{display:flex;justify-content:center;gap:10px}@keyframes oasis-editor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.oasis-editor-toolbar{display:flex;align-items:center;gap:8px;width:min(1160px,100%);margin:0 auto;padding:8px 10px;border-radius:var(--oasis-radius-lg);background:var(--oasis-toolbar-bg);border:1px solid var(--oasis-toolbar-border);box-shadow:var(--oasis-toolbar-shadow);min-height:48px;flex-wrap:nowrap;overflow:visible}.oasis-editor-toolbar-view-ribbon{display:block;width:100%;height:118px;min-height:118px;margin:0;padding:0;box-sizing:border-box;border-radius:0;background:#f4f4f4;border:0;border-bottom:1px solid #cfcfcf;box-shadow:none;overflow:hidden}.oasis-editor-toolbar-wrap-strip{display:flex;align-items:center;gap:8px;width:100%;min-width:0;flex:1 1 100%;flex-wrap:wrap;overflow:visible}.oasis-editor-toolbar-group{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;padding:2px;border-radius:10px;background:#f1f5f98c;border:1px solid var(--oasis-border-color-muted)}.oasis-editor-table-actions-advanced{display:flex;align-items:center;gap:6px}.oasis-editor-table-actions-summary{list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none;height:30px;display:inline-flex;align-items:center;padding:0 10px;border-radius:var(--oasis-radius);border:1px solid transparent;background:transparent;color:var(--oasis-text-muted);font-size:12px;font-weight:600;letter-spacing:.01em;transition:background .15s ease,color .15s ease,border-color .15s ease}.oasis-editor-table-actions-summary:hover{background:var(--oasis-hover-bg);color:var(--oasis-text)}.oasis-editor-table-actions-advanced[open] .oasis-editor-table-actions-summary{background:var(--oasis-active-bg);border-color:#94a3b852;color:var(--oasis-text)}.oasis-editor-table-actions-group{padding-top:2px}.oasis-editor-tool-button,.oasis-editor-tool-select,.oasis-editor-tool-color{border:1px solid transparent;background:transparent;color:var(--oasis-text);transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.oasis-editor-tool-button{min-width:30px;height:30px;padding:0 10px;border-radius:var(--oasis-radius);font:inherit;font-size:13px;font-weight:600;cursor:pointer;letter-spacing:.01em}.oasis-editor-tool-button:hover,.oasis-editor-tool-select:hover,.oasis-editor-tool-color:hover{background:var(--oasis-hover-bg);border-color:#94a3b847}.oasis-editor-tool-button:focus-visible,.oasis-editor-tool-select:focus-visible,.oasis-editor-tool-color:focus-visible{outline:none;border-color:#2563eb8c;box-shadow:0 0 0 2px #2563eb2e}.oasis-editor-tool-button-wide{min-width:64px}.oasis-editor-tool-button-active{background:var(--oasis-accent-active);border-color:#2563eb66;color:var(--oasis-accent-active-text);box-shadow:inset 0 1px #fff9}.oasis-editor-tool-button-active:hover{background:var(--oasis-accent-soft);border-color:#2563eb8c}.oasis-editor-tool-button:disabled,.oasis-editor-tool-select:disabled,.oasis-editor-tool-color:has(input:disabled){opacity:.45;cursor:not-allowed}.oasis-editor-tool-select{height:30px;padding:0 8px;border-radius:var(--oasis-radius);border:1px solid rgba(148,163,184,.3);background:#ffffffb3;font:inherit;font-size:13px;color:var(--oasis-text)}.oasis-editor-tool-select-small{min-width:64px}.oasis-editor-tool-color{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 8px;border-radius:var(--oasis-radius);border:1px solid rgba(148,163,184,.3);background:#ffffffb3;font-size:12px;font-weight:600}.oasis-editor-tool-metric{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 8px;border-radius:var(--oasis-radius);border:1px solid rgba(148,163,184,.3);background:#ffffffb3;font-size:12px;font-weight:600;color:var(--oasis-text-muted)}.oasis-editor-tool-metric:focus-within{border-color:#2563eb8c;box-shadow:0 0 0 2px #2563eb2e}.oasis-editor-toolbar-badge{display:inline-flex;align-items:center;height:30px;padding:0 10px;border-radius:999px;border:1px solid rgba(37,99,235,.22);background:#dbeafed9;color:var(--oasis-accent);font-size:12px;font-weight:700;white-space:nowrap}.oasis-editor-toolbar-note{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;border:1px solid rgba(124,58,237,.18);background:#7c3aed0f;color:var(--oasis-text-muted);font-size:11px;font-weight:600;white-space:nowrap}.oasis-editor-tool-number{width:48px;padding:0;border:0;outline:none;background:transparent;color:var(--oasis-text);font:inherit;font-size:12px;font-weight:600}.oasis-editor-tool-color-input{width:18px;height:18px;padding:0;border:0;border-radius:4px;background:transparent;cursor:pointer}.oasis-editor-toolbar-more-measure{position:absolute;top:0;right:0;visibility:hidden;pointer-events:none}.oasis-editor-toolbar-overflow-menu .oasis-editor-toolbar-group{flex-direction:row;flex-wrap:wrap;align-items:center;border:0;background:transparent}.oasis-editor-toolbar-overflow-dropdown-menu{width:min(360px,calc(100vw - 16px));max-height:min(520px,calc(100vh - 88px));overflow:auto}.oasis-editor-toolbar-overflow-menu .oasis-editor-toolbar-separator{width:100%;height:1px;margin:2px 0;background:var(--oasis-border-color-muted)}.oasis-editor-ui-button,.oasis-editor-ui-icon-button,.oasis-editor-ui-input,.oasis-editor-ui-select{font:inherit;color:var(--oasis-text)}.oasis-editor-ui-button,.oasis-editor-ui-icon-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:var(--oasis-radius);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.oasis-editor-ui-button-sm,.oasis-editor-ui-icon-button-sm{min-height:28px;padding:0 10px;font-size:12px}.oasis-editor-ui-button-md{min-height:34px;padding:0 14px;font-size:13px}.oasis-editor-ui-icon-button-md{width:34px;height:34px;padding:0}.oasis-editor-ui-button-full{width:100%}.oasis-editor-ui-button-primary{background:var(--oasis-accent);color:#fff}.oasis-editor-ui-button-secondary,.oasis-editor-ui-icon-button-secondary{border-color:var(--oasis-border-color);background:var(--oasis-paper)}.oasis-editor-ui-button-ghost,.oasis-editor-ui-icon-button-ghost{background:transparent}.oasis-editor-ui-button-danger{background:var(--oasis-danger);color:#fff}.oasis-editor-ui-button:hover:not(:disabled),.oasis-editor-ui-icon-button:hover:not(:disabled){background:var(--oasis-hover-bg);border-color:#94a3b852}.oasis-editor-ui-button-primary:hover:not(:disabled){background:#1557b0;border-color:transparent}.oasis-editor-ui-button-danger:hover:not(:disabled){background:#991b1b;border-color:transparent}.oasis-editor-ui-button:focus-visible,.oasis-editor-ui-icon-button:focus-visible,.oasis-editor-ui-input:focus-visible,.oasis-editor-ui-select:focus-visible,.oasis-editor-ui-checkbox-input:focus-visible{outline:none;box-shadow:var(--oasis-focus-ring)}.oasis-editor-ui-button:disabled,.oasis-editor-ui-icon-button:disabled,.oasis-editor-ui-input:disabled,.oasis-editor-ui-select:disabled,.oasis-editor-ui-checkbox-input:disabled{opacity:.5;cursor:not-allowed}.oasis-editor-ui-icon-button.is-active{background:var(--oasis-accent-active);color:var(--oasis-accent-active-text)}.oasis-editor-ui-field{display:flex;min-width:0;flex-direction:column;gap:4px}.oasis-editor-ui-field-label{font-size:12px;font-weight:600;color:var(--oasis-text)}.oasis-editor-ui-field-description{font-size:12px;line-height:1.35;color:var(--oasis-text-muted)}.oasis-editor-ui-field-error{font-size:12px;line-height:1.35;color:var(--oasis-danger)}.oasis-editor-ui-input,.oasis-editor-ui-select{min-height:34px;min-width:0;border:1px solid rgba(148,163,184,.4);border-radius:var(--oasis-radius);background:var(--oasis-paper);padding:0 10px;font-size:13px}.oasis-editor-ui-input[aria-invalid=true],.oasis-editor-ui-select[aria-invalid=true]{border-color:#b91c1ca6}.oasis-editor-ui-checkbox{display:inline-flex;align-items:flex-start;gap:8px;min-width:0;color:var(--oasis-text)}.oasis-editor-ui-checkbox-input{width:16px;height:16px;margin:2px 0 0;accent-color:var(--oasis-accent)}.oasis-editor-ui-checkbox-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.oasis-editor-ui-dialog-footer{display:flex;flex-wrap:wrap;gap:8px;width:100%}.oasis-editor-ui-dialog-footer-start{justify-content:flex-start}.oasis-editor-ui-dialog-footer-end{justify-content:flex-end}.oasis-editor-ui-dialog-footer-between{justify-content:space-between}.oasis-editor-plugin-ui-host{position:relative;display:flex;min-width:0;min-height:0;flex:1 1 auto}.oasis-editor-plugin-ui-main{display:flex;min-width:0;min-height:0;flex:1 1 auto}.oasis-editor-plugin-ui-main>.oasis-editor-main-container{flex:1 1 auto}.oasis-editor-plugin-side-panel{display:flex;width:var(--oasis-plugin-side-panel-width, 360px);min-width:min(var(--oasis-plugin-side-panel-width, 360px),100%);max-width:min(var(--oasis-plugin-side-panel-width, 360px),100%);min-height:0;flex:0 0 var(--oasis-plugin-side-panel-width, 360px);flex-direction:column;border-left:1px solid var(--oasis-border-color);background:var(--oasis-surface, var(--oasis-paper));color:var(--oasis-text);box-shadow:-8px 0 24px #0f172a1f;z-index:30}.oasis-editor-plugin-side-panel-overlay{position:absolute;inset:0 0 0 auto;display:flex;justify-content:flex-end;pointer-events:none;z-index:40}.oasis-editor-plugin-side-panel-overlay .oasis-editor-plugin-side-panel{pointer-events:auto;height:100%}.oasis-editor-plugin-side-panel-header,.oasis-editor-plugin-side-panel-footer{display:flex;align-items:center;gap:8px;padding:12px;border-bottom:1px solid var(--oasis-border-color)}.oasis-editor-plugin-side-panel-footer{border-top:1px solid var(--oasis-border-color);border-bottom:0}.oasis-editor-plugin-side-panel-title{display:inline-flex;min-width:0;flex:1 1 auto;align-items:center;gap:8px;font-size:14px;font-weight:700}.oasis-editor-plugin-side-panel-title span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oasis-editor-plugin-side-panel-body{min-height:0;flex:1 1 auto;overflow:auto;padding:12px}.oasis-editor-plugin-floating-actions{position:absolute;display:flex;gap:8px;z-index:45}.oasis-editor-plugin-floating-actions-viewport{position:fixed}.oasis-editor-plugin-floating-actions-bottom-right{right:18px;bottom:18px}.oasis-editor-plugin-floating-actions-bottom-left{bottom:18px;left:18px}.oasis-editor-plugin-floating-actions-top-right{top:18px;right:18px}.oasis-editor-plugin-floating-actions-top-left{top:18px;left:18px}.oasis-editor-plugin-floating-action{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.36);border-radius:999px;background:var(--oasis-accent);color:#fff;box-shadow:0 12px 30px #0f172a3d;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}.oasis-editor-plugin-floating-action:hover:not(:disabled){background:#1557b0;transform:translateY(-1px)}.oasis-editor-plugin-floating-action:focus-visible{outline:none;box-shadow:var(--oasis-focus-ring),0 12px 30px #0f172a3d}.oasis-editor-plugin-floating-action:disabled{opacity:.5;cursor:not-allowed}.oasis-editor-paper{position:relative;width:100%;min-height:100%;border-radius:20px;background:var(--oasis-paper);cursor:text;box-shadow:inset 0 0 0 1px var(--oasis-border-color-muted),var(--oasis-paper-shadow)}.oasis-editor-paper-stack{display:grid;gap:24px;justify-items:center}.oasis-editor-page-virtual-placeholder{width:100%;height:100%;min-height:100%;pointer-events:none}.oasis-editor-paper-dimmed-main .oasis-editor-surface{opacity:.3}.oasis-editor-surface{position:relative;min-height:100%;box-sizing:border-box;cursor:text;z-index:1}.oasis-editor-page-header-zone,.oasis-editor-page-footer-zone{position:absolute;box-sizing:border-box;z-index:2;transition:opacity .2s ease-in-out}.oasis-editor-zone-dimmed{opacity:.3}.oasis-editor-zone-active{opacity:1;z-index:3}.oasis-editor-page-header-guide,.oasis-editor-page-footer-guide{position:absolute;left:0;right:0;border-top:1px dashed rgba(148,163,184,.35)}.oasis-editor-page-footer-guide{border-top:0;border-bottom:1px dashed rgba(148,163,184,.35)}.oasis-editor-block{margin:0;letter-spacing:.002em;white-space:pre-wrap;word-break:break-word}.oasis-editor-block-list{display:flex;align-items:flex-start;--list-level: 0}.oasis-editor-block-list[data-list-align=center]{justify-content:center}.oasis-editor-block-list[data-list-align=right]{justify-content:flex-end}.oasis-editor-list-item{display:flex;align-items:flex-start;gap:14px;width:100%;max-width:100%}.oasis-editor-block-list[data-list-align=center] .oasis-editor-list-item,.oasis-editor-block-list[data-list-align=right] .oasis-editor-list-item{width:fit-content}.oasis-editor-list-content{flex:1 1 auto;min-width:0}.oasis-editor-link{color:inherit;text-decoration:inherit}.oasis-editor-revision-insert{color:var(--oasis-revision-insert);text-decoration:underline;text-decoration-thickness:1px}.oasis-editor-revision-delete{color:var(--oasis-revision-delete);text-decoration:line-through;text-decoration-thickness:1px}.oasis-editor-revision-overlay{position:absolute;z-index:1000;pointer-events:none;filter:drop-shadow(0 4px 6px -1px rgb(0 0 0 / .1))}.oasis-editor-revision-overlay-content{background:var(--oasis-paper);border:1px solid var(--oasis-border-color);border-radius:6px;padding:8px 12px;display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--oasis-text);white-space:nowrap}.oasis-editor-revision-overlay-author{font-weight:500}.oasis-editor-revision-overlay-date{color:var(--oasis-text-muted);font-size:11px}.oasis-editor-revision-overlay-arrow{position:absolute;bottom:-6px;left:12px;width:12px;height:12px;background:var(--oasis-paper);border-right:1px solid var(--oasis-border-color);border-bottom:1px solid var(--oasis-border-color);transform:rotate(45deg)}.oasis-editor-image-char{display:inline-block}.oasis-editor-tab-char{display:inline-block;-webkit-user-select:none;user-select:none}.oasis-editor-image-inline{position:relative;display:inline-block;vertical-align:bottom}.oasis-editor-image-inline-selected{z-index:2}.oasis-editor-image{display:inline-block;max-width:100%;height:auto;vertical-align:bottom;border-radius:4px;box-sizing:border-box}.oasis-editor-image-selected{outline:2px solid rgba(37,99,235,.9);outline-offset:2px;box-shadow:0 0 0 4px #2563eb2e}.oasis-editor-selection-overlay{position:absolute;box-sizing:border-box;border:2px solid rgba(37,99,235,.9);box-shadow:0 0 0 4px #2563eb2e;border-radius:2px;z-index:3;pointer-events:auto}.oasis-editor-selection-overlay-root{pointer-events:none}.oasis-editor-image-selection-overlay{cursor:grab}.oasis-editor-image-selection-overlay:active{cursor:grabbing}.oasis-editor-caret{position:absolute;width:0;height:1em;border-left:2px solid transparent;pointer-events:none;z-index:3}.oasis-editor-caret-active{border-left-color:var(--oasis-caret-color);animation:oasis-editor-blink 1.05s steps(1) infinite}.oasis-editor-selection-box{position:absolute;pointer-events:none;z-index:1;background:var(--oasis-selection-bg);border-radius:0}.oasis-editor-comment-overlay-root{pointer-events:none}.oasis-editor-comment-highlight{position:absolute;pointer-events:auto;cursor:pointer;z-index:1;background:var(--oasis-comment-bg);border-bottom:1px solid var(--oasis-comment-underline)}.oasis-editor-comment-highlight-active{background:var(--oasis-comment-bg-active)}.oasis-editor-comment-popup{position:absolute;z-index:1000;max-width:260px;pointer-events:auto;background:var(--oasis-paper);border:1px solid var(--oasis-border-color);border-radius:6px;padding:8px 12px;font-size:12px;color:var(--oasis-text);filter:drop-shadow(0 4px 6px -1px rgb(0 0 0 / .1))}.oasis-editor-comment-popup-header{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}.oasis-editor-comment-popup-author{font-weight:500}.oasis-editor-comment-popup-date{color:var(--oasis-text-muted);font-size:11px}.oasis-editor-comment-popup-resolved{color:var(--oasis-revision-insert);margin-left:auto}.oasis-editor-comment-popup-body{white-space:pre-wrap;line-height:1.4}.oasis-editor-resize-handle{position:absolute;width:14px;height:14px;padding:0;border:2px solid var(--oasis-paper);border-radius:999px;background:var(--oasis-caret-color);box-shadow:0 2px 6px #0f172a33;pointer-events:auto}.oasis-editor-resize-handle[data-direction=nw]{top:-7px;left:-7px;cursor:nwse-resize}.oasis-editor-resize-handle[data-direction=n]{top:-7px;left:calc(50% - 7px);cursor:ns-resize}.oasis-editor-resize-handle[data-direction=ne]{top:-7px;right:-7px;cursor:nesw-resize}.oasis-editor-resize-handle[data-direction=e]{top:calc(50% - 7px);right:-7px;cursor:ew-resize}.oasis-editor-resize-handle[data-direction=se]{right:-7px;bottom:-7px;cursor:nwse-resize}.oasis-editor-resize-handle[data-direction=s]{bottom:-7px;left:calc(50% - 7px);cursor:ns-resize}.oasis-editor-resize-handle[data-direction=sw]{bottom:-7px;left:-7px;cursor:nesw-resize}.oasis-editor-resize-handle[data-direction=w]{top:calc(50% - 7px);left:-7px;cursor:ew-resize}.oasis-editor-rotate-handle{position:absolute;width:14px;height:14px;padding:0;top:-28px;left:calc(50% - 7px);border:2px solid var(--oasis-paper);border-radius:999px;background:var(--oasis-caret-color);box-shadow:0 2px 6px #0f172a33;cursor:grab;pointer-events:auto}.oasis-editor-rotate-handle:active{cursor:grabbing}.oasis-editor-rotate-handle:before{content:"";position:absolute;top:12px;left:calc(50% - 1px);width:2px;height:14px;background:#2563ebe6}.oasis-editor-input{position:absolute;width:1.4ch;min-width:14px;margin:0;padding:0;border:0;outline:none;resize:none;overflow:hidden;background:transparent;color:transparent;caret-color:transparent;opacity:0;pointer-events:none}.oasis-editor-horizontal-ruler{flex:0 0 22px;height:22px;position:relative;overflow:hidden;background:var(--oasis-toolbar-bg, rgba(255, 255, 255, .85));border-bottom:1px solid var(--oasis-border-color);-webkit-user-select:none;user-select:none;touch-action:none;z-index:6}.oasis-editor-horizontal-ruler-track{position:relative;height:100%;will-change:transform}.oasis-editor-horizontal-ruler-page{position:absolute;top:0;bottom:0}.oasis-editor-horizontal-ruler-margin{position:absolute;top:4px;bottom:4px;background:#c9ced6;border-radius:2px}.oasis-editor-horizontal-ruler-content{position:absolute;top:4px;bottom:4px;background:#fff;box-shadow:inset 0 0 0 1px #94a3b859;border-radius:2px}.oasis-editor-horizontal-ruler-tick{position:absolute;top:50%;width:1px;background:#8a909b;transform:translateY(-50%);pointer-events:none}.oasis-editor-horizontal-ruler-tick-minor{height:3px;opacity:.55}.oasis-editor-horizontal-ruler-tick-medium{height:6px;opacity:.75}.oasis-editor-horizontal-ruler-tick-major{height:9px}.oasis-editor-horizontal-ruler-label{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:9px;line-height:1;color:var(--oasis-text-muted);font-variant-numeric:tabular-nums;pointer-events:none}.oasis-editor-horizontal-ruler-margin-handle{position:absolute;top:0;bottom:0;width:10px;margin:0;padding:0;border:0;background:transparent;cursor:col-resize;transform:translate(-50%);z-index:3}.oasis-editor-ruler-marker{position:absolute;width:0;height:0;margin:0;padding:0;border-style:solid;background:transparent;cursor:ew-resize;transform:translate(-50%)}.oasis-editor-ruler-marker-first-line{top:1px;border-width:7px 5px 0 5px;border-color:var(--oasis-accent, #1a73e8) transparent transparent transparent;z-index:4}.oasis-editor-ruler-marker-hanging,.oasis-editor-ruler-marker-right-indent{bottom:6px;border-width:0 5px 7px 5px;border-color:transparent transparent var(--oasis-accent, #1a73e8) transparent;z-index:4}.oasis-editor-ruler-marker-left-box{bottom:1px;width:10px;height:4px;border:0;border-radius:1px;background:var(--oasis-accent, #1a73e8);transform:translate(-50%);z-index:5}.oasis-editor-read-only .oasis-editor-ruler-marker,.oasis-editor-read-only .oasis-editor-horizontal-ruler-margin-handle{cursor:default;pointer-events:none}.oasis-editor-hover-col-resize,.oasis-editor-hover-col-resize *{cursor:col-resize!important}.oasis-editor-hover-row-resize,.oasis-editor-hover-row-resize *{cursor:row-resize!important}.oasis-editor-table-resize-guide{position:fixed;z-index:10000;pointer-events:none;background-color:transparent;border:1px dashed rgba(0,0,0,.5)}.oasis-editor-table-resize-guide-column{width:0;border-left-width:1px;border-right-width:0;border-top-width:0;border-bottom-width:0}.oasis-editor-table-resize-guide-row{height:0;border-top-width:1px;border-bottom-width:0;border-left-width:0;border-right-width:0}.oasis-editor-table-block{margin:0 0 18px;position:relative}.oasis-editor-table-drag-handle{position:absolute;top:-12px;left:-12px;width:24px;height:24px;background-color:var(--oasis-paper);border:1px solid var(--oasis-border-color);border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:move;opacity:0;transition:opacity .2s;z-index:100;color:var(--oasis-text-muted);box-shadow:0 1px 2px #0000000d}.oasis-editor-table-block:hover .oasis-editor-table-drag-handle{opacity:1}.oasis-editor-table-drag-handle svg{width:14px;height:14px}.oasis-editor-table-ghost{position:fixed;pointer-events:none;background-color:#e2e8f066;border:2px dashed var(--oasis-text-muted);border-radius:4px;z-index:10001;transform:scale(.95);transform-origin:top left;box-shadow:0 10px 15px -3px #0000001a}.oasis-editor-image-ghost{position:fixed;pointer-events:none;opacity:.5;z-index:10001;transform:scale(.95);transform-origin:top left;box-shadow:0 10px 15px -3px #0000001a;border:1px solid var(--oasis-text-muted)}.oasis-editor-table-grid{width:100%;border-collapse:collapse;background:#ffffffb3}.oasis-editor-list-marker{flex:0 0 34px;min-width:34px;padding-top:.1em;font-size:.95em;line-height:inherit;text-align:right;color:var(--oasis-text-muted);-webkit-user-select:none;user-select:none}.oasis-editor-docs.oasis-editor-app{grid-template-rows:auto auto 1fr;gap:0;padding:0;background:linear-gradient(180deg,#ffffffb8,#fff0),var(--oasis-docs-surface);--oasis-editor-gutter-top: 18px;--oasis-editor-gutter-bottom: 28px}.oasis-editor-docs .oasis-editor-main-container{width:100%;max-width:none;gap:0;margin:0;padding:0;background:var(--oasis-docs-surface)}.oasis-editor-docs .oasis-editor-stage{padding:18px 24px 8px;overflow:hidden;align-items:stretch}.oasis-editor-docs .oasis-editor-toolbar{width:100%;max-width:none;margin:0;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.oasis-editor-docs .oasis-editor-toolbar-view-compact{width:100%;max-width:none;min-height:42px;margin:0;padding:6px 20px 6px 14px;border-width:1px 0;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fffffff0}.oasis-editor-docs .oasis-editor-toolbar-view-ribbon{height:118px;min-height:118px;padding:0;border-width:0 0 1px;border-radius:0;background:#f4f4f4;overflow:hidden}.oasis-editor-docs .oasis-editor-toolbar-group{flex-wrap:nowrap;gap:2px;padding:0 3px;border-color:transparent;background:transparent}.oasis-editor-docs .oasis-editor-toolbar-item-wrapper{max-width:100%}.oasis-editor-docs .oasis-editor-toolbar-separator{height:24px;margin:0 3px;background:#5f636838}.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-button,.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-select,.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-color,.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-metric{height:32px;min-height:32px}.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-button i,.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-button svg{width:18px;height:18px}.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-button:disabled,.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-select:disabled,.oasis-editor-docs .oasis-editor-toolbar-view-compact .oasis-editor-tool-color:has(input:disabled){opacity:.56}.oasis-editor-docs .oasis-editor-editor-shell{height:100%;max-height:100%!important;min-height:0;border:0;border-radius:2px;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.oasis-editor-docs .oasis-editor-editor,.oasis-editor-docs .oasis-editor-editor-scroll-content{background:transparent}.oasis-editor-docs .oasis-editor-paper{border-radius:2px;border:1px solid rgba(218,220,224,.92);box-shadow:0 1px 2px #3c40433d,0 2px 6px 1px #3c40431a}.oasis-editor-docs .oasis-editor-statusbar{min-height:28px;margin-top:8px;padding:4px 22px;border:0;border-radius:999px;background:#ffffffb8;align-self:flex-end;box-shadow:0 1px 2px #3c40431a}.oasis-titlebar{display:flex;align-items:center;min-height:calc(var(--oasis-menu-height) + 8px);padding:2px 16px;border-bottom:1px solid var(--oasis-border-color-muted);background:var(--oasis-toolbar-bg);color:var(--oasis-text);box-sizing:border-box}.oasis-titlebar-left{display:flex;align-items:center}.oasis-titlebar-left{min-width:0}.oasis-titlebar svg,.oasis-outline-toggle svg,.oasis-menubar-submenu-icon{width:18px;height:18px}.oasis-titlebar-menubar-slot{min-width:0}.oasis-menubar{display:flex;align-items:center;min-height:var(--oasis-menu-height);background:transparent;color:var(--oasis-text);font:13px/1.2 var(--oasis-font-ui);-webkit-user-select:none;user-select:none}.oasis-menubar-menu{position:relative}.oasis-menubar-button{padding:5px 8px;border-radius:4px;cursor:pointer}.oasis-menubar-button:hover,.oasis-menubar-button-active{background:var(--oasis-hover-bg)}.oasis-menubar-dropdown,.oasis-menubar-submenu{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:220px;padding:6px 0;border:1px solid var(--oasis-toolbar-border);border-radius:6px;background:var(--oasis-paper);box-shadow:var(--oasis-menu-shadow)}.oasis-menubar-dropdown{top:100%;left:0}.oasis-menubar-submenu{top:-6px;left:100%;min-width:180px}.oasis-menubar-item{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:7px 16px;cursor:pointer;white-space:nowrap}.oasis-menubar-item-main{display:inline-flex;align-items:center;gap:10px;min-width:0}.oasis-menubar-item-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--oasis-text-muted);flex:0 0 16px}.oasis-menubar-item-icon svg{width:16px;height:16px;stroke-width:2}.oasis-menubar-item:hover{background:var(--oasis-hover-bg)}.oasis-menubar-shortcut{margin-left:auto;color:var(--oasis-text-muted);font-variant-numeric:tabular-nums}.oasis-menubar-separator{height:1px;margin:6px 0;background:var(--oasis-border-color-muted)}.oasis-outline-panel{display:flex;flex:0 0 248px;flex-direction:column;width:248px;border-right:1px solid var(--oasis-border-color-muted);background:#ffffffad;overflow:hidden;transition:width .18s ease,flex-basis .18s ease}.oasis-outline-panel-collapsed{flex-basis:32px;width:32px;border-right-color:transparent;background:transparent}.oasis-outline-header{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 14px;box-sizing:border-box}.oasis-outline-header-collapsed{justify-content:center;padding:0}.oasis-outline-title{font-size:14px;font-weight:600}.oasis-outline-toggle{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--oasis-text-muted);cursor:pointer}.oasis-outline-toggle:hover{background:var(--oasis-hover-bg);color:var(--oasis-text)}.oasis-outline-list{flex:1;overflow:auto;padding:0 12px 16px}.oasis-outline-empty{margin-top:14px;padding:0 4px;color:var(--oasis-text-muted);font-size:12px;line-height:1.45;text-align:left}.oasis-outline-item{margin:0 0 2px;margin-left:calc(var(--oasis-outline-level, 0) * 12px);padding:6px 8px;border-radius:4px;color:var(--oasis-text-muted);cursor:pointer;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oasis-outline-item:hover,.oasis-outline-item-active{background:var(--oasis-accent-soft);color:var(--oasis-accent)}@media (max-width: 900px){.oasis-editor-docs .oasis-editor-stage{padding:10px 8px 8px}.oasis-titlebar{min-height:auto;align-items:center;padding:8px}.oasis-outline-panel{display:none}.oasis-editor-app{padding:20px 14px;--oasis-editor-gutter-top: 18px;--oasis-editor-gutter-bottom: 18px}.oasis-editor-docs.oasis-editor-app{padding:0}.oasis-editor-toolbar{padding:10px}.oasis-editor-editor-shell{border-radius:22px}.oasis-editor-surface{min-height:0}.oasis-editor-block{font-size:inherit}}.oasis-editor-toolbar{display:flex;align-items:center;padding:6px 10px;background:var(--oasis-toolbar-bg);border-bottom:1px solid var(--oasis-toolbar-border);position:relative;min-height:44px;flex-wrap:nowrap;overflow:visible}.oasis-editor-toolbar-view-ribbon{display:block;width:100%;height:118px;min-height:118px;padding:0;box-sizing:border-box;background:#f4f4f4;border-bottom:1px solid #cfcfcf;box-shadow:none;overflow:hidden}.oasis-editor-ribbon-tabs{display:flex;align-items:flex-end;gap:0;height:34px;padding:0 8px;box-sizing:border-box;background:#f2f2f2;border-bottom:1px solid #d0d0d0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.oasis-editor-ribbon-tabs::-webkit-scrollbar{display:none}.oasis-editor-ribbon-tab{height:32px;padding:0 10px;border:1px solid transparent;border-bottom:none;border-radius:3px 3px 0 0;background:transparent;color:#2f2f2f;font:inherit;font-size:12px;line-height:1;cursor:pointer;white-space:nowrap}.oasis-editor-ribbon-tab:hover{background:#ececec}.oasis-editor-ribbon-tab:focus-visible{outline:2px solid #4c8bf5;outline-offset:-2px}.oasis-editor-ribbon-tab-active{background:#fff;border-color:#cfcfcf;color:#111}.oasis-editor-ribbon-panel{display:flex;align-items:stretch;gap:0;height:83px;min-height:83px;padding:5px 8px 3px;box-sizing:border-box;background:#fff;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.oasis-editor-ribbon-group{display:grid;grid-template-rows:63px 12px;align-items:stretch;padding:0 9px;box-sizing:border-box;border-right:1px solid #dcdcdc;min-width:max-content;max-height:75px}.oasis-editor-ribbon-group:first-child{padding-left:0}.oasis-editor-ribbon-group-rows{display:grid;grid-template-rows:30px 30px;align-content:start;gap:3px;min-height:63px}.oasis-editor-ribbon-row{display:flex;align-items:center;gap:2px;height:30px;min-height:30px;max-height:30px;overflow:visible}.oasis-editor-ribbon-group-label{min-width:0;color:#6f6f6f;font-size:10px;line-height:12px;text-align:center;white-space:nowrap}.oasis-editor-toolbar-view-ribbon .oasis-editor-toolbar-item{flex-shrink:0}.oasis-editor-toolbar-view-ribbon .oasis-editor-tool-button,.oasis-editor-toolbar-view-ribbon .oasis-editor-tool-select,.oasis-editor-toolbar-view-ribbon .oasis-editor-color-split{min-height:30px;height:30px;box-sizing:border-box}.oasis-editor-toolbar-view-ribbon .oasis-editor-tool-button{min-width:30px;padding:4px 7px;border-radius:3px}.oasis-editor-toolbar-view-ribbon .oasis-editor-tool-select{padding:3px 7px;border-radius:3px}.oasis-editor-toolbar-view-ribbon .oasis-editor-tool-select-wide{min-width:150px;max-width:150px}.oasis-editor-toolbar-view-ribbon .oasis-editor-tool-select-small{min-width:54px;max-width:54px}.oasis-editor-toolbar-view-ribbon .oasis-editor-toolbar-separator{height:24px;margin:0 4px}.oasis-editor-toolbar-view-ribbon .oasis-editor-color-split-main,.oasis-editor-toolbar-view-ribbon .oasis-editor-color-split-menu-button{min-height:28px}.oasis-editor-toolbar-view-ribbon .oasis-editor-toolbar-dropdown-menu,.oasis-editor-toolbar-view-ribbon .oasis-editor-color-menu,.oasis-editor-toolbar-view-ribbon .oasis-editor-table-grid-picker{overflow:auto}.oasis-editor-toolbar-layout-wrap{align-items:flex-start}.oasis-editor-toolbar-wrap-strip{display:flex;align-items:center;gap:6px;width:100%;min-width:0;flex:1 1 100%;flex-wrap:wrap;overflow:visible}.oasis-editor-toolbar-wrap-strip>.oasis-editor-toolbar-item{display:flex;align-items:center;flex-shrink:0}.oasis-editor-toolbar-strip{display:flex;align-items:center;gap:6px;width:100%;min-width:0;flex-wrap:nowrap;overflow:hidden}.oasis-editor-toolbar-group{display:flex;flex-direction:row;align-items:center;gap:2px;background:var(--oasis-paper);padding:4px;border-radius:var(--oasis-radius);border:1px solid var(--oasis-border-color-muted);flex-shrink:0}.oasis-editor-toolbar-item-hidden{display:none!important}.oasis-editor-toolbar-separator{width:1px;height:24px;background:var(--oasis-toolbar-border);margin:0 4px;flex-shrink:0}.oasis-editor-tool-button{background:transparent;border:none;padding:6px 8px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--oasis-text);font-size:13px;gap:4px;min-width:32px;min-height:32px;max-width:160px;transition:background .2s}.oasis-editor-tool-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oasis-editor-tool-button:hover:not(:disabled){background:var(--oasis-hover-bg)}.oasis-editor-tool-button:disabled{opacity:.4;cursor:default}.oasis-editor-tool-button-active{background:var(--oasis-accent-active)!important;color:var(--oasis-accent-active-text)!important}.oasis-editor-tool-button-wide{padding-left:10px;padding-right:10px}.oasis-editor-tool-button i{width:18px;height:18px;display:flex;align-items:center;justify-content:center}.oasis-editor-tool-select{padding:4px 8px;font-size:13px;border-radius:4px;border:1px solid var(--oasis-toolbar-border);background:var(--oasis-paper);color:var(--oasis-text);cursor:pointer;outline:none;height:32px}.oasis-editor-tool-select:hover{background:var(--oasis-bg);border-color:#c0c4c9}.oasis-editor-tool-select-wide{min-width:120px}.oasis-editor-tool-select-small{min-width:60px}.oasis-editor-tool-metric{display:grid;grid-template-columns:minmax(58px,1fr) minmax(64px,88px);align-items:center;gap:4px;font-size:11px;color:var(--oasis-text-muted);padding:0}.oasis-editor-tool-number{width:100%;box-sizing:border-box;height:28px;border:1px solid var(--oasis-toolbar-border);border-radius:4px;padding:0 4px;font-size:12px}.oasis-editor-tool-color{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--oasis-text-muted);padding:0 4px}.oasis-editor-tool-color-input{width:24px;height:24px;padding:0;border:1px solid var(--oasis-toolbar-border);border-radius:2px;cursor:pointer}.oasis-editor-color-split{display:inline-flex;align-items:stretch;height:32px;border:1px solid transparent;border-radius:4px;color:var(--oasis-text);background:transparent;overflow:hidden}.oasis-editor-color-split:hover,.oasis-editor-color-split:focus-within,.oasis-editor-color-split-active{background:var(--oasis-hover-bg);border-color:var(--oasis-toolbar-border)}.oasis-editor-color-split-main,.oasis-editor-color-split-menu-button{border:none;background:transparent;color:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;min-height:30px}.oasis-editor-color-split-main{width:30px;padding:3px 5px}.oasis-editor-color-split-menu-button{width:18px;padding:0;border-left:1px solid transparent}.oasis-editor-color-split:hover .oasis-editor-color-split-menu-button,.oasis-editor-color-split:focus-within .oasis-editor-color-split-menu-button,.oasis-editor-color-split-active .oasis-editor-color-split-menu-button{border-left-color:var(--oasis-toolbar-border)}.oasis-editor-color-split-main:hover,.oasis-editor-color-split-menu-button:hover,.oasis-editor-color-split-open,.oasis-editor-color-split-active .oasis-editor-color-split-main,.oasis-editor-color-split-active .oasis-editor-color-split-menu-button{background:var(--oasis-accent-soft)}.oasis-editor-color-split-main:focus-visible,.oasis-editor-color-split-menu-button:focus-visible{outline:2px solid var(--oasis-accent);outline-offset:-2px}.oasis-editor-color-split-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:20px;height:22px;padding-bottom:5px;box-sizing:border-box}.oasis-editor-color-split-icon i{width:18px;height:18px}.oasis-editor-underline-split-glyph{display:inline-flex;align-items:center;justify-content:center;width:20px;height:24px;font-size:20px;font-weight:400;line-height:1;font-family:Calibri,Arial,sans-serif;transform:translateY(1px)}.oasis-editor-underline-split-icon{height:22px;padding-bottom:5px}.oasis-editor-color-split-indicator{position:absolute;left:2px;right:2px;bottom:0;height:3px;border:1px solid rgba(0,0,0,.22);box-sizing:border-box}.oasis-editor-color-split-indicator-empty{background:linear-gradient(135deg,transparent 0 46%,#c0392b 46% 54%,transparent 54%),linear-gradient(45deg,#fff 0,#fff 25%,#e5e7eb 25%,#e5e7eb 50%,#fff 50%,#fff 75%,#e5e7eb 75%);background-size:auto,6px 6px}.oasis-editor-color-split-menu-button i{width:13px;height:13px}.oasis-editor-color-menu{z-index:1000;width:min(248px,calc(100vw - 16px));max-height:min(420px,calc(100vh - 88px));overflow:auto;box-sizing:border-box;padding:6px;display:grid;gap:6px;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 4px 12px #00000026}.oasis-editor-color-menu-section{display:grid;gap:5px}.oasis-editor-color-menu-heading{font-size:11px;font-weight:600;color:var(--oasis-text-muted);line-height:1.2;padding:2px 1px}.oasis-editor-color-theme-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:2px}.oasis-editor-color-theme-column{display:grid;gap:2px}.oasis-editor-color-standard-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:2px}.oasis-editor-color-swatch{width:20px;height:20px;padding:0;border:1px solid rgba(0,0,0,.18);border-radius:2px;cursor:pointer;position:relative}.oasis-editor-color-swatch:hover,.oasis-editor-color-swatch:focus-visible{outline:2px solid var(--oasis-accent);outline-offset:1px}.oasis-editor-color-swatch-active:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:solid #111827;border-width:0 2px 2px 0;transform:rotate(45deg);filter:drop-shadow(0 0 1px #ffffff)}.oasis-editor-color-menu-action{width:100%;min-height:30px;border:none;border-radius:4px;padding:5px 7px;display:flex;align-items:center;gap:8px;background:transparent;color:var(--oasis-text);font-size:12px;cursor:pointer}.oasis-editor-color-menu-action:hover,.oasis-editor-color-menu-action:focus-visible{background:var(--oasis-hover-bg);outline:none}.oasis-editor-color-menu-action-swatch{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--oasis-toolbar-border);border-radius:2px;background:var(--oasis-paper)}.oasis-editor-color-menu-action-swatch i{width:13px;height:13px}.oasis-editor-color-menu-more-swatch{background:linear-gradient(135deg,red 0,red 25%,#ffc000 25%,#ffc000 50%,#00b050 50%,#00b050 75%,#0070c0 75%)}.oasis-editor-color-custom-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.oasis-editor-toolbar-badge{background:var(--oasis-accent-soft);color:var(--oasis-accent);padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500}.oasis-editor-toolbar-note{font-size:11px;color:var(--oasis-text-muted);font-style:italic;margin-left:8px}.oasis-editor-table-actions-advanced{display:inline-block}.oasis-editor-table-actions-summary{font-size:12px;color:var(--oasis-accent);cursor:pointer;padding:4px 8px;border-radius:4px;list-style:none}.oasis-editor-table-actions-summary:hover{background:var(--oasis-hover-bg)}.oasis-editor-table-actions-group{position:absolute;top:100%;left:0;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 2px 10px #00000026;padding:8px;z-index:1000;display:flex;flex-wrap:wrap;max-width:400px;gap:4px}.oasis-editor-toolbar-dropdown{position:relative;display:inline-block}.oasis-editor-tool-button-dropdown{display:flex;align-items:center;gap:6px;padding:0 10px}.oasis-editor-dropdown-chevron{opacity:.5;margin-left:2px}.oasis-editor-toolbar-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:1000;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 4px 12px #00000026;padding:6px;min-width:200px;display:flex;flex-direction:column;gap:2px}.oasis-editor-toolbar-panel{width:min(320px,calc(100vw - 16px));max-height:min(420px,calc(100vh - 88px));overflow:auto;padding:10px;box-sizing:border-box;gap:8px}.oasis-editor-toolbar-table-panel{width:min(280px,calc(100vw - 16px))}.oasis-editor-toolbar-panel-section{display:grid;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--oasis-hover-bg)}.oasis-editor-toolbar-panel-section:last-child{padding-bottom:0;border-bottom:none}.oasis-editor-toolbar-panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.oasis-editor-toolbar-panel-grid{display:grid;grid-template-columns:1fr;gap:8px}.oasis-editor-toolbar-panel .oasis-editor-tool-button{min-width:32px;max-width:none}.oasis-editor-toolbar-panel .oasis-editor-tool-select{width:100%;box-sizing:border-box}.oasis-editor-toolbar-overflow-dropdown-menu{max-width:calc(100vw - 16px);max-height:min(520px,calc(100vh - 88px));overflow:auto;padding:8px;box-sizing:border-box;width:auto}.oasis-editor-toolbar-dropdown-menu>.oasis-editor-tool-button{width:100%;justify-content:flex-start;padding:8px 12px;border-radius:4px;background:transparent;border:none}.oasis-editor-toolbar-dropdown-menu .oasis-editor-tool-button:hover{background:var(--oasis-hover-bg)}.oasis-editor-toolbar-list-options{display:grid;gap:10px;min-width:188px;padding:6px}.oasis-editor-toolbar-field{display:grid;gap:5px;color:var(--oasis-text-muted);font-size:12px;font-weight:600}.oasis-editor-toolbar-field .oasis-editor-tool-select,.oasis-editor-toolbar-field .oasis-editor-tool-number{width:100%;box-sizing:border-box}.oasis-editor-toolbar-field .oasis-editor-tool-number{height:30px;padding:0 8px;border:1px solid var(--oasis-toolbar-border);border-radius:4px;background:var(--oasis-paper)}.oasis-editor-toolbar-overflow-menu{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px}.oasis-editor-toolbar-overflow-menu .oasis-editor-toolbar-group{background:transparent;border:none;padding:0;display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:2px}.oasis-editor-toolbar-overflow-menu .oasis-editor-toolbar-separator{width:1px;height:24px;background:var(--oasis-toolbar-border);margin:0 2px;flex-shrink:0}.oasis-editor-toolbar-overflow-menu .oasis-editor-toolbar-item-wrapper{flex-shrink:0}.oasis-editor-toolbar-overflow-menu .oasis-editor-tool-button{width:auto;padding:6px 8px}.oasis-editor-toolbar-more-measure{position:absolute;visibility:hidden;pointer-events:none;right:0;top:0}@media (max-width: 760px){.oasis-editor-toolbar{padding:5px 8px}.oasis-editor-toolbar-strip{gap:4px}.oasis-editor-tool-select-wide{max-width:120px}.oasis-editor-tool-select:not(.oasis-editor-tool-select-small){max-width:168px}.oasis-editor-tool-select-wide{min-width:104px}.oasis-editor-tool-select-small{min-width:52px}}@media (max-width: 480px){.oasis-editor-toolbar-group{padding:3px}.oasis-editor-tool-button{min-width:30px;min-height:30px;padding:5px 7px}.oasis-editor-tool-button i{width:17px;height:17px}.oasis-editor-tool-select{max-width:132px}.oasis-editor-tool-select-wide{max-width:112px}}.oasis-editor-table-grid-picker{z-index:1000;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 4px 12px #00000026;padding:8px;display:flex;flex-direction:column;gap:6px;-webkit-user-select:none;user-select:none}.oasis-editor-table-grid-picker-status{font-size:12px;font-weight:600;color:var(--oasis-text);text-align:center;min-height:16px}.oasis-editor-table-grid-picker-grid{display:grid;gap:2px}.oasis-editor-table-grid-picker-cell{width:18px;height:18px;padding:0;margin:0;border:1px solid var(--oasis-toolbar-border);background:var(--oasis-bg);border-radius:2px;cursor:pointer;transition:background .05s,border-color .05s}.oasis-editor-table-grid-picker-cell:hover{border-color:var(--oasis-accent)}.oasis-editor-table-grid-picker-cell-active{background:var(--oasis-accent-soft);border-color:var(--oasis-accent)}.oasis-editor-underline-split-indicator{position:absolute;left:3px;right:3px;bottom:0;height:0;border-bottom:1px solid currentColor;box-sizing:border-box}.oasis-editor-underline-split-indicator[data-style=double]{border-bottom-style:double;border-bottom-width:3px}.oasis-editor-underline-split-indicator[data-style=thick]{border-bottom-width:2px}.oasis-editor-underline-split-indicator[data-style=dotted],.oasis-editor-underline-split-indicator[data-style=dottedheavy]{border-bottom-style:dotted}.oasis-editor-underline-split-indicator[data-style=dash],.oasis-editor-underline-split-indicator[data-style=dashedheavy],.oasis-editor-underline-split-indicator[data-style=dashlong],.oasis-editor-underline-split-indicator[data-style=dashlongheavy],.oasis-editor-underline-split-indicator[data-style=dotdash],.oasis-editor-underline-split-indicator[data-style=dashdotheavy],.oasis-editor-underline-split-indicator[data-style=dotdotdash],.oasis-editor-underline-split-indicator[data-style=dashdotdotheavy]{border-bottom-style:dashed}.oasis-editor-underline-split-indicator[data-style=wave],.oasis-editor-underline-split-indicator[data-style=wavyheavy],.oasis-editor-underline-split-indicator[data-style=wavydouble]{border-bottom-style:solid;border-bottom-width:0;background-image:linear-gradient(135deg,transparent 0 40%,currentColor 40% 60%,transparent 60%),linear-gradient(45deg,transparent 0 40%,currentColor 40% 60%,transparent 60%);background-repeat:repeat-x;background-size:4px 3px;background-position:0 100%,2px 100%;height:3px}.oasis-editor-underline-menu{width:min(220px,calc(100vw - 16px))}.oasis-editor-underline-menu-list{display:grid;gap:2px}.oasis-editor-underline-menu-item{width:100%;min-height:26px;border:none;border-radius:4px;padding:4px 8px;display:grid;grid-template-columns:64px 1fr;align-items:center;gap:10px;background:transparent;color:var(--oasis-text);font-size:12px;cursor:pointer;text-align:left}.oasis-editor-underline-menu-item:hover,.oasis-editor-underline-menu-item:focus-visible{background:var(--oasis-hover-bg);outline:none}.oasis-editor-underline-menu-item-active{background:var(--oasis-accent-soft)}.oasis-editor-underline-menu-preview{display:inline-flex;align-items:flex-end;justify-content:stretch;height:14px;width:100%;color:currentColor}.oasis-editor-underline-menu-stroke{display:block;width:100%;border-bottom:1px solid currentColor;height:0;align-self:flex-end}.oasis-editor-underline-menu-stroke-svg{border-bottom:none;height:9px;align-self:center}.oasis-editor-underline-menu-label{font-size:12px;color:var(--oasis-text);line-height:1.2}.oasis-editor-line-spacing-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:currentColor}.oasis-editor-line-spacing-icon svg{width:18px;height:18px;display:block}.oasis-editor-line-spacing-menu{min-width:200px;padding:4px;gap:0}.oasis-editor-line-spacing-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;background:transparent;border:none;border-radius:4px;cursor:pointer;font-size:13px;text-align:left;color:var(--oasis-text)}.oasis-editor-line-spacing-item:hover{background:var(--oasis-hover-bg)}.oasis-editor-line-spacing-item-active{font-weight:600}.oasis-editor-line-spacing-item-check{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--oasis-text)}.oasis-editor-line-spacing-item-label{flex:1;min-width:0}.oasis-editor-line-spacing-menu-separator{height:1px;background:var(--oasis-toolbar-border);margin:4px 0}.oasis-editor-line-spacing-item-more{color:var(--oasis-text)}.oasis-editor-floating-toolbar{position:fixed;display:flex;align-items:center;gap:4px;padding:6px 8px;background:#fff;border:1px solid #dadce0;border-radius:10px;box-shadow:0 8px 24px #0f172a2e,0 2px 6px #0f172a14;z-index:2147483600;pointer-events:auto;white-space:nowrap;width:max-content;max-width:calc(100vw - 24px);transform:translate(-50%,calc(-100% - 12px));animation:oasis-editor-floating-toolbar-fade .12s ease-out}@keyframes oasis-editor-floating-toolbar-fade{0%{opacity:0;transform:translate(-50%,calc(-100% - 6px))}to{opacity:1;transform:translate(-50%,calc(-100% - 12px))}}.oasis-editor-floating-toolbar .oasis-editor-toolbar-group{background:transparent;border:none;padding:0;gap:2px;flex-shrink:0}.oasis-editor-floating-toolbar .oasis-editor-toolbar-separator{height:22px;margin:0 2px;flex-shrink:0}.oasis-editor-floating-toolbar .oasis-editor-tool-button{min-width:28px;min-height:28px;padding:4px 6px;flex-shrink:0}.oasis-editor-floating-toolbar .oasis-editor-tool-button i{width:16px;height:16px}.oasis-editor-layout-options-anchor{position:fixed;z-index:2147483600;display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:#fff;border:1px solid #dadce0;border-radius:6px;box-shadow:0 2px 6px #0f172a2e;color:#444746;cursor:pointer;pointer-events:auto}.oasis-editor-layout-options-anchor:hover{background:#f1f5f9}.oasis-editor-layout-options-anchor svg{width:18px;height:18px}.oasis-editor-layout-options-popup{position:fixed;z-index:2147483601;width:248px;padding:10px 12px 12px;background:#fff;border:1px solid #dadce0;border-radius:10px;box-shadow:0 8px 24px #0f172a2e,0 2px 6px #0f172a14;pointer-events:auto;font-family:Segoe UI,system-ui,sans-serif;animation:oasis-editor-floating-toolbar-fade .12s ease-out}.oasis-editor-layout-options-popup-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.oasis-editor-layout-options-title{font-size:11px;font-weight:600;color:#5f6368;text-transform:uppercase;letter-spacing:.04em}.oasis-editor-layout-options-close{border:none;background:transparent;color:#5f6368;cursor:pointer;font-size:16px;line-height:1;padding:2px 4px;border-radius:4px}.oasis-editor-layout-options-close:hover{background:#f1f5f9}.oasis-editor-layout-options-group-label{font-size:11px;font-weight:600;color:#5f6368;margin:8px 0 4px}.oasis-editor-layout-options-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.oasis-editor-layout-options-cell{display:flex;align-items:center;justify-content:center;height:40px;border:1px solid transparent;border-radius:6px;background:transparent;color:#3c4043;cursor:pointer}.oasis-editor-layout-options-cell:hover{background:#f1f5f9}.oasis-editor-layout-options-cell.oasis-editor-layout-options-cell-active{border-color:#1a73e8;background:#e8f0fe;color:#1a73e8}.oasis-editor-layout-options-cell svg{width:34px;height:28px}.oasis-editor-layout-options-radios{margin-top:10px;border-top:1px solid #ececec;padding-top:8px;display:flex;flex-direction:column;gap:6px}.oasis-editor-layout-options-radio{display:flex;align-items:center;gap:6px;font-size:12px;color:#3c4043;cursor:pointer}.oasis-editor-layout-options-radio[aria-disabled=true]{opacity:.5;cursor:default}.oasis-editor-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.oasis-editor-dialog{background:#fff;border-radius:8px;box-shadow:0 4px 24px #0003;min-width:320px;max-width:90vw;max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden;animation:oasis-dialog-in .2s ease-out}.oasis-editor-dialog-sm{width:min(360px,calc(100vw - 32px))}.oasis-editor-dialog-md{width:min(520px,calc(100vw - 32px))}.oasis-editor-dialog-lg{width:min(720px,calc(100vw - 32px))}.oasis-editor-dialog-font{width:min(720px,calc(100vw - 32px));min-height:min(640px,calc(100vh - 48px))}@keyframes oasis-dialog-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.oasis-editor-dialog-header{padding:12px 16px;border-bottom:1px solid #dadce0;display:flex;align-items:center;justify-content:space-between;background:#f8f9fa}.oasis-editor-dialog-title{margin:0;font-size:14px;font-weight:600;color:#444746}.oasis-editor-dialog-close{background:transparent;border:none;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#70757a;border-radius:4px;transition:background .2s}.oasis-editor-dialog-close:hover{background:#0000000d;color:#1f1f1f}.oasis-editor-dialog-body{padding:16px;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto}.oasis-editor-dialog-footer{flex:0 0 auto;padding:12px 16px;border-top:1px solid #dadce0;display:flex;justify-content:flex-end;gap:8px;background:#f8f9fa}.oasis-editor-dialog-input-group{display:flex;flex-direction:column;gap:4px}.oasis-editor-dialog-label{font-size:12px;font-weight:500;color:#70757a}.oasis-editor-dialog-input{padding:8px 12px;font-size:13px;border:1px solid #dadce0;border-radius:4px;outline:none;transition:border-color .2s,box-shadow .2s}.oasis-editor-dialog-input:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e833}.oasis-editor-dialog-button{padding:8px 16px;font-size:13px;font-weight:500;border-radius:4px;cursor:pointer;transition:background .2s}.oasis-editor-dialog-button-primary{background:#1a73e8;color:#fff;border:none}.oasis-editor-dialog-button-primary:hover{background:#1557b0}.oasis-editor-dialog-button-secondary{background:#fff;color:#1a73e8;border:1px solid #dadce0}.oasis-editor-dialog-button-secondary:hover{background:#f1f3f4}.oasis-editor-dialog-row{display:flex;gap:12px;align-items:flex-end}.oasis-editor-dialog-input-group-grow{flex:1;min-width:0}.oasis-editor-dialog-color{width:56px;height:32px;padding:2px;border:1px solid #dadce0;border-radius:4px;background:#fff;cursor:pointer}.oasis-editor-dialog-style-row{display:flex;flex-wrap:wrap;gap:6px 14px;padding:4px 0}.oasis-editor-dialog-style-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#1f1f1f;cursor:pointer}.oasis-editor-dialog-style-toggle input{accent-color:#1a73e8;cursor:pointer}.oasis-editor-dialog-preview{min-height:56px;padding:12px;border:1px dashed #dadce0;border-radius:4px;background:#fafbfc;line-height:1.4}.oasis-editor-dialog-help-text{min-height:16px;font-size:12px;color:#70757a}.oasis-editor-font-dialog-body{padding:12px}.oasis-editor-font-dialog-tabs{min-height:500px}.oasis-editor-font-dialog-tabs .oasis-editor-tabs-panel{min-height:468px;padding:12px;overflow:auto}.oasis-editor-font-dialog-panel{display:flex;min-height:444px;flex-direction:column;gap:10px}.oasis-editor-font-dialog-font-panel .oasis-editor-dialog-row{align-items:flex-start}.oasis-editor-font-dialog-size-group{width:96px;flex:0 0 96px}.oasis-editor-font-dialog-custom-size-group,.oasis-editor-font-dialog-style-list-group,.oasis-editor-font-dialog-color-mode-group{width:170px;flex:0 0 170px}.oasis-editor-font-dialog-color-row{align-items:flex-start}.oasis-editor-font-dialog-fieldset{margin:0 0 12px;padding:10px 8px 8px;border:1px solid #d9d9d9;border-radius:0}.oasis-editor-font-dialog-fieldset legend{padding:0 6px;font-size:12px;color:#202124}.oasis-editor-font-dialog-word-row{display:grid;grid-template-columns:156px minmax(160px,172px) 36px 76px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:6px}.oasis-editor-font-dialog-word-row .oasis-editor-dialog-input{min-width:0;width:100%}.oasis-editor-font-dialog-word-row .oasis-editor-dialog-label{margin:0}.oasis-editor-font-dialog-small-input{width:76px}.oasis-editor-font-dialog-by-label{justify-self:end}.oasis-editor-font-dialog-kerning-row{grid-template-columns:max-content 64px max-content 1fr;column-gap:8px}.oasis-editor-font-dialog-kerning-toggle,.oasis-editor-font-dialog-contextual-toggle{margin-top:2px}.oasis-editor-font-dialog-kerning-toggle{min-width:136px;white-space:nowrap}.oasis-editor-font-dialog-kerning-input{width:64px}.oasis-editor-font-dialog-kerning-suffix{min-height:0;white-space:nowrap}.oasis-editor-font-dialog-advanced-preview{min-height:42px;display:flex;align-items:center;justify-content:center;border-style:solid;overflow:hidden;white-space:nowrap;background:linear-gradient(#111,#111) left 12px center / 80px 1px no-repeat,linear-gradient(#111,#111) right 12px center / 80px 1px no-repeat,#fff;font-size:18px}.oasis-editor-table-properties-dialog{width:min(680px,calc(100vw - 32px))}.oasis-editor-table-properties-body{padding:10px 12px 12px}.oasis-editor-table-properties-tabs .oasis-editor-tabs-panel{min-height:360px;padding:12px 4px 0;overflow:auto}.oasis-editor-table-properties-panel{display:flex;flex-direction:column;gap:10px}.oasis-editor-table-properties-cell-preview{width:92px;height:48px;margin-top:8px;box-sizing:border-box;background:#fff}.oasis-editor-table-properties-textarea{min-height:120px;resize:vertical}@media (max-width: 640px){.oasis-editor-dialog-font{min-height:0}.oasis-editor-dialog-row,.oasis-editor-font-dialog-word-row,.oasis-editor-font-dialog-kerning-row{display:flex;align-items:stretch;flex-direction:column}.oasis-editor-font-dialog-size-group,.oasis-editor-font-dialog-custom-size-group,.oasis-editor-font-dialog-style-list-group,.oasis-editor-font-dialog-color-mode-group{width:auto;flex:1 1 auto}.oasis-editor-font-dialog-by-label{justify-self:start}}.oasis-editor-tabs{display:flex;min-width:0;flex-direction:column}.oasis-editor-tabs-list{display:flex;align-items:flex-end;gap:2px;border-bottom:1px solid #c7cbd1;padding:0 8px}.oasis-editor-tabs-tab{position:relative;bottom:-1px;min-height:30px;padding:6px 13px;border:1px solid #c7cbd1;border-bottom-color:transparent;border-radius:4px 4px 0 0;background:#f3f4f6;color:#202124;font:inherit;font-size:13px;cursor:pointer}.oasis-editor-tabs-tab:hover:not(:disabled){background:#fff}.oasis-editor-tabs-tab:focus-visible{outline:2px solid #1a73e8;outline-offset:-2px}.oasis-editor-tabs-tab.is-active{z-index:1;background:#fff;border-bottom-color:#fff;font-weight:500}.oasis-editor-tabs-tab:disabled{color:#9aa0a6;cursor:default}.oasis-editor-tabs-panel{display:none;min-width:0;border:1px solid #c7cbd1;border-top:0;background:#fff}.oasis-editor-tabs-panel.is-active{display:block}.oasis-editor-find-replace-dialog{position:fixed;top:100px;right:40px;width:320px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;z-index:1000;display:flex;flex-direction:column;animation:oasis-fr-slide-in .2s ease-out}@keyframes oasis-fr-slide-in{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.oasis-editor-fr-header{padding:12px 16px;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;align-items:center;font-weight:600;color:#1e293b;font-size:.875rem}.oasis-editor-fr-close{background:transparent;border:none;cursor:pointer;color:#94a3b8;padding:4px;border-radius:4px;display:flex}.oasis-editor-fr-close:hover{background:#f1f5f9;color:#64748b}.oasis-editor-fr-body{padding:16px;display:flex;flex-direction:column;gap:12px}.oasis-editor-fr-input-group{display:flex;flex-direction:column;gap:8px}.oasis-editor-fr-input-wrapper{position:relative;display:flex;align-items:center}.oasis-editor-fr-input{width:100%;padding:8px 80px 8px 12px;border:1px solid #cbd5e1;border-radius:4px;font-size:.875rem;outline:none}.oasis-editor-fr-input:focus{border-color:#3b82f6;ring:2px solid #bfdbfe}.oasis-editor-fr-counter{position:absolute;right:12px;font-size:.75rem;color:#94a3b8;pointer-events:none}.oasis-editor-fr-actions{display:flex;gap:4px;justify-content:flex-end}.oasis-editor-fr-actions button{background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;padding:6px;cursor:pointer;color:#475569;display:flex;align-items:center}.oasis-editor-fr-actions button:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.oasis-editor-fr-actions button:disabled{opacity:.5;cursor:not-allowed}.oasis-editor-fr-btn-text{font-size:.75rem;font-weight:500;padding:6px 12px!important}.oasis-editor-fr-options{display:flex;gap:16px;margin-top:4px}.oasis-editor-fr-checkbox{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#64748b;cursor:pointer}.oasis-editor-fr-checkbox input{cursor:pointer}.oasis-editor-context-menu{position:fixed;z-index:2147483600;min-width:200px;background:#fff;border:1px solid #dadce0;border-radius:8px;box-shadow:0 8px 24px #0f172a2e,0 2px 6px #0f172a14;padding:6px 0;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none;font-size:13px;color:#1f1f1f;animation:oasis-editor-context-menu-in .1s ease-out}@keyframes oasis-editor-context-menu-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.oasis-editor-context-menu-item{display:flex;align-items:center;gap:10px;padding:6px 14px;background:transparent;border:none;cursor:pointer;text-align:left;font-size:13px;color:inherit;width:100%;transition:background .1s}.oasis-editor-context-menu-item:hover:not(:disabled),.oasis-editor-context-menu-item:focus-visible:not(:disabled){background:#f1f3f4;outline:none}.oasis-editor-context-menu-item:disabled{color:#9aa0a6;cursor:default}.oasis-editor-context-menu-item i{width:16px;height:16px;flex-shrink:0;color:#5f6368}.oasis-editor-context-menu-item:disabled i{color:#bdc1c6}.oasis-editor-context-menu-label{flex:1}.oasis-editor-context-menu-shortcut{color:#5f6368;font-size:12px;margin-left:16px}.oasis-editor-context-menu-item:disabled .oasis-editor-context-menu-shortcut{color:#bdc1c6}.oasis-editor-context-menu-separator{height:1px;background:#e8eaed;margin:4px 0}
|
package/dist/oasis-editor.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { aU, bJ, bK, bL, bM, bN, b9, bO, aV, aQ, bP, bQ, bR, aT, bS, aO, bT, bU, bV, bW, bX, bF, bY, bZ, b_, b$, c0, c1, c2, c3, c4, c5, c6, c7, be, c8, bE, c9, bL as bL2, bQ as bQ2, bS as bS2, c0 as c02, c2 as c22, c7 as c72, aS, aM, ca, cb, cc, aP, cd, ce, aR } from "./index-
|
|
1
|
+
import { aU, bJ, bK, bL, bM, bN, b9, bO, aV, aQ, bP, bQ, bR, aT, bS, aO, bT, bU, bV, bW, bX, bF, bY, bZ, b_, b$, c0, c1, c2, c3, c4, c5, c6, c7, be, c8, bE, c9, bL as bL2, bQ as bQ2, bS as bS2, c0 as c02, c2 as c22, c7 as c72, aS, aM, ca, cb, cc, aP, cd, ce, aR } from "./index-Dqm-2RUA.js";
|
|
2
2
|
export {
|
|
3
3
|
aU as BalloonShell,
|
|
4
4
|
bJ as Button,
|