@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.
Files changed (151) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/Toast.cjs +170 -0
  3. package/dist/cjs/Toast.native.js +174 -0
  4. package/dist/cjs/Toast.native.js.map +1 -0
  5. package/dist/cjs/ToastAnnounce.cjs +97 -0
  6. package/dist/cjs/ToastAnnounce.native.js +105 -0
  7. package/dist/cjs/ToastAnnounce.native.js.map +1 -0
  8. package/dist/cjs/ToastImperative.cjs +100 -0
  9. package/dist/cjs/ToastImperative.native.js +122 -0
  10. package/dist/cjs/ToastImperative.native.js.map +1 -0
  11. package/dist/cjs/ToastImpl.cjs +292 -0
  12. package/dist/cjs/ToastImpl.native.js +326 -0
  13. package/dist/cjs/ToastImpl.native.js.map +1 -0
  14. package/dist/cjs/ToastPortal.cjs +44 -0
  15. package/dist/cjs/ToastPortal.native.js +47 -0
  16. package/dist/cjs/ToastPortal.native.js.map +1 -0
  17. package/dist/cjs/ToastProvider.cjs +146 -0
  18. package/dist/cjs/ToastProvider.native.js +159 -0
  19. package/dist/cjs/ToastProvider.native.js.map +1 -0
  20. package/dist/cjs/ToastViewport.cjs +278 -0
  21. package/dist/cjs/ToastViewport.native.js +315 -0
  22. package/dist/cjs/ToastViewport.native.js.map +1 -0
  23. package/dist/cjs/constants.cjs +28 -0
  24. package/dist/cjs/constants.native.js +31 -0
  25. package/dist/cjs/constants.native.js.map +1 -0
  26. package/dist/cjs/createNativeToast.cjs +51 -0
  27. package/dist/cjs/createNativeToast.native.js +48 -0
  28. package/dist/cjs/createNativeToast.native.js.map +1 -0
  29. package/dist/cjs/index.cjs +18 -0
  30. package/dist/cjs/index.native.js +21 -0
  31. package/dist/cjs/index.native.js.map +1 -0
  32. package/dist/cjs/types.cjs +16 -0
  33. package/dist/cjs/types.native.js +19 -0
  34. package/dist/cjs/types.native.js.map +1 -0
  35. package/dist/esm/Toast.mjs +131 -0
  36. package/dist/esm/Toast.mjs.map +1 -0
  37. package/dist/esm/Toast.native.js +132 -0
  38. package/dist/esm/Toast.native.js.map +1 -0
  39. package/dist/esm/ToastAnnounce.mjs +62 -0
  40. package/dist/esm/ToastAnnounce.mjs.map +1 -0
  41. package/dist/esm/ToastAnnounce.native.js +67 -0
  42. package/dist/esm/ToastAnnounce.native.js.map +1 -0
  43. package/dist/esm/ToastImperative.mjs +63 -0
  44. package/dist/esm/ToastImperative.mjs.map +1 -0
  45. package/dist/esm/ToastImperative.native.js +82 -0
  46. package/dist/esm/ToastImperative.native.js.map +1 -0
  47. package/dist/esm/ToastImpl.mjs +256 -0
  48. package/dist/esm/ToastImpl.mjs.map +1 -0
  49. package/dist/esm/ToastImpl.native.js +287 -0
  50. package/dist/esm/ToastImpl.native.js.map +1 -0
  51. package/dist/esm/ToastPortal.mjs +21 -0
  52. package/dist/esm/ToastPortal.mjs.map +1 -0
  53. package/dist/esm/ToastPortal.native.js +21 -0
  54. package/dist/esm/ToastPortal.native.js.map +1 -0
  55. package/dist/esm/ToastProvider.mjs +108 -0
  56. package/dist/esm/ToastProvider.mjs.map +1 -0
  57. package/dist/esm/ToastProvider.native.js +118 -0
  58. package/dist/esm/ToastProvider.native.js.map +1 -0
  59. package/dist/esm/ToastViewport.mjs +241 -0
  60. package/dist/esm/ToastViewport.mjs.map +1 -0
  61. package/dist/esm/ToastViewport.native.js +275 -0
  62. package/dist/esm/ToastViewport.native.js.map +1 -0
  63. package/dist/esm/constants.mjs +4 -0
  64. package/dist/esm/constants.mjs.map +1 -0
  65. package/dist/esm/constants.native.js +4 -0
  66. package/dist/esm/constants.native.js.map +1 -0
  67. package/dist/esm/createNativeToast.mjs +27 -0
  68. package/dist/esm/createNativeToast.mjs.map +1 -0
  69. package/dist/esm/createNativeToast.native.js +21 -0
  70. package/dist/esm/createNativeToast.native.js.map +1 -0
  71. package/dist/esm/index.js +2 -0
  72. package/dist/esm/index.js.map +1 -0
  73. package/dist/esm/index.mjs +2 -0
  74. package/dist/esm/index.mjs.map +1 -0
  75. package/dist/esm/index.native.js +2 -0
  76. package/dist/esm/index.native.js.map +1 -0
  77. package/dist/esm/types.mjs +2 -0
  78. package/dist/esm/types.mjs.map +1 -0
  79. package/dist/esm/types.native.js +2 -0
  80. package/dist/esm/types.native.js.map +1 -0
  81. package/dist/jsx/Toast.mjs +131 -0
  82. package/dist/jsx/Toast.mjs.map +1 -0
  83. package/dist/jsx/Toast.native.js +174 -0
  84. package/dist/jsx/Toast.native.js.map +1 -0
  85. package/dist/jsx/ToastAnnounce.mjs +62 -0
  86. package/dist/jsx/ToastAnnounce.mjs.map +1 -0
  87. package/dist/jsx/ToastAnnounce.native.js +105 -0
  88. package/dist/jsx/ToastAnnounce.native.js.map +1 -0
  89. package/dist/jsx/ToastImperative.mjs +63 -0
  90. package/dist/jsx/ToastImperative.mjs.map +1 -0
  91. package/dist/jsx/ToastImperative.native.js +122 -0
  92. package/dist/jsx/ToastImperative.native.js.map +1 -0
  93. package/dist/jsx/ToastImpl.mjs +256 -0
  94. package/dist/jsx/ToastImpl.mjs.map +1 -0
  95. package/dist/jsx/ToastImpl.native.js +326 -0
  96. package/dist/jsx/ToastImpl.native.js.map +1 -0
  97. package/dist/jsx/ToastPortal.mjs +21 -0
  98. package/dist/jsx/ToastPortal.mjs.map +1 -0
  99. package/dist/jsx/ToastPortal.native.js +47 -0
  100. package/dist/jsx/ToastPortal.native.js.map +1 -0
  101. package/dist/jsx/ToastProvider.mjs +108 -0
  102. package/dist/jsx/ToastProvider.mjs.map +1 -0
  103. package/dist/jsx/ToastProvider.native.js +159 -0
  104. package/dist/jsx/ToastProvider.native.js.map +1 -0
  105. package/dist/jsx/ToastViewport.mjs +241 -0
  106. package/dist/jsx/ToastViewport.mjs.map +1 -0
  107. package/dist/jsx/ToastViewport.native.js +315 -0
  108. package/dist/jsx/ToastViewport.native.js.map +1 -0
  109. package/dist/jsx/constants.mjs +4 -0
  110. package/dist/jsx/constants.mjs.map +1 -0
  111. package/dist/jsx/constants.native.js +31 -0
  112. package/dist/jsx/constants.native.js.map +1 -0
  113. package/dist/jsx/createNativeToast.mjs +27 -0
  114. package/dist/jsx/createNativeToast.mjs.map +1 -0
  115. package/dist/jsx/createNativeToast.native.js +48 -0
  116. package/dist/jsx/createNativeToast.native.js.map +1 -0
  117. package/dist/jsx/index.js +2 -0
  118. package/dist/jsx/index.js.map +1 -0
  119. package/dist/jsx/index.mjs +2 -0
  120. package/dist/jsx/index.mjs.map +1 -0
  121. package/dist/jsx/index.native.js +21 -0
  122. package/dist/jsx/index.native.js.map +1 -0
  123. package/dist/jsx/types.mjs +2 -0
  124. package/dist/jsx/types.mjs.map +1 -0
  125. package/dist/jsx/types.native.js +19 -0
  126. package/dist/jsx/types.native.js.map +1 -0
  127. package/package.json +66 -0
  128. package/src/Toast.tsx +219 -0
  129. package/src/ToastAnnounce.tsx +103 -0
  130. package/src/ToastImperative.tsx +192 -0
  131. package/src/ToastImpl.tsx +502 -0
  132. package/src/ToastPortal.tsx +19 -0
  133. package/src/ToastProvider.tsx +197 -0
  134. package/src/ToastViewport.tsx +429 -0
  135. package/src/constants.ts +2 -0
  136. package/src/createNativeToast.native.tsx +29 -0
  137. package/src/createNativeToast.tsx +48 -0
  138. package/src/index.ts +3 -0
  139. package/src/types.ts +71 -0
  140. package/types/Toast.d.ts +84 -0
  141. package/types/ToastAnnounce.d.ts +18 -0
  142. package/types/ToastImperative.d.ts +95 -0
  143. package/types/ToastImpl.d.ts +109 -0
  144. package/types/ToastPortal.d.ts +8 -0
  145. package/types/ToastProvider.d.ts +92 -0
  146. package/types/ToastViewport.d.ts +75 -0
  147. package/types/constants.d.ts +3 -0
  148. package/types/createNativeToast.d.ts +4 -0
  149. package/types/createNativeToast.native.d.ts +4 -0
  150. package/types/index.d.ts +4 -0
  151. package/types/types.d.ts +61 -0
