@tamagui/toast 1.61.2 → 1.62.0

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.
Files changed (91) hide show
  1. package/dist/cjs/Toast.js +26 -61
  2. package/dist/cjs/Toast.js.map +1 -1
  3. package/dist/cjs/Toast.native.js +141 -0
  4. package/dist/cjs/Toast.native.js.map +6 -0
  5. package/dist/cjs/ToastAnnounce.js +18 -40
  6. package/dist/cjs/ToastAnnounce.js.map +1 -1
  7. package/dist/cjs/ToastAnnounce.native.js +74 -0
  8. package/dist/cjs/ToastAnnounce.native.js.map +6 -0
  9. package/dist/cjs/ToastImperative.js +27 -65
  10. package/dist/cjs/ToastImperative.js.map +1 -1
  11. package/dist/cjs/ToastImperative.native.js +74 -0
  12. package/dist/cjs/ToastImperative.native.js.map +6 -0
  13. package/dist/cjs/ToastImpl.js +65 -213
  14. package/dist/cjs/ToastImpl.js.map +1 -1
  15. package/dist/cjs/ToastImpl.native.js +232 -0
  16. package/dist/cjs/ToastImpl.native.js.map +6 -0
  17. package/dist/cjs/ToastProvider.js +18 -41
  18. package/dist/cjs/ToastProvider.js.map +1 -1
  19. package/dist/cjs/ToastProvider.native.js +103 -0
  20. package/dist/cjs/ToastProvider.native.js.map +6 -0
  21. package/dist/cjs/ToastViewport.js +59 -150
  22. package/dist/cjs/ToastViewport.js.map +1 -1
  23. package/dist/cjs/ToastViewport.native.js +260 -0
  24. package/dist/cjs/ToastViewport.native.js.map +6 -0
  25. package/dist/cjs/constants.js +5 -9
  26. package/dist/cjs/constants.js.map +1 -1
  27. package/dist/cjs/constants.native.js +26 -0
  28. package/dist/cjs/constants.native.js.map +6 -0
  29. package/dist/cjs/createNativeToast.js +22 -43
  30. package/dist/cjs/createNativeToast.js.map +1 -1
  31. package/dist/cjs/createNativeToast.native.js +12 -21
  32. package/dist/cjs/createNativeToast.native.js.map +1 -1
  33. package/dist/cjs/index.js +4 -8
  34. package/dist/cjs/index.js.map +1 -1
  35. package/dist/cjs/index.native.js +20 -0
  36. package/dist/cjs/index.native.js.map +6 -0
  37. package/dist/cjs/types.js +3 -6
  38. package/dist/cjs/types.js.map +1 -1
  39. package/dist/cjs/types.native.js +15 -0
  40. package/dist/cjs/types.native.js.map +6 -0
  41. package/dist/esm/Toast.js +19 -37
  42. package/dist/esm/Toast.js.map +1 -1
  43. package/dist/esm/ToastAnnounce.js +11 -21
  44. package/dist/esm/ToastAnnounce.js.map +1 -1
  45. package/dist/esm/ToastImperative.js +20 -48
  46. package/dist/esm/ToastImperative.js.map +1 -1
  47. package/dist/esm/ToastImpl.js +58 -188
  48. package/dist/esm/ToastImpl.js.map +1 -1
  49. package/dist/esm/ToastProvider.js +11 -24
  50. package/dist/esm/ToastProvider.js.map +1 -1
  51. package/dist/esm/ToastViewport.js +52 -129
  52. package/dist/esm/ToastViewport.js.map +1 -1
  53. package/dist/esm/createNativeToast.js +17 -34
  54. package/dist/esm/createNativeToast.js.map +1 -1
  55. package/dist/jsx/Toast.js +17 -35
  56. package/dist/jsx/Toast.js.map +1 -1
  57. package/dist/jsx/Toast.native.js +127 -0
  58. package/dist/jsx/Toast.native.js.map +6 -0
  59. package/dist/jsx/ToastAnnounce.js +10 -20
  60. package/dist/jsx/ToastAnnounce.js.map +1 -1
  61. package/dist/jsx/ToastAnnounce.native.js +52 -0
  62. package/dist/jsx/ToastAnnounce.native.js.map +6 -0
  63. package/dist/jsx/ToastImperative.js +17 -45
  64. package/dist/jsx/ToastImperative.js.map +1 -1
  65. package/dist/jsx/ToastImperative.native.js +45 -0
  66. package/dist/jsx/ToastImperative.native.js.map +6 -0
  67. package/dist/jsx/ToastImpl.js +53 -183
  68. package/dist/jsx/ToastImpl.js.map +1 -1
  69. package/dist/jsx/ToastImpl.native.js +207 -0
  70. package/dist/jsx/ToastImpl.native.js.map +6 -0
  71. package/dist/jsx/ToastProvider.js +10 -23
  72. package/dist/jsx/ToastProvider.js.map +1 -1
  73. package/dist/jsx/ToastProvider.native.js +68 -0
  74. package/dist/jsx/ToastProvider.native.js.map +6 -0
  75. package/dist/jsx/ToastViewport.js +49 -124
  76. package/dist/jsx/ToastViewport.js.map +1 -1
  77. package/dist/jsx/ToastViewport.native.js +225 -0
  78. package/dist/jsx/ToastViewport.native.js.map +6 -0
  79. package/dist/jsx/constants.native.js +5 -0
  80. package/dist/jsx/constants.native.js.map +6 -0
  81. package/dist/jsx/createNativeToast.js +17 -34
  82. package/dist/jsx/createNativeToast.js.map +1 -1
  83. package/dist/jsx/createNativeToast.native.js +7 -13
  84. package/dist/jsx/createNativeToast.native.js.map +1 -1
  85. package/dist/jsx/index.native.js +2 -0
  86. package/dist/jsx/index.native.js.map +6 -0
  87. package/dist/jsx/types.native.js +1 -0
  88. package/dist/jsx/types.native.js.map +6 -0
  89. package/package.json +13 -13
  90. package/dist/esm/createNativeToast.native.js +0 -19
  91. package/dist/esm/createNativeToast.native.js.map +0 -6
