@epic-web/workshop-app 4.6.5 → 4.7.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 (811) hide show
  1. package/build/client/assets/{_-COWH0sBh.js → _-Bd2gNcck.js} +2 -2
  2. package/build/client/assets/{_-COWH0sBh.js.map → _-Bd2gNcck.js.map} +1 -1
  3. package/build/client/assets/{_exerciseNumber-D5XVFEL6.js → _exerciseNumber-CFOo2dQj.js} +2 -2
  4. package/build/client/assets/{_exerciseNumber-D5XVFEL6.js.map → _exerciseNumber-CFOo2dQj.js.map} +1 -1
  5. package/build/client/assets/{_exerciseNumber_._stepNumber-C37pli7_.js → _exerciseNumber_._stepNumber-DCbWNWpZ.js} +2 -2
  6. package/build/client/assets/{_exerciseNumber_._stepNumber-C37pli7_.js.map → _exerciseNumber_._stepNumber-DCbWNWpZ.js.map} +1 -1
  7. package/build/client/assets/_exerciseNumber_.finished-P7xMAtl1.js +2 -0
  8. package/build/client/assets/_exerciseNumber_.finished-P7xMAtl1.js.map +1 -0
  9. package/build/client/assets/_layout-Bdd3mpVx.js +2 -0
  10. package/build/client/assets/_layout-Bdd3mpVx.js.map +1 -0
  11. package/build/client/assets/_layout-DHBLG7Ti.js +6 -0
  12. package/build/client/assets/_layout-DHBLG7Ti.js.map +1 -0
  13. package/build/client/assets/_layout-DaZNLfOL.js +2 -0
  14. package/build/client/assets/{_layout-BR-Qyofe.js.map → _layout-DaZNLfOL.js.map} +1 -1
  15. package/build/client/assets/{_layout-D0zbQZjf.js → _layout-rEQoj43V.js} +2 -2
  16. package/build/client/assets/{_layout-D0zbQZjf.js.map → _layout-rEQoj43V.js.map} +1 -1
  17. package/build/client/assets/{account-DesvwOeg.js → account-CnLkZd_O.js} +2 -2
  18. package/build/client/assets/{account-DesvwOeg.js.map → account-CnLkZd_O.js.map} +1 -1
  19. package/build/client/assets/{button-BfWwrI9B.js → button-CyZl24U2.js} +2 -2
  20. package/build/client/assets/{button-BfWwrI9B.js.map → button-CyZl24U2.js.map} +1 -1
  21. package/build/client/assets/{client-hints-BKxdo5Js.js → client-hints-BE5mB4r0.js} +2 -2
  22. package/build/client/assets/{client-hints-BKxdo5Js.js.map → client-hints-BE5mB4r0.js.map} +1 -1
  23. package/build/client/assets/components-BMzmvxYw.js +166 -0
  24. package/build/client/assets/components-BMzmvxYw.js.map +1 -0
  25. package/build/client/assets/diff-P5f7-8E4.js +2 -0
  26. package/build/client/assets/diff-P5f7-8E4.js.map +1 -0
  27. package/build/client/assets/diff-PfwTHr6-.js +2 -0
  28. package/build/client/assets/{diff-KDzcgGYL.js.map → diff-PfwTHr6-.js.map} +1 -1
  29. package/build/client/assets/{discord-0kv66Q6F.js → discord-COPE8EOZ.js} +2 -2
  30. package/build/client/assets/{discord-0kv66Q6F.js.map → discord-COPE8EOZ.js.map} +1 -1
  31. package/build/client/assets/discord-DIog7bBO.js +2 -0
  32. package/build/client/assets/discord-DIog7bBO.js.map +1 -0
  33. package/build/client/assets/entry.client-B0vV2fsa.js +43 -0
  34. package/build/client/assets/entry.client-B0vV2fsa.js.map +1 -0
  35. package/build/client/assets/{epic-video-BwtXsHGU.js → epic-video-CYnG2ziQ.js} +128 -128
  36. package/build/client/assets/epic-video-CYnG2ziQ.js.map +1 -0
  37. package/build/client/assets/{error-boundary-Bcric_4t.js → error-boundary-DxfVshQ5.js} +2 -2
  38. package/build/client/assets/{error-boundary-Bcric_4t.js.map → error-boundary-DxfVshQ5.js.map} +1 -1
  39. package/build/client/assets/finished-DP5ynR5u.js +2 -0
  40. package/build/client/assets/finished-DP5ynR5u.js.map +1 -0
  41. package/build/client/assets/index-4E9_Sx3m.js +42 -0
  42. package/build/client/assets/index-4E9_Sx3m.js.map +1 -0
  43. package/build/client/assets/{index-Bg9MMnnf.js → index-90bzTYUX.js} +2 -2
  44. package/build/client/assets/index-90bzTYUX.js.map +1 -0
  45. package/build/client/assets/{index-BQRtqn3g.js → index-BXefr1BB.js} +2 -2
  46. package/build/client/assets/{index-BQRtqn3g.js.map → index-BXefr1BB.js.map} +1 -1
  47. package/build/client/assets/index-Czg1ruVn.js +37 -0
  48. package/build/client/assets/index-Czg1ruVn.js.map +1 -0
  49. package/build/client/assets/{index-9nNr0Zqr.js → index-D6ukHE4T.js} +2 -2
  50. package/build/client/assets/{index-9nNr0Zqr.js.map → index-D6ukHE4T.js.map} +1 -1
  51. package/build/client/assets/index-Doi37489.js +3 -0
  52. package/build/client/assets/index-Doi37489.js.map +1 -0
  53. package/build/client/assets/{loading-C9f_vBoM.js → loading-CNWJVymJ.js} +2 -2
  54. package/build/client/assets/{loading-C9f_vBoM.js.map → loading-CNWJVymJ.js.map} +1 -1
  55. package/build/client/assets/{login-D8zyjBAb.js → login-DxG854vQ.js} +2 -2
  56. package/build/client/assets/{login-D8zyjBAb.js.map → login-DxG854vQ.js.map} +1 -1
  57. package/build/client/assets/manifest-a1fde59b.js +1 -0
  58. package/build/client/assets/mdx-CR7Me1v_.js +2 -0
  59. package/build/client/assets/{mdx-BYvGbvEr.js.map → mdx-CR7Me1v_.js.map} +1 -1
  60. package/build/client/assets/misc-CypjEQkt.js +2 -0
  61. package/build/client/assets/misc-CypjEQkt.js.map +1 -0
  62. package/build/client/assets/{nav-chevrons-DOYtx9XE.js → nav-chevrons-BYKwyIgG.js} +2 -2
  63. package/build/client/assets/{nav-chevrons-DOYtx9XE.js.map → nav-chevrons-BYKwyIgG.js.map} +1 -1
  64. package/build/client/assets/{onboarding-euWyXpCL.js → onboarding-b9lcdh4n.js} +2 -2
  65. package/build/client/assets/{onboarding-euWyXpCL.js.map → onboarding-b9lcdh4n.js.map} +1 -1
  66. package/build/client/assets/{presence-BJPzwbUy.js → presence-DXXVJbaH.js} +2 -2
  67. package/build/client/assets/{presence-BJPzwbUy.js.map → presence-DXXVJbaH.js.map} +1 -1
  68. package/build/client/assets/progress-B_mReZVE.js +2 -0
  69. package/build/client/assets/progress-B_mReZVE.js.map +1 -0
  70. package/build/client/assets/{progress-bar-7LK87ZMh.js → progress-bar-DCrt7X4t.js} +2 -2
  71. package/build/client/assets/{progress-bar-7LK87ZMh.js.map → progress-bar-DCrt7X4t.js.map} +1 -1
  72. package/build/client/assets/{request-info-Dyls4H67.js → request-info-CUT0ULYN.js} +2 -2
  73. package/build/client/assets/{request-info-Dyls4H67.js.map → request-info-CUT0ULYN.js.map} +1 -1
  74. package/build/client/assets/{root-BXq0yevS.js → root-bgHbi7rA.js} +4 -4
  75. package/build/client/assets/root-bgHbi7rA.js.map +1 -0
  76. package/build/client/assets/{seo-CHrqghsC.js → seo-Bu3_n5my.js} +2 -2
  77. package/build/client/assets/{seo-CHrqghsC.js.map → seo-Bu3_n5my.js.map} +1 -1
  78. package/build/client/assets/{support-DUAHYT3r.js → support-DrY-qRGh.js} +2 -2
  79. package/build/client/assets/{support-DUAHYT3r.js.map → support-DrY-qRGh.js.map} +1 -1
  80. package/build/client/assets/tailwind-D2vjZZFL.css +1 -0
  81. package/build/client/assets/tooltip-CfmIzAYi.js +2 -0
  82. package/build/client/assets/tooltip-CfmIzAYi.js.map +1 -0
  83. package/build/client/assets/{use-event-source-aW6X9lN1.js → use-event-source-ySol3hbz.js} +2 -2
  84. package/build/client/assets/{use-event-source-aW6X9lN1.js.map → use-event-source-ySol3hbz.js.map} +1 -1
  85. package/build/client/assets/{user-73ocDYRe.js → user-C4QTtQw5.js} +2 -2
  86. package/build/client/assets/{user-73ocDYRe.js.map → user-C4QTtQw5.js.map} +1 -1
  87. package/build/server/index.js +850 -616
  88. package/build/server/index.js.map +1 -1
  89. package/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js +65 -3
  90. package/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js +65 -3
  91. package/node_modules/@babel/runtime/package.json +1 -28
  92. package/node_modules/@conform-to/dom/dom.d.ts +17 -5
  93. package/node_modules/@conform-to/dom/form.d.ts +221 -122
  94. package/node_modules/@conform-to/dom/index.d.ts +24 -2
  95. package/node_modules/@conform-to/dom/intent.d.ts +92 -60
  96. package/node_modules/@conform-to/dom/package.json +1 -1
  97. package/node_modules/@conform-to/dom/parse.d.ts +47 -27
  98. package/node_modules/@conform-to/dom/types.d.ts +17 -14
  99. package/node_modules/@conform-to/dom/util.d.ts +4 -1
  100. package/node_modules/@conform-to/react/context.d.ts +187 -59
  101. package/node_modules/@conform-to/react/context.js +3 -5
  102. package/node_modules/@conform-to/react/context.mjs +4 -6
  103. package/node_modules/@conform-to/react/experimental.d.ts +0 -0
  104. package/node_modules/@conform-to/react/hooks.d.ts +53 -24
  105. package/node_modules/@conform-to/react/index.d.ts +28 -4
  106. package/node_modules/@conform-to/react/integrations.js +14 -1
  107. package/node_modules/@conform-to/react/integrations.mjs +14 -1
  108. package/node_modules/@conform-to/react/package.json +2 -2
  109. package/node_modules/@conform-to/zod/coercion.d.ts +14 -4
  110. package/node_modules/@conform-to/zod/constraint.d.ts +3 -1
  111. package/node_modules/@conform-to/zod/package.json +2 -2
  112. package/node_modules/@conform-to/zod/parse.d.ts +43 -25
  113. package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs +1 -1
  114. package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.mjs +14 -3
  115. package/node_modules/@floating-ui/core/dist/floating-ui.core.d.mts +51 -51
  116. package/node_modules/@floating-ui/core/dist/floating-ui.core.d.ts +51 -51
  117. package/node_modules/@floating-ui/core/dist/floating-ui.core.esm.js +14 -3
  118. package/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +14 -3
  119. package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.js +14 -3
  120. package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.min.js +1 -1
  121. package/node_modules/@floating-ui/core/package.json +2 -2
  122. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs +1 -1
  123. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.mjs +12 -11
  124. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts +11 -8
  125. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.ts +11 -8
  126. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js +1 -12
  127. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +1 -12
  128. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js +12 -11
  129. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.min.js +1 -1
  130. package/node_modules/@floating-ui/dom/package.json +2 -2
  131. package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.d.mts +12 -4
  132. package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.d.ts +12 -4
  133. package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js +1 -0
  134. package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs +1 -0
  135. package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.umd.js +1 -0
  136. package/node_modules/@floating-ui/react-dom/package.json +1 -1
  137. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts +11 -6
  138. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.ts +11 -6
  139. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts +2 -0
  140. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.ts +2 -0
  141. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.esm.js +13 -1
  142. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +13 -1
  143. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.js +13 -0
  144. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.min.js +1 -1
  145. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.d.ts +2 -0
  146. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.esm.js +13 -1
  147. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.umd.js +13 -0
  148. package/node_modules/@floating-ui/utils/package.json +1 -1
  149. package/node_modules/@radix-ui/number/dist/index.d.mts +2 -2
  150. package/node_modules/@radix-ui/number/dist/index.d.ts +2 -2
  151. package/node_modules/@radix-ui/number/dist/index.js +28 -10
  152. package/node_modules/@radix-ui/number/dist/index.js.map +7 -1
  153. package/node_modules/@radix-ui/number/dist/index.mjs +6 -7
  154. package/node_modules/@radix-ui/number/dist/index.mjs.map +7 -1
  155. package/node_modules/@radix-ui/number/package.json +1 -4
  156. package/node_modules/@radix-ui/primitive/dist/index.d.mts +2 -2
  157. package/node_modules/@radix-ui/primitive/dist/index.d.ts +2 -2
  158. package/node_modules/@radix-ui/primitive/dist/index.js +33 -13
  159. package/node_modules/@radix-ui/primitive/dist/index.js.map +7 -1
  160. package/node_modules/@radix-ui/primitive/dist/index.mjs +11 -10
  161. package/node_modules/@radix-ui/primitive/dist/index.mjs.map +7 -1
  162. package/node_modules/@radix-ui/primitive/package.json +1 -4
  163. package/node_modules/@radix-ui/react-accordion/dist/index.d.mts +40 -28
  164. package/node_modules/@radix-ui/react-accordion/dist/index.d.ts +40 -28
  165. package/node_modules/@radix-ui/react-accordion/dist/index.js +324 -316
  166. package/node_modules/@radix-ui/react-accordion/dist/index.js.map +7 -1
  167. package/node_modules/@radix-ui/react-accordion/dist/index.mjs +293 -300
  168. package/node_modules/@radix-ui/react-accordion/dist/index.mjs.map +7 -1
  169. package/node_modules/@radix-ui/react-accordion/package.json +12 -13
  170. package/node_modules/@radix-ui/react-arrow/dist/index.d.mts +8 -8
  171. package/node_modules/@radix-ui/react-arrow/dist/index.d.ts +8 -8
  172. package/node_modules/@radix-ui/react-arrow/dist/index.js +57 -37
  173. package/node_modules/@radix-ui/react-arrow/dist/index.js.map +7 -1
  174. package/node_modules/@radix-ui/react-arrow/dist/index.mjs +25 -30
  175. package/node_modules/@radix-ui/react-arrow/dist/index.mjs.map +7 -1
  176. package/node_modules/@radix-ui/react-arrow/package.json +4 -5
  177. package/node_modules/@radix-ui/react-collapsible/dist/index.d.mts +27 -16
  178. package/node_modules/@radix-ui/react-collapsible/dist/index.d.ts +27 -16
  179. package/node_modules/@radix-ui/react-collapsible/dist/index.js +176 -167
  180. package/node_modules/@radix-ui/react-collapsible/dist/index.js.map +7 -1
  181. package/node_modules/@radix-ui/react-collapsible/dist/index.mjs +143 -153
  182. package/node_modules/@radix-ui/react-collapsible/dist/index.mjs.map +7 -1
  183. package/node_modules/@radix-ui/react-collapsible/package.json +11 -12
  184. package/node_modules/@radix-ui/react-collection/dist/index.d.mts +27 -15
  185. package/node_modules/@radix-ui/react-collection/dist/index.d.ts +27 -15
  186. package/node_modules/@radix-ui/react-collection/dist/index.js +99 -112
  187. package/node_modules/@radix-ui/react-collection/dist/index.js.map +7 -1
  188. package/node_modules/@radix-ui/react-collection/dist/index.mjs +68 -106
  189. package/node_modules/@radix-ui/react-collection/dist/index.mjs.map +7 -1
  190. package/node_modules/@radix-ui/react-collection/package.json +7 -8
  191. package/node_modules/@radix-ui/react-compose-refs/dist/index.d.mts +5 -4
  192. package/node_modules/@radix-ui/react-compose-refs/dist/index.d.ts +5 -4
  193. package/node_modules/@radix-ui/react-compose-refs/dist/index.js +47 -30
  194. package/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +7 -1
  195. package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs +16 -27
  196. package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs.map +7 -1
  197. package/node_modules/@radix-ui/react-compose-refs/package.json +2 -5
  198. package/node_modules/@radix-ui/react-context/dist/index.d.mts +10 -8
  199. package/node_modules/@radix-ui/react-context/dist/index.d.ts +10 -8
  200. package/node_modules/@radix-ui/react-context/dist/index.js +104 -123
  201. package/node_modules/@radix-ui/react-context/dist/index.js.map +7 -1
  202. package/node_modules/@radix-ui/react-context/dist/index.mjs +73 -120
  203. package/node_modules/@radix-ui/react-context/dist/index.mjs.map +7 -1
  204. package/node_modules/@radix-ui/react-context/package.json +2 -5
  205. package/node_modules/@radix-ui/react-direction/dist/index.d.mts +6 -5
  206. package/node_modules/@radix-ui/react-direction/dist/index.d.ts +6 -5
  207. package/node_modules/@radix-ui/react-direction/dist/index.js +47 -24
  208. package/node_modules/@radix-ui/react-direction/dist/index.js.map +7 -1
  209. package/node_modules/@radix-ui/react-direction/dist/index.mjs +16 -20
  210. package/node_modules/@radix-ui/react-direction/dist/index.mjs.map +7 -1
  211. package/node_modules/@radix-ui/react-direction/package.json +2 -5
  212. package/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.mts +10 -10
  213. package/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.ts +10 -10
  214. package/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +230 -270
  215. package/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +7 -1
  216. package/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs +199 -261
  217. package/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs.map +7 -1
  218. package/node_modules/@radix-ui/react-dismissable-layer/package.json +9 -10
  219. package/node_modules/@radix-ui/react-focus-guards/dist/index.d.mts +4 -4
  220. package/node_modules/@radix-ui/react-focus-guards/dist/index.d.ts +4 -4
  221. package/node_modules/@radix-ui/react-focus-guards/dist/index.js +63 -39
  222. package/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +7 -1
  223. package/node_modules/@radix-ui/react-focus-guards/dist/index.mjs +32 -34
  224. package/node_modules/@radix-ui/react-focus-guards/dist/index.mjs.map +7 -1
  225. package/node_modules/@radix-ui/react-focus-guards/package.json +2 -5
  226. package/node_modules/@radix-ui/react-focus-scope/dist/index.d.mts +8 -8
  227. package/node_modules/@radix-ui/react-focus-scope/dist/index.d.ts +8 -8
  228. package/node_modules/@radix-ui/react-focus-scope/dist/index.js +228 -282
  229. package/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +7 -1
  230. package/node_modules/@radix-ui/react-focus-scope/dist/index.mjs +197 -275
  231. package/node_modules/@radix-ui/react-focus-scope/dist/index.mjs.map +7 -1
  232. package/node_modules/@radix-ui/react-focus-scope/package.json +6 -7
  233. package/node_modules/@radix-ui/react-id/dist/index.d.mts +2 -2
  234. package/node_modules/@radix-ui/react-id/dist/index.d.ts +2 -2
  235. package/node_modules/@radix-ui/react-id/dist/index.js +47 -26
  236. package/node_modules/@radix-ui/react-id/dist/index.js.map +7 -1
  237. package/node_modules/@radix-ui/react-id/dist/index.mjs +14 -22
  238. package/node_modules/@radix-ui/react-id/dist/index.mjs.map +7 -1
  239. package/node_modules/@radix-ui/react-id/package.json +3 -4
  240. package/node_modules/@radix-ui/react-popover/dist/index.d.mts +48 -37
  241. package/node_modules/@radix-ui/react-popover/dist/index.d.ts +48 -37
  242. package/node_modules/@radix-ui/react-popover/dist/index.js +319 -311
  243. package/node_modules/@radix-ui/react-popover/dist/index.js.map +7 -1
  244. package/node_modules/@radix-ui/react-popover/dist/index.mjs +288 -291
  245. package/node_modules/@radix-ui/react-popover/dist/index.mjs.map +7 -1
  246. package/node_modules/@radix-ui/react-popover/package.json +17 -18
  247. package/node_modules/@radix-ui/react-popper/dist/index.d.mts +36 -25
  248. package/node_modules/@radix-ui/react-popper/dist/index.d.ts +36 -25
  249. package/node_modules/@radix-ui/react-popper/dist/index.js +305 -321
  250. package/node_modules/@radix-ui/react-popper/dist/index.js.map +7 -1
  251. package/node_modules/@radix-ui/react-popper/dist/index.mjs +284 -305
  252. package/node_modules/@radix-ui/react-popper/dist/index.mjs.map +7 -1
  253. package/node_modules/@radix-ui/react-popper/package.json +12 -13
  254. package/node_modules/@radix-ui/react-portal/dist/index.d.mts +9 -9
  255. package/node_modules/@radix-ui/react-portal/dist/index.d.ts +9 -9
  256. package/node_modules/@radix-ui/react-portal/dist/index.js +52 -34
  257. package/node_modules/@radix-ui/react-portal/dist/index.js.map +7 -1
  258. package/node_modules/@radix-ui/react-portal/dist/index.mjs +21 -27
  259. package/node_modules/@radix-ui/react-portal/dist/index.mjs.map +7 -1
  260. package/node_modules/@radix-ui/react-portal/package.json +5 -5
  261. package/node_modules/@radix-ui/react-presence/dist/index.d.mts +5 -4
  262. package/node_modules/@radix-ui/react-presence/dist/index.d.ts +5 -4
  263. package/node_modules/@radix-ui/react-presence/dist/index.js +147 -132
  264. package/node_modules/@radix-ui/react-presence/dist/index.js.map +7 -1
  265. package/node_modules/@radix-ui/react-presence/dist/index.mjs +116 -129
  266. package/node_modules/@radix-ui/react-presence/dist/index.mjs.map +7 -1
  267. package/node_modules/@radix-ui/react-presence/package.json +5 -6
  268. package/node_modules/@radix-ui/react-primitive/dist/index.d.mts +8 -9
  269. package/node_modules/@radix-ui/react-primitive/dist/index.d.ts +8 -9
  270. package/node_modules/@radix-ui/react-primitive/dist/index.js +73 -100
  271. package/node_modules/@radix-ui/react-primitive/dist/index.js.map +7 -1
  272. package/node_modules/@radix-ui/react-primitive/dist/index.mjs +42 -93
  273. package/node_modules/@radix-ui/react-primitive/dist/index.mjs.map +7 -1
  274. package/node_modules/@radix-ui/react-primitive/package.json +4 -5
  275. package/node_modules/@radix-ui/react-roving-focus/dist/index.d.mts +25 -13
  276. package/node_modules/@radix-ui/react-roving-focus/dist/index.d.ts +25 -13
  277. package/node_modules/@radix-ui/react-roving-focus/dist/index.js +239 -247
  278. package/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +7 -1
  279. package/node_modules/@radix-ui/react-roving-focus/dist/index.mjs +209 -238
  280. package/node_modules/@radix-ui/react-roving-focus/dist/index.mjs.map +7 -1
  281. package/node_modules/@radix-ui/react-roving-focus/package.json +12 -13
  282. package/node_modules/@radix-ui/react-select/dist/index.d.mts +77 -65
  283. package/node_modules/@radix-ui/react-select/dist/index.d.ts +77 -65
  284. package/node_modules/@radix-ui/react-select/dist/index.js +1107 -1235
  285. package/node_modules/@radix-ui/react-select/dist/index.js.map +7 -1
  286. package/node_modules/@radix-ui/react-select/dist/index.mjs +1076 -1197
  287. package/node_modules/@radix-ui/react-select/dist/index.mjs.map +7 -1
  288. package/node_modules/@radix-ui/react-select/package.json +23 -24
  289. package/node_modules/@radix-ui/react-slot/dist/index.d.mts +9 -7
  290. package/node_modules/@radix-ui/react-slot/dist/index.d.ts +9 -7
  291. package/node_modules/@radix-ui/react-slot/dist/index.js +107 -87
  292. package/node_modules/@radix-ui/react-slot/dist/index.js.map +7 -1
  293. package/node_modules/@radix-ui/react-slot/dist/index.mjs +76 -80
  294. package/node_modules/@radix-ui/react-slot/dist/index.mjs.map +7 -1
  295. package/node_modules/@radix-ui/react-slot/package.json +3 -4
  296. package/node_modules/@radix-ui/react-tabs/dist/index.d.mts +32 -21
  297. package/node_modules/@radix-ui/react-tabs/dist/index.d.ts +32 -21
  298. package/node_modules/@radix-ui/react-tabs/dist/index.js +217 -184
  299. package/node_modules/@radix-ui/react-tabs/dist/index.js.map +7 -1
  300. package/node_modules/@radix-ui/react-tabs/dist/index.mjs +185 -169
  301. package/node_modules/@radix-ui/react-tabs/dist/index.mjs.map +7 -1
  302. package/node_modules/@radix-ui/react-tabs/package.json +11 -12
  303. package/node_modules/@radix-ui/react-toast/dist/index.d.mts +43 -32
  304. package/node_modules/@radix-ui/react-toast/dist/index.d.ts +43 -32
  305. package/node_modules/@radix-ui/react-toast/dist/index.js +645 -715
  306. package/node_modules/@radix-ui/react-toast/dist/index.js.map +7 -1
  307. package/node_modules/@radix-ui/react-toast/dist/index.mjs +614 -695
  308. package/node_modules/@radix-ui/react-toast/dist/index.mjs.map +7 -1
  309. package/node_modules/@radix-ui/react-toast/package.json +15 -16
  310. package/node_modules/@radix-ui/react-use-callback-ref/dist/index.d.mts +2 -2
  311. package/node_modules/@radix-ui/react-use-callback-ref/dist/index.d.ts +2 -2
  312. package/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +42 -23
  313. package/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +7 -1
  314. package/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs +11 -21
  315. package/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs.map +7 -1
  316. package/node_modules/@radix-ui/react-use-callback-ref/package.json +2 -5
  317. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.mts +4 -3
  318. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.ts +4 -3
  319. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +75 -52
  320. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +7 -1
  321. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs +44 -50
  322. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs.map +7 -1
  323. package/node_modules/@radix-ui/react-use-controllable-state/package.json +3 -4
  324. package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.d.mts +2 -2
  325. package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.d.ts +2 -2
  326. package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +50 -29
  327. package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +7 -1
  328. package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs +17 -25
  329. package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs.map +7 -1
  330. package/node_modules/@radix-ui/react-use-escape-keydown/package.json +3 -4
  331. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.mts +4 -3
  332. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.ts +4 -3
  333. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +38 -17
  334. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +7 -1
  335. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs +7 -15
  336. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs.map +7 -1
  337. package/node_modules/@radix-ui/react-use-layout-effect/package.json +2 -5
  338. package/node_modules/@radix-ui/react-use-previous/dist/index.d.mts +2 -2
  339. package/node_modules/@radix-ui/react-use-previous/dist/index.d.ts +2 -2
  340. package/node_modules/@radix-ui/react-use-previous/dist/index.js +45 -26
  341. package/node_modules/@radix-ui/react-use-previous/dist/index.js.map +7 -1
  342. package/node_modules/@radix-ui/react-use-previous/dist/index.mjs +14 -24
  343. package/node_modules/@radix-ui/react-use-previous/dist/index.mjs.map +7 -1
  344. package/node_modules/@radix-ui/react-use-previous/package.json +2 -5
  345. package/node_modules/@radix-ui/react-use-rect/dist/index.d.mts +4 -3
  346. package/node_modules/@radix-ui/react-use-rect/dist/index.d.ts +4 -3
  347. package/node_modules/@radix-ui/react-use-rect/dist/index.js +52 -32
  348. package/node_modules/@radix-ui/react-use-rect/dist/index.js.map +7 -1
  349. package/node_modules/@radix-ui/react-use-rect/dist/index.mjs +19 -28
  350. package/node_modules/@radix-ui/react-use-rect/dist/index.mjs.map +7 -1
  351. package/node_modules/@radix-ui/react-use-rect/package.json +3 -4
  352. package/node_modules/@radix-ui/react-use-size/dist/index.d.mts +2 -2
  353. package/node_modules/@radix-ui/react-use-size/dist/index.d.ts +2 -2
  354. package/node_modules/@radix-ui/react-use-size/dist/index.js +70 -57
  355. package/node_modules/@radix-ui/react-use-size/dist/index.js.map +7 -1
  356. package/node_modules/@radix-ui/react-use-size/dist/index.mjs +39 -55
  357. package/node_modules/@radix-ui/react-use-size/dist/index.mjs.map +7 -1
  358. package/node_modules/@radix-ui/react-use-size/package.json +3 -4
  359. package/node_modules/@radix-ui/react-visually-hidden/dist/index.d.mts +8 -8
  360. package/node_modules/@radix-ui/react-visually-hidden/dist/index.d.ts +8 -8
  361. package/node_modules/@radix-ui/react-visually-hidden/dist/index.js +64 -41
  362. package/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +7 -1
  363. package/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs +33 -35
  364. package/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs.map +7 -1
  365. package/node_modules/@radix-ui/react-visually-hidden/package.json +4 -5
  366. package/node_modules/@radix-ui/rect/dist/index.d.mts +3 -3
  367. package/node_modules/@radix-ui/rect/dist/index.d.ts +3 -3
  368. package/node_modules/@radix-ui/rect/dist/index.js +69 -66
  369. package/node_modules/@radix-ui/rect/dist/index.js.map +7 -1
  370. package/node_modules/@radix-ui/rect/dist/index.mjs +47 -63
  371. package/node_modules/@radix-ui/rect/dist/index.mjs.map +7 -1
  372. package/node_modules/@radix-ui/rect/package.json +1 -4
  373. package/node_modules/@remix-run/react/CHANGELOG.md +18 -0
  374. package/node_modules/@remix-run/react/dist/_virtual/_rollupPluginBabelHelpers.js +1 -1
  375. package/node_modules/@remix-run/react/dist/browser.js +14 -3
  376. package/node_modules/@remix-run/react/dist/components.d.ts +9 -0
  377. package/node_modules/@remix-run/react/dist/components.js +23 -19
  378. package/node_modules/@remix-run/react/dist/data.js +1 -1
  379. package/node_modules/@remix-run/react/dist/entry.d.ts +1 -0
  380. package/node_modules/@remix-run/react/dist/errorBoundaries.d.ts +5 -2
  381. package/node_modules/@remix-run/react/dist/errorBoundaries.js +26 -5
  382. package/node_modules/@remix-run/react/dist/errors.js +1 -1
  383. package/node_modules/@remix-run/react/dist/esm/_virtual/_rollupPluginBabelHelpers.js +1 -1
  384. package/node_modules/@remix-run/react/dist/esm/browser.js +14 -3
  385. package/node_modules/@remix-run/react/dist/esm/components.js +24 -20
  386. package/node_modules/@remix-run/react/dist/esm/data.js +1 -1
  387. package/node_modules/@remix-run/react/dist/esm/errorBoundaries.js +26 -5
  388. package/node_modules/@remix-run/react/dist/esm/errors.js +1 -1
  389. package/node_modules/@remix-run/react/dist/esm/fallback.js +1 -1
  390. package/node_modules/@remix-run/react/dist/esm/fog-of-war.js +226 -0
  391. package/node_modules/@remix-run/react/dist/esm/index.js +1 -1
  392. package/node_modules/@remix-run/react/dist/esm/invariant.js +1 -1
  393. package/node_modules/@remix-run/react/dist/esm/links.js +2 -2
  394. package/node_modules/@remix-run/react/dist/esm/markup.js +1 -1
  395. package/node_modules/@remix-run/react/dist/esm/routeModules.js +1 -1
  396. package/node_modules/@remix-run/react/dist/esm/routes.js +1 -1
  397. package/node_modules/@remix-run/react/dist/esm/scroll-restoration.js +1 -1
  398. package/node_modules/@remix-run/react/dist/esm/server.js +1 -1
  399. package/node_modules/@remix-run/react/dist/esm/single-fetch.js +1 -1
  400. package/node_modules/@remix-run/react/dist/fallback.js +1 -1
  401. package/node_modules/@remix-run/react/dist/fog-of-war.d.ts +37 -0
  402. package/node_modules/@remix-run/react/dist/fog-of-war.js +254 -0
  403. package/node_modules/@remix-run/react/dist/index.js +1 -1
  404. package/node_modules/@remix-run/react/dist/invariant.js +1 -1
  405. package/node_modules/@remix-run/react/dist/links.js +2 -2
  406. package/node_modules/@remix-run/react/dist/markup.js +1 -1
  407. package/node_modules/@remix-run/react/dist/routeModules.js +1 -1
  408. package/node_modules/@remix-run/react/dist/routes.d.ts +1 -1
  409. package/node_modules/@remix-run/react/dist/routes.js +1 -1
  410. package/node_modules/@remix-run/react/dist/scroll-restoration.js +1 -1
  411. package/node_modules/@remix-run/react/dist/server.js +1 -1
  412. package/node_modules/@remix-run/react/dist/single-fetch.js +1 -1
  413. package/node_modules/@remix-run/react/package.json +8 -8
  414. package/node_modules/@remix-run/router/CHANGELOG.md +9 -0
  415. package/node_modules/@remix-run/router/dist/index.d.ts +1 -1
  416. package/node_modules/@remix-run/router/dist/router.cjs.js +467 -80
  417. package/node_modules/@remix-run/router/dist/router.cjs.js.map +1 -1
  418. package/node_modules/@remix-run/router/dist/router.d.ts +11 -1
  419. package/node_modules/@remix-run/router/dist/router.js +457 -76
  420. package/node_modules/@remix-run/router/dist/router.js.map +1 -1
  421. package/node_modules/@remix-run/router/dist/router.umd.js +467 -80
  422. package/node_modules/@remix-run/router/dist/router.umd.js.map +1 -1
  423. package/node_modules/@remix-run/router/dist/router.umd.min.js +2 -2
  424. package/node_modules/@remix-run/router/dist/router.umd.min.js.map +1 -1
  425. package/node_modules/@remix-run/router/dist/utils.d.ts +9 -1
  426. package/node_modules/@remix-run/router/index.ts +1 -0
  427. package/node_modules/@remix-run/router/package.json +1 -1
  428. package/node_modules/@remix-run/router/router.ts +586 -73
  429. package/node_modules/@remix-run/router/utils.ts +51 -8
  430. package/node_modules/@remix-run/server-runtime/CHANGELOG.md +17 -0
  431. package/node_modules/@remix-run/server-runtime/dist/cookies.js +1 -1
  432. package/node_modules/@remix-run/server-runtime/dist/data.js +1 -1
  433. package/node_modules/@remix-run/server-runtime/dist/deprecations.js +1 -1
  434. package/node_modules/@remix-run/server-runtime/dist/dev.js +1 -1
  435. package/node_modules/@remix-run/server-runtime/dist/entry.d.ts +1 -0
  436. package/node_modules/@remix-run/server-runtime/dist/entry.js +1 -1
  437. package/node_modules/@remix-run/server-runtime/dist/errors.js +1 -1
  438. package/node_modules/@remix-run/server-runtime/dist/esm/cookies.js +1 -1
  439. package/node_modules/@remix-run/server-runtime/dist/esm/data.js +1 -1
  440. package/node_modules/@remix-run/server-runtime/dist/esm/deprecations.js +1 -1
  441. package/node_modules/@remix-run/server-runtime/dist/esm/dev.js +1 -1
  442. package/node_modules/@remix-run/server-runtime/dist/esm/entry.js +1 -1
  443. package/node_modules/@remix-run/server-runtime/dist/esm/errors.js +1 -1
  444. package/node_modules/@remix-run/server-runtime/dist/esm/formData.js +1 -1
  445. package/node_modules/@remix-run/server-runtime/dist/esm/headers.js +1 -1
  446. package/node_modules/@remix-run/server-runtime/dist/esm/index.js +1 -1
  447. package/node_modules/@remix-run/server-runtime/dist/esm/invariant.js +1 -1
  448. package/node_modules/@remix-run/server-runtime/dist/esm/markup.js +1 -1
  449. package/node_modules/@remix-run/server-runtime/dist/esm/mode.js +1 -1
  450. package/node_modules/@remix-run/server-runtime/dist/esm/responses.js +1 -1
  451. package/node_modules/@remix-run/server-runtime/dist/esm/routeMatching.js +1 -1
  452. package/node_modules/@remix-run/server-runtime/dist/esm/routes.js +1 -1
  453. package/node_modules/@remix-run/server-runtime/dist/esm/server.js +76 -11
  454. package/node_modules/@remix-run/server-runtime/dist/esm/serverHandoff.js +1 -1
  455. package/node_modules/@remix-run/server-runtime/dist/esm/sessions/cookieStorage.js +1 -1
  456. package/node_modules/@remix-run/server-runtime/dist/esm/sessions/memoryStorage.js +1 -1
  457. package/node_modules/@remix-run/server-runtime/dist/esm/sessions.js +1 -1
  458. package/node_modules/@remix-run/server-runtime/dist/esm/single-fetch.js +17 -8
  459. package/node_modules/@remix-run/server-runtime/dist/esm/upload/errors.js +1 -1
  460. package/node_modules/@remix-run/server-runtime/dist/esm/upload/memoryUploadHandler.js +1 -1
  461. package/node_modules/@remix-run/server-runtime/dist/esm/warnings.js +1 -1
  462. package/node_modules/@remix-run/server-runtime/dist/formData.js +1 -1
  463. package/node_modules/@remix-run/server-runtime/dist/headers.js +1 -1
  464. package/node_modules/@remix-run/server-runtime/dist/index.js +1 -1
  465. package/node_modules/@remix-run/server-runtime/dist/invariant.js +1 -1
  466. package/node_modules/@remix-run/server-runtime/dist/markup.js +1 -1
  467. package/node_modules/@remix-run/server-runtime/dist/mode.js +1 -1
  468. package/node_modules/@remix-run/server-runtime/dist/responses.js +1 -1
  469. package/node_modules/@remix-run/server-runtime/dist/routeMatching.js +1 -1
  470. package/node_modules/@remix-run/server-runtime/dist/routes.js +1 -1
  471. package/node_modules/@remix-run/server-runtime/dist/server.js +70 -5
  472. package/node_modules/@remix-run/server-runtime/dist/serverHandoff.js +1 -1
  473. package/node_modules/@remix-run/server-runtime/dist/sessions/cookieStorage.js +1 -1
  474. package/node_modules/@remix-run/server-runtime/dist/sessions/memoryStorage.js +1 -1
  475. package/node_modules/@remix-run/server-runtime/dist/sessions.js +1 -1
  476. package/node_modules/@remix-run/server-runtime/dist/single-fetch.d.ts +3 -0
  477. package/node_modules/@remix-run/server-runtime/dist/single-fetch.js +18 -7
  478. package/node_modules/@remix-run/server-runtime/dist/upload/errors.js +1 -1
  479. package/node_modules/@remix-run/server-runtime/dist/upload/memoryUploadHandler.js +1 -1
  480. package/node_modules/@remix-run/server-runtime/dist/warnings.js +1 -1
  481. package/node_modules/@remix-run/server-runtime/package.json +3 -3
  482. package/node_modules/deep-eql/index.js +10 -5
  483. package/node_modules/deep-eql/package.json +1 -1
  484. package/node_modules/framer-motion/dist/cjs/{dom-entry-DSxBucW4.js → dom-entry-GDJJhIpT.js} +59 -106
  485. package/node_modules/framer-motion/dist/cjs/dom-entry.js +1 -1
  486. package/node_modules/framer-motion/dist/cjs/index.js +123 -36
  487. package/node_modules/framer-motion/dist/dom.js +1 -1
  488. package/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs +3 -3
  489. package/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs +6 -3
  490. package/node_modules/framer-motion/dist/es/motion/index.mjs +33 -13
  491. package/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs +6 -3
  492. package/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs +54 -3
  493. package/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs +5 -2
  494. package/node_modules/framer-motion/dist/es/projection-entry.mjs +11 -0
  495. package/node_modules/framer-motion/dist/es/render/VisualElement.mjs +30 -78
  496. package/node_modules/framer-motion/dist/es/render/utils/animation-state.mjs +5 -1
  497. package/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs +1 -1
  498. package/node_modules/framer-motion/dist/es/utils/mix/color.mjs +8 -2
  499. package/node_modules/framer-motion/dist/es/utils/mix/complex.mjs +1 -3
  500. package/node_modules/framer-motion/dist/es/utils/mix/immediate.mjs +5 -0
  501. package/node_modules/framer-motion/dist/es/value/index.mjs +1 -1
  502. package/node_modules/framer-motion/dist/es/value/types/color/rgba.mjs +1 -1
  503. package/node_modules/framer-motion/dist/framer-motion.dev.js +175 -134
  504. package/node_modules/framer-motion/dist/framer-motion.js +1 -1
  505. package/node_modules/framer-motion/dist/index.d.ts +78 -78
  506. package/node_modules/framer-motion/dist/three-entry.d.ts +59 -72
  507. package/node_modules/framer-motion/package.json +14 -28
  508. package/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +15 -4
  509. package/node_modules/react-remove-scroll/dist/es2015/UI.js +2 -2
  510. package/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +12 -4
  511. package/node_modules/react-remove-scroll/dist/es2015/types.d.ts +10 -2
  512. package/node_modules/react-remove-scroll/dist/es2019/SideEffect.js +15 -4
  513. package/node_modules/react-remove-scroll/dist/es2019/UI.js +2 -2
  514. package/node_modules/react-remove-scroll/dist/es2019/handleScroll.js +12 -4
  515. package/node_modules/react-remove-scroll/dist/es2019/types.d.ts +10 -2
  516. package/node_modules/react-remove-scroll/dist/es5/SideEffect.js +15 -4
  517. package/node_modules/react-remove-scroll/dist/es5/UI.js +2 -2
  518. package/node_modules/react-remove-scroll/dist/es5/handleScroll.js +12 -4
  519. package/node_modules/react-remove-scroll/dist/es5/types.d.ts +10 -2
  520. package/node_modules/react-remove-scroll/dist/index.js +93 -0
  521. package/node_modules/react-remove-scroll/package.json +4 -3
  522. package/node_modules/react-router/CHANGELOG.md +14 -0
  523. package/node_modules/react-router/dist/index.d.ts +4 -1
  524. package/node_modules/react-router/dist/index.js +3 -2
  525. package/node_modules/react-router/dist/index.js.map +1 -1
  526. package/node_modules/react-router/dist/main.js +1 -1
  527. package/node_modules/react-router/dist/react-router.development.js +3 -2
  528. package/node_modules/react-router/dist/react-router.development.js.map +1 -1
  529. package/node_modules/react-router/dist/react-router.production.min.js +2 -2
  530. package/node_modules/react-router/dist/react-router.production.min.js.map +1 -1
  531. package/node_modules/react-router/dist/umd/react-router.development.js +3 -2
  532. package/node_modules/react-router/dist/umd/react-router.development.js.map +1 -1
  533. package/node_modules/react-router/dist/umd/react-router.production.min.js +2 -2
  534. package/node_modules/react-router/dist/umd/react-router.production.min.js.map +1 -1
  535. package/node_modules/react-router/package.json +3 -3
  536. package/node_modules/react-router-dom/CHANGELOG.md +17 -0
  537. package/node_modules/react-router-dom/dist/dom.d.ts +29 -16
  538. package/node_modules/react-router-dom/dist/index.d.ts +18 -6
  539. package/node_modules/react-router-dom/dist/index.js +3 -1
  540. package/node_modules/react-router-dom/dist/index.js.map +1 -1
  541. package/node_modules/react-router-dom/dist/main.js +1 -1
  542. package/node_modules/react-router-dom/dist/react-router-dom.development.js +29 -1
  543. package/node_modules/react-router-dom/dist/react-router-dom.development.js.map +1 -1
  544. package/node_modules/react-router-dom/dist/react-router-dom.production.min.js +2 -2
  545. package/node_modules/react-router-dom/dist/react-router-dom.production.min.js.map +1 -1
  546. package/node_modules/react-router-dom/dist/server.js +4 -1
  547. package/node_modules/react-router-dom/dist/server.mjs +4 -1
  548. package/node_modules/react-router-dom/dist/umd/react-router-dom.development.js +29 -1
  549. package/node_modules/react-router-dom/dist/umd/react-router-dom.development.js.map +1 -1
  550. package/node_modules/react-router-dom/dist/umd/react-router-dom.production.min.js +2 -2
  551. package/node_modules/react-router-dom/dist/umd/react-router-dom.production.min.js.map +1 -1
  552. package/node_modules/react-router-dom/package.json +3 -3
  553. package/node_modules/react-router-dom/server.js +4 -1
  554. package/node_modules/react-router-dom/server.mjs +4 -1
  555. package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/README.md +32 -112
  556. package/node_modules/source-map/dist/source-map.debug.js +3234 -0
  557. package/node_modules/source-map/dist/source-map.js +3233 -0
  558. package/node_modules/source-map/dist/source-map.min.js +2 -0
  559. package/node_modules/source-map/dist/source-map.min.js.map +1 -0
  560. package/node_modules/source-map/lib/array-set.js +121 -0
  561. package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/base64-vlq.js +40 -11
  562. package/node_modules/source-map/lib/base64.js +67 -0
  563. package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/binary-search.js +19 -15
  564. package/node_modules/source-map/lib/mapping-list.js +79 -0
  565. package/node_modules/source-map/lib/quick-sort.js +114 -0
  566. package/node_modules/source-map/lib/source-map-consumer.js +1145 -0
  567. package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/source-map-generator.js +169 -157
  568. package/node_modules/source-map/lib/source-node.js +413 -0
  569. package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/util.js +51 -109
  570. package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/package.json +9 -27
  571. package/node_modules/source-map/source-map.d.ts +98 -0
  572. package/node_modules/source-map/source-map.js +8 -0
  573. package/node_modules/turbo-stream/dist/flatten.d.ts +1 -1
  574. package/node_modules/turbo-stream/dist/flatten.js +44 -9
  575. package/node_modules/turbo-stream/dist/turbo-stream.js +11 -2
  576. package/node_modules/turbo-stream/dist/turbo-stream.mjs +58 -7
  577. package/node_modules/turbo-stream/dist/unflatten.js +2 -0
  578. package/node_modules/turbo-stream/dist/utils.d.ts +1 -0
  579. package/node_modules/turbo-stream/dist/utils.js +2 -1
  580. package/node_modules/turbo-stream/package.json +1 -1
  581. package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/index.d.ts +1 -0
  582. package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/package.json +2 -1
  583. package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/readme.md +1 -0
  584. package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-literal.d.ts +6 -4
  585. package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/merge-deep.d.ts +8 -9
  586. package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/omit-deep.d.ts +3 -3
  587. package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/paths.d.ts +14 -8
  588. package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/schema.d.ts +12 -12
  589. package/node_modules/type-fest/source/simplify-deep.d.ts +115 -0
  590. package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/simplify.d.ts +1 -1
  591. package/package.json +4 -4
  592. package/build/client/assets/_exerciseNumber_.finished-B7SgnqdS.js +0 -2
  593. package/build/client/assets/_exerciseNumber_.finished-B7SgnqdS.js.map +0 -1
  594. package/build/client/assets/_layout-BG1Jwh7V.js +0 -2
  595. package/build/client/assets/_layout-BG1Jwh7V.js.map +0 -1
  596. package/build/client/assets/_layout-BR-Qyofe.js +0 -2
  597. package/build/client/assets/_layout-CNgYirUN.js +0 -2
  598. package/build/client/assets/_layout-CNgYirUN.js.map +0 -1
  599. package/build/client/assets/components-C5xBZAiL.js +0 -119
  600. package/build/client/assets/components-C5xBZAiL.js.map +0 -1
  601. package/build/client/assets/diff-BKsbFB6w.js +0 -42
  602. package/build/client/assets/diff-BKsbFB6w.js.map +0 -1
  603. package/build/client/assets/diff-KDzcgGYL.js +0 -2
  604. package/build/client/assets/discord-Xp0X4-Fl.js +0 -2
  605. package/build/client/assets/discord-Xp0X4-Fl.js.map +0 -1
  606. package/build/client/assets/entry.client-0j1eoieD.js +0 -80
  607. package/build/client/assets/entry.client-0j1eoieD.js.map +0 -1
  608. package/build/client/assets/epic-video-BwtXsHGU.js.map +0 -1
  609. package/build/client/assets/finished-BI2-0Ykt.js +0 -2
  610. package/build/client/assets/finished-BI2-0Ykt.js.map +0 -1
  611. package/build/client/assets/index-Bg9MMnnf.js.map +0 -1
  612. package/build/client/assets/index-D6ygCrVn.js +0 -37
  613. package/build/client/assets/index-D6ygCrVn.js.map +0 -1
  614. package/build/client/assets/index-r90CY6Wk.js +0 -8
  615. package/build/client/assets/index-r90CY6Wk.js.map +0 -1
  616. package/build/client/assets/manifest-f472ec85.js +0 -1
  617. package/build/client/assets/mdx-BYvGbvEr.js +0 -2
  618. package/build/client/assets/misc-DNgC2Frq.js +0 -2
  619. package/build/client/assets/misc-DNgC2Frq.js.map +0 -1
  620. package/build/client/assets/progress-CF9Xwfxf.js +0 -2
  621. package/build/client/assets/progress-CF9Xwfxf.js.map +0 -1
  622. package/build/client/assets/root-BXq0yevS.js.map +0 -1
  623. package/build/client/assets/tailwind-Ck4g-nq0.css +0 -1
  624. package/build/client/assets/tooltip-Kw0lYWBI.js +0 -2
  625. package/build/client/assets/tooltip-Kw0lYWBI.js.map +0 -1
  626. package/node_modules/@babel/runtime/helpers/AsyncGenerator.js +0 -64
  627. package/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js +0 -64
  628. package/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js +0 -10
  629. package/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js +0 -8
  630. package/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js +0 -10
  631. package/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js +0 -8
  632. package/node_modules/@conform-to/dom/rollup.config.js +0 -100
  633. package/node_modules/@conform-to/react/rollup.config.js +0 -102
  634. package/node_modules/@conform-to/zod/rollup.config.js +0 -100
  635. package/node_modules/@radix-ui/number/dist/index.d.ts.map +0 -1
  636. package/node_modules/@radix-ui/primitive/dist/index.d.ts.map +0 -1
  637. package/node_modules/@radix-ui/react-accordion/dist/index.d.ts.map +0 -1
  638. package/node_modules/@radix-ui/react-arrow/dist/index.d.ts.map +0 -1
  639. package/node_modules/@radix-ui/react-collapsible/dist/index.d.ts.map +0 -1
  640. package/node_modules/@radix-ui/react-collection/dist/index.d.ts.map +0 -1
  641. package/node_modules/@radix-ui/react-compose-refs/dist/index.d.ts.map +0 -1
  642. package/node_modules/@radix-ui/react-context/dist/index.d.ts.map +0 -1
  643. package/node_modules/@radix-ui/react-direction/dist/index.d.ts.map +0 -1
  644. package/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.ts.map +0 -1
  645. package/node_modules/@radix-ui/react-focus-guards/dist/index.d.ts.map +0 -1
  646. package/node_modules/@radix-ui/react-focus-scope/dist/index.d.ts.map +0 -1
  647. package/node_modules/@radix-ui/react-id/dist/index.d.ts.map +0 -1
  648. package/node_modules/@radix-ui/react-popover/dist/index.d.ts.map +0 -1
  649. package/node_modules/@radix-ui/react-popper/dist/index.d.ts.map +0 -1
  650. package/node_modules/@radix-ui/react-portal/dist/index.d.ts.map +0 -1
  651. package/node_modules/@radix-ui/react-presence/dist/index.d.ts.map +0 -1
  652. package/node_modules/@radix-ui/react-primitive/dist/index.d.ts.map +0 -1
  653. package/node_modules/@radix-ui/react-roving-focus/dist/index.d.ts.map +0 -1
  654. package/node_modules/@radix-ui/react-select/dist/index.d.ts.map +0 -1
  655. package/node_modules/@radix-ui/react-slot/dist/index.d.ts.map +0 -1
  656. package/node_modules/@radix-ui/react-tabs/dist/index.d.ts.map +0 -1
  657. package/node_modules/@radix-ui/react-toast/dist/index.d.ts.map +0 -1
  658. package/node_modules/@radix-ui/react-use-callback-ref/dist/index.d.ts.map +0 -1
  659. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.ts.map +0 -1
  660. package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.d.ts.map +0 -1
  661. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.ts.map +0 -1
  662. package/node_modules/@radix-ui/react-use-previous/dist/index.d.ts.map +0 -1
  663. package/node_modules/@radix-ui/react-use-rect/dist/index.d.ts.map +0 -1
  664. package/node_modules/@radix-ui/react-use-size/dist/index.d.ts.map +0 -1
  665. package/node_modules/@radix-ui/react-visually-hidden/dist/index.d.ts.map +0 -1
  666. package/node_modules/@radix-ui/rect/dist/index.d.ts.map +0 -1
  667. package/node_modules/@remix-run/server-runtime/node_modules/source-map/dist/source-map.js +0 -1
  668. package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/array-set.js +0 -100
  669. package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/base64.js +0 -18
  670. package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/mapping-list.js +0 -80
  671. package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/source-map-consumer.js +0 -1237
  672. package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/source-node.js +0 -404
  673. package/node_modules/@remix-run/server-runtime/node_modules/source-map/source-map.d.ts +0 -369
  674. package/node_modules/@remix-run/server-runtime/node_modules/source-map/source-map.js +0 -8
  675. package/node_modules/framer-motion/dist/projection.dev.js +0 -6659
  676. /package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/LICENSE +0 -0
  677. /package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/mappings.wasm +0 -0
  678. /package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/read-wasm.js +0 -0
  679. /package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/wasm.js +0 -0
  680. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/and.d.ts +0 -0
  681. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/array-indices.d.ts +0 -0
  682. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/array-slice.d.ts +0 -0
  683. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/array-splice.d.ts +0 -0
  684. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/array-values.d.ts +0 -0
  685. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/async-return-type.d.ts +0 -0
  686. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/asyncify.d.ts +0 -0
  687. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/basic.d.ts +0 -0
  688. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/camel-case.d.ts +0 -0
  689. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/camel-cased-properties-deep.d.ts +0 -0
  690. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/camel-cased-properties.d.ts +0 -0
  691. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-except.d.ts +0 -0
  692. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-keys.d.ts +0 -0
  693. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-pick-deep.d.ts +0 -0
  694. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-pick.d.ts +0 -0
  695. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-simplify.d.ts +0 -0
  696. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/delimiter-case.d.ts +0 -0
  697. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/delimiter-cased-properties-deep.d.ts +0 -0
  698. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/delimiter-cased-properties.d.ts +0 -0
  699. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/distributed-omit.d.ts +0 -0
  700. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/distributed-pick.d.ts +0 -0
  701. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/empty-object.d.ts +0 -0
  702. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/enforce-optional.d.ts +0 -0
  703. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/entries.d.ts +0 -0
  704. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/entry.d.ts +0 -0
  705. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/exact.d.ts +0 -0
  706. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/except.d.ts +0 -0
  707. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/fixed-length-array.d.ts +0 -0
  708. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/get.d.ts +0 -0
  709. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/global-this.d.ts +0 -0
  710. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/greater-than-or-equal.d.ts +0 -0
  711. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/greater-than.d.ts +0 -0
  712. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/has-optional-keys.d.ts +0 -0
  713. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/has-readonly-keys.d.ts +0 -0
  714. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/has-required-keys.d.ts +0 -0
  715. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/has-writable-keys.d.ts +0 -0
  716. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-any.d.ts +0 -0
  717. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-empty-object.d.ts +0 -0
  718. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-never.d.ts +0 -0
  719. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-null.d.ts +0 -0
  720. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-unknown.d.ts +0 -0
  721. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/includes.d.ts +0 -0
  722. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/int-range.d.ts +0 -0
  723. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/internal.d.ts +0 -0
  724. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/invariant-of.d.ts +0 -0
  725. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-any.d.ts +0 -0
  726. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-equal.d.ts +0 -0
  727. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-float.d.ts +0 -0
  728. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-integer.d.ts +0 -0
  729. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-never.d.ts +0 -0
  730. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-null.d.ts +0 -0
  731. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-unknown.d.ts +0 -0
  732. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/iterable-element.d.ts +0 -0
  733. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/join.d.ts +0 -0
  734. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/jsonifiable.d.ts +0 -0
  735. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/jsonify.d.ts +0 -0
  736. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/kebab-case.d.ts +0 -0
  737. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/kebab-cased-properties-deep.d.ts +0 -0
  738. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/kebab-cased-properties.d.ts +0 -0
  739. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/keys-of-union.d.ts +0 -0
  740. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/last-array-element.d.ts +0 -0
  741. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/less-than-or-equal.d.ts +0 -0
  742. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/less-than.d.ts +0 -0
  743. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/literal-to-primitive-deep.d.ts +0 -0
  744. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/literal-to-primitive.d.ts +0 -0
  745. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/literal-union.d.ts +0 -0
  746. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/merge-exclusive.d.ts +0 -0
  747. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/merge.d.ts +0 -0
  748. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/multidimensional-array.d.ts +0 -0
  749. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/multidimensional-readonly-array.d.ts +0 -0
  750. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/non-empty-object.d.ts +0 -0
  751. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/numeric.d.ts +0 -0
  752. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/observable-like.d.ts +0 -0
  753. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/omit-index-signature.d.ts +0 -0
  754. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/opaque.d.ts +0 -0
  755. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/optional-keys-of.d.ts +0 -0
  756. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/or.d.ts +0 -0
  757. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/override-properties.d.ts +0 -0
  758. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/package-json.d.ts +0 -0
  759. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/partial-deep.d.ts +0 -0
  760. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/partial-on-undefined-deep.d.ts +0 -0
  761. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pascal-case.d.ts +0 -0
  762. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pascal-cased-properties-deep.d.ts +0 -0
  763. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pascal-cased-properties.d.ts +0 -0
  764. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pick-deep.d.ts +0 -0
  765. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pick-index-signature.d.ts +0 -0
  766. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/primitive.d.ts +0 -0
  767. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/promisable.d.ts +0 -0
  768. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/readonly-deep.d.ts +0 -0
  769. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/readonly-keys-of.d.ts +0 -0
  770. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/readonly-tuple.d.ts +0 -0
  771. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/replace.d.ts +0 -0
  772. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/require-all-or-none.d.ts +0 -0
  773. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/require-at-least-one.d.ts +0 -0
  774. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/require-exactly-one.d.ts +0 -0
  775. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/require-one-or-none.d.ts +0 -0
  776. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/required-deep.d.ts +0 -0
  777. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/required-keys-of.d.ts +0 -0
  778. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/screaming-snake-case.d.ts +0 -0
  779. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-field-type.d.ts +0 -0
  780. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-non-nullable.d.ts +0 -0
  781. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-optional.d.ts +0 -0
  782. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-parameter-type.d.ts +0 -0
  783. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-readonly.d.ts +0 -0
  784. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-required.d.ts +0 -0
  785. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-return-type.d.ts +0 -0
  786. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/shared-union-fields-deep.d.ts +0 -0
  787. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/single-key-object.d.ts +0 -0
  788. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/snake-case.d.ts +0 -0
  789. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/snake-cased-properties-deep.d.ts +0 -0
  790. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/snake-cased-properties.d.ts +0 -0
  791. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/split-words.d.ts +0 -0
  792. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/split.d.ts +0 -0
  793. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/spread.d.ts +0 -0
  794. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/string-key-of.d.ts +0 -0
  795. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/string-slice.d.ts +0 -0
  796. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/stringified.d.ts +0 -0
  797. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/subtract.d.ts +0 -0
  798. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/sum.d.ts +0 -0
  799. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/tagged-union.d.ts +0 -0
  800. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/trim.d.ts +0 -0
  801. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/tsconfig-json.d.ts +0 -0
  802. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/tuple-to-union.d.ts +0 -0
  803. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/typed-array.d.ts +0 -0
  804. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/undefined-on-partial-deep.d.ts +0 -0
  805. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/union-to-intersection.d.ts +0 -0
  806. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/unknown-array.d.ts +0 -0
  807. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/unknown-record.d.ts +0 -0
  808. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/value-of.d.ts +0 -0
  809. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/writable-deep.d.ts +0 -0
  810. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/writable-keys-of.d.ts +0 -0
  811. /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/writable.d.ts +0 -0
