You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/docs/canon/vocabularies.md

189 lines
9.2 KiB

---
title: Canonical vocabularies (generated)
type: canon
audience: human + agent
authority: canonical — the closed sets, generated from the code consts
status: current
generated: npm run docs:vocabularies (do NOT edit by hand)
---
# Canonical vocabularies
> **Generated from the code — do not edit.** Run `npm run docs:vocabularies`
> to regenerate; `npm run docs:check` fails if this file drifts from the
> consts. This is the ONE place the closed sets are spelled out (the reason
> every other doc links here instead of copying a list that would go stale).
> When building a component you draw part archetypes, event families/verbs,
> intents and holds from exactly these sets (STUMBLES #1).
## Part archetypes (26)
The cross-component classification a `part` may declare
(`ARCHETYPE_VOCABULARY`, `src/uix/morfo/types.ts`). Omit it for a plain
display part that pulls no shared styling.
| Archetype | Role |
| --- | --- |
| `provider` | root context provider |
| `trigger` | activates an action or opens an overlay (button-like) |
| `field-trigger` | a field/input/select/combo trigger — NOT a button; owns the flush field-control treatment, never the generic button/popover chrome |
| `content` | primary content panel of an overlay or section |
| `overlay` | modal/dim backdrop behind content |
| `viewport` | scrollable / focusable container |
| `item` | list / tree / menu item |
| `option` | selectable option in a select-like list |
| `indicator` | visual progress / decorative state |
| `thumb` | draggable handle (slider, scroll, switch) |
| `track` | background of slider / scroll / progress |
| `label` | text label associated with a control |
| `title` | overlay or section title |
| `description` | secondary descriptive text |
| `close` | dismiss / close button |
| `action` | call-to-action button |
| `header` | section header (often above content) |
| `footer` | section footer (often below content) |
| `image` | `<img>`-based content |
| `fallback` | shown when primary content unavailable |
| `arrow` | pointer arrow (tooltip / popover) |
| `separator` | visual divider |
| `group` | grouping container for related items |
| `input` | form input element |
| `segment` | discrete sub-input (pin-input segment, OTP digit) |
| `preview` | file / link / data preview |
## Sema families (8) — default hold + persistence
Each event declares a `semantic.family`; the default perceptual hold and
persistence come from `SEMA_HOLDS_BY_INTENT` (`src/uix/sema/holds.ts`),
overridable per event. Named holds map to `SEMA_DURATIONS`.
| Family | Default hold | Persistence | Per-intent overrides |
| --- | --- | --- | --- |
| `contact` | 120ms (`glimpse`) | transient | — |
| `emerge` | 240ms (`brief`) | transient | — |
| `shift` | 600ms (`noticed`) | transient | — |
| `commit` | 240ms (`brief`) | transient | fulfill: 400ms/transient |
| `signal` | 240ms (`brief`) | transient | risk: 240ms/untilFix; threat: 240ms/untilAction; loss: 240ms/transient |
| `handle` | 240ms (`brief`) | transient | — |
| `sustain` | 600ms (`noticed`) | stateBound | — |
| `delegate` | 600ms (`noticed`) | transient | — |
## Sema verbs, by family
The canonical verb set an event may use for each family (`SEMA_VERBS`,
`src/uix/sema/verbs.ts`). A `family.verb` pairing outside this is drift.
| Family | Verbs |
| --- | --- |
| `contact` | `press` · `tap` · `activate` · `focus` · `trigger` · `release` |
| `commit` | `select` · `unselect` · `toggle` · `save` · `submit` · `confirm` · `complete` · `fail` · `cancel` · `reset` · `discard` · `delete` · `restore` · `expire` · `acknowledge` · `apply` · `partial` · `block` · `move` · `set` · `remove` · `reorder` · `upload` |
| `signal` | `announce` · `notify` · `warn` · `alert` · `inform` · `emphasize` · `remind` |
| `handle` | `pick` · `carry` · `drop` · `drag` · `resize` · `reorder` · `rotate` · `scroll` · `zoom` |
| `emerge` | `present` · `dismiss` · `open` · `close` · `expand` · `collapse` · `reveal` · `hide` |
| `shift` | `enter-mode` · `exit-mode` · `navigate` · `route` · `step` · `return` · `context` |
| `sustain` | `start` · `progress` · `loading` · `waiting` · `syncing` · `processing` · `streaming` · `pending` · `retrying` · `upload` · `end` |
| `delegate` | `offer` · `plan` · `authorize` · `act` · `review` · `escalate` · `return` |
## Sounds (16)
THE catalogue (`SOUNDS`, `src/uix/sema/sound-names.ts`). A component names
one of these and writes nothing else: the type of a pack rule accepts a name
or `SILENT`, and nothing more. Whether a name resolves to a synthesised
recipe or to a `.wav` is decided here, never at the component.
A name is applied over the family base and BEFORE the intent deltas, so the
evaluative profile always survives it — which is what makes the old D.7 / S-07
class of defect impossible rather than merely forbidden.
Silence is not a name: it is `SILENT`, one canonical value for the whole
system (`$uix/sema`). Declared on a channel slice, the resolver honours it by
dropping that channel.
`touch` · `step` · `tick` · `open` · `close` · `slide` · `alert` · `air` · `settle` · `snap` · `tick.fulfill` · `tick.risk` · `tick.threat` · `tick.loss` · `alert.risk` · `alert.threat`
## Intents (6)
The evaluative axis (`INTENTS`, `src/uix/intent.ts`). `commit` and `signal`
require one; the intent policy per family is `SEMA_FAMILY_POLICY`.
`neutral` · `affirm` · `fulfill` · `risk` · `threat` · `loss`
## Directions (2)
The sense of a traversal (`SEMA_DIRECTIONS`, `src/uix/sema/types.ts`),
projected as `data-event-direction`. Per emission like the intent, and
unlike it undeclarable on the EVENT: one `shift-navigate` is the previous
month and the next one is the following month, so only the caller knows
(`TriggerOptions.direction`). Optional — most occurrences have no sense to
declare, and an invented one is worse than none.
A SENSE, never an axis: eidos maps `forward` onto the inline end and
`backward` onto the inline start, so RTL flips through `:dir(rtl)` and
nothing upstream knows about it. Distinct from `SoundContour`
(`ascending` / `descending`, `src/uix/sema/sounds.ts`), which shapes a pitch,
and from `Morfo.direction`, which names the parts that carry the `dir` stamp
(the RTL contract — see `docs/canon/direction-contract.md`).
`forward` · `backward`
## Hold / perceptual durations
The named perceptual scale (`SEMA_DURATIONS`, `src/uix/sema/durations.ts`);
an event `hold` is a label from here or a raw ms number.
| Label | ms |
| --- | --- |
| `subliminal` | 50 |
| `glimpse` | 120 |
| `brief` | 240 |
| `settled` | 400 |
| `noticed` | 600 |
| `insistent` | 1200 |
| `persistent` | 3000 |
## Haptic kinds (7)
The `kind` a `haptic` channel signature may use (`HapticSignature`,
`src/uix/sema/channels.ts`). Haptic is opt-in (`new EngineSemantic({ haptic: true })`).
`tick` · `tap` · `pulse` · `thud` · `success` · `warning` · `error`
## Palette scales (33)
The donor scales a component `color` prop accepts under `intent="neutral"`
(`PALETTE_SCALES`, `src/uix/eidos/lib/types.ts`) — the per-instance override
(`<X color="teal">`). NEVER hand-count this list.
`gray` · `slate` · `blue` · `cyan` · `teal` · `green` · `yellow` · `amber` · `orange` · `red` · `pink` · `purple` · `mauve` · `sage` · `olive` · `sand` · `tomato` · `ruby` · `crimson` · `plum` · `fuchsia` · `violet` · `iris` · `indigo` · `jade` · `grass` · `brown` · `sky` · `mint` · `lime` · `gold` · `bronze` · `steel`
## Sizes (8)
The size scale (`SIZES`; the physical primitives are `SIZE_PRIMITIVE_KEYS`,
`src/uix/eidos/lib/types.ts`). `full` is a layout semantic, not a physical
tier. Each component exposes the subset its recipe supports.
Physical: `xxs` · `xs` · `sm` · `md` · `lg` · `xl` · `xxl` · layout: `full`
## Variant archetypes
The canonical variant sets per archetype (`EIDOS_VARIANTS`,
`src/uix/eidos/lib/types.ts`). A component narrows to one set; component-only
values live in its own `types.ts`.
| Archetype | Variants |
| --- | --- |
| `control` | `surface` · `outline` · `ghost` |
| `selection` | `solid` · `outline` · `ghost` |
| `chip` | `soft` · `solid` · `outline` · `ghost` |
| `marker` | `solid` · `soft` · `outline` |
| `tabs` | `line` · `surface` · `pills` · `segmented` |
## Shared strings (`common.*`, 40)
The shared idlangref leaves (`commonLangs`, `src/uix/langs/common.ts`),
reachable via `v.commonRef(...)` or `#?common.{path}|Fallback` — reuse these
instead of re-declaring a close/cancel/clear label per component.
`buttons.cancel` · `buttons.clear` · `buttons.close` · `buttons.decrement` · `buttons.dismiss` · `buttons.edit` · `buttons.increment` · `buttons.next` · `buttons.prev` · `buttons.redo` · `buttons.remove` · `buttons.reset` · `buttons.save` · `buttons.submit` · `buttons.undo` · `calendar.prev-month` · `calendar.next-month` · `calendar.month-select` · `calendar.year-select` · `month-grid.prev-year` · `month-grid.next-year` · `year-grid.prev-page` · `year-grid.next-page` · `date.year` · `date.month` · `date.day` · `time.hour` · `time.minute` · `time.second` · `time.day-period` · `time.time-zone` · `time.am` · `time.pm` · `time.period.dawn` · `time.period.morning` · `time.period.afternoon` · `time.period.dusk` · `time.period.night` · `time.period.late-night` · `field.empty`

Powered by TurnKey Linux.