@hanzogui/toast 7.0.0 → 7.3.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 (268) hide show
  1. package/dist/cjs/Toast.cjs +178 -0
  2. package/dist/cjs/Toast.native.js +181 -0
  3. package/dist/cjs/Toast.native.js.map +1 -0
  4. package/dist/cjs/ToastAnnounce.cjs +103 -0
  5. package/dist/cjs/ToastAnnounce.native.js +111 -0
  6. package/dist/cjs/ToastAnnounce.native.js.map +1 -0
  7. package/dist/cjs/ToastComposable.cjs +933 -0
  8. package/dist/cjs/ToastComposable.native.js +1025 -0
  9. package/dist/cjs/ToastComposable.native.js.map +1 -0
  10. package/dist/cjs/ToastImperative.cjs +119 -0
  11. package/dist/cjs/ToastImperative.native.js +130 -0
  12. package/dist/cjs/ToastImperative.native.js.map +1 -0
  13. package/dist/cjs/ToastImpl.cjs +354 -0
  14. package/dist/cjs/ToastImpl.native.js +364 -0
  15. package/dist/cjs/ToastImpl.native.js.map +1 -0
  16. package/dist/cjs/ToastItemFrame.cjs +143 -0
  17. package/dist/cjs/ToastItemFrame.native.js +148 -0
  18. package/dist/cjs/ToastItemFrame.native.js.map +1 -0
  19. package/dist/cjs/ToastPortal.cjs +49 -0
  20. package/dist/cjs/ToastPortal.native.js +52 -0
  21. package/dist/cjs/ToastPortal.native.js.map +1 -0
  22. package/dist/cjs/ToastProvider.cjs +150 -0
  23. package/dist/cjs/ToastProvider.native.js +161 -0
  24. package/dist/cjs/ToastProvider.native.js.map +1 -0
  25. package/dist/cjs/ToastState.cjs +311 -0
  26. package/dist/cjs/ToastState.native.js +324 -0
  27. package/dist/cjs/ToastState.native.js.map +1 -0
  28. package/dist/cjs/ToastViewport.cjs +319 -0
  29. package/dist/cjs/ToastViewport.native.js +343 -0
  30. package/dist/cjs/ToastViewport.native.js.map +1 -0
  31. package/dist/cjs/Toaster.cjs +87 -0
  32. package/dist/cjs/Toaster.native.js +91 -0
  33. package/dist/cjs/Toaster.native.js.map +1 -0
  34. package/dist/cjs/constants.cjs +30 -0
  35. package/dist/cjs/constants.native.js +33 -0
  36. package/dist/cjs/constants.native.js.map +1 -0
  37. package/dist/cjs/createNativeToast.cjs +59 -0
  38. package/dist/cjs/createNativeToast.native.js +60 -0
  39. package/dist/cjs/createNativeToast.native.js.map +1 -0
  40. package/dist/cjs/dispatchNativeToast.cjs +47 -0
  41. package/dist/cjs/dispatchNativeToast.native.js +52 -0
  42. package/dist/cjs/dispatchNativeToast.native.js.map +1 -0
  43. package/dist/cjs/index.cjs +20 -0
  44. package/dist/cjs/index.native.js +23 -0
  45. package/dist/cjs/index.native.js.map +1 -0
  46. package/dist/cjs/types.cjs +18 -0
  47. package/dist/cjs/types.native.js +21 -0
  48. package/dist/cjs/types.native.js.map +1 -0
  49. package/dist/cjs/useAnimatedDragGesture.cjs +214 -0
  50. package/dist/cjs/useAnimatedDragGesture.native.js +224 -0
  51. package/dist/cjs/useAnimatedDragGesture.native.js.map +1 -0
  52. package/dist/cjs/useReducedMotion.cjs +74 -0
  53. package/dist/cjs/useReducedMotion.native.js +83 -0
  54. package/dist/cjs/useReducedMotion.native.js.map +1 -0
  55. package/dist/cjs/useToastAnimations.cjs +294 -0
  56. package/dist/cjs/useToastAnimations.native.js +304 -0
  57. package/dist/cjs/useToastAnimations.native.js.map +1 -0
  58. package/dist/cjs/v2.cjs +36 -0
  59. package/dist/cjs/v2.native.js +39 -0
  60. package/dist/cjs/v2.native.js.map +1 -0
  61. package/dist/esm/Toast.mjs +137 -0
  62. package/dist/esm/Toast.mjs.map +1 -0
  63. package/dist/esm/Toast.native.js +137 -0
  64. package/dist/esm/Toast.native.js.map +1 -0
  65. package/dist/esm/ToastAnnounce.mjs +66 -0
  66. package/dist/esm/ToastAnnounce.mjs.map +1 -0
  67. package/dist/esm/ToastAnnounce.native.js +71 -0
  68. package/dist/esm/ToastAnnounce.native.js.map +1 -0
  69. package/dist/esm/ToastComposable.mjs +895 -0
  70. package/dist/esm/ToastComposable.mjs.map +1 -0
  71. package/dist/esm/ToastComposable.native.js +984 -0
  72. package/dist/esm/ToastComposable.native.js.map +1 -0
  73. package/dist/esm/ToastImperative.mjs +80 -0
  74. package/dist/esm/ToastImperative.mjs.map +1 -0
  75. package/dist/esm/ToastImperative.native.js +88 -0
  76. package/dist/esm/ToastImperative.native.js.map +1 -0
  77. package/dist/esm/ToastImpl.mjs +316 -0
  78. package/dist/esm/ToastImpl.mjs.map +1 -0
  79. package/dist/esm/ToastImpl.native.js +323 -0
  80. package/dist/esm/ToastImpl.native.js.map +1 -0
  81. package/dist/esm/ToastItemFrame.mjs +114 -0
  82. package/dist/esm/ToastItemFrame.mjs.map +1 -0
  83. package/dist/esm/ToastItemFrame.native.js +116 -0
  84. package/dist/esm/ToastItemFrame.native.js.map +1 -0
  85. package/dist/esm/ToastPortal.mjs +24 -0
  86. package/dist/esm/ToastPortal.mjs.map +1 -0
  87. package/dist/esm/ToastPortal.native.js +24 -0
  88. package/dist/esm/ToastPortal.native.js.map +1 -0
  89. package/dist/esm/ToastProvider.mjs +110 -0
  90. package/dist/esm/ToastProvider.mjs.map +1 -0
  91. package/dist/esm/ToastProvider.native.js +118 -0
  92. package/dist/esm/ToastProvider.native.js.map +1 -0
  93. package/dist/esm/ToastState.mjs +285 -0
  94. package/dist/esm/ToastState.mjs.map +1 -0
  95. package/dist/esm/ToastState.native.js +295 -0
  96. package/dist/esm/ToastState.native.js.map +1 -0
  97. package/dist/esm/ToastViewport.mjs +280 -0
  98. package/dist/esm/ToastViewport.mjs.map +1 -0
  99. package/dist/esm/ToastViewport.native.js +301 -0
  100. package/dist/esm/ToastViewport.native.js.map +1 -0
  101. package/dist/esm/Toaster.mjs +51 -0
  102. package/dist/esm/Toaster.mjs.map +1 -0
  103. package/dist/esm/Toaster.native.js +52 -0
  104. package/dist/esm/Toaster.native.js.map +1 -0
  105. package/dist/esm/constants.mjs +4 -0
  106. package/dist/esm/constants.mjs.map +1 -0
  107. package/dist/esm/constants.native.js +4 -0
  108. package/dist/esm/constants.native.js.map +1 -0
  109. package/dist/esm/createNativeToast.mjs +32 -0
  110. package/dist/esm/createNativeToast.mjs.map +1 -0
  111. package/dist/esm/createNativeToast.native.js +30 -0
  112. package/dist/esm/createNativeToast.native.js.map +1 -0
  113. package/dist/esm/dispatchNativeToast.mjs +22 -0
  114. package/dist/esm/dispatchNativeToast.mjs.map +1 -0
  115. package/dist/esm/dispatchNativeToast.native.js +24 -0
  116. package/dist/esm/dispatchNativeToast.native.js.map +1 -0
  117. package/dist/esm/index.js +2 -0
  118. package/dist/esm/index.js.map +1 -0
  119. package/dist/esm/index.mjs +2 -0
  120. package/dist/esm/index.mjs.map +1 -0
  121. package/dist/esm/index.native.js +2 -0
  122. package/dist/esm/index.native.js.map +1 -0
  123. package/dist/esm/types.mjs +2 -0
  124. package/dist/esm/types.mjs.map +1 -0
  125. package/dist/esm/types.native.js +2 -0
  126. package/dist/esm/types.native.js.map +1 -0
  127. package/dist/esm/useAnimatedDragGesture.mjs +178 -0
  128. package/dist/esm/useAnimatedDragGesture.mjs.map +1 -0
  129. package/dist/esm/useAnimatedDragGesture.native.js +185 -0
  130. package/dist/esm/useAnimatedDragGesture.native.js.map +1 -0
  131. package/dist/esm/useReducedMotion.mjs +38 -0
  132. package/dist/esm/useReducedMotion.mjs.map +1 -0
  133. package/dist/esm/useReducedMotion.native.js +44 -0
  134. package/dist/esm/useReducedMotion.native.js.map +1 -0
  135. package/dist/esm/useToastAnimations.mjs +258 -0
  136. package/dist/esm/useToastAnimations.mjs.map +1 -0
  137. package/dist/esm/useToastAnimations.native.js +265 -0
  138. package/dist/esm/useToastAnimations.native.js.map +1 -0
  139. package/dist/esm/v2.mjs +6 -0
  140. package/dist/esm/v2.mjs.map +1 -0
  141. package/dist/esm/v2.native.js +6 -0
  142. package/dist/esm/v2.native.js.map +1 -0
  143. package/dist/jsx/Toast.mjs +137 -0
  144. package/dist/jsx/Toast.mjs.map +1 -0
  145. package/dist/jsx/Toast.native.js +181 -0
  146. package/dist/jsx/Toast.native.js.map +1 -0
  147. package/dist/jsx/ToastAnnounce.mjs +66 -0
  148. package/dist/jsx/ToastAnnounce.mjs.map +1 -0
  149. package/dist/jsx/ToastAnnounce.native.js +111 -0
  150. package/dist/jsx/ToastAnnounce.native.js.map +1 -0
  151. package/dist/jsx/ToastComposable.mjs +895 -0
  152. package/dist/jsx/ToastComposable.mjs.map +1 -0
  153. package/dist/jsx/ToastComposable.native.js +1025 -0
  154. package/dist/jsx/ToastComposable.native.js.map +1 -0
  155. package/dist/jsx/ToastImperative.mjs +80 -0
  156. package/dist/jsx/ToastImperative.mjs.map +1 -0
  157. package/dist/jsx/ToastImperative.native.js +130 -0
  158. package/dist/jsx/ToastImperative.native.js.map +1 -0
  159. package/dist/jsx/ToastImpl.mjs +316 -0
  160. package/dist/jsx/ToastImpl.mjs.map +1 -0
  161. package/dist/jsx/ToastImpl.native.js +364 -0
  162. package/dist/jsx/ToastImpl.native.js.map +1 -0
  163. package/dist/jsx/ToastItemFrame.mjs +114 -0
  164. package/dist/jsx/ToastItemFrame.mjs.map +1 -0
  165. package/dist/jsx/ToastItemFrame.native.js +148 -0
  166. package/dist/jsx/ToastItemFrame.native.js.map +1 -0
  167. package/dist/jsx/ToastPortal.mjs +24 -0
  168. package/dist/jsx/ToastPortal.mjs.map +1 -0
  169. package/dist/jsx/ToastPortal.native.js +52 -0
  170. package/dist/jsx/ToastPortal.native.js.map +1 -0
  171. package/dist/jsx/ToastProvider.mjs +110 -0
  172. package/dist/jsx/ToastProvider.mjs.map +1 -0
  173. package/dist/jsx/ToastProvider.native.js +161 -0
  174. package/dist/jsx/ToastProvider.native.js.map +1 -0
  175. package/dist/jsx/ToastState.mjs +285 -0
  176. package/dist/jsx/ToastState.mjs.map +1 -0
  177. package/dist/jsx/ToastState.native.js +324 -0
  178. package/dist/jsx/ToastState.native.js.map +1 -0
  179. package/dist/jsx/ToastViewport.mjs +280 -0
  180. package/dist/jsx/ToastViewport.mjs.map +1 -0
  181. package/dist/jsx/ToastViewport.native.js +343 -0
  182. package/dist/jsx/ToastViewport.native.js.map +1 -0
  183. package/dist/jsx/Toaster.mjs +51 -0
  184. package/dist/jsx/Toaster.mjs.map +1 -0
  185. package/dist/jsx/Toaster.native.js +91 -0
  186. package/dist/jsx/Toaster.native.js.map +1 -0
  187. package/dist/jsx/constants.mjs +4 -0
  188. package/dist/jsx/constants.mjs.map +1 -0
  189. package/dist/jsx/constants.native.js +33 -0
  190. package/dist/jsx/constants.native.js.map +1 -0
  191. package/dist/jsx/createNativeToast.mjs +32 -0
  192. package/dist/jsx/createNativeToast.mjs.map +1 -0
  193. package/dist/jsx/createNativeToast.native.js +60 -0
  194. package/dist/jsx/createNativeToast.native.js.map +1 -0
  195. package/dist/jsx/dispatchNativeToast.mjs +22 -0
  196. package/dist/jsx/dispatchNativeToast.mjs.map +1 -0
  197. package/dist/jsx/dispatchNativeToast.native.js +52 -0
  198. package/dist/jsx/dispatchNativeToast.native.js.map +1 -0
  199. package/dist/jsx/index.js +2 -0
  200. package/dist/jsx/index.js.map +1 -0
  201. package/dist/jsx/index.mjs +2 -0
  202. package/dist/jsx/index.mjs.map +1 -0
  203. package/dist/jsx/index.native.js +23 -0
  204. package/dist/jsx/index.native.js.map +1 -0
  205. package/dist/jsx/types.mjs +2 -0
  206. package/dist/jsx/types.mjs.map +1 -0
  207. package/dist/jsx/types.native.js +21 -0
  208. package/dist/jsx/types.native.js.map +1 -0
  209. package/dist/jsx/useAnimatedDragGesture.mjs +178 -0
  210. package/dist/jsx/useAnimatedDragGesture.mjs.map +1 -0
  211. package/dist/jsx/useAnimatedDragGesture.native.js +224 -0
  212. package/dist/jsx/useAnimatedDragGesture.native.js.map +1 -0
  213. package/dist/jsx/useReducedMotion.mjs +38 -0
  214. package/dist/jsx/useReducedMotion.mjs.map +1 -0
  215. package/dist/jsx/useReducedMotion.native.js +83 -0
  216. package/dist/jsx/useReducedMotion.native.js.map +1 -0
  217. package/dist/jsx/useToastAnimations.mjs +258 -0
  218. package/dist/jsx/useToastAnimations.mjs.map +1 -0
  219. package/dist/jsx/useToastAnimations.native.js +304 -0
  220. package/dist/jsx/useToastAnimations.native.js.map +1 -0
  221. package/dist/jsx/v2.mjs +6 -0
  222. package/dist/jsx/v2.mjs.map +1 -0
  223. package/dist/jsx/v2.native.js +39 -0
  224. package/dist/jsx/v2.native.js.map +1 -0
  225. package/package.json +26 -24
  226. package/src/Toast.tsx +5 -5
  227. package/src/ToastAnnounce.tsx +2 -2
  228. package/src/ToastComposable.tsx +8 -8
  229. package/src/ToastImpl.tsx +6 -6
  230. package/src/ToastItemFrame.tsx +4 -4
  231. package/src/ToastProvider.tsx +5 -5
  232. package/src/ToastViewport.tsx +7 -7
  233. package/src/Toaster.tsx +2 -2
  234. package/src/useToastAnimations.ts +3 -3
  235. package/types/Toast.d.ts +14 -14
  236. package/types/Toast.d.ts.map +1 -0
  237. package/types/ToastAnnounce.d.ts +3 -3
  238. package/types/ToastAnnounce.d.ts.map +1 -0
  239. package/types/ToastComposable.d.ts +15 -15
  240. package/types/ToastComposable.d.ts.map +1 -0
  241. package/types/ToastImperative.d.ts +1 -1
  242. package/types/ToastImperative.d.ts.map +1 -0
  243. package/types/ToastImpl.d.ts +4 -4
  244. package/types/ToastImpl.d.ts.map +1 -0
  245. package/types/ToastItemFrame.d.ts +5 -5
  246. package/types/ToastItemFrame.d.ts.map +1 -0
  247. package/types/ToastPortal.d.ts +1 -1
  248. package/types/ToastPortal.d.ts.map +1 -0
  249. package/types/ToastProvider.d.ts +7 -7
  250. package/types/ToastProvider.d.ts.map +1 -0
  251. package/types/ToastState.d.ts.map +1 -0
  252. package/types/ToastViewport.d.ts +5 -5
  253. package/types/ToastViewport.d.ts.map +1 -0
  254. package/types/Toaster.d.ts +2 -2
  255. package/types/Toaster.d.ts.map +1 -0
  256. package/types/constants.d.ts.map +1 -0
  257. package/types/createNativeToast.d.ts.map +1 -0
  258. package/types/createNativeToast.native.d.ts.map +1 -0
  259. package/types/dispatchNativeToast.d.ts.map +1 -0
  260. package/types/index.d.ts.map +1 -0
  261. package/types/types.d.ts.map +1 -0
  262. package/types/useAnimatedDragGesture.d.ts.map +1 -0
  263. package/types/useAnimatedDragGesture.native.d.ts.map +1 -0
  264. package/types/useReducedMotion.d.ts.map +1 -0
  265. package/types/useToastAnimations.d.ts.map +1 -0
  266. package/types/v2.d.ts.map +1 -0
  267. package/v2/index.cjs +1 -1
  268. package/v2/index.native.cjs +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","v2_exports","__export","Toast","import_ToastComposable","Toaster","import_Toaster","requestNotificationPermission","import_createNativeToast","toast","import_ToastState","useToastItem","useToasts","module","exports","require"],"sources":["../../src/v2.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,UAAA;AAAAC,QAAA,CAAAD,UAAA;EAAAE,KAAA,EAAAA,CAAA,KAAAC,sBAAA,CAAAD,KAAA;EAAAE,OAAA,EAAAA,CAAA,KAAAC,cAAA,CAAAD,OAAA;EAAAE,6BAAA,EAAAA,CAAA,KAAAC,wBAAA,CAAAD,6BAAA;EAAAE,KAAA,EAAAA,CAAA,KAAAC,iBAAA,CAAAD,KAAA;EAAAE,YAAA,EAAAA,CAAA,KAAAP,sBAAA,CAAAO,YAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAR,sBAAA,CAAAQ;AAAA;AACAC,MAAA,CAAAC,OAAA,GAAAlB,YAA+C,CAAAK,UAAA;AAY/C,IAAAG,sBAAsB,GAAAW,OAAA;AAYtB,IAAAL,iBAAwB,GAAAK,OAAA;AAKxB,IAAAT,cAAA,GAAAS,OAAA,sBAA8C","ignoreList":[]}
