@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
@@ -10,11 +10,7 @@ import {
10
10
  useCollection,
11
11
  useToastProviderContext
12
12
  } from "./ToastProvider";
13
- const VIEWPORT_NAME = "ToastViewport";
14
- const VIEWPORT_DEFAULT_HOTKEY = ["F8"];
15
- const VIEWPORT_PAUSE = "toast.viewportPause";
16
- const VIEWPORT_RESUME = "toast.viewportResume";
17
- const ToastViewportWrapperFrame = styled(YStack, {
13
+ const VIEWPORT_NAME = "ToastViewport", VIEWPORT_DEFAULT_HOTKEY = ["F8"], VIEWPORT_PAUSE = "toast.viewportPause", VIEWPORT_RESUME = "toast.viewportResume", ToastViewportWrapperFrame = styled(YStack, {
18
14
  name: "ViewportWrapper",
19
15
  variants: {
20
16
  unstyled: {
@@ -32,10 +28,9 @@ const ToastViewportWrapperFrame = styled(YStack, {
32
28
  }
33
29
  },
34
30
  defaultVariants: {
35
- unstyled: false
31
+ unstyled: !1
36
32
  }
37
- });
38
- const ToastViewportFrame = styled(YStack, {
33
+ }), ToastViewportFrame = styled(YStack, {
39
34
  name: VIEWPORT_NAME,
40
35
  variants: {
41
36
  unstyled: {
@@ -47,10 +42,9 @@ const ToastViewportFrame = styled(YStack, {
47
42
  }
48
43
  },
49
44
  defaultVariants: {
50
- unstyled: false
45
+ unstyled: !1
51
46
  }
52
- });
53
- const ToastViewport = React.forwardRef(
47
+ }), ToastViewport = React.forwardRef(
54
48
  (props, forwardedRef) => {
55
49
  const {
56
50
  __scopeToast,
@@ -59,143 +53,88 @@ const ToastViewport = React.forwardRef(
59
53
  name = "default",
60
54
  multipleToasts,
61
55
  ...viewportProps
62
- } = props;
63
- const context = useToastProviderContext(VIEWPORT_NAME, __scopeToast);
64
- const getItems = useCollection(__scopeToast);
65
- const headFocusProxyRef = React.useRef(null);
66
- const tailFocusProxyRef = React.useRef(null);
67
- const wrapperRef = React.useRef(null);
68
- const ref = React.useRef(null);
69
- const onViewportChange = React.useCallback(
56
+ } = props, context = useToastProviderContext(VIEWPORT_NAME, __scopeToast), getItems = useCollection(__scopeToast), headFocusProxyRef = React.useRef(null), tailFocusProxyRef = React.useRef(null), wrapperRef = React.useRef(null), ref = React.useRef(null), onViewportChange = React.useCallback(
70
57
  (el) => {
71
- if (context.viewports[name] !== el)
72
- context.onViewportChange(name, el);
58
+ context.viewports[name] !== el && context.onViewportChange(name, el);
73
59
  },
74
60
  [name, context.viewports]
75
- );
76
- const composedRefs = useComposedRefs(forwardedRef, ref, onViewportChange);
77
- const hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, "");
78
- const hasToasts = context.toastCount > 0;
61
+ ), composedRefs = useComposedRefs(forwardedRef, ref, onViewportChange), hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, ""), hasToasts = context.toastCount > 0;
79
62
  React.useEffect(() => {
80
- if (!isWeb)
81
- return;
82
- if (context.toastCount === 0)
63
+ if (!isWeb || context.toastCount === 0)
83
64
  return;
84
65
  const handleKeyDown = (event) => {
85
- const isHotkeyPressed = hotkey.every(
66
+ hotkey.every(
86
67
  (key) => event[key] || event.code === key
87
- );
88
- if (isHotkeyPressed)
89
- ref.current?.focus();
68
+ ) && ref.current?.focus();
90
69
  };
91
- document.addEventListener("keydown", handleKeyDown);
92
- return () => {
70
+ return document.addEventListener("keydown", handleKeyDown), () => {
93
71
  document.removeEventListener("keydown", handleKeyDown);
94
72
  };
95
- }, [hotkey, context.toastCount]);
96
- React.useEffect(() => {
97
- if (!isWeb)
98
- return;
99
- if (context.toastCount === 0)
73
+ }, [hotkey, context.toastCount]), React.useEffect(() => {
74
+ if (!isWeb || context.toastCount === 0)
100
75
  return;
101
- const wrapper = wrapperRef.current;
102
- const viewport = ref.current;
76
+ const wrapper = wrapperRef.current, viewport = ref.current;
103
77
  if (hasToasts && wrapper && viewport) {
104
78
  const handlePause = () => {
105
79
  if (!context.isClosePausedRef.current) {
106
80
  const pauseEvent = new CustomEvent(VIEWPORT_PAUSE);
107
- viewport.dispatchEvent(pauseEvent);
108
- context.isClosePausedRef.current = true;
81
+ viewport.dispatchEvent(pauseEvent), context.isClosePausedRef.current = !0;
109
82
  }
110
- };
111
- const handleResume = () => {
83
+ }, handleResume = () => {
112
84
  if (context.isClosePausedRef.current) {
113
85
  const resumeEvent = new CustomEvent(VIEWPORT_RESUME);
114
- viewport.dispatchEvent(resumeEvent);
115
- context.isClosePausedRef.current = false;
86
+ viewport.dispatchEvent(resumeEvent), context.isClosePausedRef.current = !1;
116
87
  }
117
- };
118
- const handleFocusOutResume = (event) => {
119
- const isFocusMovingOutside = !wrapper.contains(
88
+ }, handleFocusOutResume = (event) => {
89
+ !wrapper.contains(
120
90
  event.relatedTarget
121
- );
122
- if (isFocusMovingOutside)
123
- handleResume();
91
+ ) && handleResume();
92
+ }, handlePointerLeaveResume = () => {
93
+ wrapper.contains(document.activeElement) || handleResume();
124
94
  };
125
- const handlePointerLeaveResume = () => {
126
- const isFocusInside = wrapper.contains(document.activeElement);
127
- if (!isFocusInside)
128
- handleResume();
129
- };
130
- wrapper.addEventListener("focusin", handlePause);
131
- wrapper.addEventListener("focusout", handleFocusOutResume);
132
- wrapper.addEventListener("pointermove", handlePause);
133
- wrapper.addEventListener("pointerleave", handlePointerLeaveResume);
134
- window.addEventListener("blur", handlePause);
135
- window.addEventListener("focus", handleResume);
136
- return () => {
137
- wrapper.removeEventListener("focusin", handlePause);
138
- wrapper.removeEventListener("focusout", handleFocusOutResume);
139
- wrapper.removeEventListener("pointermove", handlePause);
140
- wrapper.removeEventListener("pointerleave", handlePointerLeaveResume);
141
- window.removeEventListener("blur", handlePause);
142
- window.removeEventListener("focus", handleResume);
95
+ 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), () => {
96
+ wrapper.removeEventListener("focusin", handlePause), wrapper.removeEventListener("focusout", handleFocusOutResume), wrapper.removeEventListener("pointermove", handlePause), wrapper.removeEventListener("pointerleave", handlePointerLeaveResume), window.removeEventListener("blur", handlePause), window.removeEventListener("focus", handleResume);
143
97
  };
144
98
  }
145
99
  }, [hasToasts, context.isClosePausedRef, context.toastCount]);
146
100
  const getSortedTabbableCandidates = React.useCallback(
147
101
  ({ tabbingDirection }) => {
148
- const toastItems = getItems();
149
- const tabbableCandidates = toastItems.map((toastItem) => {
150
- const toastNode = toastItem.ref.current;
151
- const toastTabbableCandidates = [toastNode, ...getTabbableCandidates(toastNode)];
102
+ const tabbableCandidates = getItems().map((toastItem) => {
103
+ const toastNode = toastItem.ref.current, toastTabbableCandidates = [toastNode, ...getTabbableCandidates(toastNode)];
152
104
  return tabbingDirection === "forwards" ? toastTabbableCandidates : toastTabbableCandidates.reverse();
153
105
  });
154
106
  return (tabbingDirection === "forwards" ? tabbableCandidates.reverse() : tabbableCandidates).flat();
155
107
  },
156
108
  [getItems]
157
109
  );
158
- React.useEffect(() => {
159
- if (!isWeb)
160
- return;
161
- if (context.toastCount === 0)
110
+ return React.useEffect(() => {
111
+ if (!isWeb || context.toastCount === 0)
162
112
  return;
163
113
  const viewport = ref.current;
164
114
  if (viewport) {
165
115
  const handleKeyDown = (event) => {
166
116
  const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;
167
- const isTabKey = event.key === "Tab" && !isMetaKey;
168
- if (isTabKey) {
169
- const focusedElement = document.activeElement;
170
- const isTabbingBackwards = event.shiftKey;
171
- const targetIsViewport = event.target === viewport;
172
- if (targetIsViewport && isTabbingBackwards) {
117
+ if (event.key === "Tab" && !isMetaKey) {
118
+ const focusedElement = document.activeElement, isTabbingBackwards = event.shiftKey;
119
+ if (event.target === viewport && isTabbingBackwards) {
173
120
  headFocusProxyRef.current?.focus();
174
121
  return;
175
122
  }
176
- const tabbingDirection = isTabbingBackwards ? "backwards" : "forwards";
177
- const sortedCandidates = getSortedTabbableCandidates({ tabbingDirection });
178
- const index = sortedCandidates.findIndex(
123
+ const sortedCandidates = getSortedTabbableCandidates({ tabbingDirection: isTabbingBackwards ? "backwards" : "forwards" }), index = sortedCandidates.findIndex(
179
124
  (candidate) => candidate === focusedElement
180
125
  );
181
- if (focusFirst(sortedCandidates.slice(index + 1))) {
182
- event.preventDefault();
183
- } else {
184
- isTabbingBackwards ? (
185
- // @ts-ignore ali TODO type
186
- headFocusProxyRef.current?.focus()
187
- ) : (
188
- // @ts-ignore ali TODO type
189
- tailFocusProxyRef.current?.focus()
190
- );
191
- }
126
+ focusFirst(sortedCandidates.slice(index + 1)) ? event.preventDefault() : isTabbingBackwards ? (
127
+ // @ts-ignore ali TODO type
128
+ headFocusProxyRef.current?.focus()
129
+ ) : (
130
+ // @ts-ignore ali TODO type
131
+ tailFocusProxyRef.current?.focus()
132
+ );
192
133
  }
193
134
  };
194
- viewport.addEventListener("keydown", handleKeyDown);
195
- return () => viewport.removeEventListener("keydown", handleKeyDown);
135
+ return viewport.addEventListener("keydown", handleKeyDown), () => viewport.removeEventListener("keydown", handleKeyDown);
196
136
  }
197
- }, [getItems, getSortedTabbableCandidates, context.toastCount]);
198
- return <ToastViewportWrapperFrame
137
+ }, [getItems, getSortedTabbableCandidates, context.toastCount]), <ToastViewportWrapperFrame
199
138
  ref={wrapperRef}
200
139
  role="region"
201
140
  aria-label={label.replace("{hotkey}", hotkeyLabel)}
@@ -239,12 +178,9 @@ const ToastViewport = React.forwardRef(
239
178
  }
240
179
  );
241
180
  ToastViewport.displayName = VIEWPORT_NAME;
242
- const FOCUS_PROXY_NAME = "ToastFocusProxy";
243
- const FocusProxy = React.forwardRef(
181
+ const FOCUS_PROXY_NAME = "ToastFocusProxy", FocusProxy = React.forwardRef(
244
182
  (props, forwardedRef) => {
245
- const { __scopeToast, onFocusFromOutsideViewport, viewportName, ...proxyProps } = props;
246
- const context = useToastProviderContext(FOCUS_PROXY_NAME, __scopeToast);
247
- const viewport = context.viewports[viewportName];
183
+ const { __scopeToast, onFocusFromOutsideViewport, viewportName, ...proxyProps } = props, viewport = useToastProviderContext(FOCUS_PROXY_NAME, __scopeToast).viewports[viewportName];
248
184
  return <VisuallyHidden
249
185
  aria-hidden
250
186
  tabIndex={0}
@@ -255,9 +191,7 @@ const FocusProxy = React.forwardRef(
255
191
  if (!isWeb)
256
192
  return;
257
193
  const prevFocusedElement = event.relatedTarget;
258
- const isFocusFromOutsideViewport = !viewport?.contains(prevFocusedElement);
259
- if (isFocusFromOutsideViewport)
260
- onFocusFromOutsideViewport();
194
+ !viewport?.contains(prevFocusedElement) && onFocusFromOutsideViewport();
261
195
  }}
262
196
  />;
263
197
  }
@@ -267,27 +201,18 @@ function focusFirst(candidates) {
267
201
  if (!isWeb)
268
202
  return;
269
203
  const previouslyFocusedElement = document.activeElement;
270
- return candidates.some((candidate) => {
271
- if (candidate === previouslyFocusedElement)
272
- return true;
273
- candidate.focus();
274
- return document.activeElement !== previouslyFocusedElement;
275
- });
204
+ return candidates.some((candidate) => candidate === previouslyFocusedElement ? !0 : (candidate.focus(), document.activeElement !== previouslyFocusedElement));
276
205
  }
277
206
  function getTabbableCandidates(container) {
278
207
  if (!isWeb)
279
208
  return [];
280
- const containerHtml = container;
281
- const nodes = [];
282
- const walker = document.createTreeWalker(containerHtml, NodeFilter.SHOW_ELEMENT, {
209
+ const containerHtml = container, nodes = [], walker = document.createTreeWalker(containerHtml, NodeFilter.SHOW_ELEMENT, {
283
210
  acceptNode: (node) => {
284
211
  const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
285
- if (node.disabled || node.hidden || isHiddenInput)
286
- return NodeFilter.FILTER_SKIP;
287
- return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
212
+ return node.disabled || node.hidden || isHiddenInput ? NodeFilter.FILTER_SKIP : node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
288
213
  }
289
214
  });
290
- while (walker.nextNode())
215
+ for (; walker.nextNode(); )
291
216
  nodes.push(walker.currentNode);
292
217
  return nodes;
293
218
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/ToastViewport.tsx"],
4
- "mappings": "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",
4
+ "mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAChC,SAAmC,OAAO,cAAc;AACxD,SAAS,kBAAkB;AAC3B,SAAS,cAAc;AACvB,SAAS,sBAAsB;AAC/B,YAAY,WAAW;AAEvB;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAEP,MAAM,gBAAgB,iBAChB,0BAA0B,CAAC,IAAI,GAC/B,iBAAiB,uBACjB,kBAAkB,wBAElB,4BAA4B,OAAO,QAAQ;AAAA,EAC/C,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,eAAe;AAAA,QACf,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU,QAAS,UAAkB;AAAA,QACrC,UAAU;AAAA,QACV,UAAU;AAAA,QACV,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC,GAEK,qBAAqB,OAAO,QAAQ;AAAA,EACxC,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,eAAe;AAAA,QACf,UAAU,QAAS,UAAkB;AAAA,QACrC,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC,GAyBK,gBAAgB,MAAM;AAAA,EAC1B,CAAC,OAAwC,iBAAiB;AACxD,UAAM;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,OAAO;AAAA,MACP;AAAA,MACA,GAAG;AAAA,IACL,IAAI,OACE,UAAU,wBAAwB,eAAe,YAAY,GAC7D,WAAW,cAAc,YAAY,GACrC,oBAAoB,MAAM,OAA0B,IAAI,GACxD,oBAAoB,MAAM,OAA0B,IAAI,GACxD,aAAa,MAAM,OAAuB,IAAI,GAC9C,MAAM,MAAM,OAAuB,IAAI,GACvC,mBAAmB,MAAM;AAAA,MAC7B,CAAC,OAAuB;AACtB,QAAI,QAAQ,UAAU,IAAI,MAAM,MAAI,QAAQ,iBAAiB,MAAM,EAAE;AAAA,MACvE;AAAA,MACA,CAAC,MAAM,QAAQ,SAAS;AAAA,IAC1B,GACM,eAAe,gBAAgB,cAAc,KAAK,gBAAgB,GAClE,cAAc,OAAO,KAAK,GAAG,EAAE,QAAQ,QAAQ,EAAE,EAAE,QAAQ,UAAU,EAAE,GACvE,YAAY,QAAQ,aAAa;AAEvC,UAAM,UAAU,MAAM;AAEpB,UADI,CAAC,SACD,QAAQ,eAAe;AAAG;AAC9B,YAAM,gBAAgB,CAAC,UAAyB;AAM9C,QAHwB,OAAO;AAAA,UAC7B,CAAC,QAAS,MAAc,GAAG,KAAK,MAAM,SAAS;AAAA,QACjD,KACqB,IAAI,SAAS,MAAM;AAAA,MAC1C;AACA,sBAAS,iBAAiB,WAAW,aAAa,GAC3C,MAAM;AACX,iBAAS,oBAAoB,WAAW,aAAa;AAAA,MACvD;AAAA,IACF,GAAG,CAAC,QAAQ,QAAQ,UAAU,CAAC,GAE/B,MAAM,UAAU,MAAM;AAEpB,UADI,CAAC,SACD,QAAQ,eAAe;AAAG;AAC9B,YAAM,UAAU,WAAW,SACrB,WAAW,IAAI;AACrB,UAAI,aAAa,WAAW,UAAU;AACpC,cAAM,cAAc,MAAM;AACxB,cAAI,CAAC,QAAQ,iBAAiB,SAAS;AACrC,kBAAM,aAAa,IAAI,YAAY,cAAc;AACjD,qBAAS,cAAc,UAAU,GACjC,QAAQ,iBAAiB,UAAU;AAAA,UACrC;AAAA,QACF,GAEM,eAAe,MAAM;AACzB,cAAI,QAAQ,iBAAiB,SAAS;AACpC,kBAAM,cAAc,IAAI,YAAY,eAAe;AACnD,qBAAS,cAAc,WAAW,GAClC,QAAQ,iBAAiB,UAAU;AAAA,UACrC;AAAA,QACF,GAEM,uBAAuB,CAAC,UAAsB;AAIlD,UAH6B,CAAC,QAAQ;AAAA,YACpC,MAAM;AAAA,UACR,KAC0B,aAAa;AAAA,QACzC,GAEM,2BAA2B,MAAM;AAErC,UADsB,QAAQ,SAAS,SAAS,aAAa,KACzC,aAAa;AAAA,QACnC;AAGA,uBAAQ,iBAAiB,WAAW,WAAW,GAC/C,QAAQ,iBAAiB,YAAY,oBAAoB,GACzD,QAAQ,iBAAiB,eAAe,WAAW,GACnD,QAAQ,iBAAiB,gBAAgB,wBAAwB,GACjE,OAAO,iBAAiB,QAAQ,WAAW,GAC3C,OAAO,iBAAiB,SAAS,YAAY,GACtC,MAAM;AACX,kBAAQ,oBAAoB,WAAW,WAAW,GAClD,QAAQ,oBAAoB,YAAY,oBAAoB,GAC5D,QAAQ,oBAAoB,eAAe,WAAW,GACtD,QAAQ,oBAAoB,gBAAgB,wBAAwB,GACpE,OAAO,oBAAoB,QAAQ,WAAW,GAC9C,OAAO,oBAAoB,SAAS,YAAY;AAAA,QAClD;AAAA,MACF;AAAA,IACF,GAAG,CAAC,WAAW,QAAQ,kBAAkB,QAAQ,UAAU,CAAC;AAE5D,UAAM,8BAA8B,MAAM;AAAA,MACxC,CAAC,EAAE,iBAAiB,MAAsD;AAExE,cAAM,qBADa,SAAS,EACU,IAAI,CAAC,cAAc;AACvD,gBAAM,YAAY,UAAU,IAAI,SAC1B,0BAA0B,CAAC,WAAW,GAAG,sBAAsB,SAAS,CAAC;AAC/E,iBAAO,qBAAqB,aACxB,0BACA,wBAAwB,QAAQ;AAAA,QACtC,CAAC;AACD,gBACE,qBAAqB,aACjB,mBAAmB,QAAQ,IAC3B,oBACJ,KAAK;AAAA,MACT;AAAA,MACA,CAAC,QAAQ;AAAA,IACX;AAEA,iBAAM,UAAU,MAAM;AAEpB,UADI,CAAC,SACD,QAAQ,eAAe;AAAG;AAE9B,YAAM,WAAW,IAAI;AAIrB,UAAI,UAAU;AACZ,cAAM,gBAAgB,CAAC,UAAyB;AAC9C,gBAAM,YAAY,MAAM,UAAU,MAAM,WAAW,MAAM;AAGzD,cAFiB,MAAM,QAAQ,SAAS,CAAC,WAE3B;AACZ,kBAAM,iBAAiB,SAAS,eAC1B,qBAAqB,MAAM;AAKjC,gBAJyB,MAAM,WAAW,YAIlB,oBAAoB;AAE1C,gCAAkB,SAAS,MAAM;AACjC;AAAA,YACF;AAGA,kBAAM,mBAAmB,4BAA4B,EAAE,kBAD9B,qBAAqB,cAAc,WACY,CAAC,GACnE,QAAQ,iBAAiB;AAAA,cAC7B,CAAC,cAAc,cAAc;AAAA,YAC/B;AACA,YAAI,WAAW,iBAAiB,MAAM,QAAQ,CAAC,CAAC,IAC9C,MAAM,eAAe,IAKrB;AAAA;AAAA,cAEI,kBAAkB,SAAS,MAAM;AAAA;AAAA;AAAA,cAEjC,kBAAkB,SAAS,MAAM;AAAA;AAAA,UAEzC;AAAA,QACF;AAGA,wBAAS,iBAAiB,WAAW,aAAa,GAC3C,MAAM,SAAS,oBAAoB,WAAW,aAAa;AAAA,MACpE;AAAA,IACF,GAAG,CAAC,UAAU,6BAA6B,QAAQ,UAAU,CAAC,GAG5D,CAAC;AAAA,MACC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,YAAY,MAAM,QAAQ,YAAY,WAAW;AAAA,MAEjD,UAAU;AAAA;AAAA,OAKT,aACC,CAAC;AAAA,QACC,cAAc;AAAA,QACd,KAAK;AAAA,QACL,4BAA4B,MAAM;AAChC,gBAAM,qBAAqB,4BAA4B;AAAA,YACrD,kBAAkB;AAAA,UACpB,CAAC;AACD,qBAAW,kBAAkB;AAAA,QAC/B;AAAA,MACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMF,CAAC,WAAW,KAAK,OAAO,cACtB,CAAC;AAAA,QACC,WAAW,QAAQ,aAAa;AAAA,QAChC,KAAK;AAAA,YACD;AAAA,OAEJ,CAAC;AAAA,QACC,QAAQ,CAAC,aACP,CAAC,gBAAgB,iBAAiB,CAAC,iBAChC,SACH,EAFC;AAAA,QAIH,MAAM,QAAQ;AAAA,MAChB,EACF,EAbC,mBAcH,EAfC,WAAW;AAAA,OAgBX,aACC,CAAC;AAAA,QACC,cAAc;AAAA,QACd,KAAK;AAAA,QACL,4BAA4B,MAAM;AAChC,gBAAM,qBAAqB,4BAA4B;AAAA,YACrD,kBAAkB;AAAA,UACpB,CAAC;AACD,qBAAW,kBAAkB;AAAA,QAC/B;AAAA,MACF;AAAA,IAEJ,EAtDC;AAAA,EAwDL;AACF;AAEA,cAAc,cAAc;AAI5B,MAAM,mBAAmB,mBASnB,aAAa,MAAM;AAAA,EACvB,CAAC,OAAO,iBAAiB;AACvB,UAAM,EAAE,cAAc,4BAA4B,cAAc,GAAG,WAAW,IAC5E,OAEI,WADU,wBAAwB,kBAAkB,YAAY,EAC7C,UAAU,YAAY;AAE/C,WACE,CAAC;AAAA,MACC;AAAA,MACA,UAAU;AAAA,UACN;AAAA,MACJ,KAAK;AAAA,MAEL,UAAU,QAAS,UAAkB;AAAA,MACrC,SAAS,CAAC,UAAU;AAClB,YAAI,CAAC;AAAO;AACZ,cAAM,qBAAqB,MAAM;AAEjC,QADmC,CAAC,UAAU,SAAS,kBAAkB,KACzC,2BAA2B;AAAA,MAC7D;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,WAAW,cAAc;AAIzB,SAAS,WAAW,YAA8B;AAChD,MAAI,CAAC;AAAO;AACZ,QAAM,2BAA2B,SAAS;AAC1C,SAAO,WAAW,KAAK,CAAC,cAElB,cAAc,2BAAiC,MACnD,UAAU,MAAM,GACT,SAAS,kBAAkB,yBACnC;AACH;AAYA,SAAS,sBAAsB,WAA2B;AACxD,MAAI,CAAC;AAAO,WAAO,CAAC;AACpB,QAAM,gBAAgB,WAChB,QAAuB,CAAC,GACxB,SAAS,SAAS,iBAAiB,eAAe,WAAW,cAAc;AAAA,IAC/E,YAAY,CAAC,SAAc;AACzB,YAAM,gBAAgB,KAAK,YAAY,WAAW,KAAK,SAAS;AAChE,aAAI,KAAK,YAAY,KAAK,UAAU,gBAAsB,WAAW,cAI9D,KAAK,YAAY,IAAI,WAAW,gBAAgB,WAAW;AAAA,IACpE;AAAA,EACF,CAAC;AACD,SAAO,OAAO,SAAS;AAAG,UAAM,KAAK,OAAO,WAA0B;AAGtE,SAAO;AACT;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,225 @@
1
+ import { AnimatePresence } from "@tamagui/animate-presence";
2
+ import { useComposedRefs } from "@tamagui/compose-refs";
3
+ import { isWeb, styled } from "@tamagui/core";
4
+ import { PortalHost } from "@tamagui/portal";
5
+ import { YStack } from "@tamagui/stacks";
6
+ import { VisuallyHidden } from "@tamagui/visually-hidden";
7
+ import * as React from "react";
8
+ import {
9
+ Collection,
10
+ useCollection,
11
+ useToastProviderContext
12
+ } from "./ToastProvider";
13
+ const VIEWPORT_NAME = "ToastViewport", VIEWPORT_DEFAULT_HOTKEY = ["F8"], VIEWPORT_PAUSE = "toast.viewportPause", VIEWPORT_RESUME = "toast.viewportResume", ToastViewportWrapperFrame = styled(YStack, {
14
+ name: "ViewportWrapper",
15
+ variants: {
16
+ unstyled: {
17
+ false: {
18
+ pointerEvents: "box-none",
19
+ top: 0,
20
+ bottom: 0,
21
+ left: 0,
22
+ right: 0,
23
+ position: isWeb ? "fixed" : "absolute",
24
+ maxWidth: "100%",
25
+ tabIndex: 0,
26
+ zIndex: 1e5
27
+ }
28
+ }
29
+ },
30
+ defaultVariants: {
31
+ unstyled: !1
32
+ }
33
+ }), ToastViewportFrame = styled(YStack, {
34
+ name: VIEWPORT_NAME,
35
+ variants: {
36
+ unstyled: {
37
+ false: {
38
+ pointerEvents: "box-none",
39
+ position: isWeb ? "fixed" : "absolute",
40
+ maxWidth: "100%"
41
+ }
42
+ }
43
+ },
44
+ defaultVariants: {
45
+ unstyled: !1
46
+ }
47
+ }), ToastViewport = React.forwardRef(
48
+ (props, forwardedRef) => {
49
+ const {
50
+ __scopeToast,
51
+ hotkey = VIEWPORT_DEFAULT_HOTKEY,
52
+ label = "Notifications ({hotkey})",
53
+ name = "default",
54
+ multipleToasts,
55
+ ...viewportProps
56
+ } = props, context = useToastProviderContext(VIEWPORT_NAME, __scopeToast), getItems = useCollection(__scopeToast), headFocusProxyRef = React.useRef(null), tailFocusProxyRef = React.useRef(null), wrapperRef = React.useRef(null), ref = React.useRef(null), onViewportChange = React.useCallback(
57
+ (el) => {
58
+ context.viewports[name] !== el && context.onViewportChange(name, el);
59
+ },
60
+ [name, context.viewports]
61
+ ), composedRefs = useComposedRefs(forwardedRef, ref, onViewportChange), hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, ""), hasToasts = context.toastCount > 0;
62
+ React.useEffect(() => {
63
+ if (!isWeb || context.toastCount === 0)
64
+ return;
65
+ const handleKeyDown = (event) => {
66
+ hotkey.every(
67
+ (key) => event[key] || event.code === key
68
+ ) && ref.current?.focus();
69
+ };
70
+ return document.addEventListener("keydown", handleKeyDown), () => {
71
+ document.removeEventListener("keydown", handleKeyDown);
72
+ };
73
+ }, [hotkey, context.toastCount]), React.useEffect(() => {
74
+ if (!isWeb || context.toastCount === 0)
75
+ return;
76
+ const wrapper = wrapperRef.current, viewport = ref.current;
77
+ if (hasToasts && wrapper && viewport) {
78
+ const handlePause = () => {
79
+ if (!context.isClosePausedRef.current) {
80
+ const pauseEvent = new CustomEvent(VIEWPORT_PAUSE);
81
+ viewport.dispatchEvent(pauseEvent), context.isClosePausedRef.current = !0;
82
+ }
83
+ }, handleResume = () => {
84
+ if (context.isClosePausedRef.current) {
85
+ const resumeEvent = new CustomEvent(VIEWPORT_RESUME);
86
+ viewport.dispatchEvent(resumeEvent), context.isClosePausedRef.current = !1;
87
+ }
88
+ }, handleFocusOutResume = (event) => {
89
+ !wrapper.contains(
90
+ event.relatedTarget
91
+ ) && handleResume();
92
+ }, handlePointerLeaveResume = () => {
93
+ wrapper.contains(document.activeElement) || handleResume();
94
+ };
95
+ 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), () => {
96
+ wrapper.removeEventListener("focusin", handlePause), wrapper.removeEventListener("focusout", handleFocusOutResume), wrapper.removeEventListener("pointermove", handlePause), wrapper.removeEventListener("pointerleave", handlePointerLeaveResume), window.removeEventListener("blur", handlePause), window.removeEventListener("focus", handleResume);
97
+ };
98
+ }
99
+ }, [hasToasts, context.isClosePausedRef, context.toastCount]);
100
+ const getSortedTabbableCandidates = React.useCallback(
101
+ ({ tabbingDirection }) => {
102
+ const tabbableCandidates = getItems().map((toastItem) => {
103
+ const toastNode = toastItem.ref.current, toastTabbableCandidates = [toastNode, ...getTabbableCandidates(toastNode)];
104
+ return tabbingDirection === "forwards" ? toastTabbableCandidates : toastTabbableCandidates.reverse();
105
+ });
106
+ return (tabbingDirection === "forwards" ? tabbableCandidates.reverse() : tabbableCandidates).flat();
107
+ },
108
+ [getItems]
109
+ );
110
+ return React.useEffect(() => {
111
+ if (!isWeb || context.toastCount === 0)
112
+ return;
113
+ const viewport = ref.current;
114
+ if (viewport) {
115
+ const handleKeyDown = (event) => {
116
+ const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;
117
+ if (event.key === "Tab" && !isMetaKey) {
118
+ const focusedElement = document.activeElement, isTabbingBackwards = event.shiftKey;
119
+ if (event.target === viewport && isTabbingBackwards) {
120
+ headFocusProxyRef.current?.focus();
121
+ return;
122
+ }
123
+ const sortedCandidates = getSortedTabbableCandidates({ tabbingDirection: isTabbingBackwards ? "backwards" : "forwards" }), index = sortedCandidates.findIndex(
124
+ (candidate) => candidate === focusedElement
125
+ );
126
+ focusFirst(sortedCandidates.slice(index + 1)) ? event.preventDefault() : isTabbingBackwards ? (
127
+ // @ts-ignore ali TODO type
128
+ headFocusProxyRef.current?.focus()
129
+ ) : (
130
+ // @ts-ignore ali TODO type
131
+ tailFocusProxyRef.current?.focus()
132
+ );
133
+ }
134
+ };
135
+ return viewport.addEventListener("keydown", handleKeyDown), () => viewport.removeEventListener("keydown", handleKeyDown);
136
+ }
137
+ }, [getItems, getSortedTabbableCandidates, context.toastCount]), <ToastViewportWrapperFrame
138
+ ref={wrapperRef}
139
+ role="region"
140
+ aria-label={label.replace("{hotkey}", hotkeyLabel)}
141
+ tabIndex={-1}
142
+ >
143
+ {hasToasts && <FocusProxy
144
+ viewportName={name}
145
+ ref={headFocusProxyRef}
146
+ onFocusFromOutsideViewport={() => {
147
+ const tabbableCandidates = getSortedTabbableCandidates({
148
+ tabbingDirection: "forwards"
149
+ });
150
+ focusFirst(tabbableCandidates);
151
+ }}
152
+ />}
153
+ {
154
+ /**
155
+ * tabindex on the the list so that it can be focused when items are removed. we focus
156
+ * the list instead of the viewport so it announces number of items remaining.
157
+ */
158
+ }
159
+ <Collection.Slot scope={__scopeToast}><ToastViewportFrame
160
+ focusable={context.toastCount > 0}
161
+ ref={composedRefs}
162
+ {...viewportProps}
163
+ ><PortalHost
164
+ render={(children) => <AnimatePresence exitBeforeEnter={!multipleToasts}>{children}</AnimatePresence>}
165
+ name={name ?? "default"}
166
+ /></ToastViewportFrame></Collection.Slot>
167
+ {hasToasts && <FocusProxy
168
+ viewportName={name}
169
+ ref={tailFocusProxyRef}
170
+ onFocusFromOutsideViewport={() => {
171
+ const tabbableCandidates = getSortedTabbableCandidates({
172
+ tabbingDirection: "backwards"
173
+ });
174
+ focusFirst(tabbableCandidates);
175
+ }}
176
+ />}
177
+ </ToastViewportWrapperFrame>;
178
+ }
179
+ );
180
+ ToastViewport.displayName = VIEWPORT_NAME;
181
+ const FOCUS_PROXY_NAME = "ToastFocusProxy", FocusProxy = React.forwardRef(
182
+ (props, forwardedRef) => {
183
+ const { __scopeToast, onFocusFromOutsideViewport, viewportName, ...proxyProps } = props, viewport = useToastProviderContext(FOCUS_PROXY_NAME, __scopeToast).viewports[viewportName];
184
+ return <VisuallyHidden
185
+ aria-hidden
186
+ tabIndex={0}
187
+ {...proxyProps}
188
+ ref={forwardedRef}
189
+ position={isWeb ? "fixed" : "absolute"}
190
+ onFocus={(event) => {
191
+ if (!isWeb)
192
+ return;
193
+ const prevFocusedElement = event.relatedTarget;
194
+ !viewport?.contains(prevFocusedElement) && onFocusFromOutsideViewport();
195
+ }}
196
+ />;
197
+ }
198
+ );
199
+ FocusProxy.displayName = FOCUS_PROXY_NAME;
200
+ function focusFirst(candidates) {
201
+ if (!isWeb)
202
+ return;
203
+ const previouslyFocusedElement = document.activeElement;
204
+ return candidates.some((candidate) => candidate === previouslyFocusedElement ? !0 : (candidate.focus(), document.activeElement !== previouslyFocusedElement));
205
+ }
206
+ function getTabbableCandidates(container) {
207
+ if (!isWeb)
208
+ return [];
209
+ const containerHtml = container, nodes = [], walker = document.createTreeWalker(containerHtml, NodeFilter.SHOW_ELEMENT, {
210
+ acceptNode: (node) => {
211
+ const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
212
+ return node.disabled || node.hidden || isHiddenInput ? NodeFilter.FILTER_SKIP : node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
213
+ }
214
+ });
215
+ for (; walker.nextNode(); )
216
+ nodes.push(walker.currentNode);
217
+ return nodes;
218
+ }
219
+ export {
220
+ ToastViewport,
221
+ VIEWPORT_DEFAULT_HOTKEY,
222
+ VIEWPORT_PAUSE,
223
+ VIEWPORT_RESUME
224
+ };
225
+ //# 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
+ }
@@ -0,0 +1,5 @@
1
+ const TOAST_NAME = "Toast";
2
+ export {
3
+ TOAST_NAME
4
+ };
5
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/constants.ts"],
4
+ "mappings": "AAAO,MAAM,aAAa;",
5
+ "names": []
6
+ }
@@ -1,42 +1,25 @@
1
1
  const createNativeToast = (title, { message, notificationOptions }) => {
2
- if (!("Notification" in window)) {
3
- console.error("This browser does not support notifications");
4
- return false;
5
- }
6
- if (Notification.permission === "denied")
7
- false;
8
- const showNotification = () => {
9
- const notification = new Notification(title, {
10
- body: message,
11
- ...notificationOptions
12
- });
13
- return notification;
14
- };
15
- if (Notification.permission === "granted") {
16
- const notification = showNotification();
17
- return {
18
- nativeToastRef: notification
19
- };
20
- } else {
21
- Notification.requestPermission().then((permission) => {
22
- if (permission === "granted") {
23
- const notification = showNotification();
24
- return {
25
- nativeToastRef: notification
26
- };
27
- }
28
- });
29
- }
30
- return true;
31
- };
32
- const hideNativeToast = (ref) => {
2
+ if (!("Notification" in window))
3
+ return console.error("This browser does not support notifications"), !1;
4
+ Notification.permission;
5
+ const showNotification = () => new Notification(title, {
6
+ body: message,
7
+ ...notificationOptions
8
+ });
9
+ return Notification.permission === "granted" ? {
10
+ nativeToastRef: showNotification()
11
+ } : (Notification.requestPermission().then((permission) => {
12
+ if (permission === "granted")
13
+ return {
14
+ nativeToastRef: showNotification()
15
+ };
16
+ }), !0);
17
+ }, hideNativeToast = (ref) => {
33
18
  if (!("Notification" in window)) {
34
19
  console.error("This browser does not support notifications");
35
20
  return;
36
21
  }
37
- if (ref) {
38
- ref.close();
39
- }
22
+ ref && ref.close();
40
23
  };
41
24
  export {
42
25
  createNativeToast,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createNativeToast.tsx"],
4
- "mappings": "AAEO,MAAM,oBAA0C,CACrD,OACA,EAAE,SAAS,oBAAoB,MAC5B;AACH,MAAI,EAAE,kBAAkB,SAAS;AAC/B,YAAQ,MAAM,6CAA6C;AAC3D,WAAO;AAAA,EACT;AAEA,MAAI,aAAa,eAAe;AAAU;AAC1C,QAAM,mBAAmB,MAAM;AAC7B,UAAM,eAAe,IAAI,aAAa,OAAO;AAAA,MAC3C,MAAM;AAAA,MACN,GAAG;AAAA,IACL,CAAC;AAED,WAAO;AAAA,EACT;AAEA,MAAI,aAAa,eAAe,WAAW;AACzC,UAAM,eAAe,iBAAiB;AACtC,WAAO;AAAA,MACL,gBAAgB;AAAA,IAClB;AAAA,EACF,OAAO;AACL,iBAAa,kBAAkB,EAAE,KAAK,CAAC,eAAe;AACpD,UAAI,eAAe,WAAW;AAC5B,cAAM,eAAe,iBAAiB;AACtC,eAAO;AAAA,UACL,gBAAgB;AAAA,QAClB;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO;AACT;AAEO,MAAM,kBAAsC,CAAC,QAAQ;AAC1D,MAAI,EAAE,kBAAkB,SAAS;AAC/B,YAAQ,MAAM,6CAA6C;AAC3D;AAAA,EACF;AAEA,MAAI,KAAK;AACP,QAAI,MAAM;AAAA,EACZ;AACF;",
4
+ "mappings": "AAEO,MAAM,oBAA0C,CACrD,OACA,EAAE,SAAS,oBAAoB,MAC5B;AACH,MAAI,EAAE,kBAAkB;AACtB,mBAAQ,MAAM,6CAA6C,GACpD;AAGT,EAAI,aAAa;AACjB,QAAM,mBAAmB,MACF,IAAI,aAAa,OAAO;AAAA,IAC3C,MAAM;AAAA,IACN,GAAG;AAAA,EACL,CAAC;AAKH,SAAI,aAAa,eAAe,YAEvB;AAAA,IACL,gBAFmB,iBAAiB;AAAA,EAGtC,KAEA,aAAa,kBAAkB,EAAE,KAAK,CAAC,eAAe;AACpD,QAAI,eAAe;AAEjB,aAAO;AAAA,QACL,gBAFmB,iBAAiB;AAAA,MAGtC;AAAA,EAEJ,CAAC,GAEI;AACT,GAEa,kBAAsC,CAAC,QAAQ;AAC1D,MAAI,EAAE,kBAAkB,SAAS;AAC/B,YAAQ,MAAM,6CAA6C;AAC3D;AAAA,EACF;AAEA,EAAI,OACF,IAAI,MAAM;AAEd;",
5
5
  "names": []
6
6
  }