@@ -1,751 +1,681 @@
1
- var $iTyic$babelruntimehelpersextends = require("@babel/runtime/helpers/extends");
2
- var $iTyic$react = require("react");
3
- var $iTyic$reactdom = require("react-dom");
4
- var $iTyic$radixuiprimitive = require("@radix-ui/primitive");
5
- var $iTyic$radixuireactcomposerefs = require("@radix-ui/react-compose-refs");
6
- var $iTyic$radixuireactcollection = require("@radix-ui/react-collection");
7
- var $iTyic$radixuireactcontext = require("@radix-ui/react-context");
8
- var $iTyic$radixuireactdismissablelayer = require("@radix-ui/react-dismissable-layer");
9
- var $iTyic$radixuireactportal = require("@radix-ui/react-portal");
10
- var $iTyic$radixuireactpresence = require("@radix-ui/react-presence");
11
- var $iTyic$radixuireactprimitive = require("@radix-ui/react-primitive");
12
- var $iTyic$radixuireactusecallbackref = require("@radix-ui/react-use-callback-ref");
13
- var $iTyic$radixuireactusecontrollablestate = require("@radix-ui/react-use-controllable-state");
14
- var $iTyic$radixuireactuselayouteffect = require("@radix-ui/react-use-layout-effect");
15
- var $iTyic$radixuireactvisuallyhidden = require("@radix-ui/react-visually-hidden");
16
-
17
- function $parcel$export(e, n, v, s) {
18
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
19
- }
20
- function $parcel$interopDefault(a) {
21
- return a && a.__esModule ? a.default : a;
22
- }
23
-
24
- $parcel$export(module.exports, "createToastScope", () => $9208a85b3e79d33f$export$8a359da18fbc9073);
25
- $parcel$export(module.exports, "ToastProvider", () => $9208a85b3e79d33f$export$f5d03d415824e0e);
26
- $parcel$export(module.exports, "ToastViewport", () => $9208a85b3e79d33f$export$6192c2425ecfd989);
27
- $parcel$export(module.exports, "Toast", () => $9208a85b3e79d33f$export$8d8dc7d5f743331b);
28
- $parcel$export(module.exports, "ToastTitle", () => $9208a85b3e79d33f$export$16d42d7c29b95a4);
29
- $parcel$export(module.exports, "ToastDescription", () => $9208a85b3e79d33f$export$ecddd96c53621d9a);
30
- $parcel$export(module.exports, "ToastAction", () => $9208a85b3e79d33f$export$3019feecfda683d2);
31
- $parcel$export(module.exports, "ToastClose", () => $9208a85b3e79d33f$export$811e70f61c205839);
32
- $parcel$export(module.exports, "Provider", () => $9208a85b3e79d33f$export$2881499e37b75b9a);
33
- $parcel$export(module.exports, "Viewport", () => $9208a85b3e79d33f$export$d5c6c08dc2d3ca7);
34
- $parcel$export(module.exports, "Root", () => $9208a85b3e79d33f$export$be92b6f5f03c0fe9);
35
- $parcel$export(module.exports, "Title", () => $9208a85b3e79d33f$export$f99233281efd08a0);
36
- $parcel$export(module.exports, "Description", () => $9208a85b3e79d33f$export$393edc798c47379d);
37
- $parcel$export(module.exports, "Action", () => $9208a85b3e79d33f$export$e19cd5f9376f8cee);
38
- $parcel$export(module.exports, "Close", () => $9208a85b3e79d33f$export$f39c2d165cd861fe);
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
1
+ "use strict";
2
+ "use client";
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
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
52
30
 
