@hanzogui/toast 2.0.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.
- package/LICENSE +21 -0
- package/dist/cjs/Toast.cjs +170 -0
- package/dist/cjs/Toast.native.js +174 -0
- package/dist/cjs/Toast.native.js.map +1 -0
- package/dist/cjs/ToastAnnounce.cjs +97 -0
- package/dist/cjs/ToastAnnounce.native.js +105 -0
- package/dist/cjs/ToastAnnounce.native.js.map +1 -0
- package/dist/cjs/ToastImperative.cjs +100 -0
- package/dist/cjs/ToastImperative.native.js +122 -0
- package/dist/cjs/ToastImperative.native.js.map +1 -0
- package/dist/cjs/ToastImpl.cjs +292 -0
- package/dist/cjs/ToastImpl.native.js +326 -0
- package/dist/cjs/ToastImpl.native.js.map +1 -0
- package/dist/cjs/ToastPortal.cjs +44 -0
- package/dist/cjs/ToastPortal.native.js +47 -0
- package/dist/cjs/ToastPortal.native.js.map +1 -0
- package/dist/cjs/ToastProvider.cjs +146 -0
- package/dist/cjs/ToastProvider.native.js +159 -0
- package/dist/cjs/ToastProvider.native.js.map +1 -0
- package/dist/cjs/ToastViewport.cjs +278 -0
- package/dist/cjs/ToastViewport.native.js +315 -0
- package/dist/cjs/ToastViewport.native.js.map +1 -0
- package/dist/cjs/constants.cjs +28 -0
- package/dist/cjs/constants.native.js +31 -0
- package/dist/cjs/constants.native.js.map +1 -0
- package/dist/cjs/createNativeToast.cjs +51 -0
- package/dist/cjs/createNativeToast.native.js +48 -0
- package/dist/cjs/createNativeToast.native.js.map +1 -0
- package/dist/cjs/index.cjs +18 -0
- package/dist/cjs/index.native.js +21 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/types.cjs +16 -0
- package/dist/cjs/types.native.js +19 -0
- package/dist/cjs/types.native.js.map +1 -0
- package/dist/esm/Toast.mjs +131 -0
- package/dist/esm/Toast.mjs.map +1 -0
- package/dist/esm/Toast.native.js +132 -0
- package/dist/esm/Toast.native.js.map +1 -0
- package/dist/esm/ToastAnnounce.mjs +62 -0
- package/dist/esm/ToastAnnounce.mjs.map +1 -0
- package/dist/esm/ToastAnnounce.native.js +67 -0
- package/dist/esm/ToastAnnounce.native.js.map +1 -0
- package/dist/esm/ToastImperative.mjs +63 -0
- package/dist/esm/ToastImperative.mjs.map +1 -0
- package/dist/esm/ToastImperative.native.js +82 -0
- package/dist/esm/ToastImperative.native.js.map +1 -0
- package/dist/esm/ToastImpl.mjs +256 -0
- package/dist/esm/ToastImpl.mjs.map +1 -0
- package/dist/esm/ToastImpl.native.js +287 -0
- package/dist/esm/ToastImpl.native.js.map +1 -0
- package/dist/esm/ToastPortal.mjs +21 -0
- package/dist/esm/ToastPortal.mjs.map +1 -0
- package/dist/esm/ToastPortal.native.js +21 -0
- package/dist/esm/ToastPortal.native.js.map +1 -0
- package/dist/esm/ToastProvider.mjs +108 -0
- package/dist/esm/ToastProvider.mjs.map +1 -0
- package/dist/esm/ToastProvider.native.js +118 -0
- package/dist/esm/ToastProvider.native.js.map +1 -0
- package/dist/esm/ToastViewport.mjs +241 -0
- package/dist/esm/ToastViewport.mjs.map +1 -0
- package/dist/esm/ToastViewport.native.js +275 -0
- package/dist/esm/ToastViewport.native.js.map +1 -0
- package/dist/esm/constants.mjs +4 -0
- package/dist/esm/constants.mjs.map +1 -0
- package/dist/esm/constants.native.js +4 -0
- package/dist/esm/constants.native.js.map +1 -0
- package/dist/esm/createNativeToast.mjs +27 -0
- package/dist/esm/createNativeToast.mjs.map +1 -0
- package/dist/esm/createNativeToast.native.js +21 -0
- package/dist/esm/createNativeToast.native.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +2 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/types.mjs +2 -0
- package/dist/esm/types.mjs.map +1 -0
- package/dist/esm/types.native.js +2 -0
- package/dist/esm/types.native.js.map +1 -0
- package/dist/jsx/Toast.mjs +131 -0
- package/dist/jsx/Toast.mjs.map +1 -0
- package/dist/jsx/Toast.native.js +174 -0
- package/dist/jsx/Toast.native.js.map +1 -0
- package/dist/jsx/ToastAnnounce.mjs +62 -0
- package/dist/jsx/ToastAnnounce.mjs.map +1 -0
- package/dist/jsx/ToastAnnounce.native.js +105 -0
- package/dist/jsx/ToastAnnounce.native.js.map +1 -0
- package/dist/jsx/ToastImperative.mjs +63 -0
- package/dist/jsx/ToastImperative.mjs.map +1 -0
- package/dist/jsx/ToastImperative.native.js +122 -0
- package/dist/jsx/ToastImperative.native.js.map +1 -0
- package/dist/jsx/ToastImpl.mjs +256 -0
- package/dist/jsx/ToastImpl.mjs.map +1 -0
- package/dist/jsx/ToastImpl.native.js +326 -0
- package/dist/jsx/ToastImpl.native.js.map +1 -0
- package/dist/jsx/ToastPortal.mjs +21 -0
- package/dist/jsx/ToastPortal.mjs.map +1 -0
- package/dist/jsx/ToastPortal.native.js +47 -0
- package/dist/jsx/ToastPortal.native.js.map +1 -0
- package/dist/jsx/ToastProvider.mjs +108 -0
- package/dist/jsx/ToastProvider.mjs.map +1 -0
- package/dist/jsx/ToastProvider.native.js +159 -0
- package/dist/jsx/ToastProvider.native.js.map +1 -0
- package/dist/jsx/ToastViewport.mjs +241 -0
- package/dist/jsx/ToastViewport.mjs.map +1 -0
- package/dist/jsx/ToastViewport.native.js +315 -0
- package/dist/jsx/ToastViewport.native.js.map +1 -0
- package/dist/jsx/constants.mjs +4 -0
- package/dist/jsx/constants.mjs.map +1 -0
- package/dist/jsx/constants.native.js +31 -0
- package/dist/jsx/constants.native.js.map +1 -0
- package/dist/jsx/createNativeToast.mjs +27 -0
- package/dist/jsx/createNativeToast.mjs.map +1 -0
- package/dist/jsx/createNativeToast.native.js +48 -0
- package/dist/jsx/createNativeToast.native.js.map +1 -0
- package/dist/jsx/index.js +2 -0
- package/dist/jsx/index.js.map +1 -0
- package/dist/jsx/index.mjs +2 -0
- package/dist/jsx/index.mjs.map +1 -0
- package/dist/jsx/index.native.js +21 -0
- package/dist/jsx/index.native.js.map +1 -0
- package/dist/jsx/types.mjs +2 -0
- package/dist/jsx/types.mjs.map +1 -0
- package/dist/jsx/types.native.js +19 -0
- package/dist/jsx/types.native.js.map +1 -0
- package/package.json +66 -0
- package/src/Toast.tsx +219 -0
- package/src/ToastAnnounce.tsx +103 -0
- package/src/ToastImperative.tsx +192 -0
- package/src/ToastImpl.tsx +502 -0
- package/src/ToastPortal.tsx +19 -0
- package/src/ToastProvider.tsx +197 -0
- package/src/ToastViewport.tsx +429 -0
- package/src/constants.ts +2 -0
- package/src/createNativeToast.native.tsx +29 -0
- package/src/createNativeToast.tsx +48 -0
- package/src/index.ts +3 -0
- package/src/types.ts +71 -0
- package/types/Toast.d.ts +84 -0
- package/types/ToastAnnounce.d.ts +18 -0
- package/types/ToastImperative.d.ts +95 -0
- package/types/ToastImpl.d.ts +109 -0
- package/types/ToastPortal.d.ts +8 -0
- package/types/ToastProvider.d.ts +92 -0
- package/types/ToastViewport.d.ts +75 -0
- package/types/constants.d.ts +3 -0
- package/types/createNativeToast.d.ts +4 -0
- package/types/createNativeToast.native.d.ts +4 -0
- package/types/index.d.ts +4 -0
- package/types/types.d.ts +61 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 WorkOS and Tamagui
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf,
|
|
6
|
+
__hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: !0
|
|
11
|
+
});
|
|
12
|
+
},
|
|
13
|
+
__copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
15
|
+
get: () => from[key],
|
|
16
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
|
+
});
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
26
|
+
value: mod,
|
|
27
|
+
enumerable: !0
|
|
28
|
+
}) : target, mod)),
|
|
29
|
+
__toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
30
|
+
value: !0
|
|
31
|
+
}), mod);
|
|
32
|
+
var Toast_exports = {};
|
|
33
|
+
__export(Toast_exports, {
|
|
34
|
+
Toast: () => Toast2,
|
|
35
|
+
ToastProvider: () => import_ToastProvider.ToastProvider,
|
|
36
|
+
ToastViewport: () => import_ToastViewport.ToastViewport,
|
|
37
|
+
useToast: () => import_ToastImperative.useToast,
|
|
38
|
+
useToastController: () => import_ToastImperative.useToastController,
|
|
39
|
+
useToastState: () => import_ToastImperative.useToastState
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(Toast_exports);
|
|
42
|
+
var import_gui_animate_presence = require("@hanzo/gui-animate-presence"),
|
|
43
|
+
import_gui_core = require("@hanzo/gui-core"),
|
|
44
|
+
import_gui_helpers = require("@hanzo/gui-helpers"),
|
|
45
|
+
import_gui_stacks = require("@hanzo/gui-stacks"),
|
|
46
|
+
import_gui_text = require("@hanzo/gui-text"),
|
|
47
|
+
import_gui_use_controllable_state = require("@hanzo/gui-use-controllable-state"),
|
|
48
|
+
React = __toESM(require("react"), 1),
|
|
49
|
+
import_ToastAnnounce = require("./ToastAnnounce.cjs"),
|
|
50
|
+
import_ToastImperative = require("./ToastImperative.cjs"),
|
|
51
|
+
import_ToastImpl = require("./ToastImpl.cjs"),
|
|
52
|
+
import_ToastProvider = require("./ToastProvider.cjs"),
|
|
53
|
+
import_ToastViewport = require("./ToastViewport.cjs"),
|
|
54
|
+
import_jsx_runtime = require("react/jsx-runtime");
|
|
55
|
+
const TITLE_NAME = "ToastTitle",
|
|
56
|
+
ToastTitle = (0, import_gui_core.styled)(import_gui_text.SizableText, {
|
|
57
|
+
name: TITLE_NAME,
|
|
58
|
+
variants: {
|
|
59
|
+
unstyled: {
|
|
60
|
+
false: {
|
|
61
|
+
color: "$color",
|
|
62
|
+
size: "$4"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
defaultVariants: {
|
|
67
|
+
unstyled: process.env.HANZO_GUI_HEADLESS === "1"
|
|
68
|
+
}
|
|
69
|
+
}),
|
|
70
|
+
DESCRIPTION_NAME = "ToastDescription",
|
|
71
|
+
ToastDescription = (0, import_gui_core.styled)(import_gui_text.SizableText, {
|
|
72
|
+
name: DESCRIPTION_NAME,
|
|
73
|
+
variants: {
|
|
74
|
+
unstyled: {
|
|
75
|
+
false: {
|
|
76
|
+
color: "$color11",
|
|
77
|
+
size: "$1"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
defaultVariants: {
|
|
82
|
+
unstyled: process.env.HANZO_GUI_HEADLESS === "1"
|
|
83
|
+
}
|
|
84
|
+
}),
|
|
85
|
+
ACTION_NAME = "ToastAction",
|
|
86
|
+
ToastAction = React.forwardRef(function (props, forwardedRef) {
|
|
87
|
+
const {
|
|
88
|
+
altText,
|
|
89
|
+
...actionProps
|
|
90
|
+
} = props;
|
|
91
|
+
return altText ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToastAnnounce.ToastAnnounceExclude, {
|
|
92
|
+
altText,
|
|
93
|
+
asChild: !0,
|
|
94
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(ToastClose, {
|
|
95
|
+
...actionProps,
|
|
96
|
+
ref: forwardedRef
|
|
97
|
+
})
|
|
98
|
+
}) : null;
|
|
99
|
+
});
|
|
100
|
+
ToastAction.propTypes = {
|
|
101
|
+
altText(props) {
|
|
102
|
+
return props.altText ? null : new Error(`Missing prop \`altText\` expected on \`${ACTION_NAME}\``);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
const CLOSE_NAME = "ToastClose",
|
|
106
|
+
ToastCloseFrame = (0, import_gui_core.styled)(import_gui_stacks.YStack, {
|
|
107
|
+
name: CLOSE_NAME,
|
|
108
|
+
render: "button"
|
|
109
|
+
}),
|
|
110
|
+
ToastClose = React.forwardRef(function (props, forwardedRef) {
|
|
111
|
+
const {
|
|
112
|
+
scope,
|
|
113
|
+
...closeProps
|
|
114
|
+
} = props,
|
|
115
|
+
interactiveContext = (0, import_ToastImpl.useToastInteractiveContext)(scope);
|
|
116
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToastAnnounce.ToastAnnounceExclude, {
|
|
117
|
+
asChild: !0,
|
|
118
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(ToastCloseFrame, {
|
|
119
|
+
"aria-label": "Close",
|
|
120
|
+
...closeProps,
|
|
121
|
+
ref: forwardedRef,
|
|
122
|
+
onPress: (0, import_gui_helpers.composeEventHandlers)(props.onPress, interactiveContext.onClose)
|
|
123
|
+
})
|
|
124
|
+
});
|
|
125
|
+
}),
|
|
126
|
+
ToastComponent = import_ToastImpl.ToastImplFrame.styleable(function (props, forwardedRef) {
|
|
127
|
+
const {
|
|
128
|
+
forceMount,
|
|
129
|
+
open: openProp,
|
|
130
|
+
defaultOpen,
|
|
131
|
+
onOpenChange,
|
|
132
|
+
...toastProps
|
|
133
|
+
} = props,
|
|
134
|
+
[open, setOpen] = (0, import_gui_use_controllable_state.useControllableState)({
|
|
135
|
+
prop: openProp,
|
|
136
|
+
defaultProp: defaultOpen ?? !0,
|
|
137
|
+
onChange: onOpenChange,
|
|
138
|
+
strategy: "most-recent-wins"
|
|
139
|
+
}),
|
|
140
|
+
currentToast = (0, import_ToastImperative.useToastState)(),
|
|
141
|
+
{
|
|
142
|
+
hide
|
|
143
|
+
} = (0, import_ToastImperative.useToastController)(),
|
|
144
|
+
id = React.useId(),
|
|
145
|
+
onPause = (0, import_gui_core.useEvent)(props.onPause),
|
|
146
|
+
onResume = (0, import_gui_core.useEvent)(props.onResume),
|
|
147
|
+
isHide = currentToast?.hide === !0;
|
|
148
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_gui_animate_presence.AnimatePresence, {
|
|
149
|
+
children: (forceMount || open) && !isHide ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToastImpl.ToastImpl, {
|
|
150
|
+
id,
|
|
151
|
+
open,
|
|
152
|
+
...toastProps,
|
|
153
|
+
ref: forwardedRef,
|
|
154
|
+
onClose: () => {
|
|
155
|
+
setOpen(!1), hide();
|
|
156
|
+
},
|
|
157
|
+
onPause,
|
|
158
|
+
onResume,
|
|
159
|
+
onSwipeEnd: (0, import_gui_helpers.composeEventHandlers)(props.onSwipeEnd, event => {
|
|
160
|
+
setOpen(!1);
|
|
161
|
+
})
|
|
162
|
+
}) : null
|
|
163
|
+
}, id);
|
|
164
|
+
}),
|
|
165
|
+
Toast2 = (0, import_gui_helpers.withStaticProperties)(ToastComponent, {
|
|
166
|
+
Title: ToastTitle,
|
|
167
|
+
Description: ToastDescription,
|
|
168
|
+
Action: ToastAction,
|
|
169
|
+
Close: ToastClose
|
|
170
|
+
});
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf,
|
|
8
|
+
__hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: !0
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
__copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
17
|
+
get: () => from[key],
|
|
18
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
|
+
});
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
+
value: mod,
|
|
29
|
+
enumerable: !0
|
|
30
|
+
}) : target, mod)),
|
|
31
|
+
__toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
+
value: !0
|
|
33
|
+
}), mod);
|
|
34
|
+
var Toast_exports = {};
|
|
35
|
+
__export(Toast_exports, {
|
|
36
|
+
Toast: () => Toast2,
|
|
37
|
+
ToastProvider: () => import_ToastProvider.ToastProvider,
|
|
38
|
+
ToastViewport: () => import_ToastViewport.ToastViewport,
|
|
39
|
+
useToast: () => import_ToastImperative.useToast,
|
|
40
|
+
useToastController: () => import_ToastImperative.useToastController,
|
|
41
|
+
useToastState: () => import_ToastImperative.useToastState
|
|
42
|
+
});
|
|
43
|
+
module.exports = __toCommonJS(Toast_exports);
|
|
44
|
+
var import_jsx_runtime = require("react/jsx-runtime"),
|
|
45
|
+
import_gui_animate_presence = require("@hanzo/gui-animate-presence"),
|
|
46
|
+
import_gui_core = require("@hanzo/gui-core"),
|
|
47
|
+
import_gui_helpers = require("@hanzo/gui-helpers"),
|
|
48
|
+
import_gui_stacks = require("@hanzo/gui-stacks"),
|
|
49
|
+
import_gui_text = require("@hanzo/gui-text"),
|
|
50
|
+
import_gui_use_controllable_state = require("@hanzo/gui-use-controllable-state"),
|
|
51
|
+
React = __toESM(require("react"), 1),
|
|
52
|
+
import_ToastAnnounce = require("./ToastAnnounce.native.js"),
|
|
53
|
+
import_ToastImperative = require("./ToastImperative.native.js"),
|
|
54
|
+
import_ToastImpl = require("./ToastImpl.native.js"),
|
|
55
|
+
import_ToastProvider = require("./ToastProvider.native.js"),
|
|
56
|
+
import_ToastViewport = require("./ToastViewport.native.js"),
|
|
57
|
+
TITLE_NAME = "ToastTitle",
|
|
58
|
+
ToastTitle = (0, import_gui_core.styled)(import_gui_text.SizableText, {
|
|
59
|
+
name: TITLE_NAME,
|
|
60
|
+
variants: {
|
|
61
|
+
unstyled: {
|
|
62
|
+
false: {
|
|
63
|
+
color: "$color",
|
|
64
|
+
size: "$4"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
defaultVariants: {
|
|
69
|
+
unstyled: process.env.HANZO_GUI_HEADLESS === "1"
|
|
70
|
+
}
|
|
71
|
+
}),
|
|
72
|
+
DESCRIPTION_NAME = "ToastDescription",
|
|
73
|
+
ToastDescription = (0, import_gui_core.styled)(import_gui_text.SizableText, {
|
|
74
|
+
name: DESCRIPTION_NAME,
|
|
75
|
+
variants: {
|
|
76
|
+
unstyled: {
|
|
77
|
+
false: {
|
|
78
|
+
color: "$color11",
|
|
79
|
+
size: "$1"
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
defaultVariants: {
|
|
84
|
+
unstyled: process.env.HANZO_GUI_HEADLESS === "1"
|
|
85
|
+
}
|
|
86
|
+
}),
|
|
87
|
+
ACTION_NAME = "ToastAction",
|
|
88
|
+
ToastAction = /* @__PURE__ */React.forwardRef(function (props, forwardedRef) {
|
|
89
|
+
var {
|
|
90
|
+
altText,
|
|
91
|
+
...actionProps
|
|
92
|
+
} = props;
|
|
93
|
+
return altText ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToastAnnounce.ToastAnnounceExclude, {
|
|
94
|
+
altText,
|
|
95
|
+
asChild: !0,
|
|
96
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(ToastClose, {
|
|
97
|
+
...actionProps,
|
|
98
|
+
ref: forwardedRef
|
|
99
|
+
})
|
|
100
|
+
}) : null;
|
|
101
|
+
});
|
|
102
|
+
ToastAction.propTypes = {
|
|
103
|
+
altText(props) {
|
|
104
|
+
return props.altText ? null : new Error(`Missing prop \`altText\` expected on \`${ACTION_NAME}\``);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
var CLOSE_NAME = "ToastClose",
|
|
108
|
+
ToastCloseFrame = (0, import_gui_core.styled)(import_gui_stacks.YStack, {
|
|
109
|
+
name: CLOSE_NAME,
|
|
110
|
+
render: "button"
|
|
111
|
+
}),
|
|
112
|
+
ToastClose = /* @__PURE__ */React.forwardRef(function (props, forwardedRef) {
|
|
113
|
+
var {
|
|
114
|
+
scope,
|
|
115
|
+
...closeProps
|
|
116
|
+
} = props,
|
|
117
|
+
interactiveContext = (0, import_ToastImpl.useToastInteractiveContext)(scope);
|
|
118
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToastAnnounce.ToastAnnounceExclude, {
|
|
119
|
+
asChild: !0,
|
|
120
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(ToastCloseFrame, {
|
|
121
|
+
"aria-label": "Close",
|
|
122
|
+
...closeProps,
|
|
123
|
+
ref: forwardedRef,
|
|
124
|
+
onPress: (0, import_gui_helpers.composeEventHandlers)(props.onPress, interactiveContext.onClose)
|
|
125
|
+
})
|
|
126
|
+
});
|
|
127
|
+
}),
|
|
128
|
+
ToastComponent = import_ToastImpl.ToastImplFrame.styleable(function (props, forwardedRef) {
|
|
129
|
+
var {
|
|
130
|
+
forceMount,
|
|
131
|
+
open: openProp,
|
|
132
|
+
defaultOpen,
|
|
133
|
+
onOpenChange,
|
|
134
|
+
...toastProps
|
|
135
|
+
} = props,
|
|
136
|
+
[open, setOpen] = (0, import_gui_use_controllable_state.useControllableState)({
|
|
137
|
+
prop: openProp,
|
|
138
|
+
defaultProp: defaultOpen ?? !0,
|
|
139
|
+
onChange: onOpenChange,
|
|
140
|
+
strategy: "most-recent-wins"
|
|
141
|
+
}),
|
|
142
|
+
currentToast = (0, import_ToastImperative.useToastState)(),
|
|
143
|
+
{
|
|
144
|
+
hide
|
|
145
|
+
} = (0, import_ToastImperative.useToastController)(),
|
|
146
|
+
id = React.useId(),
|
|
147
|
+
onPause = (0, import_gui_core.useEvent)(props.onPause),
|
|
148
|
+
onResume = (0, import_gui_core.useEvent)(props.onResume),
|
|
149
|
+
isHide = currentToast?.hide === !0,
|
|
150
|
+
shouldShow = (forceMount || open) && !isHide;
|
|
151
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_gui_animate_presence.AnimatePresence, {
|
|
152
|
+
children: shouldShow ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToastImpl.ToastImpl, {
|
|
153
|
+
id,
|
|
154
|
+
open,
|
|
155
|
+
...toastProps,
|
|
156
|
+
ref: forwardedRef,
|
|
157
|
+
onClose: function () {
|
|
158
|
+
setOpen(!1), hide();
|
|
159
|
+
},
|
|
160
|
+
onPause,
|
|
161
|
+
onResume,
|
|
162
|
+
onSwipeEnd: (0, import_gui_helpers.composeEventHandlers)(props.onSwipeEnd, function (event) {
|
|
163
|
+
setOpen(!1);
|
|
164
|
+
})
|
|
165
|
+
}) : null
|
|
166
|
+
}, id);
|
|
167
|
+
}),
|
|
168
|
+
Toast2 = (0, import_gui_helpers.withStaticProperties)(ToastComponent, {
|
|
169
|
+
Title: ToastTitle,
|
|
170
|
+
Description: ToastDescription,
|
|
171
|
+
Action: ToastAction,
|
|
172
|
+
Close: ToastClose
|
|
173
|
+
});
|
|
174
|
+
//# sourceMappingURL=Toast.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","Toast_exports","__export","Toast","Toast2","ToastProvider","import_ToastProvider","ToastViewport","import_ToastViewport","useToast","import_ToastImperative","useToastController","useToastState","module","exports","import_jsx_runtime","require","import_gui_animate_presence","import_gui_core","import_gui_helpers","import_gui_stacks","import_gui_text","import_gui_use_controllable_state","React","__toESM","import_ToastAnnounce","import_ToastImpl","TITLE_NAME","ToastTitle","styled","SizableText","name","variants","unstyled","false","color","size","defaultVariants","process","env","HANZO_GUI_HEADLESS","DESCRIPTION_NAME","ToastDescription","ACTION_NAME","ToastAction","forwardRef","props","forwardedRef","altText","actionProps","jsx","ToastAnnounceExclude","asChild","children","ToastClose","ref","propTypes","Error","CLOSE_NAME","ToastCloseFrame","YStack","render","scope","closeProps","interactiveContext","useToastInteractiveContext","onPress","composeEventHandlers","onClose","ToastComponent","ToastImplFrame","styleable","forceMount","open","openProp","defaultOpen","onOpenChange","toastProps","setOpen","useControllableState","prop","defaultProp","onChange","strategy","currentToast","hide","id","useId","onPause","useEvent","onResume","isHide","shouldShow","AnimatePresence","ToastImpl","onSwipeEnd","event","withStaticProperties","Title","Description","Action","Close"],"sources":["../../src/Toast.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf,
|
|
6
|
+
__hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: !0
|
|
11
|
+
});
|
|
12
|
+
},
|
|
13
|
+
__copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
15
|
+
get: () => from[key],
|
|
16
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
|
+
});
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
26
|
+
value: mod,
|
|
27
|
+
enumerable: !0
|
|
28
|
+
}) : target, mod)),
|
|
29
|
+
__toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
30
|
+
value: !0
|
|
31
|
+
}), mod);
|
|
32
|
+
var ToastAnnounce_exports = {};
|
|
33
|
+
__export(ToastAnnounce_exports, {
|
|
34
|
+
ToastAnnounce: () => ToastAnnounce,
|
|
35
|
+
ToastAnnounceExclude: () => ToastAnnounceExclude
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(ToastAnnounce_exports);
|
|
38
|
+
var import_gui_constants = require("@hanzo/gui-constants"),
|
|
39
|
+
import_gui_core = require("@hanzo/gui-core"),
|
|
40
|
+
import_gui_portal = require("@hanzo/gui-portal"),
|
|
41
|
+
import_gui_start_transition = require("@hanzo/gui-start-transition"),
|
|
42
|
+
import_gui_visually_hidden = require("@hanzo/gui-visually-hidden"),
|
|
43
|
+
React = __toESM(require("react"), 1),
|
|
44
|
+
import_ToastProvider = require("./ToastProvider.cjs"),
|
|
45
|
+
import_jsx_runtime = require("react/jsx-runtime");
|
|
46
|
+
const ToastAnnounceExcludeFrame = (0, import_gui_core.styled)(import_gui_core.View, {
|
|
47
|
+
name: "ToastAnnounceExclude"
|
|
48
|
+
}),
|
|
49
|
+
ToastAnnounceExclude = React.forwardRef((props, forwardedRef) => {
|
|
50
|
+
const {
|
|
51
|
+
altText,
|
|
52
|
+
...announceExcludeProps
|
|
53
|
+
} = props;
|
|
54
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(ToastAnnounceExcludeFrame, {
|
|
55
|
+
"data-toast-announce-exclude": "",
|
|
56
|
+
"data-toast-announce-alt": altText || void 0,
|
|
57
|
+
...announceExcludeProps,
|
|
58
|
+
ref: forwardedRef
|
|
59
|
+
});
|
|
60
|
+
}),
|
|
61
|
+
ToastAnnounce = props => {
|
|
62
|
+
const {
|
|
63
|
+
scope,
|
|
64
|
+
children,
|
|
65
|
+
...announceProps
|
|
66
|
+
} = props,
|
|
67
|
+
context = (0, import_ToastProvider.useToastProviderContext)(scope),
|
|
68
|
+
[renderAnnounceText, setRenderAnnounceText] = React.useState(!1),
|
|
69
|
+
[isAnnounced, setIsAnnounced] = React.useState(!1);
|
|
70
|
+
return useNextFrame(() => {
|
|
71
|
+
(0, import_gui_start_transition.startTransition)(() => {
|
|
72
|
+
setRenderAnnounceText(!0);
|
|
73
|
+
});
|
|
74
|
+
}), React.useEffect(() => {
|
|
75
|
+
const timer = setTimeout(() => setIsAnnounced(!0), 1e3);
|
|
76
|
+
return () => clearTimeout(timer);
|
|
77
|
+
}, []), isAnnounced ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_gui_portal.Portal, {
|
|
78
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_gui_visually_hidden.VisuallyHidden, {
|
|
79
|
+
...announceProps,
|
|
80
|
+
children: renderAnnounceText && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_gui_core.Text, {
|
|
81
|
+
children: [context.label, " ", children]
|
|
82
|
+
})
|
|
83
|
+
})
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
function useNextFrame(callback = () => {}) {
|
|
87
|
+
const fn = (0, import_gui_core.useEvent)(callback);
|
|
88
|
+
(0, import_gui_constants.useIsomorphicLayoutEffect)(() => {
|
|
89
|
+
let raf1 = 0,
|
|
90
|
+
raf2 = 0;
|
|
91
|
+
return raf1 = requestAnimationFrame(() => {
|
|
92
|
+
raf2 = requestAnimationFrame(fn);
|
|
93
|
+
}), () => {
|
|
94
|
+
cancelAnimationFrame(raf1), cancelAnimationFrame(raf2);
|
|
95
|
+
};
|
|
96
|
+
}, [fn]);
|
|
97
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf,
|
|
8
|
+
__hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: !0
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
__copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
17
|
+
get: () => from[key],
|
|
18
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
|
+
});
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
+
value: mod,
|
|
29
|
+
enumerable: !0
|
|
30
|
+
}) : target, mod)),
|
|
31
|
+
__toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
+
value: !0
|
|
33
|
+
}), mod);
|
|
34
|
+
var ToastAnnounce_exports = {};
|
|
35
|
+
__export(ToastAnnounce_exports, {
|
|
36
|
+
ToastAnnounce: () => ToastAnnounce,
|
|
37
|
+
ToastAnnounceExclude: () => ToastAnnounceExclude
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(ToastAnnounce_exports);
|
|
40
|
+
var import_jsx_runtime = require("react/jsx-runtime"),
|
|
41
|
+
import_gui_constants = require("@hanzo/gui-constants"),
|
|
42
|
+
import_gui_core = require("@hanzo/gui-core"),
|
|
43
|
+
import_gui_portal = require("@hanzo/gui-portal"),
|
|
44
|
+
import_gui_start_transition = require("@hanzo/gui-start-transition"),
|
|
45
|
+
import_gui_visually_hidden = require("@hanzo/gui-visually-hidden"),
|
|
46
|
+
React = __toESM(require("react"), 1),
|
|
47
|
+
import_ToastProvider = require("./ToastProvider.native.js"),
|
|
48
|
+
ToastAnnounceExcludeFrame = (0, import_gui_core.styled)(import_gui_core.View, {
|
|
49
|
+
name: "ToastAnnounceExclude"
|
|
50
|
+
}),
|
|
51
|
+
ToastAnnounceExclude = /* @__PURE__ */React.forwardRef(function (props, forwardedRef) {
|
|
52
|
+
var {
|
|
53
|
+
altText,
|
|
54
|
+
...announceExcludeProps
|
|
55
|
+
} = props;
|
|
56
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(ToastAnnounceExcludeFrame, {
|
|
57
|
+
"data-toast-announce-exclude": "",
|
|
58
|
+
"data-toast-announce-alt": altText || void 0,
|
|
59
|
+
...announceExcludeProps,
|
|
60
|
+
ref: forwardedRef
|
|
61
|
+
});
|
|
62
|
+
}),
|
|
63
|
+
ToastAnnounce = function (props) {
|
|
64
|
+
var {
|
|
65
|
+
scope,
|
|
66
|
+
children,
|
|
67
|
+
...announceProps
|
|
68
|
+
} = props,
|
|
69
|
+
context = (0, import_ToastProvider.useToastProviderContext)(scope),
|
|
70
|
+
[renderAnnounceText, setRenderAnnounceText] = React.useState(!1),
|
|
71
|
+
[isAnnounced, setIsAnnounced] = React.useState(!1);
|
|
72
|
+
return useNextFrame(function () {
|
|
73
|
+
(0, import_gui_start_transition.startTransition)(function () {
|
|
74
|
+
setRenderAnnounceText(!0);
|
|
75
|
+
});
|
|
76
|
+
}), React.useEffect(function () {
|
|
77
|
+
var timer = setTimeout(function () {
|
|
78
|
+
return setIsAnnounced(!0);
|
|
79
|
+
}, 1e3);
|
|
80
|
+
return function () {
|
|
81
|
+
return clearTimeout(timer);
|
|
82
|
+
};
|
|
83
|
+
}, []), isAnnounced ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_gui_portal.Portal, {
|
|
84
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_gui_visually_hidden.VisuallyHidden, {
|
|
85
|
+
...announceProps,
|
|
86
|
+
children: renderAnnounceText && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_gui_core.Text, {
|
|
87
|
+
children: [context.label, " ", children]
|
|
88
|
+
})
|
|
89
|
+
})
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
function useNextFrame() {
|
|
93
|
+
var callback = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function () {},
|
|
94
|
+
fn = (0, import_gui_core.useEvent)(callback);
|
|
95
|
+
(0, import_gui_constants.useIsomorphicLayoutEffect)(function () {
|
|
96
|
+
var raf1 = 0,
|
|
97
|
+
raf2 = 0;
|
|
98
|
+
return raf1 = requestAnimationFrame(function () {
|
|
99
|
+
raf2 = requestAnimationFrame(fn);
|
|
100
|
+
}), function () {
|
|
101
|
+
cancelAnimationFrame(raf1), cancelAnimationFrame(raf2);
|
|
102
|
+
};
|
|
103
|
+
}, [fn]);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=ToastAnnounce.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","ToastAnnounce_exports","__export","ToastAnnounce","ToastAnnounceExclude","module","exports","import_jsx_runtime","require","import_gui_constants","import_gui_core","import_gui_portal","import_gui_start_transition","import_gui_visually_hidden","React","__toESM","import_ToastProvider","ToastAnnounceExcludeFrame","styled","View","name","forwardRef","props","forwardedRef","altText","announceExcludeProps","jsx","ref","scope","children","announceProps","context","useToastProviderContext","renderAnnounceText","setRenderAnnounceText","useState","isAnnounced","setIsAnnounced","useNextFrame","startTransition","useEffect","timer","setTimeout","clearTimeout","Portal","VisuallyHidden","jsxs","Text","label","callback","arguments","length","fn","useEvent","useIsomorphicLayoutEffect","raf1","raf2","requestAnimationFrame"],"sources":["../../src/ToastAnnounce.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAA;EAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;IAAAC,KAAA;EAAA,IAAAH,GAAA;AAAA,IAAAI,qBAAA;AAAAC,QAAA,CAAAD,qBAAA;EAAAE,aAAA,EAAAA,CAAA,KAAAA,aAAA;EAAAC,oBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAV,YAA0C,CAAAK,qBAAA;AAW1C,IAAAM,kBAAM,GAAAC,OAAA,oBAA4B;EAAAC,oBAAO,GAAAD,OAAM;EAAAE,eAAA,GAAAF,OAAA;EAAAG,iBAAA,GAAAH,OAAA;EAAAI,2BAAA,GAAAJ,OAAA;EAAAK,0BAAA,GAAAL,OAAA;EAAAM,KAAA,GAAAC,OAAA,CAAAP,OAAA;EAAAQ,oBAAA,GAAAR,OAAA;EAAAS,yBAAA,OAAAP,eAAA,CAAAQ,MAAA,EAAAR,eAAA,CAAAS,IAAA;IAC7CC,IAAA,EAAM;EACR,CAAC;EAWKhB,oBAAA,GAAuB,eAAMU,KAAA,CAAAO,UAAA,WAAAC,KAAA,EAAAC,YAAA;IACjC,IAAC;MAAAC,OAAO;MAAA,GAAAC;IAAiB,IAAAH,KAAA;IACvB,sBAAoB,IAAAf,kBAAqB,CAAAmB,GAAI,EAAAT,yBAAA;MAE7C,6BACE;MAAA,yBAAC,EAAAO,OAAA;MAAA,GAAAC,oBAAA;MAAAE,GAAA,EACCJ;IAA4B;EACQ;EAAApB,aAChC,YAAAA,CAAAmB,KAAA;IAAA;QACJM,KAAK;QAAAC,QAAA;QAAA,GAAAC;MAAA,IAAAR,KAAA;MAAAS,OAAA,OAAAf,oBAAA,CAAAgB,uBAAA,EAAAJ,KAAA;MAAA,CAAAK,kBAAA,EAAAC,qBAAA,IAAApB,KAAA,CAAAqB,QAAA;MAAA,CAAAC,WAAA,EAAAC,cAAA,IAAAvB,KAAA,CAAAqB,QAAA;IAAA,OAAAG,YAAA;MACP,IAAA1B,2BAAA,CAAA2B,eAAA;QAEJL,qBAAA;MAUI;IAGJ,IAAApB,KAAQ,CAAA0B,SAAO,aAAa;MAM5B,IAAAC,KAAA,GAAAC,UAAa,aAAM;QACjB,OAAAL,cAAA;MACE;MACF,OAAC;QAIH,OAAMM,YAAU,CAAAF,KAAM;MACpB;IACA,QAAAL,WAAa,UAAa,eAAK,IAAA7B,kBAAA,CAAAmB,GAAA,EAAAf,iBAAA,CAAAiC,MAAA;MACjCf,QAEO,iBAAc,CACnB,GAAAtB,kBAAA,CAAAmB,GAAA,EAAAb,0BAAC,CAAAgC,cAAA;QAIQ,GAAAf,aAAQ;QAAMD,QAAA,EAAAI,kBAAA,uBAAA1B,kBAAA,CAAAuC,IAAA,EAAApC,eAAA,CAAAqC,IAAA;UAAElB,QAAA,GAGvBE,OACF,CAAAiB,KAAA,EAEJ,KAISnB,QAAA;QACP;MACA;IACE;EAEA;AACE,SAAAS,YAAOA,CAAA;EAAwB,IAChCW,QACY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA,mBACX;IAAAE,EAAA,OAAA1C,eAAqB,CAAA2C,QACrB,EAAAJ,QAAA;EAAyB,EAC3B,EAAAxC,oBAAA,CAAA6C,yBAAA;IACF,IAAMC,IAAC;MAAAC,IAAA;IACT,OAAAD,IAAA,GAAAE,qBAAA","ignoreList":[]}
|