@zag-js/tooltip 0.0.0-dev-20230705143151 → 0.0.0-dev-20230710092359

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 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/tooltip.anatomy.ts","../src/tooltip.connect.ts","../src/tooltip.dom.ts","../src/tooltip.store.ts","../src/tooltip.machine.ts"],"sourcesContent":["export { anatomy } from \"./tooltip.anatomy\"\nexport { connect } from \"./tooltip.connect\"\nexport { machine } from \"./tooltip.machine\"\nexport type { UserDefinedContext as Context, Placement, PositioningOptions } from \"./tooltip.types\"\n","import { createAnatomy } from \"@zag-js/anatomy\"\n\nexport const anatomy = createAnatomy(\"tooltip\").parts(\"trigger\", \"arrow\", \"arrowTip\", \"positioner\", \"content\", \"label\")\nexport const parts = anatomy.build()\n","import { dataAttr } from \"@zag-js/dom-query\"\nimport { getPlacementStyles, PositioningOptions } from \"@zag-js/popper\"\nimport type { NormalizeProps, PropTypes } from \"@zag-js/types\"\nimport { visuallyHiddenStyle } from \"@zag-js/visually-hidden\"\nimport { parts } from \"./tooltip.anatomy\"\nimport { dom } from \"./tooltip.dom\"\nimport { store } from \"./tooltip.store\"\nimport type { Send, State } from \"./tooltip.types\"\n\nexport function connect<T extends PropTypes>(state: State, send: Send, normalize: NormalizeProps<T>) {\n const id = state.context.id\n const hasAriaLabel = state.context.hasAriaLabel\n\n const isOpen = state.hasTag(\"open\")\n\n const triggerId = dom.getTriggerId(state.context)\n const contentId = dom.getContentId(state.context)\n\n const isDisabled = state.context.disabled\n\n const popperStyles = getPlacementStyles({\n placement: state.context.currentPlacement,\n })\n\n return {\n /**\n * Whether the tooltip is open.\n */\n isOpen,\n /**\n * Function to open the tooltip.\n */\n open() {\n send(\"OPEN\")\n },\n /**\n * Function to close the tooltip.\n */\n close() {\n send(\"CLOSE\")\n },\n /**\n * Returns the animation state of the tooltip.\n */\n getAnimationState() {\n return {\n enter: store.prevId === null && id === store.id,\n exit: store.id === null,\n }\n },\n /**\n * Function to reposition the popover\n */\n setPositioning(options: Partial<PositioningOptions> = {}) {\n send({ type: \"SET_POSITIONING\", options })\n },\n\n triggerProps: normalize.button({\n ...parts.trigger.attrs,\n id: triggerId,\n \"data-expanded\": dataAttr(isOpen),\n \"aria-describedby\": isOpen ? contentId : undefined,\n onClick() {\n send(\"CLICK\")\n },\n onFocus() {\n send(\"FOCUS\")\n },\n onBlur() {\n if (id === store.id) {\n send(\"BLUR\")\n }\n },\n onPointerDown() {\n if (isDisabled) return\n if (id === store.id) {\n send(\"POINTER_DOWN\")\n }\n },\n onPointerMove() {\n if (isDisabled) return\n send(\"POINTER_ENTER\")\n },\n onPointerLeave() {\n if (isDisabled) return\n send(\"POINTER_LEAVE\")\n },\n onPointerCancel() {\n if (isDisabled) return\n send(\"POINTER_LEAVE\")\n },\n }),\n\n arrowProps: normalize.element({\n id: dom.getArrowId(state.context),\n ...parts.arrow.attrs,\n style: popperStyles.arrow,\n }),\n\n arrowTipProps: normalize.element({\n ...parts.arrowTip.attrs,\n style: popperStyles.arrowTip,\n }),\n\n positionerProps: normalize.element({\n id: dom.getPositionerId(state.context),\n ...parts.positioner.attrs,\n style: popperStyles.floating,\n }),\n\n contentProps: normalize.element({\n ...parts.content.attrs,\n hidden: !isOpen,\n role: hasAriaLabel ? undefined : \"tooltip\",\n id: hasAriaLabel ? undefined : contentId,\n \"data-placement\": state.context.currentPlacement,\n onPointerEnter() {\n send(\"TOOLTIP_POINTER_ENTER\")\n },\n onPointerLeave() {\n send(\"TOOLTIP_POINTER_LEAVE\")\n },\n style: {\n pointerEvents: state.context.interactive ? \"auto\" : \"none\",\n },\n }),\n\n labelProps: normalize.element({\n ...parts.label.attrs,\n id: contentId,\n role: \"tooltip\",\n style: visuallyHiddenStyle,\n children: state.context[\"aria-label\"],\n }),\n }\n}\n","import { createScope, getScrollParent } from \"@zag-js/dom-query\"\nimport type { MachineContext as Ctx } from \"./tooltip.types\"\n\nexport const dom = createScope({\n getTriggerId: (ctx: Ctx) => ctx.ids?.trigger ?? `tooltip:${ctx.id}:trigger`,\n getContentId: (ctx: Ctx) => ctx.ids?.content ?? `tooltip:${ctx.id}:content`,\n getArrowId: (ctx: Ctx) => ctx.ids?.arrow ?? `tooltip:${ctx.id}:arrow`,\n getPositionerId: (ctx: Ctx) => ctx.ids?.positioner ?? `tooltip:${ctx.id}:popper`,\n\n getTriggerEl: (ctx: Ctx) => dom.getById(ctx, dom.getTriggerId(ctx)),\n getContentEl: (ctx: Ctx) => dom.getById(ctx, dom.getContentId(ctx)),\n getPositionerEl: (ctx: Ctx) => dom.getById(ctx, dom.getPositionerId(ctx)),\n getArrowEl: (ctx: Ctx) => dom.getById(ctx, dom.getArrowId(ctx)),\n getScrollParent: (ctx: Ctx) => getScrollParent(dom.getTriggerEl(ctx)!),\n})\n","import { proxy } from \"@zag-js/core\"\n\ntype Id = string | null\n\ntype Store = {\n id: Id\n prevId: Id\n setId: (val: Id) => void\n}\n\nexport const store = proxy<Store>({\n id: null,\n prevId: null,\n setId(val) {\n this.prevId = this.id\n this.id = val\n },\n})\n","import { createMachine, subscribe } from \"@zag-js/core\"\nimport { addDomEvent } from \"@zag-js/dom-event\"\nimport { getScrollParents, isHTMLElement, isSafari } from \"@zag-js/dom-query\"\nimport { getPlacement } from \"@zag-js/popper\"\nimport { compact } from \"@zag-js/utils\"\nimport { dom } from \"./tooltip.dom\"\nimport { store } from \"./tooltip.store\"\nimport type { MachineContext, MachineState, UserDefinedContext } from \"./tooltip.types\"\n\nexport function machine(userContext: UserDefinedContext) {\n const ctx = compact(userContext)\n return createMachine<MachineContext, MachineState>(\n {\n id: \"tooltip\",\n initial: \"closed\",\n\n context: {\n openDelay: 1000,\n closeDelay: 500,\n closeOnPointerDown: true,\n closeOnEsc: true,\n interactive: true,\n currentPlacement: undefined,\n ...ctx,\n positioning: {\n placement: \"bottom\",\n ...ctx.positioning,\n },\n },\n\n computed: {\n hasAriaLabel: (ctx) => !!ctx[\"aria-label\"],\n },\n\n watch: {\n disabled: [\"closeIfDisabled\"],\n open: [\"toggleVisibility\"],\n },\n\n on: {\n OPEN: \"open\",\n CLOSE: \"closed\",\n },\n\n states: {\n closed: {\n tags: [\"closed\"],\n entry: [\"clearGlobalId\", \"invokeOnClose\"],\n on: {\n FOCUS: \"open\",\n POINTER_ENTER: [\n {\n guard: \"noVisibleTooltip\",\n target: \"opening\",\n },\n { target: \"open\" },\n ],\n },\n },\n\n opening: {\n tags: [\"closed\"],\n activities: [\"trackScroll\", \"trackPointerlockChange\"],\n after: {\n OPEN_DELAY: \"open\",\n },\n on: {\n POINTER_LEAVE: \"closed\",\n BLUR: \"closed\",\n SCROLL: \"closed\",\n POINTER_LOCK_CHANGE: \"closed\",\n POINTER_DOWN: {\n guard: \"closeOnPointerDown\",\n target: \"closed\",\n },\n },\n },\n\n open: {\n tags: [\"open\"],\n activities: [\n \"trackEscapeKey\",\n \"trackDisabledTriggerOnSafari\",\n \"trackScroll\",\n \"trackPointerlockChange\",\n \"trackPositioning\",\n ],\n entry: [\"setGlobalId\", \"invokeOnOpen\"],\n on: {\n POINTER_LEAVE: [\n {\n guard: \"isVisible\",\n target: \"closing\",\n },\n { target: \"closed\" },\n ],\n BLUR: \"closed\",\n ESCAPE: \"closed\",\n SCROLL: \"closed\",\n POINTER_LOCK_CHANGE: \"closed\",\n TOOLTIP_POINTER_LEAVE: {\n guard: \"isInteractive\",\n target: \"closing\",\n },\n POINTER_DOWN: {\n guard: \"closeOnPointerDown\",\n target: \"closed\",\n },\n CLICK: \"closed\",\n SET_POSITIONING: {\n actions: \"setPositioning\",\n },\n },\n },\n\n closing: {\n tags: [\"open\"],\n activities: [\"trackStore\", \"trackPositioning\"],\n after: {\n CLOSE_DELAY: \"closed\",\n },\n on: {\n FORCE_CLOSE: \"closed\",\n POINTER_ENTER: \"open\",\n TOOLTIP_POINTER_ENTER: {\n guard: \"isInteractive\",\n target: \"open\",\n },\n },\n },\n },\n },\n {\n activities: {\n trackPositioning(ctx) {\n ctx.currentPlacement = ctx.positioning.placement\n const getPositionerEl = () => dom.getPositionerEl(ctx)\n return getPlacement(dom.getTriggerEl(ctx), getPositionerEl, {\n ...ctx.positioning,\n defer: true,\n onComplete(data) {\n ctx.currentPlacement = data.placement\n },\n onCleanup() {\n ctx.currentPlacement = undefined\n },\n })\n },\n trackPointerlockChange(ctx, _evt, { send }) {\n const onChange = () => send(\"POINTER_LOCK_CHANGE\")\n return addDomEvent(dom.getDoc(ctx), \"pointerlockchange\", onChange, false)\n },\n trackScroll(ctx, _evt, { send }) {\n const trigger = dom.getTriggerEl(ctx)\n if (!trigger) return\n const cleanups = getScrollParents(trigger).map((el) => {\n const opts = { passive: true, capture: true } as const\n return addDomEvent(el, \"scroll\", () => send(\"SCROLL\"), opts)\n })\n return () => {\n cleanups.forEach((fn) => fn?.())\n }\n },\n trackStore(ctx, _evt, { send }) {\n return subscribe(store, () => {\n if (store.id !== ctx.id) {\n send(\"FORCE_CLOSE\")\n }\n })\n },\n trackDisabledTriggerOnSafari(ctx, _evt, { send }) {\n if (!isSafari()) return\n const doc = dom.getDoc(ctx)\n return addDomEvent(doc, \"pointermove\", (event) => {\n const selector = \"[data-part=trigger][data-expanded]\"\n if (isHTMLElement(event.target) && event.target.closest(selector)) return\n send(\"POINTER_LEAVE\")\n })\n },\n trackEscapeKey(ctx, _evt, { send }) {\n if (!ctx.closeOnEsc) return\n const doc = dom.getDoc(ctx)\n return addDomEvent(doc, \"keydown\", (event) => {\n if (event.key === \"Escape\") {\n send(\"ESCAPE\")\n }\n })\n },\n },\n actions: {\n setGlobalId(ctx) {\n store.setId(ctx.id)\n },\n clearGlobalId(ctx) {\n if (ctx.id === store.id) {\n store.setId(null)\n }\n },\n invokeOnOpen(ctx, evt) {\n const omit = [\"TOOLTIP_POINTER_ENTER\", \"POINTER_ENTER\"]\n if (!omit.includes(evt.type)) {\n ctx.onOpen?.()\n }\n },\n invokeOnClose(ctx) {\n ctx.onClose?.()\n },\n closeIfDisabled(ctx, _evt, { send }) {\n if (ctx.disabled) {\n send(\"CLOSE\")\n }\n },\n setPositioning(ctx, evt) {\n const getPositionerEl = () => dom.getPositionerEl(ctx)\n getPlacement(dom.getTriggerEl(ctx), getPositionerEl, {\n ...ctx.positioning,\n ...evt.options,\n defer: true,\n listeners: false,\n })\n },\n toggleVisibility(ctx, _evt, { send }) {\n send({ type: ctx.open ? \"OPEN\" : \"CLOSE\", src: \"controlled\" })\n },\n },\n guards: {\n closeOnPointerDown: (ctx) => ctx.closeOnPointerDown,\n noVisibleTooltip: () => store.id === null,\n isVisible: (ctx) => ctx.id === store.id,\n isInteractive: (ctx) => ctx.interactive,\n },\n delays: {\n OPEN_DELAY: (ctx) => ctx.openDelay,\n CLOSE_DELAY: (ctx) => ctx.closeDelay,\n },\n },\n )\n}\n"],"mappings":"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","names":["import_dom_query","import_core","import_dom_query","import_popper","ctx"]}
package/dist/index.mjs CHANGED
@@ -1,3 +1,394 @@
1
- export { anatomy } from './tooltip.anatomy.mjs';
2
- export { connect } from './tooltip.connect.mjs';
3
- export { machine } from './tooltip.machine.mjs';
1
+ // src/tooltip.anatomy.ts
2
+ import { createAnatomy } from "@zag-js/anatomy";
3
+ var anatomy = createAnatomy("tooltip").parts("trigger", "arrow", "arrowTip", "positioner", "content", "label");
4
+ var parts = anatomy.build();
5
+
6
+ // src/tooltip.connect.ts
7
+ import { dataAttr } from "@zag-js/dom-query";
8
+ import { getPlacementStyles } from "@zag-js/popper";
9
+ import { visuallyHiddenStyle } from "@zag-js/visually-hidden";
10
+
11
+ // src/tooltip.dom.ts
12
+ import { createScope, getScrollParent } from "@zag-js/dom-query";
13
+ var dom = createScope({
14
+ getTriggerId: (ctx) => ctx.ids?.trigger ?? `tooltip:${ctx.id}:trigger`,
15
+ getContentId: (ctx) => ctx.ids?.content ?? `tooltip:${ctx.id}:content`,
16
+ getArrowId: (ctx) => ctx.ids?.arrow ?? `tooltip:${ctx.id}:arrow`,
17
+ getPositionerId: (ctx) => ctx.ids?.positioner ?? `tooltip:${ctx.id}:popper`,
18
+ getTriggerEl: (ctx) => dom.getById(ctx, dom.getTriggerId(ctx)),
19
+ getContentEl: (ctx) => dom.getById(ctx, dom.getContentId(ctx)),
20
+ getPositionerEl: (ctx) => dom.getById(ctx, dom.getPositionerId(ctx)),
21
+ getArrowEl: (ctx) => dom.getById(ctx, dom.getArrowId(ctx)),
22
+ getScrollParent: (ctx) => getScrollParent(dom.getTriggerEl(ctx))
23
+ });
24
+
25
+ // src/tooltip.store.ts
26
+ import { proxy } from "@zag-js/core";
27
+ var store = proxy({
28
+ id: null,
29
+ prevId: null,
30
+ setId(val) {
31
+ this.prevId = this.id;
32
+ this.id = val;
33
+ }
34
+ });
35
+
36
+ // src/tooltip.connect.ts
37
+ function connect(state, send, normalize) {
38
+ const id = state.context.id;
39
+ const hasAriaLabel = state.context.hasAriaLabel;
40
+ const isOpen = state.hasTag("open");
41
+ const triggerId = dom.getTriggerId(state.context);
42
+ const contentId = dom.getContentId(state.context);
43
+ const isDisabled = state.context.disabled;
44
+ const popperStyles = getPlacementStyles({
45
+ placement: state.context.currentPlacement
46
+ });
47
+ return {
48
+ /**
49
+ * Whether the tooltip is open.
50
+ */
51
+ isOpen,
52
+ /**
53
+ * Function to open the tooltip.
54
+ */
55
+ open() {
56
+ send("OPEN");
57
+ },
58
+ /**
59
+ * Function to close the tooltip.
60
+ */
61
+ close() {
62
+ send("CLOSE");
63
+ },
64
+ /**
65
+ * Returns the animation state of the tooltip.
66
+ */
67
+ getAnimationState() {
68
+ return {
69
+ enter: store.prevId === null && id === store.id,
70
+ exit: store.id === null
71
+ };
72
+ },
73
+ /**
74
+ * Function to reposition the popover
75
+ */
76
+ setPositioning(options = {}) {
77
+ send({ type: "SET_POSITIONING", options });
78
+ },
79
+ triggerProps: normalize.button({
80
+ ...parts.trigger.attrs,
81
+ id: triggerId,
82
+ "data-expanded": dataAttr(isOpen),
83
+ "aria-describedby": isOpen ? contentId : void 0,
84
+ onClick() {
85
+ send("CLICK");
86
+ },
87
+ onFocus() {
88
+ send("FOCUS");
89
+ },
90
+ onBlur() {
91
+ if (id === store.id) {
92
+ send("BLUR");
93
+ }
94
+ },
95
+ onPointerDown() {
96
+ if (isDisabled)
97
+ return;
98
+ if (id === store.id) {
99
+ send("POINTER_DOWN");
100
+ }
101
+ },
102
+ onPointerMove() {
103
+ if (isDisabled)
104
+ return;
105
+ send("POINTER_ENTER");
106
+ },
107
+ onPointerLeave() {
108
+ if (isDisabled)
109
+ return;
110
+ send("POINTER_LEAVE");
111
+ },
112
+ onPointerCancel() {
113
+ if (isDisabled)
114
+ return;
115
+ send("POINTER_LEAVE");
116
+ }
117
+ }),
118
+ arrowProps: normalize.element({
119
+ id: dom.getArrowId(state.context),
120
+ ...parts.arrow.attrs,
121
+ style: popperStyles.arrow
122
+ }),
123
+ arrowTipProps: normalize.element({
124
+ ...parts.arrowTip.attrs,
125
+ style: popperStyles.arrowTip
126
+ }),
127
+ positionerProps: normalize.element({
128
+ id: dom.getPositionerId(state.context),
129
+ ...parts.positioner.attrs,
130
+ style: popperStyles.floating
131
+ }),
132
+ contentProps: normalize.element({
133
+ ...parts.content.attrs,
134
+ hidden: !isOpen,
135
+ role: hasAriaLabel ? void 0 : "tooltip",
136
+ id: hasAriaLabel ? void 0 : contentId,
137
+ "data-placement": state.context.currentPlacement,
138
+ onPointerEnter() {
139
+ send("TOOLTIP_POINTER_ENTER");
140
+ },
141
+ onPointerLeave() {
142
+ send("TOOLTIP_POINTER_LEAVE");
143
+ },
144
+ style: {
145
+ pointerEvents: state.context.interactive ? "auto" : "none"
146
+ }
147
+ }),
148
+ labelProps: normalize.element({
149
+ ...parts.label.attrs,
150
+ id: contentId,
151
+ role: "tooltip",
152
+ style: visuallyHiddenStyle,
153
+ children: state.context["aria-label"]
154
+ })
155
+ };
156
+ }
157
+
158
+ // src/tooltip.machine.ts
159
+ import { createMachine, subscribe } from "@zag-js/core";
160
+ import { addDomEvent } from "@zag-js/dom-event";
161
+ import { getScrollParents, isHTMLElement, isSafari } from "@zag-js/dom-query";
162
+ import { getPlacement } from "@zag-js/popper";
163
+ import { compact } from "@zag-js/utils";
164
+ function machine(userContext) {
165
+ const ctx = compact(userContext);
166
+ return createMachine(
167
+ {
168
+ id: "tooltip",
169
+ initial: "closed",
170
+ context: {
171
+ openDelay: 1e3,
172
+ closeDelay: 500,
173
+ closeOnPointerDown: true,
174
+ closeOnEsc: true,
175
+ interactive: true,
176
+ currentPlacement: void 0,
177
+ ...ctx,
178
+ positioning: {
179
+ placement: "bottom",
180
+ ...ctx.positioning
181
+ }
182
+ },
183
+ computed: {
184
+ hasAriaLabel: (ctx2) => !!ctx2["aria-label"]
185
+ },
186
+ watch: {
187
+ disabled: ["closeIfDisabled"],
188
+ open: ["toggleVisibility"]
189
+ },
190
+ on: {
191
+ OPEN: "open",
192
+ CLOSE: "closed"
193
+ },
194
+ states: {
195
+ closed: {
196
+ tags: ["closed"],
197
+ entry: ["clearGlobalId", "invokeOnClose"],
198
+ on: {
199
+ FOCUS: "open",
200
+ POINTER_ENTER: [
201
+ {
202
+ guard: "noVisibleTooltip",
203
+ target: "opening"
204
+ },
205
+ { target: "open" }
206
+ ]
207
+ }
208
+ },
209
+ opening: {
210
+ tags: ["closed"],
211
+ activities: ["trackScroll", "trackPointerlockChange"],
212
+ after: {
213
+ OPEN_DELAY: "open"
214
+ },
215
+ on: {
216
+ POINTER_LEAVE: "closed",
217
+ BLUR: "closed",
218
+ SCROLL: "closed",
219
+ POINTER_LOCK_CHANGE: "closed",
220
+ POINTER_DOWN: {
221
+ guard: "closeOnPointerDown",
222
+ target: "closed"
223
+ }
224
+ }
225
+ },
226
+ open: {
227
+ tags: ["open"],
228
+ activities: [
229
+ "trackEscapeKey",
230
+ "trackDisabledTriggerOnSafari",
231
+ "trackScroll",
232
+ "trackPointerlockChange",
233
+ "trackPositioning"
234
+ ],
235
+ entry: ["setGlobalId", "invokeOnOpen"],
236
+ on: {
237
+ POINTER_LEAVE: [
238
+ {
239
+ guard: "isVisible",
240
+ target: "closing"
241
+ },
242
+ { target: "closed" }
243
+ ],
244
+ BLUR: "closed",
245
+ ESCAPE: "closed",
246
+ SCROLL: "closed",
247
+ POINTER_LOCK_CHANGE: "closed",
248
+ TOOLTIP_POINTER_LEAVE: {
249
+ guard: "isInteractive",
250
+ target: "closing"
251
+ },
252
+ POINTER_DOWN: {
253
+ guard: "closeOnPointerDown",
254
+ target: "closed"
255
+ },
256
+ CLICK: "closed",
257
+ SET_POSITIONING: {
258
+ actions: "setPositioning"
259
+ }
260
+ }
261
+ },
262
+ closing: {
263
+ tags: ["open"],
264
+ activities: ["trackStore", "trackPositioning"],
265
+ after: {
266
+ CLOSE_DELAY: "closed"
267
+ },
268
+ on: {
269
+ FORCE_CLOSE: "closed",
270
+ POINTER_ENTER: "open",
271
+ TOOLTIP_POINTER_ENTER: {
272
+ guard: "isInteractive",
273
+ target: "open"
274
+ }
275
+ }
276
+ }
277
+ }
278
+ },
279
+ {
280
+ activities: {
281
+ trackPositioning(ctx2) {
282
+ ctx2.currentPlacement = ctx2.positioning.placement;
283
+ const getPositionerEl = () => dom.getPositionerEl(ctx2);
284
+ return getPlacement(dom.getTriggerEl(ctx2), getPositionerEl, {
285
+ ...ctx2.positioning,
286
+ defer: true,
287
+ onComplete(data) {
288
+ ctx2.currentPlacement = data.placement;
289
+ },
290
+ onCleanup() {
291
+ ctx2.currentPlacement = void 0;
292
+ }
293
+ });
294
+ },
295
+ trackPointerlockChange(ctx2, _evt, { send }) {
296
+ const onChange = () => send("POINTER_LOCK_CHANGE");
297
+ return addDomEvent(dom.getDoc(ctx2), "pointerlockchange", onChange, false);
298
+ },
299
+ trackScroll(ctx2, _evt, { send }) {
300
+ const trigger = dom.getTriggerEl(ctx2);
301
+ if (!trigger)
302
+ return;
303
+ const cleanups = getScrollParents(trigger).map((el) => {
304
+ const opts = { passive: true, capture: true };
305
+ return addDomEvent(el, "scroll", () => send("SCROLL"), opts);
306
+ });
307
+ return () => {
308
+ cleanups.forEach((fn) => fn?.());
309
+ };
310
+ },
311
+ trackStore(ctx2, _evt, { send }) {
312
+ return subscribe(store, () => {
313
+ if (store.id !== ctx2.id) {
314
+ send("FORCE_CLOSE");
315
+ }
316
+ });
317
+ },
318
+ trackDisabledTriggerOnSafari(ctx2, _evt, { send }) {
319
+ if (!isSafari())
320
+ return;
321
+ const doc = dom.getDoc(ctx2);
322
+ return addDomEvent(doc, "pointermove", (event) => {
323
+ const selector = "[data-part=trigger][data-expanded]";
324
+ if (isHTMLElement(event.target) && event.target.closest(selector))
325
+ return;
326
+ send("POINTER_LEAVE");
327
+ });
328
+ },
329
+ trackEscapeKey(ctx2, _evt, { send }) {
330
+ if (!ctx2.closeOnEsc)
331
+ return;
332
+ const doc = dom.getDoc(ctx2);
333
+ return addDomEvent(doc, "keydown", (event) => {
334
+ if (event.key === "Escape") {
335
+ send("ESCAPE");
336
+ }
337
+ });
338
+ }
339
+ },
340
+ actions: {
341
+ setGlobalId(ctx2) {
342
+ store.setId(ctx2.id);
343
+ },
344
+ clearGlobalId(ctx2) {
345
+ if (ctx2.id === store.id) {
346
+ store.setId(null);
347
+ }
348
+ },
349
+ invokeOnOpen(ctx2, evt) {
350
+ const omit = ["TOOLTIP_POINTER_ENTER", "POINTER_ENTER"];
351
+ if (!omit.includes(evt.type)) {
352
+ ctx2.onOpen?.();
353
+ }
354
+ },
355
+ invokeOnClose(ctx2) {
356
+ ctx2.onClose?.();
357
+ },
358
+ closeIfDisabled(ctx2, _evt, { send }) {
359
+ if (ctx2.disabled) {
360
+ send("CLOSE");
361
+ }
362
+ },
363
+ setPositioning(ctx2, evt) {
364
+ const getPositionerEl = () => dom.getPositionerEl(ctx2);
365
+ getPlacement(dom.getTriggerEl(ctx2), getPositionerEl, {
366
+ ...ctx2.positioning,
367
+ ...evt.options,
368
+ defer: true,
369
+ listeners: false
370
+ });
371
+ },
372
+ toggleVisibility(ctx2, _evt, { send }) {
373
+ send({ type: ctx2.open ? "OPEN" : "CLOSE", src: "controlled" });
374
+ }
375
+ },
376
+ guards: {
377
+ closeOnPointerDown: (ctx2) => ctx2.closeOnPointerDown,
378
+ noVisibleTooltip: () => store.id === null,
379
+ isVisible: (ctx2) => ctx2.id === store.id,
380
+ isInteractive: (ctx2) => ctx2.interactive
381
+ },
382
+ delays: {
383
+ OPEN_DELAY: (ctx2) => ctx2.openDelay,
384
+ CLOSE_DELAY: (ctx2) => ctx2.closeDelay
385
+ }
386
+ }
387
+ );
388
+ }
389
+ export {
390
+ anatomy,
391
+ connect,
392
+ machine
393
+ };
394
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tooltip.anatomy.ts","../src/tooltip.connect.ts","../src/tooltip.dom.ts","../src/tooltip.store.ts","../src/tooltip.machine.ts"],"sourcesContent":["import { createAnatomy } from \"@zag-js/anatomy\"\n\nexport const anatomy = createAnatomy(\"tooltip\").parts(\"trigger\", \"arrow\", \"arrowTip\", \"positioner\", \"content\", \"label\")\nexport const parts = anatomy.build()\n","import { dataAttr } from \"@zag-js/dom-query\"\nimport { getPlacementStyles, PositioningOptions } from \"@zag-js/popper\"\nimport type { NormalizeProps, PropTypes } from \"@zag-js/types\"\nimport { visuallyHiddenStyle } from \"@zag-js/visually-hidden\"\nimport { parts } from \"./tooltip.anatomy\"\nimport { dom } from \"./tooltip.dom\"\nimport { store } from \"./tooltip.store\"\nimport type { Send, State } from \"./tooltip.types\"\n\nexport function connect<T extends PropTypes>(state: State, send: Send, normalize: NormalizeProps<T>) {\n const id = state.context.id\n const hasAriaLabel = state.context.hasAriaLabel\n\n const isOpen = state.hasTag(\"open\")\n\n const triggerId = dom.getTriggerId(state.context)\n const contentId = dom.getContentId(state.context)\n\n const isDisabled = state.context.disabled\n\n const popperStyles = getPlacementStyles({\n placement: state.context.currentPlacement,\n })\n\n return {\n /**\n * Whether the tooltip is open.\n */\n isOpen,\n /**\n * Function to open the tooltip.\n */\n open() {\n send(\"OPEN\")\n },\n /**\n * Function to close the tooltip.\n */\n close() {\n send(\"CLOSE\")\n },\n /**\n * Returns the animation state of the tooltip.\n */\n getAnimationState() {\n return {\n enter: store.prevId === null && id === store.id,\n exit: store.id === null,\n }\n },\n /**\n * Function to reposition the popover\n */\n setPositioning(options: Partial<PositioningOptions> = {}) {\n send({ type: \"SET_POSITIONING\", options })\n },\n\n triggerProps: normalize.button({\n ...parts.trigger.attrs,\n id: triggerId,\n \"data-expanded\": dataAttr(isOpen),\n \"aria-describedby\": isOpen ? contentId : undefined,\n onClick() {\n send(\"CLICK\")\n },\n onFocus() {\n send(\"FOCUS\")\n },\n onBlur() {\n if (id === store.id) {\n send(\"BLUR\")\n }\n },\n onPointerDown() {\n if (isDisabled) return\n if (id === store.id) {\n send(\"POINTER_DOWN\")\n }\n },\n onPointerMove() {\n if (isDisabled) return\n send(\"POINTER_ENTER\")\n },\n onPointerLeave() {\n if (isDisabled) return\n send(\"POINTER_LEAVE\")\n },\n onPointerCancel() {\n if (isDisabled) return\n send(\"POINTER_LEAVE\")\n },\n }),\n\n arrowProps: normalize.element({\n id: dom.getArrowId(state.context),\n ...parts.arrow.attrs,\n style: popperStyles.arrow,\n }),\n\n arrowTipProps: normalize.element({\n ...parts.arrowTip.attrs,\n style: popperStyles.arrowTip,\n }),\n\n positionerProps: normalize.element({\n id: dom.getPositionerId(state.context),\n ...parts.positioner.attrs,\n style: popperStyles.floating,\n }),\n\n contentProps: normalize.element({\n ...parts.content.attrs,\n hidden: !isOpen,\n role: hasAriaLabel ? undefined : \"tooltip\",\n id: hasAriaLabel ? undefined : contentId,\n \"data-placement\": state.context.currentPlacement,\n onPointerEnter() {\n send(\"TOOLTIP_POINTER_ENTER\")\n },\n onPointerLeave() {\n send(\"TOOLTIP_POINTER_LEAVE\")\n },\n style: {\n pointerEvents: state.context.interactive ? \"auto\" : \"none\",\n },\n }),\n\n labelProps: normalize.element({\n ...parts.label.attrs,\n id: contentId,\n role: \"tooltip\",\n style: visuallyHiddenStyle,\n children: state.context[\"aria-label\"],\n }),\n }\n}\n","import { createScope, getScrollParent } from \"@zag-js/dom-query\"\nimport type { MachineContext as Ctx } from \"./tooltip.types\"\n\nexport const dom = createScope({\n getTriggerId: (ctx: Ctx) => ctx.ids?.trigger ?? `tooltip:${ctx.id}:trigger`,\n getContentId: (ctx: Ctx) => ctx.ids?.content ?? `tooltip:${ctx.id}:content`,\n getArrowId: (ctx: Ctx) => ctx.ids?.arrow ?? `tooltip:${ctx.id}:arrow`,\n getPositionerId: (ctx: Ctx) => ctx.ids?.positioner ?? `tooltip:${ctx.id}:popper`,\n\n getTriggerEl: (ctx: Ctx) => dom.getById(ctx, dom.getTriggerId(ctx)),\n getContentEl: (ctx: Ctx) => dom.getById(ctx, dom.getContentId(ctx)),\n getPositionerEl: (ctx: Ctx) => dom.getById(ctx, dom.getPositionerId(ctx)),\n getArrowEl: (ctx: Ctx) => dom.getById(ctx, dom.getArrowId(ctx)),\n getScrollParent: (ctx: Ctx) => getScrollParent(dom.getTriggerEl(ctx)!),\n})\n","import { proxy } from \"@zag-js/core\"\n\ntype Id = string | null\n\ntype Store = {\n id: Id\n prevId: Id\n setId: (val: Id) => void\n}\n\nexport const store = proxy<Store>({\n id: null,\n prevId: null,\n setId(val) {\n this.prevId = this.id\n this.id = val\n },\n})\n","import { createMachine, subscribe } from \"@zag-js/core\"\nimport { addDomEvent } from \"@zag-js/dom-event\"\nimport { getScrollParents, isHTMLElement, isSafari } from \"@zag-js/dom-query\"\nimport { getPlacement } from \"@zag-js/popper\"\nimport { compact } from \"@zag-js/utils\"\nimport { dom } from \"./tooltip.dom\"\nimport { store } from \"./tooltip.store\"\nimport type { MachineContext, MachineState, UserDefinedContext } from \"./tooltip.types\"\n\nexport function machine(userContext: UserDefinedContext) {\n const ctx = compact(userContext)\n return createMachine<MachineContext, MachineState>(\n {\n id: \"tooltip\",\n initial: \"closed\",\n\n context: {\n openDelay: 1000,\n closeDelay: 500,\n closeOnPointerDown: true,\n closeOnEsc: true,\n interactive: true,\n currentPlacement: undefined,\n ...ctx,\n positioning: {\n placement: \"bottom\",\n ...ctx.positioning,\n },\n },\n\n computed: {\n hasAriaLabel: (ctx) => !!ctx[\"aria-label\"],\n },\n\n watch: {\n disabled: [\"closeIfDisabled\"],\n open: [\"toggleVisibility\"],\n },\n\n on: {\n OPEN: \"open\",\n CLOSE: \"closed\",\n },\n\n states: {\n closed: {\n tags: [\"closed\"],\n entry: [\"clearGlobalId\", \"invokeOnClose\"],\n on: {\n FOCUS: \"open\",\n POINTER_ENTER: [\n {\n guard: \"noVisibleTooltip\",\n target: \"opening\",\n },\n { target: \"open\" },\n ],\n },\n },\n\n opening: {\n tags: [\"closed\"],\n activities: [\"trackScroll\", \"trackPointerlockChange\"],\n after: {\n OPEN_DELAY: \"open\",\n },\n on: {\n POINTER_LEAVE: \"closed\",\n BLUR: \"closed\",\n SCROLL: \"closed\",\n POINTER_LOCK_CHANGE: \"closed\",\n POINTER_DOWN: {\n guard: \"closeOnPointerDown\",\n target: \"closed\",\n },\n },\n },\n\n open: {\n tags: [\"open\"],\n activities: [\n \"trackEscapeKey\",\n \"trackDisabledTriggerOnSafari\",\n \"trackScroll\",\n \"trackPointerlockChange\",\n \"trackPositioning\",\n ],\n entry: [\"setGlobalId\", \"invokeOnOpen\"],\n on: {\n POINTER_LEAVE: [\n {\n guard: \"isVisible\",\n target: \"closing\",\n },\n { target: \"closed\" },\n ],\n BLUR: \"closed\",\n ESCAPE: \"closed\",\n SCROLL: \"closed\",\n POINTER_LOCK_CHANGE: \"closed\",\n TOOLTIP_POINTER_LEAVE: {\n guard: \"isInteractive\",\n target: \"closing\",\n },\n POINTER_DOWN: {\n guard: \"closeOnPointerDown\",\n target: \"closed\",\n },\n CLICK: \"closed\",\n SET_POSITIONING: {\n actions: \"setPositioning\",\n },\n },\n },\n\n closing: {\n tags: [\"open\"],\n activities: [\"trackStore\", \"trackPositioning\"],\n after: {\n CLOSE_DELAY: \"closed\",\n },\n on: {\n FORCE_CLOSE: \"closed\",\n POINTER_ENTER: \"open\",\n TOOLTIP_POINTER_ENTER: {\n guard: \"isInteractive\",\n target: \"open\",\n },\n },\n },\n },\n },\n {\n activities: {\n trackPositioning(ctx) {\n ctx.currentPlacement = ctx.positioning.placement\n const getPositionerEl = () => dom.getPositionerEl(ctx)\n return getPlacement(dom.getTriggerEl(ctx), getPositionerEl, {\n ...ctx.positioning,\n defer: true,\n onComplete(data) {\n ctx.currentPlacement = data.placement\n },\n onCleanup() {\n ctx.currentPlacement = undefined\n },\n })\n },\n trackPointerlockChange(ctx, _evt, { send }) {\n const onChange = () => send(\"POINTER_LOCK_CHANGE\")\n return addDomEvent(dom.getDoc(ctx), \"pointerlockchange\", onChange, false)\n },\n trackScroll(ctx, _evt, { send }) {\n const trigger = dom.getTriggerEl(ctx)\n if (!trigger) return\n const cleanups = getScrollParents(trigger).map((el) => {\n const opts = { passive: true, capture: true } as const\n return addDomEvent(el, \"scroll\", () => send(\"SCROLL\"), opts)\n })\n return () => {\n cleanups.forEach((fn) => fn?.())\n }\n },\n trackStore(ctx, _evt, { send }) {\n return subscribe(store, () => {\n if (store.id !== ctx.id) {\n send(\"FORCE_CLOSE\")\n }\n })\n },\n trackDisabledTriggerOnSafari(ctx, _evt, { send }) {\n if (!isSafari()) return\n const doc = dom.getDoc(ctx)\n return addDomEvent(doc, \"pointermove\", (event) => {\n const selector = \"[data-part=trigger][data-expanded]\"\n if (isHTMLElement(event.target) && event.target.closest(selector)) return\n send(\"POINTER_LEAVE\")\n })\n },\n trackEscapeKey(ctx, _evt, { send }) {\n if (!ctx.closeOnEsc) return\n const doc = dom.getDoc(ctx)\n return addDomEvent(doc, \"keydown\", (event) => {\n if (event.key === \"Escape\") {\n send(\"ESCAPE\")\n }\n })\n },\n },\n actions: {\n setGlobalId(ctx) {\n store.setId(ctx.id)\n },\n clearGlobalId(ctx) {\n if (ctx.id === store.id) {\n store.setId(null)\n }\n },\n invokeOnOpen(ctx, evt) {\n const omit = [\"TOOLTIP_POINTER_ENTER\", \"POINTER_ENTER\"]\n if (!omit.includes(evt.type)) {\n ctx.onOpen?.()\n }\n },\n invokeOnClose(ctx) {\n ctx.onClose?.()\n },\n closeIfDisabled(ctx, _evt, { send }) {\n if (ctx.disabled) {\n send(\"CLOSE\")\n }\n },\n setPositioning(ctx, evt) {\n const getPositionerEl = () => dom.getPositionerEl(ctx)\n getPlacement(dom.getTriggerEl(ctx), getPositionerEl, {\n ...ctx.positioning,\n ...evt.options,\n defer: true,\n listeners: false,\n })\n },\n toggleVisibility(ctx, _evt, { send }) {\n send({ type: ctx.open ? \"OPEN\" : \"CLOSE\", src: \"controlled\" })\n },\n },\n guards: {\n closeOnPointerDown: (ctx) => ctx.closeOnPointerDown,\n noVisibleTooltip: () => store.id === null,\n isVisible: (ctx) => ctx.id === store.id,\n isInteractive: (ctx) => ctx.interactive,\n },\n delays: {\n OPEN_DELAY: (ctx) => ctx.openDelay,\n CLOSE_DELAY: (ctx) => ctx.closeDelay,\n },\n },\n )\n}\n"],"mappings":"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","names":["ctx"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zag-js/tooltip",
3
- "version": "0.0.0-dev-20230705143151",
3
+ "version": "0.0.0-dev-20230710092359",
4
4
  "description": "Core logic for the tooltip widget implemented as a state machine",
5
5
  "keywords": [
6
6
  "js",
@@ -27,14 +27,14 @@
27
27
  "url": "https://github.com/chakra-ui/zag/issues"
28
28
  },
29
29
  "dependencies": {
30
- "@zag-js/anatomy": "0.0.0-dev-20230705143151",
31
- "@zag-js/core": "0.0.0-dev-20230705143151",
32
- "@zag-js/popper": "0.0.0-dev-20230705143151",
33
- "@zag-js/dom-query": "0.0.0-dev-20230705143151",
34
- "@zag-js/dom-event": "0.0.0-dev-20230705143151",
35
- "@zag-js/utils": "0.0.0-dev-20230705143151",
36
- "@zag-js/visually-hidden": "0.0.0-dev-20230705143151",
37
- "@zag-js/types": "0.0.0-dev-20230705143151"
30
+ "@zag-js/anatomy": "0.0.0-dev-20230710092359",
31
+ "@zag-js/core": "0.0.0-dev-20230710092359",
32
+ "@zag-js/popper": "0.0.0-dev-20230710092359",
33
+ "@zag-js/dom-query": "0.0.0-dev-20230710092359",
34
+ "@zag-js/dom-event": "0.0.0-dev-20230710092359",
35
+ "@zag-js/utils": "0.0.0-dev-20230710092359",
36
+ "@zag-js/visually-hidden": "0.0.0-dev-20230710092359",
37
+ "@zag-js/types": "0.0.0-dev-20230710092359"
38
38
  },
39
39
  "devDependencies": {
40
40
  "clean-package": "2.2.0"
@@ -52,7 +52,7 @@
52
52
  "./package.json": "./package.json"
53
53
  },
54
54
  "scripts": {
55
- "build": "vite build -c ../../../vite.config.ts",
55
+ "build": "tsup",
56
56
  "lint": "eslint src --ext .ts,.tsx",
57
57
  "typecheck": "tsc --noEmit"
58
58
  }
@@ -1,3 +0,0 @@
1
- import type { AnatomyInstance, AnatomyPart } from '@zag-js/anatomy';
2
- export declare const anatomy: AnatomyInstance<"content" | "label" | "trigger" | "arrow" | "arrowTip" | "positioner">;
3
- export declare const parts: Record<"content" | "label" | "trigger" | "arrow" | "arrowTip" | "positioner", AnatomyPart>;
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
-
5
- const anatomy$1 = require('@zag-js/anatomy');
6
-
7
- const anatomy = anatomy$1.createAnatomy("tooltip").parts("trigger", "arrow", "arrowTip", "positioner", "content", "label");
8
- const parts = anatomy.build();
9
-
10
- exports.anatomy = anatomy;
11
- exports.parts = parts;
@@ -1,6 +0,0 @@
1
- import { createAnatomy } from '@zag-js/anatomy';
2
-
3
- const anatomy = createAnatomy("tooltip").parts("trigger", "arrow", "arrowTip", "positioner", "content", "label");
4
- const parts = anatomy.build();
5
-
6
- export { anatomy, parts };
@@ -1,34 +0,0 @@
1
- import { PositioningOptions } from "@zag-js/popper";
2
- import type { NormalizeProps, PropTypes } from "@zag-js/types";
3
- import type { Send, State } from "./tooltip.types";
4
- export declare function connect<T extends PropTypes>(state: State, send: Send, normalize: NormalizeProps<T>): {
5
- /**
6
- * Whether the tooltip is open.
7
- */
8
- isOpen: boolean;
9
- /**
10
- * Function to open the tooltip.
11
- */
12
- open(): void;
13
- /**
14
- * Function to close the tooltip.
15
- */
16
- close(): void;
17
- /**
18
- * Returns the animation state of the tooltip.
19
- */
20
- getAnimationState(): {
21
- enter: boolean;
22
- exit: boolean;
23
- };
24
- /**
25
- * Function to reposition the popover
26
- */
27
- setPositioning(options?: Partial<PositioningOptions>): void;
28
- triggerProps: T["button"];
29
- arrowProps: T["element"];
30
- arrowTipProps: T["element"];
31
- positionerProps: T["element"];
32
- contentProps: T["element"];
33
- labelProps: T["element"];
34
- };