31
+ // packages/react/toast/src/index.ts
32
+ var src_exports = {};
33
+ __export(src_exports, {
34
+ Action: () => Action,
35
+ Close: () => Close,
36
+ Description: () => Description,
37
+ Provider: () => Provider,
38
+ Root: () => Root2,
39
+ Title: () => Title,
40
+ Toast: () => Toast,
41
+ ToastAction: () => ToastAction,
42
+ ToastClose: () => ToastClose,
43
+ ToastDescription: () => ToastDescription,
44
+ ToastProvider: () => ToastProvider,
45
+ ToastTitle: () => ToastTitle,
46
+ ToastViewport: () => ToastViewport,
47
+ Viewport: () => Viewport,
48
+ createToastScope: () => createToastScope
49
+ });
50
+ module.exports = __toCommonJS(src_exports);
53
51
 
54
- /* -------------------------------------------------------------------------------------------------
55
- * ToastProvider
56
- * -----------------------------------------------------------------------------------------------*/ const $9208a85b3e79d33f$var$PROVIDER_NAME = 'ToastProvider';
57
- const [$9208a85b3e79d33f$var$Collection, $9208a85b3e79d33f$var$useCollection, $9208a85b3e79d33f$var$createCollectionScope] = $iTyic$radixuireactcollection.createCollection('Toast');
58
- const [$9208a85b3e79d33f$var$createToastContext, $9208a85b3e79d33f$export$8a359da18fbc9073] = $iTyic$radixuireactcontext.createContextScope('Toast', [
59
- $9208a85b3e79d33f$var$createCollectionScope
60
- ]);
61
- const [$9208a85b3e79d33f$var$ToastProviderProvider, $9208a85b3e79d33f$var$useToastProviderContext] = $9208a85b3e79d33f$var$createToastContext($9208a85b3e79d33f$var$PROVIDER_NAME);
62
- const $9208a85b3e79d33f$export$f5d03d415824e0e = (props)=>{
63
- const { __scopeToast: __scopeToast , label: label = 'Notification' , duration: duration = 5000 , swipeDirection: swipeDirection = 'right' , swipeThreshold: swipeThreshold = 50 , children: children } = props;
64
- const [viewport, setViewport] = $iTyic$react.useState(null);
65
- const [toastCount, setToastCount] = $iTyic$react.useState(0);
66
- const isFocusedToastEscapeKeyDownRef = $iTyic$react.useRef(false);
67
- const isClosePausedRef = $iTyic$react.useRef(false);
68
- return /*#__PURE__*/ $iTyic$react.createElement($9208a85b3e79d33f$var$Collection.Provider, {
69
- scope: __scopeToast
70
- }, /*#__PURE__*/ $iTyic$react.createElement($9208a85b3e79d33f$var$ToastProviderProvider, {
71
- scope: __scopeToast,
72
- label: label,
73
- duration: duration,
74
- swipeDirection: swipeDirection,
75
- swipeThreshold: swipeThreshold,
76
- toastCount: toastCount,
77
- viewport: viewport,
78
- onViewportChange: setViewport,
79
- onToastAdd: $iTyic$react.useCallback(()=>setToastCount((prevCount)=>prevCount + 1
80
- )
81
- , []),
82
- onToastRemove: $iTyic$react.useCallback(()=>setToastCount((prevCount)=>prevCount - 1
83
- )
84
- , []),
85
- isFocusedToastEscapeKeyDownRef: isFocusedToastEscapeKeyDownRef,
86
- isClosePausedRef: isClosePausedRef
87
- }, children));
88
- };
89
- $9208a85b3e79d33f$export$f5d03d415824e0e.propTypes = {
90
- label (props) {
91
- if (props.label && typeof props.label === 'string' && !props.label.trim()) {
92
- const error = `Invalid prop \`label\` supplied to \`${$9208a85b3e79d33f$var$PROVIDER_NAME}\`. Expected non-empty \`string\`.`;
93
- return new Error(error);
94
- }
95
- return null;
52
+ // packages/react/toast/src/Toast.tsx
53
+ var React = __toESM(require("react"));
54
+ var ReactDOM = __toESM(require("react-dom"));
55
+ var import_primitive = require("@radix-ui/primitive");
56
+ var import_react_compose_refs = require("@radix-ui/react-compose-refs");
57
+ var import_react_collection = require("@radix-ui/react-collection");
58
+ var import_react_context = require("@radix-ui/react-context");
59
+ var DismissableLayer = __toESM(require("@radix-ui/react-dismissable-layer"));
60
+ var import_react_portal = require("@radix-ui/react-portal");
61
+ var import_react_presence = require("@radix-ui/react-presence");
62
+ var import_react_primitive = require("@radix-ui/react-primitive");
63
+ var import_react_use_callback_ref = require("@radix-ui/react-use-callback-ref");
64
+ var import_react_use_controllable_state = require("@radix-ui/react-use-controllable-state");
65
+ var import_react_use_layout_effect = require("@radix-ui/react-use-layout-effect");
66
+ var import_react_visually_hidden = require("@radix-ui/react-visually-hidden");
67
+ var import_jsx_runtime = require("react/jsx-runtime");
68
+ var PROVIDER_NAME = "ToastProvider";
69
+ var [Collection, useCollection, createCollectionScope] = (0, import_react_collection.createCollection)("Toast");
70
+ var [createToastContext, createToastScope] = (0, import_react_context.createContextScope)("Toast", [createCollectionScope]);
71
+ var [ToastProviderProvider, useToastProviderContext] = createToastContext(PROVIDER_NAME);
72
+ var ToastProvider = (props) => {
73
+ const {
74
+ __scopeToast,
75
+ label = "Notification",
76
+ duration = 5e3,
77
+ swipeDirection = "right",
78
+ swipeThreshold = 50,
79
+ children
80
+ } = props;
81
+ const [viewport, setViewport] = React.useState(null);
82
+ const [toastCount, setToastCount] = React.useState(0);
83
+ const isFocusedToastEscapeKeyDownRef = React.useRef(false);
84
+ const isClosePausedRef = React.useRef(false);
85
+ if (!label.trim()) {
86
+ console.error(
87
+ `Invalid prop \`label\` supplied to \`${PROVIDER_NAME}\`. Expected non-empty \`string\`.`
88
+ );
89
+ }
90
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.Provider, { scope: __scopeToast, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
91
+ ToastProviderProvider,
92
+ {
93
+ scope: __scopeToast,
94
+ label,
95
+ duration,
96
+ swipeDirection,
97
+ swipeThreshold,
98
+ toastCount,
99
+ viewport,
100
+ onViewportChange: setViewport,
101
+ onToastAdd: React.useCallback(() => setToastCount((prevCount) => prevCount + 1), []),
102
+ onToastRemove: React.useCallback(() => setToastCount((prevCount) => prevCount - 1), []),
103
+ isFocusedToastEscapeKeyDownRef,
104
+ isClosePausedRef,
105
+ children
96
106
  }
107
+ ) });
97
108
  };
