Tile subclasses for presenting individual subnodes in specialized ways.
STRVCT's view architecture has two distinct roles: tile container views arrange the array of subnodes spatially (see Tile Container Views), while tile views present an individual subnode -- its content, appearance, and interaction affordances.
Nodes select their tile class via setNodeTileClass(). All tiles inherit the standard tile infrastructure -- selection, theming, gestures, accessibility -- and add domain-specific rendering.
| Class | Extends | Purpose |
|---|---|---|
SvTile | -- | Base navigable tile. Supports selection, styling, slide-to-delete, reordering, drag, and close/delete buttons. |
SvTitledTile | SvTile | Adds title, subtitle, note, note icon, and thumbnail subviews. |
SvHeaderTile | SvTitledTile | Section header with selectable state and specific theme class. |
SvTextNodeTile | SvTile | Displays and edits text nodes with a SvTextView. |
SvBreadCrumbsTile | SvTile | Breadcrumb path navigation. |
| Class | Extends | Purpose |
|---|---|---|
SvFieldTile | SvTile | Key/value field with label and value areas. Syncs ARIA from slot metadata. |
SvStringFieldTile | SvFieldTile | Text input field. |
SvPasswordFieldTile | SvStringFieldTile | Masked password input. |
SvBooleanFieldTile | SvFieldTile | Checkbox toggle. |
SvActionFieldTile | SvTile | Clickable button with action handling. |
SvTextAreaFieldTile | SvFieldTile | Multiline text input with speech-to-text support. |
SvPointerFieldTile | SvTitledTile | Navigation link with arrow indicator. |
| Class | Extends | Purpose |
|---|---|---|
SvImageWellFieldTile | SvFieldTile | Drag-and-drop image input. |
SvVideoWellFieldTile | SvFieldTile | Drag-and-drop video input. |
SvSceneViewWellFieldTile | SvFieldTile | 3D model input (model/* MIME types). |
| Class | Extends | Purpose |
|---|---|---|
SvOptionsNodeTile | SvTitledTile | Container for selectable options (role="listbox"). |
SvOptionNodeTile | SvTitledTile | Individual selectable option (role="option"). |
| Class | Extends | Purpose |
|---|---|---|
SvChatMessageTile | SvTextAreaFieldTile | Chat bubble with HTML support, accessibility, and speech capability. |
SvChatInputTile | SvChatMessageTile | Multiline chat input. |
| Class | Extends | Purpose |
|---|---|---|
SvImageTile | SvTitledTile | Image display with caption derived from node title. |
SvFontTile | SvTitledTile | Font preview showing family, style, weight, and stretch. |
A tile whose value area supports formatted text (bold, italic, lists, headings) rather than plain text. Useful for notes, journal entries, descriptions, and any long-form content. Would need to bridge the node's value to a contentEditable region with structured markup.
A standalone playback tile that embeds audio or video transport controls (play/pause, scrubbing, volume). The node would reference a sound or video resource; the tile provides the playback UI. Builds on the existing SvWaSound infrastructure for audio and could extend to video via standard HTML5 media elements.
The existing SvVideoWellFieldTile and SvSceneViewWellFieldTile handle drag-and-drop input of media files. This proposed tile is the complement: playback of media already associated with a node.
A tile that renders a numeric slot value as a visual meter, progress bar, or gauge. The slot's minimum and maximum annotations define the range -- the same annotations that already drive aria-valuemin / aria-valuemax. Useful for hit points, loading progress, skill levels, and any bounded numeric value.
A compact tile optimized for small status indicators -- an icon plus a short label, possibly color-coded by state. Useful for tags, status markers, notification counts, and online/offline indicators. Would pair well with the wrapping grid container for dense displays.
A tile that renders an iframe or sandboxed external content. The node provides a URL; the tile handles sizing, loading states, and security boundaries. Useful for embedding external widgets, previews, or third-party content within the node hierarchy.
setNodeTileClass(SvImageTile) etc. The framework's existing view-discovery mechanism handles the rest.SvNodeView_accessibility pattern. For example, a meter tile would use role="meter" with aria-valuemin, aria-valuemax, and aria-valuenow.