ooxml-ui 1.18.2 → 1.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -0
- package/dist/building-block-styles.d.ts +5 -0
- package/dist/building-block-styles.d.ts.map +1 -0
- package/dist/chunk-6Y7KR2I3.js +299 -0
- package/dist/{chunk-EVL7GFC7.js → chunk-KH2ZG3N6.js} +2 -2
- package/dist/{chunk-MSXUCINT.js → chunk-QEIGB73C.js} +1 -1
- package/dist/docx/building-blocks.d.ts +31 -0
- package/dist/docx/component.d.ts +1 -1
- package/dist/docx/editor-core.d.ts +3 -0
- package/dist/docx/element-api.d.ts +8 -0
- package/dist/docx/index.d.ts +1 -0
- package/dist/docx/styles/index.d.ts +0 -4
- package/dist/docx.js +154 -38
- package/dist/index.js +3 -3
- package/dist/pptx/chunk-NDAE3JFO.cjs +1014 -0
- package/dist/pptx/{chunk-AUCJIB3M.mjs → chunk-NLUVYOKN.mjs} +113 -381
- package/dist/pptx/{chunk-S2Y3VUNC.cjs → chunk-OQQQ2GBW.cjs} +134 -402
- package/dist/pptx/chunk-UTFFX4M7.mjs +989 -0
- package/dist/pptx/dom/index.cjs +205 -205
- package/dist/pptx/dom/index.mjs +3 -3
- package/dist/pptx/index.cjs +2888 -2880
- package/dist/pptx/index.mjs +2 -2
- package/dist/pptx/render/morph-predicates.d.ts.map +1 -1
- package/dist/pptx/theme/index.cjs +24 -16
- package/dist/pptx/theme/index.d.ts +1 -0
- package/dist/pptx/theme/index.d.ts.map +1 -1
- package/dist/pptx/theme/index.mjs +1 -1
- package/dist/pptx/theme/office-css.d.ts +6 -0
- package/dist/pptx/theme/office-css.d.ts.map +1 -0
- package/dist/pptx/web-components/chart-format-pane-styles.d.ts +1 -1
- package/dist/pptx/web-components/chart-format-pane-styles.d.ts.map +1 -1
- package/dist/pptx/web-components/control-styles.d.ts.map +1 -1
- package/dist/pptx/web-components/index.d.ts.map +1 -1
- package/dist/pptx/web-components/mobile-bar-styles.d.ts +2 -2
- package/dist/pptx/web-components/mobile-bar-styles.d.ts.map +1 -1
- package/dist/pptx/web-components/mobile-insert-styles.d.ts +1 -1
- package/dist/pptx/web-components/mobile-insert-styles.d.ts.map +1 -1
- package/dist/pptx/web-components/notes-toolbar-styles.d.ts +1 -1
- package/dist/pptx/web-components/notes-toolbar-styles.d.ts.map +1 -1
- package/dist/pptx/web-components/office-token-bridge.d.ts.map +1 -1
- package/dist/pptx/web-components/subtitle-settings-styles.d.ts +1 -1
- package/dist/pptx/web-components/subtitle-settings-styles.d.ts.map +1 -1
- package/dist/pptx/web-components/theme-editor-styles.d.ts +1 -1
- package/dist/pptx/web-components/theme-editor-styles.d.ts.map +1 -1
- package/dist/teams.js +2 -2
- package/dist/theme-bridge.d.ts +28 -0
- package/dist/theme-bridge.d.ts.map +1 -0
- package/dist/theme.d.ts +10 -3
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +1 -1
- package/dist/visio/building-blocks.d.ts +37 -0
- package/dist/visio/controller.d.ts +6 -0
- package/dist/visio/index.d.ts +1 -0
- package/dist/visio/styles/theme.d.ts +1 -1
- package/dist/visio/styles.d.ts +1 -1
- package/dist/visio/viewer-element.d.ts +2 -0
- package/dist/visio.js +7446 -7321
- package/dist/xlsx/building-blocks.d.ts +55 -0
- package/dist/xlsx/component.d.ts +3 -1
- package/dist/xlsx/dialogs/styles.d.ts +1 -1
- package/dist/xlsx/editor-core.d.ts +1 -0
- package/dist/xlsx/element-api.d.ts +6 -0
- package/dist/xlsx/formula-bar/styles.d.ts +1 -1
- package/dist/xlsx/grid/page-break-layer.d.ts +1 -1
- package/dist/xlsx/grid/styles.d.ts +1 -1
- package/dist/xlsx/index.d.ts +1 -0
- package/dist/xlsx/page-views/page-layout-css.d.ts +1 -1
- package/dist/xlsx/sheet-tabs/styles.d.ts +1 -1
- package/dist/xlsx/surface-shell.d.ts +3 -0
- package/dist/xlsx/theme/styles.d.ts +1 -4
- package/dist/xlsx.js +412 -268
- package/package.json +4 -4
- package/dist/chunk-7E3HU7RL.js +0 -123
- package/dist/pptx/chunk-BDXQX6RA.cjs +0 -373
- package/dist/pptx/chunk-ZAOD6O2D.mjs +0 -357
package/dist/docx.js
CHANGED
|
@@ -2,22 +2,22 @@ import { statusLayout, watchStatusWidth, compactPageText } from './chunk-UBBC5FH
|
|
|
2
2
|
import { syncRibbonAddIns } from './chunk-SVRIVUWC.js';
|
|
3
3
|
export { RIBBON_ADD_IN_EVENT } from './chunk-SVRIVUWC.js';
|
|
4
4
|
import { defineSmartArt } from './chunk-ANPFMQ6E.js';
|
|
5
|
-
import {
|
|
5
|
+
import { legacyThemeAliases, legacyThemeBridge, installOfficeUiThemeFor } from './chunk-6Y7KR2I3.js';
|
|
6
6
|
import { createRibbonOverflow, defineRibbon, defineRuler, defineCommentsPane, defineDialog, defineSearchField, defineSwitch, defineTitleBar, defineRibbonActions, defineBackstage, defineStatusBar, defineZoomSlider, defineContextMenu, defineColorGrid, runKeyTips, defineOptionsDialog, assignKeyTips, optionsLabels, userInterfaceSection, personalizeSection, optionText, unavailableCategory } from './chunk-SPRZIHUH.js';
|
|
7
7
|
import { registerIcon } from './chunk-M6GF5ED2.js';
|
|
8
8
|
import './chunk-KNC2UEUR.js';
|
|
9
9
|
import './chunk-CWBSXK7P.js';
|
|
10
10
|
import './chunk-LD3K2RDN.js';
|
|
11
11
|
import { optionStrings, normalizeLocale, SUPPORTED_OFFICE_LOCALES, interpolate } from 'ooxml-core/i18n';
|
|
12
|
-
import { createDocument, saveDocx, sectionsFromLayout, sectionLayoutJson, sectionsOf, pageSizeOf, columnPreset, applyPageSetup, withSection, computeListLabels, numberNotesInOrder, tocEntries, tableOfFiguresInstruction, findTableOfContents, ensureListDefinition,
|
|
12
|
+
import { createDocument, saveDocx, sectionsFromLayout, sectionLayoutJson, sectionsOf, pageSizeOf, columnPreset, applyPageSetup, withSection, computeListLabels, numberNotesInOrder, tocEntries, resolveNumberingLevel, tableOfFiguresInstruction, findTableOfContents, ensureListDefinition, equalColumnDraft, readColumnDraft, PAGE_SIZE_OPTIONS, PAGE_SIZES, readPageSetup, isRunHiddenForReview, resolveTableStyleFormatting, resolveParagraphFormatting, displayListLabel, setTitlePage, setLineNumbering, setVerticalAlign, setPageNumbering, ST_NumberFormat, unequalColumnPreset, setColumns, setOrientation, setPageSize, setMargins, lineSpacingLabel, formatNoteNumber, cellSourceBlocks, reviewDocumentFormatting, reviewFormattingWarnings, listRevisions, plainText, resolveRunFormatting, tocHyperlinks, DEFAULT_TOC_INSTRUCTION, tocBookmarks, buildTableOfContents, tocCaptionLabel, isFieldLocked, twips as twips$1, signedTwips, formatListNumber, columnTextWidth, validColumnDraft, validatePageSetup, presetOf, LIGATURE_VALUES, isLigatures, reviewRunFormatting, resolveThemeColorReference, lineSpacingValue, canEditControlContent, controlDate, shapeSvg, isStHighlightColor, transformCase, DEFAULT_TABLE_BORDERS, parseLineSpacingValue, twipsAttr, SHAPE_PALETTE, isHeadingListKind, twipsFromPixels, isDirectionalPreset, headingLevel, reviewParagraphFormatting, isValidLanguageTag, WORD, newShape, DEFAULT_DRAWN_SHAPE, fieldName, lineSpacingOptions, halfPointsFromPoints, changeColumnWidth, changeColumnGap, createListDefinition, linkStylesToList, headingListLevels, documentStats } from 'ooxml-core/docx';
|
|
13
13
|
import { Schema, Fragment, DOMSerializer } from 'prosemirror-model';
|
|
14
|
-
import { markSpecs, imageNodeSpec, fieldMarkerNodeSpec, noteReferenceNodeSpec, pageBreakNodeSpec, hardBreakNodeSpec, commentHistoryAttributes, tableCellStyle, tableStyle, createToggleFormat, expectDefined, paragraphBoxCss,
|
|
14
|
+
import { markSpecs, imageNodeSpec, fieldMarkerNodeSpec, noteReferenceNodeSpec, pageBreakNodeSpec, hardBreakNodeSpec, commentHistoryAttributes, tableCellStyle, tableStyle, createToggleFormat, expectDefined, paragraphBoxCss, normalizeThemeMode, applyThemeColors, refreshWordYjsPresence, normalizeRibbonActions, DirtyState, isWordYjsRemoteTransaction, REMOTE_TRANSACTION_META, repairCollaborativeDocumentIds, HEADER_FOOTER_INPUT, restoreSectionParts, commentThreadsFromDoc, restoreNoteParts, wordYjsPluginKey, wordYjsRedo, wordYjsUndo, CollaborationClient, createCollaborationIdGenerator, WordYjsCollaboration, insertContentControl, sectionPartsJson, NotePartsStep, notePartsJson, SectionPartsStep, fitZoomPercent, hasChangeAtCursor, hasAnyChange, commentIdsAtSelection, commentAnchors, documentWordCount, fieldGuardPlugin, tableStructureGuardPlugin, contentControlPlugin, trackChangesPlugin, wordYjsPresencePlugin, chartNodeSpec, placementClass, removeCommentThread, removeCommentAnchor, deleteComment, updateCommentThreads, addComment, toggleTrackChanges, goToNextChange, goToPreviousChange, rejectAllChanges, acceptAllChanges, rejectChangeAtCursor, acceptChangeAtCursor, goToComment, appendInlineNode, sameJson, sameRuns, PARAGRAPH_KEEP_KEYS, paragraphFromAttrs, parseBordersJson, isNavigableHref, setReviewRecordingPreferences, nodeNumbering, controlAtSelection, paragraphFormattingRevision, inlineNodeRun, formattingRevision, insertWordHardBreak, paragraphAttrs, resolveCellVisuals, themeDrawing, ribbonActionIdForLabel, removeWordLink, fieldResultRanges, wordLinkRangeAt, ligatureCss as ligatureCss$1, toggleCheckboxControl, runToInlineNodes as runToInlineNodes$1, backstageFocus, applyRunFormattingPatch, clearDirectRunFormatting, deleteFieldSelection, applyWordLink, ligatureStyle, wordHighlightColors, swatchColor, cssBorderSide, countWords, updateControlProperties, resolveComment, replyToComment, chooseListItem, chooseDate, CollaborationAuthority } from 'ooxml-core/docx/ui';
|
|
15
15
|
export { CollaborationAuthority, CollaborationClient, RIBBON_ACTION_IDS, RIBBON_ACTION_LABELS, createCollaborationIdGenerator, darkTheme, isRibbonActionId, lightTheme, normalizeRibbonActions, repairCollaborativeDocumentIds, themeToCssVars } from 'ooxml-core/docx/ui';
|
|
16
16
|
import { parseOmml, convertOmmlToLatex, convertOmmlToMathMl, EQUATION_GALLERY, latexToOmmlXml } from 'ooxml-core/math';
|
|
17
17
|
import { PluginKey, TextSelection, Selection, EditorState, Plugin, NodeSelection } from 'prosemirror-state';
|
|
18
18
|
import { EditorView, Decoration, DecorationSet } from 'prosemirror-view';
|
|
19
19
|
import { loadDocument } from 'ooxml-core/docx/load';
|
|
20
|
-
import { closeHistory,
|
|
20
|
+
import { closeHistory, redo, undo, history } from 'prosemirror-history';
|
|
21
21
|
import { createLayoutSession, layoutDocumentModel, pageNumbers, createFakeMeasurer, ligatureCss, cssFontStack, tokenizeRun, placeTab, cellVerticalOffset, fieldDisplayText, DEFAULT_FONT_SIZE_PT, pageNumberValues, sectionPageCounts, headerFooterSlotForPage, headerFooterForPage, paragraphFloats, floatPosition } from 'ooxml-core/docx/layout';
|
|
22
22
|
import { sendableSteps, getVersion } from 'prosemirror-collab';
|
|
23
23
|
import { sanitizeColor, sanitizeUserName, SequenceTracker, isValidId, classifyVersion, validateDisplayName } from 'ooxml-core/collab';
|
|
@@ -4966,7 +4966,7 @@ function dropCapCss(value) {
|
|
|
4966
4966
|
];
|
|
4967
4967
|
}
|
|
4968
4968
|
function paragraphStyle(attrs) {
|
|
4969
|
-
const
|
|
4969
|
+
const declarations = [
|
|
4970
4970
|
attrs.align ? `text-align:${safeCssValue(attrs.align)}` : attrs.direction === "rtl" ? null : "text-align:left",
|
|
4971
4971
|
attrs.direction && `direction:${safeCssValue(attrs.direction)}`,
|
|
4972
4972
|
twipsCss(attrs.spacingBeforeTwips) && `margin-top:${twipsCss(attrs.spacingBeforeTwips)}`,
|
|
@@ -4985,7 +4985,7 @@ function paragraphStyle(attrs) {
|
|
|
4985
4985
|
...paragraphBoxCss(attrs.borders, attrs.shadingFill),
|
|
4986
4986
|
...dropCapCss(attrs.dropCap)
|
|
4987
4987
|
].filter(Boolean);
|
|
4988
|
-
return
|
|
4988
|
+
return declarations.join(";");
|
|
4989
4989
|
}
|
|
4990
4990
|
var schema = new Schema({
|
|
4991
4991
|
nodes: {
|
|
@@ -13553,7 +13553,7 @@ function createMultilevelListDialog(getView, getModel, canEdit = () => true) {
|
|
|
13553
13553
|
const preview = document.createElement("div");
|
|
13554
13554
|
preview.setAttribute("role", "group");
|
|
13555
13555
|
preview.setAttribute("aria-label", "List preview");
|
|
13556
|
-
preview.style.cssText = "max-height:70px;overflow:auto;padding:8px;border:1px solid var(--dve-border,#
|
|
13556
|
+
preview.style.cssText = "max-height:70px;overflow:auto;padding:8px;border:1px solid var(--dve-border,var(--office-border,#d1d5db))";
|
|
13557
13557
|
const message = document.createElement("p");
|
|
13558
13558
|
message.setAttribute("role", "alert");
|
|
13559
13559
|
const ok = dialogButton("OK", true), cancel = dialogButton("Cancel");
|
|
@@ -18560,7 +18560,10 @@ var EditorCore = class {
|
|
|
18560
18560
|
view;
|
|
18561
18561
|
loaded;
|
|
18562
18562
|
loadGeneration = 0;
|
|
18563
|
+
loading = false;
|
|
18563
18564
|
readOnly = false;
|
|
18565
|
+
/** Set before mounting to render only the document surface. */
|
|
18566
|
+
surfaceOnly = false;
|
|
18564
18567
|
locale = "en";
|
|
18565
18568
|
reviewAuthor = "Author";
|
|
18566
18569
|
theme = "auto";
|
|
@@ -18652,6 +18655,7 @@ var EditorCore = class {
|
|
|
18652
18655
|
if (docChanged || transaction.selectionSet || remote) this.collab.presence?.schedule();
|
|
18653
18656
|
}
|
|
18654
18657
|
refreshControls() {
|
|
18658
|
+
this.element.dispatchEvent(new CustomEvent("editor-state-change"));
|
|
18655
18659
|
this.parts.syncSection(this.shell.canvas, this.shell.paper);
|
|
18656
18660
|
this.shell.headings?.sync(this.locale);
|
|
18657
18661
|
if (this.shell.toolbar)
|
|
@@ -18710,37 +18714,37 @@ var EditorCore = class {
|
|
|
18710
18714
|
};
|
|
18711
18715
|
|
|
18712
18716
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/aliases.css?raw
|
|
18713
|
-
var aliases_default = "/*
|
|
18717
|
+
var aliases_default = "/* Resolve legacy overrides at the editor boundary; canonical Office tokens otherwise inherit. */\n:host {\n --word: var(--dve-primary, var(--office-accent, #2563eb));\n --word-strong: color-mix(in srgb, var(--dve-primary, var(--office-accent, #2563eb)) 70%, #000);\n --word-soft: color-mix(\n in srgb,\n var(--dve-primary, var(--office-accent, #2563eb)) 12%,\n transparent\n );\n --blue: var(--word);\n --accent-soft: var(--dve-accent, var(--office-selected, #e5e7eb));\n --ink: var(--dve-foreground, var(--office-foreground, #1f2937));\n --muted: var(--dve-muted-foreground, var(--office-muted-foreground, #6b7280));\n --line: var(--dve-border, var(--office-border, #d1d5db));\n --canvas: var(--dve-muted, var(--office-surface, #f3f4f6));\n --surface: var(--dve-card, var(--office-surface, #f3f4f6));\n --chrome: var(--dve-background, var(--office-background, #fff));\n}\n";
|
|
18714
18718
|
|
|
18715
18719
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/base.css?raw
|
|
18716
|
-
var base_default = ":host {\n display: block;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n min-height: 0;\n color: var(--ink);\n font
|
|
18720
|
+
var base_default = ":host {\n display: block;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n min-height: 0;\n color: var(--ink);\n font: var(--office-font-size, 13px) / var(--office-line-height, 1.4)\n var(--office-font, system-ui, sans-serif);\n}\n.dve-frame {\n display: flex;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n min-height: 0;\n min-width: 0;\n flex-direction: column;\n overflow: hidden;\n border: 1px solid var(--line);\n background: var(--surface);\n box-shadow: 0 2px 8px #20212420;\n}\n/* Keyboard focus ring for every interactive part of the chrome. */\n:focus-visible {\n outline: 2px solid var(--dve-ring, var(--office-ring, #2563eb));\n outline-offset: 1px;\n}\n.dve-paper .ProseMirror:focus-visible {\n outline: none;\n}\n/* Only the chrome follows the theme; document pages stay white like Word's. */\n.dve-paper,\n.dve-print-page {\n color-scheme: light;\n}\n";
|
|
18717
18721
|
|
|
18718
18722
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/ribbon.css?raw
|
|
18719
|
-
var ribbon_default = ".dve-ribbon {\n display: flex;\n flex: none;\n min-width: 0;\n flex-direction: column;\n background: var(--surface);\n border-bottom: 1px solid var(--line);\n}\n/* The tab row is drawn by the shared office-ui-ribbon; these colour and size it. */\n.dve-ribbon {\n --office-ribbon-tab-height: 39px;\n --office-ribbon-contextual: #0f7b6c;\n --office-tab-indicator-width: 3px;\n}\n/* Word's File tab is text, not a filled button. */\n.dve-ribbon::part(file) {\n background: none;\n color: var(--word);\n font-weight: 600;\n}\n.dve-ribbon::part(file):hover {\n background: var(--word-soft);\n}\n.dve-ribbon::part(head) {\n padding: 0 14px;\n}\n.ribbon-panel {\n flex: none;\n box-sizing: border-box;\n min-width: 0;\n /* One height for every tab, as in Word, so switching tabs never moves the document. */\n height: 104px;\n display: flex;\n flex-wrap: nowrap;\n align-items: stretch;\n gap: 4px;\n padding: 6px 10px 4px;\n overflow-x: auto;\n overflow-y: hidden;\n overscroll-behavior-x: contain;\n scrollbar-width: thin;\n}\n.ribbon-panel[hidden] {\n display: none;\n}\n.ribbon-group {\n display: flex;\n flex: 0 0 auto;\n flex-wrap: wrap;\n align-content: flex-start;\n align-items: center;\n min-width: 0;\n max-width: 330px;\n gap: 4px 2px;\n padding: 2px 10px 18px 2px;\n border-right: 1px solid var(--line);\n}\n.ribbon-row {\n min-width: 0;\n display: flex;\n flex: 0 0 100%;\n flex-wrap: nowrap;\n align-items: center;\n gap: 2px;\n}\n.ribbon-group:last-child {\n border: 0;\n}\n.ribbon-group::after {\n position: absolute;\n right: 0;\n bottom: 2px;\n left: 0;\n color: var(--muted);\n font-size: 10px;\n line-height: 1.1;\n text-align: center;\n content: attr(data-caption);\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Clipboard'] {\n width: auto;\n max-width: none;\n flex-wrap: nowrap;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Clipboard'] button.ribbon-large {\n width: 56px;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Font'] {\n width: 338px;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Paragraph'] {\n /* The list-level and indent commands need room before the Sort and paragraph-mark buttons. */\n width: 310px;\n max-width: none;\n}\n.ribbon-group[data-label='Paragraph'] .ribbon-small {\n width: 24px;\n min-width: 24px;\n}\n.ribbon-group[data-label='Paragraph'] .ribbon-menu-compact {\n width: 36px;\n flex: none;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Styles'] select {\n width: 100%;\n max-width: 100%;\n}\n.dve-ribbon[data-editor-locale='de']\n .ribbon-panel[data-panel='Home']\n .ribbon-group[data-label='Font'] {\n width: 362px;\n max-width: none;\n}\n.dve-ribbon[data-editor-locale='fr']\n .ribbon-panel[data-panel='Home']\n .ribbon-group[data-label='Editing'],\n.dve-ribbon[data-editor-locale='de']\n .ribbon-panel[data-panel='Home']\n .ribbon-group[data-label='Editing'] {\n width: 176px;\n}\n.ribbon-group[data-label='Language'] {\n flex: 0 0 100%;\n}\n.ribbon-panel[data-panel='Review'] .ribbon-group[data-label='Tracking'],\n.ribbon-panel[data-panel='Review'] .ribbon-group[data-label='Changes'],\n.ribbon-panel[data-panel='Review'] .ribbon-group[data-label='Comments'] {\n flex: 0 0 auto;\n}\n.ribbon-group button {\n min-width: 32px;\n flex: none;\n height: 31px;\n border: 1px solid transparent;\n border-radius: 4px;\n background: transparent;\n color: var(--ink);\n font
|
|
18723
|
+
var ribbon_default = ".dve-ribbon {\n display: flex;\n flex: none;\n min-width: 0;\n flex-direction: column;\n background: var(--surface);\n border-bottom: 1px solid var(--line);\n}\n/* The tab row is drawn by the shared office-ui-ribbon; these colour and size it. */\n.dve-ribbon {\n --office-ribbon-tab-height: 39px;\n --office-ribbon-contextual: #0f7b6c;\n --office-tab-indicator-width: 3px;\n}\n/* Word's File tab is text, not a filled button. */\n.dve-ribbon::part(file) {\n background: none;\n color: var(--word);\n font-weight: 600;\n}\n.dve-ribbon::part(file):hover {\n background: var(--word-soft);\n}\n.dve-ribbon::part(head) {\n padding: 0 14px;\n}\n.ribbon-panel {\n flex: none;\n box-sizing: border-box;\n min-width: 0;\n /* One height for every tab, as in Word, so switching tabs never moves the document. */\n height: 104px;\n display: flex;\n flex-wrap: nowrap;\n align-items: stretch;\n gap: 4px;\n padding: 6px 10px 4px;\n overflow-x: auto;\n overflow-y: hidden;\n overscroll-behavior-x: contain;\n scrollbar-width: thin;\n}\n.ribbon-panel[hidden] {\n display: none;\n}\n.ribbon-group {\n display: flex;\n flex: 0 0 auto;\n flex-wrap: wrap;\n align-content: flex-start;\n align-items: center;\n min-width: 0;\n max-width: 330px;\n gap: 4px 2px;\n padding: 2px 10px 18px 2px;\n border-right: 1px solid var(--line);\n}\n.ribbon-row {\n min-width: 0;\n display: flex;\n flex: 0 0 100%;\n flex-wrap: nowrap;\n align-items: center;\n gap: 2px;\n}\n.ribbon-group:last-child {\n border: 0;\n}\n.ribbon-group::after {\n position: absolute;\n right: 0;\n bottom: 2px;\n left: 0;\n color: var(--muted);\n font-size: 10px;\n line-height: 1.1;\n text-align: center;\n content: attr(data-caption);\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Clipboard'] {\n width: auto;\n max-width: none;\n flex-wrap: nowrap;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Clipboard'] button.ribbon-large {\n width: 56px;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Font'] {\n width: 338px;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Paragraph'] {\n /* The list-level and indent commands need room before the Sort and paragraph-mark buttons. */\n width: 310px;\n max-width: none;\n}\n.ribbon-group[data-label='Paragraph'] .ribbon-small {\n width: 24px;\n min-width: 24px;\n}\n.ribbon-group[data-label='Paragraph'] .ribbon-menu-compact {\n width: 36px;\n flex: none;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Styles'] select {\n width: 100%;\n max-width: 100%;\n}\n.dve-ribbon[data-editor-locale='de']\n .ribbon-panel[data-panel='Home']\n .ribbon-group[data-label='Font'] {\n width: 362px;\n max-width: none;\n}\n.dve-ribbon[data-editor-locale='fr']\n .ribbon-panel[data-panel='Home']\n .ribbon-group[data-label='Editing'],\n.dve-ribbon[data-editor-locale='de']\n .ribbon-panel[data-panel='Home']\n .ribbon-group[data-label='Editing'] {\n width: 176px;\n}\n.ribbon-group[data-label='Language'] {\n flex: 0 0 100%;\n}\n.ribbon-panel[data-panel='Review'] .ribbon-group[data-label='Tracking'],\n.ribbon-panel[data-panel='Review'] .ribbon-group[data-label='Changes'],\n.ribbon-panel[data-panel='Review'] .ribbon-group[data-label='Comments'] {\n flex: 0 0 auto;\n}\n.ribbon-group button {\n min-width: 32px;\n flex: none;\n height: 31px;\n border: 1px solid transparent;\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n background: transparent;\n color: var(--ink);\n font: 500 14px var(--office-font, system-ui, sans-serif);\n cursor: pointer;\n padding: 0 4px;\n /* A label wider than its slot ends in an ellipsis (the title tooltip has the full text). */\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ribbon-row > button,\n.ribbon-row > select {\n flex: 0 1 auto;\n min-width: 0;\n}\n.ribbon-row > button {\n min-width: 32px;\n}\n.ribbon-group button:hover:not(:disabled) {\n background: var(--accent-soft);\n border-color: var(--line);\n}\n.ribbon-group button[aria-pressed='true'] {\n background: var(--accent-soft);\n color: var(--blue);\n}\n.ribbon-group .tool-bold {\n font-weight: 800;\n}\n.ribbon-group .tool-italic {\n font-style: italic;\n}\n.ribbon-group .tool-underline {\n text-decoration: underline;\n}\n.ribbon-group select {\n flex: none;\n max-width: 150px;\n height: 30px;\n border: 1px solid var(--line);\n border-radius: 3px;\n background: var(--surface);\n padding: 0 7px;\n color: var(--ink);\n font: 12px var(--office-font, system-ui, sans-serif);\n /* Long localized labels end in an ellipsis; the full text is the title tooltip. */\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ribbon-group select option {\n background: var(--surface);\n color: var(--ink);\n}\n.ribbon-group select.font-family-select {\n width: 120px;\n}\n.ribbon-group select.font-size-select {\n width: 52px;\n}\n.ribbon-group[data-label='Font'] .ribbon-row button {\n min-width: 28px;\n padding-inline: 0;\n}\n/* Split-button carets stay narrow so the pair reads as one control. */\n.ribbon-group[data-label='Font'] .ribbon-row .ribbon-split .ribbon-caret {\n min-width: 14px;\n}\n.ribbon-group select.spacing-select {\n width: 150px;\n}\n.ribbon-group select.line-spacing-select {\n width: 112px;\n}\n.dve-body {\n display: flex;\n flex: 1;\n min-height: 0;\n min-width: 0;\n}\n.dve-canvas {\n flex: 1;\n min-height: 0;\n min-width: 0;\n max-height: none;\n overflow: auto;\n padding: 30px clamp(16px, 5vw, 70px) 60px;\n background: var(--canvas);\n overscroll-behavior: contain;\n}\n";
|
|
18720
18724
|
|
|
18721
18725
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/ribbon-buttons.css?raw
|
|
18722
|
-
var ribbon_buttons_default = "/* Word-style icon commands: small icon buttons, large stacked buttons and split colour buttons. */\n.ribbon-group button.ribbon-small {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n min-width: 28px;\n height: 28px;\n padding: 0;\n}\n.ribbon-group button.ribbon-large {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n gap: 3px;\n width: 62px;\n height: 66px;\n padding: 4px 2px;\n font-size: 11px;\n line-height: 1.15;\n white-space: normal;\n text-align: center;\n}\n.ribbon-large > span {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ribbon-stack {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.ribbon-split {\n display: inline-flex;\n align-items: center;\n}\n.ribbon-group .ribbon-split button.ribbon-color {\n position: relative;\n width: 28px;\n min-width: 28px;\n border-radius: 4px 0 0 4px;\n}\n.ribbon-color::after {\n position: absolute;\n right: 6px;\n bottom: 3px;\n left: 6px;\n height: 3px;\n background: var(--bar, transparent);\n outline: 1px solid var(--line);\n content: '';\n}\n.ribbon-group .ribbon-split .ribbon-caret {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 14px;\n min-width: 14px;\n height: 28px;\n padding: 0;\n border-radius: 0 4px 4px 0;\n}\n.ribbon-popover {\n position: fixed;\n z-index: 1000;\n display: grid;\n grid-template-columns: repeat(6, 22px);\n gap: 4px;\n padding: 8px;\n border: 1px solid var(--line);\n border-radius: 6px;\n background: var(--surface);\n box-shadow: 0 6px 20px rgb(0 0 0 / 0.18);\n}\n.ribbon-popover .swatch {\n width: 22px;\n height: 22px;\n padding: 0;\n border: 1px solid var(--line);\n border-radius: 3px;\n background: var(--swatch);\n cursor: pointer;\n}\n.ribbon-popover .swatch:hover,\n.ribbon-popover .swatch:focus-visible {\n outline: 2px solid var(--blue);\n outline-offset: 1px;\n}\n.ribbon-popover .swatch-none {\n background: linear-gradient(135deg, transparent 46%, #c00000 46% 54%, transparent 54%);\n}\n.ribbon-group button.ribbon-inline {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n height: 28px;\n padding: 0 8px 0 6px;\n font-size: 12px;\n}\n.ribbon-group button.ribbon-large {\n min-height: 66px;\n overflow: hidden;\n}\n.ribbon-group:has(.ribbon-large) {\n max-width: none;\n flex-wrap: wrap;\n}\n/* A row of stacked dropdown commands (Layout > Page Setup) stays on one line at the panel height. */\n.ribbon-group:has(> .ribbon-menu:not(.ribbon-menu-compact)) {\n max-width: none;\n flex-wrap: nowrap;\n}\n.ribbon-group button.ribbon-inline {\n font-weight: 400;\n}\n.ribbon-group button.ribbon-large {\n width: 70px;\n}\n.ribbon-panel[data-panel='Table'] .ribbon-group button.ribbon-large {\n width: 80px;\n}\n\n/* Word-style dropdown command: the native select is transparent and covers the whole control. */\n.ribbon-menu {\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 3px;\n width: 70px;\n height: 66px;\n padding: 4px 2px;\n border: 1px solid transparent;\n border-radius: 4px;\n color: var(--ink);\n font-size: 11px;\n line-height: 1.15;\n text-align: center;\n}\n.ribbon-menu:hover {\n border-color: var(--line);\n background: var(--accent-soft);\n}\n.ribbon-menu:focus-within {\n outline: 2px solid var(--blue);\n outline-offset: -1px;\n}\n.ribbon-menu > span {\n max-width: 100%;\n}\n.ribbon-menu > .ribbon-icon:last-of-type {\n margin-top: -2px;\n}\n.ribbon-menu-compact {\n flex-direction: row;\n width: 44px;\n height: 28px;\n padding: 0 4px;\n justify-content: center;\n gap: 2px;\n}\n.ribbon-menu-compact > .ribbon-icon:last-of-type {\n margin-top: 0;\n}\n.ribbon-group .ribbon-menu select.ribbon-menu-input {\n position: absolute;\n inset: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n border: 0;\n}\n.ribbon-menu[data-dve-hidden] {\n display: none;\n}\n.ribbon-stack .ribbon-small,\n.ribbon-stack .ribbon-inline {\n height: 22px;\n}\n.ribbon-stack .ribbon-inline {\n justify-content: flex-start;\n}\n.ribbon-panel[data-panel='Header & Footer'] .ribbon-stack button.ribbon-inline {\n height: 22px;\n}\n.ribbon-panel[data-panel='Header & Footer'] button.ribbon-large {\n width: 112px;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Editing'] {\n width: auto;\n min-width: 110px;\n}\n.dve-painting,\n.dve-painting * {\n cursor: copy;\n}\n";
|
|
18726
|
+
var ribbon_buttons_default = "/* Word-style icon commands: small icon buttons, large stacked buttons and split colour buttons. */\n.ribbon-group button.ribbon-small {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n min-width: 28px;\n height: 28px;\n padding: 0;\n}\n.ribbon-group button.ribbon-large {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n gap: 3px;\n width: 62px;\n height: 66px;\n padding: 4px 2px;\n font-size: 11px;\n line-height: 1.15;\n white-space: normal;\n text-align: center;\n}\n.ribbon-large > span {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ribbon-stack {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.ribbon-split {\n display: inline-flex;\n align-items: center;\n}\n.ribbon-group .ribbon-split button.ribbon-color {\n position: relative;\n width: 28px;\n min-width: 28px;\n border-radius: 4px 0 0 4px;\n}\n.ribbon-color::after {\n position: absolute;\n right: 6px;\n bottom: 3px;\n left: 6px;\n height: 3px;\n background: var(--bar, transparent);\n outline: 1px solid var(--line);\n content: '';\n}\n.ribbon-group .ribbon-split .ribbon-caret {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 14px;\n min-width: 14px;\n height: 28px;\n padding: 0;\n border-radius: 0 4px 4px 0;\n}\n.ribbon-popover {\n position: fixed;\n z-index: 1000;\n display: grid;\n grid-template-columns: repeat(6, 22px);\n gap: 4px;\n padding: 8px;\n border: 1px solid var(--line);\n border-radius: 6px;\n background: var(--surface);\n box-shadow: 0 6px 20px rgb(0 0 0 / 0.18);\n}\n.ribbon-popover .swatch {\n width: 22px;\n height: 22px;\n padding: 0;\n border: 1px solid var(--line);\n border-radius: 3px;\n background: var(--swatch);\n cursor: pointer;\n}\n.ribbon-popover .swatch:hover,\n.ribbon-popover .swatch:focus-visible {\n outline: 2px solid var(--blue);\n outline-offset: 1px;\n}\n.ribbon-popover .swatch-none {\n background: linear-gradient(135deg, transparent 46%, #c00000 46% 54%, transparent 54%);\n}\n.ribbon-group button.ribbon-inline {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n height: 28px;\n padding: 0 8px 0 6px;\n font-size: 12px;\n}\n.ribbon-group button.ribbon-large {\n min-height: 66px;\n overflow: hidden;\n}\n.ribbon-group:has(.ribbon-large) {\n max-width: none;\n flex-wrap: wrap;\n}\n/* A row of stacked dropdown commands (Layout > Page Setup) stays on one line at the panel height. */\n.ribbon-group:has(> .ribbon-menu:not(.ribbon-menu-compact)) {\n max-width: none;\n flex-wrap: nowrap;\n}\n.ribbon-group button.ribbon-inline {\n font-weight: 400;\n}\n.ribbon-group button.ribbon-large {\n width: 70px;\n}\n.ribbon-panel[data-panel='Table'] .ribbon-group button.ribbon-large {\n width: 80px;\n}\n\n/* Word-style dropdown command: the native select is transparent and covers the whole control. */\n.ribbon-menu {\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 3px;\n width: 70px;\n height: 66px;\n padding: 4px 2px;\n border: 1px solid transparent;\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n color: var(--ink);\n font-size: 11px;\n line-height: 1.15;\n text-align: center;\n}\n.ribbon-menu:hover {\n border-color: var(--line);\n background: var(--accent-soft);\n}\n.ribbon-menu:focus-within {\n outline: 2px solid var(--blue);\n outline-offset: -1px;\n}\n.ribbon-menu > span {\n max-width: 100%;\n}\n.ribbon-menu > .ribbon-icon:last-of-type {\n margin-top: -2px;\n}\n.ribbon-menu-compact {\n flex-direction: row;\n width: 44px;\n height: 28px;\n padding: 0 4px;\n justify-content: center;\n gap: 2px;\n}\n.ribbon-menu-compact > .ribbon-icon:last-of-type {\n margin-top: 0;\n}\n.ribbon-group .ribbon-menu select.ribbon-menu-input {\n position: absolute;\n inset: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n border: 0;\n}\n.ribbon-menu[data-dve-hidden] {\n display: none;\n}\n.ribbon-stack .ribbon-small,\n.ribbon-stack .ribbon-inline {\n height: 22px;\n}\n.ribbon-stack .ribbon-inline {\n justify-content: flex-start;\n}\n.ribbon-panel[data-panel='Header & Footer'] .ribbon-stack button.ribbon-inline {\n height: 22px;\n}\n.ribbon-panel[data-panel='Header & Footer'] button.ribbon-large {\n width: 112px;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Editing'] {\n width: auto;\n min-width: 110px;\n}\n.dve-painting,\n.dve-painting * {\n cursor: copy;\n}\n";
|
|
18723
18727
|
|
|
18724
18728
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/ribbon-gallery.css?raw
|
|
18725
|
-
var ribbon_gallery_default = "/* Styles gallery: a scrolling strip of tiles with a preview of each style. */\n.ribbon-gallery {\n display: flex;\n gap: 3px;\n width: 216px;\n height: 66px;\n padding: 2px;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-snap-type: x proximity;\n scrollbar-width: none;\n border: 1px solid var(--line);\n border-radius: 4px;\n background: var(--surface);\n}\n.ribbon-group .ribbon-gallery .style-tile {\n flex: 0 0 78px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n height: 58px;\n min-width: 0;\n padding: 3px 2px;\n border: 1px solid transparent;\n scroll-snap-align: start;\n}\n.style-sample {\n max-width: 100%;\n overflow: hidden;\n line-height: 1.1;\n white-space: nowrap;\n}\n.style-name {\n max-width: 100%;\n overflow: hidden;\n color: var(--muted);\n font-size: 10px;\n text-overflow: ellipsis;\n}\n.ribbon-group .ribbon-gallery .style-tile[aria-pressed='true'] {\n border-color: var(--blue);\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Styles'] {\n width: 240px;\n max-width: none;\n flex-wrap: nowrap;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Styles']:not([data-collapsed]) {\n flex: 1 0 240px;\n min-width: 240px;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Styles'] .ribbon-gallery {\n flex: 1;\n min-width: 0;\n width: auto;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Styles'] .ribbon-stack {\n gap: 2px;\n}\n\n.ribbon-group[data-label='Section breaks'] {\n width: 210px;\n}\n.ribbon-group[data-label='Page numbers'] {\n width: 400px;\n}\n\n/* Language: labelled controls flow in short columns instead of one tall stack. */\n.ribbon-group[data-label='Language'] {\n flex: 0 0 auto;\n flex-direction: column;\n flex-wrap: wrap;\n align-content: flex-start;\n max-height: 86px;\n max-width: none;\n column-gap: 12px;\n overflow: hidden;\n}\n";
|
|
18729
|
+
var ribbon_gallery_default = "/* Styles gallery: a scrolling strip of tiles with a preview of each style. */\n.ribbon-gallery {\n display: flex;\n gap: 3px;\n width: 216px;\n height: 66px;\n padding: 2px;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-snap-type: x proximity;\n scrollbar-width: none;\n border: 1px solid var(--line);\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n background: var(--surface);\n}\n.ribbon-group .ribbon-gallery .style-tile {\n flex: 0 0 78px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n height: 58px;\n min-width: 0;\n padding: 3px 2px;\n border: 1px solid transparent;\n scroll-snap-align: start;\n}\n.style-sample {\n max-width: 100%;\n overflow: hidden;\n line-height: 1.1;\n white-space: nowrap;\n}\n.style-name {\n max-width: 100%;\n overflow: hidden;\n color: var(--muted);\n font-size: 10px;\n text-overflow: ellipsis;\n}\n.ribbon-group .ribbon-gallery .style-tile[aria-pressed='true'] {\n border-color: var(--blue);\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Styles'] {\n width: 240px;\n max-width: none;\n flex-wrap: nowrap;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Styles']:not([data-collapsed]) {\n flex: 1 0 240px;\n min-width: 240px;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Styles'] .ribbon-gallery {\n flex: 1;\n min-width: 0;\n width: auto;\n}\n.ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Styles'] .ribbon-stack {\n gap: 2px;\n}\n\n.ribbon-group[data-label='Section breaks'] {\n width: 210px;\n}\n.ribbon-group[data-label='Page numbers'] {\n width: 400px;\n}\n\n/* Language: labelled controls flow in short columns instead of one tall stack. */\n.ribbon-group[data-label='Language'] {\n flex: 0 0 auto;\n flex-direction: column;\n flex-wrap: wrap;\n align-content: flex-start;\n max-height: 86px;\n max-width: none;\n column-gap: 12px;\n overflow: hidden;\n}\n";
|
|
18726
18730
|
|
|
18727
18731
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/ribbon-widgets.css?raw
|
|
18728
|
-
var ribbon_widgets_default = ".dve-keytip {\n position: absolute;\n bottom: -2px;\n left: 50%;\n z-index: 70;\n transform: translateX(-50%);\n min-width: 16px;\n padding: 1px 4px;\n border: 1px solid var(--line);\n border-radius: 3px;\n background: #
|
|
18732
|
+
var ribbon_widgets_default = ".dve-keytip {\n position: absolute;\n bottom: -2px;\n left: 50%;\n z-index: 70;\n transform: translateX(-50%);\n min-width: 16px;\n padding: 1px 4px;\n border: 1px solid var(--line);\n border-radius: 3px;\n background: var(--office-keytip-background, #fff);\n color: var(--office-keytip-foreground, #1f1f1f);\n font: 600 11px/14px var(--office-font, system-ui, sans-serif);\n text-align: center;\n pointer-events: none;\n}\n\n.ribbon-popover.dve-word-count {\n grid-template-columns: auto auto;\n gap: 4px 24px;\n padding: 10px 14px;\n color: var(--ink);\n font: 12px var(--office-font, system-ui, sans-serif);\n}\n.dve-word-count strong {\n text-align: right;\n}\n\n.ribbon-spinner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n width: 170px;\n font-size: 12px;\n white-space: nowrap;\n}\n.ribbon-panel[data-panel='Header & Footer'] .ribbon-group[data-label='Position'] {\n max-width: none;\n}\n.ribbon-panel[data-panel='Header & Footer'] .ribbon-group[data-label='Position'] .ribbon-spinner {\n width: auto;\n min-width: 280px;\n}\n.ribbon-panel[data-panel='Header & Footer'] .ribbon-spinner input {\n flex: none;\n}\n.ribbon-group .ribbon-spinner input {\n width: 64px;\n height: 24px;\n border: 1px solid var(--line);\n border-radius: 3px;\n background: var(--surface);\n color: var(--ink);\n font: 12px var(--office-font, system-ui, sans-serif);\n}\n\n/* Editable combo boxes (font family and size). */\n.ribbon-combo {\n display: inline-flex;\n align-items: stretch;\n height: 26px;\n border: 1px solid var(--line);\n border-radius: 3px;\n background: var(--surface);\n}\n.ribbon-combo:focus-within {\n border-color: var(--blue);\n outline: 1px solid var(--blue);\n}\n.ribbon-combo.font-family-combo {\n width: 132px;\n}\n.ribbon-combo.font-size-combo {\n width: 58px;\n}\n.ribbon-combo input {\n flex: 1;\n min-width: 0;\n padding: 0 6px;\n border: 0;\n background: transparent;\n color: var(--ink);\n font: 12px var(--office-font, system-ui, sans-serif);\n outline: none;\n}\n.ribbon-group .ribbon-combo .ribbon-combo-caret {\n width: 18px;\n min-width: 18px;\n height: 100%;\n border-radius: 0;\n}\n.ribbon-popover.ribbon-list {\n display: flex;\n flex-direction: column;\n gap: 0;\n min-width: 160px;\n max-height: 280px;\n overflow-y: auto;\n padding: 4px 0;\n}\n.ribbon-list button[role='option'] {\n padding: 4px 12px;\n border: 0;\n background: none;\n color: var(--ink);\n font: 14px var(--office-font, system-ui, sans-serif);\n text-align: left;\n cursor: pointer;\n}\n.ribbon-list button[role='option']:hover,\n.ribbon-list button[role='option']:focus-visible {\n background: var(--accent-soft);\n outline: none;\n}\n.ribbon-list button[aria-selected='true'] {\n color: var(--blue);\n font-weight: 600;\n}\n\n.ribbon-combo[data-dve-hidden] {\n display: none;\n}\n\n/* Tiles preview a style on paper, so a style's own colours stay legible in dark themes too. */\n.ribbon-group .ribbon-gallery .style-tile {\n background: #fff;\n color: #1f1f1f;\n}\n.ribbon-group .ribbon-gallery .style-tile:hover:not(:disabled) {\n background: #f3f7fc;\n border-color: #a8c4e6;\n}\n.ribbon-group .ribbon-gallery .style-tile[aria-pressed='true'] {\n border-color: var(--blue);\n background: #e8f0fa;\n}\n.ribbon-gallery .style-name {\n color: #555;\n}\n.ribbon-group .ribbon-gallery .style-tile:disabled {\n opacity: 0.6;\n}\n\n/* Disabled controls look disabled, and keyboard focus is always visible. */\n.ribbon-group button:disabled,\n.ribbon-group select:disabled,\n.ribbon-group input:disabled {\n opacity: 0.4;\n cursor: default;\n}\n.ribbon-menu:has(select:disabled),\n.ribbon-combo:has(input:disabled),\n.ribbon-spinner:has(input:disabled),\n.ribbon-split:has(button:disabled) {\n opacity: 0.4;\n}\n.ribbon-menu:has(select:disabled):hover {\n border-color: transparent;\n background: none;\n}\n.ribbon-group button:focus-visible {\n outline: 2px solid var(--blue);\n outline-offset: -2px;\n}\n.ribbon-menu:has(select:disabled) select,\n.ribbon-split:has(button:disabled) button:disabled {\n opacity: 1;\n}\n\n/* Dialog launcher: the small corner button of a group, as in Word. */\n.ribbon-group {\n position: relative;\n}\n.ribbon-group .ribbon-launcher {\n position: absolute;\n right: 2px;\n bottom: 0;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 14px;\n min-width: 14px;\n height: 14px;\n padding: 0;\n color: var(--muted);\n}\n.ribbon-group .ribbon-launcher:hover:not(:disabled) {\n color: var(--ink);\n}\n";
|
|
18729
18733
|
|
|
18730
18734
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/ribbon-styles-group.css?raw
|
|
18731
|
-
var ribbon_styles_group_default = "/* Styles group: gallery, previous/next/more strip, expanded gallery and pane. */\n.style-strip {\n display: flex;\n flex-direction: column;\n gap: 1px;\n width: 16px;\n}\n.ribbon-group .style-strip .style-strip-button {\n flex: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n min-width: 16px;\n height: 16px;\n min-height: 0;\n padding: 0;\n border-radius: 2px;\n}\n.ribbon-popover.styles-popover {\n display: block;\n max-height: min(70vh, 520px);\n max-width: 420px;\n overflow-y: auto;\n padding: 8px;\n}\n.styles-section-title {\n margin: 4px 2px 6px;\n color: var(--muted);\n font
|
|
18735
|
+
var ribbon_styles_group_default = "/* Styles group: gallery, previous/next/more strip, expanded gallery and pane. */\n.style-strip {\n display: flex;\n flex-direction: column;\n gap: 1px;\n width: 16px;\n}\n.ribbon-group .style-strip .style-strip-button {\n flex: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n min-width: 16px;\n height: 16px;\n min-height: 0;\n padding: 0;\n border-radius: 2px;\n}\n.ribbon-popover.styles-popover {\n display: block;\n max-height: min(70vh, 520px);\n max-width: 420px;\n overflow-y: auto;\n padding: 8px;\n}\n.styles-section-title {\n margin: 4px 2px 6px;\n color: var(--muted);\n font: 600 11px var(--office-font, system-ui, sans-serif);\n}\n.styles-grid {\n display: grid;\n grid-template-columns: repeat(4, 88px);\n gap: 4px;\n}\n.styles-popover .style-tile,\n.dve-styles-pane .style-tile {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n height: 50px;\n padding: 4px 2px;\n border: 1px solid #d5d8dc;\n background: #fff;\n color: #1f1f1f;\n cursor: pointer;\n}\n.styles-popover .style-tile[aria-pressed='true'],\n.dve-styles-pane .style-tile[aria-pressed='true'] {\n border-color: var(--blue);\n background: #e8f0fa;\n}\n.styles-popover .style-tile:hover:not(:disabled),\n.dve-styles-pane .style-tile:hover:not(:disabled) {\n border-color: #a8c4e6;\n background: #f3f7fc;\n}\n.styles-commands {\n display: grid;\n gap: 2px;\n margin-top: 8px;\n padding-top: 6px;\n border-top: 1px solid var(--line);\n}\n.styles-command {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 8px;\n border: 0;\n border-radius: 3px;\n background: none;\n color: var(--ink);\n font: 12px var(--office-font, system-ui, sans-serif);\n text-align: left;\n cursor: pointer;\n}\n.styles-command:hover:not(:disabled) {\n background: var(--accent-soft);\n}\n.styles-command:disabled {\n opacity: 0.4;\n cursor: default;\n}\n.dve-styles-pane {\n flex: none;\n width: 260px;\n min-height: 0;\n overflow-y: auto;\n padding: 10px 12px;\n border-left: 1px solid var(--line);\n background: var(--surface);\n color: var(--ink);\n}\n.dve-styles-pane[hidden] {\n display: none;\n}\n.dve-styles-pane-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.dve-styles-pane h2 {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n}\n.dve-styles-pane h3 {\n margin: 14px 0 6px;\n color: var(--muted);\n font: 600 11px var(--office-font, system-ui, sans-serif);\n}\n.dve-styles-pane-header button {\n border: 0;\n background: none;\n color: var(--muted);\n font-size: 18px;\n cursor: pointer;\n}\n.dve-styles-pane-list {\n display: grid;\n gap: 4px;\n}\n.dve-styles-pane .style-tile {\n flex-direction: row;\n justify-content: space-between;\n height: 34px;\n padding: 2px 10px;\n}\n.dve-styles-pane .style-name {\n color: #555;\n}\n";
|
|
18732
18736
|
|
|
18733
18737
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/ribbon-popups.css?raw
|
|
18734
|
-
var ribbon_popups_default = "/* Editing: a row-height command with a caret menu, and the Go To panel. */\n.ribbon-split-inline {\n display: flex;\n align-items: center;\n height: 22px;\n}\n.ribbon-group .ribbon-split-inline .ribbon-inline {\n flex: 1;\n width: auto;\n}\n.ribbon-menu.ribbon-menu-caret {\n flex: none;\n width: 18px;\n height: 22px;\n padding: 0;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n gap: 0;\n}\n.ribbon-menu.ribbon-menu-caret > .ribbon-icon:last-of-type {\n margin-top: 0;\n}\n.ribbon-popover.go-to-panel {\n display: grid;\n grid-template-columns: minmax(0, 1fr);\n gap: 8px;\n width: 280px;\n padding: 10px;\n}\n.go-to-panel label {\n display: grid;\n gap: 4px;\n color: var(--muted);\n font
|
|
18738
|
+
var ribbon_popups_default = "/* Editing: a row-height command with a caret menu, and the Go To panel. */\n.ribbon-split-inline {\n display: flex;\n align-items: center;\n height: 22px;\n}\n.ribbon-group .ribbon-split-inline .ribbon-inline {\n flex: 1;\n width: auto;\n}\n.ribbon-menu.ribbon-menu-caret {\n flex: none;\n width: 18px;\n height: 22px;\n padding: 0;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n gap: 0;\n}\n.ribbon-menu.ribbon-menu-caret > .ribbon-icon:last-of-type {\n margin-top: 0;\n}\n.ribbon-popover.go-to-panel {\n display: grid;\n grid-template-columns: minmax(0, 1fr);\n gap: 8px;\n width: 280px;\n padding: 10px;\n}\n.go-to-panel label {\n display: grid;\n gap: 4px;\n color: var(--muted);\n font: 11px var(--office-font, system-ui, sans-serif);\n}\n.go-to-panel select {\n height: 28px;\n border: 1px solid var(--line);\n border-radius: 3px;\n background: var(--surface);\n color: var(--ink);\n}\n.go-to-list {\n display: flex;\n flex-direction: column;\n max-height: 220px;\n overflow-y: auto;\n}\n.go-to-list button {\n overflow: hidden;\n padding: 5px 8px;\n border: 0;\n background: none;\n color: var(--ink);\n font: 13px var(--office-font, system-ui, sans-serif);\n text-align: left;\n text-overflow: ellipsis;\n cursor: pointer;\n}\n.go-to-list button:hover,\n.go-to-list button:focus-visible {\n background: var(--accent-soft);\n}\n.go-to-list p {\n margin: 6px 8px;\n color: var(--muted);\n font-size: 12px;\n}\n\n/* Insert > Table size picker. */\n.ribbon-popover.table-picker {\n display: grid;\n grid-template-columns: minmax(0, 1fr);\n gap: 8px;\n width: 206px;\n padding: 10px;\n}\n.table-picker-caption {\n color: var(--ink);\n font: 12px var(--office-font, system-ui, sans-serif);\n}\n.table-picker-grid {\n display: grid;\n grid-template-columns: repeat(10, 18px);\n gap: 2px;\n outline: none;\n}\n.table-picker-grid:focus-visible {\n outline: 2px solid var(--blue);\n outline-offset: 2px;\n}\n.table-picker-grid [role='gridcell'] {\n width: 18px;\n height: 18px;\n border: 1px solid var(--line);\n background: var(--surface);\n cursor: pointer;\n}\n.table-picker-grid [role='gridcell'].active {\n border-color: var(--blue);\n background: color-mix(in srgb, var(--blue) 22%, transparent);\n}\n.table-picker-custom {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 6px;\n padding-top: 6px;\n border-top: 1px solid var(--line);\n}\n.table-picker-custom label {\n display: grid;\n gap: 2px;\n color: var(--muted);\n font: 11px var(--office-font, system-ui, sans-serif);\n}\n.table-picker-custom input {\n height: 24px;\n border: 1px solid var(--line);\n border-radius: 3px;\n background: var(--surface);\n color: var(--ink);\n}\n.table-picker-insert {\n grid-column: 1 / -1;\n height: 26px;\n border: 1px solid var(--line);\n border-radius: 3px;\n background: var(--surface);\n color: var(--ink);\n cursor: pointer;\n}\n.table-picker-insert:hover {\n background: var(--accent-soft);\n}\n\n/* Colour picker: the shared office-ui-color-grid in a ribbon popover. */\n.ribbon-popover.color-grid {\n display: block;\n padding: 4px;\n}\n.color-grid-input {\n position: absolute;\n width: 0;\n height: 0;\n padding: 0;\n border: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n/* Layout galleries: page thumbnails with a name and detail, for Margins, Size, Orientation, Columns. */\n.ribbon-menu-gallery select.ribbon-menu-input {\n pointer-events: none;\n}\n.ribbon-popover.ribbon-gallery-menu {\n display: flex;\n flex-direction: column;\n gap: 0;\n min-width: 220px;\n max-height: min(70vh, 460px);\n overflow-y: auto;\n padding: 4px;\n}\n.ribbon-gallery-menu button {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 6px 10px;\n border: 1px solid transparent;\n border-radius: 3px;\n background: none;\n color: var(--ink);\n font: 12px var(--office-font, system-ui, sans-serif);\n text-align: left;\n cursor: pointer;\n}\n.ribbon-gallery-menu button:hover,\n.ribbon-gallery-menu button:focus-visible {\n border-color: var(--line);\n background: var(--accent-soft);\n outline: none;\n}\n.ribbon-gallery-menu button[aria-checked='true'] {\n border-color: var(--blue);\n}\n.gallery-words {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.gallery-name {\n font-weight: 600;\n}\n.gallery-detail {\n color: var(--muted);\n font-size: 11px;\n}\n.gallery-thumb {\n flex: none;\n}\n.gallery-thumb .thumb-page {\n fill: #fff;\n stroke: #8a8886;\n stroke-width: 0.8;\n}\n.gallery-thumb .thumb-line {\n stroke: #a19f9d;\n stroke-width: 1.2;\n}\n\n/* Collapsed groups: a narrow ribbon folds its rightmost groups into one dropdown button each. */\n.ribbon-overflow-button {\n display: none !important;\n}\n.ribbon-group[data-collapsed] {\n width: auto !important;\n min-width: 0;\n max-width: none;\n flex-wrap: nowrap;\n}\n.ribbon-group[data-collapsed] > :not(.ribbon-overflow-button) {\n display: none !important;\n}\n.ribbon-group[data-collapsed] > .ribbon-overflow-button {\n display: flex !important;\n}\n.ribbon-group button.ribbon-overflow-button[aria-expanded='true'] {\n border-color: var(--line);\n background: var(--accent-soft);\n}\n.ribbon-popover.ribbon-overflow-panel {\n display: block;\n padding: 6px 8px 2px;\n}\n.ribbon-overflow-panel .ribbon-group {\n height: 84px;\n max-width: none;\n padding-right: 2px;\n border: 0;\n}\n.ribbon-group[data-collapsed]::after {\n display: none;\n}\n/* The Language group's tall stack of fields reads as one column inside its dropdown. */\n.ribbon-overflow-panel .ribbon-group.multilingual-controls {\n width: 300px !important;\n height: auto;\n max-height: min(70vh, 420px);\n flex-direction: column;\n flex-wrap: nowrap;\n align-items: stretch;\n padding-bottom: 20px;\n overflow-y: auto;\n}\n.gallery-thumb .thumb-edge-on {\n stroke: var(--ink);\n stroke-width: 1.6;\n}\n.gallery-thumb .thumb-edge-off {\n stroke: var(--muted);\n stroke-width: 1;\n stroke-dasharray: 1.5 1.5;\n}\n.gallery-thumb .thumb-line-dark {\n stroke: var(--ink);\n}\n.gallery-thumb .thumb-arrow {\n fill: none;\n stroke: var(--blue);\n stroke-width: 1.2;\n}\n.ribbon-gallery-menu .gallery-command {\n margin-top: 4px;\n padding-top: 8px;\n border-top: 1px solid var(--line);\n border-radius: 0;\n}\n";
|
|
18735
18739
|
|
|
18736
18740
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/ribbon-polish.css?raw
|
|
18737
|
-
var ribbon_polish_default = "/* Ribbon polish: distinct pressed state and Word's accent hues on command icons. Loaded last. */\n:host {\n --ribbon-accent-blue:
|
|
18741
|
+
var ribbon_polish_default = "/* Ribbon polish: distinct pressed state and Word's accent hues on command icons. Loaded last. */\n:host {\n --ribbon-accent-blue: var(--office-accent, #2563eb);\n --ribbon-accent-green: var(--office-info, #3b82f6);\n --ribbon-accent-red: var(--office-danger, #b91c1c);\n --ribbon-accent-orange: var(--office-warning, #d97706);\n}\n\n/* Pressed reads darker than hover, and pressing a control gives immediate feedback. */\n.ribbon-group button[aria-pressed='true'] {\n border-color: var(--blue);\n background: var(--accent-soft);\n}\n.ribbon-group button[aria-pressed='true']:hover:not(:disabled) {\n background: var(--accent-soft);\n}\n.ribbon-group button:active:not(:disabled),\n.ribbon-menu:active:not(:has(select:disabled)) {\n background: var(--accent-soft);\n}\n\n/* Accent hues (buttons only; a disabled control keeps its 0.4 opacity). */\n.ribbon-icon[data-icon='table'],\n.ribbon-icon[data-icon='find'],\n.ribbon-icon[data-icon='replace'],\n.ribbon-icon[data-icon='link'],\n.ribbon-icon[data-icon='crossReference'],\n.ribbon-icon[data-icon='toc'],\n.ribbon-icon[data-icon='updateTable'],\n.ribbon-icon[data-icon='header'],\n.ribbon-icon[data-icon='footer'],\n.ribbon-icon[data-icon='pageNumber'],\n.ribbon-icon[data-icon='pageNumberIcon'],\n.ribbon-icon[data-icon='margins'],\n.ribbon-icon[data-icon='orientation'],\n.ribbon-icon[data-icon='pageSize'],\n.ribbon-icon[data-icon='columns'],\n.ribbon-icon[data-icon='select'],\n.ribbon-icon[data-icon='paste'],\n.ribbon-icon[data-icon='borders'],\n.ribbon-icon[data-icon='rowAbove'],\n.ribbon-icon[data-icon='rowBelow'],\n.ribbon-icon[data-icon='columnLeft'],\n.ribbon-icon[data-icon='columnRight'] {\n color: var(--ribbon-accent-blue);\n}\n.ribbon-icon[data-icon='picture'],\n.ribbon-icon[data-icon='formatPicture'],\n.ribbon-icon[data-icon='formatPainter'],\n.ribbon-icon[data-icon='accept'],\n.ribbon-icon[data-icon='acceptAll'],\n.ribbon-icon[data-icon='spelling'],\n.ribbon-icon[data-icon='readAloud'] {\n color: var(--ribbon-accent-green);\n}\n.ribbon-icon[data-icon='reject'],\n.ribbon-icon[data-icon='rejectAll'],\n.ribbon-icon[data-icon='deleteRow'],\n.ribbon-icon[data-icon='deleteColumn'],\n.ribbon-icon[data-icon='deleteTable'],\n.ribbon-icon[data-icon='deleteComment'],\n.ribbon-icon[data-icon='clear'] {\n color: var(--ribbon-accent-red);\n}\n.ribbon-icon[data-icon='comment'],\n.ribbon-icon[data-icon='comments'],\n.ribbon-icon[data-icon='bookmark'],\n.ribbon-icon[data-icon='caption'],\n.ribbon-icon[data-icon='footnote'],\n.ribbon-icon[data-icon='endnote'],\n.ribbon-icon[data-icon='coverPage'] {\n color: var(--ribbon-accent-orange);\n}\n\n/* Icons never shrink to make room for a two-line caption, so every large icon is the same size. */\n.ribbon-menu > .ribbon-icon,\n.ribbon-large > .ribbon-icon {\n flex: none;\n}\n\n/* A two-line caption plus the caret must still fit the dropdown command's box. */\n.ribbon-menu:not(.ribbon-menu-compact):not(.ribbon-menu-caret) {\n gap: 1px;\n height: 72px;\n line-height: 1.1;\n}\n.ribbon-menu:not(.ribbon-menu-compact):not(.ribbon-menu-caret) > .ribbon-icon:last-of-type {\n margin-top: -3px;\n}\n";
|
|
18738
18742
|
|
|
18739
18743
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/ribbon-home-menus.css?raw
|
|
18740
18744
|
var ribbon_home_menus_default = ".ribbon-command-split {\n flex: none;\n height: 28px;\n}\n.ribbon-command-split .ribbon-menu.ribbon-menu-caret {\n width: 14px;\n height: 28px;\n}\n.ribbon-command-split-large {\n flex-direction: column;\n height: 74px;\n}\n.ribbon-group .ribbon-command-split-large .ribbon-large {\n height: 56px;\n min-height: 56px;\n}\n.ribbon-command-split-large .ribbon-menu.ribbon-menu-caret {\n width: 100%;\n height: 18px;\n}\n.ribbon-command-split[data-dve-hidden] {\n display: none;\n}\n";
|
|
18741
18745
|
|
|
18742
18746
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/document.css?raw
|
|
18743
|
-
var document_default = ".dve-revision-insert {\n color: var(--dve-revision-color, inherit);\n text-decoration: underline;\n text-decoration-color: var(--dve-revision-color, currentColor);\n}\n.dve-revision-delete {\n color: var(--dve-revision-color, inherit);\n text-decoration: line-through;\n text-decoration-color: var(--dve-revision-color, currentColor);\n}\n/* Moved text, like Word: green, double underline at the destination, double strike at the source. */\n.dve-revision-move {\n --dve-revision-color: #2e7d32;\n text-decoration-style: double;\n}\n.ProseMirror .dve-revision-hidden {\n /* Review visibility takes precedence over picture/equation node-view display rules. */\n display: none !important;\n}\n[data-review-display]:not([data-review-display='all']) .dve-revision-insert,\n[data-review-display]:not([data-review-display='all']) .dve-revision-delete {\n color: inherit;\n text-decoration: none;\n}\n[data-review-display]:not([data-review-display='all']) .dve-comment-range {\n background: transparent;\n}\n.dve-revision-format-markup {\n outline: 1px dotted currentColor;\n outline-offset: 2px;\n}\n.dve-comment-range {\n background: rgba(255, 212, 0, 0.28);\n}\n.dve-paper {\n box-sizing: border-box;\n position: relative;\n flex: none;\n margin: 0 auto;\n background: var(--dve-page-color, #fff);\n color: #202124;\n box-shadow:\n 0 1px 3px #20212430,\n 0 4px 12px #20212420;\n outline: none;\n /* Single spacing and no paragraph gap unless the document's styles set them, as in Word. */\n font:\n 11pt/1.2 Calibri,\n Carlito,\n Arial,\n sans-serif;\n zoom: var(--dve-zoom, 1);\n}\n.dve-paper p {\n min-height: 1.2em;\n margin: 0;\n white-space: pre-wrap;\n}\n.dve-paper p:last-child {\n margin-bottom: 0;\n}\n/* The caret marks focus in the document, as in Word; no ring around the editable area. */\n.dve-paper .ProseMirror:focus,\n.dve-paper .ProseMirror:focus-visible {\n outline: none;\n}\n.dve-paper:focus {\n box-shadow:\n 0 1px 3px #20212430,\n 0 4px 12px #20212420,\n 0 0 0 1px var(--blue);\n}\n/* Columns follow the table's grid and cell widths (equal when it has none), as Word lays them out;\n tables add no space around themselves. */\n.dve-paper table {\n width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n margin: 0;\n}\n.dve-paper td {\n min-width: 44px;\n border: var(--dve-cell-border, 1px dashed #c8c6c4);\n vertical-align: top;\n}\n.dve-paper td p {\n margin: 0;\n}\n.dve-paper p[data-list-label]::before {\n content: attr(data-list-label);\n white-space: pre;\n user-select: none;\n}\n.dve-paper p[data-list-marker]:not([data-list-marker=''])::before {\n content: attr(data-list-marker);\n position: absolute;\n left: var(--dve-marker-left);\n text-indent: 0;\n font-family: var(--dve-marker-family);\n font-size: var(--dve-marker-size);\n font-weight: var(--dve-marker-weight);\n font-style: var(--dve-marker-style);\n color: var(--dve-marker-color);\n}\n.multilingual-controls {\n flex: 1 1 100%;\n align-items: flex-start;\n gap: 9px 14px;\n}\n.multilingual-language-control {\n display: grid;\n grid-template-columns: minmax(145px, 180px);\n gap: 4px;\n color: var(--muted);\n font-size: 11px;\n}\n.multilingual-language-control select,\n.multilingual-language-control input {\n box-sizing: border-box;\n width: 180px;\n}\n.multilingual-language-control input {\n height: 26px;\n border: 1px solid var(--line);\n border-radius: 3px;\n background: var(--surface);\n padding: 0 7px;\n color: var(--ink);\n font
|
|
18747
|
+
var document_default = ".dve-revision-insert {\n color: var(--dve-revision-color, inherit);\n text-decoration: underline;\n text-decoration-color: var(--dve-revision-color, currentColor);\n}\n.dve-revision-delete {\n color: var(--dve-revision-color, inherit);\n text-decoration: line-through;\n text-decoration-color: var(--dve-revision-color, currentColor);\n}\n/* Moved text, like Word: green, double underline at the destination, double strike at the source. */\n.dve-revision-move {\n --dve-revision-color: #2e7d32;\n text-decoration-style: double;\n}\n.ProseMirror .dve-revision-hidden {\n /* Review visibility takes precedence over picture/equation node-view display rules. */\n display: none !important;\n}\n[data-review-display]:not([data-review-display='all']) .dve-revision-insert,\n[data-review-display]:not([data-review-display='all']) .dve-revision-delete {\n color: inherit;\n text-decoration: none;\n}\n[data-review-display]:not([data-review-display='all']) .dve-comment-range {\n background: transparent;\n}\n.dve-revision-format-markup {\n outline: 1px dotted currentColor;\n outline-offset: 2px;\n}\n.dve-comment-range {\n background: rgba(255, 212, 0, 0.28);\n}\n.dve-paper {\n box-sizing: border-box;\n position: relative;\n flex: none;\n margin: 0 auto;\n background: var(--dve-page-color, var(--office-paper, #fff));\n color: #202124;\n box-shadow:\n 0 1px 3px #20212430,\n 0 4px 12px #20212420;\n outline: none;\n /* Single spacing and no paragraph gap unless the document's styles set them, as in Word. */\n font:\n 11pt/1.2 Calibri,\n Carlito,\n Arial,\n sans-serif;\n zoom: var(--dve-zoom, 1);\n}\n.dve-paper p {\n min-height: 1.2em;\n margin: 0;\n white-space: pre-wrap;\n}\n.dve-paper p:last-child {\n margin-bottom: 0;\n}\n/* The caret marks focus in the document, as in Word; no ring around the editable area. */\n.dve-paper .ProseMirror:focus,\n.dve-paper .ProseMirror:focus-visible {\n outline: none;\n}\n.dve-paper:focus {\n box-shadow:\n 0 1px 3px #20212430,\n 0 4px 12px #20212420,\n 0 0 0 1px var(--blue);\n}\n/* Columns follow the table's grid and cell widths (equal when it has none), as Word lays them out;\n tables add no space around themselves. */\n.dve-paper table {\n width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n margin: 0;\n}\n.dve-paper td {\n min-width: 44px;\n border: var(--dve-cell-border, 1px dashed #c8c6c4);\n vertical-align: top;\n}\n.dve-paper td p {\n margin: 0;\n}\n.dve-paper p[data-list-label]::before {\n content: attr(data-list-label);\n white-space: pre;\n user-select: none;\n}\n.dve-paper p[data-list-marker]:not([data-list-marker=''])::before {\n content: attr(data-list-marker);\n position: absolute;\n left: var(--dve-marker-left);\n text-indent: 0;\n font-family: var(--dve-marker-family);\n font-size: var(--dve-marker-size);\n font-weight: var(--dve-marker-weight);\n font-style: var(--dve-marker-style);\n color: var(--dve-marker-color);\n}\n.multilingual-controls {\n flex: 1 1 100%;\n align-items: flex-start;\n gap: 9px 14px;\n}\n.multilingual-language-control {\n display: grid;\n grid-template-columns: minmax(145px, 180px);\n gap: 4px;\n color: var(--muted);\n font-size: 11px;\n}\n.multilingual-language-control select,\n.multilingual-language-control input {\n box-sizing: border-box;\n width: 180px;\n}\n.multilingual-language-control input {\n height: 26px;\n border: 1px solid var(--line);\n border-radius: 3px;\n background: var(--surface);\n padding: 0 7px;\n color: var(--ink);\n font: 11px var(--office-font, system-ui, sans-serif);\n}\n.multilingual-note {\n align-self: end;\n max-width: 240px;\n color: var(--muted);\n font-size: 11px;\n}\n@media (max-width: 650px) {\n .ribbon-panel {\n min-height: 96px;\n padding: 6px;\n gap: 4px;\n }\n .ribbon-group {\n padding-right: 7px;\n }\n .ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Font'] {\n width: 340px;\n }\n .ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Paragraph'] {\n width: 280px;\n }\n .ribbon-panel[data-panel='Home'] .ribbon-group[data-label='Editing'] {\n width: auto;\n }\n .ribbon-group button {\n min-width: 34px;\n min-height: 34px;\n }\n .ribbon-group select {\n max-width: min(150px, 42vw);\n }\n .dve-canvas {\n padding: 18px 8px 38px;\n align-items: flex-start;\n }\n .ribbon-group select.font-family-select {\n width: 120px;\n max-width: 38vw;\n }\n .ribbon-group select.font-size-select {\n width: 56px;\n }\n .ribbon-group select.spacing-select {\n width: min(128px, 36vw);\n }\n .ribbon-group select.line-spacing-select {\n width: min(112px, 32vw);\n }\n}\n.dve-break-marker {\n display: block;\n margin: 0.4em 0;\n padding: 2px 0;\n border-top: 1px dashed var(--muted);\n border-bottom: 1px dashed var(--muted);\n color: var(--muted);\n font-size: 10px;\n text-align: center;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n user-select: none;\n}\n.dve-note-reference {\n color: var(--blue);\n cursor: default;\n}\n.dve-header,\n.dve-footer {\n box-sizing: border-box;\n width: 816px;\n max-width: 100%;\n margin: 0 auto;\n padding: 10px clamp(16px, 5vw, 70px);\n background: var(--surface);\n color: var(--muted);\n font:\n 10pt/1.35 Calibri,\n Arial,\n sans-serif;\n}\n.dve-header {\n border-bottom: 1px dashed var(--line);\n}\n.dve-footer {\n border-top: 1px dashed var(--line);\n}\n.dve-header-footer-label {\n margin-bottom: 2px;\n color: var(--muted);\n font-size: 10px;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n.dve-notes-container {\n box-sizing: border-box;\n width: 816px;\n max-width: 100%;\n margin: 12px auto 0;\n}\n.dve-notes {\n box-sizing: border-box;\n padding: 10px clamp(16px, 5vw, 70px);\n background: var(--surface);\n border-top: 1px solid var(--line);\n font:\n 10pt/1.35 Calibri,\n Arial,\n sans-serif;\n}\n.dve-notes-heading {\n margin: 0 0 6px;\n color: var(--ink);\n font-size: 12px;\n}\n.dve-note-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.dve-note-list li {\n display: flex;\n gap: 4px;\n align-items: baseline;\n margin-bottom: 4px;\n}\n.dve-note-marker {\n flex: none;\n color: var(--muted);\n}\n@media (prefers-reduced-motion: reduce) {\n * {\n scroll-behavior: auto !important;\n }\n}\n\n/* Print Layout: a read-only, paginated render kept beside the continuous\n editing surface (see print-layout.ts / print-layout-view.ts). */\n";
|
|
18744
18748
|
|
|
18745
18749
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/underline.css?raw
|
|
18746
18750
|
var underline_default = `/* Styled runs paint their own underline. Do not superimpose the semantic mark's single line. */
|
|
@@ -18766,46 +18770,42 @@ var underline_default = `/* Styled runs paint their own underline. Do not superi
|
|
|
18766
18770
|
`;
|
|
18767
18771
|
|
|
18768
18772
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/print.css?raw
|
|
18769
|
-
var print_default = ".dve-print-pages {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 24px;\n margin: 0 auto;\n zoom: var(--dve-zoom, 1);\n}\n/* The view wraps the layout's own pages container; zoom the pair once, not twice. */\n.dve-print-pages > .dve-print-pages {\n zoom: 1;\n}\n.dve-print-pages[hidden] {\n display: none;\n}\n.dve-print-page {\n position: relative;\n flex: none;\n background: var(--dve-page-color, #fff);\n color: #202124;\n box-shadow:\n 0 1px 3px #20212430,\n 0 4px 12px #20212420;\n overflow: hidden;\n}\n.dve-print-column {\n position: absolute;\n z-index: 1;\n}\n/* The frame and handles of a selected floating picture, as in Word. */\n.dve-print-float-frame {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n border: 1px solid var(--word, #2b579a);\n pointer-events: none;\n}\n.dve-print-float-handle {\n position: absolute;\n box-sizing: border-box;\n width: 9px;\n height: 9px;\n border: 1px solid var(--word, #2b579a);\n background: #fff;\n pointer-events: auto;\n touch-action: none;\n}\n.dve-print-float-handle[data-float-handle='nw'] {\n left: -5px;\n top: -5px;\n}\n.dve-print-float-handle[data-float-handle='n'] {\n left: calc(50% - 5px);\n top: -5px;\n}\n.dve-print-float-handle[data-float-handle='ne'] {\n right: -5px;\n top: -5px;\n}\n.dve-print-float-handle[data-float-handle='e'] {\n right: -5px;\n top: calc(50% - 5px);\n}\n.dve-print-float-handle[data-float-handle='se'] {\n right: -5px;\n bottom: -5px;\n}\n.dve-print-float-handle[data-float-handle='s'] {\n left: calc(50% - 5px);\n bottom: -5px;\n}\n.dve-print-float-handle[data-float-handle='sw'] {\n left: -5px;\n bottom: -5px;\n}\n.dve-print-float-handle[data-float-handle='w'] {\n left: -5px;\n top: calc(50% - 5px);\n}\n/* Floating pictures sit in front of text unless anchored behind it (wp:anchor/@behindDoc). */\n.dve-print-float {\n z-index: 2;\n}\n.dve-print-float-behind {\n z-index: 0;\n}\n.dve-print-picture-missing {\n box-sizing: border-box;\n border: 1px dashed #8a8886;\n background: #f3f2f1;\n}\n.dve-print-chart {\n overflow: hidden;\n background: #fff;\n}\n.dve-print-chart > svg {\n display: block;\n width: 100%;\n height: 100%;\n}\n.dve-print-chart-frame {\n display: grid;\n place-items: center;\n color: #605e5c;\n font-size: 11px;\n}\n.dve-print-block {\n position: absolute;\n left: 0;\n width: 100%;\n}\n.dve-print-line {\n position: absolute;\n left: 0;\n width: 100%;\n font:\n 11pt/1.2 Calibri,\n Arial,\n sans-serif;\n cursor: text;\n}\n.dve-print-line span {\n position: absolute;\n top: 0;\n}\n.dve-print-row {\n position: absolute;\n left: 0;\n width: 100%;\n}\n/* Cells sit at their grid positions; borders come from the document (Word prints no gridlines). */\n.dve-print-cell {\n position: absolute;\n top: 0;\n box-sizing: border-box;\n}\n.dve-print-cell-content {\n position: absolute;\n bottom: 0;\n}\n@media print {\n .dve-ribbon,\n .dve-status,\n .multilingual-controls {\n display: none !important;\n }\n .dve-canvas {\n overflow: visible !important;\n padding: 0 !important;\n }\n .dve-paper {\n display: none !important;\n }\n .dve-print-pages {\n gap: 0 !important;\n zoom: 1 !important;\n }\n .dve-print-page {\n /* Like Word, page colours are not printed unless asked for. */\n background: #fff !important;\n box-shadow: none !important;\n break-after: page;\n }\n}\n.dve-print-header,\n.dve-print-footer {\n position: absolute;\n color: var(--ink);\n font-size: 11pt;\n pointer-events: none;\n}\n/* Header and footer editing in place on a page: the body dims, like Word. */\n.dve-print-story-editing .dve-print-block {\n opacity: 0.45;\n}\n.dve-print-header.dve-header-footer-editing,\n.dve-print-footer.dve-header-footer-editing {\n pointer-events: auto;\n cursor: text;\n z-index: 3;\n}\n.dve-print-header p,\n.dve-print-footer p {\n margin: 0;\n}\n.dve-print-header table,\n.dve-print-footer table {\n width: 100%;\n border-collapse: collapse;\n}\n\n/* Complex field begin/code/separate/end markers: kept in the document, never shown. */\n.dve-field-marker {\n display: inline;\n font-size: 0;\n}\n\n/* TOC entries link to hidden _Toc bookmarks; Word draws them in the entry's style, not as links. */\na.dve-link[data-anchor^='_Toc'] {\n color: inherit;\n text-decoration: none;\n}\n\n/* Tabs sized to Word's tab stops by tab-stops-view.ts; leaders fill the tab's width. */\n.dve-tab {\n display: inline-block;\n overflow: hidden;\n white-space: pre;\n vertical-align: baseline;\n text-indent: 0;\n}\n.dve-tab-leader-dot,\n.dve-tab-leader-middleDot {\n background-image: radial-gradient(circle, currentColor 0.8px, transparent 1.1px);\n background-size: 4px 4px;\n background-repeat: repeat-x;\n background-position: right 0 bottom 0.25em;\n}\n.dve-tab-leader-hyphen {\n background-image: linear-gradient(to right, currentColor 50%, transparent 50%);\n background-size: 6px 1px;\n background-repeat: repeat-x;\n background-position: right 0 bottom 0.4em;\n}\n.dve-tab-leader-underscore,\n.dve-tab-leader-heavy {\n border-bottom: 1px solid currentColor;\n}\n.dve-tab-leader-heavy {\n border-bottom-width: 2px;\n}\n\n/* Footnotes above the bottom margin; the separator is Word's 2-inch rule. */\n.dve-print-footnotes {\n position: absolute;\n z-index: 1;\n}\n.dve-print-footnote-separator {\n position: absolute;\n top: -7px;\n left: 0;\n width: 192px;\n border-top: 1px solid currentColor;\n}\n.dve-print-footnote-continuation-separator {\n width: 100%;\n}\n.dve-print-footnote {\n position: absolute;\n left: 0;\n width: 100%;\n}\n\n/* A note edited in place on its page: its number stays beside the editor. */\n.dve-print-note-container.dve-header-footer-editing {\n display: flex;\n align-items: flex-start;\n gap: 0.25em;\n z-index: 3;\n cursor: text;\n}\n.dve-print-note-container .dve-header-footer-editor {\n flex: 1 1 auto;\n min-width: 0;\n}\n.dve-print-note-label {\n font-size: 0.65em;\n line-height: 1.4;\n vertical-align: baseline;\n}\n\n[data-print-view] .dve-notes-container {\n display: none;\n}\n\n/* Word draws superscript and subscript at about two thirds size without growing the line. */\n.dve-paper sup,\n.dve-paper sub {\n font-size: 0.65em;\n line-height: 0;\n}\n/* Exact-height rows clip content that does not fit, as Word does. */\n.dve-print-cell {\n overflow: hidden;\n}\n.dve-print-paragraph-frame {\n position: absolute;\n top: 0;\n box-sizing: border-box;\n}\n\n/* View > Multiple Pages: Print Layout's sheets sit side by side and wrap, instead of one column. */\n.dve-canvas[data-multipage] .dve-print-pages {\n flex-direction: row;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: center;\n}\n\n/* Layout > Line Numbers: numbers in the left margin, one per printed line. */\n.dve-print-line-number {\n position: absolute;\n width: 40px;\n text-align: right;\n font
|
|
18773
|
+
var print_default = ".dve-print-pages {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 24px;\n margin: 0 auto;\n zoom: var(--dve-zoom, 1);\n}\n/* The view wraps the layout's own pages container; zoom the pair once, not twice. */\n.dve-print-pages > .dve-print-pages {\n zoom: 1;\n}\n.dve-print-pages[hidden] {\n display: none;\n}\n.dve-print-page {\n position: relative;\n flex: none;\n background: var(--dve-page-color, var(--office-paper, #fff));\n color: #202124;\n box-shadow:\n 0 1px 3px #20212430,\n 0 4px 12px #20212420;\n overflow: hidden;\n}\n.dve-print-column {\n position: absolute;\n z-index: 1;\n}\n/* The frame and handles of a selected floating picture, as in Word. */\n.dve-print-float-frame {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n border: 1px solid var(--word, #2b579a);\n pointer-events: none;\n}\n.dve-print-float-handle {\n position: absolute;\n box-sizing: border-box;\n width: 9px;\n height: 9px;\n border: 1px solid var(--word, #2b579a);\n background: #fff;\n pointer-events: auto;\n touch-action: none;\n}\n.dve-print-float-handle[data-float-handle='nw'] {\n left: -5px;\n top: -5px;\n}\n.dve-print-float-handle[data-float-handle='n'] {\n left: calc(50% - 5px);\n top: -5px;\n}\n.dve-print-float-handle[data-float-handle='ne'] {\n right: -5px;\n top: -5px;\n}\n.dve-print-float-handle[data-float-handle='e'] {\n right: -5px;\n top: calc(50% - 5px);\n}\n.dve-print-float-handle[data-float-handle='se'] {\n right: -5px;\n bottom: -5px;\n}\n.dve-print-float-handle[data-float-handle='s'] {\n left: calc(50% - 5px);\n bottom: -5px;\n}\n.dve-print-float-handle[data-float-handle='sw'] {\n left: -5px;\n bottom: -5px;\n}\n.dve-print-float-handle[data-float-handle='w'] {\n left: -5px;\n top: calc(50% - 5px);\n}\n/* Floating pictures sit in front of text unless anchored behind it (wp:anchor/@behindDoc). */\n.dve-print-float {\n z-index: 2;\n}\n.dve-print-float-behind {\n z-index: 0;\n}\n.dve-print-picture-missing {\n box-sizing: border-box;\n border: 1px dashed #8a8886;\n background: #f3f2f1;\n}\n.dve-print-chart {\n overflow: hidden;\n background: #fff;\n}\n.dve-print-chart > svg {\n display: block;\n width: 100%;\n height: 100%;\n}\n.dve-print-chart-frame {\n display: grid;\n place-items: center;\n color: #605e5c;\n font-size: 11px;\n}\n.dve-print-block {\n position: absolute;\n left: 0;\n width: 100%;\n}\n.dve-print-line {\n position: absolute;\n left: 0;\n width: 100%;\n font:\n 11pt/1.2 Calibri,\n Arial,\n sans-serif;\n cursor: text;\n}\n.dve-print-line span {\n position: absolute;\n top: 0;\n}\n.dve-print-row {\n position: absolute;\n left: 0;\n width: 100%;\n}\n/* Cells sit at their grid positions; borders come from the document (Word prints no gridlines). */\n.dve-print-cell {\n position: absolute;\n top: 0;\n box-sizing: border-box;\n}\n.dve-print-cell-content {\n position: absolute;\n bottom: 0;\n}\n@media print {\n .dve-ribbon,\n .dve-status,\n .multilingual-controls {\n display: none !important;\n }\n .dve-canvas {\n overflow: visible !important;\n padding: 0 !important;\n }\n .dve-paper {\n display: none !important;\n }\n .dve-print-pages {\n gap: 0 !important;\n zoom: 1 !important;\n }\n .dve-print-page {\n /* Like Word, page colours are not printed unless asked for. */\n background: #fff !important;\n box-shadow: none !important;\n break-after: page;\n }\n}\n.dve-print-header,\n.dve-print-footer {\n position: absolute;\n color: var(--ink);\n font-size: 11pt;\n pointer-events: none;\n}\n/* Header and footer editing in place on a page: the body dims, like Word. */\n.dve-print-story-editing .dve-print-block {\n opacity: 0.45;\n}\n.dve-print-header.dve-header-footer-editing,\n.dve-print-footer.dve-header-footer-editing {\n pointer-events: auto;\n cursor: text;\n z-index: 3;\n}\n.dve-print-header p,\n.dve-print-footer p {\n margin: 0;\n}\n.dve-print-header table,\n.dve-print-footer table {\n width: 100%;\n border-collapse: collapse;\n}\n\n/* Complex field begin/code/separate/end markers: kept in the document, never shown. */\n.dve-field-marker {\n display: inline;\n font-size: 0;\n}\n\n/* TOC entries link to hidden _Toc bookmarks; Word draws them in the entry's style, not as links. */\na.dve-link[data-anchor^='_Toc'] {\n color: inherit;\n text-decoration: none;\n}\n\n/* Tabs sized to Word's tab stops by tab-stops-view.ts; leaders fill the tab's width. */\n.dve-tab {\n display: inline-block;\n overflow: hidden;\n white-space: pre;\n vertical-align: baseline;\n text-indent: 0;\n}\n.dve-tab-leader-dot,\n.dve-tab-leader-middleDot {\n background-image: radial-gradient(circle, currentColor 0.8px, transparent 1.1px);\n background-size: 4px 4px;\n background-repeat: repeat-x;\n background-position: right 0 bottom 0.25em;\n}\n.dve-tab-leader-hyphen {\n background-image: linear-gradient(to right, currentColor 50%, transparent 50%);\n background-size: 6px 1px;\n background-repeat: repeat-x;\n background-position: right 0 bottom 0.4em;\n}\n.dve-tab-leader-underscore,\n.dve-tab-leader-heavy {\n border-bottom: 1px solid currentColor;\n}\n.dve-tab-leader-heavy {\n border-bottom-width: 2px;\n}\n\n/* Footnotes above the bottom margin; the separator is Word's 2-inch rule. */\n.dve-print-footnotes {\n position: absolute;\n z-index: 1;\n}\n.dve-print-footnote-separator {\n position: absolute;\n top: -7px;\n left: 0;\n width: 192px;\n border-top: 1px solid currentColor;\n}\n.dve-print-footnote-continuation-separator {\n width: 100%;\n}\n.dve-print-footnote {\n position: absolute;\n left: 0;\n width: 100%;\n}\n\n/* A note edited in place on its page: its number stays beside the editor. */\n.dve-print-note-container.dve-header-footer-editing {\n display: flex;\n align-items: flex-start;\n gap: 0.25em;\n z-index: 3;\n cursor: text;\n}\n.dve-print-note-container .dve-header-footer-editor {\n flex: 1 1 auto;\n min-width: 0;\n}\n.dve-print-note-label {\n font-size: 0.65em;\n line-height: 1.4;\n vertical-align: baseline;\n}\n\n[data-print-view] .dve-notes-container {\n display: none;\n}\n\n/* Word draws superscript and subscript at about two thirds size without growing the line. */\n.dve-paper sup,\n.dve-paper sub {\n font-size: 0.65em;\n line-height: 0;\n}\n/* Exact-height rows clip content that does not fit, as Word does. */\n.dve-print-cell {\n overflow: hidden;\n}\n.dve-print-paragraph-frame {\n position: absolute;\n top: 0;\n box-sizing: border-box;\n}\n\n/* View > Multiple Pages: Print Layout's sheets sit side by side and wrap, instead of one column. */\n.dve-canvas[data-multipage] .dve-print-pages {\n flex-direction: row;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: center;\n}\n\n/* Layout > Line Numbers: numbers in the left margin, one per printed line. */\n.dve-print-line-number {\n position: absolute;\n width: 40px;\n text-align: right;\n font: 10px var(--office-font, system-ui, sans-serif);\n color: #444;\n pointer-events: none;\n}\n\n/* Native input stays mounted while page geometry supplies the visible selection. */\n.dve-paper.dve-print-input {\n position: fixed;\n top: 0;\n left: 0;\n margin: 0;\n opacity: 0;\n max-height: 1px;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n.dve-print-pages {\n position: relative;\n}\n.dve-print-selection-layer {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 3;\n}\n.dve-print-caret,\n.dve-print-selection {\n position: absolute;\n pointer-events: none;\n}\n.dve-print-caret {\n background: currentColor;\n animation: dve-print-caret-blink 1s step-end infinite;\n}\n.dve-print-selection {\n background: Highlight;\n opacity: 0.3;\n}\n@keyframes dve-print-caret-blink {\n 50% {\n opacity: 0;\n }\n}\n@media print {\n .dve-print-input,\n .dve-print-selection-layer {\n display: none !important;\n }\n}\n/* In-place text editing of a floating shape or text box. */\n.dve-print-float-text {\n position: absolute;\n z-index: 5;\n box-sizing: border-box;\n padding: 4px 7px;\n resize: none;\n overflow: auto;\n border: 1px dashed var(--word, #2b579a);\n background: rgb(255 255 255 / 0.85);\n color: #000;\n font:\n 14.67px Calibri,\n Arial,\n sans-serif;\n text-align: center;\n}\n";
|
|
18770
18774
|
|
|
18771
18775
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/chrome-titlebar.css?raw
|
|
18772
|
-
var chrome_titlebar_default = ".dve-frame {\n position: relative;\n border: 0;\n box-shadow: none;\n}\n.dve-icon {\n flex: none;\n}\n.dve-icon-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 28px;\n height: 28px;\n padding: 0 6px;\n border: 0;\n border-radius: 4px;\n background: none;\n color: inherit;\n cursor: pointer;\n}\n.dve-icon-button:hover:not(:disabled),\n.dve-icon-button[aria-pressed='true'] {\n background: var(--word-soft);\n}\n.dve-icon-button:disabled {\n opacity: 0.4;\n cursor: default;\n}\n\n/* Title bar: drawn by the shared office-ui-title-bar; these colour it. */\n.dve-titlebar {\n flex: none;\n --office-title-bar-height: 40px;\n --office-title-bar-background: var(--chrome);\n --office-title-bar-border: var(--line);\n --office-title-bar-mark-background: var(--word);\n --office-title-bar-mark-foreground: var(--dve-primary-foreground);\n}\n";
|
|
18776
|
+
var chrome_titlebar_default = ".dve-frame {\n position: relative;\n border: 0;\n box-shadow: none;\n}\n.dve-icon {\n flex: none;\n}\n.dve-icon-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 28px;\n height: 28px;\n padding: 0 6px;\n border: 0;\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n background: none;\n color: inherit;\n cursor: pointer;\n}\n.dve-icon-button:hover:not(:disabled),\n.dve-icon-button[aria-pressed='true'] {\n background: var(--word-soft);\n}\n.dve-icon-button:disabled {\n opacity: 0.4;\n cursor: default;\n}\n\n/* Title bar: drawn by the shared office-ui-title-bar; these colour it. */\n.dve-titlebar {\n flex: none;\n --office-title-bar-height: 40px;\n --office-title-bar-background: var(--chrome);\n --office-title-bar-border: var(--line);\n --office-title-bar-mark-background: var(--word);\n --office-title-bar-mark-foreground: var(\n --dve-primary-foreground,\n var(--office-accent-foreground, #fff)\n );\n}\n";
|
|
18773
18777
|
|
|
18774
18778
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/backstage.css?raw
|
|
18775
|
-
var backstage_default = "/* Backstage: the shared office-ui-backstage draws the frame; these colour it and style the pages. */\n.dve-backstage {\n --office-backstage-nav-width: 220px;\n --office-backstage-nav-background: var(--word);\n --office-backstage-nav-foreground: var(--dve-primary-foreground);\n --office-backstage-item-hover: var(--word-strong);\n z-index: 40;\n background: var(--surface);\n}\n.dve-backstage-content {\n overflow: auto;\n padding: 28px 40px;\n color: var(--ink);\n}\n.dve-backstage-content h2 {\n margin: 0 0 20px;\n font-size: 30px;\n font-weight: 300;\n}\n.dve-backstage-content h3 {\n margin: 24px 0 10px;\n font-size: 15px;\n font-weight: 600;\n}\n.dve-backstage-facts {\n display: grid;\n grid-template-columns: max-content minmax(0, 1fr);\n gap: 6px 24px;\n margin: 0;\n}\n.dve-backstage-facts dt {\n color: var(--muted);\n}\n.dve-backstage-facts dd {\n margin: 0;\n overflow-wrap: anywhere;\n}\n.dve-compatibility-notes {\n display: grid;\n gap: 8px;\n max-width: 760px;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.dve-compatibility-notes li {\n display: flex;\n gap: 8px;\n padding: 10px 12px;\n border: 1px solid var(--line);\n border-radius: 6px;\n line-height: 1.45;\n}\n.dve-compatibility-notes .dve-icon {\n margin-top: 2px;\n color: #b7791f;\n}\n.dve-backstage-tile {\n display: inline-flex;\n flex-direction: column;\n gap: 8px;\n padding: 8px;\n border: 1px solid transparent;\n border-radius: 6px;\n background: none;\n color: var(--ink);\n font: inherit;\n cursor: pointer;\n}\n.dve-backstage-tile:hover {\n border-color: var(--line);\n background: var(--word-soft);\n}\n.dve-backstage-tile-preview {\n width: 150px;\n height: 190px;\n border: 1px solid var(--line);\n background: #fff;\n box-shadow: 0 1px 3px #0002;\n}\n.dve-backstage-primary {\n padding: 8px 18px;\n border: 0;\n border-radius: 4px;\n background: var(--word);\n color: var(--dve-primary-foreground);\n font: inherit;\n cursor: pointer;\n}\n.dve-backstage-muted {\n color: var(--muted);\n}\n\n.dve-backstage-title {\n margin: 0 0 4px;\n font-size: 26px;\n font-weight: 400;\n overflow-wrap: anywhere;\n}\n.dve-backstage-columns {\n display: grid;\n grid-template-columns: minmax(0, 1fr) 300px;\n gap: 40px;\n align-items: start;\n}\n.dve-backstage-properties {\n padding: 4px 0 0 24px;\n border-left: 1px solid var(--line);\n}\n.dve-backstage-properties h3 {\n margin-top: 0;\n}\n.dve-backstage-card {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 24px;\n max-width: 760px;\n margin-bottom: 12px;\n padding: 14px 18px;\n border: 1px solid var(--line);\n border-radius: 6px;\n}\n.dve-backstage-card h3 {\n margin: 0 0 4px;\n}\n.dve-backstage-card p {\n margin: 0;\n}\n.dve-backstage-field {\n display: grid;\n gap: 4px;\n max-width: 420px;\n margin-bottom: 14px;\n color: var(--muted);\n font-size: 12px;\n}\n.dve-backstage-field input,\n.dve-backstage-field select {\n height: 32px;\n padding: 0 8px;\n border: 1px solid var(--line);\n border-radius: 4px;\n background: var(--surface);\n color: var(--ink);\n font
|
|
18779
|
+
var backstage_default = "/* Backstage: the shared office-ui-backstage draws the frame; these colour it and style the pages. */\n.dve-backstage {\n --office-backstage-nav-width: 220px;\n --office-backstage-nav-background: var(--word);\n --office-backstage-nav-foreground: var(\n --dve-primary-foreground,\n var(--office-accent-foreground, #fff)\n );\n --office-backstage-item-hover: var(--word-strong);\n z-index: 40;\n background: var(--surface);\n}\n.dve-backstage-content {\n overflow: auto;\n padding: 28px 40px;\n color: var(--ink);\n}\n.dve-backstage-content h2 {\n margin: 0 0 20px;\n font-size: 30px;\n font-weight: 300;\n}\n.dve-backstage-content h3 {\n margin: 24px 0 10px;\n font-size: 15px;\n font-weight: 600;\n}\n.dve-backstage-facts {\n display: grid;\n grid-template-columns: max-content minmax(0, 1fr);\n gap: 6px 24px;\n margin: 0;\n}\n.dve-backstage-facts dt {\n color: var(--muted);\n}\n.dve-backstage-facts dd {\n margin: 0;\n overflow-wrap: anywhere;\n}\n.dve-compatibility-notes {\n display: grid;\n gap: 8px;\n max-width: 760px;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.dve-compatibility-notes li {\n display: flex;\n gap: 8px;\n padding: 10px 12px;\n border: 1px solid var(--line);\n border-radius: 6px;\n line-height: 1.45;\n}\n.dve-compatibility-notes .dve-icon {\n margin-top: 2px;\n color: #b7791f;\n}\n.dve-backstage-tile {\n display: inline-flex;\n flex-direction: column;\n gap: 8px;\n padding: 8px;\n border: 1px solid transparent;\n border-radius: 6px;\n background: none;\n color: var(--ink);\n font: inherit;\n cursor: pointer;\n}\n.dve-backstage-tile:hover {\n border-color: var(--line);\n background: var(--word-soft);\n}\n.dve-backstage-tile-preview {\n width: 150px;\n height: 190px;\n border: 1px solid var(--line);\n background: #fff;\n box-shadow: 0 1px 3px #0002;\n}\n.dve-backstage-primary {\n padding: 8px 18px;\n border: 0;\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n background: var(--word);\n color: var(--dve-primary-foreground, var(--office-accent-foreground, #fff));\n font: inherit;\n cursor: pointer;\n}\n.dve-backstage-muted {\n color: var(--muted);\n}\n\n.dve-backstage-title {\n margin: 0 0 4px;\n font-size: 26px;\n font-weight: 400;\n overflow-wrap: anywhere;\n}\n.dve-backstage-columns {\n display: grid;\n grid-template-columns: minmax(0, 1fr) 300px;\n gap: 40px;\n align-items: start;\n}\n.dve-backstage-properties {\n padding: 4px 0 0 24px;\n border-left: 1px solid var(--line);\n}\n.dve-backstage-properties h3 {\n margin-top: 0;\n}\n.dve-backstage-card {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 24px;\n max-width: 760px;\n margin-bottom: 12px;\n padding: 14px 18px;\n border: 1px solid var(--line);\n border-radius: 6px;\n}\n.dve-backstage-card h3 {\n margin: 0 0 4px;\n}\n.dve-backstage-card p {\n margin: 0;\n}\n.dve-backstage-field {\n display: grid;\n gap: 4px;\n max-width: 420px;\n margin-bottom: 14px;\n color: var(--muted);\n font-size: 12px;\n}\n.dve-backstage-field input,\n.dve-backstage-field select {\n height: 32px;\n padding: 0 8px;\n border: 1px solid var(--line);\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n background: var(--surface);\n color: var(--ink);\n font: 14px var(--office-font, system-ui, sans-serif);\n}\n.dve-backstage-home-actions {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin: 24px 0;\n}\n.dve-backstage-toggle {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.dve-backstage-toggle input {\n width: 18px;\n height: 18px;\n}\n@media (max-width: 760px) {\n .dve-backstage-content {\n padding: 20px;\n }\n .dve-backstage-card {\n align-items: stretch;\n flex-direction: column;\n }\n .dve-backstage-columns {\n grid-template-columns: minmax(0, 1fr);\n }\n .dve-backstage-properties {\n padding-left: 0;\n border-left: 0;\n }\n}\n\n/* File > Options > Customize Ribbon: one block per tab, one fieldset per group, a checkbox per command. */\n.dve-options-note {\n margin: 0 0 8px;\n color: var(--muted);\n font-size: 11px;\n}\n.dve-options-action {\n margin: 0 0 8px;\n padding: 6px 11px;\n border: 1px solid var(--line);\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n background: transparent;\n color: inherit;\n font: inherit;\n font-size: 12px;\n cursor: pointer;\n}\n.dve-customize-tab h3 {\n margin: 14px 0 4px;\n padding-bottom: 2px;\n border-bottom: 1px solid var(--line);\n color: var(--muted);\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n}\n.dve-customize-group {\n margin: 0 0 8px;\n padding: 6px 10px 8px;\n border: 1px solid var(--line);\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n}\n.dve-customize-group legend {\n padding: 0 4px;\n color: var(--muted);\n font-size: 11px;\n}\n.dve-customize-row {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: 180px;\n padding: 2px 8px 2px 0;\n font-size: 12px;\n}\n";
|
|
18776
18780
|
|
|
18777
18781
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/status-dialogs.css?raw
|
|
18778
|
-
var status_dialogs_default = "/* Status bar: drawn by the shared office-ui-status-bar; this only places it in the frame. */\n.dve-status {\n display: block;\n flex: none;\n min-width: 0;\n border-top: 1px solid var(--line);\n}\n\n@media (max-width: 760px) {\n .dve-backstage-content {\n padding: 20px;\n }\n}\n\n/* Dialogs: the shared office-ui-dialog draws the modal frame; these style the fields inside it. */\n.dve-dialog {\n --office-dialog-width: min(440px, calc(100vw - 32px));\n}\n/* The fields are the dialog's light-DOM children, laid out in the shared body. */\n.dve-dialog > :not([slot]) + :not([slot]) {\n margin-top: 10px;\n}\n.dve-dialog label {\n display: grid;\n gap: 4px;\n color: var(--muted);\n font-size: 12px;\n}\n.dve-dialog input,\n.dve-dialog select {\n height: 30px;\n padding: 0 8px;\n border: 1px solid var(--line);\n border-radius: 4px;\n background: var(--surface);\n color: var(--ink);\n font: inherit;\n}\n.dve-dialog-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n}\n.dve-dialog-actions button {\n min-height: 30px;\n padding: 0 14px;\n border: 1px solid var(--line);\n border-radius: 4px;\n background: var(--surface);\n color: var(--ink);\n font: inherit;\n cursor: pointer;\n}\n.dve-dialog-actions .dve-dialog-primary {\n border-color: var(--word);\n background: var(--word);\n color: var(--dve-primary-foreground);\n}\n";
|
|
18782
|
+
var status_dialogs_default = "/* Status bar: drawn by the shared office-ui-status-bar; this only places it in the frame. */\n.dve-status {\n display: block;\n flex: none;\n min-width: 0;\n border-top: 1px solid var(--line);\n}\n\n@media (max-width: 760px) {\n .dve-backstage-content {\n padding: 20px;\n }\n}\n\n/* Dialogs: the shared office-ui-dialog draws the modal frame; these style the fields inside it. */\n.dve-dialog {\n --office-dialog-width: min(440px, calc(100vw - 32px));\n}\n/* The fields are the dialog's light-DOM children, laid out in the shared body. */\n.dve-dialog > :not([slot]) + :not([slot]) {\n margin-top: 10px;\n}\n.dve-dialog label {\n display: grid;\n gap: 4px;\n color: var(--muted);\n font-size: 12px;\n}\n.dve-dialog input,\n.dve-dialog select {\n height: 30px;\n padding: 0 8px;\n border: 1px solid var(--line);\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n background: var(--surface);\n color: var(--ink);\n font: inherit;\n}\n.dve-dialog-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n}\n.dve-dialog-actions button {\n min-height: 30px;\n padding: 0 14px;\n border: 1px solid var(--line);\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n background: var(--surface);\n color: var(--ink);\n font: inherit;\n cursor: pointer;\n}\n.dve-dialog-actions .dve-dialog-primary {\n border-color: var(--word);\n background: var(--word);\n color: var(--dve-primary-foreground, var(--office-accent-foreground, #fff));\n}\n";
|
|
18779
18783
|
|
|
18780
18784
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/chrome-document.css?raw
|
|
18781
|
-
var chrome_document_default = "/* Links, pictures and hidden text in the document */\n.dve-equation {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n font-family: 'Cambria Math', math, serif;\n}\n.dve-equation-display {\n display: block;\n margin: 0.5em 0;\n text-align: center;\n}\n.dve-equation-unavailable {\n color: var(--muted);\n font-size: 0.85em;\n}\n.dve-paper a.dve-link {\n color: var(--word);\n text-decoration: underline;\n cursor: text;\n}\n.dve-paper img.dve-image {\n max-width: 100%;\n height: auto;\n vertical-align: bottom;\n}\n.dve-paper .dve-image-placeholder {\n display: inline-grid;\n place-items: center;\n border: 1px dashed var(--line);\n background: var(--canvas);\n color: var(--muted);\n font-size: 11px;\n}\n/* Charts: painted read-only from the cached values in the chart part. */\n.dve-paper .dve-chart {\n display: inline-block;\n vertical-align: bottom;\n max-width: 100%;\n overflow: hidden;\n background: #fff;\n}\n.dve-paper .dve-chart > svg {\n display: block;\n width: 100%;\n height: 100%;\n}\n.dve-paper .dve-image-placeholder:has(.dve-textbox-line) {\n place-items: start;\n align-content: start;\n overflow: hidden;\n padding: 4px 6px;\n box-sizing: border-box;\n text-align: left;\n border-style: solid;\n}\n.dve-paper .dve-textbox-line {\n display: block;\n color: var(--text, #1f1f1f);\n font-size: 12px;\n}\n.dve-paper:not([data-show-hidden]) .dve-hidden-text {\n display: none;\n}\n.dve-paper[data-show-hidden] .dve-hidden-text {\n opacity: 0.55;\n text-decoration: underline dotted;\n}\n\n/* Pictures: selection outline and proportional resize handle */\n.dve-paper .dve-picture {\n position: relative;\n display: inline-block;\n max-width: 100%;\n line-height: 0;\n}\n.dve-paper .dve-picture-selected {\n outline: 2px solid var(--word);\n outline-offset: 1px;\n}\n.dve-picture-handle {\n position: absolute;\n right: -5px;\n bottom: -5px;\n display: none;\n width: 10px;\n height: 10px;\n border: 1px solid var(--word);\n background: #fff;\n cursor: nwse-resize;\n}\n.dve-picture-selected .dve-picture-handle {\n display: block;\n}\n.dve-dialog textarea {\n min-height: 60px;\n padding: 6px 8px;\n border: 1px solid var(--line);\n border-radius: 4px;\n background: var(--surface);\n color: var(--ink);\n font: inherit;\n resize: vertical;\n}\n.dve-dialog-row {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 10px;\n}\n.dve-dialog .dve-dialog-check {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--ink);\n}\n\n/* Header/footer editing (double-click a header or footer) */\n.dve-header-footer-slot[data-slot] {\n cursor: text;\n}\n.dve-header-footer-editing {\n outline: 1px dashed var(--word);\n outline-offset: 4px;\n}\n.dve-header-footer-editor .ProseMirror {\n outline: none;\n white-space: pre-wrap;\n}\n.dve-header-footer-editor .ProseMirror p {\n margin: 0;\n}\n\n/* Section break marks after the paragraph that ends a section */\n.dve-paper .dve-section-end::after {\n display: block;\n margin: 6px 0;\n border-top: 1px dotted var(--muted);\n border-bottom: 1px dotted var(--muted);\n color: var(--muted);\n content: attr(data-section-break);\n font-size: 10px;\n line-height: 14px;\n text-align: center;\n user-select: none;\n}\n\n/* Floating pictures: an approximation of Word's text wrapping */\n.dve-paper .dve-float-left,\n.dve-header-footer-body .dve-float-left {\n float: left;\n margin: 2px 12px 6px 0;\n}\n.dve-paper .dve-float-right,\n.dve-header-footer-body .dve-float-right {\n float: right;\n margin: 2px 0 6px 12px;\n}\n.dve-paper .dve-float-block {\n display: block;\n width: fit-content;\n margin: 6px 0;\n}\n.dve-paper .dve-float-block-center {\n margin-right: auto;\n margin-left: auto;\n}\n.dve-paper .dve-float-block-right {\n margin-left: auto;\n}\n.dve-paper[data-show-marks] .ProseMirror p::after,\n.dve-paper[data-show-marks] .ProseMirror h1::after,\n.dve-paper[data-show-marks] .ProseMirror h2::after,\n.dve-paper[data-show-marks] .ProseMirror h3::after {\n color: var(--blue);\n content: '\\00b6';\n opacity: 0.7;\n pointer-events: none;\n}\n\n/* Font and Paragraph dialogs */\n.dve-format-dialog {\n --office-dialog-width: min(520px, calc(100vw - 32px));\n}\n.dve-format-dialog .dve-dialog-fieldset {\n display: grid;\n gap: 8px;\n margin: 0;\n padding: 8px 10px 10px;\n border: 1px solid var(--line);\n border-radius: 6px;\n}\n.dve-format-dialog legend {\n padding: 0 4px;\n color: var(--muted);\n font-size: 12px;\n}\n.dve-format-dialog .dve-dialog-cols {\n grid-template-columns: repeat(var(--cols, 2), minmax(0, 1fr));\n}\n.dve-format-dialog input[type='color'] {\n padding: 2px;\n}\n.dve-format-dialog .dve-dialog-fieldset > .dve-dialog-check {\n display: flex;\n}\n.dve-font-dialog .dve-dialog-fieldset:nth-of-type(1) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.dve-font-dialog .dve-font-tab-panel[hidden] {\n display: none;\n}\n.dve-font-tab-panel {\n display: grid;\n gap: 10px;\n}\n.dve-font-dialog .dve-font-tab-panel .dve-dialog-fieldset:has(.dve-dialog-cols) {\n grid-template-columns: 1fr;\n}\n.dve-font-tabs {\n display: flex;\n gap: 2px;\n border-bottom: 1px solid var(--line);\n}\n.dve-font-tabs button {\n background: transparent;\n border: 0;\n border-radius: 0;\n padding: 7px 14px;\n}\n.dve-font-tabs button[aria-selected='true'] {\n color: var(--word);\n border-bottom: 2px solid var(--word);\n font-weight: 600;\n}\n.dve-format-preview {\n display: grid;\n min-height: 54px;\n place-items: center;\n border: 1px solid var(--line);\n border-radius: 4px;\n background: #fff;\n color: #000;\n overflow: hidden;\n}\n.dve-dialog input[type='checkbox'] {\n width: 16px;\n height: 16px;\n padding: 0;\n margin: 0;\n accent-color: var(--word);\n}\n.dve-format-dialog .dve-dialog-fieldset:has(> .dve-dialog-check):not(:has(> .dve-dialog-cols)) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 6px 12px;\n}\n.dve-format-dialog\n .dve-dialog-fieldset:has(> .dve-dialog-check):not(:has(> .dve-dialog-cols))\n legend {\n grid-column: 1 / -1;\n}\n\n/* View > Gridlines: a quarter-inch alignment grid over the page. */\n.dve-paper[data-show-gridlines] {\n background-image:\n linear-gradient(to right, #8ab4f855 1px, transparent 1px),\n linear-gradient(to bottom, #8ab4f855 1px, transparent 1px);\n background-size: 24px 24px;\n}\n\n.dve-dialog-message {\n min-height: 1.2em;\n margin: 0;\n color: #b3261e;\n font-size: 12px;\n}\n\n/* View > Ruler: placement only; the shared office-ui-ruler draws ticks, margins and markers. */\n.dve-canvas > .dve-ruler {\n position: sticky;\n top: -30px;\n z-index: 6;\n flex: none;\n height: 22px;\n margin: -30px auto 8px;\n border: 1px solid var(--line);\n pointer-events: none;\n}\n";
|
|
18785
|
+
var chrome_document_default = "/* Links, pictures and hidden text in the document */\n.dve-equation {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n font-family: 'Cambria Math', math, serif;\n}\n.dve-equation-display {\n display: block;\n margin: 0.5em 0;\n text-align: center;\n}\n.dve-equation-unavailable {\n color: var(--muted);\n font-size: 0.85em;\n}\n.dve-paper a.dve-link {\n color: var(--word);\n text-decoration: underline;\n cursor: text;\n}\n.dve-paper img.dve-image {\n max-width: 100%;\n height: auto;\n vertical-align: bottom;\n}\n.dve-paper .dve-image-placeholder {\n display: inline-grid;\n place-items: center;\n border: 1px dashed var(--line);\n background: var(--canvas);\n color: var(--muted);\n font-size: 11px;\n}\n/* Charts: painted read-only from the cached values in the chart part. */\n.dve-paper .dve-chart {\n display: inline-block;\n vertical-align: bottom;\n max-width: 100%;\n overflow: hidden;\n background: #fff;\n}\n.dve-paper .dve-chart > svg {\n display: block;\n width: 100%;\n height: 100%;\n}\n.dve-paper .dve-image-placeholder:has(.dve-textbox-line) {\n place-items: start;\n align-content: start;\n overflow: hidden;\n padding: 4px 6px;\n box-sizing: border-box;\n text-align: left;\n border-style: solid;\n}\n.dve-paper .dve-textbox-line {\n display: block;\n color: var(--text, #1f1f1f);\n font-size: 12px;\n}\n.dve-paper:not([data-show-hidden]) .dve-hidden-text {\n display: none;\n}\n.dve-paper[data-show-hidden] .dve-hidden-text {\n opacity: 0.55;\n text-decoration: underline dotted;\n}\n\n/* Pictures: selection outline and proportional resize handle */\n.dve-paper .dve-picture {\n position: relative;\n display: inline-block;\n max-width: 100%;\n line-height: 0;\n}\n.dve-paper .dve-picture-selected {\n outline: 2px solid var(--word);\n outline-offset: 1px;\n}\n.dve-picture-handle {\n position: absolute;\n right: -5px;\n bottom: -5px;\n display: none;\n width: 10px;\n height: 10px;\n border: 1px solid var(--word);\n background: #fff;\n cursor: nwse-resize;\n}\n.dve-picture-selected .dve-picture-handle {\n display: block;\n}\n.dve-dialog textarea {\n min-height: 60px;\n padding: 6px 8px;\n border: 1px solid var(--line);\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n background: var(--surface);\n color: var(--ink);\n font: inherit;\n resize: vertical;\n}\n.dve-dialog-row {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 10px;\n}\n.dve-dialog .dve-dialog-check {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--ink);\n}\n\n/* Header/footer editing (double-click a header or footer) */\n.dve-header-footer-slot[data-slot] {\n cursor: text;\n}\n.dve-header-footer-editing {\n outline: 1px dashed var(--word);\n outline-offset: 4px;\n}\n.dve-header-footer-editor .ProseMirror {\n outline: none;\n white-space: pre-wrap;\n}\n.dve-header-footer-editor .ProseMirror p {\n margin: 0;\n}\n\n/* Section break marks after the paragraph that ends a section */\n.dve-paper .dve-section-end::after {\n display: block;\n margin: 6px 0;\n border-top: 1px dotted var(--muted);\n border-bottom: 1px dotted var(--muted);\n color: var(--muted);\n content: attr(data-section-break);\n font-size: 10px;\n line-height: 14px;\n text-align: center;\n user-select: none;\n}\n\n/* Floating pictures: an approximation of Word's text wrapping */\n.dve-paper .dve-float-left,\n.dve-header-footer-body .dve-float-left {\n float: left;\n margin: 2px 12px 6px 0;\n}\n.dve-paper .dve-float-right,\n.dve-header-footer-body .dve-float-right {\n float: right;\n margin: 2px 0 6px 12px;\n}\n.dve-paper .dve-float-block {\n display: block;\n width: fit-content;\n margin: 6px 0;\n}\n.dve-paper .dve-float-block-center {\n margin-right: auto;\n margin-left: auto;\n}\n.dve-paper .dve-float-block-right {\n margin-left: auto;\n}\n.dve-paper[data-show-marks] .ProseMirror p::after,\n.dve-paper[data-show-marks] .ProseMirror h1::after,\n.dve-paper[data-show-marks] .ProseMirror h2::after,\n.dve-paper[data-show-marks] .ProseMirror h3::after {\n color: var(--blue);\n content: '\\00b6';\n opacity: 0.7;\n pointer-events: none;\n}\n\n/* Font and Paragraph dialogs */\n.dve-format-dialog {\n --office-dialog-width: min(520px, calc(100vw - 32px));\n}\n.dve-format-dialog .dve-dialog-fieldset {\n display: grid;\n gap: 8px;\n margin: 0;\n padding: 8px 10px 10px;\n border: 1px solid var(--line);\n border-radius: 6px;\n}\n.dve-format-dialog legend {\n padding: 0 4px;\n color: var(--muted);\n font-size: 12px;\n}\n.dve-format-dialog .dve-dialog-cols {\n grid-template-columns: repeat(var(--cols, 2), minmax(0, 1fr));\n}\n.dve-format-dialog input[type='color'] {\n padding: 2px;\n}\n.dve-format-dialog .dve-dialog-fieldset > .dve-dialog-check {\n display: flex;\n}\n.dve-font-dialog .dve-dialog-fieldset:nth-of-type(1) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.dve-font-dialog .dve-font-tab-panel[hidden] {\n display: none;\n}\n.dve-font-tab-panel {\n display: grid;\n gap: 10px;\n}\n.dve-font-dialog .dve-font-tab-panel .dve-dialog-fieldset:has(.dve-dialog-cols) {\n grid-template-columns: 1fr;\n}\n.dve-font-tabs {\n display: flex;\n gap: 2px;\n border-bottom: 1px solid var(--line);\n}\n.dve-font-tabs button {\n background: transparent;\n border: 0;\n border-radius: 0;\n padding: 7px 14px;\n}\n.dve-font-tabs button[aria-selected='true'] {\n color: var(--word);\n border-bottom: 2px solid var(--word);\n font-weight: 600;\n}\n.dve-format-preview {\n display: grid;\n min-height: 54px;\n place-items: center;\n border: 1px solid var(--line);\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n background: #fff;\n color: #000;\n overflow: hidden;\n}\n.dve-dialog input[type='checkbox'] {\n width: 16px;\n height: 16px;\n padding: 0;\n margin: 0;\n accent-color: var(--word);\n}\n.dve-format-dialog .dve-dialog-fieldset:has(> .dve-dialog-check):not(:has(> .dve-dialog-cols)) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 6px 12px;\n}\n.dve-format-dialog\n .dve-dialog-fieldset:has(> .dve-dialog-check):not(:has(> .dve-dialog-cols))\n legend {\n grid-column: 1 / -1;\n}\n\n/* View > Gridlines: a quarter-inch alignment grid over the page. */\n.dve-paper[data-show-gridlines] {\n background-image:\n linear-gradient(to right, #8ab4f855 1px, transparent 1px),\n linear-gradient(to bottom, #8ab4f855 1px, transparent 1px);\n background-size: 24px 24px;\n}\n\n.dve-dialog-message {\n min-height: 1.2em;\n margin: 0;\n color: #b3261e;\n font-size: 12px;\n}\n\n/* View > Ruler: placement only; the shared office-ui-ruler draws ticks, margins and markers. */\n.dve-canvas > .dve-ruler {\n position: sticky;\n top: -30px;\n z-index: 6;\n flex: none;\n height: 22px;\n margin: -30px auto 8px;\n border: 1px solid var(--line);\n pointer-events: none;\n}\n";
|
|
18782
18786
|
|
|
18783
18787
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/page-navigator.css?raw
|
|
18784
|
-
var page_navigator_default = "/* Page thumbnail rail and ribbon customisation */\n[data-dve-hidden] {\n display: none !important;\n}\n.dve-pages-rail {\n display: flex;\n flex: none;\n flex-direction: column;\n box-sizing: border-box;\n width: 156px;\n min-height: 0;\n border-right: 1px solid var(--line);\n background: var(--surface);\n color: var(--ink);\n}\n.dve-pages-rail[hidden] {\n display: none;\n}\n.dve-pages-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 8px;\n border-bottom: 1px solid var(--line);\n font-size: 11px;\n font-weight: 600;\n}\n.dve-pages-close {\n border: 0;\n border-radius: 4px;\n background: none;\n color: var(--muted);\n font-size: 16px;\n line-height: 1;\n cursor: pointer;\n}\n.dve-pages-close:hover {\n background: var(--word-soft);\n}\n.dve-pages-message {\n margin: 0;\n padding: 12px 10px;\n color: var(--muted);\n font-size: 11px;\n line-height: 1.4;\n}\n.dve-pages-message[hidden],\n.dve-pages-list[hidden] {\n display: none;\n}\n.dve-pages-list {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 10px 0 16px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n}\n.dve-page-thumb {\n display: flex;\n flex: none;\n flex-direction: column;\n align-items: center;\n gap: 3px;\n padding: 4px;\n border: 2px solid transparent;\n border-radius: 4px;\n cursor: pointer;\n}\n.dve-page-thumb:hover {\n background: var(--word-soft);\n}\n.dve-page-thumb[aria-selected='true'] {\n border-color: var(--word);\n background: var(--word-soft);\n}\n.dve-page-thumb-sheet {\n position: relative;\n overflow: hidden;\n background: #fff;\n box-shadow: 0 1px 3px #20212440;\n pointer-events: none;\n}\n.dve-page-thumb-sheet .dve-print-page {\n position: absolute;\n top: 0;\n left: 0;\n box-shadow: none;\n}\n.dve-page-thumb-number {\n color: var(--muted);\n font-size: 11px;\n}\n.dve-page-thumb[aria-selected='true'] .dve-page-thumb-number {\n color: var(--ink);\n font-weight: 600;\n}\n@media print {\n .dve-pages-rail {\n display: none !important;\n }\n}\n";
|
|
18788
|
+
var page_navigator_default = "/* Page thumbnail rail and ribbon customisation */\n[data-dve-hidden] {\n display: none !important;\n}\n.dve-pages-rail {\n display: flex;\n flex: none;\n flex-direction: column;\n box-sizing: border-box;\n width: 156px;\n min-height: 0;\n border-right: 1px solid var(--line);\n background: var(--surface);\n color: var(--ink);\n}\n.dve-pages-rail[hidden] {\n display: none;\n}\n.dve-pages-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 8px;\n border-bottom: 1px solid var(--line);\n font-size: 11px;\n font-weight: 600;\n}\n.dve-pages-close {\n border: 0;\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n background: none;\n color: var(--muted);\n font-size: 16px;\n line-height: 1;\n cursor: pointer;\n}\n.dve-pages-close:hover {\n background: var(--word-soft);\n}\n.dve-pages-message {\n margin: 0;\n padding: 12px 10px;\n color: var(--muted);\n font-size: 11px;\n line-height: 1.4;\n}\n.dve-pages-message[hidden],\n.dve-pages-list[hidden] {\n display: none;\n}\n.dve-pages-list {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 10px 0 16px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n}\n.dve-page-thumb {\n display: flex;\n flex: none;\n flex-direction: column;\n align-items: center;\n gap: 3px;\n padding: 4px;\n border: 2px solid transparent;\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n cursor: pointer;\n}\n.dve-page-thumb:hover {\n background: var(--word-soft);\n}\n.dve-page-thumb[aria-selected='true'] {\n border-color: var(--word);\n background: var(--word-soft);\n}\n.dve-page-thumb-sheet {\n position: relative;\n overflow: hidden;\n background: #fff;\n box-shadow: 0 1px 3px #20212440;\n pointer-events: none;\n}\n.dve-page-thumb-sheet .dve-print-page {\n position: absolute;\n top: 0;\n left: 0;\n box-shadow: none;\n}\n.dve-page-thumb-number {\n color: var(--muted);\n font-size: 11px;\n}\n.dve-page-thumb[aria-selected='true'] .dve-page-thumb-number {\n color: var(--ink);\n font-weight: 600;\n}\n@media print {\n .dve-pages-rail {\n display: none !important;\n }\n}\n";
|
|
18785
18789
|
|
|
18786
18790
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/keyboard-menu.css?raw
|
|
18787
|
-
var keyboard_menu_default = "/* Keyboard shortcut help. The context menu is the shared office-ui-context-menu element. */\n.dve-shortcut-help {\n max-height: calc(100% - 180px);\n overflow: auto;\n width: min(560px, calc(100% - 32px));\n}\n.dve-shortcut-help .dve-shortcut-note {\n margin: 0;\n color: var(--muted);\n font-size: 12px;\n}\n.dve-shortcut-help table {\n width: 100%;\n border-collapse: collapse;\n}\n.dve-shortcut-help th,\n.dve-shortcut-help td {\n padding: 5px 8px;\n border-bottom: 1px solid var(--dve-border);\n text-align: left;\n vertical-align: top;\n}\n.dve-shortcut-help th {\n color: var(--muted);\n font-size: 12px;\n font-weight: 600;\n}\n.dve-shortcut-help kbd {\n padding: 1px 6px;\n border: 1px solid var(--dve-border);\n border-radius: 4px;\n background: var(--surface);\n font:\n 12px/1.4 ui-monospace,\n 'SFMono-Regular',\n Consolas,\n monospace;\n white-space: nowrap;\n}\n.dve-canvas:focus-visible {\n outline-offset: -2px;\n}\n\n/* Command-level KeyTips sit on the control itself, fixed to the viewport. */\n.dve-keytip-command {\n position: fixed;\n bottom: auto;\n}\n.dve-keytip[hidden] {\n display: none;\n}\n";
|
|
18791
|
+
var keyboard_menu_default = "/* Keyboard shortcut help. The context menu is the shared office-ui-context-menu element. */\n.dve-shortcut-help {\n max-height: calc(100% - 180px);\n overflow: auto;\n width: min(560px, calc(100% - 32px));\n}\n.dve-shortcut-help .dve-shortcut-note {\n margin: 0;\n color: var(--muted);\n font-size: 12px;\n}\n.dve-shortcut-help table {\n width: 100%;\n border-collapse: collapse;\n}\n.dve-shortcut-help th,\n.dve-shortcut-help td {\n padding: 5px 8px;\n border-bottom: 1px solid var(--dve-border, var(--office-border, #d1d5db));\n text-align: left;\n vertical-align: top;\n}\n.dve-shortcut-help th {\n color: var(--muted);\n font-size: 12px;\n font-weight: 600;\n}\n.dve-shortcut-help kbd {\n padding: 1px 6px;\n border: 1px solid var(--dve-border, var(--office-border, #d1d5db));\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n background: var(--surface);\n font:\n 12px/1.4 ui-monospace,\n 'SFMono-Regular',\n Consolas,\n monospace;\n white-space: nowrap;\n}\n.dve-canvas:focus-visible {\n outline-offset: -2px;\n}\n\n/* Command-level KeyTips sit on the control itself, fixed to the viewport. */\n.dve-keytip-command {\n position: fixed;\n bottom: auto;\n}\n.dve-keytip[hidden] {\n display: none;\n}\n";
|
|
18788
18792
|
|
|
18789
18793
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/smartart.css?raw
|
|
18790
|
-
var smartart_default = "/* SmartArt: a read-only display of the diagram's saved drawing */\n.dve-smartart {\n position: relative;\n max-width: 100%;\n box-sizing: border-box;\n vertical-align: bottom;\n line-height: normal;\n}\n.dve-smartart:not(.dve-float-left):not(.dve-float-right):not(.dve-float-block) {\n display: inline-block;\n}\n.dve-smartart:focus-visible {\n outline: 2px solid var(--word);\n outline-offset: 2px;\n}\n.dve-smartart-selected {\n outline: 2px solid var(--word);\n outline-offset: 1px;\n}\n.dve-smartart-drawing {\n display: block;\n width: 100%;\n height: 100%;\n}\n.dve-smartart-box {\n overflow: auto;\n border: 1px dashed var(--line);\n background: var(--canvas);\n color: var(--text, #1f1f1f);\n font-size: 12px;\n}\n.dve-smartart-placeholder {\n display: block;\n padding: 6px 8px;\n}\n.dve-smartart-heading {\n display: block;\n color: var(--muted);\n font-size: 11px;\n}\n.dve-smartart-placeholder ul,\n.dve-smartart-notes ul {\n margin: 4px 0 0;\n padding-left: 18px;\n}\n.dve-smartart-info {\n position: absolute;\n top: 2px;\n right: 2px;\n display: none;\n width: 20px;\n height: 20px;\n padding: 0;\n border: 1px solid var(--line);\n border-radius: 50%;\n background: var(--surface, #fff);\n color: var(--muted);\n font: italic 700 12px/1 serif;\n cursor: pointer;\n}\n.dve-smartart:hover .dve-smartart-info,\n.dve-smartart:focus-within .dve-smartart-info,\n.dve-smartart-selected .dve-smartart-info,\n.dve-smartart-info[aria-expanded='true'] {\n display: block;\n}\n.dve-smartart-notes {\n position: absolute;\n z-index: 3;\n top: 26px;\n right: 2px;\n width: max-content;\n max-width: min(320px, 90%);\n padding: 6px 8px;\n border: 1px solid var(--line);\n border-radius: 4px;\n background: var(--surface, #fff);\n color: var(--text, #1f1f1f);\n font-size: 11px;\n text-align: left;\n box-shadow: 0 2px 8px rgb(0 0 0 / 0.18);\n}\n.dve-smartart-notes[hidden] {\n display: none;\n}\n";
|
|
18794
|
+
var smartart_default = "/* SmartArt: a read-only display of the diagram's saved drawing */\n.dve-smartart {\n position: relative;\n max-width: 100%;\n box-sizing: border-box;\n vertical-align: bottom;\n line-height: normal;\n}\n.dve-smartart:not(.dve-float-left):not(.dve-float-right):not(.dve-float-block) {\n display: inline-block;\n}\n.dve-smartart:focus-visible {\n outline: 2px solid var(--word);\n outline-offset: 2px;\n}\n.dve-smartart-selected {\n outline: 2px solid var(--word);\n outline-offset: 1px;\n}\n.dve-smartart-drawing {\n display: block;\n width: 100%;\n height: 100%;\n}\n.dve-smartart-box {\n overflow: auto;\n border: 1px dashed var(--line);\n background: var(--canvas);\n color: var(--text, #1f1f1f);\n font-size: 12px;\n}\n.dve-smartart-placeholder {\n display: block;\n padding: 6px 8px;\n}\n.dve-smartart-heading {\n display: block;\n color: var(--muted);\n font-size: 11px;\n}\n.dve-smartart-placeholder ul,\n.dve-smartart-notes ul {\n margin: 4px 0 0;\n padding-left: 18px;\n}\n.dve-smartart-info {\n position: absolute;\n top: 2px;\n right: 2px;\n display: none;\n width: 20px;\n height: 20px;\n padding: 0;\n border: 1px solid var(--line);\n border-radius: 50%;\n background: var(--surface, #fff);\n color: var(--muted);\n font: italic 700 12px/1 serif;\n cursor: pointer;\n}\n.dve-smartart:hover .dve-smartart-info,\n.dve-smartart:focus-within .dve-smartart-info,\n.dve-smartart-selected .dve-smartart-info,\n.dve-smartart-info[aria-expanded='true'] {\n display: block;\n}\n.dve-smartart-notes {\n position: absolute;\n z-index: 3;\n top: 26px;\n right: 2px;\n width: max-content;\n max-width: min(320px, 90%);\n padding: 6px 8px;\n border: 1px solid var(--line);\n border-radius: var(--dve-radius, var(--office-radius, 4px));\n background: var(--surface, #fff);\n color: var(--text, #1f1f1f);\n font-size: 11px;\n text-align: left;\n box-shadow: 0 2px 8px rgb(0 0 0 / 0.18);\n}\n.dve-smartart-notes[hidden] {\n display: none;\n}\n";
|
|
18791
18795
|
|
|
18792
18796
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/content-controls.css?raw
|
|
18793
|
-
var content_controls_default = "/* Content controls (w:sdt): Word's hover and selected outline, title tab and grey placeholder. */\n.dve-sdt {\n position: relative;\n box-decoration-break: clone;\n -webkit-box-decoration-break: clone;\n}\n.dve-sdt[data-sdt-placeholder],\np[data-sdt-block] .dve-sdt[data-sdt-placeholder] {\n color: #808080;\n}\n.dve-sdt:hover,\n.dve-sdt.dve-sdt-active,\np[data-sdt-block]:hover,\np[data-sdt-block].dve-sdt-active {\n outline: 1px solid var(--dve-sdt-outline, #b6b6b6);\n outline-offset: 1px;\n}\n.dve-sdt.dve-sdt-active,\np[data-sdt-block].dve-sdt-active {\n outline-color: var(--dve-sdt-active, #4472c4);\n}\n/* The title tab sits above the control while it is hovered or holds the caret. */\n.dve-sdt[data-sdt-title]:hover::before,\n.dve-sdt[data-sdt-title].dve-sdt-active::before,\np[data-sdt-block][data-sdt-title]:hover::before,\np[data-sdt-block][data-sdt-title].dve-sdt-active::before {\n content: attr(data-sdt-title);\n position: absolute;\n left: -1px;\n bottom: 100%;\n max-width: 22em;\n padding: 0 6px;\n overflow: hidden;\n background: var(--dve-sdt-active, #4472c4);\n color: #fff;\n font
|
|
18797
|
+
var content_controls_default = "/* Content controls (w:sdt): Word's hover and selected outline, title tab and grey placeholder. */\n.dve-sdt {\n position: relative;\n box-decoration-break: clone;\n -webkit-box-decoration-break: clone;\n}\n.dve-sdt[data-sdt-placeholder],\np[data-sdt-block] .dve-sdt[data-sdt-placeholder] {\n color: #808080;\n}\n.dve-sdt:hover,\n.dve-sdt.dve-sdt-active,\np[data-sdt-block]:hover,\np[data-sdt-block].dve-sdt-active {\n outline: 1px solid var(--dve-sdt-outline, #b6b6b6);\n outline-offset: 1px;\n}\n.dve-sdt.dve-sdt-active,\np[data-sdt-block].dve-sdt-active {\n outline-color: var(--dve-sdt-active, #4472c4);\n}\n/* The title tab sits above the control while it is hovered or holds the caret. */\n.dve-sdt[data-sdt-title]:hover::before,\n.dve-sdt[data-sdt-title].dve-sdt-active::before,\np[data-sdt-block][data-sdt-title]:hover::before,\np[data-sdt-block][data-sdt-title].dve-sdt-active::before {\n content: attr(data-sdt-title);\n position: absolute;\n left: -1px;\n bottom: 100%;\n max-width: 22em;\n padding: 0 6px;\n overflow: hidden;\n background: var(--dve-sdt-active, #4472c4);\n color: #fff;\n font: 11px/16px var(--office-font, system-ui, sans-serif);\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n z-index: 2;\n}\np[data-sdt-block] {\n position: relative;\n}\np[data-sdt-block][data-sdt-title]:hover::before,\np[data-sdt-block][data-sdt-title].dve-sdt-active::before {\n bottom: auto;\n top: -17px;\n}\n/* A drop-down, combo box or date picker shows its arrow at the end. */\n.dve-sdt[data-sdt-kind='dropDownList'].dve-sdt-active::after,\n.dve-sdt[data-sdt-kind='comboBox'].dve-sdt-active::after,\n.dve-sdt[data-sdt-kind='date'].dve-sdt-active::after,\n.dve-sdt[data-sdt-kind='dropDownList']:hover::after,\n.dve-sdt[data-sdt-kind='comboBox']:hover::after,\n.dve-sdt[data-sdt-kind='date']:hover::after {\n content: '\\25be';\n display: inline-block;\n width: 16px;\n margin-left: 4px;\n background: var(--dve-sdt-active, #4472c4);\n color: #fff;\n font-size: 11px;\n line-height: 16px;\n text-align: center;\n vertical-align: baseline;\n cursor: pointer;\n}\n.dve-sdt[data-sdt-kind='date']:hover::after,\n.dve-sdt[data-sdt-kind='date'].dve-sdt-active::after {\n content: '\\25bc';\n font-size: 8px;\n}\n.dve-sdt[data-sdt-kind='checkbox'] {\n cursor: pointer;\n}\n.dve-sdt[data-sdt-lock='sdtLocked']:hover,\n.dve-sdt[data-sdt-lock='sdtContentLocked']:hover {\n outline-style: solid;\n}\n\n/* The calendar and list popups of drop-down, combo box and date controls. */\n.ribbon-popover.sdt-calendar {\n display: grid;\n gap: 6px;\n width: 224px;\n padding: 8px;\n}\n.sdt-calendar-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n color: var(--ink);\n font: 600 13px var(--office-font, system-ui, sans-serif);\n}\n.sdt-calendar-head button,\n.sdt-calendar-foot button {\n min-width: 26px;\n height: 24px;\n border: 1px solid transparent;\n background: transparent;\n color: var(--ink);\n font: inherit;\n cursor: pointer;\n}\n.sdt-calendar-head button:hover,\n.sdt-calendar-foot button:hover {\n background: var(--accent-soft);\n}\n.sdt-calendar-grid {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 1px;\n text-align: center;\n}\n.sdt-calendar-grid span,\n.sdt-calendar-grid button {\n height: 26px;\n border: 1px solid transparent;\n background: transparent;\n color: var(--ink);\n font: 12px var(--office-font, system-ui, sans-serif);\n line-height: 24px;\n}\n.sdt-calendar-grid span {\n color: var(--muted);\n}\n.sdt-calendar-grid button {\n cursor: pointer;\n}\n.sdt-calendar-grid button:hover,\n.sdt-calendar-grid button:focus-visible {\n background: var(--accent-soft);\n}\n.sdt-calendar-grid button.outside {\n color: var(--muted);\n}\n.sdt-calendar-grid button.today {\n border-color: var(--blue);\n}\n.sdt-calendar-grid button.selected {\n background: var(--blue);\n color: #fff;\n}\n.sdt-calendar-foot {\n display: flex;\n justify-content: center;\n}\n\n/* Insert > Equation dialog: the LaTeX source and the live preview. */\n.dve-equation-source {\n width: 100%;\n box-sizing: border-box;\n font:\n 13px/1.4 Consolas,\n 'Cascadia Mono',\n monospace;\n}\n.dve-equation-preview {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 64px;\n padding: 8px;\n overflow: auto;\n border: 1px solid var(--line);\n background: var(--surface);\n color: var(--ink);\n font-size: 20px;\n}\n";
|
|
18794
18798
|
|
|
18795
18799
|
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/shapes.css?raw
|
|
18796
|
-
var shapes_default = "/* Drawing shapes on the editing surface, the draw tool and the Insert > Shapes gallery. */\n.ProseMirror p {\n position: relative;\n}\n.dve-shape {\n display: inline-block;\n position: relative;\n vertical-align: bottom;\n line-height: 0;\n}\n.dve-shape svg {\n display: block;\n}\n.dve-shape-floating {\n position: absolute;\n z-index: 2;\n}\n.dve-shape-floating.dve-shape-behind {\n z-index: 0;\n}\n.dve-shape-selected {\n outline: 2px solid var(--blue, #2b579a);\n outline-offset: 2px;\n}\n.dve-shape-handle {\n display: none;\n position: absolute;\n right: -6px;\n bottom: -6px;\n width: 9px;\n height: 9px;\n border: 1px solid var(--blue, #2b579a);\n background: #fff;\n cursor: nwse-resize;\n}\n.dve-shape-selected .dve-shape-handle {\n display: block;\n}\n.dve-drawing-shape,\n.dve-drawing-shape * {\n cursor: crosshair !important;\n}\n.dve-shape-rubber {\n position: fixed;\n z-index: 1000;\n border: 1px dashed var(--blue, #2b579a);\n background: rgba(68, 114, 196, 0.12);\n pointer-events: none;\n}\n\n.ribbon-popover.shape-picker {\n width: 244px;\n max-height: 420px;\n padding: 6px 8px 8px;\n overflow-y: auto;\n}\n.shape-picker h4 {\n margin: 6px 0 4px;\n color: var(--muted);\n font
|
|
18800
|
+
var shapes_default = "/* Drawing shapes on the editing surface, the draw tool and the Insert > Shapes gallery. */\n.ProseMirror p {\n position: relative;\n}\n.dve-shape {\n display: inline-block;\n position: relative;\n vertical-align: bottom;\n line-height: 0;\n}\n.dve-shape svg {\n display: block;\n}\n.dve-shape-floating {\n position: absolute;\n z-index: 2;\n}\n.dve-shape-floating.dve-shape-behind {\n z-index: 0;\n}\n.dve-shape-selected {\n outline: 2px solid var(--blue, #2b579a);\n outline-offset: 2px;\n}\n.dve-shape-handle {\n display: none;\n position: absolute;\n right: -6px;\n bottom: -6px;\n width: 9px;\n height: 9px;\n border: 1px solid var(--blue, #2b579a);\n background: #fff;\n cursor: nwse-resize;\n}\n.dve-shape-selected .dve-shape-handle {\n display: block;\n}\n.dve-drawing-shape,\n.dve-drawing-shape * {\n cursor: crosshair !important;\n}\n.dve-shape-rubber {\n position: fixed;\n z-index: 1000;\n border: 1px dashed var(--blue, #2b579a);\n background: rgba(68, 114, 196, 0.12);\n pointer-events: none;\n}\n\n.ribbon-popover.shape-picker {\n width: 244px;\n max-height: 420px;\n padding: 6px 8px 8px;\n overflow-y: auto;\n}\n.shape-picker h4 {\n margin: 6px 0 4px;\n color: var(--muted);\n font: 600 11px var(--office-font, system-ui, sans-serif);\n}\n.shape-picker-grid {\n display: grid;\n grid-template-columns: repeat(8, 26px);\n gap: 2px;\n}\n.shape-picker-grid button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n padding: 0;\n border: 1px solid transparent;\n background: transparent;\n cursor: pointer;\n}\n.shape-picker-grid button:hover,\n.shape-picker-grid button:focus-visible {\n border-color: var(--blue, #2b579a);\n background: var(--accent-soft);\n}\n";
|
|
18797
18801
|
|
|
18798
18802
|
// src/docx/styles/index.ts
|
|
18799
|
-
var
|
|
18800
|
-
var themeTokenText = `:host{${declarations(lightTheme, "light")}}
|
|
18801
|
-
@media (prefers-color-scheme: dark){:host(:not([theme="light"])){${declarations(darkTheme, "dark")}}}
|
|
18802
|
-
:host([theme="dark"]){${declarations(darkTheme, "dark")}}
|
|
18803
|
-
:host([theme="light"]){${declarations(lightTheme, "light")}}`;
|
|
18803
|
+
var themeTokenText = legacyThemeAliases(":host", "--dve-", "--_dve-") + ":host{color-scheme:inherit;}";
|
|
18804
18804
|
var editorStyleText = [
|
|
18805
18805
|
themeTokenText,
|
|
18806
18806
|
aliases_default,
|
|
18807
|
-
//
|
|
18808
|
-
|
|
18807
|
+
// Private aliases resolve on the host; legacy compatibility only remaps the inner chrome.
|
|
18808
|
+
legacyThemeBridge(".dve-frame", "--_dve-"),
|
|
18809
18809
|
base_default,
|
|
18810
18810
|
ribbon_default,
|
|
18811
18811
|
ribbon_buttons_default,
|
|
@@ -24272,7 +24272,7 @@ function createChrome(core, api) {
|
|
|
24272
24272
|
}
|
|
24273
24273
|
function buildShell(core, api) {
|
|
24274
24274
|
const { element, shell } = core;
|
|
24275
|
-
if (shell.
|
|
24275
|
+
if (shell.paper) {
|
|
24276
24276
|
attachPrintEditing(core);
|
|
24277
24277
|
return;
|
|
24278
24278
|
}
|
|
@@ -24282,8 +24282,8 @@ function buildShell(core, api) {
|
|
|
24282
24282
|
style.textContent = editorStyleText;
|
|
24283
24283
|
const frame = document.createElement("section");
|
|
24284
24284
|
frame.className = "dve-frame";
|
|
24285
|
-
const toolbar = createRibbon(core.locale);
|
|
24286
|
-
on(toolbar, "ribbon-action", (event) => routeRibbonAction(core, event.detail));
|
|
24285
|
+
const toolbar = core.surfaceOnly ? void 0 : createRibbon(core.locale);
|
|
24286
|
+
if (toolbar) on(toolbar, "ribbon-action", (event) => routeRibbonAction(core, event.detail));
|
|
24287
24287
|
const canvas = document.createElement("main");
|
|
24288
24288
|
canvas.className = "dve-canvas";
|
|
24289
24289
|
const paper = document.createElement("div");
|
|
@@ -24315,6 +24315,16 @@ function buildShell(core, api) {
|
|
|
24315
24315
|
{ passive: true }
|
|
24316
24316
|
);
|
|
24317
24317
|
shell.printLayout = printLayout;
|
|
24318
|
+
if (core.surfaceOnly) {
|
|
24319
|
+
frame.append(canvas);
|
|
24320
|
+
root.append(style, frame);
|
|
24321
|
+
Object.assign(shell, { canvas, paper });
|
|
24322
|
+
attachPrintEditing(core);
|
|
24323
|
+
attachCanvasClick(core);
|
|
24324
|
+
applyShellLabels(element, paper, core.locale);
|
|
24325
|
+
return;
|
|
24326
|
+
}
|
|
24327
|
+
if (!toolbar) return;
|
|
24318
24328
|
shell.navigator = new PageNavigator({
|
|
24319
24329
|
pages: () => printLayout.pageElements(),
|
|
24320
24330
|
pageSnapshot: (index) => printLayout.pageSnapshot(index),
|
|
@@ -24954,9 +24964,102 @@ function reflectAttribute(element, name, value) {
|
|
|
24954
24964
|
if (name === "locale" && current2 !== null && normalizeEditorLocale(current2) === value) return;
|
|
24955
24965
|
element.setAttribute(name, value);
|
|
24956
24966
|
}
|
|
24967
|
+
function wordToolbarProps(core) {
|
|
24968
|
+
const view = core.targetView();
|
|
24969
|
+
const state = view?.state;
|
|
24970
|
+
const canEdit = Boolean(view?.editable && core.canEditBody() && !core.loading);
|
|
24971
|
+
const values2 = /* @__PURE__ */ new Map();
|
|
24972
|
+
const add = (key2, value2) => {
|
|
24973
|
+
if (!values2.has(key2)) values2.set(key2, /* @__PURE__ */ new Set());
|
|
24974
|
+
values2.get(key2).add(value2);
|
|
24975
|
+
};
|
|
24976
|
+
if (state) {
|
|
24977
|
+
const sample = (text, paragraph2) => {
|
|
24978
|
+
for (const key2 of ["bold", "italic", "underline"])
|
|
24979
|
+
add(
|
|
24980
|
+
key2,
|
|
24981
|
+
text.marks.some((mark) => mark.type.name === key2)
|
|
24982
|
+
);
|
|
24983
|
+
const font = effectiveFont(state, text, paragraph2);
|
|
24984
|
+
add("fontFamily", font.family);
|
|
24985
|
+
add("fontSize", font.size);
|
|
24986
|
+
add("alignment", String(paragraph2.attrs.align ?? "left"));
|
|
24987
|
+
};
|
|
24988
|
+
if (state.selection.empty)
|
|
24989
|
+
sample(
|
|
24990
|
+
schema.text("x", state.storedMarks ?? state.selection.$from.marks()),
|
|
24991
|
+
state.selection.$from.parent
|
|
24992
|
+
);
|
|
24993
|
+
else
|
|
24994
|
+
state.doc.nodesBetween(state.selection.from, state.selection.to, (node, _pos, parent) => {
|
|
24995
|
+
if (node.isText && parent) sample(node, parent);
|
|
24996
|
+
});
|
|
24997
|
+
}
|
|
24998
|
+
const value = (key2, fallback) => {
|
|
24999
|
+
const set = values2.get(key2);
|
|
25000
|
+
return set?.size ? set.size === 1 ? [...set][0] : null : fallback;
|
|
25001
|
+
};
|
|
25002
|
+
const run = (action) => {
|
|
25003
|
+
if (core.loading || !core.canEditBody() || !core.targetView()?.editable) return false;
|
|
25004
|
+
routeRibbonAction(core, action);
|
|
25005
|
+
core.refreshControls();
|
|
25006
|
+
return true;
|
|
25007
|
+
};
|
|
25008
|
+
const shared = state && wordYjsPluginKey.getState(state);
|
|
25009
|
+
return {
|
|
25010
|
+
labels: Object.fromEntries(
|
|
25011
|
+
["Bold", "Italic", "Underline", "Undo", "Redo"].map((label) => [
|
|
25012
|
+
label,
|
|
25013
|
+
translate(core.locale, label)
|
|
25014
|
+
])
|
|
25015
|
+
),
|
|
25016
|
+
canEdit,
|
|
25017
|
+
list: state ? listKindOf(state.selection.$from.parent, core.model.numberingCatalog) : null,
|
|
25018
|
+
selection: state ? { from: state.selection.from, to: state.selection.to } : null,
|
|
25019
|
+
bold: value("bold", false),
|
|
25020
|
+
italic: value("italic", false),
|
|
25021
|
+
underline: value("underline", false),
|
|
25022
|
+
fontFamily: value("fontFamily", "Calibri"),
|
|
25023
|
+
fontSize: value("fontSize", 11),
|
|
25024
|
+
alignment: value("alignment", "left"),
|
|
25025
|
+
canUndo: Boolean(canEdit && state && (shared ? wordYjsUndo : undo)(state)),
|
|
25026
|
+
canRedo: Boolean(canEdit && state && (shared ? wordYjsRedo : redo)(state)),
|
|
25027
|
+
onBold: () => run({ type: "format", key: "bold" }),
|
|
25028
|
+
onItalic: () => run({ type: "format", key: "italic" }),
|
|
25029
|
+
onUnderline: () => run({ type: "format", key: "underline" }),
|
|
25030
|
+
onFontFamilyChange: (family) => run({ type: "font", key: "family", value: family }),
|
|
25031
|
+
onFontSizeChange: (size) => run({ type: "font", key: "size", value: String(size) }),
|
|
25032
|
+
onAlignmentChange: (alignment) => run({ type: "align", value: alignment }),
|
|
25033
|
+
onListChange: (kind) => run({ type: "list", key: kind }),
|
|
25034
|
+
onUndo: () => run({ type: "history", key: "undo" }),
|
|
25035
|
+
onRedo: () => run({ type: "history", key: "redo" })
|
|
25036
|
+
};
|
|
25037
|
+
}
|
|
25038
|
+
|
|
25039
|
+
// src/docx/element-api.ts
|
|
24957
25040
|
var HTMLElementBase = typeof HTMLElement === "undefined" ? class {
|
|
24958
25041
|
} : HTMLElement;
|
|
24959
25042
|
var DocxEditorApi = class extends HTMLElementBase {
|
|
25043
|
+
/** Choose before connecting. This mode mounts only the document and its editing surface. */
|
|
25044
|
+
get surfaceOnly() {
|
|
25045
|
+
return this.core.surfaceOnly;
|
|
25046
|
+
}
|
|
25047
|
+
set surfaceOnly(value) {
|
|
25048
|
+
if (this.core.shell.paper && value !== this.core.surfaceOnly)
|
|
25049
|
+
throw new Error("Choose surfaceOnly before mounting the editor.");
|
|
25050
|
+
this.core.surfaceOnly = Boolean(value);
|
|
25051
|
+
}
|
|
25052
|
+
getToolbarProps() {
|
|
25053
|
+
return wordToolbarProps(this.core);
|
|
25054
|
+
}
|
|
25055
|
+
get loading() {
|
|
25056
|
+
return this.core.loading;
|
|
25057
|
+
}
|
|
25058
|
+
/** Selection and formatting updates, including changes which do not dirty the document. */
|
|
25059
|
+
subscribeEditorState(listener) {
|
|
25060
|
+
this.addEventListener("editor-state-change", listener);
|
|
25061
|
+
return () => this.removeEventListener("editor-state-change", listener);
|
|
25062
|
+
}
|
|
24960
25063
|
/** Join a synchronized Yjs room after loading its matching source package. */
|
|
24961
25064
|
startYjsCollaboration(session, options) {
|
|
24962
25065
|
const { core } = this;
|
|
@@ -25137,13 +25240,17 @@ var DocxEditorElement = class extends DocxEditorApi {
|
|
|
25137
25240
|
else this.core.pendingFileName = value;
|
|
25138
25241
|
reflectAttribute(this, "file-name", this.fileName);
|
|
25139
25242
|
}
|
|
25140
|
-
/** `light`, `dark`, or `auto` (default, follows the OS). Reflected to the `theme` attribute. */
|
|
25243
|
+
/** `light`, `dark`, or `auto` (default, inherits the Office theme, then follows the OS). Reflected to the `theme` attribute. */
|
|
25141
25244
|
get theme() {
|
|
25142
25245
|
return this.core.theme;
|
|
25143
25246
|
}
|
|
25144
25247
|
set theme(value) {
|
|
25248
|
+
const previous = this.core.theme;
|
|
25145
25249
|
this.core.theme = normalizeThemeMode(value);
|
|
25146
25250
|
reflectAttribute(this, "theme", this.core.theme);
|
|
25251
|
+
if (this.core.theme !== "auto") this.setAttribute("data-office-theme", this.core.theme);
|
|
25252
|
+
else if (previous !== "auto" && this.getAttribute("data-office-theme") === previous)
|
|
25253
|
+
this.removeAttribute("data-office-theme");
|
|
25147
25254
|
}
|
|
25148
25255
|
/** Token overrides applied as inline `--dve-*` custom properties on the host. */
|
|
25149
25256
|
get themeColors() {
|
|
@@ -25194,6 +25301,7 @@ var DocxEditorElement = class extends DocxEditorApi {
|
|
|
25194
25301
|
reflectAttribute(this, "read-only", this.core.readOnly);
|
|
25195
25302
|
}
|
|
25196
25303
|
connectedCallback() {
|
|
25304
|
+
installOfficeUiThemeFor(this);
|
|
25197
25305
|
buildShell(this.core, this.shellApi);
|
|
25198
25306
|
renderDocument(this.core);
|
|
25199
25307
|
}
|
|
@@ -25215,6 +25323,8 @@ var DocxEditorElement = class extends DocxEditorApi {
|
|
|
25215
25323
|
const { core } = this;
|
|
25216
25324
|
this.assertDocumentReplaceable();
|
|
25217
25325
|
const generation = ++core.loadGeneration;
|
|
25326
|
+
core.loading = true;
|
|
25327
|
+
core.refreshControls();
|
|
25218
25328
|
try {
|
|
25219
25329
|
const session = await loadDocument(input);
|
|
25220
25330
|
if (generation !== core.loadGeneration) return;
|
|
@@ -25226,6 +25336,11 @@ var DocxEditorElement = class extends DocxEditorApi {
|
|
|
25226
25336
|
const error = cause instanceof Error ? cause : new Error(String(cause));
|
|
25227
25337
|
if (generation === core.loadGeneration) emit(this, "document-error", error);
|
|
25228
25338
|
throw error;
|
|
25339
|
+
} finally {
|
|
25340
|
+
if (generation === core.loadGeneration) {
|
|
25341
|
+
core.loading = false;
|
|
25342
|
+
core.refreshControls();
|
|
25343
|
+
}
|
|
25229
25344
|
}
|
|
25230
25345
|
}
|
|
25231
25346
|
setLoadedDocument(session) {
|
|
@@ -25281,6 +25396,7 @@ var DocxEditorElement = class extends DocxEditorApi {
|
|
|
25281
25396
|
const { core } = this;
|
|
25282
25397
|
core.detachedState = void 0;
|
|
25283
25398
|
if (bumpGeneration) core.loadGeneration++;
|
|
25399
|
+
if (bumpGeneration) core.loading = false;
|
|
25284
25400
|
core.loaded = session;
|
|
25285
25401
|
core.model = model;
|
|
25286
25402
|
core.inserts.reset();
|