@@ -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":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","Toast_exports","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","import_ToastAnnounce","import_ToastImpl","TITLE_NAME","ToastTitle","styled","SizableText","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"],"sources":["../../src/Toast.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ import { useIsomorphicLayoutEffect } from "@hanzo/gui-constants";
2
+ import { View, Text, styled, useEvent } from "@hanzo/gui-core";
3
+ import { Portal } from "@hanzo/gui-portal";
4
+ import { startTransition } from "@hanzo/gui-start-transition";
5
+ import { VisuallyHidden } from "@hanzo/gui-visually-hidden";
6
+ import * as React from "react";
7
+ import { useToastProviderContext } from "./ToastProvider.mjs";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ const ToastAnnounceExcludeFrame = styled(View, {
10
+ name: "ToastAnnounceExclude"
11
+ }),
12
+ ToastAnnounceExclude = React.forwardRef((props, forwardedRef) => {
13
+ const {
14
+ altText,
15
+ ...announceExcludeProps
16
+ } = props;
17
+ return /* @__PURE__ */jsx(ToastAnnounceExcludeFrame, {
18
+ "data-toast-announce-exclude": "",
19
+ "data-toast-announce-alt": altText || void 0,
20
+ ...announceExcludeProps,
21
+ ref: forwardedRef
22
+ });
23
+ }),
24
+ ToastAnnounce = props => {
25
+ const {
26
+ scope,
27
+ children,
28
+ ...announceProps
29
+ } = props,
30
+ context = useToastProviderContext(scope),
31
+ [renderAnnounceText, setRenderAnnounceText] = React.useState(!1),
32
+ [isAnnounced, setIsAnnounced] = React.useState(!1);
33
+ return useNextFrame(() => {
34
+ startTransition(() => {
35
+ setRenderAnnounceText(!0);
36
+ });
37
+ }), React.useEffect(() => {
38
+ const timer = setTimeout(() => setIsAnnounced(!0), 1e3);
39
+ return () => clearTimeout(timer);
40
+ }, []), isAnnounced ? null : /* @__PURE__ */jsx(Portal, {
41
+ children: /* @__PURE__ */jsx(VisuallyHidden, {
42
+ ...announceProps,
43
+ children: renderAnnounceText && /* @__PURE__ */jsxs(Text, {
44
+ children: [context.label, " ", children]
45
+ })
46
+ })
47
+ });
48
+ };
49
+ function useNextFrame(callback = () => {}) {
50
+ const fn = useEvent(callback);
51
+ useIsomorphicLayoutEffect(() => {
52
+ let raf1 = 0,
53
+ raf2 = 0;
54
+ return raf1 = requestAnimationFrame(() => {
55
+ raf2 = requestAnimationFrame(fn);
56
+ }), () => {
57
+ cancelAnimationFrame(raf1), cancelAnimationFrame(raf2);
58
+ };
59
+ }, [fn]);
60
+ }
61
+ export { ToastAnnounce, ToastAnnounceExclude };
62
+ //# sourceMappingURL=ToastAnnounce.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useIsomorphicLayoutEffect","View","Text","styled","useEvent","Portal","startTransition","VisuallyHidden","React","useToastProviderContext","jsx","jsxs","ToastAnnounceExcludeFrame","name","ToastAnnounceExclude","forwardRef","props","forwardedRef","altText","announceExcludeProps","ref","ToastAnnounce","scope","children","announceProps","context","renderAnnounceText","setRenderAnnounceText","useState","isAnnounced","setIsAnnounced","useNextFrame","useEffect","timer","setTimeout","clearTimeout","label","callback","fn","raf1","raf2","requestAnimationFrame","cancelAnimationFrame"],"sources":["../../src/ToastAnnounce.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,yBAAA,QAAiC;AAE1C,SAASC,IAAA,EAAMC,IAAA,EAAMC,MAAA,EAAQC,QAAA,QAAgB;AAC7C,SAASC,MAAA,QAAc;AACvB,SAASC,eAAA,QAAuB;AAChC,SAASC,cAAA,QAAsB;AAC/B,YAAYC,KAAA,MAAW;AAGvB,SAASC,uBAAA,QAA+B;AAoBlC,SAAAC,GAAA,EA0CIC,IAAA,QA1CJ;AAlBN,MAAMC,yBAAA,GAA4BT,MAAA,CAAOF,IAAA,EAAM;IAC7CY,IAAA,EAAM;EACR,CAAC;EAWKC,oBAAA,GAAuBN,KAAA,CAAMO,UAAA,CACjC,CAACC,KAAA,EAAOC,YAAA,KAAiB;IACvB,MAAM;MAAEC,OAAA;MAAS,GAAGC;IAAqB,IAAIH,KAAA;IAE7C,OACE,eAAAN,GAAA,CAACE,yBAAA;MACC,+BAA4B;MAC5B,2BAAyBM,OAAA,IAAW;MACnC,GAAGC,oBAAA;MACJC,GAAA,EAAKH;IAAA,CACP;EAEJ,CACF;EASMI,aAAA,GACJL,KAAA,IACG;IACH,MAAM;QAAEM,KAAA;QAAOC,QAAA;QAAU,GAAGC;MAAc,IAAIR,KAAA;MACxCS,OAAA,GAAUhB,uBAAA,CAAwBa,KAAK;MACvC,CAACI,kBAAA,EAAoBC,qBAAqB,IAAInB,KAAA,CAAMoB,QAAA,CAAS,EAAK;MAClE,CAACC,WAAA,EAAaC,cAAc,IAAItB,KAAA,CAAMoB,QAAA,CAAS,EAAK;IAG1D,OAAAG,YAAA,CAAa,MAAM;MACjBzB,eAAA,CAAgB,MAAM;QACpBqB,qBAAA,CAAsB,EAAI;MAC5B,CAAC;IACH,CAAC,GAGDnB,KAAA,CAAMwB,SAAA,CAAU,MAAM;MACpB,MAAMC,KAAA,GAAQC,UAAA,CAAW,MAAMJ,cAAA,CAAe,EAAI,GAAG,GAAI;MACzD,OAAO,MAAMK,YAAA,CAAaF,KAAK;IACjC,GAAG,EAAE,GAEEJ,WAAA,GAAc,OACnB,eAAAnB,GAAA,CAACL,MAAA;MACCkB,QAAA,iBAAAb,GAAA,CAACH,cAAA;QAAgB,GAAGiB,aAAA;QACjBD,QAAA,EAAAG,kBAAA,IACC,eAAAf,IAAA,CAACT,IAAA;UACEqB,QAAA,GAAAE,OAAA,CAAQW,KAAA,EAAM,KAAEb,QAAA;QAAA,CACnB;MAAA,CAEJ;IAAA,CACF;EAEJ;AAIA,SAASQ,aAAaM,QAAA,GAAWA,CAAA,KAAM,CAAC,GAAG;EACzC,MAAMC,EAAA,GAAKlC,QAAA,CAASiC,QAAQ;EAC5BrC,yBAAA,CAA0B,MAAM;IAC9B,IAAIuC,IAAA,GAAO;MACPC,IAAA,GAAO;IACX,OAAAD,IAAA,GAAOE,qBAAA,CAAsB,MAAM;MACjCD,IAAA,GAAOC,qBAAA,CAAsBH,EAAE;IACjC,CAAC,GACM,MAAM;MACXI,oBAAA,CAAqBH,IAAI,GACzBG,oBAAA,CAAqBF,IAAI;IAC3B;EACF,GAAG,CAACF,EAAE,CAAC;AACT","ignoreList":[]}
@@ -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":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","ToastAnnounce_exports","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","import_ToastProvider","ToastAnnounceExcludeFrame","styled","View","forwardRef","props","forwardedRef","altText","announceExcludeProps","jsx","ref","scope","children","announceProps","context","useToastProviderContext","renderAnnounceText","setRenderAnnounceText","useState","isAnnounced","setIsAnnounced","useNextFrame","startTransition","useEffect","timer","setTimeout"],"sources":["../../src/ToastAnnounce.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ import { isAndroid, isIos, isWeb } from "@hanzo/gui-core";
2
+ import React from "react";
3
+ import { createNativeToast } from "./createNativeToast.mjs";
4
+ import { jsx } from "react/jsx-runtime";
5
+ const ToastContext = React.createContext({}),
6
+ ToastCurrentContext = React.createContext(null),
7
+ useToastController = () => React.useContext(ToastContext),
8
+ useToastState = () => React.useContext(ToastCurrentContext),
9
+ useToast = () => ({
10
+ ...useToastController(),
11
+ currentToast: useToastState()
12
+ }),
13
+ ToastImperativeProvider = ({
14
+ children,
15
+ options
16
+ }) => {
17
+ const counterRef = React.useRef(0),
18
+ [toast, setToast] = React.useState(null),
19
+ [lastNativeToastRef, setLastNativeToastRef] = React.useState(null),
20
+ show = React.useCallback((title, showOptions) => {
21
+ const native = showOptions?.native ?? options.native,
22
+ isWebNative = Array.isArray(native) ? native.includes("web") : native === "web",
23
+ isMobileNative = Array.isArray(native) ? native.includes("mobile") : native === "mobile",
24
+ isAndroidNative = isMobileNative || (Array.isArray(native) ? native.includes("android") : native === "android"),
25
+ isIosNative = isMobileNative || (Array.isArray(native) ? native.includes("ios") : native === "ios"),
26
+ isHandledNatively = native === !0 || isWeb && isWebNative || !isWeb && isMobileNative || isAndroid && isAndroidNative || isIos && isIosNative;
27
+ if (isHandledNatively) {
28
+ const nativeToastResult = createNativeToast(title, showOptions ?? {});
29
+ typeof nativeToastResult == "object" && nativeToastResult.nativeToastRef && setLastNativeToastRef(nativeToastResult.nativeToastRef);
30
+ }
31
+ return counterRef.current++, setToast({
32
+ ...showOptions?.customData,
33
+ ...showOptions,
34
+ viewportName: showOptions?.viewportName ?? "default",
35
+ title,
36
+ id: counterRef.current.toString(),
37
+ isHandledNatively
38
+ }), !0;
39
+ }, [setToast, JSON.stringify(options.native || null)]),
40
+ hide = React.useCallback(() => {
41
+ lastNativeToastRef?.close(), setToast(prev => prev ? {
42
+ ...prev,
43
+ hide: !0
44
+ } : null), setTimeout(() => {
45
+ setToast(null);
46
+ }, 100);
47
+ }, [setToast, lastNativeToastRef]),
48
+ contextValue = React.useMemo(() => ({
49
+ show,
50
+ hide,
51
+ nativeToast: lastNativeToastRef,
52
+ options
53
+ }), [show, hide, lastNativeToastRef, JSON.stringify(options || null)]);
54
+ return /* @__PURE__ */jsx(ToastContext.Provider, {
55
+ value: contextValue,
56
+ children: /* @__PURE__ */jsx(ToastCurrentContext.Provider, {
57
+ value: toast,
58
+ children
59
+ })
60
+ });
61
+ };
62
+ export { ToastImperativeProvider, useToast, useToastController, useToastState };
63
+ //# sourceMappingURL=ToastImperative.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isAndroid","isIos","isWeb","React","createNativeToast","jsx","ToastContext","createContext","ToastCurrentContext","useToastController","useContext","useToastState","useToast","currentToast","ToastImperativeProvider","children","options","counterRef","useRef","toast","setToast","useState","lastNativeToastRef","setLastNativeToastRef","show","useCallback","title","showOptions","native","isWebNative","Array","isArray","includes","isMobileNative","isAndroidNative","isIosNative","isHandledNatively","nativeToastResult","nativeToastRef","current","customData","viewportName","id","toString","JSON","stringify","hide","close","prev","setTimeout","contextValue","useMemo","nativeToast","Provider","value"],"sources":["../../src/ToastImperative.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,122 @@
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 ToastImperative_exports = {};
35
+ __export(ToastImperative_exports, {
36
+ ToastImperativeProvider: () => ToastImperativeProvider,
37
+ useToast: () => useToast,
38
+ useToastController: () => useToastController,
39
+ useToastState: () => useToastState
40
+ });
41
+ module.exports = __toCommonJS(ToastImperative_exports);
42
+ var import_jsx_runtime = require("react/jsx-runtime"),
43
+ import_gui_core = require("@hanzo/gui-core"),
44
+ import_react = __toESM(require("react"), 1),
45
+ import_createNativeToast = require("./createNativeToast.native.js");
46
+ function _type_of(obj) {
47
+ "@swc/helpers - typeof";
48
+
49
+ return obj && typeof Symbol < "u" && obj.constructor === Symbol ? "symbol" : typeof obj;
50
+ }
51
+ var ToastContext = /* @__PURE__ */import_react.default.createContext({}),
52
+ ToastCurrentContext = /* @__PURE__ */import_react.default.createContext(null),
53
+ useToastController = function () {
54
+ return import_react.default.useContext(ToastContext);
55
+ },
56
+ useToastState = function () {
57
+ return import_react.default.useContext(ToastCurrentContext);
58
+ },
59
+ useToast = function () {
60
+ return {
61
+ ...useToastController(),
62
+ currentToast: useToastState()
63
+ };
64
+ },
65
+ ToastImperativeProvider = function (param) {
66
+ var {
67
+ children,
68
+ options
69
+ } = param,
70
+ counterRef = import_react.default.useRef(0),
71
+ [toast, setToast] = import_react.default.useState(null),
72
+ [lastNativeToastRef, setLastNativeToastRef] = import_react.default.useState(null),
73
+ show = import_react.default.useCallback(function (title, showOptions) {
74
+ var _showOptions_native,
75
+ native = (_showOptions_native = showOptions?.native) !== null && _showOptions_native !== void 0 ? _showOptions_native : options.native,
76
+ isWebNative = Array.isArray(native) ? native.includes("web") : native === "web",
77
+ isMobileNative = Array.isArray(native) ? native.includes("mobile") : native === "mobile",
78
+ isAndroidNative = isMobileNative || (Array.isArray(native) ? native.includes("android") : native === "android"),
79
+ isIosNative = isMobileNative || (Array.isArray(native) ? native.includes("ios") : native === "ios"),
80
+ isHandledNatively = native === !0 || import_gui_core.isWeb && isWebNative || !import_gui_core.isWeb && isMobileNative || import_gui_core.isAndroid && isAndroidNative || import_gui_core.isIos && isIosNative;
81
+ if (isHandledNatively) {
82
+ var nativeToastResult = (0, import_createNativeToast.createNativeToast)(title, showOptions ?? {});
83
+ (typeof nativeToastResult > "u" ? "undefined" : _type_of(nativeToastResult)) === "object" && nativeToastResult.nativeToastRef && setLastNativeToastRef(nativeToastResult.nativeToastRef);
84
+ }
85
+ counterRef.current++;
86
+ var _showOptions_viewportName;
87
+ return setToast({
88
+ ...showOptions?.customData,
89
+ ...showOptions,
90
+ viewportName: (_showOptions_viewportName = showOptions?.viewportName) !== null && _showOptions_viewportName !== void 0 ? _showOptions_viewportName : "default",
91
+ title,
92
+ id: counterRef.current.toString(),
93
+ isHandledNatively
94
+ }), !0;
95
+ }, [setToast, JSON.stringify(options.native || null)]),
96
+ hide = import_react.default.useCallback(function () {
97
+ lastNativeToastRef?.close(), setToast(function (prev) {
98
+ return prev ? {
99
+ ...prev,
100
+ hide: !0
101
+ } : null;
102
+ }), setTimeout(function () {
103
+ setToast(null);
104
+ }, 100);
105
+ }, [setToast, lastNativeToastRef]),
106
+ contextValue = import_react.default.useMemo(function () {
107
+ return {
108
+ show,
109
+ hide,
110
+ nativeToast: lastNativeToastRef,
111
+ options
112
+ };
113
+ }, [show, hide, lastNativeToastRef, JSON.stringify(options || null)]);
114
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(ToastContext.Provider, {
115
+ value: contextValue,
116
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(ToastCurrentContext.Provider, {
117
+ value: toast,
118
+ children
119
+ })
120
+ });
121
+ };
122
+ //# sourceMappingURL=ToastImperative.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","ToastImperative_exports","ToastImperativeProvider","useToast","useToastController","useToastState","module","exports","import_jsx_runtime","require","import_gui_core","import_react","import_createNativeToast","_type_of","obj","Symbol","constructor","ToastContext","default","createContext","ToastCurrentContext","useContext"],"sources":["../../src/ToastImperative.tsx"],"sourcesContent":[null],"mappings":"AACA,YAAS;;AACT,IAAAA,QAAO,GAAAC,MAAW,CAAAC,MAAA;AAClB,IAAAC,SAAS,GAAAF,MAAA,CAAAG,cAAyB;AAqL5B,IAAAC,gBAAA,GAAAJ,MAAA,CAAAK,wBAAA;AA3GN,IAAAC,iBAAqB,GAAAN,MAAM,CAAAO,mBACrB;AAYG,IACLC,YAAG,GAAAR,MAAmB,CAAAS,cAAA;EAAAC,YAAA,GAAAV,MAAA,CAAAW,SAAA,CAAAC,cAAA;AAAA,IACtBC,QAAA,GAAAA,CAAcC,MAAA,EAAAC,GAAA,KAAc;IAC9B,KAWW,IAAAC,IAAA,IAAAD,GAAA,EACXb,SAAA,CAAAY,MAAA,EAAAE,IAAA;MAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;MAAAE,UAAA;IAAA;EAAA;EACAC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;IACF,IAAoCF,IAAA,WAAAA,IAAA,uBAAAA,IAAA,gBAClC,KAAM,IAAAG,GAAA,IAAAlB,iBAA2B,CAE3Be,IAAC,GAMJ,CAAAX,YAAO,CAAAe,IAAA,CAAAL,EAAA,EAAgBI,GAAA,KAAAA,GAAA,KAAAF,MAAA,IAAApB,SAAA,CAAAkB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAnB,gBAAA,CAAAiB,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;IACtB,OAAAE,EAAA;EAqBA;AACE,IAAAM,OAAA,GAAMA,CAAAC,GAAA,EAAAC,UAAA,EAAAd,MAAoB,MAAAA,MAAA,GAAkBa,GAAA,IAAO,OAAA5B,QAAgB,CAACS,YAAA,CAAAmB,GAAA,SAAAR,WAAA;EACpE;EACwD;EAG1D;EACS;EACSS,UACb,KAAAD,GAAA,KAAAA,GAAA,CAAAE,UAAA,GAAA3B,SAAA,CAAAY,MAAA;IAAAgB,KAAA,EAAAH,GAAA;IAAAT,UAAA;EAAA,KAAAJ,MAAA,EAAAa,GACwC;EAAAI,YAC3C,GAAAJ,GAAA,IAAAR,WAAA,CAAAjB,SAAA;IAAA4B,KAAA;EAAA,IAAAH,GAAA;AAAA,IAAAK,uBACe,IAAQ;AAASnB,QAChC,CAAAmB,uBAAA;EAAAC,uBAEK,EAAAA,CAAA,KAAAA,uBAAA;EAAAC,QACT,EAAAA,CAAA,KAAAA,QAAA;EAAAC,kBACgB,EAAAA,CAAA,KAAAA,kBAAkB;EACpCC,aAEa,EAAAA,CAAA,KAAMA;AACjB;AAGSC,MACL,CAAAC,OAAG,GAAAP,YAAA,CAAAC,uBAAA;AAAA,IAAAO,kBACG,GAAAC,OAAA;EAAAC,eAAA,GAAAD,OAAA;EAAAE,YAAA,GAAAhB,OAAA,CAAAc,OAAA;EAAAG,wBAAA,GAAAH,OAAA;AAAA,SAHUI,QAOpBA,CAAAC,GAAA;EACE,uBAAa;;EAAA,OACZA,GAAG,WAAAC,MAAA,UAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AAAA;AAIC,IACLG,YAAA,kBAAAN,YAAA,CAAAO,OAAA,CAAAC,aAAA;EAAAC,mBAAA,kBAAAT,YAAA,CAAAO,OAAA,CAAAC,aAAA;EAAAf,kBAAA,YAAAA,CAAA;IAAA,OACAO,YAAA,CAAAO,OAAA,CAAAG,UAAA,CAAAJ,YAAA;EAAA;EAAAZ,aACA,GAAa,SAAAA,CAAA;IAAA,OACbM,YAAA,CAAAO,OAAA,CAAAG,UAAA,CAAAD,mBAAA;EAAA;EACFjB,QACE,GAAM,SAAAA,CAAA,EAAM;IAEhB,OACE;MAMJ,GAAAC,kBAAA","ignoreList":[]}