@jalvin/ui 2.0.26 → 2.0.27
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/dist/__tests__/interaction.test.d.ts +2 -0
- package/dist/__tests__/interaction.test.d.ts.map +1 -0
- package/dist/__tests__/interaction.test.js +213 -0
- package/dist/__tests__/interaction.test.js.map +1 -0
- package/dist/__tests__/modifier.test.d.ts +2 -0
- package/dist/__tests__/modifier.test.d.ts.map +1 -0
- package/dist/__tests__/modifier.test.js +189 -0
- package/dist/__tests__/modifier.test.js.map +1 -0
- package/dist/button.d.ts.map +1 -1
- package/dist/button.js +12 -0
- package/dist/button.js.map +1 -1
- package/dist/canvas.d.ts.map +1 -1
- package/dist/canvas.js +6 -0
- package/dist/canvas.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interaction.d.ts +103 -0
- package/dist/interaction.d.ts.map +1 -0
- package/dist/interaction.js +150 -0
- package/dist/interaction.js.map +1 -0
- package/dist/modifier.d.ts +49 -2
- package/dist/modifier.d.ts.map +1 -1
- package/dist/modifier.js +79 -7
- package/dist/modifier.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/interaction.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { describe, it, expect, vi } from "vitest";
|
|
2
|
+
import { renderHook, act } from "@testing-library/react";
|
|
3
|
+
import { MutableInteractionSource, useMutableInteractionSource, useIsHovered, useIsPressed, useIsFocused, } from "../interaction.js";
|
|
4
|
+
// ── MutableInteractionSource ──────────────────────────────────────────────────
|
|
5
|
+
describe("MutableInteractionSource — hover", () => {
|
|
6
|
+
it("starts with no active interactions", () => {
|
|
7
|
+
const s = new MutableInteractionSource();
|
|
8
|
+
expect(s.getInteractions()).toHaveLength(0);
|
|
9
|
+
});
|
|
10
|
+
it("adds hover.enter on _handleMouseEnter", () => {
|
|
11
|
+
const s = new MutableInteractionSource();
|
|
12
|
+
s._handleMouseEnter();
|
|
13
|
+
expect(s.getInteractions()).toHaveLength(1);
|
|
14
|
+
expect(s.getInteractions()[0].type).toBe("hover.enter");
|
|
15
|
+
});
|
|
16
|
+
it("removes hover.enter on _handleMouseLeave", () => {
|
|
17
|
+
const s = new MutableInteractionSource();
|
|
18
|
+
s._handleMouseEnter();
|
|
19
|
+
s._handleMouseLeave();
|
|
20
|
+
expect(s.getInteractions()).toHaveLength(0);
|
|
21
|
+
});
|
|
22
|
+
it("_handleMouseLeave is a no-op when not hovered", () => {
|
|
23
|
+
const s = new MutableInteractionSource();
|
|
24
|
+
s._handleMouseLeave();
|
|
25
|
+
expect(s.getInteractions()).toHaveLength(0);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe("MutableInteractionSource — focus", () => {
|
|
29
|
+
it("adds focus.focus on _handleFocus", () => {
|
|
30
|
+
const s = new MutableInteractionSource();
|
|
31
|
+
s._handleFocus();
|
|
32
|
+
expect(s.getInteractions()).toHaveLength(1);
|
|
33
|
+
expect(s.getInteractions()[0].type).toBe("focus.focus");
|
|
34
|
+
});
|
|
35
|
+
it("removes focus.focus on _handleBlur", () => {
|
|
36
|
+
const s = new MutableInteractionSource();
|
|
37
|
+
s._handleFocus();
|
|
38
|
+
s._handleBlur();
|
|
39
|
+
expect(s.getInteractions()).toHaveLength(0);
|
|
40
|
+
});
|
|
41
|
+
it("_handleBlur is a no-op when not focused", () => {
|
|
42
|
+
const s = new MutableInteractionSource();
|
|
43
|
+
s._handleBlur();
|
|
44
|
+
expect(s.getInteractions()).toHaveLength(0);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe("MutableInteractionSource — press", () => {
|
|
48
|
+
it("adds press.press on _handleMouseDown", () => {
|
|
49
|
+
const s = new MutableInteractionSource();
|
|
50
|
+
s._handleMouseDown(10, 20);
|
|
51
|
+
expect(s.getInteractions()).toHaveLength(1);
|
|
52
|
+
const i = s.getInteractions()[0];
|
|
53
|
+
expect(i.type).toBe("press.press");
|
|
54
|
+
if (i.type === "press.press") {
|
|
55
|
+
expect(i.x).toBe(10);
|
|
56
|
+
expect(i.y).toBe(20);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
it("removes press.press on _handleMouseUp", () => {
|
|
60
|
+
const s = new MutableInteractionSource();
|
|
61
|
+
s._handleMouseDown(0, 0);
|
|
62
|
+
s._handleMouseUp();
|
|
63
|
+
expect(s.getInteractions()).toHaveLength(0);
|
|
64
|
+
});
|
|
65
|
+
it("removes press.press on _handlePressCancel", () => {
|
|
66
|
+
const s = new MutableInteractionSource();
|
|
67
|
+
s._handleMouseDown(0, 0);
|
|
68
|
+
s._handlePressCancel();
|
|
69
|
+
expect(s.getInteractions()).toHaveLength(0);
|
|
70
|
+
});
|
|
71
|
+
it("_handleMouseUp is a no-op when not pressed", () => {
|
|
72
|
+
const s = new MutableInteractionSource();
|
|
73
|
+
s._handleMouseUp();
|
|
74
|
+
expect(s.getInteractions()).toHaveLength(0);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
describe("MutableInteractionSource — multiple concurrent interactions", () => {
|
|
78
|
+
it("tracks hover and press simultaneously", () => {
|
|
79
|
+
const s = new MutableInteractionSource();
|
|
80
|
+
s._handleMouseEnter();
|
|
81
|
+
s._handleMouseDown(5, 5);
|
|
82
|
+
expect(s.getInteractions()).toHaveLength(2);
|
|
83
|
+
s._handleMouseUp();
|
|
84
|
+
expect(s.getInteractions()).toHaveLength(1);
|
|
85
|
+
expect(s.getInteractions()[0].type).toBe("hover.enter");
|
|
86
|
+
});
|
|
87
|
+
it("tracks hover, focus, and press simultaneously", () => {
|
|
88
|
+
const s = new MutableInteractionSource();
|
|
89
|
+
s._handleMouseEnter();
|
|
90
|
+
s._handleFocus();
|
|
91
|
+
s._handleMouseDown(0, 0);
|
|
92
|
+
expect(s.getInteractions()).toHaveLength(3);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
describe("MutableInteractionSource — subscribe", () => {
|
|
96
|
+
it("notifies listener on every state change", () => {
|
|
97
|
+
const s = new MutableInteractionSource();
|
|
98
|
+
const listener = vi.fn();
|
|
99
|
+
s.subscribe(listener);
|
|
100
|
+
s._handleMouseEnter();
|
|
101
|
+
s._handleMouseLeave();
|
|
102
|
+
expect(listener).toHaveBeenCalledTimes(2);
|
|
103
|
+
});
|
|
104
|
+
it("unsubscribe stops notifications", () => {
|
|
105
|
+
const s = new MutableInteractionSource();
|
|
106
|
+
const listener = vi.fn();
|
|
107
|
+
const unsub = s.subscribe(listener);
|
|
108
|
+
s._handleMouseEnter();
|
|
109
|
+
unsub();
|
|
110
|
+
s._handleMouseLeave();
|
|
111
|
+
expect(listener).toHaveBeenCalledTimes(1);
|
|
112
|
+
});
|
|
113
|
+
it("multiple listeners are all notified", () => {
|
|
114
|
+
const s = new MutableInteractionSource();
|
|
115
|
+
const a = vi.fn();
|
|
116
|
+
const b = vi.fn();
|
|
117
|
+
s.subscribe(a);
|
|
118
|
+
s.subscribe(b);
|
|
119
|
+
s._handleMouseEnter();
|
|
120
|
+
expect(a).toHaveBeenCalledTimes(1);
|
|
121
|
+
expect(b).toHaveBeenCalledTimes(1);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
// ── useMutableInteractionSource ───────────────────────────────────────────────
|
|
125
|
+
describe("useMutableInteractionSource", () => {
|
|
126
|
+
it("returns a MutableInteractionSource", () => {
|
|
127
|
+
const { result } = renderHook(() => useMutableInteractionSource());
|
|
128
|
+
expect(result.current).toBeInstanceOf(MutableInteractionSource);
|
|
129
|
+
});
|
|
130
|
+
it("returns the same instance across re-renders", () => {
|
|
131
|
+
const { result, rerender } = renderHook(() => useMutableInteractionSource());
|
|
132
|
+
const first = result.current;
|
|
133
|
+
rerender();
|
|
134
|
+
expect(result.current).toBe(first);
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
// ── useIsHovered ──────────────────────────────────────────────────────────────
|
|
138
|
+
describe("useIsHovered", () => {
|
|
139
|
+
it("starts as false", () => {
|
|
140
|
+
const source = new MutableInteractionSource();
|
|
141
|
+
const { result } = renderHook(() => useIsHovered(source));
|
|
142
|
+
expect(result.current).toBe(false);
|
|
143
|
+
});
|
|
144
|
+
it("becomes true after _handleMouseEnter", () => {
|
|
145
|
+
const source = new MutableInteractionSource();
|
|
146
|
+
const { result } = renderHook(() => useIsHovered(source));
|
|
147
|
+
act(() => { source._handleMouseEnter(); });
|
|
148
|
+
expect(result.current).toBe(true);
|
|
149
|
+
});
|
|
150
|
+
it("returns to false after _handleMouseLeave", () => {
|
|
151
|
+
const source = new MutableInteractionSource();
|
|
152
|
+
const { result } = renderHook(() => useIsHovered(source));
|
|
153
|
+
act(() => { source._handleMouseEnter(); });
|
|
154
|
+
act(() => { source._handleMouseLeave(); });
|
|
155
|
+
expect(result.current).toBe(false);
|
|
156
|
+
});
|
|
157
|
+
it("reflects pre-existing hover state on mount", () => {
|
|
158
|
+
const source = new MutableInteractionSource();
|
|
159
|
+
source._handleMouseEnter();
|
|
160
|
+
const { result } = renderHook(() => useIsHovered(source));
|
|
161
|
+
expect(result.current).toBe(true);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
// ── useIsFocused ──────────────────────────────────────────────────────────────
|
|
165
|
+
describe("useIsFocused", () => {
|
|
166
|
+
it("starts as false", () => {
|
|
167
|
+
const source = new MutableInteractionSource();
|
|
168
|
+
const { result } = renderHook(() => useIsFocused(source));
|
|
169
|
+
expect(result.current).toBe(false);
|
|
170
|
+
});
|
|
171
|
+
it("becomes true after _handleFocus", () => {
|
|
172
|
+
const source = new MutableInteractionSource();
|
|
173
|
+
const { result } = renderHook(() => useIsFocused(source));
|
|
174
|
+
act(() => { source._handleFocus(); });
|
|
175
|
+
expect(result.current).toBe(true);
|
|
176
|
+
});
|
|
177
|
+
it("returns to false after _handleBlur", () => {
|
|
178
|
+
const source = new MutableInteractionSource();
|
|
179
|
+
const { result } = renderHook(() => useIsFocused(source));
|
|
180
|
+
act(() => { source._handleFocus(); });
|
|
181
|
+
act(() => { source._handleBlur(); });
|
|
182
|
+
expect(result.current).toBe(false);
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
// ── useIsPressed ──────────────────────────────────────────────────────────────
|
|
186
|
+
describe("useIsPressed", () => {
|
|
187
|
+
it("starts as false", () => {
|
|
188
|
+
const source = new MutableInteractionSource();
|
|
189
|
+
const { result } = renderHook(() => useIsPressed(source));
|
|
190
|
+
expect(result.current).toBe(false);
|
|
191
|
+
});
|
|
192
|
+
it("becomes true after _handleMouseDown", () => {
|
|
193
|
+
const source = new MutableInteractionSource();
|
|
194
|
+
const { result } = renderHook(() => useIsPressed(source));
|
|
195
|
+
act(() => { source._handleMouseDown(0, 0); });
|
|
196
|
+
expect(result.current).toBe(true);
|
|
197
|
+
});
|
|
198
|
+
it("returns to false after _handleMouseUp", () => {
|
|
199
|
+
const source = new MutableInteractionSource();
|
|
200
|
+
const { result } = renderHook(() => useIsPressed(source));
|
|
201
|
+
act(() => { source._handleMouseDown(0, 0); });
|
|
202
|
+
act(() => { source._handleMouseUp(); });
|
|
203
|
+
expect(result.current).toBe(false);
|
|
204
|
+
});
|
|
205
|
+
it("returns to false after _handlePressCancel", () => {
|
|
206
|
+
const source = new MutableInteractionSource();
|
|
207
|
+
const { result } = renderHook(() => useIsPressed(source));
|
|
208
|
+
act(() => { source._handleMouseDown(0, 0); });
|
|
209
|
+
act(() => { source._handlePressCancel(); });
|
|
210
|
+
expect(result.current).toBe(false);
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
//# sourceMappingURL=interaction.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction.test.js","sourceRoot":"","sources":["../../src/__tests__/interaction.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,iFAAiF;AAEjF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACtB,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACtB,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACtB,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACtB,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,CAAC,CAAC,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,CAAC,CAAC,YAAY,EAAE,CAAC;QACjB,CAAC,CAAC,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,CAAC,CAAC,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAE,CAAC;QAClC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC7B,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,kBAAkB,EAAE,CAAC;QACvB,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6DAA6D,EAAE,GAAG,EAAE;IAC3E,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACtB,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACtB,CAAC,CAAC,YAAY,EAAE,CAAC;QACjB,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACtB,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACtB,KAAK,EAAE,CAAC;QACR,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAClB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACf,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACf,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACtB,MAAM,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,2BAA2B,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,2BAA2B,EAAE,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,QAAQ,EAAE,CAAC;QACX,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modifier.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/modifier.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { Modifier } from "../modifier.js";
|
|
3
|
+
import { MutableInteractionSource } from "../interaction.js";
|
|
4
|
+
// ── Basic styles (regression guard) ──────────────────────────────────────────
|
|
5
|
+
describe("Modifier — basic styles", () => {
|
|
6
|
+
it("Default produces empty props", () => {
|
|
7
|
+
const props = Modifier.Default.toProps();
|
|
8
|
+
expect(props.style).toBeUndefined();
|
|
9
|
+
expect(props.className).toBeUndefined();
|
|
10
|
+
});
|
|
11
|
+
it("fillMaxWidth sets width 100%", () => {
|
|
12
|
+
expect(Modifier.fillMaxWidth().toProps().style?.width).toBe("100%");
|
|
13
|
+
});
|
|
14
|
+
it("padding with number appends px", () => {
|
|
15
|
+
expect(Modifier.padding(16).toProps().style?.padding).toBe("16px");
|
|
16
|
+
});
|
|
17
|
+
it("padding with string passes through", () => {
|
|
18
|
+
expect(Modifier.padding("1rem").toProps().style?.padding).toBe("1rem");
|
|
19
|
+
});
|
|
20
|
+
it("background sets backgroundColor", () => {
|
|
21
|
+
expect(Modifier.background("#fff").toProps().style?.backgroundColor).toBe("#fff");
|
|
22
|
+
});
|
|
23
|
+
it("className is recorded", () => {
|
|
24
|
+
expect(Modifier.className("foo").toProps().className).toBe("foo");
|
|
25
|
+
});
|
|
26
|
+
it("then() merges styles, later wins", () => {
|
|
27
|
+
const m = Modifier.background("#aaa").then(Modifier.background("#bbb"));
|
|
28
|
+
expect(m.toProps().style?.backgroundColor).toBe("#bbb");
|
|
29
|
+
});
|
|
30
|
+
it("then() concatenates classNames", () => {
|
|
31
|
+
const m = Modifier.className("a").then(Modifier.className("b"));
|
|
32
|
+
expect(m.toProps().className).toBe("a b");
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
// ── hoverable ─────────────────────────────────────────────────────────────────
|
|
36
|
+
describe("Modifier.hoverable", () => {
|
|
37
|
+
it("toProps exposes onMouseEnter and onMouseLeave", () => {
|
|
38
|
+
const source = new MutableInteractionSource();
|
|
39
|
+
const props = Modifier.hoverable(source).toProps();
|
|
40
|
+
expect(typeof props.onMouseEnter).toBe("function");
|
|
41
|
+
expect(typeof props.onMouseLeave).toBe("function");
|
|
42
|
+
});
|
|
43
|
+
it("onMouseEnter triggers _handleMouseEnter on the source", () => {
|
|
44
|
+
const source = new MutableInteractionSource();
|
|
45
|
+
const { onMouseEnter } = Modifier.hoverable(source).toProps();
|
|
46
|
+
onMouseEnter();
|
|
47
|
+
expect(source.getInteractions()[0]?.type).toBe("hover.enter");
|
|
48
|
+
});
|
|
49
|
+
it("onMouseLeave triggers _handleMouseLeave on the source", () => {
|
|
50
|
+
const source = new MutableInteractionSource();
|
|
51
|
+
const { onMouseEnter, onMouseLeave } = Modifier.hoverable(source).toProps();
|
|
52
|
+
onMouseEnter();
|
|
53
|
+
onMouseLeave();
|
|
54
|
+
expect(source.getInteractions()).toHaveLength(0);
|
|
55
|
+
});
|
|
56
|
+
it("does not expose focus or press handlers", () => {
|
|
57
|
+
const source = new MutableInteractionSource();
|
|
58
|
+
const props = Modifier.hoverable(source).toProps();
|
|
59
|
+
expect(props.onFocus).toBeUndefined();
|
|
60
|
+
expect(props.onBlur).toBeUndefined();
|
|
61
|
+
expect(props.onMouseDown).toBeUndefined();
|
|
62
|
+
expect(props.onMouseUp).toBeUndefined();
|
|
63
|
+
});
|
|
64
|
+
it("static factory produces same result as instance method", () => {
|
|
65
|
+
const source = new MutableInteractionSource();
|
|
66
|
+
const a = Modifier.hoverable(source).toProps();
|
|
67
|
+
const b = Modifier.Default.hoverable(source).toProps();
|
|
68
|
+
expect(typeof a.onMouseEnter).toBe(typeof b.onMouseEnter);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
// ── focusable ─────────────────────────────────────────────────────────────────
|
|
72
|
+
describe("Modifier.focusable", () => {
|
|
73
|
+
it("toProps exposes onFocus and onBlur", () => {
|
|
74
|
+
const source = new MutableInteractionSource();
|
|
75
|
+
const props = Modifier.focusable(source).toProps();
|
|
76
|
+
expect(typeof props.onFocus).toBe("function");
|
|
77
|
+
expect(typeof props.onBlur).toBe("function");
|
|
78
|
+
});
|
|
79
|
+
it("onFocus triggers _handleFocus", () => {
|
|
80
|
+
const source = new MutableInteractionSource();
|
|
81
|
+
const { onFocus } = Modifier.focusable(source).toProps();
|
|
82
|
+
onFocus();
|
|
83
|
+
expect(source.getInteractions()[0]?.type).toBe("focus.focus");
|
|
84
|
+
});
|
|
85
|
+
it("onBlur triggers _handleBlur", () => {
|
|
86
|
+
const source = new MutableInteractionSource();
|
|
87
|
+
const { onFocus, onBlur } = Modifier.focusable(source).toProps();
|
|
88
|
+
onFocus();
|
|
89
|
+
onBlur();
|
|
90
|
+
expect(source.getInteractions()).toHaveLength(0);
|
|
91
|
+
});
|
|
92
|
+
it("does not expose hover or press handlers", () => {
|
|
93
|
+
const source = new MutableInteractionSource();
|
|
94
|
+
const props = Modifier.focusable(source).toProps();
|
|
95
|
+
expect(props.onMouseEnter).toBeUndefined();
|
|
96
|
+
expect(props.onMouseLeave).toBeUndefined();
|
|
97
|
+
expect(props.onMouseDown).toBeUndefined();
|
|
98
|
+
expect(props.onMouseUp).toBeUndefined();
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
// ── pressable ─────────────────────────────────────────────────────────────────
|
|
102
|
+
describe("Modifier.pressable", () => {
|
|
103
|
+
it("toProps exposes onMouseDown and onMouseUp", () => {
|
|
104
|
+
const source = new MutableInteractionSource();
|
|
105
|
+
const props = Modifier.pressable(source).toProps();
|
|
106
|
+
expect(typeof props.onMouseDown).toBe("function");
|
|
107
|
+
expect(typeof props.onMouseUp).toBe("function");
|
|
108
|
+
});
|
|
109
|
+
it("onMouseDown triggers _handleMouseDown with coordinates", () => {
|
|
110
|
+
const source = new MutableInteractionSource();
|
|
111
|
+
const { onMouseDown } = Modifier.pressable(source).toProps();
|
|
112
|
+
onMouseDown({ clientX: 42, clientY: 7 });
|
|
113
|
+
const i = source.getInteractions()[0];
|
|
114
|
+
expect(i.type).toBe("press.press");
|
|
115
|
+
if (i.type === "press.press") {
|
|
116
|
+
expect(i.x).toBe(42);
|
|
117
|
+
expect(i.y).toBe(7);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
it("onMouseUp triggers _handleMouseUp", () => {
|
|
121
|
+
const source = new MutableInteractionSource();
|
|
122
|
+
const { onMouseDown, onMouseUp } = Modifier.pressable(source).toProps();
|
|
123
|
+
onMouseDown({ clientX: 0, clientY: 0 });
|
|
124
|
+
onMouseUp();
|
|
125
|
+
expect(source.getInteractions()).toHaveLength(0);
|
|
126
|
+
});
|
|
127
|
+
it("onMouseLeave also cancels the press", () => {
|
|
128
|
+
const source = new MutableInteractionSource();
|
|
129
|
+
const { onMouseDown, onMouseLeave } = Modifier.pressable(source).toProps();
|
|
130
|
+
onMouseDown({ clientX: 0, clientY: 0 });
|
|
131
|
+
onMouseLeave();
|
|
132
|
+
expect(source.getInteractions()).toHaveLength(0);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
// ── combining modifiers on one source ─────────────────────────────────────────
|
|
136
|
+
describe("Modifier — combining hoverable + focusable + pressable on one source", () => {
|
|
137
|
+
it("all three handlers are present", () => {
|
|
138
|
+
const source = new MutableInteractionSource();
|
|
139
|
+
const props = Modifier.hoverable(source).focusable(source).pressable(source).toProps();
|
|
140
|
+
expect(typeof props.onMouseEnter).toBe("function");
|
|
141
|
+
expect(typeof props.onMouseLeave).toBe("function");
|
|
142
|
+
expect(typeof props.onFocus).toBe("function");
|
|
143
|
+
expect(typeof props.onBlur).toBe("function");
|
|
144
|
+
expect(typeof props.onMouseDown).toBe("function");
|
|
145
|
+
expect(typeof props.onMouseUp).toBe("function");
|
|
146
|
+
});
|
|
147
|
+
it("onMouseLeave cancels both hover and press when both are active", () => {
|
|
148
|
+
const source = new MutableInteractionSource();
|
|
149
|
+
const props = Modifier.hoverable(source).pressable(source).toProps();
|
|
150
|
+
props.onMouseEnter();
|
|
151
|
+
props.onMouseDown({ clientX: 0, clientY: 0 });
|
|
152
|
+
expect(source.getInteractions()).toHaveLength(2);
|
|
153
|
+
props.onMouseLeave();
|
|
154
|
+
expect(source.getInteractions()).toHaveLength(0);
|
|
155
|
+
});
|
|
156
|
+
it("interaction source is preserved through style chain", () => {
|
|
157
|
+
const source = new MutableInteractionSource();
|
|
158
|
+
const props = Modifier.hoverable(source).background("#fff").padding(8).toProps();
|
|
159
|
+
expect(typeof props.onMouseEnter).toBe("function");
|
|
160
|
+
expect(props.style?.backgroundColor).toBe("#fff");
|
|
161
|
+
expect(props.style?.padding).toBe("8px");
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
// ── then() with interaction sources ──────────────────────────────────────────
|
|
165
|
+
describe("Modifier.then — interaction source merging", () => {
|
|
166
|
+
it("then() inherits interaction source from left when right has none", () => {
|
|
167
|
+
const source = new MutableInteractionSource();
|
|
168
|
+
const merged = Modifier.hoverable(source).then(Modifier.background("#fff"));
|
|
169
|
+
const props = merged.toProps();
|
|
170
|
+
expect(typeof props.onMouseEnter).toBe("function");
|
|
171
|
+
});
|
|
172
|
+
it("then() prefers right-hand interaction source", () => {
|
|
173
|
+
const a = new MutableInteractionSource();
|
|
174
|
+
const b = new MutableInteractionSource();
|
|
175
|
+
const merged = Modifier.hoverable(a).then(Modifier.hoverable(b));
|
|
176
|
+
const props = merged.toProps();
|
|
177
|
+
props.onMouseEnter();
|
|
178
|
+
expect(b.getInteractions()[0]?.type).toBe("hover.enter");
|
|
179
|
+
expect(a.getInteractions()).toHaveLength(0);
|
|
180
|
+
});
|
|
181
|
+
it("then() merges flags from both sides", () => {
|
|
182
|
+
const source = new MutableInteractionSource();
|
|
183
|
+
const merged = Modifier.hoverable(source).then(Modifier.focusable(source));
|
|
184
|
+
const props = merged.toProps();
|
|
185
|
+
expect(typeof props.onMouseEnter).toBe("function");
|
|
186
|
+
expect(typeof props.onFocus).toBe("function");
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
//# sourceMappingURL=modifier.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modifier.test.js","sourceRoot":"","sources":["../../src/__tests__/modifier.test.ts"],"names":[],"mappings":"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"}
|
package/dist/button.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../src/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACtC;AAED,sBAAsB;AACtB,wBAAgB,MAAM,CACpB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAc,EAAE,IAAe,EAAE,EAAE,WAAW,EAC1F,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,GAC3B,KAAK,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../src/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACtC;AAED,sBAAsB;AACtB,wBAAgB,MAAM,CACpB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAc,EAAE,IAAe,EAAE,EAAE,WAAW,EAC1F,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,GAC3B,KAAK,CAAC,YAAY,CAuBpB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,iCAAiC;AACjC,wBAAgB,UAAU,CACxB,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAc,EAAE,IAAe,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,eAAe,EAC3G,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,GAC3B,KAAK,CAAC,YAAY,CAuBpB"}
|
package/dist/button.js
CHANGED
|
@@ -6,6 +6,12 @@ export function Button({ text, innerHTML: html, onClick, modifier, enabled = tru
|
|
|
6
6
|
type,
|
|
7
7
|
disabled: !enabled,
|
|
8
8
|
onClick: enabled ? onClick : undefined,
|
|
9
|
+
onMouseEnter: modProps.onMouseEnter,
|
|
10
|
+
onMouseLeave: modProps.onMouseLeave,
|
|
11
|
+
onFocus: modProps.onFocus,
|
|
12
|
+
onBlur: modProps.onBlur,
|
|
13
|
+
onMouseDown: modProps.onMouseDown,
|
|
14
|
+
onMouseUp: modProps.onMouseUp,
|
|
9
15
|
className: modProps.className,
|
|
10
16
|
style: modProps.style,
|
|
11
17
|
};
|
|
@@ -25,6 +31,12 @@ export function IconButton({ innerHTML, onClick, modifier, enabled = true, type
|
|
|
25
31
|
type,
|
|
26
32
|
disabled: !enabled,
|
|
27
33
|
onClick: enabled ? onClick : undefined,
|
|
34
|
+
onMouseEnter: modProps.onMouseEnter,
|
|
35
|
+
onMouseLeave: modProps.onMouseLeave,
|
|
36
|
+
onFocus: modProps.onFocus,
|
|
37
|
+
onBlur: modProps.onBlur,
|
|
38
|
+
onMouseDown: modProps.onMouseDown,
|
|
39
|
+
onMouseUp: modProps.onMouseUp,
|
|
28
40
|
className: modProps.className,
|
|
29
41
|
style: modProps.style,
|
|
30
42
|
"aria-label": ariaLabel,
|
package/dist/button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sourceRoot":"","sources":["../src/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAe1B,sBAAsB;AACtB,MAAM,UAAU,MAAM,CACpB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAe,EAC1F,QAA4B;IAE5B,MAAM,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG;QAChB,IAAI;QACJ,QAAQ,EAAE,CAAC,OAAO;QAClB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACtC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK,EAAE,QAAQ,CAAC,KAA4B;KAC7C,CAAC;IACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;YACnC,GAAG,SAAS;YACZ,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,UAAU,GAAsB,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACrF,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC;AACjE,CAAC;AAWD,iCAAiC;AACjC,MAAM,UAAU,UAAU,CACxB,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAmB,EAC3G,QAA4B;IAE5B,MAAM,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG;QAChB,IAAI;QACJ,QAAQ,EAAE,CAAC,OAAO;QAClB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACtC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK,EAAE,QAAQ,CAAC,KAA4B;QAC5C,YAAY,EAAE,SAAS;KACxB,CAAC;IACF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;YACnC,GAAG,SAAS;YACZ,uBAAuB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;SAC/C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC"}
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../src/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAe1B,sBAAsB;AACtB,MAAM,UAAU,MAAM,CACpB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAe,EAC1F,QAA4B;IAE5B,MAAM,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG;QAChB,IAAI;QACJ,QAAQ,EAAE,CAAC,OAAO;QAClB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACtC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK,EAAE,QAAQ,CAAC,KAA4B;KAC7C,CAAC;IACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;YACnC,GAAG,SAAS;YACZ,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,UAAU,GAAsB,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACrF,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC;AACjE,CAAC;AAWD,iCAAiC;AACjC,MAAM,UAAU,UAAU,CACxB,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAmB,EAC3G,QAA4B;IAE5B,MAAM,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG;QAChB,IAAI;QACJ,QAAQ,EAAE,CAAC,OAAO;QAClB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACtC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK,EAAE,QAAQ,CAAC,KAA4B;QAC5C,YAAY,EAAE,SAAS;KACxB,CAAC;IACF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;YACnC,GAAG,SAAS;YACZ,uBAAuB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;SAC/C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC"}
|
package/dist/canvas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../src/canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACjI,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC1E,2DAA2D;IAC3D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD,8BAA8B;AAC9B,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,KAAK,EACL,MAAM,EACN,IAAI,EACJ,eAAsB,EACtB,UAAU,EACV,SAAS,EACT,GAAG,QAAQ,EACZ,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../src/canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACjI,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC1E,2DAA2D;IAC3D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD,8BAA8B;AAC9B,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,KAAK,EACL,MAAM,EACN,IAAI,EACJ,eAAsB,EACtB,UAAU,EACV,SAAS,EACT,GAAG,QAAQ,EACZ,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CA0DlC"}
|
package/dist/canvas.js
CHANGED
|
@@ -46,6 +46,12 @@ export function Canvas({ modifier, width, height, draw, clearBeforeDraw = true,
|
|
|
46
46
|
ref,
|
|
47
47
|
...domProps,
|
|
48
48
|
className: joinClassNames(modProps.className, className),
|
|
49
|
+
onMouseEnter: modProps.onMouseEnter,
|
|
50
|
+
onMouseLeave: modProps.onMouseLeave,
|
|
51
|
+
onFocus: modProps.onFocus,
|
|
52
|
+
onBlur: modProps.onBlur,
|
|
53
|
+
onMouseDown: modProps.onMouseDown,
|
|
54
|
+
onMouseUp: modProps.onMouseUp,
|
|
49
55
|
style: {
|
|
50
56
|
width: width !== undefined ? `${width}px` : undefined,
|
|
51
57
|
height: height !== undefined ? `${height}px` : undefined,
|
package/dist/canvas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../src/canvas.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../src/canvas.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { Modifier, applyModifier } from "./modifier.js";
|
|
2
2
|
export type { CSSProperties } from "./modifier.js";
|
|
3
|
+
export { MutableInteractionSource, useMutableInteractionSource, useIsHovered, useIsPressed, useIsFocused } from "./interaction.js";
|
|
4
|
+
export type { InteractionSource, Interaction, HoverInteraction, PressInteraction, FocusInteraction } from "./interaction.js";
|
|
3
5
|
export { Color } from "./colors.js";
|
|
4
6
|
export type { ColorValue } from "./colors.js";
|
|
5
7
|
export { Column, Row, Box } from "./layout.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG3F,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG/E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,SAAS,EACT,cAAc,EACd,eAAe,EACf,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnI,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE7H,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG3F,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG/E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,SAAS,EACT,cAAc,EACd,eAAe,EACf,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
// import @jalvin/ui.Button
|
|
7
7
|
// import @jalvin/ui.Modifier
|
|
8
8
|
export { Modifier, applyModifier } from "./modifier.js";
|
|
9
|
+
export { MutableInteractionSource, useMutableInteractionSource, useIsHovered, useIsPressed, useIsFocused } from "./interaction.js";
|
|
9
10
|
export { Color } from "./colors.js";
|
|
10
11
|
// Layout
|
|
11
12
|
export { Column, Row, Box } from "./layout.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,EAAE;AACF,qCAAqC;AACrC,6BAA6B;AAC7B,0BAA0B;AAC1B,6BAA6B;AAC7B,+BAA+B;AAE/B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAG/C,UAAU;AACV,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO;AACP,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAQ/B,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,mBAAmB;AACnB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG9C,qBAAqB;AACrB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,EAAE;AACF,qCAAqC;AACrC,6BAA6B;AAC7B,0BAA0B;AAC1B,6BAA6B;AAC7B,+BAA+B;AAE/B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGnI,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAG/C,UAAU;AACV,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO;AACP,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAQ/B,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,mBAAmB;AACnB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG9C,qBAAqB;AACrB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/** Interactions emitted when the pointer enters or leaves a component. */
|
|
2
|
+
export declare namespace HoverInteraction {
|
|
3
|
+
interface Enter {
|
|
4
|
+
readonly type: "hover.enter";
|
|
5
|
+
}
|
|
6
|
+
interface Exit {
|
|
7
|
+
readonly type: "hover.exit";
|
|
8
|
+
readonly enter: Enter;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
/** Interactions emitted on pointer press, release, or cancel. */
|
|
12
|
+
export declare namespace PressInteraction {
|
|
13
|
+
interface Press {
|
|
14
|
+
readonly type: "press.press";
|
|
15
|
+
readonly x: number;
|
|
16
|
+
readonly y: number;
|
|
17
|
+
}
|
|
18
|
+
interface Release {
|
|
19
|
+
readonly type: "press.release";
|
|
20
|
+
readonly press: Press;
|
|
21
|
+
}
|
|
22
|
+
interface Cancel {
|
|
23
|
+
readonly type: "press.cancel";
|
|
24
|
+
readonly press: Press;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** Interactions emitted when the component gains or loses keyboard focus. */
|
|
28
|
+
export declare namespace FocusInteraction {
|
|
29
|
+
interface Focus {
|
|
30
|
+
readonly type: "focus.focus";
|
|
31
|
+
}
|
|
32
|
+
interface Unfocus {
|
|
33
|
+
readonly type: "focus.unfocus";
|
|
34
|
+
readonly focus: Focus;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** Union of all interaction types. */
|
|
38
|
+
export type Interaction = HoverInteraction.Enter | HoverInteraction.Exit | PressInteraction.Press | PressInteraction.Release | PressInteraction.Cancel | FocusInteraction.Focus | FocusInteraction.Unfocus;
|
|
39
|
+
/**
|
|
40
|
+
* Read-only view of the currently active (unresolved) interactions on a
|
|
41
|
+
* component. Subscribe to be notified whenever the set changes.
|
|
42
|
+
*/
|
|
43
|
+
export interface InteractionSource {
|
|
44
|
+
/** All interactions that have been emitted but not yet resolved. */
|
|
45
|
+
getInteractions(): ReadonlyArray<Interaction>;
|
|
46
|
+
/**
|
|
47
|
+
* Register a listener invoked after every state change.
|
|
48
|
+
* Returns an unsubscribe function.
|
|
49
|
+
*/
|
|
50
|
+
subscribe(listener: () => void): () => void;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Mutable implementation of {@link InteractionSource}.
|
|
54
|
+
*
|
|
55
|
+
* Create one with {@link useMutableInteractionSource} and attach it to a
|
|
56
|
+
* component via {@link Modifier.hoverable}, {@link Modifier.focusable}, or
|
|
57
|
+
* {@link Modifier.pressable}. All three modifiers write into the same source,
|
|
58
|
+
* so a single source describes the full interaction state of the element.
|
|
59
|
+
*/
|
|
60
|
+
export declare class MutableInteractionSource implements InteractionSource {
|
|
61
|
+
private _interactions;
|
|
62
|
+
private readonly _listeners;
|
|
63
|
+
private _currentHover;
|
|
64
|
+
private _currentFocus;
|
|
65
|
+
private _currentPress;
|
|
66
|
+
getInteractions(): ReadonlyArray<Interaction>;
|
|
67
|
+
subscribe(listener: () => void): () => void;
|
|
68
|
+
/** @internal */
|
|
69
|
+
_handleMouseEnter(): void;
|
|
70
|
+
/** @internal */
|
|
71
|
+
_handleMouseLeave(): void;
|
|
72
|
+
/** @internal */
|
|
73
|
+
_handleFocus(): void;
|
|
74
|
+
/** @internal */
|
|
75
|
+
_handleBlur(): void;
|
|
76
|
+
/** @internal */
|
|
77
|
+
_handleMouseDown(x: number, y: number): void;
|
|
78
|
+
/** @internal */
|
|
79
|
+
_handleMouseUp(): void;
|
|
80
|
+
/** @internal */
|
|
81
|
+
_handlePressCancel(): void;
|
|
82
|
+
private _emit;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Creates and remembers a {@link MutableInteractionSource} for the lifetime
|
|
86
|
+
* of the component. Equivalent to `remember { MutableInteractionSource() }`.
|
|
87
|
+
*/
|
|
88
|
+
export declare function useMutableInteractionSource(): MutableInteractionSource;
|
|
89
|
+
/**
|
|
90
|
+
* Returns `true` while the pointer is inside the bounds of the component
|
|
91
|
+
* attached to `source` via `Modifier.hoverable(source)`.
|
|
92
|
+
*/
|
|
93
|
+
export declare function useIsHovered(source: InteractionSource): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Returns `true` while the component attached to `source` has keyboard focus.
|
|
96
|
+
*/
|
|
97
|
+
export declare function useIsFocused(source: InteractionSource): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Returns `true` while the user is pressing down on the component attached to
|
|
100
|
+
* `source` via `Modifier.pressable(source)`.
|
|
101
|
+
*/
|
|
102
|
+
export declare function useIsPressed(source: InteractionSource): boolean;
|
|
103
|
+
//# sourceMappingURL=interaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../src/interaction.ts"],"names":[],"mappings":"AAkBA,0EAA0E;AAC1E,yBAAiB,gBAAgB,CAAC;IAChC,UAAiB,KAAK;QAAG,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;KAAE;IACvD,UAAiB,IAAI;QAAI,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;KAAE;CAC/E;AAED,iEAAiE;AACjE,yBAAiB,gBAAgB,CAAC;IAChC,UAAiB,KAAK;QAAK,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;QAAG,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE;IACnG,UAAiB,OAAO;QAAG,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;KAAE;IAClF,UAAiB,MAAM;QAAI,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;KAAE;CACnF;AAED,6EAA6E;AAC7E,yBAAiB,gBAAgB,CAAC;IAChC,UAAiB,KAAK;QAAK,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;KAAE;IACzD,UAAiB,OAAO;QAAG,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;KAAE;CACnF;AAED,sCAAsC;AACtC,MAAM,MAAM,WAAW,GACnB,gBAAgB,CAAC,KAAK,GACtB,gBAAgB,CAAC,IAAI,GACrB,gBAAgB,CAAC,KAAK,GACtB,gBAAgB,CAAC,OAAO,GACxB,gBAAgB,CAAC,MAAM,GACvB,gBAAgB,CAAC,KAAK,GACtB,gBAAgB,CAAC,OAAO,CAAC;AAI7B;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,eAAe,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7C;AAID;;;;;;;GAOG;AACH,qBAAa,wBAAyB,YAAW,iBAAiB;IAChE,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IAGpD,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,aAAa,CAAuC;IAI5D,eAAe,IAAI,aAAa,CAAC,WAAW,CAAC;IAI7C,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAO3C,gBAAgB;IAChB,iBAAiB,IAAI,IAAI;IAMzB,gBAAgB;IAChB,iBAAiB,IAAI,IAAI;IAOzB,gBAAgB;IAChB,YAAY,IAAI,IAAI;IAMpB,gBAAgB;IAChB,WAAW,IAAI,IAAI;IAOnB,gBAAgB;IAChB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAM5C,gBAAgB;IAChB,cAAc,IAAI,IAAI;IAOtB,gBAAgB;IAChB,kBAAkB,IAAI,IAAI;IAS1B,OAAO,CAAC,KAAK;CAkBd;AAID;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,wBAAwB,CAItE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAW/D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAW/D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAW/D"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
2
|
+
// Interaction — general-purpose interaction state tracking
|
|
3
|
+
//
|
|
4
|
+
// A single MutableInteractionSource aggregates hover, focus, and press state
|
|
5
|
+
// for one component. Multiple modifiers (hoverable, focusable, pressable) all
|
|
6
|
+
// emit into the same source, so you can derive any combination of states:
|
|
7
|
+
//
|
|
8
|
+
// const source = useMutableInteractionSource();
|
|
9
|
+
// const isHovered = useIsHovered(source);
|
|
10
|
+
// const isPressed = useIsPressed(source);
|
|
11
|
+
//
|
|
12
|
+
// Box({ modifier: Modifier.hoverable(source).pressable(source) }) { ... }
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
14
|
+
import { useState, useEffect, useRef } from "react";
|
|
15
|
+
// ── MutableInteractionSource ─────────────────────────────────────────────────
|
|
16
|
+
/**
|
|
17
|
+
* Mutable implementation of {@link InteractionSource}.
|
|
18
|
+
*
|
|
19
|
+
* Create one with {@link useMutableInteractionSource} and attach it to a
|
|
20
|
+
* component via {@link Modifier.hoverable}, {@link Modifier.focusable}, or
|
|
21
|
+
* {@link Modifier.pressable}. All three modifiers write into the same source,
|
|
22
|
+
* so a single source describes the full interaction state of the element.
|
|
23
|
+
*/
|
|
24
|
+
export class MutableInteractionSource {
|
|
25
|
+
_interactions = [];
|
|
26
|
+
_listeners = new Set();
|
|
27
|
+
// ── active interaction tracking ─────────────────────────────────────────
|
|
28
|
+
_currentHover = null;
|
|
29
|
+
_currentFocus = null;
|
|
30
|
+
_currentPress = null;
|
|
31
|
+
// ── InteractionSource ────────────────────────────────────────────────────
|
|
32
|
+
getInteractions() {
|
|
33
|
+
return this._interactions;
|
|
34
|
+
}
|
|
35
|
+
subscribe(listener) {
|
|
36
|
+
this._listeners.add(listener);
|
|
37
|
+
return () => this._listeners.delete(listener);
|
|
38
|
+
}
|
|
39
|
+
// ── Internal DOM event handlers (called by Modifier) ─────────────────────
|
|
40
|
+
/** @internal */
|
|
41
|
+
_handleMouseEnter() {
|
|
42
|
+
const enter = { type: "hover.enter" };
|
|
43
|
+
this._currentHover = enter;
|
|
44
|
+
this._emit(enter);
|
|
45
|
+
}
|
|
46
|
+
/** @internal */
|
|
47
|
+
_handleMouseLeave() {
|
|
48
|
+
if (this._currentHover) {
|
|
49
|
+
this._emit({ type: "hover.exit", enter: this._currentHover });
|
|
50
|
+
this._currentHover = null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/** @internal */
|
|
54
|
+
_handleFocus() {
|
|
55
|
+
const focus = { type: "focus.focus" };
|
|
56
|
+
this._currentFocus = focus;
|
|
57
|
+
this._emit(focus);
|
|
58
|
+
}
|
|
59
|
+
/** @internal */
|
|
60
|
+
_handleBlur() {
|
|
61
|
+
if (this._currentFocus) {
|
|
62
|
+
this._emit({ type: "focus.unfocus", focus: this._currentFocus });
|
|
63
|
+
this._currentFocus = null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/** @internal */
|
|
67
|
+
_handleMouseDown(x, y) {
|
|
68
|
+
const press = { type: "press.press", x, y };
|
|
69
|
+
this._currentPress = press;
|
|
70
|
+
this._emit(press);
|
|
71
|
+
}
|
|
72
|
+
/** @internal */
|
|
73
|
+
_handleMouseUp() {
|
|
74
|
+
if (this._currentPress) {
|
|
75
|
+
this._emit({ type: "press.release", press: this._currentPress });
|
|
76
|
+
this._currentPress = null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/** @internal */
|
|
80
|
+
_handlePressCancel() {
|
|
81
|
+
if (this._currentPress) {
|
|
82
|
+
this._emit({ type: "press.cancel", press: this._currentPress });
|
|
83
|
+
this._currentPress = null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// ── Private ──────────────────────────────────────────────────────────────
|
|
87
|
+
_emit(interaction) {
|
|
88
|
+
// "exit" interactions remove their paired "enter" from the active set.
|
|
89
|
+
if (interaction.type === "hover.exit" ||
|
|
90
|
+
interaction.type === "press.release" ||
|
|
91
|
+
interaction.type === "press.cancel" ||
|
|
92
|
+
interaction.type === "focus.unfocus") {
|
|
93
|
+
const paired = interaction.type === "hover.exit" ? interaction.enter :
|
|
94
|
+
interaction.type === "focus.unfocus" ? interaction.focus :
|
|
95
|
+
interaction.press;
|
|
96
|
+
this._interactions = this._interactions.filter(i => i !== paired);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
this._interactions = [...this._interactions, interaction];
|
|
100
|
+
}
|
|
101
|
+
this._listeners.forEach(l => l());
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// ── Hooks ────────────────────────────────────────────────────────────────────
|
|
105
|
+
/**
|
|
106
|
+
* Creates and remembers a {@link MutableInteractionSource} for the lifetime
|
|
107
|
+
* of the component. Equivalent to `remember { MutableInteractionSource() }`.
|
|
108
|
+
*/
|
|
109
|
+
export function useMutableInteractionSource() {
|
|
110
|
+
const ref = useRef(null);
|
|
111
|
+
if (ref.current === null)
|
|
112
|
+
ref.current = new MutableInteractionSource();
|
|
113
|
+
return ref.current;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Returns `true` while the pointer is inside the bounds of the component
|
|
117
|
+
* attached to `source` via `Modifier.hoverable(source)`.
|
|
118
|
+
*/
|
|
119
|
+
export function useIsHovered(source) {
|
|
120
|
+
const [val, setVal] = useState(() => source.getInteractions().some(i => i.type === "hover.enter"));
|
|
121
|
+
useEffect(() => {
|
|
122
|
+
setVal(source.getInteractions().some(i => i.type === "hover.enter"));
|
|
123
|
+
return source.subscribe(() => setVal(source.getInteractions().some(i => i.type === "hover.enter")));
|
|
124
|
+
}, [source]);
|
|
125
|
+
return val;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Returns `true` while the component attached to `source` has keyboard focus.
|
|
129
|
+
*/
|
|
130
|
+
export function useIsFocused(source) {
|
|
131
|
+
const [val, setVal] = useState(() => source.getInteractions().some(i => i.type === "focus.focus"));
|
|
132
|
+
useEffect(() => {
|
|
133
|
+
setVal(source.getInteractions().some(i => i.type === "focus.focus"));
|
|
134
|
+
return source.subscribe(() => setVal(source.getInteractions().some(i => i.type === "focus.focus")));
|
|
135
|
+
}, [source]);
|
|
136
|
+
return val;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Returns `true` while the user is pressing down on the component attached to
|
|
140
|
+
* `source` via `Modifier.pressable(source)`.
|
|
141
|
+
*/
|
|
142
|
+
export function useIsPressed(source) {
|
|
143
|
+
const [val, setVal] = useState(() => source.getInteractions().some(i => i.type === "press.press"));
|
|
144
|
+
useEffect(() => {
|
|
145
|
+
setVal(source.getInteractions().some(i => i.type === "press.press"));
|
|
146
|
+
return source.subscribe(() => setVal(source.getInteractions().some(i => i.type === "press.press")));
|
|
147
|
+
}, [source]);
|
|
148
|
+
return val;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=interaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction.js","sourceRoot":"","sources":["../src/interaction.ts"],"names":[],"mappings":"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"}
|
package/dist/modifier.d.ts
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
export type CSSProperties = {
|
|
2
2
|
[key: string]: string | number | undefined;
|
|
3
3
|
};
|
|
4
|
+
import type { MutableInteractionSource } from "./interaction.js";
|
|
5
|
+
interface InteractionFlags {
|
|
6
|
+
readonly hover: boolean;
|
|
7
|
+
readonly focus: boolean;
|
|
8
|
+
readonly press: boolean;
|
|
9
|
+
}
|
|
4
10
|
export declare class Modifier {
|
|
5
11
|
readonly _styles: CSSProperties;
|
|
6
12
|
readonly _classNames: ReadonlyArray<string>;
|
|
13
|
+
readonly _interactionSource: MutableInteractionSource | undefined;
|
|
14
|
+
readonly _interactionFlags: InteractionFlags;
|
|
7
15
|
private constructor();
|
|
8
16
|
static get Default(): Modifier;
|
|
9
17
|
static fillMaxWidth(): Modifier;
|
|
@@ -29,6 +37,35 @@ export declare class Modifier {
|
|
|
29
37
|
static marginLeft(v: number | string): Modifier;
|
|
30
38
|
static marginRight(v: number | string): Modifier;
|
|
31
39
|
private with;
|
|
40
|
+
/**
|
|
41
|
+
* Tracks pointer enter/leave on this component, emitting
|
|
42
|
+
* `HoverInteraction.Enter` and `HoverInteraction.Exit` into `source`.
|
|
43
|
+
* Read the current state with `useIsHovered(source)`.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```tsx
|
|
47
|
+
* const source = useMutableInteractionSource();
|
|
48
|
+
* const isHovered = useIsHovered(source);
|
|
49
|
+
* Box({ modifier: Modifier.hoverable(source).background(isHovered ? "#eee" : "#fff") })
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
hoverable(source: MutableInteractionSource): Modifier;
|
|
53
|
+
/**
|
|
54
|
+
* Tracks keyboard focus on this component, emitting
|
|
55
|
+
* `FocusInteraction.Focus` and `FocusInteraction.Unfocus` into `source`.
|
|
56
|
+
* Read the current state with `useIsFocused(source)`.
|
|
57
|
+
*/
|
|
58
|
+
focusable(source: MutableInteractionSource): Modifier;
|
|
59
|
+
/**
|
|
60
|
+
* Tracks pointer press/release on this component, emitting
|
|
61
|
+
* `PressInteraction.Press`, `PressInteraction.Release`, and
|
|
62
|
+
* `PressInteraction.Cancel` into `source`.
|
|
63
|
+
* Read the current state with `useIsPressed(source)`.
|
|
64
|
+
*/
|
|
65
|
+
pressable(source: MutableInteractionSource): Modifier;
|
|
66
|
+
static hoverable(source: MutableInteractionSource): Modifier;
|
|
67
|
+
static focusable(source: MutableInteractionSource): Modifier;
|
|
68
|
+
static pressable(source: MutableInteractionSource): Modifier;
|
|
32
69
|
fillMaxWidth(): Modifier;
|
|
33
70
|
fillMaxHeight(): Modifier;
|
|
34
71
|
fillMaxSize(): Modifier;
|
|
@@ -87,12 +124,22 @@ export declare class Modifier {
|
|
|
87
124
|
className(name: string): Modifier;
|
|
88
125
|
/** Merge another Modifier on top of this one. */
|
|
89
126
|
then(other: Modifier): Modifier;
|
|
90
|
-
/** Extract style
|
|
127
|
+
/** Extract style, className, and interaction event handler props for spreading onto an element. */
|
|
91
128
|
toProps(): {
|
|
92
129
|
style?: CSSProperties;
|
|
93
130
|
className?: string;
|
|
131
|
+
onMouseEnter?: () => void;
|
|
132
|
+
onMouseLeave?: () => void;
|
|
133
|
+
onFocus?: () => void;
|
|
134
|
+
onBlur?: () => void;
|
|
135
|
+
onMouseDown?: (e: {
|
|
136
|
+
clientX: number;
|
|
137
|
+
clientY: number;
|
|
138
|
+
}) => void;
|
|
139
|
+
onMouseUp?: () => void;
|
|
94
140
|
};
|
|
95
141
|
}
|
|
96
|
-
/** Apply a Modifier's styles and
|
|
142
|
+
/** Apply a Modifier's styles, className, and interaction handlers to a DOM element. */
|
|
97
143
|
export declare function applyModifier(el: HTMLElement, mod: Modifier): void;
|
|
144
|
+
export {};
|
|
98
145
|
//# sourceMappingURL=modifier.d.ts.map
|
package/dist/modifier.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modifier.d.ts","sourceRoot":"","sources":["../src/modifier.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,aAAa,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE3E,qBAAa,QAAQ;IACnB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"modifier.d.ts","sourceRoot":"","sources":["../src/modifier.ts"],"names":[],"mappings":"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"}
|
package/dist/modifier.js
CHANGED
|
@@ -8,12 +8,17 @@
|
|
|
8
8
|
// Example:
|
|
9
9
|
// Modifier.fillMaxWidth().padding(16).background(Color.Surface)
|
|
10
10
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
11
|
+
const NO_FLAGS = { hover: false, focus: false, press: false };
|
|
11
12
|
export class Modifier {
|
|
12
13
|
_styles;
|
|
13
14
|
_classNames;
|
|
14
|
-
|
|
15
|
+
_interactionSource;
|
|
16
|
+
_interactionFlags;
|
|
17
|
+
constructor(styles = {}, classNames = [], interactionSource, interactionFlags = NO_FLAGS) {
|
|
15
18
|
this._styles = styles;
|
|
16
19
|
this._classNames = classNames;
|
|
20
|
+
this._interactionSource = interactionSource;
|
|
21
|
+
this._interactionFlags = interactionFlags;
|
|
17
22
|
}
|
|
18
23
|
// ── Static factory helpers ─────────────────────────────────────────────────
|
|
19
24
|
static get Default() { return new Modifier(); }
|
|
@@ -41,8 +46,43 @@ export class Modifier {
|
|
|
41
46
|
static marginRight(v) { return new Modifier().marginRight(v); }
|
|
42
47
|
// ── Fluent instance methods ────────────────────────────────────────────────
|
|
43
48
|
with(extra) {
|
|
44
|
-
return new Modifier({ ...this._styles, ...extra }, [...this._classNames]);
|
|
45
|
-
}
|
|
49
|
+
return new Modifier({ ...this._styles, ...extra }, [...this._classNames], this._interactionSource, this._interactionFlags);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Tracks pointer enter/leave on this component, emitting
|
|
53
|
+
* `HoverInteraction.Enter` and `HoverInteraction.Exit` into `source`.
|
|
54
|
+
* Read the current state with `useIsHovered(source)`.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```tsx
|
|
58
|
+
* const source = useMutableInteractionSource();
|
|
59
|
+
* const isHovered = useIsHovered(source);
|
|
60
|
+
* Box({ modifier: Modifier.hoverable(source).background(isHovered ? "#eee" : "#fff") })
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
hoverable(source) {
|
|
64
|
+
return new Modifier({ ...this._styles }, [...this._classNames], source, { ...this._interactionFlags, hover: true });
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Tracks keyboard focus on this component, emitting
|
|
68
|
+
* `FocusInteraction.Focus` and `FocusInteraction.Unfocus` into `source`.
|
|
69
|
+
* Read the current state with `useIsFocused(source)`.
|
|
70
|
+
*/
|
|
71
|
+
focusable(source) {
|
|
72
|
+
return new Modifier({ ...this._styles }, [...this._classNames], source, { ...this._interactionFlags, focus: true });
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Tracks pointer press/release on this component, emitting
|
|
76
|
+
* `PressInteraction.Press`, `PressInteraction.Release`, and
|
|
77
|
+
* `PressInteraction.Cancel` into `source`.
|
|
78
|
+
* Read the current state with `useIsPressed(source)`.
|
|
79
|
+
*/
|
|
80
|
+
pressable(source) {
|
|
81
|
+
return new Modifier({ ...this._styles }, [...this._classNames], source, { ...this._interactionFlags, press: true });
|
|
82
|
+
}
|
|
83
|
+
static hoverable(source) { return new Modifier().hoverable(source); }
|
|
84
|
+
static focusable(source) { return new Modifier().focusable(source); }
|
|
85
|
+
static pressable(source) { return new Modifier().pressable(source); }
|
|
46
86
|
fillMaxWidth() { return this.with({ width: "100%" }); }
|
|
47
87
|
fillMaxHeight() { return this.with({ height: "100%" }); }
|
|
48
88
|
fillMaxSize() { return this.with({ width: "100%", height: "100%" }); }
|
|
@@ -157,23 +197,41 @@ export class Modifier {
|
|
|
157
197
|
transform(v) { return this.with({ transform: v }); }
|
|
158
198
|
/** Append an additional CSS class name. */
|
|
159
199
|
className(name) {
|
|
160
|
-
return new Modifier(this._styles, [...this._classNames, name]);
|
|
200
|
+
return new Modifier(this._styles, [...this._classNames, name], this._interactionSource, this._interactionFlags);
|
|
161
201
|
}
|
|
162
202
|
/** Merge another Modifier on top of this one. */
|
|
163
203
|
then(other) {
|
|
164
|
-
return new Modifier({ ...this._styles, ...other._styles }, [...this._classNames, ...other._classNames]
|
|
204
|
+
return new Modifier({ ...this._styles, ...other._styles }, [...this._classNames, ...other._classNames], other._interactionSource ?? this._interactionSource, {
|
|
205
|
+
hover: this._interactionFlags.hover || other._interactionFlags.hover,
|
|
206
|
+
focus: this._interactionFlags.focus || other._interactionFlags.focus,
|
|
207
|
+
press: this._interactionFlags.press || other._interactionFlags.press,
|
|
208
|
+
});
|
|
165
209
|
}
|
|
166
|
-
/** Extract style
|
|
210
|
+
/** Extract style, className, and interaction event handler props for spreading onto an element. */
|
|
167
211
|
toProps() {
|
|
168
212
|
const hasStyles = Object.keys(this._styles).length > 0;
|
|
169
213
|
const hasClasses = this._classNames.length > 0;
|
|
214
|
+
const s = this._interactionSource;
|
|
215
|
+
const f = this._interactionFlags;
|
|
216
|
+
// onMouseLeave may need to combine hover exit AND press cancel.
|
|
217
|
+
const mouseLeaveHandlers = [];
|
|
218
|
+
if (s && f.hover)
|
|
219
|
+
mouseLeaveHandlers.push(() => s._handleMouseLeave());
|
|
220
|
+
if (s && f.press)
|
|
221
|
+
mouseLeaveHandlers.push(() => s._handlePressCancel());
|
|
170
222
|
return {
|
|
171
223
|
style: hasStyles ? this._styles : undefined,
|
|
172
224
|
className: hasClasses ? this._classNames.join(" ") : undefined,
|
|
225
|
+
onMouseEnter: (s && f.hover) ? () => s._handleMouseEnter() : undefined,
|
|
226
|
+
onMouseLeave: mouseLeaveHandlers.length > 0 ? () => mouseLeaveHandlers.forEach(h => h()) : undefined,
|
|
227
|
+
onFocus: (s && f.focus) ? () => s._handleFocus() : undefined,
|
|
228
|
+
onBlur: (s && f.focus) ? () => s._handleBlur() : undefined,
|
|
229
|
+
onMouseDown: (s && f.press) ? (e) => s._handleMouseDown(e.clientX, e.clientY) : undefined,
|
|
230
|
+
onMouseUp: (s && f.press) ? () => s._handleMouseUp() : undefined,
|
|
173
231
|
};
|
|
174
232
|
}
|
|
175
233
|
}
|
|
176
|
-
/** Apply a Modifier's styles and
|
|
234
|
+
/** Apply a Modifier's styles, className, and interaction handlers to a DOM element. */
|
|
177
235
|
export function applyModifier(el, mod) {
|
|
178
236
|
const props = mod.toProps();
|
|
179
237
|
if (props.className)
|
|
@@ -184,5 +242,19 @@ export function applyModifier(el, mod) {
|
|
|
184
242
|
el.style[k] = String(v);
|
|
185
243
|
}
|
|
186
244
|
}
|
|
245
|
+
if (props.onMouseEnter)
|
|
246
|
+
el.addEventListener("mouseenter", props.onMouseEnter);
|
|
247
|
+
if (props.onMouseLeave)
|
|
248
|
+
el.addEventListener("mouseleave", props.onMouseLeave);
|
|
249
|
+
if (props.onFocus)
|
|
250
|
+
el.addEventListener("focus", props.onFocus);
|
|
251
|
+
if (props.onBlur)
|
|
252
|
+
el.addEventListener("blur", props.onBlur);
|
|
253
|
+
if (props.onMouseDown) {
|
|
254
|
+
const handler = props.onMouseDown;
|
|
255
|
+
el.addEventListener("mousedown", (e) => handler({ clientX: e.clientX, clientY: e.clientY }));
|
|
256
|
+
}
|
|
257
|
+
if (props.onMouseUp)
|
|
258
|
+
el.addEventListener("mouseup", props.onMouseUp);
|
|
187
259
|
}
|
|
188
260
|
//# sourceMappingURL=modifier.js.map
|
package/dist/modifier.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modifier.js","sourceRoot":"","sources":["../src/modifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modifier.js","sourceRoot":"","sources":["../src/modifier.ts"],"names":[],"mappings":"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"}
|