@jalvin/ui 2.0.26 → 2.0.28

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interaction.test.d.ts.map
@@ -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":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=modifier.test.d.ts.map
@@ -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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"}
@@ -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,CAiBpB;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,CAiBpB"}
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,
@@ -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"}
@@ -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,CAoDlC"}
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,
@@ -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";
@@ -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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"}
@@ -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 + className props. */
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 className to a DOM element. */
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
@@ -1 +1 @@
1
- {"version":3,"file":"modifier.d.ts","sourceRoot":"","sources":["../src/modifier.ts"],"names":[],"mappings":"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"}
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
- constructor(styles = {}, classNames = []) {
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 + className props. */
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 className to a DOM element. */
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
@@ -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":"AAAA,gFAAgF;AAChF,6DAA6D;AAC7D,EAAE;AACF,8EAA8E;AAC9E,qEAAqE;AACrE,aAAa;AACb,EAAE;AACF,WAAW;AACX,kEAAkE;AAClE,gFAAgF;AAahF,MAAM,QAAQ,GAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAEhF,MAAM,OAAO,QAAQ;IACV,OAAO,CAAgB;IACvB,WAAW,CAAwB;IACnC,kBAAkB,CAAuC;IACzD,iBAAiB,CAAmB;IAE7C,YACE,SAAwB,EAAE,EAC1B,aAAuB,EAAE,EACzB,iBAA4C,EAC5C,mBAAqC,QAAQ;QAE7C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED,8EAA8E;IAE9E,MAAM,KAAK,OAAO,KAAe,OAAO,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEzD,MAAM,CAAC,YAAY,KAAgB,OAAO,IAAI,QAAQ,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC1E,MAAM,CAAC,aAAa,KAAe,OAAO,IAAI,QAAQ,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,CAAC,WAAW,KAAiB,OAAO,IAAI,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,CAAC,OAAO,CAAC,CAAkB,IAAc,OAAO,IAAI,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,CAAC,MAAM,CAAC,CAAkB,IAAe,OAAO,IAAI,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,UAAU,CAAC,CAAS,IAAoB,OAAO,IAAI,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,CAAC,KAAK,CAAC,CAAS,IAAyB,OAAO,IAAI,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,CAAC,KAAK,CAAC,CAAkB,IAAgB,OAAO,IAAI,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,CAAC,MAAM,CAAC,CAAkB,IAAe,OAAO,IAAI,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,IAAI,CAAC,CAAS,IAA0B,OAAO,IAAI,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,CAAC,SAAS,CAAC,IAAY,IAAkB,OAAO,IAAI,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,CAAC,MAAM,CAAC,CAAS,IAAwB,OAAO,IAAI,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,YAAY,CAAC,CAAkB,IAAc,OAAO,IAAI,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,CAAC,OAAO,CAAC,CAAS,IAAuB,OAAO,IAAI,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,CAAC,MAAM,CAAC,CAAS,IAAwB,OAAO,IAAI,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,MAAM,CAAC,CAAS,IAAwB,OAAO,IAAI,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,QAAQ,CAAC,CAA2C,IAAc,OAAO,IAAI,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7G,MAAM,CAAC,UAAU,CAAC,CAAyE,IAAc,OAAO,IAAI,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/I,MAAM,CAAC,SAAS,CAAC,CAAkB,IAAiB,OAAO,IAAI,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,CAAC,YAAY,CAAC,CAAkB,IAAc,OAAO,IAAI,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,CAAC,UAAU,CAAC,CAAkB,IAAgB,OAAO,IAAI,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,CAAC,WAAW,CAAC,CAAkB,IAAe,OAAO,IAAI,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3F,8EAA8E;IAEtE,IAAI,CAAC,KAAoB;QAC/B,OAAO,IAAI,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC7H,CAAC;IAED;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,MAAgC;QACxC,OAAO,IAAI,QAAQ,CACjB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAC1C,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CACnD,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,MAAgC;QACxC,OAAO,IAAI,QAAQ,CACjB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAC1C,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CACnD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,MAAgC;QACxC,OAAO,IAAI,QAAQ,CACjB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAC1C,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CACnD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,MAAgC,IAAc,OAAO,IAAI,QAAQ,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,CAAC,SAAS,CAAC,MAAgC,IAAc,OAAO,IAAI,QAAQ,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,CAAC,SAAS,CAAC,MAAgC,IAAc,OAAO,IAAI,QAAQ,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEzG,YAAY,KAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,aAAa,KAAe,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,WAAW,KAAiB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAElF,OAAO,CAAC,CAAkB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,iBAAiB,CAAC,CAAS;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,eAAe,CAAC,CAAS;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,UAAU,CAAC,CAAS,IAAiB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClF,aAAa,CAAC,CAAS,IAAc,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,WAAW,CAAC,CAAS,IAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACnF,YAAY,CAAC,CAAS,IAAe,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpF,MAAM,CAAC,CAAkB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,gBAAgB,CAAC,CAAS;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,cAAc,CAAC,CAAS;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,SAAS,CAAC,CAAkB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,YAAY,CAAC,CAAkB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,UAAU,CAAC,CAAkB;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,WAAW,CAAC,CAAkB;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,UAAU,CAAC,CAAS,IAAc,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,KAAK,CAAC,CAAS,IAAmB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,CAAS,IAAkB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,YAAY,CAAC,CAAkB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,CAAC,CAAS,IAAe,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,SAAS,CAAC,CAAS,IAAc,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEtE,KAAK,CAAC,CAAkB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,CAAC,CAAkB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,CAAS;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,QAAQ,CAAC,CAAkB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,QAAQ,CAAC,CAAkB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,SAAS,CAAC,CAAkB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,CAAC,CAAS,IAAe,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,CAAS,IAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,CAAS,IAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,CAA2C;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,SAAS,CAAC,CAA2C;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,SAAS,CAAC,CAA2C;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,UAAU,CAAC,CAAyE;QAClF,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,QAAQ,CAAC,CAA0D;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,GAAG,CAAC,CAAkB,IAAiB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,CAAC,CAAkB,IAAc,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5G,IAAI,CAAC,CAAkB,IAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1G,KAAK,CAAC,CAAkB,IAAe,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3G,IAAI,CAAC,CAAS,IAAc,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,GAAG,CAAC,CAAS,IAAe,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAElE,QAAQ,CAAC,CAAkB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,UAAU,CAAC,CAAuC;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,UAAU,CAAC,CAAS,IAAc,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,SAAS,CAAC,CAA0C;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,UAAU,CAAC,CAAkB;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,aAAa,CAAC,CAAkB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,cAAc,CAAC,CAAS,IAAc,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhF,UAAU,CAAC,CAAmC;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,aAAa,CAAC,CAAkB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,UAAU,CAAC,CAAS,IAAc,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,SAAS,CAAC,CAAS,IAAe,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvE,2CAA2C;IAC3C,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClH,CAAC;IAED,iDAAiD;IACjD,IAAI,CAAC,KAAe;QAClB,OAAO,IAAI,QAAQ,CACjB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,EACrC,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,EAC3C,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,EACnD;YACE,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK;YACpE,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK;YACpE,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK;SACrE,CACF,CAAC;IACJ,CAAC;IAED,mGAAmG;IACnG,OAAO;QAUL,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEjC,gEAAgE;QAChE,MAAM,kBAAkB,GAAsB,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK;YAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK;YAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAExE,OAAO;YACL,KAAK,EAAS,SAAS,CAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAY,CAAC,CAAC,SAAS;YAC/D,SAAS,EAAK,UAAU,CAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;YAClE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS;YACtE,YAAY,EAAE,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YACpG,OAAO,EAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAM,CAAC,CAAC,SAAS;YACtE,MAAM,EAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAO,CAAC,CAAC,SAAS;YACtE,WAAW,EAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAuC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YAChI,SAAS,EAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAI,CAAC,CAAC,SAAS;SACvE,CAAC;IACJ,CAAC;CACF;AAED,uFAAuF;AACvF,MAAM,UAAU,aAAa,CAAC,EAAe,EAAE,GAAa;IAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IAC5B,IAAI,KAAK,CAAC,SAAS;QAAE,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACpD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,KAAK,SAAS;gBAAG,EAAE,CAAC,KAA2C,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,YAAY;QAAE,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC9E,IAAI,KAAK,CAAC,YAAY;QAAE,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC9E,IAAI,KAAK,CAAC,OAAO;QAAO,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAO,KAAK,CAAC,OAAO,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,MAAM;QAAQ,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;IACxE,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC;QAClC,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,KAAK,CAAC,SAAS;QAAI,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAK,KAAK,CAAC,SAAS,CAAC,CAAC;AAC5E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jalvin/ui",
3
- "version": "2.0.26",
3
+ "version": "2.0.28",
4
4
  "description": "Jalvin UI — Compose-style component library (Column, Row, Box, Button, Text, …)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",