Packages
Sectile separates what an interaction means from where it runs. Core, Form, Temporal, Tabular, Virtual, and Chart are renderer-neutral domains. DOM, Terminal, and Vue are host adapters, although Form and Chart intentionally integrate only with DOM and Vue.
@sectile/coreInteractionTurns user input into the next state and executable commands.current itemselectioneditingcommands@sectile/formForm coordinationConnects fields, accessible errors, validation, submission, and reset.fieldserrorssubmissionreset@sectile/temporalDates and timeComputes civil dates, wall-clock time, and selection rules.date fieldscalendarspickers@sectile/tabularTabular dataComputes row and column identity, data access, selection, and editing rules.tablesgridstree grids@sectile/virtualLarge-surface layoutTracks item geometry and computes placements for the visible viewport.listsgridsmasonryspatial@sectile/chartChart projectionComputes bounded geometry and deterministic interaction state from chart data.pointslinesbarsheatmapspieSemantic domains
| Package | Owns | Does not own |
|---|---|---|
@sectile/core | interaction state, transitions, identity, commands, bounded geometry algebra | dates, collection layout state, platform measurement, rendering |
@sectile/form | accessible field composition, errors, validation, submission, and reset | control values, visual styling, Terminal forms |
@sectile/temporal | civil dates, wall-clock time, calendar and picker rules | time zones, formatting, rendering |
@sectile/tabular | tabular identity, data access, columns, selection, grouping, grid interaction | transport, rendering, loading/error UI |
@sectile/virtual | collection extents, viewport queries, dynamic measurement state, placements, virtual repair, anchor correction | collection identity, data loading, platform measurement |
@sectile/chart | immutable chart data, scales, packed geometry, queries, chart interaction | visual styling, DOM resources, Vue reactivity |
Choose a semantic package from the value your application needs to reason about. A calendar uses Core composition and Temporal date rules. A virtualized list uses Core identity and Virtual geometry. A chart uses Core identity and revision contracts with Chart projection and interaction. None of these packages needs to know how the result is rendered.
Host adapters
| Package | Connects |
|---|---|
@sectile/dom | native events, focus, attributes, browser measurement, scrolling |
@sectile/terminal | keyboard input, terminal commands, text projection |
@sectile/vue | Vue ownership, reactivity, slots, headless parts |
Packages communicate only through public exports. Application code should keep the same boundary: domain state in semantic packages, platform effects at the host edge, visual styling in the application.
Geometry follows the same boundary. Core supplies bounded geometry values, anchored placement, and a generic metric index. Virtual turns collection extents and viewport state into layouts and applies measurement evidence. DOM, Terminal, or another host obtains the real platform measurements.
