Skip to content

Adapter API

Methods

MethodSignatureDescription
configureAdapter(options: SoAdapterConfig)Define shared defaults and diagnostics strategy.
openDialog(options: SoDialogOptions)Open dialog with adapter-level defaults applied.
bindDialogContextMenu(options: SoContextMenuOptions)Bind context menu with adapter diagnostics.
openDialogFromContextMenu(handle, options)Close context menu before opening dialog.
pushMessage`(level: SoMessageLevel, content: stringNode, options?: SoPushMessageOptions)`

configureAdapter Parameters

NameTypeRequiredDefaultDescription
modalDefaultsPartial<SoDialogModalOptions>No{}Shared modal defaults.
offcanvasDefaultsPartial<Omit<SoDialogOffcanvasOptions, 'kind'>>No{}Shared offcanvas defaults.
contextMenuDefaultsPartial<Omit<SoContextMenuOptions, 'target' | 'items'>>No{}Shared context menu defaults.
toastDefaultsPartial<SoToastOptions>No{}Shared toast defaults.
diagnosticsEnabledbooleanNofalseEmit structured lifecycle diagnostics.
logger(event) => voidNoconsoleCustom logger for diagnostics pipeline.

Built-in Adapter Toast Defaults

When not overridden by configureAdapter, adapter-level pushMessage uses:

OptionDefault
placementtop-end
maxVisible4
newestOnToptrue
duplicateStrategystack
duration3800

SoAdapterLogEvent

FieldTypeDescription
actionstringSource action (openDialog, pushMessage, etc.).
phaseSoLifecyclePhase | 'action' | 'layout-stable' | 'focus' | 'typeahead'Lifecycle/interaction phase.
componentSoLifecycleComponent | 'adapter'Component domain.
reasonstringClose/open reason when provided.
idstringRuntime id for dialog/menu/toast.
traceIdstringBusiness trace correlation id.
detailRecord<string, unknown>Additional context payload.

Usage Example

ts
import { configureAdapter, openDialog, pushMessage } from 'sodialog'

configureAdapter({
  modalDefaults: { closeOnEsc: true, footerAlign: 'center' },
  toastDefaults: { placement: 'top-end', maxVisible: 4 },
  diagnosticsEnabled: true,
})

openDialog({
  title: 'Delete item',
  content: '<p>Confirm delete?</p>',
  traceId: 'trace-order-001',
})

pushMessage('success', 'Deleted', { traceId: 'trace-order-001' })

Released under the MIT License.