98
- /*#__PURE__*/ Object.assign($9208a85b3e79d33f$export$f5d03d415824e0e, {
99
- displayName: $9208a85b3e79d33f$var$PROVIDER_NAME
100
- });
101
- /* -------------------------------------------------------------------------------------------------
102
- * ToastViewport
103
- * -----------------------------------------------------------------------------------------------*/ const $9208a85b3e79d33f$var$VIEWPORT_NAME = 'ToastViewport';
104
- const $9208a85b3e79d33f$var$VIEWPORT_DEFAULT_HOTKEY = [
105
- 'F8'
106
- ];
107
- const $9208a85b3e79d33f$var$VIEWPORT_PAUSE = 'toast.viewportPause';
108
- const $9208a85b3e79d33f$var$VIEWPORT_RESUME = 'toast.viewportResume';
109
- const $9208a85b3e79d33f$export$6192c2425ecfd989 = /*#__PURE__*/ $iTyic$react.forwardRef((props, forwardedRef)=>{
110
- const { __scopeToast: __scopeToast , hotkey: hotkey = $9208a85b3e79d33f$var$VIEWPORT_DEFAULT_HOTKEY , label: label = 'Notifications ({hotkey})' , ...viewportProps } = props;
111
- const context = $9208a85b3e79d33f$var$useToastProviderContext($9208a85b3e79d33f$var$VIEWPORT_NAME, __scopeToast);
112
- const getItems = $9208a85b3e79d33f$var$useCollection(__scopeToast);
113
- const wrapperRef = $iTyic$react.useRef(null);
114
- const headFocusProxyRef = $iTyic$react.useRef(null);
115
- const tailFocusProxyRef = $iTyic$react.useRef(null);
116
- const ref = $iTyic$react.useRef(null);
117
- const composedRefs = $iTyic$radixuireactcomposerefs.useComposedRefs(forwardedRef, ref, context.onViewportChange);
118
- const hotkeyLabel = hotkey.join('+').replace(/Key/g, '').replace(/Digit/g, '');
109
+ ToastProvider.displayName = PROVIDER_NAME;
110
+ var VIEWPORT_NAME = "ToastViewport";
111
+ var VIEWPORT_DEFAULT_HOTKEY = ["F8"];
112
+ var VIEWPORT_PAUSE = "toast.viewportPause";
113
+ var VIEWPORT_RESUME = "toast.viewportResume";
114
+ var ToastViewport = React.forwardRef(
115
+ (props, forwardedRef) => {
116
+ const {
117
+ __scopeToast,
118
+ hotkey = VIEWPORT_DEFAULT_HOTKEY,
119
+ label = "Notifications ({hotkey})",
120
+ ...viewportProps
121
+ } = props;
122
+ const context = useToastProviderContext(VIEWPORT_NAME, __scopeToast);
123
+ const getItems = useCollection(__scopeToast);
124
+ const wrapperRef = React.useRef(null);
125
+ const headFocusProxyRef = React.useRef(null);
126
+ const tailFocusProxyRef = React.useRef(null);
127
+ const ref = React.useRef(null);
128
+ const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, ref, context.onViewportChange);
129
+ const hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, "");
119
130
  const hasToasts = context.toastCount > 0;
120
- $iTyic$react.useEffect(()=>{
121
- const handleKeyDown = (event)=>{
122
- var _ref$current;
123
- // we use `event.code` as it is consistent regardless of meta keys that were pressed.
124
- // for example, `event.key` for `Control+Alt+t` is `†` and `t !== †`
125
- const isHotkeyPressed = hotkey.every((key)=>event[key] || event.code === key
126
- );
127
- if (isHotkeyPressed) (_ref$current = ref.current) === null || _ref$current === void 0 || _ref$current.focus();
131
+ React.useEffect(() => {
132
+ const handleKeyDown = (event) => {
133
+ const isHotkeyPressed = hotkey.every((key) => event[key] || event.code === key);
134
+ if (isHotkeyPressed) ref.current?.focus();
135
+ };
136
+ document.addEventListener("keydown", handleKeyDown);
137
+ return () => document.removeEventListener("keydown", handleKeyDown);
138
+ }, [hotkey]);
139
+ React.useEffect(() => {
140
+ const wrapper = wrapperRef.current;
141
+ const viewport = ref.current;
142
+ if (hasToasts && wrapper && viewport) {
143
+ const handlePause = () => {
144
+ if (!context.isClosePausedRef.current) {
145
+ const pauseEvent = new CustomEvent(VIEWPORT_PAUSE);
146
+ viewport.dispatchEvent(pauseEvent);
147
+ context.isClosePausedRef.current = true;
148
+ }
128
149
  };
129
- document.addEventListener('keydown', handleKeyDown);
130
- return ()=>document.removeEventListener('keydown', handleKeyDown)
131
- ;
132
- }, [
133
- hotkey
134
- ]);
135
- $iTyic$react.useEffect(()=>{
136
- const wrapper = wrapperRef.current;
137
- const viewport = ref.current;
138
- if (hasToasts && wrapper && viewport) {
139
- const handlePause = ()=>{
140
- if (!context.isClosePausedRef.current) {
141
- const pauseEvent = new CustomEvent($9208a85b3e79d33f$var$VIEWPORT_PAUSE);
142
- viewport.dispatchEvent(pauseEvent);
143
- context.isClosePausedRef.current = true;
144
- }
145
- };
146
- const handleResume = ()=>{
147
- if (context.isClosePausedRef.current) {
148
- const resumeEvent = new CustomEvent($9208a85b3e79d33f$var$VIEWPORT_RESUME);
149
- viewport.dispatchEvent(resumeEvent);
150
- context.isClosePausedRef.current = false;
151
- }
152
- };
153
- const handleFocusOutResume = (event)=>{
154
- const isFocusMovingOutside = !wrapper.contains(event.relatedTarget);
155
- if (isFocusMovingOutside) handleResume();
156
- };
157
- const handlePointerLeaveResume = ()=>{
158
- const isFocusInside = wrapper.contains(document.activeElement);
159
- if (!isFocusInside) handleResume();
160
- }; // Toasts are not in the viewport React tree so we need to bind DOM events
161
- wrapper.addEventListener('focusin', handlePause);
162
- wrapper.addEventListener('focusout', handleFocusOutResume);
163
- wrapper.addEventListener('pointermove', handlePause);
164
- wrapper.addEventListener('pointerleave', handlePointerLeaveResume);
165
- window.addEventListener('blur', handlePause);
166
- window.addEventListener('focus', handleResume);
167
- return ()=>{
168
- wrapper.removeEventListener('focusin', handlePause);
169
- wrapper.removeEventListener('focusout', handleFocusOutResume);
170
- wrapper.removeEventListener('pointermove', handlePause);
171
- wrapper.removeEventListener('pointerleave', handlePointerLeaveResume);
172
- window.removeEventListener('blur', handlePause);
173
- window.removeEventListener('focus', handleResume);
174
- };
175
- }
176
- }, [
177
- hasToasts,
178
- context.isClosePausedRef
179
- ]);
180
- const getSortedTabbableCandidates = $iTyic$react.useCallback(({ tabbingDirection: tabbingDirection })=>{
150
+ const handleResume = () => {
151
+ if (context.isClosePausedRef.current) {
152
+ const resumeEvent = new CustomEvent(VIEWPORT_RESUME);
153
+ viewport.dispatchEvent(resumeEvent);
154
+ context.isClosePausedRef.current = false;
155
+ }
156
+ };
157
+ const handleFocusOutResume = (event) => {
158
+ const isFocusMovingOutside = !wrapper.contains(event.relatedTarget);
159
+ if (isFocusMovingOutside) handleResume();
160
+ };
161
+ const handlePointerLeaveResume = () => {
162
+ const isFocusInside = wrapper.contains(document.activeElement);
163
+ if (!isFocusInside) handleResume();
164
+ };
165
+ wrapper.addEventListener("focusin", handlePause);
166
+ wrapper.addEventListener("focusout", handleFocusOutResume);
167
+ wrapper.addEventListener("pointermove", handlePause);
168
+ wrapper.addEventListener("pointerleave", handlePointerLeaveResume);
169
+ window.addEventListener("blur", handlePause);
170
+ window.addEventListener("focus", handleResume);
171
+ return () => {
172
+ wrapper.removeEventListener("focusin", handlePause);
173
+ wrapper.removeEventListener("focusout", handleFocusOutResume);
174
+ wrapper.removeEventListener("pointermove", handlePause);
175
+ wrapper.removeEventListener("pointerleave", handlePointerLeaveResume);
176
+ window.removeEventListener("blur", handlePause);
177
+ window.removeEventListener("focus", handleResume);
178
+ };
179
+ }
180
+ }, [hasToasts, context.isClosePausedRef]);
181
+ const getSortedTabbableCandidates = React.useCallback(
182
+ ({ tabbingDirection }) => {
181
183
  const toastItems = getItems();
182
- const tabbableCandidates = toastItems.map((toastItem)=>{
183
- const toastNode = toastItem.ref.current;
184
- const toastTabbableCandidates = [
185
- toastNode,
186
- ...$9208a85b3e79d33f$var$getTabbableCandidates(toastNode)
187
- ];
188
- return tabbingDirection === 'forwards' ? toastTabbableCandidates : toastTabbableCandidates.reverse();
184
+ const tabbableCandidates = toastItems.map((toastItem) => {
185
+ const toastNode = toastItem.ref.current;
186
+ const toastTabbableCandidates = [toastNode, ...getTabbableCandidates(toastNode)];
187
+ return tabbingDirection === "forwards" ? toastTabbableCandidates : toastTabbableCandidates.reverse();
189
188
  });
190
- return (tabbingDirection === 'forwards' ? tabbableCandidates.reverse() : tabbableCandidates).flat();
191
- }, [
192
- getItems
193
- ]);
194
- $iTyic$react.useEffect(()=>{
195
- const viewport = ref.current; // We programmatically manage tabbing as we are unable to influence
196
- // the source order with portals, this allows us to reverse the
197
- // tab order so that it runs from most recent toast to least
198
- if (viewport) {
199
- const handleKeyDown = (event)=>{
200
- const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;
201
- const isTabKey = event.key === 'Tab' && !isMetaKey;
202
- if (isTabKey) {
203
- const focusedElement = document.activeElement;
204
- const isTabbingBackwards = event.shiftKey;
205
- const targetIsViewport = event.target === viewport; // If we're back tabbing after jumping to the viewport then we simply
206
- // proxy focus out to the preceding document
207
- if (targetIsViewport && isTabbingBackwards) {
208
- var _headFocusProxyRef$cu;
209
- (_headFocusProxyRef$cu = headFocusProxyRef.current) === null || _headFocusProxyRef$cu === void 0 || _headFocusProxyRef$cu.focus();
210
- return;
211
- }
212
- const tabbingDirection = isTabbingBackwards ? 'backwards' : 'forwards';
213
- const sortedCandidates = getSortedTabbableCandidates({
214
- tabbingDirection: tabbingDirection
215
- });
216
- const index = sortedCandidates.findIndex((candidate)=>candidate === focusedElement
217
- );
218
- if ($9208a85b3e79d33f$var$focusFirst(sortedCandidates.slice(index + 1))) event.preventDefault();
219
- else {
220
- var _headFocusProxyRef$cu2, _tailFocusProxyRef$cu;
221
- // If we can't focus that means we're at the edges so we
222
- // proxy to the corresponding exit point and let the browser handle
223
- // tab/shift+tab keypress and implicitly pass focus to the next valid element in the document
224
- isTabbingBackwards ? (_headFocusProxyRef$cu2 = headFocusProxyRef.current) === null || _headFocusProxyRef$cu2 === void 0 || _headFocusProxyRef$cu2.focus() : (_tailFocusProxyRef$cu = tailFocusProxyRef.current) === null || _tailFocusProxyRef$cu === void 0 || _tailFocusProxyRef$cu.focus();
225
- }
226
- }
227
- }; // Toasts are not in the viewport React tree so we need to bind DOM events
228
- viewport.addEventListener('keydown', handleKeyDown);
229
- return ()=>viewport.removeEventListener('keydown', handleKeyDown)
230
- ;
231
- }
232
- }, [
233
- getItems,
234
- getSortedTabbableCandidates
235
- ]);
236
- return /*#__PURE__*/ $iTyic$react.createElement($iTyic$radixuireactdismissablelayer.Branch, {
189
+ return (tabbingDirection === "forwards" ? tabbableCandidates.reverse() : tabbableCandidates).flat();
190
+ },
191
+ [getItems]
192
+ );
193
+ React.useEffect(() => {
194
+ const viewport = ref.current;
195
+ if (viewport) {
196
+ const handleKeyDown = (event) => {
197
+ const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;
198
+ const isTabKey = event.key === "Tab" && !isMetaKey;
199
+ if (isTabKey) {
200
+ const focusedElement = document.activeElement;
201
+ const isTabbingBackwards = event.shiftKey;
202
+ const targetIsViewport = event.target === viewport;
203
+ if (targetIsViewport && isTabbingBackwards) {
204
+ headFocusProxyRef.current?.focus();
205
+ return;
206
+ }
207
+ const tabbingDirection = isTabbingBackwards ? "backwards" : "forwards";
208
+ const sortedCandidates = getSortedTabbableCandidates({ tabbingDirection });
209
+ const index = sortedCandidates.findIndex((candidate) => candidate === focusedElement);
210
+ if (focusFirst(sortedCandidates.slice(index + 1))) {
211
+ event.preventDefault();
212
+ } else {
213
+ isTabbingBackwards ? headFocusProxyRef.current?.focus() : tailFocusProxyRef.current?.focus();
214
+ }
215
+ }
216
+ };
217
+ viewport.addEventListener("keydown", handleKeyDown);
218
+ return () => viewport.removeEventListener("keydown", handleKeyDown);
219
+ }
220
+ }, [getItems, getSortedTabbableCandidates]);
221
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
222
+ DismissableLayer.Branch,
223
+ {
237
224
  ref: wrapperRef,
238
225
  role: "region",
239
- "aria-label": label.replace('{hotkey}', hotkeyLabel) // Ensure virtual cursor from landmarks menus triggers focus/blur for pause/resume
240
- ,
241
- tabIndex: -1 // incase list has size when empty (e.g. padding), we remove pointer events so
242
- ,
243
- style: {
244
- pointerEvents: hasToasts ? undefined : 'none'
245
- }
246
- }, hasToasts && /*#__PURE__*/ $iTyic$react.createElement($9208a85b3e79d33f$var$FocusProxy, {
247
- ref: headFocusProxyRef,
248
- onFocusFromOutsideViewport: ()=>{
249
- const tabbableCandidates = getSortedTabbableCandidates({
250
- tabbingDirection: 'forwards'
251
- });
252
- $9208a85b3e79d33f$var$focusFirst(tabbableCandidates);
253
- }
254
- }), /*#__PURE__*/ $iTyic$react.createElement($9208a85b3e79d33f$var$Collection.Slot, {
255
- scope: __scopeToast
256
- }, /*#__PURE__*/ $iTyic$react.createElement($iTyic$radixuireactprimitive.Primitive.ol, ($parcel$interopDefault($iTyic$babelruntimehelpersextends))({
257
- tabIndex: -1
258
- }, viewportProps, {
259
- ref: composedRefs
260
- }))), hasToasts && /*#__PURE__*/ $iTyic$react.createElement($9208a85b3e79d33f$var$FocusProxy, {
261
- ref: tailFocusProxyRef,
262
- onFocusFromOutsideViewport: ()=>{
263
- const tabbableCandidates = getSortedTabbableCandidates({
264
- tabbingDirection: 'backwards'
265
- });
266
- $9208a85b3e79d33f$var$focusFirst(tabbableCandidates);
267
- }
268
- }));
269
- });
270
- /*#__PURE__*/ Object.assign($9208a85b3e79d33f$export$6192c2425ecfd989, {
271
- displayName: $9208a85b3e79d33f$var$VIEWPORT_NAME
272
- });
273
- /* -----------------------------------------------------------------------------------------------*/ const $9208a85b3e79d33f$var$FOCUS_PROXY_NAME = 'ToastFocusProxy';
274
- const $9208a85b3e79d33f$var$FocusProxy = /*#__PURE__*/ $iTyic$react.forwardRef((props, forwardedRef)=>{
275
- const { __scopeToast: __scopeToast , onFocusFromOutsideViewport: onFocusFromOutsideViewport , ...proxyProps } = props;
276
- const context = $9208a85b3e79d33f$var$useToastProviderContext($9208a85b3e79d33f$var$FOCUS_PROXY_NAME, __scopeToast);
277
- return /*#__PURE__*/ $iTyic$react.createElement($iTyic$radixuireactvisuallyhidden.VisuallyHidden, ($parcel$interopDefault($iTyic$babelruntimehelpersextends))({
226
+ "aria-label": label.replace("{hotkey}", hotkeyLabel),
227
+ tabIndex: -1,
228
+ style: { pointerEvents: hasToasts ? void 0 : "none" },
229
+ children: [
230
+ hasToasts && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
231
+ FocusProxy,
232
+ {
233
+ ref: headFocusProxyRef,
234
+ onFocusFromOutsideViewport: () => {
235
+ const tabbableCandidates = getSortedTabbableCandidates({
236
+ tabbingDirection: "forwards"
237
+ });
238
+ focusFirst(tabbableCandidates);
239
+ }
240
+ }
241
+ ),
242
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.Slot, { scope: __scopeToast, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_primitive.Primitive.ol, { tabIndex: -1, ...viewportProps, ref: composedRefs }) }),
243
+ hasToasts && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
244
+ FocusProxy,
245
+ {
246
+ ref: tailFocusProxyRef,
247
+ onFocusFromOutsideViewport: () => {
248
+ const tabbableCandidates = getSortedTabbableCandidates({
249
+ tabbingDirection: "backwards"
250
+ });
251
+ focusFirst(tabbableCandidates);
252
+ }
253
+ }
254
+ )
255
+ ]
256
+ }
257
+ );
258
+ }
259
+ );
260
+ ToastViewport.displayName = VIEWPORT_NAME;
261
+ var FOCUS_PROXY_NAME = "ToastFocusProxy";
262
+ var FocusProxy = React.forwardRef(
263
+ (props, forwardedRef) => {
264
+ const { __scopeToast, onFocusFromOutsideViewport, ...proxyProps } = props;
265
+ const context = useToastProviderContext(FOCUS_PROXY_NAME, __scopeToast);
266
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
267
+ import_react_visually_hidden.VisuallyHidden,
268
+ {
278
269
  "aria-hidden": true,
279
- tabIndex: 0
280
- }, proxyProps, {
281
- ref: forwardedRef // Avoid page scrolling when focus is on the focus proxy
282
- ,
283
- style: {
284
- position: 'fixed'
285
- },
286
- onFocus: (event)=>{
287
- var _context$viewport;
288
- const prevFocusedElement = event.relatedTarget;
289
- const isFocusFromOutsideViewport = !((_context$viewport = context.viewport) !== null && _context$viewport !== void 0 && _context$viewport.contains(prevFocusedElement));
290
- if (isFocusFromOutsideViewport) onFocusFromOutsideViewport();
270
+ tabIndex: 0,
271
+ ...proxyProps,
272
+ ref: forwardedRef,
273
+ style: { position: "fixed" },
274
+ onFocus: (event) => {
275
+ const prevFocusedElement = event.relatedTarget;
276
+ const isFocusFromOutsideViewport = !context.viewport?.contains(prevFocusedElement);
277
+ if (isFocusFromOutsideViewport) onFocusFromOutsideViewport();
291
278
  }
292
- }));
293
- });
294
- /*#__PURE__*/ Object.assign($9208a85b3e79d33f$var$FocusProxy, {
295
- displayName: $9208a85b3e79d33f$var$FOCUS_PROXY_NAME
296
- });
297
- /* -------------------------------------------------------------------------------------------------
298
- * Toast
299
- * -----------------------------------------------------------------------------------------------*/ const $9208a85b3e79d33f$var$TOAST_NAME = 'Toast';
300
- const $9208a85b3e79d33f$var$TOAST_SWIPE_START = 'toast.swipeStart';
301
- const $9208a85b3e79d33f$var$TOAST_SWIPE_MOVE = 'toast.swipeMove';
302
- const $9208a85b3e79d33f$var$TOAST_SWIPE_CANCEL = 'toast.swipeCancel';
303
- const $9208a85b3e79d33f$var$TOAST_SWIPE_END = 'toast.swipeEnd';
304
- const $9208a85b3e79d33f$export$8d8dc7d5f743331b = /*#__PURE__*/ $iTyic$react.forwardRef((props, forwardedRef)=>{
305
- const { forceMount: forceMount , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , ...toastProps } = props;
306
- const [open = true, setOpen] = $iTyic$radixuireactusecontrollablestate.useControllableState({
307
- prop: openProp,
308
- defaultProp: defaultOpen,
309
- onChange: onOpenChange
279
+ }
280
+ );
281
+ }
282
+ );
283
+ FocusProxy.displayName = FOCUS_PROXY_NAME;
284
+ var TOAST_NAME = "Toast";
285
+ var TOAST_SWIPE_START = "toast.swipeStart";
286
+ var TOAST_SWIPE_MOVE = "toast.swipeMove";
287
+ var TOAST_SWIPE_CANCEL = "toast.swipeCancel";
288
+ var TOAST_SWIPE_END = "toast.swipeEnd";
289
+ var Toast = React.forwardRef(
290
+ (props, forwardedRef) => {
291
+ const { forceMount, open: openProp, defaultOpen, onOpenChange, ...toastProps } = props;
292
+ const [open = true, setOpen] = (0, import_react_use_controllable_state.useControllableState)({
293
+ prop: openProp,
294
+ defaultProp: defaultOpen,
295
+ onChange: onOpenChange
310
296
  });
311
- return /*#__PURE__*/ $iTyic$react.createElement($iTyic$radixuireactpresence.Presence, {
312
- present: forceMount || open
313
- }, /*#__PURE__*/ $iTyic$react.createElement($9208a85b3e79d33f$var$ToastImpl, ($parcel$interopDefault($iTyic$babelruntimehelpersextends))({
314
- open: open
315
- }, toastProps, {
297
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_presence.Presence, { present: forceMount || open, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
298
+ ToastImpl,
299
+ {
300
+ open,
301
+ ...toastProps,
316
302
  ref: forwardedRef,
317
- onClose: ()=>setOpen(false)
318
- ,
319
- onPause: $iTyic$radixuireactusecallbackref.useCallbackRef(props.onPause),
320
- onResume: $iTyic$radixuireactusecallbackref.useCallbackRef(props.onResume),
321
- onSwipeStart: $iTyic$radixuiprimitive.composeEventHandlers(props.onSwipeStart, (event)=>{
322
- event.currentTarget.setAttribute('data-swipe', 'start');
303
+ onClose: () => setOpen(false),
304
+ onPause: (0, import_react_use_callback_ref.useCallbackRef)(props.onPause),
305
+ onResume: (0, import_react_use_callback_ref.useCallbackRef)(props.onResume),
306
+ onSwipeStart: (0, import_primitive.composeEventHandlers)(props.onSwipeStart, (event) => {
307
+ event.currentTarget.setAttribute("data-swipe", "start");
323
308
  }),
324
- onSwipeMove: $iTyic$radixuiprimitive.composeEventHandlers(props.onSwipeMove, (event)=>{
325
- const { x: x , y: y } = event.detail.delta;
326
- event.currentTarget.setAttribute('data-swipe', 'move');
327
- event.currentTarget.style.setProperty('--radix-toast-swipe-move-x', `${x}px`);
328
- event.currentTarget.style.setProperty('--radix-toast-swipe-move-y', `${y}px`);
309
+ onSwipeMove: (0, import_primitive.composeEventHandlers)(props.onSwipeMove, (event) => {
310
+ const { x, y } = event.detail.delta;
311
+ event.currentTarget.setAttribute("data-swipe", "move");
312
+ event.currentTarget.style.setProperty("--radix-toast-swipe-move-x", `${x}px`);
313
+ event.currentTarget.style.setProperty("--radix-toast-swipe-move-y", `${y}px`);
329
314
  }),
330
- onSwipeCancel: $iTyic$radixuiprimitive.composeEventHandlers(props.onSwipeCancel, (event)=>{
331
- event.currentTarget.setAttribute('data-swipe', 'cancel');
332
- event.currentTarget.style.removeProperty('--radix-toast-swipe-move-x');
333
- event.currentTarget.style.removeProperty('--radix-toast-swipe-move-y');
334
- event.currentTarget.style.removeProperty('--radix-toast-swipe-end-x');
335
- event.currentTarget.style.removeProperty('--radix-toast-swipe-end-y');
315
+ onSwipeCancel: (0, import_primitive.composeEventHandlers)(props.onSwipeCancel, (event) => {
316
+ event.currentTarget.setAttribute("data-swipe", "cancel");
317
+ event.currentTarget.style.removeProperty("--radix-toast-swipe-move-x");
318
+ event.currentTarget.style.removeProperty("--radix-toast-swipe-move-y");
319
+ event.currentTarget.style.removeProperty("--radix-toast-swipe-end-x");
320
+ event.currentTarget.style.removeProperty("--radix-toast-swipe-end-y");
336
321
  }),
337
- onSwipeEnd: $iTyic$radixuiprimitive.composeEventHandlers(props.onSwipeEnd, (event)=>{
338
- const { x: x , y: y } = event.detail.delta;
339
- event.currentTarget.setAttribute('data-swipe', 'end');
340
- event.currentTarget.style.removeProperty('--radix-toast-swipe-move-x');
341
- event.currentTarget.style.removeProperty('--radix-toast-swipe-move-y');
342
- event.currentTarget.style.setProperty('--radix-toast-swipe-end-x', `${x}px`);
343
- event.currentTarget.style.setProperty('--radix-toast-swipe-end-y', `${y}px`);
344
- setOpen(false);
322
+ onSwipeEnd: (0, import_primitive.composeEventHandlers)(props.onSwipeEnd, (event) => {
323
+ const { x, y } = event.detail.delta;
324
+ event.currentTarget.setAttribute("data-swipe", "end");
325
+ event.currentTarget.style.removeProperty("--radix-toast-swipe-move-x");
326
+ event.currentTarget.style.removeProperty("--radix-toast-swipe-move-y");
327
+ event.currentTarget.style.setProperty("--radix-toast-swipe-end-x", `${x}px`);
328
+ event.currentTarget.style.setProperty("--radix-toast-swipe-end-y", `${y}px`);
329
+ setOpen(false);
345
330
  })
346
- })));
347
- });
348
- /*#__PURE__*/ Object.assign($9208a85b3e79d33f$export$8d8dc7d5f743331b, {
349
- displayName: $9208a85b3e79d33f$var$TOAST_NAME
331
+ }
332
+ ) });
333
+ }
334
+ );
335
+ Toast.displayName = TOAST_NAME;
336
+ var [ToastInteractiveProvider, useToastInteractiveContext] = createToastContext(TOAST_NAME, {
337
+ onClose() {
338
+ }
350
339
  });
351
- /* -----------------------------------------------------------------------------------------------*/ const [$9208a85b3e79d33f$var$ToastInteractiveProvider, $9208a85b3e79d33f$var$useToastInteractiveContext] = $9208a85b3e79d33f$var$createToastContext($9208a85b3e79d33f$var$TOAST_NAME, {
352
- onClose () {}
353
- });
354
- const $9208a85b3e79d33f$var$ToastImpl = /*#__PURE__*/ $iTyic$react.forwardRef((props, forwardedRef)=>{
355
- const { __scopeToast: __scopeToast , type: type = 'foreground' , duration: durationProp , open: open , onClose: onClose , onEscapeKeyDown: onEscapeKeyDown , onPause: onPause , onResume: onResume , onSwipeStart: onSwipeStart , onSwipeMove: onSwipeMove , onSwipeCancel: onSwipeCancel , onSwipeEnd: onSwipeEnd , ...toastProps } = props;
356
- const context = $9208a85b3e79d33f$var$useToastProviderContext($9208a85b3e79d33f$var$TOAST_NAME, __scopeToast);
357
- const [node1, setNode] = $iTyic$react.useState(null);
358
- const composedRefs = $iTyic$radixuireactcomposerefs.useComposedRefs(forwardedRef, (node)=>setNode(node)
359
- );
360
- const pointerStartRef = $iTyic$react.useRef(null);
361
- const swipeDeltaRef = $iTyic$react.useRef(null);
362
- const duration1 = durationProp || context.duration;
363
- const closeTimerStartTimeRef = $iTyic$react.useRef(0);
364
- const closeTimerRemainingTimeRef = $iTyic$react.useRef(duration1);
365
- const closeTimerRef = $iTyic$react.useRef(0);
366
- const { onToastAdd: onToastAdd , onToastRemove: onToastRemove } = context;
367
- const handleClose = $iTyic$radixuireactusecallbackref.useCallbackRef(()=>{
368
- var _context$viewport2;
369
- // focus viewport if focus is within toast to read the remaining toast
370
- // count to SR users and ensure focus isn't lost
371
- const isFocusInToast = node1 === null || node1 === void 0 ? void 0 : node1.contains(document.activeElement);
372
- if (isFocusInToast) (_context$viewport2 = context.viewport) === null || _context$viewport2 === void 0 || _context$viewport2.focus();
373
- onClose();
340
+ var ToastImpl = React.forwardRef(
341
+ (props, forwardedRef) => {
342
+ const {
343
+ __scopeToast,
344
+ type = "foreground",
345
+ duration: durationProp,
346
+ open,
347
+ onClose,
348
+ onEscapeKeyDown,
349
+ onPause,
350
+ onResume,
351
+ onSwipeStart,
352
+ onSwipeMove,
353
+ onSwipeCancel,
354
+ onSwipeEnd,
355
+ ...toastProps
356
+ } = props;
357
+ const context = useToastProviderContext(TOAST_NAME, __scopeToast);
358
+ const [node, setNode] = React.useState(null);
359
+ const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, (node2) => setNode(node2));
360
+ const pointerStartRef = React.useRef(null);
361
+ const swipeDeltaRef = React.useRef(null);
362
+ const duration = durationProp || context.duration;
363
+ const closeTimerStartTimeRef = React.useRef(0);
364
+ const closeTimerRemainingTimeRef = React.useRef(duration);
365
+ const closeTimerRef = React.useRef(0);
366
+ const { onToastAdd, onToastRemove } = context;
367
+ const handleClose = (0, import_react_use_callback_ref.useCallbackRef)(() => {
368
+ const isFocusInToast = node?.contains(document.activeElement);
369
+ if (isFocusInToast) context.viewport?.focus();
370
+ onClose();
374
371
  });
375
- const startTimer = $iTyic$react.useCallback((duration)=>{
376
- if (!duration || duration === Infinity) return;
372
+ const startTimer = React.useCallback(
373
+ (duration2) => {
374
+ if (!duration2 || duration2 === Infinity) return;
377
375
  window.clearTimeout(closeTimerRef.current);
378
- closeTimerStartTimeRef.current = new Date().getTime();
379
- closeTimerRef.current = window.setTimeout(handleClose, duration);
380
- }, [
381
- handleClose
382
- ]);
383
- $iTyic$react.useEffect(()=>{
384
- const viewport = context.viewport;
385
- if (viewport) {
386
- const handleResume = ()=>{
387
- startTimer(closeTimerRemainingTimeRef.current);
388
- onResume === null || onResume === void 0 || onResume();
389
- };
390
- const handlePause = ()=>{
391
- const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.current;
392
- closeTimerRemainingTimeRef.current = closeTimerRemainingTimeRef.current - elapsedTime;
393
- window.clearTimeout(closeTimerRef.current);
394
- onPause === null || onPause === void 0 || onPause();
395
- };
396
- viewport.addEventListener($9208a85b3e79d33f$var$VIEWPORT_PAUSE, handlePause);
397
- viewport.addEventListener($9208a85b3e79d33f$var$VIEWPORT_RESUME, handleResume);
398
- return ()=>{
399
- viewport.removeEventListener($9208a85b3e79d33f$var$VIEWPORT_PAUSE, handlePause);
400
- viewport.removeEventListener($9208a85b3e79d33f$var$VIEWPORT_RESUME, handleResume);
401
- };
402
- }
403
- }, [
404
- context.viewport,
405
- duration1,
406
- onPause,
407
- onResume,
408
- startTimer
409
- ]); // start timer when toast opens or duration changes.
410
- // we include `open` in deps because closed !== unmounted when animating
411
- // so it could reopen before being completely unmounted
412
- $iTyic$react.useEffect(()=>{
413
- if (open && !context.isClosePausedRef.current) startTimer(duration1);
414
- }, [
415
- open,
416
- duration1,
417
- context.isClosePausedRef,
418
- startTimer
419
- ]);
420
- $iTyic$react.useEffect(()=>{
421
- onToastAdd();
422
- return ()=>onToastRemove()
423
- ;
424
- }, [
425
- onToastAdd,
426
- onToastRemove
427
- ]);
428
- const announceTextContent = $iTyic$react.useMemo(()=>{
429
- return node1 ? $9208a85b3e79d33f$var$getAnnounceTextContent(node1) : null;
430
- }, [
431
- node1
432
- ]);
376
+ closeTimerStartTimeRef.current = (/* @__PURE__ */ new Date()).getTime();
377
+ closeTimerRef.current = window.setTimeout(handleClose, duration2);
378
+ },
379
+ [handleClose]
380
+ );
381
+ React.useEffect(() => {
382
+ const viewport = context.viewport;
383
+ if (viewport) {
384
+ const handleResume = () => {
385
+ startTimer(closeTimerRemainingTimeRef.current);
386
+ onResume?.();
387
+ };
388
+ const handlePause = () => {
389
+ const elapsedTime = (/* @__PURE__ */ new Date()).getTime() - closeTimerStartTimeRef.current;
390
+ closeTimerRemainingTimeRef.current = closeTimerRemainingTimeRef.current - elapsedTime;
391
+ window.clearTimeout(closeTimerRef.current);
392
+ onPause?.();
393
+ };
394
+ viewport.addEventListener(VIEWPORT_PAUSE, handlePause);
395
+ viewport.addEventListener(VIEWPORT_RESUME, handleResume);
396
+ return () => {
397
+ viewport.removeEventListener(VIEWPORT_PAUSE, handlePause);
398
+ viewport.removeEventListener(VIEWPORT_RESUME, handleResume);
399
+ };
400
+ }
401
+ }, [context.viewport, duration, onPause, onResume, startTimer]);
402
+ React.useEffect(() => {
403
+ if (open && !context.isClosePausedRef.current) startTimer(duration);
404
+ }, [open, duration, context.isClosePausedRef, startTimer]);
405
+ React.useEffect(() => {
406
+ onToastAdd();
407
+ return () => onToastRemove();
408
+ }, [onToastAdd, onToastRemove]);
409
+ const announceTextContent = React.useMemo(() => {
410
+ return node ? getAnnounceTextContent(node) : null;
411
+ }, [node]);
433
412
  if (!context.viewport) return null;
434
- return /*#__PURE__*/ $iTyic$react.createElement($iTyic$react.Fragment, null, announceTextContent && /*#__PURE__*/ $iTyic$react.createElement($9208a85b3e79d33f$var$ToastAnnounce, {
435
- __scopeToast: __scopeToast // Toasts are always role=status to avoid stuttering issues with role=alert in SRs.
436
- ,
437
- role: "status",
438
- "aria-live": type === 'foreground' ? 'assertive' : 'polite',
439
- "aria-atomic": true
440
- }, announceTextContent), /*#__PURE__*/ $iTyic$react.createElement($9208a85b3e79d33f$var$ToastInteractiveProvider, {
441
- scope: __scopeToast,
442
- onClose: handleClose
443
- }, /*#__PURE__*/ $iTyic$reactdom.createPortal(/*#__PURE__*/ $iTyic$react.createElement($9208a85b3e79d33f$var$Collection.ItemSlot, {
444
- scope: __scopeToast
445
- }, /*#__PURE__*/ $iTyic$react.createElement($iTyic$radixuireactdismissablelayer.Root, {
446
- asChild: true,
447
- onEscapeKeyDown: $iTyic$radixuiprimitive.composeEventHandlers(onEscapeKeyDown, ()=>{
448
- if (!context.isFocusedToastEscapeKeyDownRef.current) handleClose();
449
- context.isFocusedToastEscapeKeyDownRef.current = false;
450
- })
451
- }, /*#__PURE__*/ $iTyic$react.createElement($iTyic$radixuireactprimitive.Primitive.li, ($parcel$interopDefault($iTyic$babelruntimehelpersextends))({
452
- // Ensure toasts are announced as status list or status when focused
453
- role: "status",
454
- "aria-live": "off",
455
- "aria-atomic": true,
456
- tabIndex: 0,
457
- "data-state": open ? 'open' : 'closed',
458
- "data-swipe-direction": context.swipeDirection
459
- }, toastProps, {
460
- ref: composedRefs,
461
- style: {
462
- userSelect: 'none',
463
- touchAction: 'none',
464
- ...props.style
465
- },
466
- onKeyDown: $iTyic$radixuiprimitive.composeEventHandlers(props.onKeyDown, (event)=>{
467
- if (event.key !== 'Escape') return;
468
- onEscapeKeyDown === null || onEscapeKeyDown === void 0 || onEscapeKeyDown(event.nativeEvent);
469
- if (!event.nativeEvent.defaultPrevented) {
470
- context.isFocusedToastEscapeKeyDownRef.current = true;
471
- handleClose();
472
- }
473
- }),
474
- onPointerDown: $iTyic$radixuiprimitive.composeEventHandlers(props.onPointerDown, (event)=>{
475
- if (event.button !== 0) return;
476
- pointerStartRef.current = {
477
- x: event.clientX,
478
- y: event.clientY
479
- };
480
- }),
481
- onPointerMove: $iTyic$radixuiprimitive.composeEventHandlers(props.onPointerMove, (event)=>{
482
- if (!pointerStartRef.current) return;
483
- const x = event.clientX - pointerStartRef.current.x;
484
- const y = event.clientY - pointerStartRef.current.y;
485
- const hasSwipeMoveStarted = Boolean(swipeDeltaRef.current);
486
- const isHorizontalSwipe = [
487
- 'left',
488
- 'right'
489
- ].includes(context.swipeDirection);
490
- const clamp = [
491
- 'left',
492
- 'up'
493
- ].includes(context.swipeDirection) ? Math.min : Math.max;
494
- const clampedX = isHorizontalSwipe ? clamp(0, x) : 0;
495
- const clampedY = !isHorizontalSwipe ? clamp(0, y) : 0;
496
- const moveStartBuffer = event.pointerType === 'touch' ? 10 : 2;
497
- const delta = {
498
- x: clampedX,
499
- y: clampedY
500
- };
501
- const eventDetail = {
502
- originalEvent: event,
503
- delta: delta
504
- };
505
- if (hasSwipeMoveStarted) {
506
- swipeDeltaRef.current = delta;
507
- $9208a85b3e79d33f$var$handleAndDispatchCustomEvent($9208a85b3e79d33f$var$TOAST_SWIPE_MOVE, onSwipeMove, eventDetail, {
508
- discrete: false
509
- });
510
- } else if ($9208a85b3e79d33f$var$isDeltaInDirection(delta, context.swipeDirection, moveStartBuffer)) {
511
- swipeDeltaRef.current = delta;
512
- $9208a85b3e79d33f$var$handleAndDispatchCustomEvent($9208a85b3e79d33f$var$TOAST_SWIPE_START, onSwipeStart, eventDetail, {
513
- discrete: false
514
- });
515
- event.target.setPointerCapture(event.pointerId);
516
- } else if (Math.abs(x) > moveStartBuffer || Math.abs(y) > moveStartBuffer) // User is swiping in wrong direction so we disable swipe gesture
517
- // for the current pointer down interaction
518
- pointerStartRef.current = null;
519
- }),
520
- onPointerUp: $iTyic$radixuiprimitive.composeEventHandlers(props.onPointerUp, (event1)=>{
521
- const delta = swipeDeltaRef.current;
522
- const target = event1.target;
523
- if (target.hasPointerCapture(event1.pointerId)) target.releasePointerCapture(event1.pointerId);
524
- swipeDeltaRef.current = null;
525
- pointerStartRef.current = null;
526
- if (delta) {
527
- const toast = event1.currentTarget;
528
- const eventDetail = {
529
- originalEvent: event1,
530
- delta: delta
531
- };
532
- if ($9208a85b3e79d33f$var$isDeltaInDirection(delta, context.swipeDirection, context.swipeThreshold)) $9208a85b3e79d33f$var$handleAndDispatchCustomEvent($9208a85b3e79d33f$var$TOAST_SWIPE_END, onSwipeEnd, eventDetail, {
533
- discrete: true
534
- });
535
- else $9208a85b3e79d33f$var$handleAndDispatchCustomEvent($9208a85b3e79d33f$var$TOAST_SWIPE_CANCEL, onSwipeCancel, eventDetail, {
536
- discrete: true
537
- });
538
- // Prevent click event from triggering on items within the toast when
539
- // pointer up is part of a swipe gesture
540
- toast.addEventListener('click', (event)=>event.preventDefault()
541
- , {
542
- once: true
543
- });
544
- }
545
- })
546
- })))), context.viewport)));
547
- });
548
- $9208a85b3e79d33f$var$ToastImpl.propTypes = {
549
- type (props) {
550
- if (props.type && ![
551
- 'foreground',
552
- 'background'
553
- ].includes(props.type)) {
554
- const error = `Invalid prop \`type\` supplied to \`${$9208a85b3e79d33f$var$TOAST_NAME}\`. Expected \`foreground | background\`.`;
555
- return new Error(error);
413
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
414
+ announceTextContent && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
415
+ ToastAnnounce,
416
+ {
417
+ __scopeToast,
418
+ role: "status",
419
+ "aria-live": type === "foreground" ? "assertive" : "polite",
420
+ "aria-atomic": true,
421
+ children: announceTextContent
556
422
  }
557
- return null;
558
- }
559
- };
560
- /* -----------------------------------------------------------------------------------------------*/ const $9208a85b3e79d33f$var$ToastAnnounce = (props)=>{
561
- const { __scopeToast: __scopeToast , children: children , ...announceProps } = props;
562
- const context = $9208a85b3e79d33f$var$useToastProviderContext($9208a85b3e79d33f$var$TOAST_NAME, __scopeToast);
563
- const [renderAnnounceText, setRenderAnnounceText] = $iTyic$react.useState(false);
564
- const [isAnnounced, setIsAnnounced] = $iTyic$react.useState(false); // render text content in the next frame to ensure toast is announced in NVDA
565
- $9208a85b3e79d33f$var$useNextFrame(()=>setRenderAnnounceText(true)
566
- ); // cleanup after announcing
567
- $iTyic$react.useEffect(()=>{
568
- const timer = window.setTimeout(()=>setIsAnnounced(true)
569
- , 1000);
570
- return ()=>window.clearTimeout(timer)
571
- ;
572
- }, []);
573
- return isAnnounced ? null : /*#__PURE__*/ $iTyic$react.createElement($iTyic$radixuireactportal.Portal, {
574
- asChild: true
575
- }, /*#__PURE__*/ $iTyic$react.createElement($iTyic$radixuireactvisuallyhidden.VisuallyHidden, announceProps, renderAnnounceText && /*#__PURE__*/ $iTyic$react.createElement($iTyic$react.Fragment, null, context.label, " ", children)));
423
+ ),
424
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ToastInteractiveProvider, { scope: __scopeToast, onClose: handleClose, children: ReactDOM.createPortal(
425
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.ItemSlot, { scope: __scopeToast, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
426
+ DismissableLayer.Root,
427
+ {
428
+ asChild: true,
429
+ onEscapeKeyDown: (0, import_primitive.composeEventHandlers)(onEscapeKeyDown, () => {
430
+ if (!context.isFocusedToastEscapeKeyDownRef.current) handleClose();
431
+ context.isFocusedToastEscapeKeyDownRef.current = false;
432
+ }),
433
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
434
+ import_react_primitive.Primitive.li,
435
+ {
436
+ role: "status",
437
+ "aria-live": "off",
438
+ "aria-atomic": true,
439
+ tabIndex: 0,
440
+ "data-state": open ? "open" : "closed",
441
+ "data-swipe-direction": context.swipeDirection,
442
+ ...toastProps,
443
+ ref: composedRefs,
444
+ style: { userSelect: "none", touchAction: "none", ...props.style },
445
+ onKeyDown: (0, import_primitive.composeEventHandlers)(props.onKeyDown, (event) => {
446
+ if (event.key !== "Escape") return;
447
+ onEscapeKeyDown?.(event.nativeEvent);
448
+ if (!event.nativeEvent.defaultPrevented) {
449
+ context.isFocusedToastEscapeKeyDownRef.current = true;
450
+ handleClose();
451
+ }
452
+ }),
453
+ onPointerDown: (0, import_primitive.composeEventHandlers)(props.onPointerDown, (event) => {
454
+ if (event.button !== 0) return;
455
+ pointerStartRef.current = { x: event.clientX, y: event.clientY };
456
+ }),
457
+ onPointerMove: (0, import_primitive.composeEventHandlers)(props.onPointerMove, (event) => {
458
+ if (!pointerStartRef.current) return;
459
+ const x = event.clientX - pointerStartRef.current.x;
460
+ const y = event.clientY - pointerStartRef.current.y;
461
+ const hasSwipeMoveStarted = Boolean(swipeDeltaRef.current);
462
+ const isHorizontalSwipe = ["left", "right"].includes(context.swipeDirection);
463
+ const clamp = ["left", "up"].includes(context.swipeDirection) ? Math.min : Math.max;
464
+ const clampedX = isHorizontalSwipe ? clamp(0, x) : 0;
465
+ const clampedY = !isHorizontalSwipe ? clamp(0, y) : 0;
466
+ const moveStartBuffer = event.pointerType === "touch" ? 10 : 2;
467
+ const delta = { x: clampedX, y: clampedY };
468
+ const eventDetail = { originalEvent: event, delta };
469
+ if (hasSwipeMoveStarted) {
470
+ swipeDeltaRef.current = delta;
471
+ handleAndDispatchCustomEvent(TOAST_SWIPE_MOVE, onSwipeMove, eventDetail, {
472
+ discrete: false
473
+ });
474
+ } else if (isDeltaInDirection(delta, context.swipeDirection, moveStartBuffer)) {
475
+ swipeDeltaRef.current = delta;
476
+ handleAndDispatchCustomEvent(TOAST_SWIPE_START, onSwipeStart, eventDetail, {
477
+ discrete: false
478
+ });
479
+ event.target.setPointerCapture(event.pointerId);
480
+ } else if (Math.abs(x) > moveStartBuffer || Math.abs(y) > moveStartBuffer) {
481
+ pointerStartRef.current = null;
482
+ }
483
+ }),
484
+ onPointerUp: (0, import_primitive.composeEventHandlers)(props.onPointerUp, (event) => {
485
+ const delta = swipeDeltaRef.current;
486
+ const target = event.target;
487
+ if (target.hasPointerCapture(event.pointerId)) {
488
+ target.releasePointerCapture(event.pointerId);
489
+ }
490
+ swipeDeltaRef.current = null;
491
+ pointerStartRef.current = null;
492
+ if (delta) {
493
+ const toast = event.currentTarget;
494
+ const eventDetail = { originalEvent: event, delta };
495
+ if (isDeltaInDirection(delta, context.swipeDirection, context.swipeThreshold)) {
496
+ handleAndDispatchCustomEvent(TOAST_SWIPE_END, onSwipeEnd, eventDetail, {
497
+ discrete: true
498
+ });
499
+ } else {
500
+ handleAndDispatchCustomEvent(
501
+ TOAST_SWIPE_CANCEL,
502
+ onSwipeCancel,
503
+ eventDetail,
504
+ {
505
+ discrete: true
506
+ }
507
+ );
508
+ }
509
+ toast.addEventListener("click", (event2) => event2.preventDefault(), {
510
+ once: true
511
+ });
512
+ }
513
+ })
514
+ }
515
+ )
516
+ }
517
+ ) }),
518
+ context.viewport
519
+ ) })
520
+ ] });
521
+ }
522
+ );
523
+ var ToastAnnounce = (props) => {
524
+ const { __scopeToast, children, ...announceProps } = props;
525
+ const context = useToastProviderContext(TOAST_NAME, __scopeToast);
526
+ const [renderAnnounceText, setRenderAnnounceText] = React.useState(false);
527
+ const [isAnnounced, setIsAnnounced] = React.useState(false);
528
+ useNextFrame(() => setRenderAnnounceText(true));
529
+ React.useEffect(() => {
530
+ const timer = window.setTimeout(() => setIsAnnounced(true), 1e3);
531
+ return () => window.clearTimeout(timer);
532
+ }, []);
533
+ return isAnnounced ? null : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_portal.Portal, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_visually_hidden.VisuallyHidden, { ...announceProps, children: renderAnnounceText && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
534
+ context.label,
535
+ " ",
536
+ children
537
+ ] }) }) });
576
538
  };
