105 const std::vector<std::string>& theme_tokens);
116 const std::vector<std::string>& theme_tokens);
135 std::string_view value,
136 const std::vector<std::string>& theme_tokens);
Definition design_adherence.hpp:32
WriteTarget
Where a resolved write lands.
Definition design_knobs.hpp:99
@ ThemeToken
Definition design_knobs.hpp:99
@ LocalBlock
Definition design_knobs.hpp:99
const KnobSpec * find_knob(const KnobSchema &schema, std::string_view id)
Look up a knob by id (nullptr when absent).
std::optional< KnobSchema > parse_knob_schema(std::string_view json)
Parse a declared knob schema from JSON.
std::optional< KnobEffect > resolve_knob(const KnobSpec &knob, std::string_view value, const std::vector< std::string > &theme_tokens)
Resolve knob set to value into its split writes against theme_tokens.
std::optional< KnobApply > apply_knob(std::string_view artifact, const KnobSpec &knob, std::string_view value, const std::vector< std::string > &theme_tokens)
Apply knob set to value to a design artifact: persist the local writes into the artifact's EDITMODE b...
KnobKind
The kind of control a knob presents.
Definition design_knobs.hpp:40
@ Slider
Definition design_knobs.hpp:40
@ Toggle
Definition design_knobs.hpp:40
@ Enum
Definition design_knobs.hpp:40
const KnobPosition * select_position(const KnobSpec &knob, std::string_view value)
Select the position of knob for value:
std::string knob_schema_to_json(const KnobSchema &schema)
Serialize a schema to stable JSON.
KnobSpec builtin_theme_flip()
Built-in theme-flip knob: an Enum over appearance with "light"/"dark" positions, each writing a local...
WriteTarget classify_write(const KnobWrite &write, const std::vector< std::string > &theme_tokens)
Classify a write against the design's bound theme tokens: ThemeToken iff write.key is one of theme_to...
The result of applying a knob to a design artifact.
Definition design_knobs.hpp:119
std::vector< KnobWrite > token_writes
the token-layer writes, for the caller to apply
Definition design_knobs.hpp:121
std::string text
artifact with the local writes persisted
Definition design_knobs.hpp:120
The concrete effect of setting a knob to a value: its writes split by target.
Definition design_knobs.hpp:108
std::vector< KnobWrite > local_writes
persist into the EDITMODE block
Definition design_knobs.hpp:110
std::vector< KnobWrite > token_writes
apply at the theme/token layer
Definition design_knobs.hpp:109
One selectable position of a knob.
Definition design_knobs.hpp:54
double at
Definition design_knobs.hpp:56
std::vector< KnobWrite > writes
Definition design_knobs.hpp:57
std::string label
Definition design_knobs.hpp:55
A design's declared set of knobs.
Definition design_knobs.hpp:70
std::vector< KnobSpec > knobs
Definition design_knobs.hpp:71
A declared knob: a stable id, a human label, its kind, and its positions in authored order (Slider po...
Definition design_knobs.hpp:62
std::vector< KnobPosition > positions
Definition design_knobs.hpp:66
std::string label
Definition design_knobs.hpp:64
std::string id
Definition design_knobs.hpp:63
KnobKind kind
Definition design_knobs.hpp:65
One parameter write a knob position produces.
Definition design_knobs.hpp:46
std::string json_value
Definition design_knobs.hpp:48
std::string key
Definition design_knobs.hpp:47