@@ -0,0 +1,137 @@
1
+ import { AnimatePresence } from "@hanzogui/animate-presence";
2
+ import { styled, useEvent } from "@hanzogui/core";
3
+ import { composeEventHandlers, withStaticProperties } from "@hanzogui/helpers";
4
+ import { YStack } from "@hanzogui/stacks";
5
+ import { SizableText } from "@hanzogui/text";
6
+ import { useControllableState } from "@hanzogui/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
+ const 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.GUI_HEADLESS === "1"
27
+ }
28
+ });
29
+ const DESCRIPTION_NAME = "ToastDescription";
30
+ const 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.GUI_HEADLESS === "1"
42
+ }
43
+ });
44
+ const ACTION_NAME = "ToastAction";
45
+ const ToastAction = React.forwardRef(function ToastAction2(props, forwardedRef) {
46
+ const {
47
+ altText,
48
+ ...actionProps
49
+ } = props;
50
+ if (!altText) return null;
51
+ return /* @__PURE__ */jsx(ToastAnnounceExclude, {
52
+ altText,
53
+ asChild: true,
54
+ children: /* @__PURE__ */jsx(ToastClose, {
55
+ ...actionProps,
56
+ ref: forwardedRef
57
+ })
58
+ });
59
+ });
60
+ ToastAction.propTypes = {
61
+ altText(props) {
62
+ if (!props.altText) {
63
+ return new Error(`Missing prop \`altText\` expected on \`${ACTION_NAME}\``);
64
+ }
65
+ return null;
66
+ }
67
+ };
68
+ const CLOSE_NAME = "ToastClose";
69
+ const ToastCloseFrame = styled(YStack, {
70
+ name: CLOSE_NAME,
71
+ render: "button"
72
+ });
73
+ const ToastClose = React.forwardRef(function ToastClose2(props, forwardedRef) {
74
+ const {
75
+ scope,
76
+ ...closeProps
77
+ } = props;
78
+ const interactiveContext = useToastInteractiveContext(scope);
79
+ return /* @__PURE__ */jsx(ToastAnnounceExclude, {
80
+ asChild: true,
81
+ children: /* @__PURE__ */jsx(ToastCloseFrame, {
82
+ "aria-label": "Close",
83
+ ...closeProps,
84
+ ref: forwardedRef,
85
+ onPress: composeEventHandlers(props.onPress, interactiveContext.onClose)
86
+ })
87
+ });
88
+ });
89
+ const ToastComponent = ToastImplFrame.styleable(function Toast(props, forwardedRef) {
90
+ const {
91
+ forceMount,
92
+ open: openProp,
93
+ defaultOpen,
94
+ onOpenChange,
95
+ ...toastProps
96
+ } = props;
97
+ const [open, setOpen] = useControllableState({
98
+ prop: openProp,
99
+ defaultProp: defaultOpen ?? true,
100
+ onChange: onOpenChange,
101
+ strategy: "most-recent-wins"
102
+ });
103
+ const currentToast = useToastState();
104
+ const {
105
+ hide
106
+ } = useToastController();
107
+ const id = React.useId();
108
+ const onPause = useEvent(props.onPause);
109
+ const onResume = useEvent(props.onResume);
110
+ const isHide = currentToast?.hide === true;
111
+ const shouldShow = (forceMount || open) && !isHide;
112
+ return /* @__PURE__ */jsx(AnimatePresence, {
113
+ children: shouldShow ? /* @__PURE__ */jsx(ToastImpl, {
114
+ id,
115
+ open,
116
+ ...toastProps,
117
+ ref: forwardedRef,
118
+ onClose: () => {
119
+ setOpen(false);
120
+ hide();
121
+ },
122
+ onPause,
123
+ onResume,
124
+ onSwipeEnd: composeEventHandlers(props.onSwipeEnd, event => {
125
+ setOpen(false);
126
+ })
127
+ }) : null
128
+ }, id);
129
+ });
130
+ const Toast2 = withStaticProperties(ToastComponent, {
131
+ Title: ToastTitle,
132
+ Description: ToastDescription,
133
+ Action: ToastAction,
134
+ Close: ToastClose
135
+ });
136
+ export { Toast2 as Toast, ToastProvider, ToastViewport, useToast, useToastController, useToastState };
137
+ //# 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","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","Toast","forceMount","open","openProp","defaultOpen","onOpenChange","toastProps","setOpen","prop","defaultProp","onChange","strategy","currentToast","hide","id","useId","onPause","onResume","isHide","shouldShow","onSwipeEnd","event","Title","Description","Action","Close"],"sources":["../../src/Toast.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,137 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { AnimatePresence } from "@hanzogui/animate-presence";
3
+ import { styled, useEvent } from "@hanzogui/core";
4
+ import { composeEventHandlers, withStaticProperties } from "@hanzogui/helpers";
5
+ import { YStack } from "@hanzogui/stacks";
6
+ import { SizableText } from "@hanzogui/text";
7
+ import { useControllableState } from "@hanzogui/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
+ var 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.GUI_HEADLESS === "1"
27
+ }
28
+ });
29
+ var DESCRIPTION_NAME = "ToastDescription";
30
+ var 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.GUI_HEADLESS === "1"
42
+ }
43
+ });
44
+ var ACTION_NAME = "ToastAction";
45
+ var ToastAction = /* @__PURE__ */React.forwardRef(function ToastAction2(props, forwardedRef) {
46
+ var {
47
+ altText,
48
+ ...actionProps
49
+ } = props;
50
+ if (!altText) return null;
51
+ return /* @__PURE__ */_jsx(ToastAnnounceExclude, {
52
+ altText,
53
+ asChild: true,
54
+ children: /* @__PURE__ */_jsx(ToastClose, {
55
+ ...actionProps,
56
+ ref: forwardedRef
57
+ })
58
+ });
59
+ });
60
+ ToastAction.propTypes = {
61
+ altText(props) {
62
+ if (!props.altText) {
63
+ return new Error(`Missing prop \`altText\` expected on \`${ACTION_NAME}\``);
64
+ }
65
+ return null;
66
+ }
67
+ };
68
+ var CLOSE_NAME = "ToastClose";
69
+ var ToastCloseFrame = styled(YStack, {
70
+ name: CLOSE_NAME,
71
+ render: "button"
72
+ });
73
+ var ToastClose = /* @__PURE__ */React.forwardRef(function ToastClose2(props, forwardedRef) {
74
+ var {
75
+ scope,
76
+ ...closeProps
77
+ } = props;
78
+ var interactiveContext = useToastInteractiveContext(scope);
79
+ return /* @__PURE__ */_jsx(ToastAnnounceExclude, {
80
+ asChild: true,
81
+ children: /* @__PURE__ */_jsx(ToastCloseFrame, {
82
+ "aria-label": "Close",
83
+ ...closeProps,
84
+ ref: forwardedRef,
85
+ onPress: composeEventHandlers(props.onPress, interactiveContext.onClose)
86
+ })
87
+ });
88
+ });
89
+ var ToastComponent = ToastImplFrame.styleable(function Toast(props, forwardedRef) {
90
+ var {
91
+ forceMount,
92
+ open: openProp,
93
+ defaultOpen,
94
+ onOpenChange,
95
+ ...toastProps
96
+ } = props;
97
+ var [open, setOpen] = useControllableState({
98
+ prop: openProp,
99
+ defaultProp: defaultOpen !== null && defaultOpen !== void 0 ? defaultOpen : true,
100
+ onChange: onOpenChange,
101
+ strategy: "most-recent-wins"
102
+ });
103
+ var currentToast = useToastState();
104
+ var {
105
+ hide
106
+ } = useToastController();
107
+ var id = React.useId();
108
+ var onPause = useEvent(props.onPause);
109
+ var onResume = useEvent(props.onResume);
110
+ var isHide = (currentToast === null || currentToast === void 0 ? void 0 : currentToast.hide) === true;
111
+ var shouldShow = (forceMount || open) && !isHide;
112
+ return /* @__PURE__ */_jsx(AnimatePresence, {
113
+ children: shouldShow ? /* @__PURE__ */_jsx(ToastImpl, {
114
+ id,
115
+ open,
116
+ ...toastProps,
117
+ ref: forwardedRef,
118
+ onClose: function () {
119
+ setOpen(false);
120
+ hide();
121
+ },
122
+ onPause,
123
+ onResume,
124
+ onSwipeEnd: composeEventHandlers(props.onSwipeEnd, function (event) {
125
+ setOpen(false);
126
+ })
127
+ }) : null
128
+ }, id);
129
+ });
130
+ var Toast2 = withStaticProperties(ToastComponent, {
131
+ Title: ToastTitle,
132
+ Description: ToastDescription,
133
+ Action: ToastAction,
134
+ Close: ToastClose
135
+ });
136
+ export { Toast2 as Toast, ToastProvider, ToastViewport, useToast, useToastController, useToastState };
137
+ //# 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","GUI_HEADLESS","DESCRIPTION_NAME","ToastDescription","ACTION_NAME","ToastAction","forwardRef","ToastAction2","props","forwardedRef","altText","actionProps","asChild","children","ToastClose","ref","propTypes","Error","CLOSE_NAME","ToastCloseFrame","render","ToastClose2","scope","closeProps","interactiveContext","onPress","onClose","ToastComponent","styleable","Toast","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,66 @@
1
+ import { useIsomorphicLayoutEffect } from "@hanzogui/constants";
2
+ import { View, Text, styled, useEvent } from "@hanzogui/core";
3
+ import { Portal } from "@hanzogui/portal";
4
+ import { startTransition } from "@hanzogui/start-transition";
5
+ import { VisuallyHidden } from "@hanzogui/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
+ const 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
+ const ToastAnnounce = props => {
25
+ const {
26
+ scope,
27
+ children,
28
+ ...announceProps
29
+ } = props;
30
+ const context = useToastProviderContext(scope);
31
+ const [renderAnnounceText, setRenderAnnounceText] = React.useState(false);
32
+ const [isAnnounced, setIsAnnounced] = React.useState(false);
33
+ useNextFrame(() => {
34
+ startTransition(() => {
35
+ setRenderAnnounceText(true);
36
+ });
37
+ });
38
+ React.useEffect(() => {
39
+ const timer = setTimeout(() => setIsAnnounced(true), 1e3);
40
+ return () => clearTimeout(timer);
41
+ }, []);
42
+ return isAnnounced ? null : /* @__PURE__ */jsx(Portal, {
43
+ children: /* @__PURE__ */jsx(VisuallyHidden, {
44
+ ...announceProps,
45
+ children: renderAnnounceText && /* @__PURE__ */jsxs(Text, {
46
+ children: [context.label, " ", children]
47
+ })
48
+ })
49
+ });
50
+ };
51
+ function useNextFrame(callback = () => {}) {
52
+ const fn = useEvent(callback);
53
+ useIsomorphicLayoutEffect(() => {
54
+ let raf1 = 0;
55
+ let raf2 = 0;
56
+ raf1 = requestAnimationFrame(() => {
57
+ raf2 = requestAnimationFrame(fn);
58
+ });
59
+ return () => {
60
+ cancelAnimationFrame(raf1);
61
+ cancelAnimationFrame(raf2);
62
+ };
63
+ }, [fn]);
64
+ }
65
+ export { ToastAnnounce, ToastAnnounceExclude };
66
+ //# 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;EAC7CY,IAAA,EAAM;AACR,CAAC;AAWD,MAAMC,oBAAA,GAAuBN,KAAA,CAAMO,UAAA,CACjC,CAACC,KAAA,EAAOC,YAAA,KAAiB;EACvB,MAAM;IAAEC,OAAA;IAAS,GAAGC;EAAqB,IAAIH,KAAA;EAE7C,OACE,eAAAN,GAAA,CAACE,yBAAA;IACC,+BAA4B;IAC5B,2BAAyBM,OAAA,IAAW;IACnC,GAAGC,oBAAA;IACJC,GAAA,EAAKH;EAAA,CACP;AAEJ,CACF;AASA,MAAMI,aAAA,GACJL,KAAA,IACG;EACH,MAAM;IAAEM,KAAA;IAAOC,QAAA;IAAU,GAAGC;EAAc,IAAIR,KAAA;EAC9C,MAAMS,OAAA,GAAUhB,uBAAA,CAAwBa,KAAK;EAC7C,MAAM,CAACI,kBAAA,EAAoBC,qBAAqB,IAAInB,KAAA,CAAMoB,QAAA,CAAS,KAAK;EACxE,MAAM,CAACC,WAAA,EAAaC,cAAc,IAAItB,KAAA,CAAMoB,QAAA,CAAS,KAAK;EAG1DG,YAAA,CAAa,MAAM;IACjBzB,eAAA,CAAgB,MAAM;MACpBqB,qBAAA,CAAsB,IAAI;IAC5B,CAAC;EACH,CAAC;EAGDnB,KAAA,CAAMwB,SAAA,CAAU,MAAM;IACpB,MAAMC,KAAA,GAAQC,UAAA,CAAW,MAAMJ,cAAA,CAAe,IAAI,GAAG,GAAI;IACzD,OAAO,MAAMK,YAAA,CAAaF,KAAK;EACjC,GAAG,EAAE;EAEL,OAAOJ,WAAA,GAAc,OACnB,eAAAnB,GAAA,CAACL,MAAA;IACCkB,QAAA,iBAAAb,GAAA,CAACH,cAAA;MAAgB,GAAGiB,aAAA;MACjBD,QAAA,EAAAG,kBAAA,IACC,eAAAf,IAAA,CAACT,IAAA;QACEqB,QAAA,GAAAE,OAAA,CAAQW,KAAA,EAAM,KAAEb,QAAA;MAAA,CACnB;IAAA,CAEJ;EAAA,CACF;AAEJ;AAIA,SAASQ,aAAaM,QAAA,GAAWA,CAAA,KAAM,CAAC,GAAG;EACzC,MAAMC,EAAA,GAAKlC,QAAA,CAASiC,QAAQ;EAC5BrC,yBAAA,CAA0B,MAAM;IAC9B,IAAIuC,IAAA,GAAO;IACX,IAAIC,IAAA,GAAO;IACXD,IAAA,GAAOE,qBAAA,CAAsB,MAAM;MACjCD,IAAA,GAAOC,qBAAA,CAAsBH,EAAE;IACjC,CAAC;IACD,OAAO,MAAM;MACXI,oBAAA,CAAqBH,IAAI;MACzBG,oBAAA,CAAqBF,IAAI;IAC3B;EACF,GAAG,CAACF,EAAE,CAAC;AACT","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useIsomorphicLayoutEffect } from "@hanzogui/constants";
3
+ import { View, Text, styled, useEvent } from "@hanzogui/core";
4
+ import { Portal } from "@hanzogui/portal";
5
+ import { startTransition } from "@hanzogui/start-transition";
6
+ import { VisuallyHidden } from "@hanzogui/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
+ var 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
+ var ToastAnnounce = function (props) {
25
+ var {
26
+ scope,
27
+ children,
28
+ ...announceProps
29
+ } = props;
30
+ var context = useToastProviderContext(scope);
31
+ var [renderAnnounceText, setRenderAnnounceText] = React.useState(false);
32
+ var [isAnnounced, setIsAnnounced] = React.useState(false);
33
+ useNextFrame(function () {
34
+ startTransition(function () {
35
+ setRenderAnnounceText(true);
36
+ });
37
+ });
38
+ React.useEffect(function () {
39
+ var timer = setTimeout(function () {
40
+ return setIsAnnounced(true);
41
+ }, 1e3);
42
+ return function () {
43
+ return clearTimeout(timer);
44
+ };
45
+ }, []);
46
+ return isAnnounced ? null : /* @__PURE__ */_jsx(Portal, {
47
+ children: /* @__PURE__ */_jsx(VisuallyHidden, {
48
+ ...announceProps,
49
+ children: renderAnnounceText && /* @__PURE__ */_jsxs(Text, {
50
+ children: [context.label, " ", children]
51
+ })
52
+ })
53
+ });
54
+ };
55
+ function useNextFrame() {
56
+ var callback = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function () {};
57
+ var fn = useEvent(callback);
58
+ useIsomorphicLayoutEffect(function () {
59
+ var raf1 = 0;
60
+ var raf2 = 0;
61
+ raf1 = requestAnimationFrame(function () {
62
+ raf2 = requestAnimationFrame(fn);
63
+ });
64
+ return function () {
65
+ cancelAnimationFrame(raf1);
66
+ cancelAnimationFrame(raf2);
67
+ };
68
+ }, [fn]);
69
+ }
70
+ export { ToastAnnounce, ToastAnnounceExclude };
71
+ //# 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,6BAAgB;AAC7C,SAASC,IAAA,EAAAC,IAAA,EAAAC,MAAc,EAAAC,QAAA;AACvB,SAASC,MAAA,0BAAuB;AAChC,SAASC,eAAA,QAAsB;AAC/B,SAAAC,cAAuB;AAGvB,YAASC,KAAA;AAoBH,SAAAC,uBAAA;AAlBN,IAAAC,yBAAM,GAAAP,MAA4B,CAAAF,IAAO;EACvCU,IAAA,EAAM;AACR,CAAC;AAWD,IAAAC,oBAAM,kBAA6BJ,KAAA,CAAAK,UAAA,WAAAC,KAAA,EAAAC,YAAA;EACjC,IAAC;IAAAC,OAAO;IAAA,GAAAC;EAAiB,IAAAH,KAAA;EACvB,sBAAoBjB,IAAA,CAAAa,yBAAyB;IAE7C,6BACE;IAAA,yBAAC,EAAAM,OAAA;IAAA,GAAAC,oBAAA;IAAAC,GAAA,EACCH;EAA4B;AACQ;AAChC,IAAAI,aACC,YAAAA,CAAAL,KAAA;EAAA;IAAAM,KAAA;IAAAC,QAAA;IAAA,GAAAC;EAAA,IAAAR,KAAA;EAAA,IACPS,OAAA,GAAAd,uBAAA,CAAAW,KAAA;EAEJ,KAAAI,kBAAA,EAAAC,qBAAA,IAAAjB,KAAA,CAAAkB,QAAA;EACF,KAAAC,WAAA,EAAAC,cAAA,IAAApB,KAAA,CAAAkB,QAAA;EASAG,YAAM,aACJ;IAEAvB,eAAe,aAAa;MAC5BmB,qBAAgB;IAChB;EACA;EAGAjB,KAAA,CAAAsB,SAAa,aAAM;IACjB,IAAAC,KAAA,GAAAC,UAAsB;MACpB,OAAAJ,cAAA,CAAsB,IAAI;IAC5B,CAAC;IACF;MAGD,OAAMK,YAAgB,CAAAF,KAAA;IACpB;EACA;EACF,OAAKJ,WAAA,yBAAA9B,IAAA,CAAAQ,MAAA;IAELgB,QAAO,iBACLxB,IAAA,CAAAU,cAAA,EAAC;MAIQ,GAAAe,aAAQ;MAAMD,QAAA,EAAAG,kBAAA,mBAAAzB,KAAA,CAAAG,IAAA;QAAEmB,QAAA,GAGvBE,OACF,CAAAW,KAAA,EAEJ,KAISb,QAAA;MACP;IACA;EACE;AACA;AACA,SAAAQ,YAAOA,CAAA;EACL,IAAAM,QAAO,GAAAC,SAAA,CAAAC,MAAA,GAAsB,CAAE,IAAAD,SAAA,iBAAAA,SAAA;EAEjC,IAAAE,EAAA,GAAOlC,QAAM,CAAA+B,QAAA;EACXnC,yBAAqB,aAAI;IACzB,IAAAuC,IAAA;IACF,IAAAC,IAAA;IACFD,IAAM,GAACE,qBAAA;MACTD,IAAA,GAAAC,qBAAA,CAAAH,EAAA","ignoreList":[]}