577
- /* -------------------------------------------------------------------------------------------------
578
- * ToastTitle
579
- * -----------------------------------------------------------------------------------------------*/ const $9208a85b3e79d33f$var$TITLE_NAME = 'ToastTitle';
580
- const $9208a85b3e79d33f$export$16d42d7c29b95a4 = /*#__PURE__*/ $iTyic$react.forwardRef((props, forwardedRef)=>{
581
- const { __scopeToast: __scopeToast , ...titleProps } = props;
582
- return /*#__PURE__*/ $iTyic$react.createElement($iTyic$radixuireactprimitive.Primitive.div, ($parcel$interopDefault($iTyic$babelruntimehelpersextends))({}, titleProps, {
583
- ref: forwardedRef
584
- }));
585
- });
586
- /*#__PURE__*/ Object.assign($9208a85b3e79d33f$export$16d42d7c29b95a4, {
587
- displayName: $9208a85b3e79d33f$var$TITLE_NAME
588
- });
589
- /* -------------------------------------------------------------------------------------------------
590
- * ToastDescription
591
- * -----------------------------------------------------------------------------------------------*/ const $9208a85b3e79d33f$var$DESCRIPTION_NAME = 'ToastDescription';
592
- const $9208a85b3e79d33f$export$ecddd96c53621d9a = /*#__PURE__*/ $iTyic$react.forwardRef((props, forwardedRef)=>{
593
- const { __scopeToast: __scopeToast , ...descriptionProps } = props;
594
- return /*#__PURE__*/ $iTyic$react.createElement($iTyic$radixuireactprimitive.Primitive.div, ($parcel$interopDefault($iTyic$babelruntimehelpersextends))({}, descriptionProps, {
595
- ref: forwardedRef
596
- }));
597
- });
598
- /*#__PURE__*/ Object.assign($9208a85b3e79d33f$export$ecddd96c53621d9a, {
599
- displayName: $9208a85b3e79d33f$var$DESCRIPTION_NAME
600
- });
601
- /* -------------------------------------------------------------------------------------------------
602
- * ToastAction
603
- * -----------------------------------------------------------------------------------------------*/ const $9208a85b3e79d33f$var$ACTION_NAME = 'ToastAction';
604
- const $9208a85b3e79d33f$export$3019feecfda683d2 = /*#__PURE__*/ $iTyic$react.forwardRef((props, forwardedRef)=>{
605
- const { altText: altText , ...actionProps } = props;
606
- if (!altText) return null;
607
- return /*#__PURE__*/ $iTyic$react.createElement($9208a85b3e79d33f$var$ToastAnnounceExclude, {
608
- altText: altText,
609
- asChild: true
610
- }, /*#__PURE__*/ $iTyic$react.createElement($9208a85b3e79d33f$export$811e70f61c205839, ($parcel$interopDefault($iTyic$babelruntimehelpersextends))({}, actionProps, {
611
- ref: forwardedRef
612
- })));
613
- });
614
- $9208a85b3e79d33f$export$3019feecfda683d2.propTypes = {
615
- altText (props) {
616
- if (!props.altText) return new Error(`Missing prop \`altText\` expected on \`${$9208a85b3e79d33f$var$ACTION_NAME}\``);
617
- return null;
539
+ var TITLE_NAME = "ToastTitle";
540
+ var ToastTitle = React.forwardRef(
541
+ (props, forwardedRef) => {
542
+ const { __scopeToast, ...titleProps } = props;
543
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_primitive.Primitive.div, { ...titleProps, ref: forwardedRef });
544
+ }
545
+ );
546
+ ToastTitle.displayName = TITLE_NAME;
547
+ var DESCRIPTION_NAME = "ToastDescription";
548
+ var ToastDescription = React.forwardRef(
549
+ (props, forwardedRef) => {
550
+ const { __scopeToast, ...descriptionProps } = props;
551
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_primitive.Primitive.div, { ...descriptionProps, ref: forwardedRef });
552
+ }
553
+ );
554
+ ToastDescription.displayName = DESCRIPTION_NAME;
555
+ var ACTION_NAME = "ToastAction";
556
+ var ToastAction = React.forwardRef(
557
+ (props, forwardedRef) => {
558
+ const { altText, ...actionProps } = props;
559
+ if (!altText.trim()) {
560
+ console.error(
561
+ `Invalid prop \`altText\` supplied to \`${ACTION_NAME}\`. Expected non-empty \`string\`.`
562
+ );
563
+ return null;
618
564
  }
619
- };
620
- /*#__PURE__*/ Object.assign($9208a85b3e79d33f$export$3019feecfda683d2, {
621
- displayName: $9208a85b3e79d33f$var$ACTION_NAME
622
- });
623
- /* -------------------------------------------------------------------------------------------------
624
- * ToastClose
625
- * -----------------------------------------------------------------------------------------------*/ const $9208a85b3e79d33f$var$CLOSE_NAME = 'ToastClose';
626
- const $9208a85b3e79d33f$export$811e70f61c205839 = /*#__PURE__*/ $iTyic$react.forwardRef((props, forwardedRef)=>{
627
- const { __scopeToast: __scopeToast , ...closeProps } = props;
628
- const interactiveContext = $9208a85b3e79d33f$var$useToastInteractiveContext($9208a85b3e79d33f$var$CLOSE_NAME, __scopeToast);
629
- return /*#__PURE__*/ $iTyic$react.createElement($9208a85b3e79d33f$var$ToastAnnounceExclude, {
630
- asChild: true
631
- }, /*#__PURE__*/ $iTyic$react.createElement($iTyic$radixuireactprimitive.Primitive.button, ($parcel$interopDefault($iTyic$babelruntimehelpersextends))({
632
- type: "button"
633
- }, closeProps, {
565
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ToastAnnounceExclude, { altText, asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ToastClose, { ...actionProps, ref: forwardedRef }) });
566
+ }
567
+ );
568
+ ToastAction.displayName = ACTION_NAME;
569
+ var CLOSE_NAME = "ToastClose";
570
+ var ToastClose = React.forwardRef(
571
+ (props, forwardedRef) => {
572
+ const { __scopeToast, ...closeProps } = props;
573
+ const interactiveContext = useToastInteractiveContext(CLOSE_NAME, __scopeToast);
574
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ToastAnnounceExclude, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
575
+ import_react_primitive.Primitive.button,
576
+ {
577
+ type: "button",
578
+ ...closeProps,
634
579
  ref: forwardedRef,
635
- onClick: $iTyic$radixuiprimitive.composeEventHandlers(props.onClick, interactiveContext.onClose)
636
- })));
637
- });
638
- /*#__PURE__*/ Object.assign($9208a85b3e79d33f$export$811e70f61c205839, {
639
- displayName: $9208a85b3e79d33f$var$CLOSE_NAME
640
- });
641
- /* ---------------------------------------------------------------------------------------------- */ const $9208a85b3e79d33f$var$ToastAnnounceExclude = /*#__PURE__*/ $iTyic$react.forwardRef((props, forwardedRef)=>{
642
- const { __scopeToast: __scopeToast , altText: altText , ...announceExcludeProps } = props;
643
- return /*#__PURE__*/ $iTyic$react.createElement($iTyic$radixuireactprimitive.Primitive.div, ($parcel$interopDefault($iTyic$babelruntimehelpersextends))({
644
- "data-radix-toast-announce-exclude": "",
645
- "data-radix-toast-announce-alt": altText || undefined
646
- }, announceExcludeProps, {
647
- ref: forwardedRef
648
- }));
580
+ onClick: (0, import_primitive.composeEventHandlers)(props.onClick, interactiveContext.onClose)
581
+ }
582
+ ) });
583
+ }
584
+ );
585
+ ToastClose.displayName = CLOSE_NAME;
586
+ var ToastAnnounceExclude = React.forwardRef((props, forwardedRef) => {
587
+ const { __scopeToast, altText, ...announceExcludeProps } = props;
588
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
589
+ import_react_primitive.Primitive.div,
590
+ {
591
+ "data-radix-toast-announce-exclude": "",
592
+ "data-radix-toast-announce-alt": altText || void 0,
593
+ ...announceExcludeProps,
594
+ ref: forwardedRef
595
+ }
596
+ );
649
597
  });
