@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,131 @@
1
+ import { AnimatePresence } from "@hanzo/gui-animate-presence";
2
+ import { styled, useEvent } from "@hanzo/gui-core";
3
+ import { composeEventHandlers, withStaticProperties } from "@hanzo/gui-helpers";
4
+ import { YStack } from "@hanzo/gui-stacks";
5
+ import { SizableText } from "@hanzo/gui-text";
6
+ import { useControllableState } from "@hanzo/gui-use-controllable-state";
7
+ import * as React from "react";
8
+ import { ToastAnnounceExclude } from "./ToastAnnounce.mjs";
9
+ import { useToast, useToastController, useToastState } from "./ToastImperative.mjs";
10
+ import { ToastImpl, ToastImplFrame, useToastInteractiveContext } from "./ToastImpl.mjs";
11
+ import { ToastProvider } from "./ToastProvider.mjs";
12
+ import { ToastViewport } from "./ToastViewport.mjs";
13
+ import { jsx } from "react/jsx-runtime";
14
+ const TITLE_NAME = "ToastTitle",
15
+ ToastTitle = styled(SizableText, {
16
+ name: TITLE_NAME,
17
+ variants: {
18
+ unstyled: {
19
+ false: {
20
+ color: "$color",
21
+ size: "$4"
22
+ }
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ unstyled: process.env.HANZO_GUI_HEADLESS === "1"
27
+ }
28
+ }),
29
+ DESCRIPTION_NAME = "ToastDescription",
30
+ ToastDescription = styled(SizableText, {
31
+ name: DESCRIPTION_NAME,
32
+ variants: {
33
+ unstyled: {
34
+ false: {
35
+ color: "$color11",
36
+ size: "$1"
37
+ }
38
+ }
39
+ },
40
+ defaultVariants: {
41
+ unstyled: process.env.HANZO_GUI_HEADLESS === "1"
42
+ }
43
+ }),
44
+ ACTION_NAME = "ToastAction",
45
+ ToastAction = React.forwardRef(function (props, forwardedRef) {
46
+ const {
47
+ altText,
48
+ ...actionProps
49
+ } = props;
50
+ return altText ? /* @__PURE__ */jsx(ToastAnnounceExclude, {
51
+ altText,
52
+ asChild: !0,
53
+ children: /* @__PURE__ */jsx(ToastClose, {
54
+ ...actionProps,
55
+ ref: forwardedRef
56
+ })
57
+ }) : null;
58
+ });
59
+ ToastAction.propTypes = {
60
+ altText(props) {
61
+ return props.altText ? null : new Error(`Missing prop \`altText\` expected on \`${ACTION_NAME}\``);
62
+ }
63
+ };
64
+ const CLOSE_NAME = "ToastClose",
65
+ ToastCloseFrame = styled(YStack, {
66
+ name: CLOSE_NAME,
67
+ render: "button"
68
+ }),
69
+ ToastClose = React.forwardRef(function (props, forwardedRef) {
70
+ const {
71
+ scope,
72
+ ...closeProps
73
+ } = props,
74
+ interactiveContext = useToastInteractiveContext(scope);
75
+ return /* @__PURE__ */jsx(ToastAnnounceExclude, {
76
+ asChild: !0,
77
+ children: /* @__PURE__ */jsx(ToastCloseFrame, {
78
+ "aria-label": "Close",
79
+ ...closeProps,
80
+ ref: forwardedRef,
81
+ onPress: composeEventHandlers(props.onPress, interactiveContext.onClose)
82
+ })
83
+ });
84
+ }),
85
+ ToastComponent = ToastImplFrame.styleable(function (props, forwardedRef) {
86
+ const {
87
+ forceMount,
88
+ open: openProp,
89
+ defaultOpen,
90
+ onOpenChange,
91
+ ...toastProps
92
+ } = props,
93
+ [open, setOpen] = useControllableState({
94
+ prop: openProp,
95
+ defaultProp: defaultOpen ?? !0,
96
+ onChange: onOpenChange,
97
+ strategy: "most-recent-wins"
98
+ }),
99
+ currentToast = useToastState(),
100
+ {
101
+ hide
102
+ } = useToastController(),
103
+ id = React.useId(),
104
+ onPause = useEvent(props.onPause),
105
+ onResume = useEvent(props.onResume),
106
+ isHide = currentToast?.hide === !0;
107
+ return /* @__PURE__ */jsx(AnimatePresence, {
108
+ children: (forceMount || open) && !isHide ? /* @__PURE__ */jsx(ToastImpl, {
109
+ id,
110
+ open,
111
+ ...toastProps,
112
+ ref: forwardedRef,
113
+ onClose: () => {
114
+ setOpen(!1), hide();
115
+ },
116
+ onPause,
117
+ onResume,
118
+ onSwipeEnd: composeEventHandlers(props.onSwipeEnd, event => {
119
+ setOpen(!1);
120
+ })
121
+ }) : null
122
+ }, id);
123
+ }),
124
+ Toast2 = withStaticProperties(ToastComponent, {
125
+ Title: ToastTitle,
126
+ Description: ToastDescription,
127
+ Action: ToastAction,
128
+ Close: ToastClose
129
+ });
130
+ export { Toast2 as Toast, ToastProvider, ToastViewport, useToast, useToastController, useToastState };
131
+ //# sourceMappingURL=Toast.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AnimatePresence","styled","useEvent","composeEventHandlers","withStaticProperties","YStack","SizableText","useControllableState","React","ToastAnnounceExclude","useToast","useToastController","useToastState","ToastImpl","ToastImplFrame","useToastInteractiveContext","ToastProvider","ToastViewport","jsx","TITLE_NAME","ToastTitle","name","variants","unstyled","false","color","size","defaultVariants","process","env","HANZO_GUI_HEADLESS","DESCRIPTION_NAME","ToastDescription","ACTION_NAME","ToastAction","forwardRef","props","forwardedRef","altText","actionProps","asChild","children","ToastClose","ref","propTypes","Error","CLOSE_NAME","ToastCloseFrame","render","scope","closeProps","interactiveContext","onPress","onClose","ToastComponent","styleable","forceMount","open","openProp","defaultOpen","onOpenChange","toastProps","setOpen","prop","defaultProp","onChange","strategy","currentToast","hide","id","useId","onPause","onResume","isHide","onSwipeEnd","event","Toast2","Title","Description","Action","Close"],"sources":["../../src/Toast.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,132 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { AnimatePresence } from "@hanzo/gui-animate-presence";
3
+ import { styled, useEvent } from "@hanzo/gui-core";
4
+ import { composeEventHandlers, withStaticProperties } from "@hanzo/gui-helpers";
5
+ import { YStack } from "@hanzo/gui-stacks";
6
+ import { SizableText } from "@hanzo/gui-text";
7
+ import { useControllableState } from "@hanzo/gui-use-controllable-state";
8
+ import * as React from "react";
9
+ import { ToastAnnounceExclude } from "./ToastAnnounce.native.js";
10
+ import { useToast, useToastController, useToastState } from "./ToastImperative.native.js";
11
+ import { ToastImpl, ToastImplFrame, useToastInteractiveContext } from "./ToastImpl.native.js";
12
+ import { ToastProvider } from "./ToastProvider.native.js";
13
+ import { ToastViewport } from "./ToastViewport.native.js";
14
+ var TITLE_NAME = "ToastTitle",
15
+ ToastTitle = styled(SizableText, {
16
+ name: TITLE_NAME,
17
+ variants: {
18
+ unstyled: {
19
+ false: {
20
+ color: "$color",
21
+ size: "$4"
22
+ }
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ unstyled: process.env.HANZO_GUI_HEADLESS === "1"
27
+ }
28
+ }),
29
+ DESCRIPTION_NAME = "ToastDescription",
30
+ ToastDescription = styled(SizableText, {
31
+ name: DESCRIPTION_NAME,
32
+ variants: {
33
+ unstyled: {
34
+ false: {
35
+ color: "$color11",
36
+ size: "$1"
37
+ }
38
+ }
39
+ },
40
+ defaultVariants: {
41
+ unstyled: process.env.HANZO_GUI_HEADLESS === "1"
42
+ }
43
+ }),
44
+ ACTION_NAME = "ToastAction",
45
+ ToastAction = /* @__PURE__ */React.forwardRef(function (props, forwardedRef) {
46
+ var {
47
+ altText,
48
+ ...actionProps
49
+ } = props;
50
+ return altText ? /* @__PURE__ */_jsx(ToastAnnounceExclude, {
51
+ altText,
52
+ asChild: !0,
53
+ children: /* @__PURE__ */_jsx(ToastClose, {
54
+ ...actionProps,
55
+ ref: forwardedRef
56
+ })
57
+ }) : null;
58
+ });
59
+ ToastAction.propTypes = {
60
+ altText(props) {
61
+ return props.altText ? null : new Error(`Missing prop \`altText\` expected on \`${ACTION_NAME}\``);
62
+ }
63
+ };
64
+ var CLOSE_NAME = "ToastClose",
65
+ ToastCloseFrame = styled(YStack, {
66
+ name: CLOSE_NAME,
67
+ render: "button"
68
+ }),
69
+ ToastClose = /* @__PURE__ */React.forwardRef(function (props, forwardedRef) {
70
+ var {
71
+ scope,
72
+ ...closeProps
73
+ } = props,
74
+ interactiveContext = useToastInteractiveContext(scope);
75
+ return /* @__PURE__ */_jsx(ToastAnnounceExclude, {
76
+ asChild: !0,
77
+ children: /* @__PURE__ */_jsx(ToastCloseFrame, {
78
+ "aria-label": "Close",
79
+ ...closeProps,
80
+ ref: forwardedRef,
81
+ onPress: composeEventHandlers(props.onPress, interactiveContext.onClose)
82
+ })
83
+ });
84
+ }),
85
+ ToastComponent = ToastImplFrame.styleable(function (props, forwardedRef) {
86
+ var {
87
+ forceMount,
88
+ open: openProp,
89
+ defaultOpen,
90
+ onOpenChange,
91
+ ...toastProps
92
+ } = props,
93
+ [open, setOpen] = useControllableState({
94
+ prop: openProp,
95
+ defaultProp: defaultOpen ?? !0,
96
+ onChange: onOpenChange,
97
+ strategy: "most-recent-wins"
98
+ }),
99
+ currentToast = useToastState(),
100
+ {
101
+ hide
102
+ } = useToastController(),
103
+ id = React.useId(),
104
+ onPause = useEvent(props.onPause),
105
+ onResume = useEvent(props.onResume),
106
+ isHide = currentToast?.hide === !0,
107
+ shouldShow = (forceMount || open) && !isHide;
108
+ return /* @__PURE__ */_jsx(AnimatePresence, {
109
+ children: shouldShow ? /* @__PURE__ */_jsx(ToastImpl, {
110
+ id,
111
+ open,
112
+ ...toastProps,
113
+ ref: forwardedRef,
114
+ onClose: function () {
115
+ setOpen(!1), hide();
116
+ },
117
+ onPause,
118
+ onResume,
119
+ onSwipeEnd: composeEventHandlers(props.onSwipeEnd, function (event) {
120
+ setOpen(!1);
121
+ })
122
+ }) : null
123
+ }, id);
124
+ }),
125
+ Toast2 = withStaticProperties(ToastComponent, {
126
+ Title: ToastTitle,
127
+ Description: ToastDescription,
128
+ Action: ToastAction,
129
+ Close: ToastClose
130
+ });
131
+ export { Toast2 as Toast, ToastProvider, ToastViewport, useToast, useToastController, useToastState };
132
+ //# sourceMappingURL=Toast.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","AnimatePresence","styled","useEvent","composeEventHandlers","withStaticProperties","YStack","SizableText","useControllableState","React","ToastAnnounceExclude","useToast","useToastController","useToastState","ToastImpl","ToastImplFrame","useToastInteractiveContext","ToastProvider","ToastViewport","TITLE_NAME","ToastTitle","name","variants","unstyled","false","color","size","defaultVariants","process","env","HANZO_GUI_HEADLESS","DESCRIPTION_NAME","ToastDescription","ACTION_NAME","ToastAction","forwardRef","props","forwardedRef","altText","actionProps","asChild","children","ToastClose","ref","propTypes","Error","CLOSE_NAME","ToastCloseFrame","render","scope","closeProps","interactiveContext","onPress","onClose","ToastComponent","styleable","forceMount","open","openProp","defaultOpen","onOpenChange","toastProps","setOpen","prop","defaultProp","onChange","strategy","currentToast","hide","id","useId","onPause","onResume","isHide","shouldShow","onSwipeEnd","event","Toast2","Title","Description","Action","Close"],"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,67 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useIsomorphicLayoutEffect } from "@hanzo/gui-constants";
3
+ import { View, Text, styled, useEvent } from "@hanzo/gui-core";
4
+ import { Portal } from "@hanzo/gui-portal";
5
+ import { startTransition } from "@hanzo/gui-start-transition";
6
+ import { VisuallyHidden } from "@hanzo/gui-visually-hidden";
7
+ import * as React from "react";
8
+ import { useToastProviderContext } from "./ToastProvider.native.js";
9
+ var ToastAnnounceExcludeFrame = styled(View, {
10
+ name: "ToastAnnounceExclude"
11
+ }),
12
+ ToastAnnounceExclude = /* @__PURE__ */React.forwardRef(function (props, forwardedRef) {
13
+ var {
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 = function (props) {
25
+ var {
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(function () {
34
+ startTransition(function () {
35
+ setRenderAnnounceText(!0);
36
+ });
37
+ }), React.useEffect(function () {
38
+ var timer = setTimeout(function () {
39
+ return setIsAnnounced(!0);
40
+ }, 1e3);
41
+ return function () {
42
+ return clearTimeout(timer);
43
+ };
44
+ }, []), isAnnounced ? null : /* @__PURE__ */_jsx(Portal, {
45
+ children: /* @__PURE__ */_jsx(VisuallyHidden, {
46
+ ...announceProps,
47
+ children: renderAnnounceText && /* @__PURE__ */_jsxs(Text, {
48
+ children: [context.label, " ", children]
49
+ })
50
+ })
51
+ });
52
+ };
53
+ function useNextFrame() {
54
+ var callback = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function () {},
55
+ fn = useEvent(callback);
56
+ useIsomorphicLayoutEffect(function () {
57
+ var raf1 = 0,
58
+ raf2 = 0;
59
+ return raf1 = requestAnimationFrame(function () {
60
+ raf2 = requestAnimationFrame(fn);
61
+ }), function () {
62
+ cancelAnimationFrame(raf1), cancelAnimationFrame(raf2);
63
+ };
64
+ }, [fn]);
65
+ }
66
+ export { ToastAnnounce, ToastAnnounceExclude };
67
+ //# sourceMappingURL=ToastAnnounce.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","useIsomorphicLayoutEffect","View","Text","styled","useEvent","Portal","startTransition","VisuallyHidden","React","useToastProviderContext","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","arguments","length","fn","raf1","raf2","requestAnimationFrame"],"sources":["../../src/ToastAnnounce.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,QAAiC;AAE1C,SAASC,yBAAoB,8BAAgB;AAC7C,SAASC,IAAA,EAAAC,IAAA,EAAAC,MAAc,EAAAC,QAAA;AACvB,SAASC,MAAA,2BAAuB;AAChC,SAASC,eAAA,QAAsB;AAC/B,SAAAC,cAAuB;AAGvB,YAASC,KAAA;AAoBH,SAAAC,uBAAA;AAlBN,IAAAC,yBAAM,GAAAP,MAA4B,CAAAF,IAAO;IACvCU,IAAA,EAAM;EACR,CAAC;EAWKC,oBAAA,GAAuB,eAAMJ,KAAA,CAAAK,UAAA,WAAAC,KAAA,EAAAC,YAAA;IACjC,IAAC;MAAAC,OAAO;MAAA,GAAAC;IAAiB,IAAAH,KAAA;IACvB,sBAAoBjB,IAAA,CAAAa,yBAAyB;MAE7C,6BACE;MAAA,yBAAC,EAAAM,OAAA;MAAA,GAAAC,oBAAA;MAAAC,GAAA,EACCH;IAA4B;EACQ;EAAAI,aAChC,YAAAA,CAAAL,KAAA;IAAA;QACJM,KAAK;QAAAC,QAAA;QAAA,GAAAC;MAAA,IAAAR,KAAA;MAAAS,OAAA,GAAAd,uBAAA,CAAAW,KAAA;MAAA,CAAAI,kBAAA,EAAAC,qBAAA,IAAAjB,KAAA,CAAAkB,QAAA;MAAA,CAAAC,WAAA,EAAAC,cAAA,IAAApB,KAAA,CAAAkB,QAAA;IAAA,OAAAG,YAAA;MACPvB,eAAA;QAEJmB,qBAAA;MAUI;IAGJ,IAAAjB,KAAQ,CAAAsB,SAAO,aAAa;MAM5B,IAAAC,KAAA,GAAAC,UAAa,aAAM;QACjB,OAAAJ,cAAsB;MACpB;MACF,OAAC;QAIH,OAAMK,YAAU,CAAAF,KAAM;MACpB;IACA,QAAAJ,WAAa,UAAa,eAAK9B,IAAA,CAAAQ,MAAA;MACjCgB,QAEO,iBAAcxB,IACnB,CAAAU,cAAA,EAAC;QAIQ,GAAAe,aAAQ;QAAMD,QAAA,EAAAG,kBAAA,mBAAAzB,KAAA,CAAAG,IAAA;UAAEmB,QAAA,GAGvBE,OACF,CAAAW,KAAA,EAEJ,KAISb,QAAA;QACP;MACA;IACE;EAEA;AACE,SAAAQ,YAAOA,CAAA;EAAwB,IAChCM,QACY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA,mBACX;IAAAE,EAAA,GAAAlC,QAAA,CAAA+B,QAAqB;EACInC,yBAC3B;IACF,IAAMuC,IAAC;MAAAC,IAAA;IACT,OAAAD,IAAA,GAAAE,qBAAA","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,82 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { isAndroid, isIos, isWeb } from "@hanzo/gui-core";
3
+ import React from "react";
4
+ import { createNativeToast } from "./createNativeToast.native.js";
5
+ function _type_of(obj) {
6
+ "@swc/helpers - typeof";
7
+
8
+ return obj && typeof Symbol < "u" && obj.constructor === Symbol ? "symbol" : typeof obj;
9
+ }
10
+ var ToastContext = /* @__PURE__ */React.createContext({}),
11
+ ToastCurrentContext = /* @__PURE__ */React.createContext(null),
12
+ useToastController = function () {
13
+ return React.useContext(ToastContext);
14
+ },
15
+ useToastState = function () {
16
+ return React.useContext(ToastCurrentContext);
17
+ },
18
+ useToast = function () {
19
+ return {
20
+ ...useToastController(),
21
+ currentToast: useToastState()
22
+ };
23
+ },
24
+ ToastImperativeProvider = function (param) {
25
+ var {
26
+ children,
27
+ options
28
+ } = param,
29
+ counterRef = React.useRef(0),
30
+ [toast, setToast] = React.useState(null),
31
+ [lastNativeToastRef, setLastNativeToastRef] = React.useState(null),
32
+ show = React.useCallback(function (title, showOptions) {
33
+ var _showOptions_native,
34
+ native = (_showOptions_native = showOptions?.native) !== null && _showOptions_native !== void 0 ? _showOptions_native : options.native,
35
+ isWebNative = Array.isArray(native) ? native.includes("web") : native === "web",
36
+ isMobileNative = Array.isArray(native) ? native.includes("mobile") : native === "mobile",
37
+ isAndroidNative = isMobileNative || (Array.isArray(native) ? native.includes("android") : native === "android"),
38
+ isIosNative = isMobileNative || (Array.isArray(native) ? native.includes("ios") : native === "ios"),
39
+ isHandledNatively = native === !0 || isWeb && isWebNative || !isWeb && isMobileNative || isAndroid && isAndroidNative || isIos && isIosNative;
40
+ if (isHandledNatively) {
41
+ var nativeToastResult = createNativeToast(title, showOptions ?? {});
42
+ (typeof nativeToastResult > "u" ? "undefined" : _type_of(nativeToastResult)) === "object" && nativeToastResult.nativeToastRef && setLastNativeToastRef(nativeToastResult.nativeToastRef);
43
+ }
44
+ counterRef.current++;
45
+ var _showOptions_viewportName;
46
+ return setToast({
47
+ ...showOptions?.customData,
48
+ ...showOptions,
49
+ viewportName: (_showOptions_viewportName = showOptions?.viewportName) !== null && _showOptions_viewportName !== void 0 ? _showOptions_viewportName : "default",
50
+ title,
51
+ id: counterRef.current.toString(),
52
+ isHandledNatively
53
+ }), !0;
54
+ }, [setToast, JSON.stringify(options.native || null)]),
55
+ hide = React.useCallback(function () {
56
+ lastNativeToastRef?.close(), setToast(function (prev) {
57
+ return prev ? {
58
+ ...prev,
59
+ hide: !0
60
+ } : null;
61
+ }), setTimeout(function () {
62
+ setToast(null);
63
+ }, 100);
64
+ }, [setToast, lastNativeToastRef]),
65
+ contextValue = React.useMemo(function () {
66
+ return {
67
+ show,
68
+ hide,
69
+ nativeToast: lastNativeToastRef,
70
+ options
71
+ };
72
+ }, [show, hide, lastNativeToastRef, JSON.stringify(options || null)]);
73
+ return /* @__PURE__ */_jsx(ToastContext.Provider, {
74
+ value: contextValue,
75
+ children: /* @__PURE__ */_jsx(ToastCurrentContext.Provider, {
76
+ value: toast,
77
+ children
78
+ })
79
+ });
80
+ };
81
+ export { ToastImperativeProvider, useToast, useToastController, useToastState };
82
+ //# sourceMappingURL=ToastImperative.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","isAndroid","isIos","isWeb","React","createNativeToast","_type_of","obj","Symbol","constructor","ToastContext","createContext","ToastCurrentContext","useToastController","useContext","useToastState","useToast","currentToast","ToastImperativeProvider","param","children","options","counterRef","useRef","toast","setToast","useState","lastNativeToastRef","setLastNativeToastRef","show","useCallback","title","showOptions","_showOptions_native","native","isWebNative","Array","isArray","includes","isMobileNative","isAndroidNative","isIosNative","isHandledNatively","nativeToastResult","nativeToastRef","current","_showOptions_viewportName","customData","viewportName","id","toString","JSON","stringify","hide","close","prev"],"sources":["../../src/ToastImperative.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,GAAA,IAAAC,IAAW,QAAO,mBAAa;AACxC,SAAOC,SAAW,EAAAC,KAAA,EAAAC,KAAA;AAClB,OAAAC,KAAS;AAqLH,SAAAC,iBAAA;AA3GN,SAAMC,SAAAC,GAAe;EAcjB,uBAAsB;;EACtB,OAAAA,GAAA,IAAc,OAAAC,MAAA,GAAc,OAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AAC9B;AAWsC,IACtCG,YAAA,kBAAAN,KAAA,CAAAO,aAAA;EAAAC,mBAAA,kBAAAR,KAAA,CAAAO,aAAA;EAAAE,kBAAA,YAAAA,CAAA;IACA,OAAAT,KAAA,CAAAU,UAAA,CAAAJ,YAAA;EACF;EAAAK,aAAoC,YAAAA,CAAA;IAClC,OAAMX,KAAA,CAAAU,UAAa,CAAAF,mBAEZ,CAAO;EAKK;EAAAI,QAChB,GAAO,SAAAA,CAAA;IACN;MAqBA,GAAAH,kBAAI;MACFI,YAAM,EAAAF,aAAA;IACN;EACwD;EAAAG,uBAE1D,YAAAA,CAAAC,KAAA;IACA;QAAAC,QAAA;QAAAC;MAAW,IAAAF,KACX;MAAAG,UAAS,GAAAlB,KAAA,CAAAmB,MAAA;MAAA,CAAAC,KAAA,EAAAC,QAAA,IAAArB,KAAA,CAAAsB,QAAA;MAAA,CAAAC,kBAAA,EAAAC,qBAAA,IAAAxB,KAAA,CAAAsB,QAAA;MAAAG,IAAA,GAAAzB,KAAA,CAAA0B,WAAA,WAAAC,KAAA,EAAAC,WAAA;QAAA,IACPC,mBAAgB;UAAAC,MAAA,IAAAD,mBAAA,GAAAD,WAAA,EAAAE,MAAA,cAAAD,mBAAA,cAAAA,mBAAA,GAAAZ,OAAA,CAAAa,MAAA;UAAAC,WAAA,GAAAC,KAAA,CAAAC,OAAA,CAAAH,MAAA,IAAAA,MAAA,CAAAI,QAAA,UAAAJ,MAAA;UAAAK,cAAA,GAAAH,KAAA,CAAAC,OAAA,CAAAH,MAAA,IAAAA,MAAA,CAAAI,QAAA,aAAAJ,MAAA;UAAAM,eAAA,GAAAD,cAAA,KAAAH,KAAA,CAAAC,OAAA,CAAAH,MAAA,IAAAA,MAAA,CAAAI,QAAA,cAAAJ,MAAA;UAAAO,WAAA,GAAAF,cAAA,KAAAH,KAAA,CAAAC,OAAA,CAAAH,MAAA,IAAAA,MAAA,CAAAI,QAAA,UAAAJ,MAAA;UAAAQ,iBAAA,GAAAR,MAAA,WAAA/B,KAAA,IAAAgC,WAAA,KAAAhC,KAAA,IAAAoC,cAAA,IAAAtC,SAAA,IAAAuC,eAAA,IAAAtC,KAAA,IAAAuC,WAAA;QAAA,IAChBC,iBAAG;UAAA,IACHC,iBAAc,GAAAtC,iBAAa,CAAA0B,KAAgB,EAAAC,WAAA;UAAA,QAC3CW,iBAAA,uBAAArC,QAAA,CAAAqC,iBAAA,mBAAAA,iBAAA,CAAAC,cAAA,IAAAhB,qBAAA,CAAAe,iBAAA,CAAAC,cAAA;QAAA;QACgCtB,UAChC,CAAAuB,OAAA;QAAA,IACDC,yBACM;QACT,OAAArB,QAAA;UACC,GAAAO,WAAe,EAAAe,UAAU;UAGtB,GAAAf,WAAa;UACjBgB,YAAA,GAAAF,yBACU,GAAAd,WAED,EAAAgB,YAAA,cAAAF,yBAAA,cAAAA,yBAAA;UACLf,KAAG;UACHkB,EAAA,EAAA3B,UAAM,CAAAuB,OAAA,CAAAK,QAAA;UACRR;QAIA;MAAa,GACf,CACFjB,QAAI,EAIA0B,IAAA,CAAAC,SAAA,CAAA/B,OAAA,CAAAa,MAAA,WACA;MAAAmB,IAAA,GAAAjD,KAAA,CAAA0B,WAAA;QACAH,kBAAa,EAAA2B,KAAA,IAAA7B,QAAA,WAAA8B,IAAA;UACb,OAAAA,IAAA;YAEA,GAAAA,IAAM;YAEVF,IACE;UAMJ","ignoreList":[]}