@jsenv/navi 0.29.144 → 0.29.145

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -585,6 +585,22 @@ a gate, a callout and a control's own read-only, none of which a box has. A box
585
585
  claims the press and nothing more; put the affordance on a control when what it
586
586
  does about a held zone matters.
587
587
 
588
+ #### When the affordance should sit OUTSIDE instead
589
+
590
+ `ownTarget` says a façade CAN yield a zone; it does not say it should. What
591
+ decides is whether the affordance stays where the finger left it.
592
+
593
+ An icon that lives inside its control while that control is showing, and
594
+ becomes a pill of its own once it is not, is a switch that moves when you flip
595
+ it: the finger that opened the search has to travel somewhere else to close it.
596
+ Draw it outside both controls, at a fixed place, and the same pixel does both —
597
+ which is the whole gesture on a phone. `<ControlSwap>` is that row: two
598
+ controls taking turns in the middle, a fixed cap at each end.
599
+
600
+ So: an affordance that acts on what it sits in (a chip's cross, a stepper, an
601
+ eye on a row) belongs inside, and takes its press back with `ownTarget`. One
602
+ that swaps what is being shown belongs outside it, where it can stay put.
603
+
588
604
  #### navi steps back; a plain `onClick` does not
589
605
 
590
606
  What `ownTarget` stops is navi answering: the controls above it, and the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/navi",
3
- "version": "0.29.144",
3
+ "version": "0.29.145",
4
4
  "type": "module",
5
5
  "description": "Library of components including navigation to create frontend applications",
6
6
  "repository": {