650
- function $9208a85b3e79d33f$var$getAnnounceTextContent(container) {
651
- const textContent = [];
652
- const childNodes = Array.from(container.childNodes);
653
- childNodes.forEach((node)=>{
654
- if (node.nodeType === node.TEXT_NODE && node.textContent) textContent.push(node.textContent);
655
- if ($9208a85b3e79d33f$var$isHTMLElement(node)) {
656
- const isHidden = node.ariaHidden || node.hidden || node.style.display === 'none';
657
- const isExcluded = node.dataset.radixToastAnnounceExclude === '';
658
- if (!isHidden) {
659
- if (isExcluded) {
660
- const altText = node.dataset.radixToastAnnounceAlt;
661
- if (altText) textContent.push(altText);
662
- } else textContent.push(...$9208a85b3e79d33f$var$getAnnounceTextContent(node));
663
- }
598
+ function getAnnounceTextContent(container) {
599
+ const textContent = [];
600
+ const childNodes = Array.from(container.childNodes);
601
+ childNodes.forEach((node) => {
602
+ if (node.nodeType === node.TEXT_NODE && node.textContent) textContent.push(node.textContent);
603
+ if (isHTMLElement(node)) {
604
+ const isHidden = node.ariaHidden || node.hidden || node.style.display === "none";
605
+ const isExcluded = node.dataset.radixToastAnnounceExclude === "";
606
+ if (!isHidden) {
607
+ if (isExcluded) {
608
+ const altText = node.dataset.radixToastAnnounceAlt;
609
+ if (altText) textContent.push(altText);
610
+ } else {
611
+ textContent.push(...getAnnounceTextContent(node));
664
612
  }
665
- }); // We return a collection of text rather than a single concatenated string.
666
- // This allows SR VO to naturally pause break between nodes while announcing.
667
- return textContent;
613
+ }
614
+ }
615
+ });
616
+ return textContent;
668
617
  }
669
- /* ---------------------------------------------------------------------------------------------- */ function $9208a85b3e79d33f$var$handleAndDispatchCustomEvent(name, handler, detail, { discrete: discrete }) {
670
- const currentTarget = detail.originalEvent.currentTarget;
671
- const event = new CustomEvent(name, {
672
- bubbles: true,
673
- cancelable: true,
674
- detail: detail
675
- });
676
- if (handler) currentTarget.addEventListener(name, handler, {
677
- once: true
678
- });
679
- if (discrete) $iTyic$radixuireactprimitive.dispatchDiscreteCustomEvent(currentTarget, event);
680
- else currentTarget.dispatchEvent(event);
618
+ function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
619
+ const currentTarget = detail.originalEvent.currentTarget;
620
+ const event = new CustomEvent(name, { bubbles: true, cancelable: true, detail });
621
+ if (handler) currentTarget.addEventListener(name, handler, { once: true });
622
+ if (discrete) {
623
+ (0, import_react_primitive.dispatchDiscreteCustomEvent)(currentTarget, event);
624
+ } else {
625
+ currentTarget.dispatchEvent(event);
626
+ }
681
627
  }
682
- const $9208a85b3e79d33f$var$isDeltaInDirection = (delta, direction, threshold = 0)=>{
683
- const deltaX = Math.abs(delta.x);
684
- const deltaY = Math.abs(delta.y);
685
- const isDeltaX = deltaX > deltaY;
686
- if (direction === 'left' || direction === 'right') return isDeltaX && deltaX > threshold;
687
- else return !isDeltaX && deltaY > threshold;
628
+ var isDeltaInDirection = (delta, direction, threshold = 0) => {
629
+ const deltaX = Math.abs(delta.x);
630
+ const deltaY = Math.abs(delta.y);
631
+ const isDeltaX = deltaX > deltaY;
632
+ if (direction === "left" || direction === "right") {
633
+ return isDeltaX && deltaX > threshold;
634
+ } else {
635
+ return !isDeltaX && deltaY > threshold;
636
+ }
688
637
  };
689
- function $9208a85b3e79d33f$var$useNextFrame(callback = ()=>{}) {
690
- const fn = $iTyic$radixuireactusecallbackref.useCallbackRef(callback);
691
- $iTyic$radixuireactuselayouteffect.useLayoutEffect(()=>{
692
- let raf1 = 0;
693
- let raf2 = 0;
694
- raf1 = window.requestAnimationFrame(()=>raf2 = window.requestAnimationFrame(fn)
695
- );
696
- return ()=>{
697
- window.cancelAnimationFrame(raf1);
698
- window.cancelAnimationFrame(raf2);
699
- };
700
- }, [
701
- fn
702
- ]);
638
+ function useNextFrame(callback = () => {
639
+ }) {
640
+ const fn = (0, import_react_use_callback_ref.useCallbackRef)(callback);
641
+ (0, import_react_use_layout_effect.useLayoutEffect)(() => {
642
+ let raf1 = 0;
643
+ let raf2 = 0;
644
+ raf1 = window.requestAnimationFrame(() => raf2 = window.requestAnimationFrame(fn));
645
+ return () => {
646
+ window.cancelAnimationFrame(raf1);
647
+ window.cancelAnimationFrame(raf2);
648
+ };
649
+ }, [fn]);
703
650
  }
704
- function $9208a85b3e79d33f$var$isHTMLElement(node) {
705
- return node.nodeType === node.ELEMENT_NODE;
651
+ function isHTMLElement(node) {
652
+ return node.nodeType === node.ELEMENT_NODE;
706
653
  }
707
- /**
708
- * Returns a list of potential tabbable candidates.
709
- *
710
- * NOTE: This is only a close approximation. For example it doesn't take into account cases like when
711
- * elements are not visible. This cannot be worked out easily by just reading a property, but rather
712
- * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.
713
- *
714
- * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker
715
- * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1
716
- */ function $9208a85b3e79d33f$var$getTabbableCandidates(container) {
717
- const nodes = [];
718
- const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
719
- acceptNode: (node)=>{
720
- const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';
721
- if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; // `.tabIndex` is not the same as the `tabindex` attribute. It works on the
722
- // runtime's understanding of tabbability, so this automatically accounts
723
- // for any kind of element that could be tabbed to.
724
- return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
725
- }
726
- });
727
- while(walker.nextNode())nodes.push(walker.currentNode); // we do not take into account the order of nodes with positive `tabIndex` as it
728
- // hinders accessibility to have tab order different from visual order.
729
- return nodes;
654
+ function getTabbableCandidates(container) {
655
+ const nodes = [];
656
+ const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
657
+ acceptNode: (node) => {
658
+ const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
659
+ if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;
660
+ return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
661
+ }
662
+ });
663
+ while (walker.nextNode()) nodes.push(walker.currentNode);
664
+ return nodes;
730
665
  }
731
- function $9208a85b3e79d33f$var$focusFirst(candidates) {
732
- const previouslyFocusedElement = document.activeElement;
733
- return candidates.some((candidate)=>{
734
- // if focus is already where we want to go, we don't want to keep going through the candidates
735
- if (candidate === previouslyFocusedElement) return true;
736
- candidate.focus();
737
- return document.activeElement !== previouslyFocusedElement;
738
- });
666
+ function focusFirst(candidates) {
667
+ const previouslyFocusedElement = document.activeElement;
668
+ return candidates.some((candidate) => {
669
+ if (candidate === previouslyFocusedElement) return true;
670
+ candidate.focus();
671
+ return document.activeElement !== previouslyFocusedElement;
672
+ });
739
673
  }
740
- const $9208a85b3e79d33f$export$2881499e37b75b9a = $9208a85b3e79d33f$export$f5d03d415824e0e;
741
- const $9208a85b3e79d33f$export$d5c6c08dc2d3ca7 = $9208a85b3e79d33f$export$6192c2425ecfd989;
742
- const $9208a85b3e79d33f$export$be92b6f5f03c0fe9 = $9208a85b3e79d33f$export$8d8dc7d5f743331b;
743
- const $9208a85b3e79d33f$export$f99233281efd08a0 = $9208a85b3e79d33f$export$16d42d7c29b95a4;
744
- const $9208a85b3e79d33f$export$393edc798c47379d = $9208a85b3e79d33f$export$ecddd96c53621d9a;
745
- const $9208a85b3e79d33f$export$e19cd5f9376f8cee = $9208a85b3e79d33f$export$3019feecfda683d2;
746
- const $9208a85b3e79d33f$export$f39c2d165cd861fe = $9208a85b3e79d33f$export$811e70f61c205839;
747
-
748
-
749
-
750
-
674
+ var Provider = ToastProvider;
675
+ var Viewport = ToastViewport;
676
+ var Root2 = Toast;
677
+ var Title = ToastTitle;
678
+ var Description = ToastDescription;
679
+ var Action = ToastAction;
680
+ var Close = ToastClose;
751
681
  //# sourceMappingURL=index.js.map