diff --git a/src/uix/morfo/components/knob.ts b/src/uix/morfo/components/knob.ts index 9eae6f200..109a343d0 100644 --- a/src/uix/morfo/components/knob.ts +++ b/src/uix/morfo/components/knob.ts @@ -18,7 +18,7 @@ import { v } from '../types'; export const knobMorfo = { name: 'Knob', kebab: 'knob', - scope: ['soma', 'eidos'], + scope: ['soma', 'sema', 'eidos'], apg: 'https://www.w3.org/WAI/ARIA/apg/patterns/slider/', texts: { @@ -41,11 +41,14 @@ export const knobMorfo = { { attr: 'data-readonly', value: v.propRef('readonly'), severity: 'optional' }, { attr: 'data-invalid', value: v.propRef('invalid'), severity: 'optional' }, // Persistent evaluative state — sema's transient twin is data-event-intent. + // Enum-valued (values[]) → the compiler writes the intent directly in + // `enum` mode; `emit` is a non-enum-only knob and is ignored here (its + // presence on an enum is rejected by the schema invariant), so it's + // omitted — matching timeline / toast which declare data-intent the same way. { attr: 'data-intent', values: ['neutral', 'affirm', 'risk', 'threat'], value: v.propRef('intent'), - emit: 'value', severity: 'optional' } ],