@ai-matrx/tap-target 0.1.2 → 0.2.1
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.
- package/CHANGELOG.md +82 -0
- package/README.md +6 -0
- package/dist/buttons.cjs +255 -289
- package/dist/buttons.cjs.map +1 -1
- package/dist/buttons.js +215 -235
- package/dist/buttons.js.map +1 -1
- package/dist/index.cjs +28 -68
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -19
- package/dist/index.d.ts +1 -19
- package/dist/index.js +41 -62
- package/dist/index.js.map +1 -1
- package/dist/styles.css +15 -0
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,87 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.1 — 2026-09-07
|
|
4
|
+
|
|
5
|
+
**Census row 19i is now fully closed — the spinner stops being a coin flip.**
|
|
6
|
+
`LoadingTapButton` wore core Tailwind's `animate-spin`. Core Tailwind, so it
|
|
7
|
+
survived in all four current consumers and the defect was invisible; but a
|
|
8
|
+
package cannot ship a class it does not define, and the first host without
|
|
9
|
+
Tailwind's core animate utilities gets a spinner that stands still. That is not
|
|
10
|
+
a missing flourish — it is a load-bearing lie, because a still spinner says the
|
|
11
|
+
work has stopped, and there is no error anywhere to find it by. Exactly the
|
|
12
|
+
class of host reliance `@ai-matrx/design-system@0.10.0`'s motion sweep closed
|
|
13
|
+
for its own eleven primitives, and the last open half of the row that sweep
|
|
14
|
+
left behind.
|
|
15
|
+
|
|
16
|
+
**The fix imports; it does not copy.** This package has depended on
|
|
17
|
+
`@ai-matrx/design-system` since 0.2.0, so the spinner now wears that package's
|
|
18
|
+
`matrx-spin` — via its exported `MOTION_SPIN` constant, whose keyframe and rule
|
|
19
|
+
ship in ITS `styles.css` and are asserted present in ITS packed tarball.
|
|
20
|
+
Copying those four lines here would have created a second owner for one
|
|
21
|
+
animation: the very twin the census row exists to kill. Under
|
|
22
|
+
`prefers-reduced-motion` the shared rule slows the loop rather than stopping it,
|
|
23
|
+
because a stopped spinner removes information rather than motion.
|
|
24
|
+
|
|
25
|
+
**`src/styles.css` now `@import`s `@ai-matrx/design-system/styles.css`.** That
|
|
26
|
+
sheet is a REQUIREMENT of this one, not a recommendation — half the spinner's
|
|
27
|
+
truth lives there. `@ai-matrx/design-system` is a real `dependencies` entry, so
|
|
28
|
+
the bare specifier resolves from a plain `npm install @ai-matrx/tap-target` with
|
|
29
|
+
nothing else in the host's manifest, and a host that already imports the
|
|
30
|
+
design-system sheet loses nothing (bundlers resolve both to one file). Any
|
|
31
|
+
future rule in this sheet must go BELOW that `@import`.
|
|
32
|
+
|
|
33
|
+
**The guard (`src/motion.test.tsx`), proven failing-then-passing.** A
|
|
34
|
+
class-name assertion alone would have passed throughout the defect, so — like
|
|
35
|
+
design-system's own motion guard — every check has two halves: the class
|
|
36
|
+
reaches the DOM, AND a sheet that actually reaches the consumer defines a rule
|
|
37
|
+
for it whose keyframe that same sheet declares. It also fails on ANY
|
|
38
|
+
`animate-*` utility appearing in any source file or in the stylesheet (comments
|
|
39
|
+
excluded, so the prose explaining the removal can name it), and on a
|
|
40
|
+
`@keyframes matrx-spin` being copied back in here. Re-pointing the spinner at
|
|
41
|
+
`animate-spin` and dropping the `@import` fails three tests by name.
|
|
42
|
+
|
|
43
|
+
### Consumer action (C28)
|
|
44
|
+
|
|
45
|
+
**None** — take the patch. No API change, no prop change, no geometry change.
|
|
46
|
+
Hosts already importing `@ai-matrx/design-system/styles.css` see no difference
|
|
47
|
+
at all; hosts that were not now get the spinner rule through
|
|
48
|
+
`@ai-matrx/tap-target/styles.css`.
|
|
49
|
+
|
|
50
|
+
## 0.2.0 — 2026-09-07
|
|
51
|
+
|
|
52
|
+
**The tooltip moved out.** This package shipped a Tooltip family whose own file
|
|
53
|
+
header said what it was: an inlined PORT of matrx-frontend's
|
|
54
|
+
`components/ui/tooltip.tsx`, written because ~60 tap buttons need a tooltip and
|
|
55
|
+
no shared package owned one. Four repos then adopted `TooltipProvider` from
|
|
56
|
+
here — which made a button-geometry package the accidental owner of a
|
|
57
|
+
design-system surface, while a second copy lived on in the biggest host.
|
|
58
|
+
|
|
59
|
+
A tooltip is a design-system surface. `@ai-matrx/design-system@0.7.0` owns it
|
|
60
|
+
now. This package takes design-system as an ordinary sibling dependency
|
|
61
|
+
(`workspace:*` in the monorepo, `latest` outside), imports the Tooltip from it,
|
|
62
|
+
and **re-exports nothing** — one implementation, one import path. `src/tooltip.tsx`
|
|
63
|
+
is deleted. The sibling DAG already ordered design-system before tap-target, so
|
|
64
|
+
this edge introduces no cycle; design-system publishes first.
|
|
65
|
+
|
|
66
|
+
The design-system version also RESTORES the seam this copy had dropped: the
|
|
67
|
+
content portals through `PortalContainerProvider`, so a tooltip inside a
|
|
68
|
+
popped-out panel lands in the right document instead of always `document.body`.
|
|
69
|
+
|
|
70
|
+
### Consumer action (C28)
|
|
71
|
+
|
|
72
|
+
Anything importing `Tooltip`, `TooltipTrigger`, `TooltipContent` or
|
|
73
|
+
`TooltipProvider` from `@ai-matrx/tap-target` must import them from
|
|
74
|
+
`@ai-matrx/design-system` instead. Mechanical:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
# in each consumer repo
|
|
78
|
+
grep -rl '@ai-matrx/tap-target' --include='*.ts' --include='*.tsx' . \
|
|
79
|
+
| xargs grep -l 'Tooltip'
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Nothing else changes — the tap buttons' own tooltip behaviour, props
|
|
83
|
+
(`tooltip` / `tooltipSide` / `tooltipAlign`) and geometry are untouched.
|
|
84
|
+
|
|
3
85
|
## 0.1.1 — 2026-08-29
|
|
4
86
|
|
|
5
87
|
- `mobileIconOnly` prop on `TapTargetButton` / `Transparent` / `Solid` /
|
package/README.md
CHANGED
|
@@ -34,6 +34,12 @@ nothing renders correctly without it:
|
|
|
34
34
|
import "@ai-matrx/tap-target/styles.css";
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
+
That one line is enough: since 0.2.1 this sheet `@import`s
|
|
38
|
+
`@ai-matrx/design-system/styles.css`, which it REQUIRES — the loading button's
|
|
39
|
+
spinner wears design-system's `matrx-spin`, whose keyframe is defined there
|
|
40
|
+
(never `animate-spin`, a host utility this package cannot ship). If your app
|
|
41
|
+
already imports the design-system sheet, nothing is duplicated.
|
|
42
|
+
|
|
37
43
|
Tailwind users migrating from the in-repo Matrx copy can keep their existing
|
|
38
44
|
`globals.css` `.matrx-tap-*` block until the C9 swap removes it — the rules are
|
|
39
45
|
identical; just don't load both forever.
|