You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: packages/interact-validate/README.md
+21-21Lines changed: 21 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -195,27 +195,27 @@ The single source of truth for every code the validator emits. The agent-facing
195
195
196
196
These encode statically-detectable authoring pitfalls from the trigger rule files. Each belongs to a [rule category](#severity-model), so set the category to `'off'` to silence it or `'error'` to make it fail `valid`.
|`UNUSED_EFFECT`| A `config.effects` entry is never referenced. |`UNUSED_DEFINITION`|
201
-
|`UNUSED_SEQUENCE`| A `config.sequences` entry is never referenced. |`UNUSED_DEFINITION`|
202
-
|`UNUSED_CONDITION`| A `config.conditions` entry is never referenced. |`UNUSED_DEFINITION`|
203
-
|`DUPLICATE_KEYFRAME_NAME`| A `keyframeEffect.name` is reused across effects. |`UNIQUE_DEFINITION_IDS`|
204
-
|`SAME_ELEMENT_RETRIGGER`|`viewEnter` with a non-`once``triggerType` on the same source+target element. |`SAME_ELEMENT_RETRIGGER`|
205
-
|`HIT_AREA_SHIFT`|`hover`/`pointerMove``keyframeEffect`with a `translate`/`scale`/`matrix` transform on the same source+target element. |`HIT_AREA_SHIFT`|
206
-
|`SCROLL_PRESET_MISSING_RANGE`| A `*Scroll``namedEffect` on `viewProgress` omits `range`.|`SCROLL_RANGE`|
207
-
|`SCROLL_PRESET_BAD_RANGE`| A scroll preset `range` is not `'in'`/`'out'`/`'continuous'`. |`SCROLL_RANGE`|
208
-
|`ANIMATION_END_SELF_REFERENCE`| An `animationEnd` interaction waits on an effect it also produces (never starts). |`ANIMATION_END_GRAPH`|
209
-
|`LIST_ITEM_SELECTOR_WITHOUT_CONTAINER`|`listItemSelector` present without `listContainer` (inert). |`ELEMENT_SELECTION`|
210
-
|`REDUNDANT_SELECTOR_WITH_LIST_ITEM`|`selector` ignored when `listContainer` + `listItemSelector` are both present. |`ELEMENT_SELECTION`|
211
-
|`EMPTY_STYLE_PROPERTIES`| A state effect's `transition.styleProperties` / `transitionProperties` is `[]` (toggles nothing). |`STATE_EFFECT`|
212
-
|`STATE_REMOVE_WITHOUT_EFFECT_ID`|`stateAction: 'remove'` with no `effectId` to pair with a matching `'add'`. |`STATE_EFFECT`|
213
-
|`RECOMMENDED_FILL_BOTH`| A scrubbed (`viewProgress`/`pointerMove`) or toggling (`alternate`/`repeat`/`state`) effect omits `fill: 'both'`. |`RECOMMENDED_FILL`|
214
-
|`RECOMMENDED_FILL_BACKWARDS`| A `viewEnter` + `once` named/keyframe effect targeting another element or using a same-element delay omits `fill: 'backwards'` or `'both'`. |`RECOMMENDED_FILL`|
215
-
|`POINTER_AXIS_IGNORED`|`pointerMove``params.axis` set on a `namedEffect`/`customEffect` (axis only applies to `keyframeEffect`). |`POINTER_AXIS`|
216
-
|`INVALID_CSS_PROPERTY_NAME`| A keyframe or state-effect property name is neither camelCase nor kebab-case (both are accepted). |`CSS_PROPERTY_NAME`|
217
-
|`INVALID_INSET`|`viewEnter``params.inset` is not 1–4 CSS lengths/percentages. |`VIEW_INSET`|
218
-
|`FUNCTION_OFFSET_EASING`| A sequence's `offsetEasing` is a function, so `generate()` omits that sequence from the generated CSS. |`OFFSET_EASING`|
|`UNUSED_EFFECT`| A `config.effects` entry is never referenced. |`UNUSED_DEFINITION`|
201
+
|`UNUSED_SEQUENCE`| A `config.sequences` entry is never referenced. |`UNUSED_DEFINITION`|
202
+
|`UNUSED_CONDITION`| A `config.conditions` entry is never referenced. |`UNUSED_DEFINITION`|
203
+
|`DUPLICATE_KEYFRAME_NAME`| A `keyframeEffect.name` is reused across effects. |`UNIQUE_DEFINITION_IDS`|
204
+
|`SAME_ELEMENT_RETRIGGER`|`viewEnter` with a non-`once``triggerType` on the same source+target element. |`SAME_ELEMENT_RETRIGGER`|
205
+
|`HIT_AREA_SHIFT`|`hover`/`pointerMove``keyframeEffect`that moves or resizes the same source+target element (a `transform` function, an individual `translate`/`scale`/`rotate` property, or a box metric such as `width`/`margin`).|`HIT_AREA_SHIFT`|
206
+
|`SCROLL_PRESET_MISSING_RANGE`| A `*Scroll``namedEffect` on `viewProgress` omits `range` (`ParallaxScroll` is exempt - it has no `range`). |`SCROLL_RANGE`|
207
+
|`SCROLL_PRESET_BAD_RANGE`| A scroll preset `range` is not `'in'`/`'out'`/`'continuous'`. |`SCROLL_RANGE`|
208
+
|`ANIMATION_END_SELF_REFERENCE`| An `animationEnd` interaction waits on an effect it also produces (never starts). |`ANIMATION_END_GRAPH`|
209
+
|`LIST_ITEM_SELECTOR_WITHOUT_CONTAINER`|`listItemSelector` present without `listContainer` (inert). |`ELEMENT_SELECTION`|
210
+
|`REDUNDANT_SELECTOR_WITH_LIST_ITEM`|`selector` ignored when `listContainer` + `listItemSelector` are both present. |`ELEMENT_SELECTION`|
211
+
|`EMPTY_STYLE_PROPERTIES`| A state effect's `transition.styleProperties` / `transitionProperties` is `[]` (toggles nothing). |`STATE_EFFECT`|
212
+
|`STATE_REMOVE_WITHOUT_EFFECT_ID`|`stateAction: 'remove'` with no `effectId` to pair with a matching `'add'`. |`STATE_EFFECT`|
213
+
|`RECOMMENDED_FILL_BOTH`| A scrubbed (`viewProgress`/`pointerMove`) or toggling (`alternate`/`repeat`/`state`) effect omits `fill: 'both'`. |`RECOMMENDED_FILL`|
214
+
|`RECOMMENDED_FILL_BACKWARDS`| A `viewEnter` + `once` named/keyframe effect targeting another element or using a same-element delay omits `fill: 'backwards'` or `'both'`. |`RECOMMENDED_FILL`|
215
+
|`POINTER_AXIS_IGNORED`|`pointerMove``params.axis` set on a `namedEffect`/`customEffect` (axis only applies to `keyframeEffect`). |`POINTER_AXIS`|
216
+
|`INVALID_CSS_PROPERTY_NAME`| A keyframe or state-effect property name is neither camelCase nor kebab-case (both are accepted). |`CSS_PROPERTY_NAME`|
217
+
|`INVALID_INSET`|`viewEnter``params.inset` is not 1–4 CSS lengths/percentages. |`VIEW_INSET`|
218
+
|`FUNCTION_OFFSET_EASING`| A sequence's `offsetEasing` is a function, so `generate()` omits that sequence from the generated CSS. |`OFFSET_EASING`|
message: `${owner.trigger} effect changes size/position (transform) on the same element used as the source; the shifting hit area causes jittery re-entry. Target a child via \`selector\` or set a different \`key\`.`,
97
+
message: `${owner.trigger} effect changes size/position on the same element used as the source; the shifting hit area causes jittery re-entry. Target a child via \`selector\` or set a different \`key\`.`,
0 commit comments