Primitives / foldkit-primitives/dom

FocusScope

const · packages/primitives/src/dom/focus-scope.ts:39

const FocusScope: Mount.MountDefinitionWithArgs<
  'FocusScope',
  {
    contain: Schema.Boolean
    restore: Schema.Boolean
    initialFocus: Schema.NullOr<Schema.String>
  },
  never
>

A focus scope as a Mount: on insert it remembers what was focused, focuses an initial element inside, and with contain keeps Tab and Shift+Tab cycling inside; on unmount it gives focus back. Nothing crosses to the Model: which element had focus is a DOM fact, so this is element lifecycle, not state. It emits no Messages.