Skip to content

Extension Catalogue

This page is the complete factory-by-factory reference for formulon-cell's replaceable chrome. See the Embedding guide for the features vs extensions architecture; this table exists so you can look up one factory without reading the whole guide.

Every entry mounts as part of the reference chrome — useful for integration testing and examples, not a guarantee that a given dialog matches Excel behavior exactly.

Glossary: preset vs extension

A preset (presets.minimal() / .standard() / .full()) is a plain FeatureFlags object of booleans. An extension is a zero-argument factory function that returns an Extension. Disabling a feature flag removes the built-in and its DOM; passing the matching factory through extensions mounts your own (or the same built-in, reused standalone).

Factories

Each factory's id matches the FeatureFlags key mount.ts gates it against — disable the flag, then pass the factory (or your own replacement) through extensions. Columns show whether the factory is part of the default chrome for each preset:

FactoryFeature idPurposeminimal()standard()full()
borderDrawborderDrawCell border draw / draw-grid / erase modes
chartschartsSession chart overlays
clipboardclipboardOS clipboard bridge (copy/cut/paste)
commentDialogcommentDialogComment edit dialog (Shift+F2)
conditionalDialogconditionalConditional-formatting rule manager
contextMenucontextMenuRight-click context menu
findReplacefindReplaceFind/Replace dialog (Ctrl+F)
formatDialogformatDialogFormat Cells dialog (Ctrl+1)
formatPainterformatPainterFormat painter
goToSpecialDialoggotoSpecialGo To Special dialog
hoverCommenthoverCommentHover-comment popover
hyperlinkDialoghyperlinkHyperlink dialog (Ctrl+K)
illustrationsillustrationsSession shape / picture overlays
iterativeDialogiterativeIterative-calculation settings dialog
namedRangeDialognamedRangesNamed-range listing dialog
pageSetupDialogpageSetupPage Setup dialog
pasteSpecialpasteSpecialPaste-special dialog
pivotTableDialogpivotTableDialogPivotTable creation dialog
quickAnalysisquickAnalysisQuick Analysis popover (Ctrl+Q)
slicerslicerSlicer floating panelsopt-in onlyopt-in onlyopt-in only
statusBarstatusBarBottom status bar (calc mode, zoom, aggregates)
validationListvalidationValidation-list dropdown
viewToolbarviewToolbarView ribbon toolbar
watchWindowwatchWindowWatch Window dockopt-in onlyopt-in onlyopt-in only
wheelwheelMouse-wheel scroll handler
workbookObjectsworkbookObjectsWorkbook Objects side panel
ts
import { Spreadsheet, presets, findReplace, formatDialog } from '@libraz/formulon-cell'

const instance = await Spreadsheet.mount(host, {
  workbook,
  features: { ...presets.minimal(), findReplace: false },
  extensions: [findReplace(), formatDialog()]
})

watchWindow and slicer default off even in full()

These two ids are excluded from the "on unless explicitly disabled" rule that every other feature follows — they start disabled and require an explicit features: { watchWindow: true } / { slicer: true } (or the matching factory in extensions) to appear, even under presets.full(). New panels ship this way so adopting a formulon-cell upgrade never silently grows the default chrome.

Flag-only features (no factory)

A handful of FeatureFlags ids gate behavior that isn't a separate mountable dialog or panel — there is nothing to pass through extensions for these, only the boolean flag:

Feature idWhat it gatesminimal()standard()full()
formulaBarThe formula input bar
shortcutsThe built-in spreadsheet keymap
sheetTabsThe bottom sheet-tab bar
errorIndicatorsGreen corner-triangle error markers on cells
autocompleteInline formula/name autocomplete while typing
fxDialogInsert Function (fx) dialog / argument helper

Non-toggleable core

nameBox, editor, pointer, and renderer are not FeatureFlags ids at all — they are the spreadsheet surface itself. There is no flag to disable them; removing them would leave no UI to mount.

  • Embedding guide — the features vs extensions split, headless mounting, command helpers.
  • API surfaceMountOptions.extensions, presets.
  • Theming — the CSS token surface for whatever chrome you keep on.