Module: Weft::Presets

Defined in:
lib/weft/presets.rb

Overview

Registry for named interaction presets. Each preset is a bundle of trigger/swap/target defaults that Context expands via loads:.

Shipped presets are registered at the bottom of this file. Users will be able to register custom presets in v1.x via the same API.

Constant Summary collapse

RESERVED_KWARGS =

Weft's own element-kwarg vocabulary (keep in sync with Context::Expansion's grammar; :prompt reserved ahead of its arrival). A preset by one of these names would shadow the expansion grammar.

%i[action navigate loads trigger push_url swap target with confirm prompt].freeze
HTML_ATTRIBUTE_NAMES =

HTML attribute names a preset would shadow: a registered preset claims its kwarg whenever the value is a Class or String, so title: "..." would stop rendering the HTML attribute. Global attributes plus the commonly-passed per-element ones.

%i[
  accesskey autocapitalize autofocus class contenteditable dir draggable enterkeyhint
  hidden id inert inputmode lang nonce popover role slot spellcheck style tabindex
  title translate
  href src alt name value type placeholder disabled readonly required checked selected
  multiple method rel download media width height
].freeze

Class Method Summary collapse

Class Method Details

.lookup(name) ⇒ Object

Look up a registered preset by name. Returns the defaults hash or nil.



39
40
41
# File 'lib/weft/presets.rb', line 39

def lookup(name)
  registry[name]
end

.register(name, **defaults) ⇒ Object

Register a named interaction preset.

Weft::Presets.register :tooltip, trigger: :hover, swap: :fill


33
34
35
36
# File 'lib/weft/presets.rb', line 33

def register(name, **defaults)
  validate_name!(name)
  registry[name] = defaults
end

.registeredObject

All registered preset names.



44
45
46
# File 'lib/weft/presets.rb', line 44

def registered
  registry.keys
end