@@ -1,20 +1,15 @@
1
- "use strict";
2
1
  var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
14
11
  for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
13
  return to;
19
14
  };
20
15
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
@@ -22,10 +17,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
17
  // file that has been converted to a CommonJS file using a Babel-
23
18
  // compatible transform (i.e. "__esModule" has not been set), then set
24
19
  // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
26
21
  mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
29
23
  var ToastViewport_exports = {};
30
24
  __export(ToastViewport_exports, {
31
25
  ToastViewport: () => ToastViewport,
@@ -34,20 +28,8 @@ __export(ToastViewport_exports, {
34
28
  VIEWPORT_RESUME: () => VIEWPORT_RESUME
35
29
  });
36
30
  module.exports = __toCommonJS(ToastViewport_exports);
37
- var import_jsx_runtime = require("react/jsx-runtime");
38
- var import_animate_presence = require("@tamagui/animate-presence");
39
- var import_compose_refs = require("@tamagui/compose-refs");
40
- var import_core = require("@tamagui/core");
41
- var import_portal = require("@tamagui/portal");
42
- var import_stacks = require("@tamagui/stacks");
43
- var import_visually_hidden = require("@tamagui/visually-hidden");
44
- var React = __toESM(require("react"));
45
- var import_ToastProvider = require("./ToastProvider");
46
- const VIEWPORT_NAME = "ToastViewport";
47
- const VIEWPORT_DEFAULT_HOTKEY = ["F8"];
48
- const VIEWPORT_PAUSE = "toast.viewportPause";
49
- const VIEWPORT_RESUME = "toast.viewportResume";
50
- const ToastViewportWrapperFrame = (0, import_core.styled)(import_stacks.YStack, {
31
+ var import_animate_presence = require("@tamagui/animate-presence"), import_compose_refs = require("@tamagui/compose-refs"), import_core = require("@tamagui/core"), import_portal = require("@tamagui/portal"), import_stacks = require("@tamagui/stacks"), import_visually_hidden = require("@tamagui/visually-hidden"), React = __toESM(require("react")), import_ToastProvider = require("./ToastProvider"), import_jsx_runtime = require("react/jsx-runtime");
32
+ const VIEWPORT_NAME = "ToastViewport", VIEWPORT_DEFAULT_HOTKEY = ["F8"], VIEWPORT_PAUSE = "toast.viewportPause", VIEWPORT_RESUME = "toast.viewportResume", ToastViewportWrapperFrame = (0, import_core.styled)(import_stacks.YStack, {
51
33
  name: "ViewportWrapper",
52
34
  variants: {
53
35
  unstyled: {
@@ -65,10 +47,9 @@ const ToastViewportWrapperFrame = (0, import_core.styled)(import_stacks.YStack,
65
47
  }
66
48
  },
67
49
  defaultVariants: {
68
- unstyled: false
50
+ unstyled: !1
69
51
  }
70
- });
71
- const ToastViewportFrame = (0, import_core.styled)(import_stacks.YStack, {
52
+ }), ToastViewportFrame = (0, import_core.styled)(import_stacks.YStack, {
72
53
  name: VIEWPORT_NAME,
73
54
  variants: {
74
55
  unstyled: {
@@ -80,10 +61,9 @@ const ToastViewportFrame = (0, import_core.styled)(import_stacks.YStack, {
80
61
  }
81
62
  },
82
63
  defaultVariants: {
83
- unstyled: false
64
+ unstyled: !1
84
65
  }
85
- });
86
- const ToastViewport = React.forwardRef(
66
+ }), ToastViewport = React.forwardRef(
87
67
  (props, forwardedRef) => {
88
68
  const {
89
69
  __scopeToast,
@@ -92,145 +72,88 @@ const ToastViewport = React.forwardRef(
92
72
  name = "default",
93
73
  multipleToasts,
94
74
  ...viewportProps
95
- } = props;
96
- const context = (0, import_ToastProvider.useToastProviderContext)(VIEWPORT_NAME, __scopeToast);
97
- const getItems = (0, import_ToastProvider.useCollection)(__scopeToast);
98
- const headFocusProxyRef = React.useRef(null);
99
- const tailFocusProxyRef = React.useRef(null);
100
- const wrapperRef = React.useRef(null);
101
- const ref = React.useRef(null);
102
- const onViewportChange = React.useCallback(
75
+ } = props, context = (0, import_ToastProvider.useToastProviderContext)(VIEWPORT_NAME, __scopeToast), getItems = (0, import_ToastProvider.useCollection)(__scopeToast), headFocusProxyRef = React.useRef(null), tailFocusProxyRef = React.useRef(null), wrapperRef = React.useRef(null), ref = React.useRef(null), onViewportChange = React.useCallback(
103
76
  (el) => {
104
- if (context.viewports[name] !== el)
105
- context.onViewportChange(name, el);
77
+ context.viewports[name] !== el && context.onViewportChange(name, el);
106
78
  },
107
79
  [name, context.viewports]
108
- );
109
- const composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, ref, onViewportChange);
110
- const hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, "");
111
- const hasToasts = context.toastCount > 0;
80
+ ), composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, ref, onViewportChange), hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, ""), hasToasts = context.toastCount > 0;
112
81
  React.useEffect(() => {
113
- if (!import_core.isWeb)
114
- return;
115
- if (context.toastCount === 0)
82
+ if (!import_core.isWeb || context.toastCount === 0)
116
83
  return;
117
84
  const handleKeyDown = (event) => {
118
- var _a;
119
- const isHotkeyPressed = hotkey.every(
85
+ hotkey.every(
120
86
  (key) => event[key] || event.code === key
121
- );
122
- if (isHotkeyPressed)
123
- (_a = ref.current) == null ? void 0 : _a.focus();
87
+ ) && ref.current?.focus();
124
88
  };
125
- document.addEventListener("keydown", handleKeyDown);
126
- return () => {
89
+ return document.addEventListener("keydown", handleKeyDown), () => {
127
90
  document.removeEventListener("keydown", handleKeyDown);
128
91
  };
129
- }, [hotkey, context.toastCount]);
130
- React.useEffect(() => {
131
- if (!import_core.isWeb)
92
+ }, [hotkey, context.toastCount]), React.useEffect(() => {
93
+ if (!import_core.isWeb || context.toastCount === 0)
132
94
  return;
133
- if (context.toastCount === 0)
134
- return;
135
- const wrapper = wrapperRef.current;
136
- const viewport = ref.current;
95
+ const wrapper = wrapperRef.current, viewport = ref.current;
137
96
  if (hasToasts && wrapper && viewport) {
138
97
  const handlePause = () => {
139
98
  if (!context.isClosePausedRef.current) {
140
99
  const pauseEvent = new CustomEvent(VIEWPORT_PAUSE);
141
- viewport.dispatchEvent(pauseEvent);
142
- context.isClosePausedRef.current = true;
100
+ viewport.dispatchEvent(pauseEvent), context.isClosePausedRef.current = !0;
143
101
  }
144
- };
145
- const handleResume = () => {
102
+ }, handleResume = () => {
146
103
  if (context.isClosePausedRef.current) {
147
104
  const resumeEvent = new CustomEvent(VIEWPORT_RESUME);
148
- viewport.dispatchEvent(resumeEvent);
149
- context.isClosePausedRef.current = false;
105
+ viewport.dispatchEvent(resumeEvent), context.isClosePausedRef.current = !1;
150
106
  }
151
- };
152
- const handleFocusOutResume = (event) => {
153
- const isFocusMovingOutside = !wrapper.contains(
107
+ }, handleFocusOutResume = (event) => {
108
+ !wrapper.contains(
154
109
  event.relatedTarget
155
- );
156
- if (isFocusMovingOutside)
157
- handleResume();
110
+ ) && handleResume();
111
+ }, handlePointerLeaveResume = () => {
112
+ wrapper.contains(document.activeElement) || handleResume();
158
113
  };
159
- const handlePointerLeaveResume = () => {
160
- const isFocusInside = wrapper.contains(document.activeElement);
161
- if (!isFocusInside)
162
- handleResume();
163
- };
164
- wrapper.addEventListener("focusin", handlePause);
165
- wrapper.addEventListener("focusout", handleFocusOutResume);
166
- wrapper.addEventListener("pointermove", handlePause);
167
- wrapper.addEventListener("pointerleave", handlePointerLeaveResume);
168
- window.addEventListener("blur", handlePause);
169
- window.addEventListener("focus", handleResume);
170
- return () => {
171
- wrapper.removeEventListener("focusin", handlePause);
172
- wrapper.removeEventListener("focusout", handleFocusOutResume);
173
- wrapper.removeEventListener("pointermove", handlePause);
174
- wrapper.removeEventListener("pointerleave", handlePointerLeaveResume);
175
- window.removeEventListener("blur", handlePause);
176
- window.removeEventListener("focus", handleResume);
114
+ return wrapper.addEventListener("focusin", handlePause), wrapper.addEventListener("focusout", handleFocusOutResume), wrapper.addEventListener("pointermove", handlePause), wrapper.addEventListener("pointerleave", handlePointerLeaveResume), window.addEventListener("blur", handlePause), window.addEventListener("focus", handleResume), () => {
115
+ wrapper.removeEventListener("focusin", handlePause), wrapper.removeEventListener("focusout", handleFocusOutResume), wrapper.removeEventListener("pointermove", handlePause), wrapper.removeEventListener("pointerleave", handlePointerLeaveResume), window.removeEventListener("blur", handlePause), window.removeEventListener("focus", handleResume);
177
116
  };
178
117
  }
179
118
  }, [hasToasts, context.isClosePausedRef, context.toastCount]);
180
119
  const getSortedTabbableCandidates = React.useCallback(
181
120
  ({ tabbingDirection }) => {
182
- const toastItems = getItems();
183
- const tabbableCandidates = toastItems.map((toastItem) => {
184
- const toastNode = toastItem.ref.current;
185
- const toastTabbableCandidates = [toastNode, ...getTabbableCandidates(toastNode)];
121
+ const tabbableCandidates = getItems().map((toastItem) => {
122
+ const toastNode = toastItem.ref.current, toastTabbableCandidates = [toastNode, ...getTabbableCandidates(toastNode)];
186
123
  return tabbingDirection === "forwards" ? toastTabbableCandidates : toastTabbableCandidates.reverse();
187
124
  });
188
125
  return (tabbingDirection === "forwards" ? tabbableCandidates.reverse() : tabbableCandidates).flat();
189
126
  },
190
127
  [getItems]
191
128
  );
192
- React.useEffect(() => {
193
- if (!import_core.isWeb)
194
- return;
195
- if (context.toastCount === 0)
129
+ return React.useEffect(() => {
130
+ if (!import_core.isWeb || context.toastCount === 0)
196
131
  return;
197
132
  const viewport = ref.current;
198
133
  if (viewport) {
199
134
  const handleKeyDown = (event) => {
200
- var _a, _b, _c;
201
135
  const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;
202
- const isTabKey = event.key === "Tab" && !isMetaKey;
203
- if (isTabKey) {
204
- const focusedElement = document.activeElement;
205
- const isTabbingBackwards = event.shiftKey;
206
- const targetIsViewport = event.target === viewport;
207
- if (targetIsViewport && isTabbingBackwards) {
208
- (_a = headFocusProxyRef.current) == null ? void 0 : _a.focus();
136
+ if (event.key === "Tab" && !isMetaKey) {
137
+ const focusedElement = document.activeElement, isTabbingBackwards = event.shiftKey;
138
+ if (event.target === viewport && isTabbingBackwards) {
139
+ headFocusProxyRef.current?.focus();
209
140
  return;
210
141
  }
211
- const tabbingDirection = isTabbingBackwards ? "backwards" : "forwards";
212
- const sortedCandidates = getSortedTabbableCandidates({ tabbingDirection });
213
- const index = sortedCandidates.findIndex(
142
+ const sortedCandidates = getSortedTabbableCandidates({ tabbingDirection: isTabbingBackwards ? "backwards" : "forwards" }), index = sortedCandidates.findIndex(
214
143
  (candidate) => candidate === focusedElement
215
144
  );
216
- if (focusFirst(sortedCandidates.slice(index + 1))) {
217
- event.preventDefault();
218
- } else {
219
- isTabbingBackwards ? (
220
- // @ts-ignore ali TODO type
221
- (_b = headFocusProxyRef.current) == null ? void 0 : _b.focus()
222
- ) : (
223
- // @ts-ignore ali TODO type
224
- (_c = tailFocusProxyRef.current) == null ? void 0 : _c.focus()
225
- );
226
- }
145
+ focusFirst(sortedCandidates.slice(index + 1)) ? event.preventDefault() : isTabbingBackwards ? (
146
+ // @ts-ignore ali TODO type
147
+ headFocusProxyRef.current?.focus()
148
+ ) : (
149
+ // @ts-ignore ali TODO type
150
+ tailFocusProxyRef.current?.focus()
151
+ );
227
152
  }
228
153
  };
229
- viewport.addEventListener("keydown", handleKeyDown);
230
- return () => viewport.removeEventListener("keydown", handleKeyDown);
154
+ return viewport.addEventListener("keydown", handleKeyDown), () => viewport.removeEventListener("keydown", handleKeyDown);
231
155
  }
232
- }, [getItems, getSortedTabbableCandidates, context.toastCount]);
233
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
156
+ }, [getItems, getSortedTabbableCandidates, context.toastCount]), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
234
157
  ToastViewportWrapperFrame,
235
158
  {
236
159
  ref: wrapperRef,
@@ -285,16 +208,13 @@ const ToastViewport = React.forwardRef(
285
208
  }
286
209
  );
287
210
  ToastViewport.displayName = VIEWPORT_NAME;
288
- const FOCUS_PROXY_NAME = "ToastFocusProxy";
289
- const FocusProxy = React.forwardRef(
211
+ const FOCUS_PROXY_NAME = "ToastFocusProxy", FocusProxy = React.forwardRef(
290
212
  (props, forwardedRef) => {
291
- const { __scopeToast, onFocusFromOutsideViewport, viewportName, ...proxyProps } = props;
292
- const context = (0, import_ToastProvider.useToastProviderContext)(FOCUS_PROXY_NAME, __scopeToast);
293
- const viewport = context.viewports[viewportName];
213
+ const { __scopeToast, onFocusFromOutsideViewport, viewportName, ...proxyProps } = props, viewport = (0, import_ToastProvider.useToastProviderContext)(FOCUS_PROXY_NAME, __scopeToast).viewports[viewportName];
294
214
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
295
215
  import_visually_hidden.VisuallyHidden,
296
216
  {
297
- "aria-hidden": true,
217
+ "aria-hidden": !0,
298
218
  tabIndex: 0,
299
219
  ...proxyProps,
300
220
  ref: forwardedRef,
@@ -303,9 +223,7 @@ const FocusProxy = React.forwardRef(
303
223
  if (!import_core.isWeb)
304
224
  return;
305
225
  const prevFocusedElement = event.relatedTarget;
306
- const isFocusFromOutsideViewport = !(viewport == null ? void 0 : viewport.contains(prevFocusedElement));
307
- if (isFocusFromOutsideViewport)
308
- onFocusFromOutsideViewport();
226
+ !viewport?.contains(prevFocusedElement) && onFocusFromOutsideViewport();
309
227
  }
310
228
  }
311
229
  );
@@ -316,27 +234,18 @@ function focusFirst(candidates) {
316
234
  if (!import_core.isWeb)
317
235
  return;
318
236
  const previouslyFocusedElement = document.activeElement;
319
- return candidates.some((candidate) => {
320
- if (candidate === previouslyFocusedElement)
321
- return true;
322
- candidate.focus();
323
- return document.activeElement !== previouslyFocusedElement;
324
- });
237
+ return candidates.some((candidate) => candidate === previouslyFocusedElement ? !0 : (candidate.focus(), document.activeElement !== previouslyFocusedElement));
325
238
  }
326
239
  function getTabbableCandidates(container) {
327
240
  if (!import_core.isWeb)
328
241
  return [];
329
- const containerHtml = container;
330
- const nodes = [];
331
- const walker = document.createTreeWalker(containerHtml, NodeFilter.SHOW_ELEMENT, {
242
+ const containerHtml = container, nodes = [], walker = document.createTreeWalker(containerHtml, NodeFilter.SHOW_ELEMENT, {
332
243
  acceptNode: (node) => {
333
244
  const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
334
- if (node.disabled || node.hidden || isHiddenInput)
335
- return NodeFilter.FILTER_SKIP;
336
- return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
245
+ return node.disabled || node.hidden || isHiddenInput ? NodeFilter.FILTER_SKIP : node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
337
246
  }
338
247
  });
339
- while (walker.nextNode())
248
+ for (; walker.nextNode(); )
340
249
  nodes.push(walker.currentNode);
341
250
  return nodes;
342
251
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/ToastViewport.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,260 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: !0 });
10
+ }, __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from == "object" || typeof from == "function")
12
+ for (let key of __getOwnPropNames(from))
13
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
22
+ mod
23
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
24
+ var ToastViewport_exports = {};
25
+ __export(ToastViewport_exports, {
26
+ ToastViewport: () => ToastViewport,
27
+ VIEWPORT_DEFAULT_HOTKEY: () => VIEWPORT_DEFAULT_HOTKEY,
28
+ VIEWPORT_PAUSE: () => VIEWPORT_PAUSE,
29
+ VIEWPORT_RESUME: () => VIEWPORT_RESUME
30
+ });
31
+ module.exports = __toCommonJS(ToastViewport_exports);
32
+ var import_animate_presence = require("@tamagui/animate-presence"), import_compose_refs = require("@tamagui/compose-refs"), import_core = require("@tamagui/core"), import_portal = require("@tamagui/portal"), import_stacks = require("@tamagui/stacks"), import_visually_hidden = require("@tamagui/visually-hidden"), React = __toESM(require("react")), import_ToastProvider = require("./ToastProvider"), import_jsx_runtime = require("react/jsx-runtime");
33
+ const VIEWPORT_NAME = "ToastViewport", VIEWPORT_DEFAULT_HOTKEY = ["F8"], VIEWPORT_PAUSE = "toast.viewportPause", VIEWPORT_RESUME = "toast.viewportResume", ToastViewportWrapperFrame = (0, import_core.styled)(import_stacks.YStack, {
34
+ name: "ViewportWrapper",
35
+ variants: {
36
+ unstyled: {
37
+ false: {
38
+ pointerEvents: "box-none",
39
+ top: 0,
40
+ bottom: 0,
41
+ left: 0,
42
+ right: 0,
43
+ position: import_core.isWeb ? "fixed" : "absolute",
44
+ maxWidth: "100%",
45
+ tabIndex: 0,
46
+ zIndex: 1e5
47
+ }
48
+ }
49
+ },
50
+ defaultVariants: {
51
+ unstyled: !1
52
+ }
53
+ }), ToastViewportFrame = (0, import_core.styled)(import_stacks.YStack, {
54
+ name: VIEWPORT_NAME,
55
+ variants: {
56
+ unstyled: {
57
+ false: {
58
+ pointerEvents: "box-none",
59
+ position: import_core.isWeb ? "fixed" : "absolute",
60
+ maxWidth: "100%"
61
+ }
62
+ }
63
+ },
64
+ defaultVariants: {
65
+ unstyled: !1
66
+ }
67
+ }), ToastViewport = React.forwardRef(
68
+ (props, forwardedRef) => {
69
+ const {
70
+ __scopeToast,
71
+ hotkey = VIEWPORT_DEFAULT_HOTKEY,
72
+ label = "Notifications ({hotkey})",
73
+ name = "default",
74
+ multipleToasts,
75
+ ...viewportProps
76
+ } = props, context = (0, import_ToastProvider.useToastProviderContext)(VIEWPORT_NAME, __scopeToast), getItems = (0, import_ToastProvider.useCollection)(__scopeToast), headFocusProxyRef = React.useRef(null), tailFocusProxyRef = React.useRef(null), wrapperRef = React.useRef(null), ref = React.useRef(null), onViewportChange = React.useCallback(
77
+ (el) => {
78
+ context.viewports[name] !== el && context.onViewportChange(name, el);
79
+ },
80
+ [name, context.viewports]
81
+ ), composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, ref, onViewportChange), hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, ""), hasToasts = context.toastCount > 0;
82
+ React.useEffect(() => {
83
+ if (!import_core.isWeb || context.toastCount === 0)
84
+ return;
85
+ const handleKeyDown = (event) => {
86
+ hotkey.every(
87
+ (key) => event[key] || event.code === key
88
+ ) && ref.current?.focus();
89
+ };
90
+ return document.addEventListener("keydown", handleKeyDown), () => {
91
+ document.removeEventListener("keydown", handleKeyDown);
92
+ };
93
+ }, [hotkey, context.toastCount]), React.useEffect(() => {
94
+ if (!import_core.isWeb || context.toastCount === 0)
95
+ return;
96
+ const wrapper = wrapperRef.current, viewport = ref.current;
97
+ if (hasToasts && wrapper && viewport) {
98
+ const handlePause = () => {
99
+ if (!context.isClosePausedRef.current) {
100
+ const pauseEvent = new CustomEvent(VIEWPORT_PAUSE);
101
+ viewport.dispatchEvent(pauseEvent), context.isClosePausedRef.current = !0;
102
+ }
103
+ }, handleResume = () => {
104
+ if (context.isClosePausedRef.current) {
105
+ const resumeEvent = new CustomEvent(VIEWPORT_RESUME);
106
+ viewport.dispatchEvent(resumeEvent), context.isClosePausedRef.current = !1;
107
+ }
108
+ }, handleFocusOutResume = (event) => {
109
+ !wrapper.contains(
110
+ event.relatedTarget
111
+ ) && handleResume();
112
+ }, handlePointerLeaveResume = () => {
113
+ wrapper.contains(document.activeElement) || handleResume();
114
+ };
115
+ return wrapper.addEventListener("focusin", handlePause), wrapper.addEventListener("focusout", handleFocusOutResume), wrapper.addEventListener("pointermove", handlePause), wrapper.addEventListener("pointerleave", handlePointerLeaveResume), window.addEventListener("blur", handlePause), window.addEventListener("focus", handleResume), () => {
116
+ wrapper.removeEventListener("focusin", handlePause), wrapper.removeEventListener("focusout", handleFocusOutResume), wrapper.removeEventListener("pointermove", handlePause), wrapper.removeEventListener("pointerleave", handlePointerLeaveResume), window.removeEventListener("blur", handlePause), window.removeEventListener("focus", handleResume);
117
+ };
118
+ }
119
+ }, [hasToasts, context.isClosePausedRef, context.toastCount]);
120
+ const getSortedTabbableCandidates = React.useCallback(
121
+ ({ tabbingDirection }) => {
122
+ const tabbableCandidates = getItems().map((toastItem) => {
123
+ const toastNode = toastItem.ref.current, toastTabbableCandidates = [toastNode, ...getTabbableCandidates(toastNode)];
124
+ return tabbingDirection === "forwards" ? toastTabbableCandidates : toastTabbableCandidates.reverse();
125
+ });
126
+ return (tabbingDirection === "forwards" ? tabbableCandidates.reverse() : tabbableCandidates).flat();
127
+ },
128
+ [getItems]
129
+ );
130
+ return React.useEffect(() => {
131
+ if (!import_core.isWeb || context.toastCount === 0)
132
+ return;
133
+ const viewport = ref.current;
134
+ if (viewport) {
135
+ const handleKeyDown = (event) => {
136
+ const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;
137
+ if (event.key === "Tab" && !isMetaKey) {
138
+ const focusedElement = document.activeElement, isTabbingBackwards = event.shiftKey;
139
+ if (event.target === viewport && isTabbingBackwards) {
140
+ headFocusProxyRef.current?.focus();
141
+ return;
142
+ }
143
+ const sortedCandidates = getSortedTabbableCandidates({ tabbingDirection: isTabbingBackwards ? "backwards" : "forwards" }), index = sortedCandidates.findIndex(
144
+ (candidate) => candidate === focusedElement
145
+ );
146
+ focusFirst(sortedCandidates.slice(index + 1)) ? event.preventDefault() : isTabbingBackwards ? (
147
+ // @ts-ignore ali TODO type
148
+ headFocusProxyRef.current?.focus()
149
+ ) : (
150
+ // @ts-ignore ali TODO type
151
+ tailFocusProxyRef.current?.focus()
152
+ );
153
+ }
154
+ };
155
+ return viewport.addEventListener("keydown", handleKeyDown), () => viewport.removeEventListener("keydown", handleKeyDown);
156
+ }
157
+ }, [getItems, getSortedTabbableCandidates, context.toastCount]), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
158
+ ToastViewportWrapperFrame,
159
+ {
160
+ ref: wrapperRef,
161
+ role: "region",
162
+ "aria-label": label.replace("{hotkey}", hotkeyLabel),
163
+ tabIndex: -1,
164
+ children: [
165
+ hasToasts && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
166
+ FocusProxy,
167
+ {
168
+ viewportName: name,
169
+ ref: headFocusProxyRef,
170
+ onFocusFromOutsideViewport: () => {
171
+ const tabbableCandidates = getSortedTabbableCandidates({
172
+ tabbingDirection: "forwards"
173
+ });
174
+ focusFirst(tabbableCandidates);
175
+ }
176
+ }
177
+ ),
178
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ToastProvider.Collection.Slot, { scope: __scopeToast, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
179
+ ToastViewportFrame,
180
+ {
181
+ focusable: context.toastCount > 0,
182
+ ref: composedRefs,
183
+ ...viewportProps,
184
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
185
+ import_portal.PortalHost,
186
+ {
187
+ render: (children) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_animate_presence.AnimatePresence, { exitBeforeEnter: !multipleToasts, children }),
188
+ name: name ?? "default"
189
+ }
190
+ )
191
+ }
192
+ ) }),
193
+ hasToasts && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
194
+ FocusProxy,
195
+ {
196
+ viewportName: name,
197
+ ref: tailFocusProxyRef,
198
+ onFocusFromOutsideViewport: () => {
199
+ const tabbableCandidates = getSortedTabbableCandidates({
200
+ tabbingDirection: "backwards"
201
+ });
202
+ focusFirst(tabbableCandidates);
203
+ }
204
+ }
205
+ )
206
+ ]
207
+ }
208
+ );
209
+ }
210
+ );
211
+ ToastViewport.displayName = VIEWPORT_NAME;
212
+ const FOCUS_PROXY_NAME = "ToastFocusProxy", FocusProxy = React.forwardRef(
213
+ (props, forwardedRef) => {
214
+ const { __scopeToast, onFocusFromOutsideViewport, viewportName, ...proxyProps } = props, viewport = (0, import_ToastProvider.useToastProviderContext)(FOCUS_PROXY_NAME, __scopeToast).viewports[viewportName];
215
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
216
+ import_visually_hidden.VisuallyHidden,
217
+ {
218
+ "aria-hidden": !0,
219
+ tabIndex: 0,
220
+ ...proxyProps,
221
+ ref: forwardedRef,
222
+ position: import_core.isWeb ? "fixed" : "absolute",
223
+ onFocus: (event) => {
224
+ if (!import_core.isWeb)
225
+ return;
226
+ const prevFocusedElement = event.relatedTarget;
227
+ !viewport?.contains(prevFocusedElement) && onFocusFromOutsideViewport();
228
+ }
229
+ }
230
+ );
231
+ }
232
+ );
233
+ FocusProxy.displayName = FOCUS_PROXY_NAME;
234
+ function focusFirst(candidates) {
235
+ if (!import_core.isWeb)
236
+ return;
237
+ const previouslyFocusedElement = document.activeElement;
238
+ return candidates.some((candidate) => candidate === previouslyFocusedElement ? !0 : (candidate.focus(), document.activeElement !== previouslyFocusedElement));
239
+ }
240
+ function getTabbableCandidates(container) {
241
+ if (!import_core.isWeb)
242
+ return [];
243
+ const containerHtml = container, nodes = [], walker = document.createTreeWalker(containerHtml, NodeFilter.SHOW_ELEMENT, {
244
+ acceptNode: (node) => {
245
+ const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
246
+ return node.disabled || node.hidden || isHiddenInput ? NodeFilter.FILTER_SKIP : node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
247
+ }
248
+ });
249
+ for (; walker.nextNode(); )
250
+ nodes.push(walker.currentNode);
251
+ return nodes;
252
+ }
253
+ // Annotate the CommonJS export names for ESM import in node:
254
+ 0 && (module.exports = {
255
+ ToastViewport,
256
+ VIEWPORT_DEFAULT_HOTKEY,
257
+ VIEWPORT_PAUSE,
258
+ VIEWPORT_RESUME
259
+ });
260
+ //# sourceMappingURL=ToastViewport.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/ToastViewport.tsx"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }