@epic-web/workshop-app 4.2.8 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/build/client/assets/{_-CsdFvUbA.js → _-ByTWgb53.js} +2 -2
  2. package/build/client/assets/{_-CsdFvUbA.js.map → _-ByTWgb53.js.map} +1 -1
  3. package/build/client/assets/_exerciseNumber-9RwIhGRW.js +2 -0
  4. package/build/client/assets/{_exerciseNumber-DWZNkWZM.js.map → _exerciseNumber-9RwIhGRW.js.map} +1 -1
  5. package/build/client/assets/{_exerciseNumber_._stepNumber-P76hDsE6.js → _exerciseNumber_._stepNumber-D1wwEMQx.js} +2 -2
  6. package/build/client/assets/{_exerciseNumber_._stepNumber-P76hDsE6.js.map → _exerciseNumber_._stepNumber-D1wwEMQx.js.map} +1 -1
  7. package/build/client/assets/_exerciseNumber_.finished-BhpKVn4e.js +2 -0
  8. package/build/client/assets/{_exerciseNumber_.finished-CpC-flTW.js.map → _exerciseNumber_.finished-BhpKVn4e.js.map} +1 -1
  9. package/build/client/assets/{_layout-DEZ-aTmx.js → _layout-BaPtC79F.js} +2 -2
  10. package/build/client/assets/{_layout-DEZ-aTmx.js.map → _layout-BaPtC79F.js.map} +1 -1
  11. package/build/client/assets/_layout-Bj9PyQQD.js +2 -0
  12. package/build/client/assets/{_layout-D1A2zp9y.js.map → _layout-Bj9PyQQD.js.map} +1 -1
  13. package/build/client/assets/_layout-DPfeFZ1b.js +2 -0
  14. package/build/client/assets/{_layout-BSoUgboG.js.map → _layout-DPfeFZ1b.js.map} +1 -1
  15. package/build/client/assets/_layout-PTTX5RMb.js +2 -0
  16. package/build/client/assets/_layout-PTTX5RMb.js.map +1 -0
  17. package/build/client/assets/account-C6GYxzo4.js +2 -0
  18. package/build/client/assets/{account-BeKnQB9r.js.map → account-C6GYxzo4.js.map} +1 -1
  19. package/build/client/assets/{button-Da1iG51o.js → button-DnQOyJAN.js} +2 -2
  20. package/build/client/assets/{button-Da1iG51o.js.map → button-DnQOyJAN.js.map} +1 -1
  21. package/build/client/assets/{client-hints-B2pbEa_9.js → client-hints-BsCjbOX0.js} +3 -3
  22. package/build/client/assets/client-hints-BsCjbOX0.js.map +1 -0
  23. package/build/client/assets/{components-BM_XUa9h.js → components-Dj3sm47B.js} +15 -15
  24. package/build/client/assets/{components-BM_XUa9h.js.map → components-Dj3sm47B.js.map} +1 -1
  25. package/build/client/assets/{diff-BQhWtDyS.js → diff-BQB9RSaR.js} +2 -2
  26. package/build/client/assets/{diff-BQhWtDyS.js.map → diff-BQB9RSaR.js.map} +1 -1
  27. package/build/client/assets/diff-SN_GIbcP.js +2 -0
  28. package/build/client/assets/{diff-BDeBUdSw.js.map → diff-SN_GIbcP.js.map} +1 -1
  29. package/build/client/assets/discord-CK7yz4w6.js +2 -0
  30. package/build/client/assets/discord-CK7yz4w6.js.map +1 -0
  31. package/build/client/assets/{discord-BMNnObT9.js → discord-CsluX01E.js} +2 -2
  32. package/build/client/assets/{discord-BMNnObT9.js.map → discord-CsluX01E.js.map} +1 -1
  33. package/build/client/assets/{entry.client-XC5tKTFs.js → entry.client-DBBrAxtJ.js} +2 -2
  34. package/build/client/assets/{entry.client-XC5tKTFs.js.map → entry.client-DBBrAxtJ.js.map} +1 -1
  35. package/build/client/assets/{epic-video-CxRPT-8l.js → epic-video-21h2ikhz.js} +2 -2
  36. package/build/client/assets/{epic-video-CxRPT-8l.js.map → epic-video-21h2ikhz.js.map} +1 -1
  37. package/build/client/assets/{error-boundary-tJSWbP6w.js → error-boundary-Bg54_knF.js} +2 -2
  38. package/build/client/assets/{error-boundary-tJSWbP6w.js.map → error-boundary-Bg54_knF.js.map} +1 -1
  39. package/build/client/assets/finished-BcwIbl76.js +2 -0
  40. package/build/client/assets/{finished-CMGRmsnb.js.map → finished-BcwIbl76.js.map} +1 -1
  41. package/build/client/assets/{index-B8G3eD8F.js → index-BL4aE6WC.js} +2 -2
  42. package/build/client/assets/{index-B8G3eD8F.js.map → index-BL4aE6WC.js.map} +1 -1
  43. package/build/client/assets/{index-BymJEf3X.js → index-BfoHqrT5.js} +2 -2
  44. package/build/client/assets/{index-BymJEf3X.js.map → index-BfoHqrT5.js.map} +1 -1
  45. package/build/client/assets/index-CsvysmWA.js +2 -0
  46. package/build/client/assets/{index-CQZ5FyEE.js.map → index-CsvysmWA.js.map} +1 -1
  47. package/build/client/assets/index-D1WEsmVZ.js +36 -0
  48. package/build/client/assets/{index-BDqSZ0-h.js.map → index-D1WEsmVZ.js.map} +1 -1
  49. package/build/client/assets/index-HBgMKyVf.js +2 -0
  50. package/build/client/assets/{index-Dc59VwXx.js.map → index-HBgMKyVf.js.map} +1 -1
  51. package/build/client/assets/{loading-DsjO-T0W.js → loading-Ba880UMD.js} +2 -2
  52. package/build/client/assets/{loading-DsjO-T0W.js.map → loading-Ba880UMD.js.map} +1 -1
  53. package/build/client/assets/login-BQY-a6kw.js +2 -0
  54. package/build/client/assets/{login-CcuvIoiW.js.map → login-BQY-a6kw.js.map} +1 -1
  55. package/build/client/assets/manifest-0d62be17.js +1 -0
  56. package/build/client/assets/mdx-wWk4dtHt.js +2 -0
  57. package/build/client/assets/{mdx-CZ_BPVoS.js.map → mdx-wWk4dtHt.js.map} +1 -1
  58. package/build/client/assets/misc-CXGQ7VS9.js +2 -0
  59. package/build/client/assets/{misc-C1rq7sPa.js.map → misc-CXGQ7VS9.js.map} +1 -1
  60. package/build/client/assets/{nav-chevrons-C-dN3WfT.js → nav-chevrons-D8c9lJW6.js} +2 -2
  61. package/build/client/assets/{nav-chevrons-C-dN3WfT.js.map → nav-chevrons-D8c9lJW6.js.map} +1 -1
  62. package/build/client/assets/onboarding-gD8f59tE.js +2 -0
  63. package/build/client/assets/{onboarding-CfXLKsN3.js.map → onboarding-gD8f59tE.js.map} +1 -1
  64. package/build/client/assets/presence-B2xpI37C.js +28 -0
  65. package/build/client/assets/presence-B2xpI37C.js.map +1 -0
  66. package/build/client/assets/{progress-mfa_5CZx.js → progress-CBZt2pmu.js} +2 -2
  67. package/build/client/assets/{progress-mfa_5CZx.js.map → progress-CBZt2pmu.js.map} +1 -1
  68. package/build/client/assets/{progress-bar-BmszwN_j.js → progress-bar-DX6yYES2.js} +2 -2
  69. package/build/client/assets/{progress-bar-BmszwN_j.js.map → progress-bar-DX6yYES2.js.map} +1 -1
  70. package/build/client/assets/request-info-BHMoxBaT.js +2 -0
  71. package/build/client/assets/request-info-BHMoxBaT.js.map +1 -0
  72. package/build/client/assets/{root-1Cc21xa6.js → root-BcFXTrBQ.js} +2 -2
  73. package/build/client/assets/{root-1Cc21xa6.js.map → root-BcFXTrBQ.js.map} +1 -1
  74. package/build/client/assets/{support--jou3sWH.js → support-QTdmLyE7.js} +2 -2
  75. package/build/client/assets/{support--jou3sWH.js.map → support-QTdmLyE7.js.map} +1 -1
  76. package/build/client/assets/{tooltip-BlVFw-is.js → tooltip-CVFWPOu0.js} +2 -2
  77. package/build/client/assets/{tooltip-BlVFw-is.js.map → tooltip-CVFWPOu0.js.map} +1 -1
  78. package/build/client/assets/{use-event-source-DPLyo0Bh.js → use-event-source-DXlRuRq2.js} +2 -2
  79. package/build/client/assets/{use-event-source-DPLyo0Bh.js.map → use-event-source-DXlRuRq2.js.map} +1 -1
  80. package/build/client/assets/{user-p2QVtDZI.js → user-DiGtbaa7.js} +2 -2
  81. package/build/client/assets/{user-p2QVtDZI.js.map → user-DiGtbaa7.js.map} +1 -1
  82. package/build/client/img/tiffany.png +0 -0
  83. package/build/server/index.js +10 -4
  84. package/build/server/index.js.map +1 -1
  85. package/package.json +3 -3
  86. package/build/client/assets/_exerciseNumber-DWZNkWZM.js +0 -2
  87. package/build/client/assets/_exerciseNumber_.finished-CpC-flTW.js +0 -2
  88. package/build/client/assets/_layout-BSoUgboG.js +0 -2
  89. package/build/client/assets/_layout-C8fK4Z98.js +0 -2
  90. package/build/client/assets/_layout-C8fK4Z98.js.map +0 -1
  91. package/build/client/assets/_layout-D1A2zp9y.js +0 -2
  92. package/build/client/assets/account-BeKnQB9r.js +0 -2
  93. package/build/client/assets/client-hints-B2pbEa_9.js.map +0 -1
  94. package/build/client/assets/diff-BDeBUdSw.js +0 -2
  95. package/build/client/assets/discord-DdAReDkL.js +0 -2
  96. package/build/client/assets/discord-DdAReDkL.js.map +0 -1
  97. package/build/client/assets/finished-CMGRmsnb.js +0 -2
  98. package/build/client/assets/index-B8k-Gd1G.js +0 -2
  99. package/build/client/assets/index-B8k-Gd1G.js.map +0 -1
  100. package/build/client/assets/index-BDqSZ0-h.js +0 -36
  101. package/build/client/assets/index-CQZ5FyEE.js +0 -2
  102. package/build/client/assets/index-Dc59VwXx.js +0 -2
  103. package/build/client/assets/login-CcuvIoiW.js +0 -2
  104. package/build/client/assets/manifest-1656ae4d.js +0 -1
  105. package/build/client/assets/mdx-CZ_BPVoS.js +0 -2
  106. package/build/client/assets/misc-C1rq7sPa.js +0 -2
  107. package/build/client/assets/onboarding-CfXLKsN3.js +0 -2
  108. package/build/client/assets/presence-BF7lWuVd.js +0 -28
  109. package/build/client/assets/presence-BF7lWuVd.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"root-1Cc21xa6.js","sources":["../../../../../node_modules/@remix-run/react/dist/esm/scroll-restoration.js","../../../../../node_modules/tween-functions/index.js","../../../../../node_modules/confetti-react/dist/confetti-react.esm.js","../../../../../node_modules/remix-utils/build/react/use-hydrated.js","../../../../../node_modules/remix-utils/build/react/client-only.js","../../../app/components/confetti.tsx","../../../app/components/toaster.tsx","../../../app/styles/app.css?url","../../../app/styles/tailwind.css?url","../../../app/root.tsx"],"sourcesContent":["/**\n * @remix-run/react v2.8.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.js';\nimport * as React from 'react';\nimport { useLocation, useMatches, UNSAFE_useScrollRestoration } from 'react-router-dom';\nimport { useRemixContext } from './components.js';\n\nlet STORAGE_KEY = \"positions\";\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n *\n * @see https://remix.run/components/scroll-restoration\n */\nfunction ScrollRestoration({\n getKey,\n ...props\n}) {\n let {\n isSpaMode\n } = useRemixContext();\n let location = useLocation();\n let matches = useMatches();\n UNSAFE_useScrollRestoration({\n getKey,\n storageKey: STORAGE_KEY\n });\n\n // In order to support `getKey`, we need to compute a \"key\" here so we can\n // hydrate that up so that SSR scroll restoration isn't waiting on React to\n // hydrate. *However*, our key on the server is not the same as our key on\n // the client! So if the user's getKey implementation returns the SSR\n // location key, then let's ignore it and let our inline <script> below pick\n // up the client side history state key\n let key = React.useMemo(() => {\n if (!getKey) return null;\n let userKey = getKey(location, matches);\n return userKey !== location.key ? userKey : null;\n },\n // Nah, we only need this the first time for the SSR render\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n\n // In SPA Mode, there's nothing to restore on initial render since we didn't\n // render anything on the server\n if (isSpaMode) {\n return null;\n }\n let restoreScroll = ((STORAGE_KEY, restoreKey) => {\n if (!window.history.state || !window.history.state.key) {\n let key = Math.random().toString(32).slice(2);\n window.history.replaceState({\n key\n }, \"\");\n }\n try {\n let positions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || \"{}\");\n let storedY = positions[restoreKey || window.history.state.key];\n if (typeof storedY === \"number\") {\n window.scrollTo(0, storedY);\n }\n } catch (error) {\n console.error(error);\n sessionStorage.removeItem(STORAGE_KEY);\n }\n }).toString();\n return /*#__PURE__*/React.createElement(\"script\", _extends({}, props, {\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: `(${restoreScroll})(${JSON.stringify(STORAGE_KEY)}, ${JSON.stringify(key)})`\n }\n }));\n}\n\nexport { ScrollRestoration };\n","'use strict';\n\n// t: current time, b: beginning value, _c: final value, d: total duration\nvar tweenFunctions = {\n linear: function(t, b, _c, d) {\n var c = _c - b;\n return c * t / d + b;\n },\n easeInQuad: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t + b;\n },\n easeOutQuad: function(t, b, _c, d) {\n var c = _c - b;\n return -c * (t /= d) * (t - 2) + b;\n },\n easeInOutQuad: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t + b;\n } else {\n return -c / 2 * ((--t) * (t - 2) - 1) + b;\n }\n },\n easeInCubic: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t * t + b;\n },\n easeOutCubic: function(t, b, _c, d) {\n var c = _c - b;\n return c * ((t = t / d - 1) * t * t + 1) + b;\n },\n easeInOutCubic: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t * t + b;\n } else {\n return c / 2 * ((t -= 2) * t * t + 2) + b;\n }\n },\n easeInQuart: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t * t * t + b;\n },\n easeOutQuart: function(t, b, _c, d) {\n var c = _c - b;\n return -c * ((t = t / d - 1) * t * t * t - 1) + b;\n },\n easeInOutQuart: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t * t * t + b;\n } else {\n return -c / 2 * ((t -= 2) * t * t * t - 2) + b;\n }\n },\n easeInQuint: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t * t * t * t + b;\n },\n easeOutQuint: function(t, b, _c, d) {\n var c = _c - b;\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n },\n easeInOutQuint: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t * t * t * t + b;\n } else {\n return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;\n }\n },\n easeInSine: function(t, b, _c, d) {\n var c = _c - b;\n return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;\n },\n easeOutSine: function(t, b, _c, d) {\n var c = _c - b;\n return c * Math.sin(t / d * (Math.PI / 2)) + b;\n },\n easeInOutSine: function(t, b, _c, d) {\n var c = _c - b;\n return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;\n },\n easeInExpo: function(t, b, _c, d) {\n var c = _c - b;\n return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;\n },\n easeOutExpo: function(t, b, _c, d) {\n var c = _c - b;\n return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;\n },\n easeInOutExpo: function(t, b, _c, d) {\n var c = _c - b;\n if (t === 0) {\n return b;\n }\n if (t === d) {\n return b + c;\n }\n if ((t /= d / 2) < 1) {\n return c / 2 * Math.pow(2, 10 * (t - 1)) + b;\n } else {\n return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;\n }\n },\n easeInCirc: function(t, b, _c, d) {\n var c = _c - b;\n return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;\n },\n easeOutCirc: function(t, b, _c, d) {\n var c = _c - b;\n return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\n },\n easeInOutCirc: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;\n } else {\n return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;\n }\n },\n easeInElastic: function(t, b, _c, d) {\n var c = _c - b;\n var a, p, s;\n s = 1.70158;\n p = 0;\n a = c;\n if (t === 0) {\n return b;\n } else if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;\n },\n easeOutElastic: function(t, b, _c, d) {\n var c = _c - b;\n var a, p, s;\n s = 1.70158;\n p = 0;\n a = c;\n if (t === 0) {\n return b;\n } else if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;\n },\n easeInOutElastic: function(t, b, _c, d) {\n var c = _c - b;\n var a, p, s;\n s = 1.70158;\n p = 0;\n a = c;\n if (t === 0) {\n return b;\n } else if ((t /= d / 2) === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n if (t < 1) {\n return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;\n } else {\n return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * 0.5 + c + b;\n }\n },\n easeInBack: function(t, b, _c, d, s) {\n var c = _c - b;\n if (s === void 0) {\n s = 1.70158;\n }\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n },\n easeOutBack: function(t, b, _c, d, s) {\n var c = _c - b;\n if (s === void 0) {\n s = 1.70158;\n }\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n },\n easeInOutBack: function(t, b, _c, d, s) {\n var c = _c - b;\n if (s === void 0) {\n s = 1.70158;\n }\n if ((t /= d / 2) < 1) {\n return c / 2 * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\n } else {\n return c / 2 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\n }\n },\n easeInBounce: function(t, b, _c, d) {\n var c = _c - b;\n var v;\n v = tweenFunctions.easeOutBounce(d - t, 0, c, d);\n return c - v + b;\n },\n easeOutBounce: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d) < 1 / 2.75) {\n return c * (7.5625 * t * t) + b;\n } else if (t < 2 / 2.75) {\n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\n } else if (t < 2.5 / 2.75) {\n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\n } else {\n return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\n }\n },\n easeInOutBounce: function(t, b, _c, d) {\n var c = _c - b;\n var v;\n if (t < d / 2) {\n v = tweenFunctions.easeInBounce(t * 2, 0, c, d);\n return v * 0.5 + b;\n } else {\n v = tweenFunctions.easeOutBounce(t * 2 - d, 0, c, d);\n return v * 0.5 + c * 0.5 + b;\n }\n }\n};\n\nmodule.exports = tweenFunctions;\n","import React, { Component } from 'react';\nimport tweens from 'tween-functions';\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction degreesToRads(degrees) {\n return degrees * Math.PI / 180;\n}\nfunction randomRange(min, max) {\n return min + Math.random() * (max - min);\n}\nfunction randomInt(min, max) {\n return Math.floor(min + Math.random() * (max - min + 1));\n}\n\nvar ParticleShape;\n\n(function (ParticleShape) {\n ParticleShape[ParticleShape[\"Circle\"] = 0] = \"Circle\";\n ParticleShape[ParticleShape[\"Square\"] = 1] = \"Square\";\n ParticleShape[ParticleShape[\"Strip\"] = 2] = \"Strip\";\n})(ParticleShape || (ParticleShape = {}));\n\nvar RotationDirection;\n\n(function (RotationDirection) {\n RotationDirection[RotationDirection[\"Positive\"] = 1] = \"Positive\";\n RotationDirection[RotationDirection[\"Negative\"] = -1] = \"Negative\";\n})(RotationDirection || (RotationDirection = {}));\n\nvar Particle = /*#__PURE__*/function () {\n function Particle(context, getOptions, x, y) {\n this.getOptions = getOptions;\n\n var _this$getOptions = this.getOptions(),\n colors = _this$getOptions.colors,\n initialVelocityX = _this$getOptions.initialVelocityX,\n initialVelocityY = _this$getOptions.initialVelocityY;\n\n this.context = context;\n this.x = x;\n this.y = y;\n this.w = randomRange(5, 20);\n this.h = randomRange(5, 20);\n this.radius = randomRange(5, 10);\n this.vx = randomRange(-initialVelocityX, initialVelocityX);\n this.vy = randomRange(-initialVelocityY, 0);\n this.shape = randomInt(0, 2);\n this.angle = degreesToRads(randomRange(0, 360));\n this.angularSpin = randomRange(-0.2, 0.2);\n this.color = colors[Math.floor(Math.random() * colors.length)];\n this.rotateY = randomRange(0, 1);\n this.rotationDirection = randomRange(0, 1) ? RotationDirection.Positive : RotationDirection.Negative;\n }\n\n var _proto = Particle.prototype;\n\n _proto.update = function update() {\n var _this$getOptions2 = this.getOptions(),\n gravity = _this$getOptions2.gravity,\n wind = _this$getOptions2.wind,\n friction = _this$getOptions2.friction,\n opacity = _this$getOptions2.opacity,\n drawShape = _this$getOptions2.drawShape;\n\n this.x += this.vx;\n this.y += this.vy;\n this.vy += gravity;\n this.vx += wind;\n this.vx *= friction;\n this.vy *= friction;\n\n if (this.rotateY >= 1 && this.rotationDirection === RotationDirection.Positive) {\n this.rotationDirection = RotationDirection.Negative;\n } else if (this.rotateY <= -1 && this.rotationDirection === RotationDirection.Negative) {\n this.rotationDirection = RotationDirection.Positive;\n }\n\n var rotateDelta = 0.1 * this.rotationDirection;\n this.rotateY += rotateDelta;\n this.angle += this.angularSpin;\n this.context.save();\n this.context.translate(this.x, this.y);\n this.context.rotate(this.angle);\n this.context.scale(1, this.rotateY);\n this.context.rotate(this.angle);\n this.context.beginPath();\n this.context.fillStyle = this.color;\n this.context.strokeStyle = this.color;\n this.context.globalAlpha = opacity;\n this.context.lineCap = 'round';\n this.context.lineWidth = 2;\n\n if (drawShape && typeof drawShape === 'function') {\n drawShape.call(this, this.context);\n } else {\n switch (this.shape) {\n case ParticleShape.Circle:\n {\n this.context.beginPath();\n this.context.arc(0, 0, this.radius, 0, 2 * Math.PI);\n this.context.fill();\n break;\n }\n\n case ParticleShape.Square:\n {\n this.context.fillRect(-this.w / 2, -this.h / 2, this.w, this.h);\n break;\n }\n\n case ParticleShape.Strip:\n {\n this.context.fillRect(-this.w / 6, -this.h / 2, this.w / 3, this.h);\n break;\n }\n\n default:\n {\n throw new Error('Unknown type in Particle.ts');\n }\n }\n }\n\n this.context.closePath();\n this.context.restore();\n };\n\n return Particle;\n}();\n\nvar ParticleGeneratorClass = function ParticleGeneratorClass(canvas, getOptions) {\n var _this = this;\n\n this.x = 0;\n this.y = 0;\n this.w = 0;\n this.h = 0;\n this.lastNumberOfPieces = 0;\n this.tweenInitTime = Date.now();\n this.particles = [];\n this.particlesGenerated = 0;\n\n this.removeParticleAt = function (i) {\n _this.particles.splice(i, 1);\n };\n\n this.getParticle = function () {\n var newParticleX = randomRange(_this.x, _this.w + _this.x);\n var newParticleY = randomRange(_this.y, _this.h + _this.y);\n return new Particle(_this.context, _this.getOptions, newParticleX, newParticleY);\n };\n\n this.animate = function () {\n var canvas = _this.canvas,\n context = _this.context,\n particlesGenerated = _this.particlesGenerated,\n lastNumberOfPieces = _this.lastNumberOfPieces;\n\n var _this$getOptions = _this.getOptions(),\n run = _this$getOptions.run,\n recycle = _this$getOptions.recycle,\n numberOfPieces = _this$getOptions.numberOfPieces,\n debug = _this$getOptions.debug,\n tweenFunction = _this$getOptions.tweenFunction,\n tweenDuration = _this$getOptions.tweenDuration;\n\n if (!run) {\n return false;\n }\n\n var nP = _this.particles.length;\n var activeCount = recycle ? nP : particlesGenerated;\n var now = Date.now(); // Initial population\n\n if (activeCount < numberOfPieces) {\n // Use the numberOfPieces prop as a key to reset the easing timing\n if (lastNumberOfPieces !== numberOfPieces) {\n _this.tweenInitTime = now;\n _this.lastNumberOfPieces = numberOfPieces;\n }\n\n var tweenInitTime = _this.tweenInitTime; // Add more than one piece per loop, otherwise the number of pieces would\n // be limitted by the RAF framerate\n\n var progressTime = now - tweenInitTime > tweenDuration ? tweenDuration : Math.max(0, now - tweenInitTime);\n var tweenedVal = tweenFunction(progressTime, activeCount, numberOfPieces, tweenDuration);\n var numToAdd = Math.round(tweenedVal - activeCount);\n\n for (var i = 0; i < numToAdd; i += 1) {\n _this.particles.push(_this.getParticle());\n }\n\n _this.particlesGenerated += numToAdd;\n }\n\n if (debug) {\n // Draw debug text\n context.font = '12px sans-serif';\n context.fillStyle = '#333';\n context.textAlign = 'right';\n context.fillText(\"Particles: \" + nP, canvas.width - 10, canvas.height - 20);\n } // Maintain the population\n\n\n _this.particles.forEach(function (p, i) {\n // Update each particle's position\n p.update(); // Prune the off-canvas particles\n\n if (p.y > canvas.height || p.y < -100 || p.x > canvas.width + 100 || p.x < -100) {\n if (recycle && activeCount <= numberOfPieces) {\n // Replace the particle with a brand new one\n _this.particles[i] = _this.getParticle();\n } else {\n _this.removeParticleAt(i);\n }\n }\n });\n\n return nP > 0 || activeCount < numberOfPieces;\n };\n\n this.canvas = canvas;\n var ctx = this.canvas.getContext('2d');\n\n if (!ctx) {\n throw new Error('Could not get canvas context');\n }\n\n this.context = ctx;\n this.getOptions = getOptions;\n};\n\nvar confettiDefaults = {\n width: typeof window !== 'undefined' ? window.innerWidth : 300,\n height: typeof window !== 'undefined' ? window.innerHeight : 200,\n numberOfPieces: 200,\n friction: 0.99,\n wind: 0,\n gravity: 0.1,\n initialVelocityX: 4,\n initialVelocityY: 10,\n colors: ['#f44336', '#e91e63', '#9c27b0', '#673ab7', '#3f51b5', '#2196f3', '#03a9f4', '#00bcd4', '#009688', '#4CAF50', '#8BC34A', '#CDDC39', '#FFEB3B', '#FFC107', '#FF9800', '#FF5722', '#795548'],\n opacity: 1.0,\n debug: false,\n tweenFunction: tweens.easeInOutQuad,\n tweenDuration: 5000,\n recycle: true,\n run: true\n};\nvar Confetti = /*#__PURE__*/function () {\n function Confetti(canvas, opts) {\n var _this = this;\n\n this.setOptionsWithDefaults = function (opts) {\n var computedConfettiDefaults = {\n confettiSource: {\n x: 0,\n y: 0,\n w: _this.canvas.width,\n h: 0\n }\n };\n _this._options = _extends({}, computedConfettiDefaults, confettiDefaults, opts);\n Object.assign(_this, opts.confettiSource);\n };\n\n this.update = function () {\n var _this$options = _this.options,\n run = _this$options.run,\n onConfettiComplete = _this$options.onConfettiComplete,\n canvas = _this.canvas,\n context = _this.context;\n\n if (run) {\n context.fillStyle = 'white';\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n\n if (_this.generator.animate()) {\n _this.rafId = requestAnimationFrame(_this.update);\n } else {\n if (onConfettiComplete && typeof onConfettiComplete === 'function' && _this.generator.particlesGenerated > 0) {\n onConfettiComplete.call(_this, _this);\n }\n\n _this._options.run = false;\n }\n };\n\n this.reset = function () {\n if (_this.generator && _this.generator.particlesGenerated > 0) {\n _this.generator.particlesGenerated = 0;\n _this.generator.particles = [];\n _this.generator.lastNumberOfPieces = 0;\n }\n };\n\n this.stop = function () {\n _this.options = {\n run: false\n };\n\n if (_this.rafId) {\n cancelAnimationFrame(_this.rafId);\n _this.rafId = undefined;\n }\n };\n\n this.canvas = canvas;\n var ctx = this.canvas.getContext('2d');\n\n if (!ctx) {\n throw new Error('Could not get canvas context');\n }\n\n this.context = ctx;\n this.generator = new ParticleGeneratorClass(this.canvas, function () {\n return _this.options;\n });\n this.options = opts;\n this.update();\n }\n\n _createClass(Confetti, [{\n key: \"options\",\n get: function get() {\n return this._options;\n },\n set: function set(opts) {\n var lastRunState = this._options && this._options.run;\n var lastRecycleState = this._options && this._options.recycle;\n this.setOptionsWithDefaults(opts);\n\n if (this.generator) {\n Object.assign(this.generator, this.options.confettiSource);\n\n if (typeof opts.recycle === 'boolean' && opts.recycle && lastRecycleState === false) {\n this.generator.lastNumberOfPieces = this.generator.particles.length;\n }\n }\n\n if (typeof opts.run === 'boolean' && opts.run && lastRunState === false) {\n this.update();\n }\n }\n }]);\n\n return Confetti;\n}();\n\nvar ref = /*#__PURE__*/React.createRef();\n\nfunction extractCanvasProps(props) {\n var confettiOptions = {};\n var refs = {};\n var rest = {};\n var confettiOptionKeys = [].concat(Object.keys(confettiDefaults), ['confettiSource', 'drawShape', 'onConfettiComplete']);\n var refProps = ['canvasRef'];\n Object.keys(props).forEach(function (prop) {\n var val = props[prop];\n\n if (confettiOptionKeys.includes(prop)) {\n confettiOptions[prop] = val;\n } else if (refProps.includes(prop)) {\n refProps[prop] = val;\n } else {\n rest[prop] = val;\n }\n });\n return [confettiOptions, rest, refs];\n}\n\nvar ConfettiReactInternal = /*#__PURE__*/function (_Component) {\n _inheritsLoose(ConfettiReactInternal, _Component);\n\n function ConfettiReactInternal(props) {\n var _this;\n\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this, props].concat(rest)) || this;\n _this.canvas = React.createRef();\n _this.canvas = props.canvasRef || ref;\n return _this;\n }\n\n var _proto = ConfettiReactInternal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.canvas.current) {\n var opts = extractCanvasProps(this.props)[0];\n this.confetti = new Confetti(this.canvas.current, opts);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var confettiOptions = extractCanvasProps(this.props)[0];\n\n if (this.confetti) {\n this.confetti.options = confettiOptions;\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.confetti) {\n this.confetti.stop();\n }\n\n this.confetti = undefined;\n };\n\n _proto.render = function render() {\n var _extractCanvasProps = extractCanvasProps(this.props),\n confettiOptions = _extractCanvasProps[0],\n passedProps = _extractCanvasProps[1];\n\n var canvasStyles = _extends({\n zIndex: 2,\n position: 'absolute',\n pointerEvents: 'none',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n }, passedProps.style);\n\n return React.createElement(\"canvas\", Object.assign({\n width: confettiOptions.width,\n height: confettiOptions.height,\n ref: this.canvas\n }, passedProps, {\n style: canvasStyles\n }));\n };\n\n return ConfettiReactInternal;\n}(Component);\n\nConfettiReactInternal.defaultProps = /*#__PURE__*/_extends({}, confettiDefaults);\nConfettiReactInternal.displayName = 'ConfettiReact'; // eslint-disable-next-line react/display-name\n\nvar Index = /*#__PURE__*/React.forwardRef(function (props, _ref) {\n return React.createElement(ConfettiReactInternal, Object.assign({\n canvasRef: ref\n }, props));\n});\n\nexport default Index;\nexport { Index };\n//# sourceMappingURL=confetti-react.esm.js.map\n","import { useSyncExternalStore } from \"react\";\nfunction subscribe() {\n return () => { };\n}\n/**\n * Return a boolean indicating if the JS has been hydrated already.\n * When doing Server-Side Rendering, the result will always be false.\n * When doing Client-Side Rendering, the result will always be false on the\n * first render and true from then on. Even if a new component renders it will\n * always start with true.\n *\n * Example: Disable a button that needs JS to work.\n * ```tsx\n * let hydrated = useHydrated();\n * return (\n * <button type=\"button\" disabled={!hydrated} onClick={doSomethingCustom}>\n * Click me\n * </button>\n * );\n * ```\n */\nexport function useHydrated() {\n return useSyncExternalStore(subscribe, () => true, () => false);\n}\n","import * as React from \"react\";\nimport { useHydrated } from \"./use-hydrated.js\";\n/**\n * Render the children only after the JS has loaded client-side. Use an optional\n * fallback component if the JS is not yet loaded.\n *\n * Example: Render a Chart component if JS loads, renders a simple FakeChart\n * component server-side or if there is no JS. The FakeChart can have only the\n * UI without the behavior or be a loading spinner or skeleton.\n * ```tsx\n * return (\n * <ClientOnly fallback={<FakeChart />}>\n * {() => <Chart />}\n * </ClientOnly>\n * );\n * ```\n */\nexport function ClientOnly({ children, fallback = null }) {\n return useHydrated() ? React.createElement(React.Fragment, null, children()) : React.createElement(React.Fragment, null, fallback);\n}\n","import { Index as ConfettiShower } from 'confetti-react'\nimport { ClientOnly } from 'remix-utils/client-only'\n\nexport function Confetti({ id }: { id?: string | null }) {\n\tif (!id) return null\n\n\treturn (\n\t\t<ClientOnly>\n\t\t\t{() => (\n\t\t\t\t<ConfettiShower\n\t\t\t\t\tkey={id}\n\t\t\t\t\trun={Boolean(id)}\n\t\t\t\t\trecycle={false}\n\t\t\t\t\tnumberOfPieces={800}\n\t\t\t\t\twidth={window.innerWidth}\n\t\t\t\t\theight={window.innerHeight}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</ClientOnly>\n\t)\n}\n","import { useEffect } from 'react'\nimport { Toaster, toast as showToast } from 'sonner'\nimport { type Toast } from '#app/utils/toast.server.ts'\n\nexport function EpicToaster({ toast }: { toast?: Toast | null }) {\n\treturn (\n\t\t<>\n\t\t\t<Toaster closeButton position=\"top-center\" />\n\t\t\t{toast ? <ShowToast toast={toast} /> : null}\n\t\t</>\n\t)\n}\n\nfunction ShowToast({ toast }: { toast: Toast }) {\n\tconst { id, type, title, description } = toast\n\tuseEffect(() => {\n\t\tsetTimeout(() => {\n\t\t\tshowToast[type](title, { id, description })\n\t\t}, 0)\n\t}, [description, id, title, type])\n\treturn null\n}\n","import \"/home/runner/work/epicshop/epicshop/packages/workshop-app/app/styles/app.css?transform-only\";export default \"__VITE_CSS_URL__2f686f6d652f72756e6e65722f776f726b2f6570696373686f702f6570696373686f702f7061636b616765732f776f726b73686f702d6170702f6170702f7374796c65732f6170702e6373733f7472616e73666f726d2d6f6e6c79__\"","import \"/home/runner/work/epicshop/epicshop/packages/workshop-app/app/styles/tailwind.css?transform-only\";export default \"__VITE_CSS_URL__2f686f6d652f72756e6e65722f776f726b2f6570696373686f702f6570696373686f702f7061636b616765732f776f726b73686f702d6170702f6170702f7374796c65732f7461696c77696e642e6373733f7472616e73666f726d2d6f6e6c79__\"","import path from 'node:path'\nimport { getPresentUsers } from '@epic-web/workshop-presence/presence.server'\nimport { getApps, getWorkshopTitle } from '@epic-web/workshop-utils/apps.server'\nimport {\n\tgetDiscordMember,\n\tgetPreferences,\n\tgetUserInfo,\n\treadOnboardingData,\n} from '@epic-web/workshop-utils/db.server'\nimport { makeTimings, time } from '@epic-web/workshop-utils/timing.server'\nimport { cssBundleHref } from '@remix-run/css-bundle'\nimport {\n\ttype LoaderFunctionArgs,\n\ttype HeadersFunction,\n\ttype LinksFunction,\n\ttype MetaFunction,\n\tjson,\n\tredirect,\n} from '@remix-run/node'\nimport {\n\tLinks,\n\tMeta,\n\tOutlet,\n\tScripts,\n\tScrollRestoration,\n\tuseLoaderData,\n\tuseNavigation,\n\tuseRevalidator,\n} from '@remix-run/react'\nimport { useEffect } from 'react'\nimport { useSpinDelay } from 'spin-delay'\nimport { Confetti } from './components/confetti.tsx'\nimport { GeneralErrorBoundary } from './components/error-boundary.tsx'\nimport { EpicProgress } from './components/progress-bar.tsx'\nimport { EpicToaster } from './components/toaster.tsx'\nimport { TooltipProvider } from './components/ui/tooltip.tsx'\nimport { useTheme } from './routes/theme/index.tsx'\nimport { getTheme } from './routes/theme/theme-session.server.ts'\nimport appStylesheetUrl from './styles/app.css?url'\nimport tailwindStylesheetUrl from './styles/tailwind.css?url'\nimport { ClientHintCheck, getHints } from './utils/client-hints.tsx'\nimport { getConfetti } from './utils/confetti.server.ts'\nimport { getEnv } from './utils/env.server.ts'\nimport { getProgress } from './utils/epic-api.ts'\nimport { cn, combineHeaders, getDomainUrl, useAltDown } from './utils/misc.tsx'\nimport { Presence } from './utils/presence.tsx'\nimport { getToast } from './utils/toast.server.ts'\n\nexport const links: LinksFunction = () => {\n\treturn [\n\t\t{ rel: 'stylesheet', href: '/neogrotesk-font.css' },\n\t\t{\n\t\t\trel: 'stylesheet',\n\t\t\thref: 'https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,200;0,300;0,400;0,500;0,600;1,700&display=swap',\n\t\t},\n\t\t{ rel: 'stylesheet', href: tailwindStylesheetUrl },\n\t\t{ rel: 'stylesheet', href: appStylesheetUrl },\n\t\t...(cssBundleHref ? [{ rel: 'stylesheet', href: cssBundleHref }] : []),\n\t\t{ rel: 'mask-icon', href: '/favicons/favicon.svg' },\n\t\t{\n\t\t\trel: 'alternate icon',\n\t\t\ttype: 'image/png',\n\t\t\thref: '/favicon.png',\n\t\t},\n\t\t{ rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' },\n\t]\n}\n\nexport const meta: MetaFunction<typeof loader> = ({ data }) => {\n\treturn [{ title: data?.workshopTitle }]\n}\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('rootLoader')\n\tconst onboarding = await readOnboardingData()\n\tif (!ENV.EPICSHOP_DEPLOYED && !onboarding?.finishedTourVideo) {\n\t\tif (new URL(request.url).pathname !== '/onboarding') {\n\t\t\tthrow redirect('/onboarding')\n\t\t}\n\t}\n\tconst workshopTitle = await time(() => getWorkshopTitle(), {\n\t\ttype: 'getWorkshopTitle',\n\t\tdesc: 'getWorkshopTitle in root',\n\t\ttimings,\n\t})\n\n\tconst preferences = await getPreferences()\n\tconst progress = await getProgress({ timings }).catch(e => {\n\t\tconsole.error('Failed to get progress', e)\n\t\tconst emptyProgress: Awaited<ReturnType<typeof getProgress>> = []\n\t\treturn emptyProgress\n\t})\n\tconst { toast, headers: toastHeaders } = await getToast(request)\n\tconst { confettiId, headers: confettiHeaders } = getConfetti(request)\n\tconst discordMember = await getDiscordMember()\n\tconst theme = getTheme(request)\n\tconst user = await getUserInfo()\n\tconst apps = await getApps({ request, timings })\n\tconst presentUsers = await getPresentUsers(user, { request, timings })\n\treturn json(\n\t\t{\n\t\t\tworkshopTitle,\n\t\t\tapps: apps.map(({ name, fullPath, relativePath }) => ({\n\t\t\t\tname,\n\t\t\t\tfullPath,\n\t\t\t\trelativePath,\n\t\t\t})),\n\t\t\tENV: getEnv(),\n\t\t\trequestInfo: {\n\t\t\t\tdomain: getDomainUrl(request),\n\t\t\t\thints: getHints(request),\n\t\t\t\tpath: new URL(request.url).pathname,\n\t\t\t\tsession: { theme },\n\t\t\t\tseparator: path.sep,\n\t\t\t},\n\t\t\tprogress,\n\t\t\tpreferences,\n\t\t\tdiscordMember,\n\t\t\tuser,\n\t\t\ttoast,\n\t\t\tconfettiId,\n\t\t\tpresence: {\n\t\t\t\tusers: presentUsers,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\theaders: combineHeaders(toastHeaders, confettiHeaders, {\n\t\t\t\t'Server-Timing': timings.toString(),\n\t\t\t}),\n\t\t},\n\t)\n}\n\nexport const headers: HeadersFunction = ({ loaderHeaders }) => {\n\tconst headers = {\n\t\t'Cache-Control': loaderHeaders.get('Cache-Control') ?? '',\n\t\t'Server-Timing': loaderHeaders.get('Server-Timing') ?? '',\n\t}\n\treturn headers\n}\n\nfunction Document({\n\tchildren,\n\tenv = {},\n\tclassName,\n}: {\n\tchildren: React.ReactNode\n\tenv?: Record<string, unknown>\n\tclassName: string\n}) {\n\tconst revalidator = useRevalidator()\n\tuseEffect(() => {\n\t\twindow.__epicshop ??= {}\n\t\twindow.__epicshop.handleFileChange = revalidator.revalidate\n\t}, [revalidator])\n\treturn (\n\t\t<html lang=\"en\" className={className}>\n\t\t\t<head>\n\t\t\t\t<ClientHintCheck />\n\t\t\t\t<Meta />\n\t\t\t\t<meta charSet=\"utf-8\" />\n\t\t\t\t<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n\t\t\t\t<Links />\n\t\t\t\t<script\n\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t__html: `window.ENV = ${JSON.stringify(env)}`,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</head>\n\t\t\t<body className=\"bg-background text-foreground scrollbar-thin scrollbar-thumb-scrollbar h-screen-safe\">\n\t\t\t\t{children}\n\t\t\t\t<ScrollRestoration />\n\t\t\t\t<Scripts />\n\t\t\t\t{ENV.EPICSHOP_DEPLOYED ? null : (\n\t\t\t\t\t<script dangerouslySetInnerHTML={{ __html: getWebsocketJS() }} />\n\t\t\t\t)}\n\t\t\t</body>\n\t\t</html>\n\t)\n}\n\nfunction App() {\n\tconst data = useLoaderData<typeof loader>()\n\tconst navigation = useNavigation()\n\tconst showSpinner = useSpinDelay(navigation.state !== 'idle', {\n\t\tdelay: 400,\n\t\tminDuration: 200,\n\t})\n\tconst altDown = useAltDown()\n\n\tconst theme = useTheme()\n\treturn (\n\t\t<Document\n\t\t\tclassName={cn(\n\t\t\t\t'antialiased h-screen-safe',\n\t\t\t\ttheme,\n\t\t\t\t{ 'cursor-progress': showSpinner },\n\t\t\t\taltDown ? 'alt-down' : null,\n\t\t\t)}\n\t\t\tenv={data.ENV}\n\t\t>\n\t\t\t<Outlet />\n\t\t\t<Confetti id={data.confettiId} />\n\t\t\t<EpicToaster toast={data.toast} />\n\t\t\t<EpicProgress />\n\t\t</Document>\n\t)\n}\n\nexport default function AppWithProviders() {\n\tconst { user } = useLoaderData<typeof loader>()\n\treturn (\n\t\t<Presence user={user}>\n\t\t\t<TooltipProvider>\n\t\t\t\t<App />\n\t\t\t</TooltipProvider>\n\t\t</Presence>\n\t)\n}\n\nexport function ErrorBoundary() {\n\treturn (\n\t\t<Document className=\"h-screen-safe\">\n\t\t\t<GeneralErrorBoundary />\n\t\t</Document>\n\t)\n}\n\nfunction getWebsocketJS() {\n\tconst js = /* javascript */ `\n\tfunction epicLiveReloadConnect(config) {\n\t\tconst protocol = location.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n\t\tconst host = location.hostname;\n\t\tconst port = location.port;\n\t\tconst socketPath = protocol + \"//\" + host + \":\" + port + \"/__ws\";\n\t\tconst ws = new WebSocket(socketPath);\n\t\tfunction handleFileChange(changedFiles) {\n\t\t\tconsole.log(\n\t\t\t\t['🐨 Reloading', window.frameElement?.getAttribute('title')]\n\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t.join(' '),\n\t\t\t\tchangedFiles\n\t\t\t);\n\t\t\tif (typeof window.__epicshop?.handleFileChange === \"function\") {\n\t\t\t\twindow.__epicshop?.handleFileChange();\n\t\t\t} else {\n\t\t\t\tsetTimeout(() => window.location.reload(), 200);\n\t\t\t}\n\t\t}\n\t\tfunction debounce(fn, ms) {\n\t\t\tlet timeout;\n\t\t\treturn function debouncedFn(...args) {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\ttimeout = setTimeout(() => fn(...args), ms);\n\t\t\t};\n\t\t}\n\t\tconst debouncedHandleFileChange = debounce(handleFileChange, 50);\n\t\tws.onmessage = (message) => {\n\t\t\tconst event = JSON.parse(message.data);\n\t\t\tif (event.type !== 'epicshop:file-change') return;\n\t\t\tconst { filePaths } = event.data;\n\t\t\tdebouncedHandleFileChange(filePaths);\n\t\t};\n\t\tws.onopen = () => {\n\t\t\tif (config && typeof config.onOpen === \"function\") {\n\t\t\t\tconfig.onOpen();\n\t\t\t}\n\t\t};\n\t\tws.onclose = (event) => {\n\t\t\tif (event.code === 1006) {\n\t\t\t\tconsole.log(\"Epic Web dev server web socket closed. Reconnecting...\");\n\t\t\t\tsetTimeout(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tepicLiveReloadConnect({\n\t\t\t\t\t\t\tonOpen: () => window.location.reload(),\n\t\t\t\t\t\t}),\n\t\t\t\t1000\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tws.onerror = (error) => {\n\t\t\tconsole.log(\"Epic Web dev server web socket error:\");\n\t\t\tconsole.error(error);\n\t\t};\n\t}\n\tepicLiveReloadConnect();\n\t`\n\treturn js\n}\n"],"names":["STORAGE_KEY","ScrollRestoration","getKey","props","isSpaMode","useRemixContext","location","useLocation","matches","useMatches","UNSAFE_useScrollRestoration","key","React.useMemo","userKey","restoreScroll","restoreKey","storedY","error","React.createElement","_extends","tweenFunctions","t","b","_c","d","c","a","p","s","v","tweenFunctions_1","_defineProperties","target","i","descriptor","_createClass","Constructor","protoProps","staticProps","source","_inheritsLoose","subClass","superClass","_setPrototypeOf","o","degreesToRads","degrees","randomRange","min","max","randomInt","ParticleShape","RotationDirection","Particle","context","getOptions","x","y","_this$getOptions","colors","initialVelocityX","initialVelocityY","_proto","_this$getOptions2","gravity","wind","friction","opacity","drawShape","rotateDelta","ParticleGeneratorClass","canvas","_this","newParticleX","newParticleY","particlesGenerated","lastNumberOfPieces","run","recycle","numberOfPieces","debug","tweenFunction","tweenDuration","nP","activeCount","now","tweenInitTime","progressTime","tweenedVal","numToAdd","ctx","confettiDefaults","tweens","Confetti","opts","computedConfettiDefaults","_this$options","onConfettiComplete","lastRunState","lastRecycleState","ref","React","extractCanvasProps","confettiOptions","refs","rest","confettiOptionKeys","refProps","prop","val","ConfettiReactInternal","_Component","_len","_key","_extractCanvasProps","passedProps","canvasStyles","Component","Index","_ref","subscribe","useHydrated","useSyncExternalStore","ClientOnly","children","fallback","React.Fragment","id","jsx","ConfettiShower","EpicToaster","toast","jsxs","Fragment","Toaster","ShowToast","type","title","description","useEffect","showToast","appStylesheetUrl","tailwindStylesheetUrl","links","meta","data","Document","env","className","revalidator","useRevalidator","ClientHintCheck","Meta","Links","Scripts","getWebsocketJS","useLoaderData","navigation","showSpinner","useSpinDelay","altDown","useAltDown","theme","useTheme","cn","Outlet","EpicProgress","AppWithProviders","user","Presence","TooltipProvider","App","ErrorBoundary","GeneralErrorBoundary"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
1
+ {"version":3,"file":"root-BcFXTrBQ.js","sources":["../../../../../node_modules/@remix-run/react/dist/esm/scroll-restoration.js","../../../../../node_modules/tween-functions/index.js","../../../../../node_modules/confetti-react/dist/confetti-react.esm.js","../../../../../node_modules/remix-utils/build/react/use-hydrated.js","../../../../../node_modules/remix-utils/build/react/client-only.js","../../../app/components/confetti.tsx","../../../app/components/toaster.tsx","../../../app/styles/app.css?url","../../../app/styles/tailwind.css?url","../../../app/root.tsx"],"sourcesContent":["/**\n * @remix-run/react v2.8.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.js';\nimport * as React from 'react';\nimport { useLocation, useMatches, UNSAFE_useScrollRestoration } from 'react-router-dom';\nimport { useRemixContext } from './components.js';\n\nlet STORAGE_KEY = \"positions\";\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n *\n * @see https://remix.run/components/scroll-restoration\n */\nfunction ScrollRestoration({\n getKey,\n ...props\n}) {\n let {\n isSpaMode\n } = useRemixContext();\n let location = useLocation();\n let matches = useMatches();\n UNSAFE_useScrollRestoration({\n getKey,\n storageKey: STORAGE_KEY\n });\n\n // In order to support `getKey`, we need to compute a \"key\" here so we can\n // hydrate that up so that SSR scroll restoration isn't waiting on React to\n // hydrate. *However*, our key on the server is not the same as our key on\n // the client! So if the user's getKey implementation returns the SSR\n // location key, then let's ignore it and let our inline <script> below pick\n // up the client side history state key\n let key = React.useMemo(() => {\n if (!getKey) return null;\n let userKey = getKey(location, matches);\n return userKey !== location.key ? userKey : null;\n },\n // Nah, we only need this the first time for the SSR render\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n\n // In SPA Mode, there's nothing to restore on initial render since we didn't\n // render anything on the server\n if (isSpaMode) {\n return null;\n }\n let restoreScroll = ((STORAGE_KEY, restoreKey) => {\n if (!window.history.state || !window.history.state.key) {\n let key = Math.random().toString(32).slice(2);\n window.history.replaceState({\n key\n }, \"\");\n }\n try {\n let positions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || \"{}\");\n let storedY = positions[restoreKey || window.history.state.key];\n if (typeof storedY === \"number\") {\n window.scrollTo(0, storedY);\n }\n } catch (error) {\n console.error(error);\n sessionStorage.removeItem(STORAGE_KEY);\n }\n }).toString();\n return /*#__PURE__*/React.createElement(\"script\", _extends({}, props, {\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: `(${restoreScroll})(${JSON.stringify(STORAGE_KEY)}, ${JSON.stringify(key)})`\n }\n }));\n}\n\nexport { ScrollRestoration };\n","'use strict';\n\n// t: current time, b: beginning value, _c: final value, d: total duration\nvar tweenFunctions = {\n linear: function(t, b, _c, d) {\n var c = _c - b;\n return c * t / d + b;\n },\n easeInQuad: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t + b;\n },\n easeOutQuad: function(t, b, _c, d) {\n var c = _c - b;\n return -c * (t /= d) * (t - 2) + b;\n },\n easeInOutQuad: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t + b;\n } else {\n return -c / 2 * ((--t) * (t - 2) - 1) + b;\n }\n },\n easeInCubic: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t * t + b;\n },\n easeOutCubic: function(t, b, _c, d) {\n var c = _c - b;\n return c * ((t = t / d - 1) * t * t + 1) + b;\n },\n easeInOutCubic: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t * t + b;\n } else {\n return c / 2 * ((t -= 2) * t * t + 2) + b;\n }\n },\n easeInQuart: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t * t * t + b;\n },\n easeOutQuart: function(t, b, _c, d) {\n var c = _c - b;\n return -c * ((t = t / d - 1) * t * t * t - 1) + b;\n },\n easeInOutQuart: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t * t * t + b;\n } else {\n return -c / 2 * ((t -= 2) * t * t * t - 2) + b;\n }\n },\n easeInQuint: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t * t * t * t + b;\n },\n easeOutQuint: function(t, b, _c, d) {\n var c = _c - b;\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n },\n easeInOutQuint: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t * t * t * t + b;\n } else {\n return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;\n }\n },\n easeInSine: function(t, b, _c, d) {\n var c = _c - b;\n return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;\n },\n easeOutSine: function(t, b, _c, d) {\n var c = _c - b;\n return c * Math.sin(t / d * (Math.PI / 2)) + b;\n },\n easeInOutSine: function(t, b, _c, d) {\n var c = _c - b;\n return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;\n },\n easeInExpo: function(t, b, _c, d) {\n var c = _c - b;\n return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;\n },\n easeOutExpo: function(t, b, _c, d) {\n var c = _c - b;\n return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;\n },\n easeInOutExpo: function(t, b, _c, d) {\n var c = _c - b;\n if (t === 0) {\n return b;\n }\n if (t === d) {\n return b + c;\n }\n if ((t /= d / 2) < 1) {\n return c / 2 * Math.pow(2, 10 * (t - 1)) + b;\n } else {\n return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;\n }\n },\n easeInCirc: function(t, b, _c, d) {\n var c = _c - b;\n return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;\n },\n easeOutCirc: function(t, b, _c, d) {\n var c = _c - b;\n return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\n },\n easeInOutCirc: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;\n } else {\n return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;\n }\n },\n easeInElastic: function(t, b, _c, d) {\n var c = _c - b;\n var a, p, s;\n s = 1.70158;\n p = 0;\n a = c;\n if (t === 0) {\n return b;\n } else if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;\n },\n easeOutElastic: function(t, b, _c, d) {\n var c = _c - b;\n var a, p, s;\n s = 1.70158;\n p = 0;\n a = c;\n if (t === 0) {\n return b;\n } else if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;\n },\n easeInOutElastic: function(t, b, _c, d) {\n var c = _c - b;\n var a, p, s;\n s = 1.70158;\n p = 0;\n a = c;\n if (t === 0) {\n return b;\n } else if ((t /= d / 2) === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n if (t < 1) {\n return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;\n } else {\n return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * 0.5 + c + b;\n }\n },\n easeInBack: function(t, b, _c, d, s) {\n var c = _c - b;\n if (s === void 0) {\n s = 1.70158;\n }\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n },\n easeOutBack: function(t, b, _c, d, s) {\n var c = _c - b;\n if (s === void 0) {\n s = 1.70158;\n }\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n },\n easeInOutBack: function(t, b, _c, d, s) {\n var c = _c - b;\n if (s === void 0) {\n s = 1.70158;\n }\n if ((t /= d / 2) < 1) {\n return c / 2 * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\n } else {\n return c / 2 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\n }\n },\n easeInBounce: function(t, b, _c, d) {\n var c = _c - b;\n var v;\n v = tweenFunctions.easeOutBounce(d - t, 0, c, d);\n return c - v + b;\n },\n easeOutBounce: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d) < 1 / 2.75) {\n return c * (7.5625 * t * t) + b;\n } else if (t < 2 / 2.75) {\n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\n } else if (t < 2.5 / 2.75) {\n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\n } else {\n return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\n }\n },\n easeInOutBounce: function(t, b, _c, d) {\n var c = _c - b;\n var v;\n if (t < d / 2) {\n v = tweenFunctions.easeInBounce(t * 2, 0, c, d);\n return v * 0.5 + b;\n } else {\n v = tweenFunctions.easeOutBounce(t * 2 - d, 0, c, d);\n return v * 0.5 + c * 0.5 + b;\n }\n }\n};\n\nmodule.exports = tweenFunctions;\n","import React, { Component } from 'react';\nimport tweens from 'tween-functions';\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction degreesToRads(degrees) {\n return degrees * Math.PI / 180;\n}\nfunction randomRange(min, max) {\n return min + Math.random() * (max - min);\n}\nfunction randomInt(min, max) {\n return Math.floor(min + Math.random() * (max - min + 1));\n}\n\nvar ParticleShape;\n\n(function (ParticleShape) {\n ParticleShape[ParticleShape[\"Circle\"] = 0] = \"Circle\";\n ParticleShape[ParticleShape[\"Square\"] = 1] = \"Square\";\n ParticleShape[ParticleShape[\"Strip\"] = 2] = \"Strip\";\n})(ParticleShape || (ParticleShape = {}));\n\nvar RotationDirection;\n\n(function (RotationDirection) {\n RotationDirection[RotationDirection[\"Positive\"] = 1] = \"Positive\";\n RotationDirection[RotationDirection[\"Negative\"] = -1] = \"Negative\";\n})(RotationDirection || (RotationDirection = {}));\n\nvar Particle = /*#__PURE__*/function () {\n function Particle(context, getOptions, x, y) {\n this.getOptions = getOptions;\n\n var _this$getOptions = this.getOptions(),\n colors = _this$getOptions.colors,\n initialVelocityX = _this$getOptions.initialVelocityX,\n initialVelocityY = _this$getOptions.initialVelocityY;\n\n this.context = context;\n this.x = x;\n this.y = y;\n this.w = randomRange(5, 20);\n this.h = randomRange(5, 20);\n this.radius = randomRange(5, 10);\n this.vx = randomRange(-initialVelocityX, initialVelocityX);\n this.vy = randomRange(-initialVelocityY, 0);\n this.shape = randomInt(0, 2);\n this.angle = degreesToRads(randomRange(0, 360));\n this.angularSpin = randomRange(-0.2, 0.2);\n this.color = colors[Math.floor(Math.random() * colors.length)];\n this.rotateY = randomRange(0, 1);\n this.rotationDirection = randomRange(0, 1) ? RotationDirection.Positive : RotationDirection.Negative;\n }\n\n var _proto = Particle.prototype;\n\n _proto.update = function update() {\n var _this$getOptions2 = this.getOptions(),\n gravity = _this$getOptions2.gravity,\n wind = _this$getOptions2.wind,\n friction = _this$getOptions2.friction,\n opacity = _this$getOptions2.opacity,\n drawShape = _this$getOptions2.drawShape;\n\n this.x += this.vx;\n this.y += this.vy;\n this.vy += gravity;\n this.vx += wind;\n this.vx *= friction;\n this.vy *= friction;\n\n if (this.rotateY >= 1 && this.rotationDirection === RotationDirection.Positive) {\n this.rotationDirection = RotationDirection.Negative;\n } else if (this.rotateY <= -1 && this.rotationDirection === RotationDirection.Negative) {\n this.rotationDirection = RotationDirection.Positive;\n }\n\n var rotateDelta = 0.1 * this.rotationDirection;\n this.rotateY += rotateDelta;\n this.angle += this.angularSpin;\n this.context.save();\n this.context.translate(this.x, this.y);\n this.context.rotate(this.angle);\n this.context.scale(1, this.rotateY);\n this.context.rotate(this.angle);\n this.context.beginPath();\n this.context.fillStyle = this.color;\n this.context.strokeStyle = this.color;\n this.context.globalAlpha = opacity;\n this.context.lineCap = 'round';\n this.context.lineWidth = 2;\n\n if (drawShape && typeof drawShape === 'function') {\n drawShape.call(this, this.context);\n } else {\n switch (this.shape) {\n case ParticleShape.Circle:\n {\n this.context.beginPath();\n this.context.arc(0, 0, this.radius, 0, 2 * Math.PI);\n this.context.fill();\n break;\n }\n\n case ParticleShape.Square:\n {\n this.context.fillRect(-this.w / 2, -this.h / 2, this.w, this.h);\n break;\n }\n\n case ParticleShape.Strip:\n {\n this.context.fillRect(-this.w / 6, -this.h / 2, this.w / 3, this.h);\n break;\n }\n\n default:\n {\n throw new Error('Unknown type in Particle.ts');\n }\n }\n }\n\n this.context.closePath();\n this.context.restore();\n };\n\n return Particle;\n}();\n\nvar ParticleGeneratorClass = function ParticleGeneratorClass(canvas, getOptions) {\n var _this = this;\n\n this.x = 0;\n this.y = 0;\n this.w = 0;\n this.h = 0;\n this.lastNumberOfPieces = 0;\n this.tweenInitTime = Date.now();\n this.particles = [];\n this.particlesGenerated = 0;\n\n this.removeParticleAt = function (i) {\n _this.particles.splice(i, 1);\n };\n\n this.getParticle = function () {\n var newParticleX = randomRange(_this.x, _this.w + _this.x);\n var newParticleY = randomRange(_this.y, _this.h + _this.y);\n return new Particle(_this.context, _this.getOptions, newParticleX, newParticleY);\n };\n\n this.animate = function () {\n var canvas = _this.canvas,\n context = _this.context,\n particlesGenerated = _this.particlesGenerated,\n lastNumberOfPieces = _this.lastNumberOfPieces;\n\n var _this$getOptions = _this.getOptions(),\n run = _this$getOptions.run,\n recycle = _this$getOptions.recycle,\n numberOfPieces = _this$getOptions.numberOfPieces,\n debug = _this$getOptions.debug,\n tweenFunction = _this$getOptions.tweenFunction,\n tweenDuration = _this$getOptions.tweenDuration;\n\n if (!run) {\n return false;\n }\n\n var nP = _this.particles.length;\n var activeCount = recycle ? nP : particlesGenerated;\n var now = Date.now(); // Initial population\n\n if (activeCount < numberOfPieces) {\n // Use the numberOfPieces prop as a key to reset the easing timing\n if (lastNumberOfPieces !== numberOfPieces) {\n _this.tweenInitTime = now;\n _this.lastNumberOfPieces = numberOfPieces;\n }\n\n var tweenInitTime = _this.tweenInitTime; // Add more than one piece per loop, otherwise the number of pieces would\n // be limitted by the RAF framerate\n\n var progressTime = now - tweenInitTime > tweenDuration ? tweenDuration : Math.max(0, now - tweenInitTime);\n var tweenedVal = tweenFunction(progressTime, activeCount, numberOfPieces, tweenDuration);\n var numToAdd = Math.round(tweenedVal - activeCount);\n\n for (var i = 0; i < numToAdd; i += 1) {\n _this.particles.push(_this.getParticle());\n }\n\n _this.particlesGenerated += numToAdd;\n }\n\n if (debug) {\n // Draw debug text\n context.font = '12px sans-serif';\n context.fillStyle = '#333';\n context.textAlign = 'right';\n context.fillText(\"Particles: \" + nP, canvas.width - 10, canvas.height - 20);\n } // Maintain the population\n\n\n _this.particles.forEach(function (p, i) {\n // Update each particle's position\n p.update(); // Prune the off-canvas particles\n\n if (p.y > canvas.height || p.y < -100 || p.x > canvas.width + 100 || p.x < -100) {\n if (recycle && activeCount <= numberOfPieces) {\n // Replace the particle with a brand new one\n _this.particles[i] = _this.getParticle();\n } else {\n _this.removeParticleAt(i);\n }\n }\n });\n\n return nP > 0 || activeCount < numberOfPieces;\n };\n\n this.canvas = canvas;\n var ctx = this.canvas.getContext('2d');\n\n if (!ctx) {\n throw new Error('Could not get canvas context');\n }\n\n this.context = ctx;\n this.getOptions = getOptions;\n};\n\nvar confettiDefaults = {\n width: typeof window !== 'undefined' ? window.innerWidth : 300,\n height: typeof window !== 'undefined' ? window.innerHeight : 200,\n numberOfPieces: 200,\n friction: 0.99,\n wind: 0,\n gravity: 0.1,\n initialVelocityX: 4,\n initialVelocityY: 10,\n colors: ['#f44336', '#e91e63', '#9c27b0', '#673ab7', '#3f51b5', '#2196f3', '#03a9f4', '#00bcd4', '#009688', '#4CAF50', '#8BC34A', '#CDDC39', '#FFEB3B', '#FFC107', '#FF9800', '#FF5722', '#795548'],\n opacity: 1.0,\n debug: false,\n tweenFunction: tweens.easeInOutQuad,\n tweenDuration: 5000,\n recycle: true,\n run: true\n};\nvar Confetti = /*#__PURE__*/function () {\n function Confetti(canvas, opts) {\n var _this = this;\n\n this.setOptionsWithDefaults = function (opts) {\n var computedConfettiDefaults = {\n confettiSource: {\n x: 0,\n y: 0,\n w: _this.canvas.width,\n h: 0\n }\n };\n _this._options = _extends({}, computedConfettiDefaults, confettiDefaults, opts);\n Object.assign(_this, opts.confettiSource);\n };\n\n this.update = function () {\n var _this$options = _this.options,\n run = _this$options.run,\n onConfettiComplete = _this$options.onConfettiComplete,\n canvas = _this.canvas,\n context = _this.context;\n\n if (run) {\n context.fillStyle = 'white';\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n\n if (_this.generator.animate()) {\n _this.rafId = requestAnimationFrame(_this.update);\n } else {\n if (onConfettiComplete && typeof onConfettiComplete === 'function' && _this.generator.particlesGenerated > 0) {\n onConfettiComplete.call(_this, _this);\n }\n\n _this._options.run = false;\n }\n };\n\n this.reset = function () {\n if (_this.generator && _this.generator.particlesGenerated > 0) {\n _this.generator.particlesGenerated = 0;\n _this.generator.particles = [];\n _this.generator.lastNumberOfPieces = 0;\n }\n };\n\n this.stop = function () {\n _this.options = {\n run: false\n };\n\n if (_this.rafId) {\n cancelAnimationFrame(_this.rafId);\n _this.rafId = undefined;\n }\n };\n\n this.canvas = canvas;\n var ctx = this.canvas.getContext('2d');\n\n if (!ctx) {\n throw new Error('Could not get canvas context');\n }\n\n this.context = ctx;\n this.generator = new ParticleGeneratorClass(this.canvas, function () {\n return _this.options;\n });\n this.options = opts;\n this.update();\n }\n\n _createClass(Confetti, [{\n key: \"options\",\n get: function get() {\n return this._options;\n },\n set: function set(opts) {\n var lastRunState = this._options && this._options.run;\n var lastRecycleState = this._options && this._options.recycle;\n this.setOptionsWithDefaults(opts);\n\n if (this.generator) {\n Object.assign(this.generator, this.options.confettiSource);\n\n if (typeof opts.recycle === 'boolean' && opts.recycle && lastRecycleState === false) {\n this.generator.lastNumberOfPieces = this.generator.particles.length;\n }\n }\n\n if (typeof opts.run === 'boolean' && opts.run && lastRunState === false) {\n this.update();\n }\n }\n }]);\n\n return Confetti;\n}();\n\nvar ref = /*#__PURE__*/React.createRef();\n\nfunction extractCanvasProps(props) {\n var confettiOptions = {};\n var refs = {};\n var rest = {};\n var confettiOptionKeys = [].concat(Object.keys(confettiDefaults), ['confettiSource', 'drawShape', 'onConfettiComplete']);\n var refProps = ['canvasRef'];\n Object.keys(props).forEach(function (prop) {\n var val = props[prop];\n\n if (confettiOptionKeys.includes(prop)) {\n confettiOptions[prop] = val;\n } else if (refProps.includes(prop)) {\n refProps[prop] = val;\n } else {\n rest[prop] = val;\n }\n });\n return [confettiOptions, rest, refs];\n}\n\nvar ConfettiReactInternal = /*#__PURE__*/function (_Component) {\n _inheritsLoose(ConfettiReactInternal, _Component);\n\n function ConfettiReactInternal(props) {\n var _this;\n\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this, props].concat(rest)) || this;\n _this.canvas = React.createRef();\n _this.canvas = props.canvasRef || ref;\n return _this;\n }\n\n var _proto = ConfettiReactInternal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.canvas.current) {\n var opts = extractCanvasProps(this.props)[0];\n this.confetti = new Confetti(this.canvas.current, opts);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var confettiOptions = extractCanvasProps(this.props)[0];\n\n if (this.confetti) {\n this.confetti.options = confettiOptions;\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.confetti) {\n this.confetti.stop();\n }\n\n this.confetti = undefined;\n };\n\n _proto.render = function render() {\n var _extractCanvasProps = extractCanvasProps(this.props),\n confettiOptions = _extractCanvasProps[0],\n passedProps = _extractCanvasProps[1];\n\n var canvasStyles = _extends({\n zIndex: 2,\n position: 'absolute',\n pointerEvents: 'none',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n }, passedProps.style);\n\n return React.createElement(\"canvas\", Object.assign({\n width: confettiOptions.width,\n height: confettiOptions.height,\n ref: this.canvas\n }, passedProps, {\n style: canvasStyles\n }));\n };\n\n return ConfettiReactInternal;\n}(Component);\n\nConfettiReactInternal.defaultProps = /*#__PURE__*/_extends({}, confettiDefaults);\nConfettiReactInternal.displayName = 'ConfettiReact'; // eslint-disable-next-line react/display-name\n\nvar Index = /*#__PURE__*/React.forwardRef(function (props, _ref) {\n return React.createElement(ConfettiReactInternal, Object.assign({\n canvasRef: ref\n }, props));\n});\n\nexport default Index;\nexport { Index };\n//# sourceMappingURL=confetti-react.esm.js.map\n","import { useSyncExternalStore } from \"react\";\nfunction subscribe() {\n return () => { };\n}\n/**\n * Return a boolean indicating if the JS has been hydrated already.\n * When doing Server-Side Rendering, the result will always be false.\n * When doing Client-Side Rendering, the result will always be false on the\n * first render and true from then on. Even if a new component renders it will\n * always start with true.\n *\n * Example: Disable a button that needs JS to work.\n * ```tsx\n * let hydrated = useHydrated();\n * return (\n * <button type=\"button\" disabled={!hydrated} onClick={doSomethingCustom}>\n * Click me\n * </button>\n * );\n * ```\n */\nexport function useHydrated() {\n return useSyncExternalStore(subscribe, () => true, () => false);\n}\n","import * as React from \"react\";\nimport { useHydrated } from \"./use-hydrated.js\";\n/**\n * Render the children only after the JS has loaded client-side. Use an optional\n * fallback component if the JS is not yet loaded.\n *\n * Example: Render a Chart component if JS loads, renders a simple FakeChart\n * component server-side or if there is no JS. The FakeChart can have only the\n * UI without the behavior or be a loading spinner or skeleton.\n * ```tsx\n * return (\n * <ClientOnly fallback={<FakeChart />}>\n * {() => <Chart />}\n * </ClientOnly>\n * );\n * ```\n */\nexport function ClientOnly({ children, fallback = null }) {\n return useHydrated() ? React.createElement(React.Fragment, null, children()) : React.createElement(React.Fragment, null, fallback);\n}\n","import { Index as ConfettiShower } from 'confetti-react'\nimport { ClientOnly } from 'remix-utils/client-only'\n\nexport function Confetti({ id }: { id?: string | null }) {\n\tif (!id) return null\n\n\treturn (\n\t\t<ClientOnly>\n\t\t\t{() => (\n\t\t\t\t<ConfettiShower\n\t\t\t\t\tkey={id}\n\t\t\t\t\trun={Boolean(id)}\n\t\t\t\t\trecycle={false}\n\t\t\t\t\tnumberOfPieces={800}\n\t\t\t\t\twidth={window.innerWidth}\n\t\t\t\t\theight={window.innerHeight}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</ClientOnly>\n\t)\n}\n","import { useEffect } from 'react'\nimport { Toaster, toast as showToast } from 'sonner'\nimport { type Toast } from '#app/utils/toast.server.ts'\n\nexport function EpicToaster({ toast }: { toast?: Toast | null }) {\n\treturn (\n\t\t<>\n\t\t\t<Toaster closeButton position=\"top-center\" />\n\t\t\t{toast ? <ShowToast toast={toast} /> : null}\n\t\t</>\n\t)\n}\n\nfunction ShowToast({ toast }: { toast: Toast }) {\n\tconst { id, type, title, description } = toast\n\tuseEffect(() => {\n\t\tsetTimeout(() => {\n\t\t\tshowToast[type](title, { id, description })\n\t\t}, 0)\n\t}, [description, id, title, type])\n\treturn null\n}\n","import \"/home/runner/work/epicshop/epicshop/packages/workshop-app/app/styles/app.css?transform-only\";export default \"__VITE_CSS_URL__2f686f6d652f72756e6e65722f776f726b2f6570696373686f702f6570696373686f702f7061636b616765732f776f726b73686f702d6170702f6170702f7374796c65732f6170702e6373733f7472616e73666f726d2d6f6e6c79__\"","import \"/home/runner/work/epicshop/epicshop/packages/workshop-app/app/styles/tailwind.css?transform-only\";export default \"__VITE_CSS_URL__2f686f6d652f72756e6e65722f776f726b2f6570696373686f702f6570696373686f702f7061636b616765732f776f726b73686f702d6170702f6170702f7374796c65732f7461696c77696e642e6373733f7472616e73666f726d2d6f6e6c79__\"","import path from 'node:path'\nimport { getPresentUsers } from '@epic-web/workshop-presence/presence.server'\nimport { getApps, getWorkshopTitle } from '@epic-web/workshop-utils/apps.server'\nimport {\n\tgetDiscordMember,\n\tgetPreferences,\n\tgetUserInfo,\n\treadOnboardingData,\n} from '@epic-web/workshop-utils/db.server'\nimport { makeTimings, time } from '@epic-web/workshop-utils/timing.server'\nimport { cssBundleHref } from '@remix-run/css-bundle'\nimport {\n\ttype LoaderFunctionArgs,\n\ttype HeadersFunction,\n\ttype LinksFunction,\n\ttype MetaFunction,\n\tjson,\n\tredirect,\n} from '@remix-run/node'\nimport {\n\tLinks,\n\tMeta,\n\tOutlet,\n\tScripts,\n\tScrollRestoration,\n\tuseLoaderData,\n\tuseNavigation,\n\tuseRevalidator,\n} from '@remix-run/react'\nimport { useEffect } from 'react'\nimport { useSpinDelay } from 'spin-delay'\nimport { Confetti } from './components/confetti.tsx'\nimport { GeneralErrorBoundary } from './components/error-boundary.tsx'\nimport { EpicProgress } from './components/progress-bar.tsx'\nimport { EpicToaster } from './components/toaster.tsx'\nimport { TooltipProvider } from './components/ui/tooltip.tsx'\nimport { useTheme } from './routes/theme/index.tsx'\nimport { getTheme } from './routes/theme/theme-session.server.ts'\nimport appStylesheetUrl from './styles/app.css?url'\nimport tailwindStylesheetUrl from './styles/tailwind.css?url'\nimport { ClientHintCheck, getHints } from './utils/client-hints.tsx'\nimport { getConfetti } from './utils/confetti.server.ts'\nimport { getEnv } from './utils/env.server.ts'\nimport { getProgress } from './utils/epic-api.ts'\nimport { cn, combineHeaders, getDomainUrl, useAltDown } from './utils/misc.tsx'\nimport { Presence } from './utils/presence.tsx'\nimport { getToast } from './utils/toast.server.ts'\n\nexport const links: LinksFunction = () => {\n\treturn [\n\t\t{ rel: 'stylesheet', href: '/neogrotesk-font.css' },\n\t\t{\n\t\t\trel: 'stylesheet',\n\t\t\thref: 'https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,200;0,300;0,400;0,500;0,600;1,700&display=swap',\n\t\t},\n\t\t{ rel: 'stylesheet', href: tailwindStylesheetUrl },\n\t\t{ rel: 'stylesheet', href: appStylesheetUrl },\n\t\t...(cssBundleHref ? [{ rel: 'stylesheet', href: cssBundleHref }] : []),\n\t\t{ rel: 'mask-icon', href: '/favicons/favicon.svg' },\n\t\t{\n\t\t\trel: 'alternate icon',\n\t\t\ttype: 'image/png',\n\t\t\thref: '/favicon.png',\n\t\t},\n\t\t{ rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' },\n\t]\n}\n\nexport const meta: MetaFunction<typeof loader> = ({ data }) => {\n\treturn [{ title: data?.workshopTitle }]\n}\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('rootLoader')\n\tconst onboarding = await readOnboardingData()\n\tif (!ENV.EPICSHOP_DEPLOYED && !onboarding?.finishedTourVideo) {\n\t\tif (new URL(request.url).pathname !== '/onboarding') {\n\t\t\tthrow redirect('/onboarding')\n\t\t}\n\t}\n\tconst workshopTitle = await time(() => getWorkshopTitle(), {\n\t\ttype: 'getWorkshopTitle',\n\t\tdesc: 'getWorkshopTitle in root',\n\t\ttimings,\n\t})\n\n\tconst preferences = await getPreferences()\n\tconst progress = await getProgress({ timings }).catch(e => {\n\t\tconsole.error('Failed to get progress', e)\n\t\tconst emptyProgress: Awaited<ReturnType<typeof getProgress>> = []\n\t\treturn emptyProgress\n\t})\n\tconst { toast, headers: toastHeaders } = await getToast(request)\n\tconst { confettiId, headers: confettiHeaders } = getConfetti(request)\n\tconst discordMember = await getDiscordMember()\n\tconst theme = getTheme(request)\n\tconst user = await getUserInfo()\n\tconst apps = await getApps({ request, timings })\n\tconst presentUsers = await getPresentUsers(user, { request, timings })\n\treturn json(\n\t\t{\n\t\t\tworkshopTitle,\n\t\t\tapps: apps.map(({ name, fullPath, relativePath }) => ({\n\t\t\t\tname,\n\t\t\t\tfullPath,\n\t\t\t\trelativePath,\n\t\t\t})),\n\t\t\tENV: getEnv(),\n\t\t\trequestInfo: {\n\t\t\t\torigin: new URL(request.url).origin,\n\t\t\t\tdomain: getDomainUrl(request),\n\t\t\t\thints: getHints(request),\n\t\t\t\tpath: new URL(request.url).pathname,\n\t\t\t\tsession: { theme },\n\t\t\t\tseparator: path.sep,\n\t\t\t},\n\t\t\tprogress,\n\t\t\tpreferences,\n\t\t\tdiscordMember,\n\t\t\tuser,\n\t\t\ttoast,\n\t\t\tconfettiId,\n\t\t\tpresence: {\n\t\t\t\tusers: presentUsers,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\theaders: combineHeaders(toastHeaders, confettiHeaders, {\n\t\t\t\t'Server-Timing': timings.toString(),\n\t\t\t}),\n\t\t},\n\t)\n}\n\nexport const headers: HeadersFunction = ({ loaderHeaders }) => {\n\tconst headers = {\n\t\t'Cache-Control': loaderHeaders.get('Cache-Control') ?? '',\n\t\t'Server-Timing': loaderHeaders.get('Server-Timing') ?? '',\n\t}\n\treturn headers\n}\n\nfunction Document({\n\tchildren,\n\tenv = {},\n\tclassName,\n}: {\n\tchildren: React.ReactNode\n\tenv?: Record<string, unknown>\n\tclassName: string\n}) {\n\tconst revalidator = useRevalidator()\n\tuseEffect(() => {\n\t\twindow.__epicshop ??= {}\n\t\twindow.__epicshop.handleFileChange = revalidator.revalidate\n\t}, [revalidator])\n\treturn (\n\t\t<html lang=\"en\" className={className}>\n\t\t\t<head>\n\t\t\t\t<ClientHintCheck />\n\t\t\t\t<Meta />\n\t\t\t\t<meta charSet=\"utf-8\" />\n\t\t\t\t<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n\t\t\t\t<Links />\n\t\t\t\t<script\n\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t__html: `window.ENV = ${JSON.stringify(env)}`,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</head>\n\t\t\t<body className=\"bg-background text-foreground scrollbar-thin scrollbar-thumb-scrollbar h-screen-safe\">\n\t\t\t\t{children}\n\t\t\t\t<ScrollRestoration />\n\t\t\t\t<Scripts />\n\t\t\t\t{ENV.EPICSHOP_DEPLOYED ? null : (\n\t\t\t\t\t<script dangerouslySetInnerHTML={{ __html: getWebsocketJS() }} />\n\t\t\t\t)}\n\t\t\t</body>\n\t\t</html>\n\t)\n}\n\nfunction App() {\n\tconst data = useLoaderData<typeof loader>()\n\tconst navigation = useNavigation()\n\tconst showSpinner = useSpinDelay(navigation.state !== 'idle', {\n\t\tdelay: 400,\n\t\tminDuration: 200,\n\t})\n\tconst altDown = useAltDown()\n\n\tconst theme = useTheme()\n\treturn (\n\t\t<Document\n\t\t\tclassName={cn(\n\t\t\t\t'antialiased h-screen-safe',\n\t\t\t\ttheme,\n\t\t\t\t{ 'cursor-progress': showSpinner },\n\t\t\t\taltDown ? 'alt-down' : null,\n\t\t\t)}\n\t\t\tenv={data.ENV}\n\t\t>\n\t\t\t<Outlet />\n\t\t\t<Confetti id={data.confettiId} />\n\t\t\t<EpicToaster toast={data.toast} />\n\t\t\t<EpicProgress />\n\t\t</Document>\n\t)\n}\n\nexport default function AppWithProviders() {\n\tconst { user } = useLoaderData<typeof loader>()\n\treturn (\n\t\t<Presence user={user}>\n\t\t\t<TooltipProvider>\n\t\t\t\t<App />\n\t\t\t</TooltipProvider>\n\t\t</Presence>\n\t)\n}\n\nexport function ErrorBoundary() {\n\treturn (\n\t\t<Document className=\"h-screen-safe\">\n\t\t\t<GeneralErrorBoundary />\n\t\t</Document>\n\t)\n}\n\nfunction getWebsocketJS() {\n\tconst js = /* javascript */ `\n\tfunction epicLiveReloadConnect(config) {\n\t\tconst protocol = location.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n\t\tconst host = location.hostname;\n\t\tconst port = location.port;\n\t\tconst socketPath = protocol + \"//\" + host + \":\" + port + \"/__ws\";\n\t\tconst ws = new WebSocket(socketPath);\n\t\tfunction handleFileChange(changedFiles) {\n\t\t\tconsole.log(\n\t\t\t\t['🐨 Reloading', window.frameElement?.getAttribute('title')]\n\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t.join(' '),\n\t\t\t\tchangedFiles\n\t\t\t);\n\t\t\tif (typeof window.__epicshop?.handleFileChange === \"function\") {\n\t\t\t\twindow.__epicshop?.handleFileChange();\n\t\t\t} else {\n\t\t\t\tsetTimeout(() => window.location.reload(), 200);\n\t\t\t}\n\t\t}\n\t\tfunction debounce(fn, ms) {\n\t\t\tlet timeout;\n\t\t\treturn function debouncedFn(...args) {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\ttimeout = setTimeout(() => fn(...args), ms);\n\t\t\t};\n\t\t}\n\t\tconst debouncedHandleFileChange = debounce(handleFileChange, 50);\n\t\tws.onmessage = (message) => {\n\t\t\tconst event = JSON.parse(message.data);\n\t\t\tif (event.type !== 'epicshop:file-change') return;\n\t\t\tconst { filePaths } = event.data;\n\t\t\tdebouncedHandleFileChange(filePaths);\n\t\t};\n\t\tws.onopen = () => {\n\t\t\tif (config && typeof config.onOpen === \"function\") {\n\t\t\t\tconfig.onOpen();\n\t\t\t}\n\t\t};\n\t\tws.onclose = (event) => {\n\t\t\tif (event.code === 1006) {\n\t\t\t\tconsole.log(\"Epic Web dev server web socket closed. Reconnecting...\");\n\t\t\t\tsetTimeout(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tepicLiveReloadConnect({\n\t\t\t\t\t\t\tonOpen: () => window.location.reload(),\n\t\t\t\t\t\t}),\n\t\t\t\t1000\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tws.onerror = (error) => {\n\t\t\tconsole.log(\"Epic Web dev server web socket error:\");\n\t\t\tconsole.error(error);\n\t\t};\n\t}\n\tepicLiveReloadConnect();\n\t`\n\treturn js\n}\n"],"names":["STORAGE_KEY","ScrollRestoration","getKey","props","isSpaMode","useRemixContext","location","useLocation","matches","useMatches","UNSAFE_useScrollRestoration","key","React.useMemo","userKey","restoreScroll","restoreKey","storedY","error","React.createElement","_extends","tweenFunctions","t","b","_c","d","c","a","p","s","v","tweenFunctions_1","_defineProperties","target","i","descriptor","_createClass","Constructor","protoProps","staticProps","source","_inheritsLoose","subClass","superClass","_setPrototypeOf","o","degreesToRads","degrees","randomRange","min","max","randomInt","ParticleShape","RotationDirection","Particle","context","getOptions","x","y","_this$getOptions","colors","initialVelocityX","initialVelocityY","_proto","_this$getOptions2","gravity","wind","friction","opacity","drawShape","rotateDelta","ParticleGeneratorClass","canvas","_this","newParticleX","newParticleY","particlesGenerated","lastNumberOfPieces","run","recycle","numberOfPieces","debug","tweenFunction","tweenDuration","nP","activeCount","now","tweenInitTime","progressTime","tweenedVal","numToAdd","ctx","confettiDefaults","tweens","Confetti","opts","computedConfettiDefaults","_this$options","onConfettiComplete","lastRunState","lastRecycleState","ref","React","extractCanvasProps","confettiOptions","refs","rest","confettiOptionKeys","refProps","prop","val","ConfettiReactInternal","_Component","_len","_key","_extractCanvasProps","passedProps","canvasStyles","Component","Index","_ref","subscribe","useHydrated","useSyncExternalStore","ClientOnly","children","fallback","React.Fragment","id","jsx","ConfettiShower","EpicToaster","toast","jsxs","Fragment","Toaster","ShowToast","type","title","description","useEffect","showToast","appStylesheetUrl","tailwindStylesheetUrl","links","meta","data","Document","env","className","revalidator","useRevalidator","ClientHintCheck","Meta","Links","Scripts","getWebsocketJS","useLoaderData","navigation","showSpinner","useSpinDelay","altDown","useAltDown","theme","useTheme","cn","Outlet","EpicProgress","AppWithProviders","user","Presence","TooltipProvider","App","ErrorBoundary","GeneralErrorBoundary"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
@@ -1,2 +1,2 @@
1
- import{j as e}from"./index-BDqSZ0-h.js";import{L as i}from"./components-BM_XUa9h.js";function l(){var t;const s=(t=ENV.EPICSHOP_GITHUB_ROOT.match(/github\.com\/(?<org>[^/?]+)\/(?<repo>[^/?]+)/))==null?void 0:t.groups;let o=ENV.EPICSHOP_GITHUB_ROOT,r=o;return s!=null&&s.org&&s.repo&&(o=`https://github.com/${s.org}/${s.repo}`,r=`${o}/issues`),e.jsxs("div",{className:"container flex h-full max-w-3xl flex-col items-center justify-center gap-4 p-12",children:[e.jsx("h1",{className:"text-5xl font-bold",children:"Support"}),e.jsx("p",{children:"We're here to support you! Depending on the kind of support you need, you will want to reach out in different places:"}),e.jsxs("ul",{className:"list-disc",children:[e.jsxs("li",{children:["Technical issues:"," ",e.jsx("a",{href:"mailto:team@epicweb.dev",className:"underline",children:"team@epicweb.dev"})," ","– Helpful if you're having trouble with or have feedback for your EpicWeb.dev account or access to course content."]}),e.jsxs("li",{children:["Workshop App:"," ",e.jsx("a",{href:"https://github.com/epicweb-dev/epicshop/issues",className:"underline",children:"github.com/epicweb-dev/epicshop"})," ","– Helpful if you're having trouble with or feedback for the local workshop app."]}),e.jsxs("li",{children:["Workshop content:"," ",e.jsx("a",{href:r,className:"underline",children:o.replace("https://","")})," ","– Open an issue or pull request here to report an issue with the content of this workshop."]}),e.jsxs("li",{children:["Discord:"," ",e.jsx(i,{to:"/discord",className:"underline",children:"/discord"})," ","– Connect your account with discord to get access to the private forum and ask questions of other students and the workshop instructor."]})]})]})}export{l as default};
2
- //# sourceMappingURL=support--jou3sWH.js.map
1
+ import{j as e}from"./index-D1WEsmVZ.js";import{L as i}from"./components-Dj3sm47B.js";function l(){var t;const s=(t=ENV.EPICSHOP_GITHUB_ROOT.match(/github\.com\/(?<org>[^/?]+)\/(?<repo>[^/?]+)/))==null?void 0:t.groups;let o=ENV.EPICSHOP_GITHUB_ROOT,r=o;return s!=null&&s.org&&s.repo&&(o=`https://github.com/${s.org}/${s.repo}`,r=`${o}/issues`),e.jsxs("div",{className:"container flex h-full max-w-3xl flex-col items-center justify-center gap-4 p-12",children:[e.jsx("h1",{className:"text-5xl font-bold",children:"Support"}),e.jsx("p",{children:"We're here to support you! Depending on the kind of support you need, you will want to reach out in different places:"}),e.jsxs("ul",{className:"list-disc",children:[e.jsxs("li",{children:["Technical issues:"," ",e.jsx("a",{href:"mailto:team@epicweb.dev",className:"underline",children:"team@epicweb.dev"})," ","– Helpful if you're having trouble with or have feedback for your EpicWeb.dev account or access to course content."]}),e.jsxs("li",{children:["Workshop App:"," ",e.jsx("a",{href:"https://github.com/epicweb-dev/epicshop/issues",className:"underline",children:"github.com/epicweb-dev/epicshop"})," ","– Helpful if you're having trouble with or feedback for the local workshop app."]}),e.jsxs("li",{children:["Workshop content:"," ",e.jsx("a",{href:r,className:"underline",children:o.replace("https://","")})," ","– Open an issue or pull request here to report an issue with the content of this workshop."]}),e.jsxs("li",{children:["Discord:"," ",e.jsx(i,{to:"/discord",className:"underline",children:"/discord"})," ","– Connect your account with discord to get access to the private forum and ask questions of other students and the workshop instructor."]})]})]})}export{l as default};
2
+ //# sourceMappingURL=support-QTdmLyE7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"support--jou3sWH.js","sources":["../../../app/routes/_app+/support.tsx"],"sourcesContent":["import { Link } from '@remix-run/react'\n\nexport default function Support() {\n\tconst repoGroups = ENV.EPICSHOP_GITHUB_ROOT.match(\n\t\t/github\\.com\\/(?<org>[^/?]+)\\/(?<repo>[^/?]+)/,\n\t)?.groups\n\n\tlet repoUrl = ENV.EPICSHOP_GITHUB_ROOT\n\tlet repoIssuesUrl = repoUrl\n\tif (repoGroups?.org && repoGroups.repo) {\n\t\trepoUrl = `https://github.com/${repoGroups.org}/${repoGroups.repo}`\n\t\trepoIssuesUrl = `${repoUrl}/issues`\n\t}\n\treturn (\n\t\t<div className=\"container flex h-full max-w-3xl flex-col items-center justify-center gap-4 p-12\">\n\t\t\t<h1 className=\"text-5xl font-bold\">Support</h1>\n\t\t\t<p>\n\t\t\t\tWe're here to support you! Depending on the kind of support you need,\n\t\t\t\tyou will want to reach out in different places:\n\t\t\t</p>\n\t\t\t<ul className=\"list-disc\">\n\t\t\t\t<li>\n\t\t\t\t\tTechnical issues:{' '}\n\t\t\t\t\t<a href=\"mailto:team@epicweb.dev\" className=\"underline\">\n\t\t\t\t\t\tteam@epicweb.dev\n\t\t\t\t\t</a>{' '}\n\t\t\t\t\t– Helpful if you're having trouble with or have feedback for your\n\t\t\t\t\tEpicWeb.dev account or access to course content.\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\tWorkshop App:{' '}\n\t\t\t\t\t<a\n\t\t\t\t\t\thref=\"https://github.com/epicweb-dev/epicshop/issues\"\n\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t>\n\t\t\t\t\t\tgithub.com/epicweb-dev/epicshop\n\t\t\t\t\t</a>{' '}\n\t\t\t\t\t– Helpful if you're having trouble with or feedback for the local\n\t\t\t\t\tworkshop app.\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\tWorkshop content:{' '}\n\t\t\t\t\t<a href={repoIssuesUrl} className=\"underline\">\n\t\t\t\t\t\t{repoUrl.replace('https://', '')}\n\t\t\t\t\t</a>{' '}\n\t\t\t\t\t– Open an issue or pull request here to report an issue with the\n\t\t\t\t\tcontent of this workshop.\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\tDiscord:{' '}\n\t\t\t\t\t<Link to=\"/discord\" className=\"underline\">\n\t\t\t\t\t\t/discord\n\t\t\t\t\t</Link>{' '}\n\t\t\t\t\t– Connect your account with discord to get access to the private forum\n\t\t\t\t\tand ask questions of other students and the workshop instructor.\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</div>\n\t)\n}\n"],"names":["Support","repoGroups","_a","repoUrl","repoIssuesUrl","jsxs","jsx","Link"],"mappings":"qFAEA,SAAwBA,GAAU,OAC3B,MAAAC,GAAaC,EAAA,IAAI,qBAAqB,MAAA,8CAAA,IAAzB,YAAAA,EAAyB,OAC3C,IAAAC,EAAA,IAAA,qBACEC,EAAAD,EAEH,OAAIF,GAAA,MAAAA,EAAc,KAAAA,EAAA,OAClBE,EAAoB,sBAAAF,EAAA,GAAA,IAAAA,EAAA,IAAA,GAChBG,EAAmB,GAAAD,CAAA,WAEIE,EAAAA,KAAA,MAAA,CAC3B,UAAA,kFAEC,SAAA,CAACC,EAAI,IAAA,KAAA,CACH,UAAA,qBACD,SAAA,SAGA,CACA,EAAAA,EAAI,IAAA,IAAA,CACH,SAAA,uHAAI,CAAA,EAAAD,EAAA,KAAA,KAAA,CACe,UAAA,YAAA,UACfA,EAAA,KAAA,KAA+B,CAE7B,SAAA,CAAA,oBAAA,IAAAC,EAAAA,IAAA,IAAA,CAAI,KAAA,0BAGV,UAAA,uCACI,CAAA,EAAA,IAAA,oHAAA,CAAA,CACW,EAAAD,EAAA,KAAA,KAAA,CACd,SAAA,CAAA,gBAAA,IAAAC,EAAAA,IAAA,IAAA,CAAC,KAAA,iDAAA,UAAA,YAAA,SACK,iCAAA,CAAA,EACL,IAAU,iFAAA,CAAA,CACV,EAAAD,EAAA,KAAA,KAAA,CAAA,SAAA,CAAA,oBAAA,IAAAC,EAAAA,IAAA,IAAA,CAED,KAAAF,EAAK,UAAA,YAAI,SAAAD,EAAA,QAAA,WAAA,EAAA,CAAA,CAGV,EAAA,IAAA,4FAAA,CAAA,KACI,KAAA,KAAA,CAAA,SAAA,CAAA,WAAA,IAAAG,EAAAA,IAAAC,EAAA,CACe,GAAA,WAClB,UAAA,YAEK,SAAA,UAAA,CAAI,EAAA,IAAA,yIAAA,CAAA,CAGV,CAAA,CAAA,CAAA,CACA,CAAI,CAAA,CAAA"}
1
+ {"version":3,"file":"support-QTdmLyE7.js","sources":["../../../app/routes/_app+/support.tsx"],"sourcesContent":["import { Link } from '@remix-run/react'\n\nexport default function Support() {\n\tconst repoGroups = ENV.EPICSHOP_GITHUB_ROOT.match(\n\t\t/github\\.com\\/(?<org>[^/?]+)\\/(?<repo>[^/?]+)/,\n\t)?.groups\n\n\tlet repoUrl = ENV.EPICSHOP_GITHUB_ROOT\n\tlet repoIssuesUrl = repoUrl\n\tif (repoGroups?.org && repoGroups.repo) {\n\t\trepoUrl = `https://github.com/${repoGroups.org}/${repoGroups.repo}`\n\t\trepoIssuesUrl = `${repoUrl}/issues`\n\t}\n\treturn (\n\t\t<div className=\"container flex h-full max-w-3xl flex-col items-center justify-center gap-4 p-12\">\n\t\t\t<h1 className=\"text-5xl font-bold\">Support</h1>\n\t\t\t<p>\n\t\t\t\tWe're here to support you! Depending on the kind of support you need,\n\t\t\t\tyou will want to reach out in different places:\n\t\t\t</p>\n\t\t\t<ul className=\"list-disc\">\n\t\t\t\t<li>\n\t\t\t\t\tTechnical issues:{' '}\n\t\t\t\t\t<a href=\"mailto:team@epicweb.dev\" className=\"underline\">\n\t\t\t\t\t\tteam@epicweb.dev\n\t\t\t\t\t</a>{' '}\n\t\t\t\t\t– Helpful if you're having trouble with or have feedback for your\n\t\t\t\t\tEpicWeb.dev account or access to course content.\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\tWorkshop App:{' '}\n\t\t\t\t\t<a\n\t\t\t\t\t\thref=\"https://github.com/epicweb-dev/epicshop/issues\"\n\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t>\n\t\t\t\t\t\tgithub.com/epicweb-dev/epicshop\n\t\t\t\t\t</a>{' '}\n\t\t\t\t\t– Helpful if you're having trouble with or feedback for the local\n\t\t\t\t\tworkshop app.\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\tWorkshop content:{' '}\n\t\t\t\t\t<a href={repoIssuesUrl} className=\"underline\">\n\t\t\t\t\t\t{repoUrl.replace('https://', '')}\n\t\t\t\t\t</a>{' '}\n\t\t\t\t\t– Open an issue or pull request here to report an issue with the\n\t\t\t\t\tcontent of this workshop.\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\tDiscord:{' '}\n\t\t\t\t\t<Link to=\"/discord\" className=\"underline\">\n\t\t\t\t\t\t/discord\n\t\t\t\t\t</Link>{' '}\n\t\t\t\t\t– Connect your account with discord to get access to the private forum\n\t\t\t\t\tand ask questions of other students and the workshop instructor.\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</div>\n\t)\n}\n"],"names":["Support","repoGroups","_a","repoUrl","repoIssuesUrl","jsxs","jsx","Link"],"mappings":"qFAEA,SAAwBA,GAAU,OAC3B,MAAAC,GAAaC,EAAA,IAAI,qBAAqB,MAAA,8CAAA,IAAzB,YAAAA,EAAyB,OAC3C,IAAAC,EAAA,IAAA,qBACEC,EAAAD,EAEH,OAAIF,GAAA,MAAAA,EAAc,KAAAA,EAAA,OAClBE,EAAoB,sBAAAF,EAAA,GAAA,IAAAA,EAAA,IAAA,GAChBG,EAAmB,GAAAD,CAAA,WAEIE,EAAAA,KAAA,MAAA,CAC3B,UAAA,kFAEC,SAAA,CAACC,EAAI,IAAA,KAAA,CACH,UAAA,qBACD,SAAA,SAGA,CACA,EAAAA,EAAI,IAAA,IAAA,CACH,SAAA,uHAAI,CAAA,EAAAD,EAAA,KAAA,KAAA,CACe,UAAA,YAAA,UACfA,EAAA,KAAA,KAA+B,CAE7B,SAAA,CAAA,oBAAA,IAAAC,EAAAA,IAAA,IAAA,CAAI,KAAA,0BAGV,UAAA,uCACI,CAAA,EAAA,IAAA,oHAAA,CAAA,CACW,EAAAD,EAAA,KAAA,KAAA,CACd,SAAA,CAAA,gBAAA,IAAAC,EAAAA,IAAA,IAAA,CAAC,KAAA,iDAAA,UAAA,YAAA,SACK,iCAAA,CAAA,EACL,IAAU,iFAAA,CAAA,CACV,EAAAD,EAAA,KAAA,KAAA,CAAA,SAAA,CAAA,oBAAA,IAAAC,EAAAA,IAAA,IAAA,CAED,KAAAF,EAAK,UAAA,YAAI,SAAAD,EAAA,QAAA,WAAA,EAAA,CAAA,CAGV,EAAA,IAAA,4FAAA,CAAA,KACI,KAAA,KAAA,CAAA,SAAA,CAAA,WAAA,IAAAG,EAAAA,IAAAC,EAAA,CACe,GAAA,WAClB,UAAA,YAEK,SAAA,UAAA,CAAI,EAAA,IAAA,yIAAA,CAAA,CAGV,CAAA,CAAA,CAAA,CACA,CAAI,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import{r as a,$ as Bt,j as ve}from"./index-BDqSZ0-h.js";import{r as _e}from"./components-BM_XUa9h.js";import{c as zt}from"./misc-C1rq7sPa.js";function L(){return L=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},L.apply(this,arguments)}function B(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e==null||e(r),n===!1||!r.defaultPrevented)return t==null?void 0:t(r)}}function Vt(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function ot(...e){return t=>e.forEach(n=>Vt(n,t))}function te(...e){return a.useCallback(ot(...e),e)}function rt(e,t=[]){let n=[];function o(i,s){const l=a.createContext(s),c=n.length;n=[...n,s];function f(d){const{scope:m,children:p,...h}=d,v=(m==null?void 0:m[e][c])||l,g=a.useMemo(()=>h,Object.values(h));return a.createElement(v.Provider,{value:g},p)}function u(d,m){const p=(m==null?void 0:m[e][c])||l,h=a.useContext(p);if(h)return h;if(s!==void 0)return s;throw new Error(`\`${d}\` must be used within \`${i}\``)}return f.displayName=i+"Provider",[f,u]}const r=()=>{const i=n.map(s=>a.createContext(s));return function(l){const c=(l==null?void 0:l[e])||i;return a.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return r.scopeName=e,[o,jt(r,...t)]}function jt(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(i){const s=o.reduce((l,{useScope:c,scopeName:f})=>{const d=c(i)[`__scope${f}`];return{...l,...d}},{});return a.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return n.scopeName=t.scopeName,n}const it=a.forwardRef((e,t)=>{const{children:n,...o}=e,r=a.Children.toArray(n),i=r.find(Ut);if(i){const s=i.props.children,l=r.map(c=>c===i?a.Children.count(s)>1?a.Children.only(null):a.isValidElement(s)?s.props.children:null:c);return a.createElement(Ae,L({},o,{ref:t}),a.isValidElement(s)?a.cloneElement(s,void 0,l):null)}return a.createElement(Ae,L({},o,{ref:t}),n)});it.displayName="Slot";const Ae=a.forwardRef((e,t)=>{const{children:n,...o}=e;return a.isValidElement(n)?a.cloneElement(n,{...Yt(o,n.props),ref:t?ot(t,n.ref):n.ref}):a.Children.count(n)>1?a.Children.only(null):null});Ae.displayName="SlotClone";const st=({children:e})=>a.createElement(a.Fragment,null,e);function Ut(e){return a.isValidElement(e)&&e.type===st}function Yt(e,t){const n={...t};for(const o in t){const r=e[o],i=t[o];/^on[A-Z]/.test(o)?r&&i?n[o]=(...l)=>{i(...l),r(...l)}:r&&(n[o]=r):o==="style"?n[o]={...r,...i}:o==="className"&&(n[o]=[r,i].filter(Boolean).join(" "))}return{...e,...n}}const Xt=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],le=Xt.reduce((e,t)=>{const n=a.forwardRef((o,r)=>{const{asChild:i,...s}=o,l=i?it:t;return a.useEffect(()=>{window[Symbol.for("radix-ui")]=!0},[]),a.createElement(l,L({},s,{ref:r}))});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function Gt(e,t){e&&_e.flushSync(()=>e.dispatchEvent(t))}function ne(e){const t=a.useRef(e);return a.useEffect(()=>{t.current=e}),a.useMemo(()=>(...n)=>{var o;return(o=t.current)===null||o===void 0?void 0:o.call(t,...n)},[])}function Kt(e,t=globalThis==null?void 0:globalThis.document){const n=ne(e);a.useEffect(()=>{const o=r=>{r.key==="Escape"&&n(r)};return t.addEventListener("keydown",o),()=>t.removeEventListener("keydown",o)},[n,t])}const Te="dismissableLayer.update",qt="dismissableLayer.pointerDownOutside",Zt="dismissableLayer.focusOutside";let Ue;const Jt=a.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Qt=a.forwardRef((e,t)=>{var n;const{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:s,onInteractOutside:l,onDismiss:c,...f}=e,u=a.useContext(Jt),[d,m]=a.useState(null),p=(n=d==null?void 0:d.ownerDocument)!==null&&n!==void 0?n:globalThis==null?void 0:globalThis.document,[,h]=a.useState({}),v=te(t,C=>m(C)),g=Array.from(u.layers),[w]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),x=g.indexOf(w),$=d?g.indexOf(d):-1,y=u.layersWithOutsidePointerEventsDisabled.size>0,b=$>=x,E=en(C=>{const S=C.target,N=[...u.branches].some(_=>_.contains(S));!b||N||(i==null||i(C),l==null||l(C),C.defaultPrevented||c==null||c())},p),P=tn(C=>{const S=C.target;[...u.branches].some(_=>_.contains(S))||(s==null||s(C),l==null||l(C),C.defaultPrevented||c==null||c())},p);return Kt(C=>{$===u.layers.size-1&&(r==null||r(C),!C.defaultPrevented&&c&&(C.preventDefault(),c()))},p),a.useEffect(()=>{if(d)return o&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(Ue=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),Ye(),()=>{o&&u.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=Ue)}},[d,p,o,u]),a.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),Ye())},[d,u]),a.useEffect(()=>{const C=()=>h({});return document.addEventListener(Te,C),()=>document.removeEventListener(Te,C)},[]),a.createElement(le.div,L({},f,{ref:v,style:{pointerEvents:y?b?"auto":"none":void 0,...e.style},onFocusCapture:B(e.onFocusCapture,P.onFocusCapture),onBlurCapture:B(e.onBlurCapture,P.onBlurCapture),onPointerDownCapture:B(e.onPointerDownCapture,E.onPointerDownCapture)}))});function en(e,t=globalThis==null?void 0:globalThis.document){const n=ne(e),o=a.useRef(!1),r=a.useRef(()=>{});return a.useEffect(()=>{const i=l=>{if(l.target&&!o.current){let f=function(){ct(qt,n,c,{discrete:!0})};const c={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=f,t.addEventListener("click",r.current,{once:!0})):f()}else t.removeEventListener("click",r.current);o.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",i),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>o.current=!0}}function tn(e,t=globalThis==null?void 0:globalThis.document){const n=ne(e),o=a.useRef(!1);return a.useEffect(()=>{const r=i=>{i.target&&!o.current&&ct(Zt,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function Ye(){const e=new CustomEvent(Te);document.dispatchEvent(e)}function ct(e,t,n,{discrete:o}){const r=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),o?Gt(r,i):r.dispatchEvent(i)}const Q=globalThis!=null&&globalThis.document?a.useLayoutEffect:()=>{},nn=Bt.useId||(()=>{});let on=0;function rn(e){const[t,n]=a.useState(nn());return Q(()=>{e||n(o=>o??String(on++))},[e]),e||(t?`radix-${t}`:"")}const sn=["top","right","bottom","left"],X=Math.min,M=Math.max,xe=Math.round,he=Math.floor,G=e=>({x:e,y:e}),cn={left:"right",right:"left",bottom:"top",top:"bottom"},an={start:"end",end:"start"};function Re(e,t,n){return M(e,X(t,n))}function z(e,t){return typeof e=="function"?e(t):e}function V(e){return e.split("-")[0]}function oe(e){return e.split("-")[1]}function Le(e){return e==="x"?"y":"x"}function Ne(e){return e==="y"?"height":"width"}function re(e){return["top","bottom"].includes(V(e))?"y":"x"}function Me(e){return Le(re(e))}function ln(e,t,n){n===void 0&&(n=!1);const o=oe(e),r=Me(e),i=Ne(r);let s=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(s=$e(s)),[s,$e(s)]}function fn(e){const t=$e(e);return[Se(e),t,Se(t)]}function Se(e){return e.replace(/start|end/g,t=>an[t])}function un(e,t,n){const o=["left","right"],r=["right","left"],i=["top","bottom"],s=["bottom","top"];switch(e){case"top":case"bottom":return n?t?r:o:t?o:r;case"left":case"right":return t?i:s;default:return[]}}function dn(e,t,n,o){const r=oe(e);let i=un(V(e),n==="start",o);return r&&(i=i.map(s=>s+"-"+r),t&&(i=i.concat(i.map(Se)))),i}function $e(e){return e.replace(/left|right|bottom|top/g,t=>cn[t])}function pn(e){return{top:0,right:0,bottom:0,left:0,...e}}function at(e){return typeof e!="number"?pn(e):{top:e,right:e,bottom:e,left:e}}function ye(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function Xe(e,t,n){let{reference:o,floating:r}=e;const i=re(t),s=Me(t),l=Ne(s),c=V(t),f=i==="y",u=o.x+o.width/2-r.width/2,d=o.y+o.height/2-r.height/2,m=o[l]/2-r[l]/2;let p;switch(c){case"top":p={x:u,y:o.y-r.height};break;case"bottom":p={x:u,y:o.y+o.height};break;case"right":p={x:o.x+o.width,y:d};break;case"left":p={x:o.x-r.width,y:d};break;default:p={x:o.x,y:o.y}}switch(oe(t)){case"start":p[s]-=m*(n&&f?-1:1);break;case"end":p[s]+=m*(n&&f?-1:1);break}return p}const mn=async(e,t,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:s}=n,l=i.filter(Boolean),c=await(s.isRTL==null?void 0:s.isRTL(t));let f=await s.getElementRects({reference:e,floating:t,strategy:r}),{x:u,y:d}=Xe(f,o,c),m=o,p={},h=0;for(let v=0;v<l.length;v++){const{name:g,fn:w}=l[v],{x,y:$,data:y,reset:b}=await w({x:u,y:d,initialPlacement:o,placement:m,strategy:r,middlewareData:p,rects:f,platform:s,elements:{reference:e,floating:t}});u=x??u,d=$??d,p={...p,[g]:{...p[g],...y}},b&&h<=50&&(h++,typeof b=="object"&&(b.placement&&(m=b.placement),b.rects&&(f=b.rects===!0?await s.getElementRects({reference:e,floating:t,strategy:r}):b.rects),{x:u,y:d}=Xe(f,m,c)),v=-1)}return{x:u,y:d,placement:m,strategy:r,middlewareData:p}};async function se(e,t){var n;t===void 0&&(t={});const{x:o,y:r,platform:i,rects:s,elements:l,strategy:c}=e,{boundary:f="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:m=!1,padding:p=0}=z(t,e),h=at(p),g=l[m?d==="floating"?"reference":"floating":d],w=ye(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(g)))==null||n?g:g.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:f,rootBoundary:u,strategy:c})),x=d==="floating"?{...s.floating,x:o,y:r}:s.reference,$=await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),y=await(i.isElement==null?void 0:i.isElement($))?await(i.getScale==null?void 0:i.getScale($))||{x:1,y:1}:{x:1,y:1},b=ye(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:x,offsetParent:$,strategy:c}):x);return{top:(w.top-b.top+h.top)/y.y,bottom:(b.bottom-w.bottom+h.bottom)/y.y,left:(w.left-b.left+h.left)/y.x,right:(b.right-w.right+h.right)/y.x}}const hn=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:r,rects:i,platform:s,elements:l,middlewareData:c}=t,{element:f,padding:u=0}=z(e,t)||{};if(f==null)return{};const d=at(u),m={x:n,y:o},p=Me(r),h=Ne(p),v=await s.getDimensions(f),g=p==="y",w=g?"top":"left",x=g?"bottom":"right",$=g?"clientHeight":"clientWidth",y=i.reference[h]+i.reference[p]-m[p]-i.floating[h],b=m[p]-i.reference[p],E=await(s.getOffsetParent==null?void 0:s.getOffsetParent(f));let P=E?E[$]:0;(!P||!await(s.isElement==null?void 0:s.isElement(E)))&&(P=l.floating[$]||i.floating[h]);const C=y/2-b/2,S=P/2-v[h]/2-1,N=X(d[w],S),_=X(d[x],S),T=N,F=P-v[h]-_,A=P/2-v[h]/2+C,R=Re(T,A,F),D=!c.arrow&&oe(r)!=null&&A!==R&&i.reference[h]/2-(A<T?N:_)-v[h]/2<0,O=D?A<T?A-T:A-F:0;return{[p]:m[p]+O,data:{[p]:R,centerOffset:A-R-O,...D&&{alignmentOffset:O}},reset:D}}}),gn=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,o;const{placement:r,middlewareData:i,rects:s,initialPlacement:l,platform:c,elements:f}=t,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:m,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:v=!0,...g}=z(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const w=V(r),x=V(l)===l,$=await(c.isRTL==null?void 0:c.isRTL(f.floating)),y=m||(x||!v?[$e(l)]:fn(l));!m&&h!=="none"&&y.push(...dn(l,v,h,$));const b=[l,...y],E=await se(t,g),P=[];let C=((o=i.flip)==null?void 0:o.overflows)||[];if(u&&P.push(E[w]),d){const T=ln(r,s,$);P.push(E[T[0]],E[T[1]])}if(C=[...C,{placement:r,overflows:P}],!P.every(T=>T<=0)){var S,N;const T=(((S=i.flip)==null?void 0:S.index)||0)+1,F=b[T];if(F)return{data:{index:T,overflows:C},reset:{placement:F}};let A=(N=C.filter(R=>R.overflows[0]<=0).sort((R,D)=>R.overflows[1]-D.overflows[1])[0])==null?void 0:N.placement;if(!A)switch(p){case"bestFit":{var _;const R=(_=C.map(D=>[D.placement,D.overflows.filter(O=>O>0).reduce((O,Y)=>O+Y,0)]).sort((D,O)=>D[1]-O[1])[0])==null?void 0:_[0];R&&(A=R);break}case"initialPlacement":A=l;break}if(r!==A)return{reset:{placement:A}}}return{}}}};function Ge(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Ke(e){return sn.some(t=>e[t]>=0)}const vn=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:o="referenceHidden",...r}=z(e,t);switch(o){case"referenceHidden":{const i=await se(t,{...r,elementContext:"reference"}),s=Ge(i,n.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:Ke(s)}}}case"escaped":{const i=await se(t,{...r,altBoundary:!0}),s=Ge(i,n.floating);return{data:{escapedOffsets:s,escaped:Ke(s)}}}default:return{}}}}};async function wn(e,t){const{placement:n,platform:o,elements:r}=e,i=await(o.isRTL==null?void 0:o.isRTL(r.floating)),s=V(n),l=oe(n),c=re(n)==="y",f=["left","top"].includes(s)?-1:1,u=i&&c?-1:1,d=z(t,e);let{mainAxis:m,crossAxis:p,alignmentAxis:h}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...d};return l&&typeof h=="number"&&(p=l==="end"?h*-1:h),c?{x:p*u,y:m*f}:{x:m*f,y:p*u}}const xn=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,o;const{x:r,y:i,placement:s,middlewareData:l}=t,c=await wn(t,e);return s===((n=l.offset)==null?void 0:n.placement)&&(o=l.arrow)!=null&&o.alignmentOffset?{}:{x:r+c.x,y:i+c.y,data:{...c,placement:s}}}}},$n=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:r}=t,{mainAxis:i=!0,crossAxis:s=!1,limiter:l={fn:g=>{let{x:w,y:x}=g;return{x:w,y:x}}},...c}=z(e,t),f={x:n,y:o},u=await se(t,c),d=re(V(r)),m=Le(d);let p=f[m],h=f[d];if(i){const g=m==="y"?"top":"left",w=m==="y"?"bottom":"right",x=p+u[g],$=p-u[w];p=Re(x,p,$)}if(s){const g=d==="y"?"top":"left",w=d==="y"?"bottom":"right",x=h+u[g],$=h-u[w];h=Re(x,h,$)}const v=l.fn({...t,[m]:p,[d]:h});return{...v,data:{x:v.x-n,y:v.y-o}}}}},yn=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:o,placement:r,rects:i,middlewareData:s}=t,{offset:l=0,mainAxis:c=!0,crossAxis:f=!0}=z(e,t),u={x:n,y:o},d=re(r),m=Le(d);let p=u[m],h=u[d];const v=z(l,t),g=typeof v=="number"?{mainAxis:v,crossAxis:0}:{mainAxis:0,crossAxis:0,...v};if(c){const $=m==="y"?"height":"width",y=i.reference[m]-i.floating[$]+g.mainAxis,b=i.reference[m]+i.reference[$]-g.mainAxis;p<y?p=y:p>b&&(p=b)}if(f){var w,x;const $=m==="y"?"width":"height",y=["top","left"].includes(V(r)),b=i.reference[d]-i.floating[$]+(y&&((w=s.offset)==null?void 0:w[d])||0)+(y?0:g.crossAxis),E=i.reference[d]+i.reference[$]+(y?0:((x=s.offset)==null?void 0:x[d])||0)-(y?g.crossAxis:0);h<b?h=b:h>E&&(h=E)}return{[m]:p,[d]:h}}}},bn=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:o,platform:r,elements:i}=t,{apply:s=()=>{},...l}=z(e,t),c=await se(t,l),f=V(n),u=oe(n),d=re(n)==="y",{width:m,height:p}=o.floating;let h,v;f==="top"||f==="bottom"?(h=f,v=u===(await(r.isRTL==null?void 0:r.isRTL(i.floating))?"start":"end")?"left":"right"):(v=f,h=u==="end"?"top":"bottom");const g=p-c[h],w=m-c[v],x=!t.middlewareData.shift;let $=g,y=w;if(d){const E=m-c.left-c.right;y=u||x?X(w,E):E}else{const E=p-c.top-c.bottom;$=u||x?X(g,E):E}if(x&&!u){const E=M(c.left,0),P=M(c.right,0),C=M(c.top,0),S=M(c.bottom,0);d?y=m-2*(E!==0||P!==0?E+P:M(c.left,c.right)):$=p-2*(C!==0||S!==0?C+S:M(c.top,c.bottom))}await s({...t,availableWidth:y,availableHeight:$});const b=await r.getDimensions(i.floating);return m!==b.width||p!==b.height?{reset:{rects:!0}}:{}}}};function K(e){return lt(e)?(e.nodeName||"").toLowerCase():"#document"}function k(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function U(e){var t;return(t=(lt(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function lt(e){return e instanceof Node||e instanceof k(e).Node}function j(e){return e instanceof Element||e instanceof k(e).Element}function H(e){return e instanceof HTMLElement||e instanceof k(e).HTMLElement}function qe(e){return typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof k(e).ShadowRoot}function fe(e){const{overflow:t,overflowX:n,overflowY:o,display:r}=I(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&!["inline","contents"].includes(r)}function En(e){return["table","td","th"].includes(K(e))}function ke(e){const t=Ie(),n=I(e);return n.transform!=="none"||n.perspective!=="none"||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||["transform","perspective","filter"].some(o=>(n.willChange||"").includes(o))||["paint","layout","strict","content"].some(o=>(n.contain||"").includes(o))}function Cn(e){let t=ee(e);for(;H(t)&&!Ee(t);){if(ke(t))return t;t=ee(t)}return null}function Ie(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function Ee(e){return["html","body","#document"].includes(K(e))}function I(e){return k(e).getComputedStyle(e)}function Ce(e){return j(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ee(e){if(K(e)==="html")return e;const t=e.assignedSlot||e.parentNode||qe(e)&&e.host||U(e);return qe(t)?t.host:t}function ft(e){const t=ee(e);return Ee(t)?e.ownerDocument?e.ownerDocument.body:e.body:H(t)&&fe(t)?t:ft(t)}function ce(e,t,n){var o;t===void 0&&(t=[]),n===void 0&&(n=!0);const r=ft(e),i=r===((o=e.ownerDocument)==null?void 0:o.body),s=k(r);return i?t.concat(s,s.visualViewport||[],fe(r)?r:[],s.frameElement&&n?ce(s.frameElement):[]):t.concat(r,ce(r,[],n))}function ut(e){const t=I(e);let n=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const r=H(e),i=r?e.offsetWidth:n,s=r?e.offsetHeight:o,l=xe(n)!==i||xe(o)!==s;return l&&(n=i,o=s),{width:n,height:o,$:l}}function Fe(e){return j(e)?e:e.contextElement}function J(e){const t=Fe(e);if(!H(t))return G(1);const n=t.getBoundingClientRect(),{width:o,height:r,$:i}=ut(t);let s=(i?xe(n.width):n.width)/o,l=(i?xe(n.height):n.height)/r;return(!s||!Number.isFinite(s))&&(s=1),(!l||!Number.isFinite(l))&&(l=1),{x:s,y:l}}const Pn=G(0);function dt(e){const t=k(e);return!Ie()||!t.visualViewport?Pn:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function On(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==k(e)?!1:t}function q(e,t,n,o){t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),i=Fe(e);let s=G(1);t&&(o?j(o)&&(s=J(o)):s=J(e));const l=On(i,n,o)?dt(i):G(0);let c=(r.left+l.x)/s.x,f=(r.top+l.y)/s.y,u=r.width/s.x,d=r.height/s.y;if(i){const m=k(i),p=o&&j(o)?k(o):o;let h=m,v=h.frameElement;for(;v&&o&&p!==h;){const g=J(v),w=v.getBoundingClientRect(),x=I(v),$=w.left+(v.clientLeft+parseFloat(x.paddingLeft))*g.x,y=w.top+(v.clientTop+parseFloat(x.paddingTop))*g.y;c*=g.x,f*=g.y,u*=g.x,d*=g.y,c+=$,f+=y,h=k(v),v=h.frameElement}}return ye({width:u,height:d,x:c,y:f})}const An=[":popover-open",":modal"];function pt(e){return An.some(t=>{try{return e.matches(t)}catch{return!1}})}function Tn(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e;const i=r==="fixed",s=U(o),l=t?pt(t.floating):!1;if(o===s||l&&i)return n;let c={scrollLeft:0,scrollTop:0},f=G(1);const u=G(0),d=H(o);if((d||!d&&!i)&&((K(o)!=="body"||fe(s))&&(c=Ce(o)),H(o))){const m=q(o);f=J(o),u.x=m.x+o.clientLeft,u.y=m.y+o.clientTop}return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-c.scrollLeft*f.x+u.x,y:n.y*f.y-c.scrollTop*f.y+u.y}}function Rn(e){return Array.from(e.getClientRects())}function mt(e){return q(U(e)).left+Ce(e).scrollLeft}function Sn(e){const t=U(e),n=Ce(e),o=e.ownerDocument.body,r=M(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),i=M(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let s=-n.scrollLeft+mt(e);const l=-n.scrollTop;return I(o).direction==="rtl"&&(s+=M(t.clientWidth,o.clientWidth)-r),{width:r,height:i,x:s,y:l}}function Dn(e,t){const n=k(e),o=U(e),r=n.visualViewport;let i=o.clientWidth,s=o.clientHeight,l=0,c=0;if(r){i=r.width,s=r.height;const f=Ie();(!f||f&&t==="fixed")&&(l=r.offsetLeft,c=r.offsetTop)}return{width:i,height:s,x:l,y:c}}function _n(e,t){const n=q(e,!0,t==="fixed"),o=n.top+e.clientTop,r=n.left+e.clientLeft,i=H(e)?J(e):G(1),s=e.clientWidth*i.x,l=e.clientHeight*i.y,c=r*i.x,f=o*i.y;return{width:s,height:l,x:c,y:f}}function Ze(e,t,n){let o;if(t==="viewport")o=Dn(e,n);else if(t==="document")o=Sn(U(e));else if(j(t))o=_n(t,n);else{const r=dt(e);o={...t,x:t.x-r.x,y:t.y-r.y}}return ye(o)}function ht(e,t){const n=ee(e);return n===t||!j(n)||Ee(n)?!1:I(n).position==="fixed"||ht(n,t)}function Ln(e,t){const n=t.get(e);if(n)return n;let o=ce(e,[],!1).filter(l=>j(l)&&K(l)!=="body"),r=null;const i=I(e).position==="fixed";let s=i?ee(e):e;for(;j(s)&&!Ee(s);){const l=I(s),c=ke(s);!c&&l.position==="fixed"&&(r=null),(i?!c&&!r:!c&&l.position==="static"&&!!r&&["absolute","fixed"].includes(r.position)||fe(s)&&!c&&ht(e,s))?o=o.filter(u=>u!==s):r=l,s=ee(s)}return t.set(e,o),o}function Nn(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e;const s=[...n==="clippingAncestors"?Ln(t,this._c):[].concat(n),o],l=s[0],c=s.reduce((f,u)=>{const d=Ze(t,u,r);return f.top=M(d.top,f.top),f.right=X(d.right,f.right),f.bottom=X(d.bottom,f.bottom),f.left=M(d.left,f.left),f},Ze(t,l,r));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function Mn(e){const{width:t,height:n}=ut(e);return{width:t,height:n}}function kn(e,t,n){const o=H(t),r=U(t),i=n==="fixed",s=q(e,!0,i,t);let l={scrollLeft:0,scrollTop:0};const c=G(0);if(o||!o&&!i)if((K(t)!=="body"||fe(r))&&(l=Ce(t)),o){const d=q(t,!0,i,t);c.x=d.x+t.clientLeft,c.y=d.y+t.clientTop}else r&&(c.x=mt(r));const f=s.left+l.scrollLeft-c.x,u=s.top+l.scrollTop-c.y;return{x:f,y:u,width:s.width,height:s.height}}function Je(e,t){return!H(e)||I(e).position==="fixed"?null:t?t(e):e.offsetParent}function gt(e,t){const n=k(e);if(!H(e)||pt(e))return n;let o=Je(e,t);for(;o&&En(o)&&I(o).position==="static";)o=Je(o,t);return o&&(K(o)==="html"||K(o)==="body"&&I(o).position==="static"&&!ke(o))?n:o||Cn(e)||n}const In=async function(e){const t=this.getOffsetParent||gt,n=this.getDimensions;return{reference:kn(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,...await n(e.floating)}}};function Fn(e){return I(e).direction==="rtl"}const Hn={convertOffsetParentRelativeRectToViewportRelativeRect:Tn,getDocumentElement:U,getClippingRect:Nn,getOffsetParent:gt,getElementRects:In,getClientRects:Rn,getDimensions:Mn,getScale:J,isElement:j,isRTL:Fn};function Wn(e,t){let n=null,o;const r=U(e);function i(){var l;clearTimeout(o),(l=n)==null||l.disconnect(),n=null}function s(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),i();const{left:f,top:u,width:d,height:m}=e.getBoundingClientRect();if(l||t(),!d||!m)return;const p=he(u),h=he(r.clientWidth-(f+d)),v=he(r.clientHeight-(u+m)),g=he(f),x={rootMargin:-p+"px "+-h+"px "+-v+"px "+-g+"px",threshold:M(0,X(1,c))||1};let $=!0;function y(b){const E=b[0].intersectionRatio;if(E!==c){if(!$)return s();E?s(!1,E):o=setTimeout(()=>{s(!1,1e-7)},100)}$=!1}try{n=new IntersectionObserver(y,{...x,root:r.ownerDocument})}catch{n=new IntersectionObserver(y,x)}n.observe(e)}return s(!0),i}function Bn(e,t,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=o,f=Fe(e),u=r||i?[...f?ce(f):[],...ce(t)]:[];u.forEach(w=>{r&&w.addEventListener("scroll",n,{passive:!0}),i&&w.addEventListener("resize",n)});const d=f&&l?Wn(f,n):null;let m=-1,p=null;s&&(p=new ResizeObserver(w=>{let[x]=w;x&&x.target===f&&p&&(p.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var $;($=p)==null||$.observe(t)})),n()}),f&&!c&&p.observe(f),p.observe(t));let h,v=c?q(e):null;c&&g();function g(){const w=q(e);v&&(w.x!==v.x||w.y!==v.y||w.width!==v.width||w.height!==v.height)&&n(),v=w,h=requestAnimationFrame(g)}return n(),()=>{var w;u.forEach(x=>{r&&x.removeEventListener("scroll",n),i&&x.removeEventListener("resize",n)}),d==null||d(),(w=p)==null||w.disconnect(),p=null,c&&cancelAnimationFrame(h)}}const zn=$n,Vn=gn,jn=bn,Un=vn,Qe=hn,Yn=yn,Xn=(e,t,n)=>{const o=new Map,r={platform:Hn,...n},i={...r.platform,_c:o};return mn(e,t,{...r,platform:i})},Gn=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:o,padding:r}=typeof e=="function"?e(n):e;return o&&t(o)?o.current!=null?Qe({element:o.current,padding:r}).fn(n):{}:o?Qe({element:o,padding:r}).fn(n):{}}}};var we=typeof document<"u"?a.useLayoutEffect:a.useEffect;function be(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,o,r;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(o=n;o--!==0;)if(!be(e[o],t[o]))return!1;return!0}if(r=Object.keys(e),n=r.length,n!==Object.keys(t).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(t,r[o]))return!1;for(o=n;o--!==0;){const i=r[o];if(!(i==="_owner"&&e.$$typeof)&&!be(e[i],t[i]))return!1}return!0}return e!==e&&t!==t}function vt(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function et(e,t){const n=vt(e);return Math.round(t*n)/n}function tt(e){const t=a.useRef(e);return we(()=>{t.current=e}),t}function Kn(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:o=[],platform:r,elements:{reference:i,floating:s}={},transform:l=!0,whileElementsMounted:c,open:f}=e,[u,d]=a.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,p]=a.useState(o);be(m,o)||p(o);const[h,v]=a.useState(null),[g,w]=a.useState(null),x=a.useCallback(O=>{O!==E.current&&(E.current=O,v(O))},[]),$=a.useCallback(O=>{O!==P.current&&(P.current=O,w(O))},[]),y=i||h,b=s||g,E=a.useRef(null),P=a.useRef(null),C=a.useRef(u),S=c!=null,N=tt(c),_=tt(r),T=a.useCallback(()=>{if(!E.current||!P.current)return;const O={placement:t,strategy:n,middleware:m};_.current&&(O.platform=_.current),Xn(E.current,P.current,O).then(Y=>{const W={...Y,isPositioned:!0};F.current&&!be(C.current,W)&&(C.current=W,_e.flushSync(()=>{d(W)}))})},[m,t,n,_]);we(()=>{f===!1&&C.current.isPositioned&&(C.current.isPositioned=!1,d(O=>({...O,isPositioned:!1})))},[f]);const F=a.useRef(!1);we(()=>(F.current=!0,()=>{F.current=!1}),[]),we(()=>{if(y&&(E.current=y),b&&(P.current=b),y&&b){if(N.current)return N.current(y,b,T);T()}},[y,b,T,N,S]);const A=a.useMemo(()=>({reference:E,floating:P,setReference:x,setFloating:$}),[x,$]),R=a.useMemo(()=>({reference:y,floating:b}),[y,b]),D=a.useMemo(()=>{const O={position:n,left:0,top:0};if(!R.floating)return O;const Y=et(R.floating,u.x),W=et(R.floating,u.y);return l?{...O,transform:"translate("+Y+"px, "+W+"px)",...vt(R.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:Y,top:W}},[n,l,R.floating,u.x,u.y]);return a.useMemo(()=>({...u,update:T,refs:A,elements:R,floatingStyles:D}),[u,T,A,R,D])}function qn(e){const[t,n]=a.useState(void 0);return Q(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const i=r[0];let s,l;if("borderBoxSize"in i){const c=i.borderBoxSize,f=Array.isArray(c)?c[0]:c;s=f.inlineSize,l=f.blockSize}else s=e.offsetWidth,l=e.offsetHeight;n({width:s,height:l})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else n(void 0)},[e]),t}const wt="Popper",[xt,$t]=rt(wt),[Zn,yt]=xt(wt),Jn=e=>{const{__scopePopper:t,children:n}=e,[o,r]=a.useState(null);return a.createElement(Zn,{scope:t,anchor:o,onAnchorChange:r},n)},Qn="PopperAnchor",eo=a.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:o,...r}=e,i=yt(Qn,n),s=a.useRef(null),l=te(t,s);return a.useEffect(()=>{i.onAnchorChange((o==null?void 0:o.current)||s.current)}),o?null:a.createElement(le.div,L({},r,{ref:l}))}),bt="PopperContent",[to,Bo]=xt(bt),no=a.forwardRef((e,t)=>{var n,o,r,i,s,l,c,f;const{__scopePopper:u,side:d="bottom",sideOffset:m=0,align:p="center",alignOffset:h=0,arrowPadding:v=0,avoidCollisions:g=!0,collisionBoundary:w=[],collisionPadding:x=0,sticky:$="partial",hideWhenDetached:y=!1,updatePositionStrategy:b="optimized",onPlaced:E,...P}=e,C=yt(bt,u),[S,N]=a.useState(null),_=te(t,ie=>N(ie)),[T,F]=a.useState(null),A=qn(T),R=(n=A==null?void 0:A.width)!==null&&n!==void 0?n:0,D=(o=A==null?void 0:A.height)!==null&&o!==void 0?o:0,O=d+(p!=="center"?"-"+p:""),Y=typeof x=="number"?x:{top:0,right:0,bottom:0,left:0,...x},W=Array.isArray(w)?w:[w],Tt=W.length>0,ue={padding:Y,boundary:W.filter(oo),altBoundary:Tt},{refs:Rt,floatingStyles:ze,placement:St,isPositioned:de,middlewareData:Z}=Kn({strategy:"fixed",placement:O,whileElementsMounted:(...ie)=>Bn(...ie,{animationFrame:b==="always"}),elements:{reference:C.anchor},middleware:[xn({mainAxis:m+D,alignmentAxis:h}),g&&zn({mainAxis:!0,crossAxis:!1,limiter:$==="partial"?Yn():void 0,...ue}),g&&Vn({...ue}),jn({...ue,apply:({elements:ie,rects:je,availableWidth:It,availableHeight:Ft})=>{const{width:Ht,height:Wt}=je.reference,me=ie.floating.style;me.setProperty("--radix-popper-available-width",`${It}px`),me.setProperty("--radix-popper-available-height",`${Ft}px`),me.setProperty("--radix-popper-anchor-width",`${Ht}px`),me.setProperty("--radix-popper-anchor-height",`${Wt}px`)}}),T&&Gn({element:T,padding:v}),ro({arrowWidth:R,arrowHeight:D}),y&&Un({strategy:"referenceHidden",...ue})]}),[Ve,Dt]=Et(St),pe=ne(E);Q(()=>{de&&(pe==null||pe())},[de,pe]);const _t=(r=Z.arrow)===null||r===void 0?void 0:r.x,Lt=(i=Z.arrow)===null||i===void 0?void 0:i.y,Nt=((s=Z.arrow)===null||s===void 0?void 0:s.centerOffset)!==0,[Mt,kt]=a.useState();return Q(()=>{S&&kt(window.getComputedStyle(S).zIndex)},[S]),a.createElement("div",{ref:Rt.setFloating,"data-radix-popper-content-wrapper":"",style:{...ze,transform:de?ze.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Mt,"--radix-popper-transform-origin":[(l=Z.transformOrigin)===null||l===void 0?void 0:l.x,(c=Z.transformOrigin)===null||c===void 0?void 0:c.y].join(" ")},dir:e.dir},a.createElement(to,{scope:u,placedSide:Ve,onArrowChange:F,arrowX:_t,arrowY:Lt,shouldHideArrow:Nt},a.createElement(le.div,L({"data-side":Ve,"data-align":Dt},P,{ref:_,style:{...P.style,animation:de?void 0:"none",opacity:(f=Z.hide)!==null&&f!==void 0&&f.referenceHidden?0:void 0}}))))});function oo(e){return e!==null}const ro=e=>({name:"transformOrigin",options:e,fn(t){var n,o,r,i,s;const{placement:l,rects:c,middlewareData:f}=t,d=((n=f.arrow)===null||n===void 0?void 0:n.centerOffset)!==0,m=d?0:e.arrowWidth,p=d?0:e.arrowHeight,[h,v]=Et(l),g={start:"0%",center:"50%",end:"100%"}[v],w=((o=(r=f.arrow)===null||r===void 0?void 0:r.x)!==null&&o!==void 0?o:0)+m/2,x=((i=(s=f.arrow)===null||s===void 0?void 0:s.y)!==null&&i!==void 0?i:0)+p/2;let $="",y="";return h==="bottom"?($=d?g:`${w}px`,y=`${-p}px`):h==="top"?($=d?g:`${w}px`,y=`${c.floating.height+p}px`):h==="right"?($=`${-p}px`,y=d?g:`${x}px`):h==="left"&&($=`${c.floating.width+p}px`,y=d?g:`${x}px`),{data:{x:$,y}}}});function Et(e){const[t,n="center"]=e.split("-");return[t,n]}const io=Jn,so=eo,co=no;function ao(e,t){return a.useReducer((n,o)=>{const r=t[n][o];return r??n},e)}const Ct=e=>{const{present:t,children:n}=e,o=lo(t),r=typeof n=="function"?n({present:o.isPresent}):a.Children.only(n),i=te(o.ref,r.ref);return typeof n=="function"||o.isPresent?a.cloneElement(r,{ref:i}):null};Ct.displayName="Presence";function lo(e){const[t,n]=a.useState(),o=a.useRef({}),r=a.useRef(e),i=a.useRef("none"),s=e?"mounted":"unmounted",[l,c]=ao(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return a.useEffect(()=>{const f=ge(o.current);i.current=l==="mounted"?f:"none"},[l]),Q(()=>{const f=o.current,u=r.current;if(u!==e){const m=i.current,p=ge(f);e?c("MOUNT"):p==="none"||(f==null?void 0:f.display)==="none"?c("UNMOUNT"):c(u&&m!==p?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,c]),Q(()=>{if(t){const f=d=>{const p=ge(o.current).includes(d.animationName);d.target===t&&p&&_e.flushSync(()=>c("ANIMATION_END"))},u=d=>{d.target===t&&(i.current=ge(o.current))};return t.addEventListener("animationstart",u),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{t.removeEventListener("animationstart",u),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:a.useCallback(f=>{f&&(o.current=getComputedStyle(f)),n(f)},[])}}function ge(e){return(e==null?void 0:e.animationName)||"none"}function fo({prop:e,defaultProp:t,onChange:n=()=>{}}){const[o,r]=uo({defaultProp:t,onChange:n}),i=e!==void 0,s=i?e:o,l=ne(n),c=a.useCallback(f=>{if(i){const d=typeof f=="function"?f(e):f;d!==e&&l(d)}else r(f)},[i,e,r,l]);return[s,c]}function uo({defaultProp:e,onChange:t}){const n=a.useState(e),[o]=n,r=a.useRef(o),i=ne(t);return a.useEffect(()=>{r.current!==o&&(i(o),r.current=o)},[o,r,i]),n}const po=a.forwardRef((e,t)=>a.createElement(le.span,L({},e,{ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}))),mo=po,[Pe,zo]=rt("Tooltip",[$t]),He=$t(),ho="TooltipProvider",go=700,De="tooltip.open",[vo,We]=Pe(ho),wo=e=>{const{__scopeTooltip:t,delayDuration:n=go,skipDelayDuration:o=300,disableHoverableContent:r=!1,children:i}=e,[s,l]=a.useState(!0),c=a.useRef(!1),f=a.useRef(0);return a.useEffect(()=>{const u=f.current;return()=>window.clearTimeout(u)},[]),a.createElement(vo,{scope:t,isOpenDelayed:s,delayDuration:n,onOpen:a.useCallback(()=>{window.clearTimeout(f.current),l(!1)},[]),onClose:a.useCallback(()=>{window.clearTimeout(f.current),f.current=window.setTimeout(()=>l(!0),o)},[o]),isPointerInTransitRef:c,onPointerInTransitChange:a.useCallback(u=>{c.current=u},[]),disableHoverableContent:r},i)},Be="Tooltip",[xo,Oe]=Pe(Be),$o=e=>{const{__scopeTooltip:t,children:n,open:o,defaultOpen:r=!1,onOpenChange:i,disableHoverableContent:s,delayDuration:l}=e,c=We(Be,e.__scopeTooltip),f=He(t),[u,d]=a.useState(null),m=rn(),p=a.useRef(0),h=s??c.disableHoverableContent,v=l??c.delayDuration,g=a.useRef(!1),[w=!1,x]=fo({prop:o,defaultProp:r,onChange:P=>{P?(c.onOpen(),document.dispatchEvent(new CustomEvent(De))):c.onClose(),i==null||i(P)}}),$=a.useMemo(()=>w?g.current?"delayed-open":"instant-open":"closed",[w]),y=a.useCallback(()=>{window.clearTimeout(p.current),g.current=!1,x(!0)},[x]),b=a.useCallback(()=>{window.clearTimeout(p.current),x(!1)},[x]),E=a.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{g.current=!0,x(!0)},v)},[v,x]);return a.useEffect(()=>()=>window.clearTimeout(p.current),[]),a.createElement(io,f,a.createElement(xo,{scope:t,contentId:m,open:w,stateAttribute:$,trigger:u,onTriggerChange:d,onTriggerEnter:a.useCallback(()=>{c.isOpenDelayed?E():y()},[c.isOpenDelayed,E,y]),onTriggerLeave:a.useCallback(()=>{h?b():window.clearTimeout(p.current)},[b,h]),onOpen:y,onClose:b,disableHoverableContent:h},n))},nt="TooltipTrigger",yo=a.forwardRef((e,t)=>{const{__scopeTooltip:n,...o}=e,r=Oe(nt,n),i=We(nt,n),s=He(n),l=a.useRef(null),c=te(t,l,r.onTriggerChange),f=a.useRef(!1),u=a.useRef(!1),d=a.useCallback(()=>f.current=!1,[]);return a.useEffect(()=>()=>document.removeEventListener("pointerup",d),[d]),a.createElement(so,L({asChild:!0},s),a.createElement(le.button,L({"aria-describedby":r.open?r.contentId:void 0,"data-state":r.stateAttribute},o,{ref:c,onPointerMove:B(e.onPointerMove,m=>{m.pointerType!=="touch"&&!u.current&&!i.isPointerInTransitRef.current&&(r.onTriggerEnter(),u.current=!0)}),onPointerLeave:B(e.onPointerLeave,()=>{r.onTriggerLeave(),u.current=!1}),onPointerDown:B(e.onPointerDown,()=>{f.current=!0,document.addEventListener("pointerup",d,{once:!0})}),onFocus:B(e.onFocus,()=>{f.current||r.onOpen()}),onBlur:B(e.onBlur,r.onClose),onClick:B(e.onClick,r.onClose)})))}),bo="TooltipPortal",[Vo,Eo]=Pe(bo,{forceMount:void 0}),ae="TooltipContent",Co=a.forwardRef((e,t)=>{const n=Eo(ae,e.__scopeTooltip),{forceMount:o=n.forceMount,side:r="top",...i}=e,s=Oe(ae,e.__scopeTooltip);return a.createElement(Ct,{present:o||s.open},s.disableHoverableContent?a.createElement(Pt,L({side:r},i,{ref:t})):a.createElement(Po,L({side:r},i,{ref:t})))}),Po=a.forwardRef((e,t)=>{const n=Oe(ae,e.__scopeTooltip),o=We(ae,e.__scopeTooltip),r=a.useRef(null),i=te(t,r),[s,l]=a.useState(null),{trigger:c,onClose:f}=n,u=r.current,{onPointerInTransitChange:d}=o,m=a.useCallback(()=>{l(null),d(!1)},[d]),p=a.useCallback((h,v)=>{const g=h.currentTarget,w={x:h.clientX,y:h.clientY},x=Ao(w,g.getBoundingClientRect()),$=To(w,x),y=Ro(v.getBoundingClientRect()),b=Do([...$,...y]);l(b),d(!0)},[d]);return a.useEffect(()=>()=>m(),[m]),a.useEffect(()=>{if(c&&u){const h=g=>p(g,u),v=g=>p(g,c);return c.addEventListener("pointerleave",h),u.addEventListener("pointerleave",v),()=>{c.removeEventListener("pointerleave",h),u.removeEventListener("pointerleave",v)}}},[c,u,p,m]),a.useEffect(()=>{if(s){const h=v=>{const g=v.target,w={x:v.clientX,y:v.clientY},x=(c==null?void 0:c.contains(g))||(u==null?void 0:u.contains(g)),$=!So(w,s);x?m():$&&(m(),f())};return document.addEventListener("pointermove",h),()=>document.removeEventListener("pointermove",h)}},[c,u,s,f,m]),a.createElement(Pt,L({},e,{ref:i}))}),[Oo,jo]=Pe(Be,{isInside:!1}),Pt=a.forwardRef((e,t)=>{const{__scopeTooltip:n,children:o,"aria-label":r,onEscapeKeyDown:i,onPointerDownOutside:s,...l}=e,c=Oe(ae,n),f=He(n),{onClose:u}=c;return a.useEffect(()=>(document.addEventListener(De,u),()=>document.removeEventListener(De,u)),[u]),a.useEffect(()=>{if(c.trigger){const d=m=>{const p=m.target;p!=null&&p.contains(c.trigger)&&u()};return window.addEventListener("scroll",d,{capture:!0}),()=>window.removeEventListener("scroll",d,{capture:!0})}},[c.trigger,u]),a.createElement(Qt,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:d=>d.preventDefault(),onDismiss:u},a.createElement(co,L({"data-state":c.stateAttribute},f,l,{ref:t,style:{...l.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"}}),a.createElement(st,null,o),a.createElement(Oo,{scope:n,isInside:!0},a.createElement(mo,{id:c.contentId,role:"tooltip"},r||o))))});function Ao(e,t){const n=Math.abs(t.top-e.y),o=Math.abs(t.bottom-e.y),r=Math.abs(t.right-e.x),i=Math.abs(t.left-e.x);switch(Math.min(n,o,r,i)){case i:return"left";case r:return"right";case n:return"top";case o:return"bottom";default:throw new Error("unreachable")}}function To(e,t,n=5){const o=[];switch(t){case"top":o.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":o.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":o.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":o.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return o}function Ro(e){const{top:t,right:n,bottom:o,left:r}=e;return[{x:r,y:t},{x:n,y:t},{x:n,y:o},{x:r,y:o}]}function So(e,t){const{x:n,y:o}=e;let r=!1;for(let i=0,s=t.length-1;i<t.length;s=i++){const l=t[i].x,c=t[i].y,f=t[s].x,u=t[s].y;c>o!=u>o&&n<(f-l)*(o-c)/(u-c)+l&&(r=!r)}return r}function Do(e){const t=e.slice();return t.sort((n,o)=>n.x<o.x?-1:n.x>o.x?1:n.y<o.y?-1:n.y>o.y?1:0),_o(t)}function _o(e){if(e.length<=1)return e.slice();const t=[];for(let o=0;o<e.length;o++){const r=e[o];for(;t.length>=2;){const i=t[t.length-1],s=t[t.length-2];if((i.x-s.x)*(r.y-s.y)>=(i.y-s.y)*(r.x-s.x))t.pop();else break}t.push(r)}t.pop();const n=[];for(let o=e.length-1;o>=0;o--){const r=e[o];for(;n.length>=2;){const i=n[n.length-1],s=n[n.length-2];if((i.x-s.x)*(r.y-s.y)>=(i.y-s.y)*(r.x-s.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}const Lo=wo,No=$o,Mo=yo,Ot=Co,Uo=Lo,ko=No,Io=Mo,At=a.forwardRef(({className:e,sideOffset:t=4,...n},o)=>ve.jsx(Ot,{ref:o,sideOffset:t,className:zt("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n}));At.displayName=Ot.displayName;function Yo({content:e,children:t}){return e?ve.jsxs(ko,{children:[ve.jsx(Io,{asChild:!0,children:t}),ve.jsx(At,{children:e})]}):t}export{rt as $,Yo as S,Uo as T,L as _,ko as a,Io as b,At as c,te as d,fo as e,ne as f,le as g,B as h,rn as i,Ct as j,$t as k,io as l,so as m,it as n,Qt as o,co as p,Q as q,po as r};
2
- //# sourceMappingURL=tooltip-BlVFw-is.js.map
1
+ import{r as a,$ as Bt,j as ve}from"./index-D1WEsmVZ.js";import{r as _e}from"./components-Dj3sm47B.js";import{c as zt}from"./misc-CXGQ7VS9.js";function L(){return L=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},L.apply(this,arguments)}function B(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e==null||e(r),n===!1||!r.defaultPrevented)return t==null?void 0:t(r)}}function Vt(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function ot(...e){return t=>e.forEach(n=>Vt(n,t))}function te(...e){return a.useCallback(ot(...e),e)}function rt(e,t=[]){let n=[];function o(i,s){const l=a.createContext(s),c=n.length;n=[...n,s];function f(d){const{scope:m,children:p,...h}=d,v=(m==null?void 0:m[e][c])||l,g=a.useMemo(()=>h,Object.values(h));return a.createElement(v.Provider,{value:g},p)}function u(d,m){const p=(m==null?void 0:m[e][c])||l,h=a.useContext(p);if(h)return h;if(s!==void 0)return s;throw new Error(`\`${d}\` must be used within \`${i}\``)}return f.displayName=i+"Provider",[f,u]}const r=()=>{const i=n.map(s=>a.createContext(s));return function(l){const c=(l==null?void 0:l[e])||i;return a.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return r.scopeName=e,[o,jt(r,...t)]}function jt(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(i){const s=o.reduce((l,{useScope:c,scopeName:f})=>{const d=c(i)[`__scope${f}`];return{...l,...d}},{});return a.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return n.scopeName=t.scopeName,n}const it=a.forwardRef((e,t)=>{const{children:n,...o}=e,r=a.Children.toArray(n),i=r.find(Ut);if(i){const s=i.props.children,l=r.map(c=>c===i?a.Children.count(s)>1?a.Children.only(null):a.isValidElement(s)?s.props.children:null:c);return a.createElement(Ae,L({},o,{ref:t}),a.isValidElement(s)?a.cloneElement(s,void 0,l):null)}return a.createElement(Ae,L({},o,{ref:t}),n)});it.displayName="Slot";const Ae=a.forwardRef((e,t)=>{const{children:n,...o}=e;return a.isValidElement(n)?a.cloneElement(n,{...Yt(o,n.props),ref:t?ot(t,n.ref):n.ref}):a.Children.count(n)>1?a.Children.only(null):null});Ae.displayName="SlotClone";const st=({children:e})=>a.createElement(a.Fragment,null,e);function Ut(e){return a.isValidElement(e)&&e.type===st}function Yt(e,t){const n={...t};for(const o in t){const r=e[o],i=t[o];/^on[A-Z]/.test(o)?r&&i?n[o]=(...l)=>{i(...l),r(...l)}:r&&(n[o]=r):o==="style"?n[o]={...r,...i}:o==="className"&&(n[o]=[r,i].filter(Boolean).join(" "))}return{...e,...n}}const Xt=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],le=Xt.reduce((e,t)=>{const n=a.forwardRef((o,r)=>{const{asChild:i,...s}=o,l=i?it:t;return a.useEffect(()=>{window[Symbol.for("radix-ui")]=!0},[]),a.createElement(l,L({},s,{ref:r}))});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function Gt(e,t){e&&_e.flushSync(()=>e.dispatchEvent(t))}function ne(e){const t=a.useRef(e);return a.useEffect(()=>{t.current=e}),a.useMemo(()=>(...n)=>{var o;return(o=t.current)===null||o===void 0?void 0:o.call(t,...n)},[])}function Kt(e,t=globalThis==null?void 0:globalThis.document){const n=ne(e);a.useEffect(()=>{const o=r=>{r.key==="Escape"&&n(r)};return t.addEventListener("keydown",o),()=>t.removeEventListener("keydown",o)},[n,t])}const Te="dismissableLayer.update",qt="dismissableLayer.pointerDownOutside",Zt="dismissableLayer.focusOutside";let Ue;const Jt=a.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Qt=a.forwardRef((e,t)=>{var n;const{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:s,onInteractOutside:l,onDismiss:c,...f}=e,u=a.useContext(Jt),[d,m]=a.useState(null),p=(n=d==null?void 0:d.ownerDocument)!==null&&n!==void 0?n:globalThis==null?void 0:globalThis.document,[,h]=a.useState({}),v=te(t,C=>m(C)),g=Array.from(u.layers),[w]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),x=g.indexOf(w),$=d?g.indexOf(d):-1,y=u.layersWithOutsidePointerEventsDisabled.size>0,b=$>=x,E=en(C=>{const S=C.target,N=[...u.branches].some(_=>_.contains(S));!b||N||(i==null||i(C),l==null||l(C),C.defaultPrevented||c==null||c())},p),P=tn(C=>{const S=C.target;[...u.branches].some(_=>_.contains(S))||(s==null||s(C),l==null||l(C),C.defaultPrevented||c==null||c())},p);return Kt(C=>{$===u.layers.size-1&&(r==null||r(C),!C.defaultPrevented&&c&&(C.preventDefault(),c()))},p),a.useEffect(()=>{if(d)return o&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(Ue=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),Ye(),()=>{o&&u.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=Ue)}},[d,p,o,u]),a.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),Ye())},[d,u]),a.useEffect(()=>{const C=()=>h({});return document.addEventListener(Te,C),()=>document.removeEventListener(Te,C)},[]),a.createElement(le.div,L({},f,{ref:v,style:{pointerEvents:y?b?"auto":"none":void 0,...e.style},onFocusCapture:B(e.onFocusCapture,P.onFocusCapture),onBlurCapture:B(e.onBlurCapture,P.onBlurCapture),onPointerDownCapture:B(e.onPointerDownCapture,E.onPointerDownCapture)}))});function en(e,t=globalThis==null?void 0:globalThis.document){const n=ne(e),o=a.useRef(!1),r=a.useRef(()=>{});return a.useEffect(()=>{const i=l=>{if(l.target&&!o.current){let f=function(){ct(qt,n,c,{discrete:!0})};const c={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=f,t.addEventListener("click",r.current,{once:!0})):f()}else t.removeEventListener("click",r.current);o.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",i),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>o.current=!0}}function tn(e,t=globalThis==null?void 0:globalThis.document){const n=ne(e),o=a.useRef(!1);return a.useEffect(()=>{const r=i=>{i.target&&!o.current&&ct(Zt,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function Ye(){const e=new CustomEvent(Te);document.dispatchEvent(e)}function ct(e,t,n,{discrete:o}){const r=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),o?Gt(r,i):r.dispatchEvent(i)}const Q=globalThis!=null&&globalThis.document?a.useLayoutEffect:()=>{},nn=Bt.useId||(()=>{});let on=0;function rn(e){const[t,n]=a.useState(nn());return Q(()=>{e||n(o=>o??String(on++))},[e]),e||(t?`radix-${t}`:"")}const sn=["top","right","bottom","left"],X=Math.min,M=Math.max,xe=Math.round,he=Math.floor,G=e=>({x:e,y:e}),cn={left:"right",right:"left",bottom:"top",top:"bottom"},an={start:"end",end:"start"};function Re(e,t,n){return M(e,X(t,n))}function z(e,t){return typeof e=="function"?e(t):e}function V(e){return e.split("-")[0]}function oe(e){return e.split("-")[1]}function Le(e){return e==="x"?"y":"x"}function Ne(e){return e==="y"?"height":"width"}function re(e){return["top","bottom"].includes(V(e))?"y":"x"}function Me(e){return Le(re(e))}function ln(e,t,n){n===void 0&&(n=!1);const o=oe(e),r=Me(e),i=Ne(r);let s=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(s=$e(s)),[s,$e(s)]}function fn(e){const t=$e(e);return[Se(e),t,Se(t)]}function Se(e){return e.replace(/start|end/g,t=>an[t])}function un(e,t,n){const o=["left","right"],r=["right","left"],i=["top","bottom"],s=["bottom","top"];switch(e){case"top":case"bottom":return n?t?r:o:t?o:r;case"left":case"right":return t?i:s;default:return[]}}function dn(e,t,n,o){const r=oe(e);let i=un(V(e),n==="start",o);return r&&(i=i.map(s=>s+"-"+r),t&&(i=i.concat(i.map(Se)))),i}function $e(e){return e.replace(/left|right|bottom|top/g,t=>cn[t])}function pn(e){return{top:0,right:0,bottom:0,left:0,...e}}function at(e){return typeof e!="number"?pn(e):{top:e,right:e,bottom:e,left:e}}function ye(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function Xe(e,t,n){let{reference:o,floating:r}=e;const i=re(t),s=Me(t),l=Ne(s),c=V(t),f=i==="y",u=o.x+o.width/2-r.width/2,d=o.y+o.height/2-r.height/2,m=o[l]/2-r[l]/2;let p;switch(c){case"top":p={x:u,y:o.y-r.height};break;case"bottom":p={x:u,y:o.y+o.height};break;case"right":p={x:o.x+o.width,y:d};break;case"left":p={x:o.x-r.width,y:d};break;default:p={x:o.x,y:o.y}}switch(oe(t)){case"start":p[s]-=m*(n&&f?-1:1);break;case"end":p[s]+=m*(n&&f?-1:1);break}return p}const mn=async(e,t,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:s}=n,l=i.filter(Boolean),c=await(s.isRTL==null?void 0:s.isRTL(t));let f=await s.getElementRects({reference:e,floating:t,strategy:r}),{x:u,y:d}=Xe(f,o,c),m=o,p={},h=0;for(let v=0;v<l.length;v++){const{name:g,fn:w}=l[v],{x,y:$,data:y,reset:b}=await w({x:u,y:d,initialPlacement:o,placement:m,strategy:r,middlewareData:p,rects:f,platform:s,elements:{reference:e,floating:t}});u=x??u,d=$??d,p={...p,[g]:{...p[g],...y}},b&&h<=50&&(h++,typeof b=="object"&&(b.placement&&(m=b.placement),b.rects&&(f=b.rects===!0?await s.getElementRects({reference:e,floating:t,strategy:r}):b.rects),{x:u,y:d}=Xe(f,m,c)),v=-1)}return{x:u,y:d,placement:m,strategy:r,middlewareData:p}};async function se(e,t){var n;t===void 0&&(t={});const{x:o,y:r,platform:i,rects:s,elements:l,strategy:c}=e,{boundary:f="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:m=!1,padding:p=0}=z(t,e),h=at(p),g=l[m?d==="floating"?"reference":"floating":d],w=ye(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(g)))==null||n?g:g.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:f,rootBoundary:u,strategy:c})),x=d==="floating"?{...s.floating,x:o,y:r}:s.reference,$=await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),y=await(i.isElement==null?void 0:i.isElement($))?await(i.getScale==null?void 0:i.getScale($))||{x:1,y:1}:{x:1,y:1},b=ye(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:x,offsetParent:$,strategy:c}):x);return{top:(w.top-b.top+h.top)/y.y,bottom:(b.bottom-w.bottom+h.bottom)/y.y,left:(w.left-b.left+h.left)/y.x,right:(b.right-w.right+h.right)/y.x}}const hn=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:r,rects:i,platform:s,elements:l,middlewareData:c}=t,{element:f,padding:u=0}=z(e,t)||{};if(f==null)return{};const d=at(u),m={x:n,y:o},p=Me(r),h=Ne(p),v=await s.getDimensions(f),g=p==="y",w=g?"top":"left",x=g?"bottom":"right",$=g?"clientHeight":"clientWidth",y=i.reference[h]+i.reference[p]-m[p]-i.floating[h],b=m[p]-i.reference[p],E=await(s.getOffsetParent==null?void 0:s.getOffsetParent(f));let P=E?E[$]:0;(!P||!await(s.isElement==null?void 0:s.isElement(E)))&&(P=l.floating[$]||i.floating[h]);const C=y/2-b/2,S=P/2-v[h]/2-1,N=X(d[w],S),_=X(d[x],S),T=N,F=P-v[h]-_,A=P/2-v[h]/2+C,R=Re(T,A,F),D=!c.arrow&&oe(r)!=null&&A!==R&&i.reference[h]/2-(A<T?N:_)-v[h]/2<0,O=D?A<T?A-T:A-F:0;return{[p]:m[p]+O,data:{[p]:R,centerOffset:A-R-O,...D&&{alignmentOffset:O}},reset:D}}}),gn=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,o;const{placement:r,middlewareData:i,rects:s,initialPlacement:l,platform:c,elements:f}=t,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:m,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:v=!0,...g}=z(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const w=V(r),x=V(l)===l,$=await(c.isRTL==null?void 0:c.isRTL(f.floating)),y=m||(x||!v?[$e(l)]:fn(l));!m&&h!=="none"&&y.push(...dn(l,v,h,$));const b=[l,...y],E=await se(t,g),P=[];let C=((o=i.flip)==null?void 0:o.overflows)||[];if(u&&P.push(E[w]),d){const T=ln(r,s,$);P.push(E[T[0]],E[T[1]])}if(C=[...C,{placement:r,overflows:P}],!P.every(T=>T<=0)){var S,N;const T=(((S=i.flip)==null?void 0:S.index)||0)+1,F=b[T];if(F)return{data:{index:T,overflows:C},reset:{placement:F}};let A=(N=C.filter(R=>R.overflows[0]<=0).sort((R,D)=>R.overflows[1]-D.overflows[1])[0])==null?void 0:N.placement;if(!A)switch(p){case"bestFit":{var _;const R=(_=C.map(D=>[D.placement,D.overflows.filter(O=>O>0).reduce((O,Y)=>O+Y,0)]).sort((D,O)=>D[1]-O[1])[0])==null?void 0:_[0];R&&(A=R);break}case"initialPlacement":A=l;break}if(r!==A)return{reset:{placement:A}}}return{}}}};function Ge(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Ke(e){return sn.some(t=>e[t]>=0)}const vn=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:o="referenceHidden",...r}=z(e,t);switch(o){case"referenceHidden":{const i=await se(t,{...r,elementContext:"reference"}),s=Ge(i,n.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:Ke(s)}}}case"escaped":{const i=await se(t,{...r,altBoundary:!0}),s=Ge(i,n.floating);return{data:{escapedOffsets:s,escaped:Ke(s)}}}default:return{}}}}};async function wn(e,t){const{placement:n,platform:o,elements:r}=e,i=await(o.isRTL==null?void 0:o.isRTL(r.floating)),s=V(n),l=oe(n),c=re(n)==="y",f=["left","top"].includes(s)?-1:1,u=i&&c?-1:1,d=z(t,e);let{mainAxis:m,crossAxis:p,alignmentAxis:h}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...d};return l&&typeof h=="number"&&(p=l==="end"?h*-1:h),c?{x:p*u,y:m*f}:{x:m*f,y:p*u}}const xn=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,o;const{x:r,y:i,placement:s,middlewareData:l}=t,c=await wn(t,e);return s===((n=l.offset)==null?void 0:n.placement)&&(o=l.arrow)!=null&&o.alignmentOffset?{}:{x:r+c.x,y:i+c.y,data:{...c,placement:s}}}}},$n=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:r}=t,{mainAxis:i=!0,crossAxis:s=!1,limiter:l={fn:g=>{let{x:w,y:x}=g;return{x:w,y:x}}},...c}=z(e,t),f={x:n,y:o},u=await se(t,c),d=re(V(r)),m=Le(d);let p=f[m],h=f[d];if(i){const g=m==="y"?"top":"left",w=m==="y"?"bottom":"right",x=p+u[g],$=p-u[w];p=Re(x,p,$)}if(s){const g=d==="y"?"top":"left",w=d==="y"?"bottom":"right",x=h+u[g],$=h-u[w];h=Re(x,h,$)}const v=l.fn({...t,[m]:p,[d]:h});return{...v,data:{x:v.x-n,y:v.y-o}}}}},yn=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:o,placement:r,rects:i,middlewareData:s}=t,{offset:l=0,mainAxis:c=!0,crossAxis:f=!0}=z(e,t),u={x:n,y:o},d=re(r),m=Le(d);let p=u[m],h=u[d];const v=z(l,t),g=typeof v=="number"?{mainAxis:v,crossAxis:0}:{mainAxis:0,crossAxis:0,...v};if(c){const $=m==="y"?"height":"width",y=i.reference[m]-i.floating[$]+g.mainAxis,b=i.reference[m]+i.reference[$]-g.mainAxis;p<y?p=y:p>b&&(p=b)}if(f){var w,x;const $=m==="y"?"width":"height",y=["top","left"].includes(V(r)),b=i.reference[d]-i.floating[$]+(y&&((w=s.offset)==null?void 0:w[d])||0)+(y?0:g.crossAxis),E=i.reference[d]+i.reference[$]+(y?0:((x=s.offset)==null?void 0:x[d])||0)-(y?g.crossAxis:0);h<b?h=b:h>E&&(h=E)}return{[m]:p,[d]:h}}}},bn=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:o,platform:r,elements:i}=t,{apply:s=()=>{},...l}=z(e,t),c=await se(t,l),f=V(n),u=oe(n),d=re(n)==="y",{width:m,height:p}=o.floating;let h,v;f==="top"||f==="bottom"?(h=f,v=u===(await(r.isRTL==null?void 0:r.isRTL(i.floating))?"start":"end")?"left":"right"):(v=f,h=u==="end"?"top":"bottom");const g=p-c[h],w=m-c[v],x=!t.middlewareData.shift;let $=g,y=w;if(d){const E=m-c.left-c.right;y=u||x?X(w,E):E}else{const E=p-c.top-c.bottom;$=u||x?X(g,E):E}if(x&&!u){const E=M(c.left,0),P=M(c.right,0),C=M(c.top,0),S=M(c.bottom,0);d?y=m-2*(E!==0||P!==0?E+P:M(c.left,c.right)):$=p-2*(C!==0||S!==0?C+S:M(c.top,c.bottom))}await s({...t,availableWidth:y,availableHeight:$});const b=await r.getDimensions(i.floating);return m!==b.width||p!==b.height?{reset:{rects:!0}}:{}}}};function K(e){return lt(e)?(e.nodeName||"").toLowerCase():"#document"}function k(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function U(e){var t;return(t=(lt(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function lt(e){return e instanceof Node||e instanceof k(e).Node}function j(e){return e instanceof Element||e instanceof k(e).Element}function H(e){return e instanceof HTMLElement||e instanceof k(e).HTMLElement}function qe(e){return typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof k(e).ShadowRoot}function fe(e){const{overflow:t,overflowX:n,overflowY:o,display:r}=I(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&!["inline","contents"].includes(r)}function En(e){return["table","td","th"].includes(K(e))}function ke(e){const t=Ie(),n=I(e);return n.transform!=="none"||n.perspective!=="none"||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||["transform","perspective","filter"].some(o=>(n.willChange||"").includes(o))||["paint","layout","strict","content"].some(o=>(n.contain||"").includes(o))}function Cn(e){let t=ee(e);for(;H(t)&&!Ee(t);){if(ke(t))return t;t=ee(t)}return null}function Ie(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function Ee(e){return["html","body","#document"].includes(K(e))}function I(e){return k(e).getComputedStyle(e)}function Ce(e){return j(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ee(e){if(K(e)==="html")return e;const t=e.assignedSlot||e.parentNode||qe(e)&&e.host||U(e);return qe(t)?t.host:t}function ft(e){const t=ee(e);return Ee(t)?e.ownerDocument?e.ownerDocument.body:e.body:H(t)&&fe(t)?t:ft(t)}function ce(e,t,n){var o;t===void 0&&(t=[]),n===void 0&&(n=!0);const r=ft(e),i=r===((o=e.ownerDocument)==null?void 0:o.body),s=k(r);return i?t.concat(s,s.visualViewport||[],fe(r)?r:[],s.frameElement&&n?ce(s.frameElement):[]):t.concat(r,ce(r,[],n))}function ut(e){const t=I(e);let n=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const r=H(e),i=r?e.offsetWidth:n,s=r?e.offsetHeight:o,l=xe(n)!==i||xe(o)!==s;return l&&(n=i,o=s),{width:n,height:o,$:l}}function Fe(e){return j(e)?e:e.contextElement}function J(e){const t=Fe(e);if(!H(t))return G(1);const n=t.getBoundingClientRect(),{width:o,height:r,$:i}=ut(t);let s=(i?xe(n.width):n.width)/o,l=(i?xe(n.height):n.height)/r;return(!s||!Number.isFinite(s))&&(s=1),(!l||!Number.isFinite(l))&&(l=1),{x:s,y:l}}const Pn=G(0);function dt(e){const t=k(e);return!Ie()||!t.visualViewport?Pn:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function On(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==k(e)?!1:t}function q(e,t,n,o){t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),i=Fe(e);let s=G(1);t&&(o?j(o)&&(s=J(o)):s=J(e));const l=On(i,n,o)?dt(i):G(0);let c=(r.left+l.x)/s.x,f=(r.top+l.y)/s.y,u=r.width/s.x,d=r.height/s.y;if(i){const m=k(i),p=o&&j(o)?k(o):o;let h=m,v=h.frameElement;for(;v&&o&&p!==h;){const g=J(v),w=v.getBoundingClientRect(),x=I(v),$=w.left+(v.clientLeft+parseFloat(x.paddingLeft))*g.x,y=w.top+(v.clientTop+parseFloat(x.paddingTop))*g.y;c*=g.x,f*=g.y,u*=g.x,d*=g.y,c+=$,f+=y,h=k(v),v=h.frameElement}}return ye({width:u,height:d,x:c,y:f})}const An=[":popover-open",":modal"];function pt(e){return An.some(t=>{try{return e.matches(t)}catch{return!1}})}function Tn(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e;const i=r==="fixed",s=U(o),l=t?pt(t.floating):!1;if(o===s||l&&i)return n;let c={scrollLeft:0,scrollTop:0},f=G(1);const u=G(0),d=H(o);if((d||!d&&!i)&&((K(o)!=="body"||fe(s))&&(c=Ce(o)),H(o))){const m=q(o);f=J(o),u.x=m.x+o.clientLeft,u.y=m.y+o.clientTop}return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-c.scrollLeft*f.x+u.x,y:n.y*f.y-c.scrollTop*f.y+u.y}}function Rn(e){return Array.from(e.getClientRects())}function mt(e){return q(U(e)).left+Ce(e).scrollLeft}function Sn(e){const t=U(e),n=Ce(e),o=e.ownerDocument.body,r=M(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),i=M(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let s=-n.scrollLeft+mt(e);const l=-n.scrollTop;return I(o).direction==="rtl"&&(s+=M(t.clientWidth,o.clientWidth)-r),{width:r,height:i,x:s,y:l}}function Dn(e,t){const n=k(e),o=U(e),r=n.visualViewport;let i=o.clientWidth,s=o.clientHeight,l=0,c=0;if(r){i=r.width,s=r.height;const f=Ie();(!f||f&&t==="fixed")&&(l=r.offsetLeft,c=r.offsetTop)}return{width:i,height:s,x:l,y:c}}function _n(e,t){const n=q(e,!0,t==="fixed"),o=n.top+e.clientTop,r=n.left+e.clientLeft,i=H(e)?J(e):G(1),s=e.clientWidth*i.x,l=e.clientHeight*i.y,c=r*i.x,f=o*i.y;return{width:s,height:l,x:c,y:f}}function Ze(e,t,n){let o;if(t==="viewport")o=Dn(e,n);else if(t==="document")o=Sn(U(e));else if(j(t))o=_n(t,n);else{const r=dt(e);o={...t,x:t.x-r.x,y:t.y-r.y}}return ye(o)}function ht(e,t){const n=ee(e);return n===t||!j(n)||Ee(n)?!1:I(n).position==="fixed"||ht(n,t)}function Ln(e,t){const n=t.get(e);if(n)return n;let o=ce(e,[],!1).filter(l=>j(l)&&K(l)!=="body"),r=null;const i=I(e).position==="fixed";let s=i?ee(e):e;for(;j(s)&&!Ee(s);){const l=I(s),c=ke(s);!c&&l.position==="fixed"&&(r=null),(i?!c&&!r:!c&&l.position==="static"&&!!r&&["absolute","fixed"].includes(r.position)||fe(s)&&!c&&ht(e,s))?o=o.filter(u=>u!==s):r=l,s=ee(s)}return t.set(e,o),o}function Nn(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e;const s=[...n==="clippingAncestors"?Ln(t,this._c):[].concat(n),o],l=s[0],c=s.reduce((f,u)=>{const d=Ze(t,u,r);return f.top=M(d.top,f.top),f.right=X(d.right,f.right),f.bottom=X(d.bottom,f.bottom),f.left=M(d.left,f.left),f},Ze(t,l,r));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function Mn(e){const{width:t,height:n}=ut(e);return{width:t,height:n}}function kn(e,t,n){const o=H(t),r=U(t),i=n==="fixed",s=q(e,!0,i,t);let l={scrollLeft:0,scrollTop:0};const c=G(0);if(o||!o&&!i)if((K(t)!=="body"||fe(r))&&(l=Ce(t)),o){const d=q(t,!0,i,t);c.x=d.x+t.clientLeft,c.y=d.y+t.clientTop}else r&&(c.x=mt(r));const f=s.left+l.scrollLeft-c.x,u=s.top+l.scrollTop-c.y;return{x:f,y:u,width:s.width,height:s.height}}function Je(e,t){return!H(e)||I(e).position==="fixed"?null:t?t(e):e.offsetParent}function gt(e,t){const n=k(e);if(!H(e)||pt(e))return n;let o=Je(e,t);for(;o&&En(o)&&I(o).position==="static";)o=Je(o,t);return o&&(K(o)==="html"||K(o)==="body"&&I(o).position==="static"&&!ke(o))?n:o||Cn(e)||n}const In=async function(e){const t=this.getOffsetParent||gt,n=this.getDimensions;return{reference:kn(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,...await n(e.floating)}}};function Fn(e){return I(e).direction==="rtl"}const Hn={convertOffsetParentRelativeRectToViewportRelativeRect:Tn,getDocumentElement:U,getClippingRect:Nn,getOffsetParent:gt,getElementRects:In,getClientRects:Rn,getDimensions:Mn,getScale:J,isElement:j,isRTL:Fn};function Wn(e,t){let n=null,o;const r=U(e);function i(){var l;clearTimeout(o),(l=n)==null||l.disconnect(),n=null}function s(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),i();const{left:f,top:u,width:d,height:m}=e.getBoundingClientRect();if(l||t(),!d||!m)return;const p=he(u),h=he(r.clientWidth-(f+d)),v=he(r.clientHeight-(u+m)),g=he(f),x={rootMargin:-p+"px "+-h+"px "+-v+"px "+-g+"px",threshold:M(0,X(1,c))||1};let $=!0;function y(b){const E=b[0].intersectionRatio;if(E!==c){if(!$)return s();E?s(!1,E):o=setTimeout(()=>{s(!1,1e-7)},100)}$=!1}try{n=new IntersectionObserver(y,{...x,root:r.ownerDocument})}catch{n=new IntersectionObserver(y,x)}n.observe(e)}return s(!0),i}function Bn(e,t,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=o,f=Fe(e),u=r||i?[...f?ce(f):[],...ce(t)]:[];u.forEach(w=>{r&&w.addEventListener("scroll",n,{passive:!0}),i&&w.addEventListener("resize",n)});const d=f&&l?Wn(f,n):null;let m=-1,p=null;s&&(p=new ResizeObserver(w=>{let[x]=w;x&&x.target===f&&p&&(p.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var $;($=p)==null||$.observe(t)})),n()}),f&&!c&&p.observe(f),p.observe(t));let h,v=c?q(e):null;c&&g();function g(){const w=q(e);v&&(w.x!==v.x||w.y!==v.y||w.width!==v.width||w.height!==v.height)&&n(),v=w,h=requestAnimationFrame(g)}return n(),()=>{var w;u.forEach(x=>{r&&x.removeEventListener("scroll",n),i&&x.removeEventListener("resize",n)}),d==null||d(),(w=p)==null||w.disconnect(),p=null,c&&cancelAnimationFrame(h)}}const zn=$n,Vn=gn,jn=bn,Un=vn,Qe=hn,Yn=yn,Xn=(e,t,n)=>{const o=new Map,r={platform:Hn,...n},i={...r.platform,_c:o};return mn(e,t,{...r,platform:i})},Gn=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:o,padding:r}=typeof e=="function"?e(n):e;return o&&t(o)?o.current!=null?Qe({element:o.current,padding:r}).fn(n):{}:o?Qe({element:o,padding:r}).fn(n):{}}}};var we=typeof document<"u"?a.useLayoutEffect:a.useEffect;function be(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,o,r;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(o=n;o--!==0;)if(!be(e[o],t[o]))return!1;return!0}if(r=Object.keys(e),n=r.length,n!==Object.keys(t).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(t,r[o]))return!1;for(o=n;o--!==0;){const i=r[o];if(!(i==="_owner"&&e.$$typeof)&&!be(e[i],t[i]))return!1}return!0}return e!==e&&t!==t}function vt(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function et(e,t){const n=vt(e);return Math.round(t*n)/n}function tt(e){const t=a.useRef(e);return we(()=>{t.current=e}),t}function Kn(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:o=[],platform:r,elements:{reference:i,floating:s}={},transform:l=!0,whileElementsMounted:c,open:f}=e,[u,d]=a.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,p]=a.useState(o);be(m,o)||p(o);const[h,v]=a.useState(null),[g,w]=a.useState(null),x=a.useCallback(O=>{O!==E.current&&(E.current=O,v(O))},[]),$=a.useCallback(O=>{O!==P.current&&(P.current=O,w(O))},[]),y=i||h,b=s||g,E=a.useRef(null),P=a.useRef(null),C=a.useRef(u),S=c!=null,N=tt(c),_=tt(r),T=a.useCallback(()=>{if(!E.current||!P.current)return;const O={placement:t,strategy:n,middleware:m};_.current&&(O.platform=_.current),Xn(E.current,P.current,O).then(Y=>{const W={...Y,isPositioned:!0};F.current&&!be(C.current,W)&&(C.current=W,_e.flushSync(()=>{d(W)}))})},[m,t,n,_]);we(()=>{f===!1&&C.current.isPositioned&&(C.current.isPositioned=!1,d(O=>({...O,isPositioned:!1})))},[f]);const F=a.useRef(!1);we(()=>(F.current=!0,()=>{F.current=!1}),[]),we(()=>{if(y&&(E.current=y),b&&(P.current=b),y&&b){if(N.current)return N.current(y,b,T);T()}},[y,b,T,N,S]);const A=a.useMemo(()=>({reference:E,floating:P,setReference:x,setFloating:$}),[x,$]),R=a.useMemo(()=>({reference:y,floating:b}),[y,b]),D=a.useMemo(()=>{const O={position:n,left:0,top:0};if(!R.floating)return O;const Y=et(R.floating,u.x),W=et(R.floating,u.y);return l?{...O,transform:"translate("+Y+"px, "+W+"px)",...vt(R.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:Y,top:W}},[n,l,R.floating,u.x,u.y]);return a.useMemo(()=>({...u,update:T,refs:A,elements:R,floatingStyles:D}),[u,T,A,R,D])}function qn(e){const[t,n]=a.useState(void 0);return Q(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const i=r[0];let s,l;if("borderBoxSize"in i){const c=i.borderBoxSize,f=Array.isArray(c)?c[0]:c;s=f.inlineSize,l=f.blockSize}else s=e.offsetWidth,l=e.offsetHeight;n({width:s,height:l})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else n(void 0)},[e]),t}const wt="Popper",[xt,$t]=rt(wt),[Zn,yt]=xt(wt),Jn=e=>{const{__scopePopper:t,children:n}=e,[o,r]=a.useState(null);return a.createElement(Zn,{scope:t,anchor:o,onAnchorChange:r},n)},Qn="PopperAnchor",eo=a.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:o,...r}=e,i=yt(Qn,n),s=a.useRef(null),l=te(t,s);return a.useEffect(()=>{i.onAnchorChange((o==null?void 0:o.current)||s.current)}),o?null:a.createElement(le.div,L({},r,{ref:l}))}),bt="PopperContent",[to,Bo]=xt(bt),no=a.forwardRef((e,t)=>{var n,o,r,i,s,l,c,f;const{__scopePopper:u,side:d="bottom",sideOffset:m=0,align:p="center",alignOffset:h=0,arrowPadding:v=0,avoidCollisions:g=!0,collisionBoundary:w=[],collisionPadding:x=0,sticky:$="partial",hideWhenDetached:y=!1,updatePositionStrategy:b="optimized",onPlaced:E,...P}=e,C=yt(bt,u),[S,N]=a.useState(null),_=te(t,ie=>N(ie)),[T,F]=a.useState(null),A=qn(T),R=(n=A==null?void 0:A.width)!==null&&n!==void 0?n:0,D=(o=A==null?void 0:A.height)!==null&&o!==void 0?o:0,O=d+(p!=="center"?"-"+p:""),Y=typeof x=="number"?x:{top:0,right:0,bottom:0,left:0,...x},W=Array.isArray(w)?w:[w],Tt=W.length>0,ue={padding:Y,boundary:W.filter(oo),altBoundary:Tt},{refs:Rt,floatingStyles:ze,placement:St,isPositioned:de,middlewareData:Z}=Kn({strategy:"fixed",placement:O,whileElementsMounted:(...ie)=>Bn(...ie,{animationFrame:b==="always"}),elements:{reference:C.anchor},middleware:[xn({mainAxis:m+D,alignmentAxis:h}),g&&zn({mainAxis:!0,crossAxis:!1,limiter:$==="partial"?Yn():void 0,...ue}),g&&Vn({...ue}),jn({...ue,apply:({elements:ie,rects:je,availableWidth:It,availableHeight:Ft})=>{const{width:Ht,height:Wt}=je.reference,me=ie.floating.style;me.setProperty("--radix-popper-available-width",`${It}px`),me.setProperty("--radix-popper-available-height",`${Ft}px`),me.setProperty("--radix-popper-anchor-width",`${Ht}px`),me.setProperty("--radix-popper-anchor-height",`${Wt}px`)}}),T&&Gn({element:T,padding:v}),ro({arrowWidth:R,arrowHeight:D}),y&&Un({strategy:"referenceHidden",...ue})]}),[Ve,Dt]=Et(St),pe=ne(E);Q(()=>{de&&(pe==null||pe())},[de,pe]);const _t=(r=Z.arrow)===null||r===void 0?void 0:r.x,Lt=(i=Z.arrow)===null||i===void 0?void 0:i.y,Nt=((s=Z.arrow)===null||s===void 0?void 0:s.centerOffset)!==0,[Mt,kt]=a.useState();return Q(()=>{S&&kt(window.getComputedStyle(S).zIndex)},[S]),a.createElement("div",{ref:Rt.setFloating,"data-radix-popper-content-wrapper":"",style:{...ze,transform:de?ze.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Mt,"--radix-popper-transform-origin":[(l=Z.transformOrigin)===null||l===void 0?void 0:l.x,(c=Z.transformOrigin)===null||c===void 0?void 0:c.y].join(" ")},dir:e.dir},a.createElement(to,{scope:u,placedSide:Ve,onArrowChange:F,arrowX:_t,arrowY:Lt,shouldHideArrow:Nt},a.createElement(le.div,L({"data-side":Ve,"data-align":Dt},P,{ref:_,style:{...P.style,animation:de?void 0:"none",opacity:(f=Z.hide)!==null&&f!==void 0&&f.referenceHidden?0:void 0}}))))});function oo(e){return e!==null}const ro=e=>({name:"transformOrigin",options:e,fn(t){var n,o,r,i,s;const{placement:l,rects:c,middlewareData:f}=t,d=((n=f.arrow)===null||n===void 0?void 0:n.centerOffset)!==0,m=d?0:e.arrowWidth,p=d?0:e.arrowHeight,[h,v]=Et(l),g={start:"0%",center:"50%",end:"100%"}[v],w=((o=(r=f.arrow)===null||r===void 0?void 0:r.x)!==null&&o!==void 0?o:0)+m/2,x=((i=(s=f.arrow)===null||s===void 0?void 0:s.y)!==null&&i!==void 0?i:0)+p/2;let $="",y="";return h==="bottom"?($=d?g:`${w}px`,y=`${-p}px`):h==="top"?($=d?g:`${w}px`,y=`${c.floating.height+p}px`):h==="right"?($=`${-p}px`,y=d?g:`${x}px`):h==="left"&&($=`${c.floating.width+p}px`,y=d?g:`${x}px`),{data:{x:$,y}}}});function Et(e){const[t,n="center"]=e.split("-");return[t,n]}const io=Jn,so=eo,co=no;function ao(e,t){return a.useReducer((n,o)=>{const r=t[n][o];return r??n},e)}const Ct=e=>{const{present:t,children:n}=e,o=lo(t),r=typeof n=="function"?n({present:o.isPresent}):a.Children.only(n),i=te(o.ref,r.ref);return typeof n=="function"||o.isPresent?a.cloneElement(r,{ref:i}):null};Ct.displayName="Presence";function lo(e){const[t,n]=a.useState(),o=a.useRef({}),r=a.useRef(e),i=a.useRef("none"),s=e?"mounted":"unmounted",[l,c]=ao(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return a.useEffect(()=>{const f=ge(o.current);i.current=l==="mounted"?f:"none"},[l]),Q(()=>{const f=o.current,u=r.current;if(u!==e){const m=i.current,p=ge(f);e?c("MOUNT"):p==="none"||(f==null?void 0:f.display)==="none"?c("UNMOUNT"):c(u&&m!==p?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,c]),Q(()=>{if(t){const f=d=>{const p=ge(o.current).includes(d.animationName);d.target===t&&p&&_e.flushSync(()=>c("ANIMATION_END"))},u=d=>{d.target===t&&(i.current=ge(o.current))};return t.addEventListener("animationstart",u),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{t.removeEventListener("animationstart",u),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:a.useCallback(f=>{f&&(o.current=getComputedStyle(f)),n(f)},[])}}function ge(e){return(e==null?void 0:e.animationName)||"none"}function fo({prop:e,defaultProp:t,onChange:n=()=>{}}){const[o,r]=uo({defaultProp:t,onChange:n}),i=e!==void 0,s=i?e:o,l=ne(n),c=a.useCallback(f=>{if(i){const d=typeof f=="function"?f(e):f;d!==e&&l(d)}else r(f)},[i,e,r,l]);return[s,c]}function uo({defaultProp:e,onChange:t}){const n=a.useState(e),[o]=n,r=a.useRef(o),i=ne(t);return a.useEffect(()=>{r.current!==o&&(i(o),r.current=o)},[o,r,i]),n}const po=a.forwardRef((e,t)=>a.createElement(le.span,L({},e,{ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}))),mo=po,[Pe,zo]=rt("Tooltip",[$t]),He=$t(),ho="TooltipProvider",go=700,De="tooltip.open",[vo,We]=Pe(ho),wo=e=>{const{__scopeTooltip:t,delayDuration:n=go,skipDelayDuration:o=300,disableHoverableContent:r=!1,children:i}=e,[s,l]=a.useState(!0),c=a.useRef(!1),f=a.useRef(0);return a.useEffect(()=>{const u=f.current;return()=>window.clearTimeout(u)},[]),a.createElement(vo,{scope:t,isOpenDelayed:s,delayDuration:n,onOpen:a.useCallback(()=>{window.clearTimeout(f.current),l(!1)},[]),onClose:a.useCallback(()=>{window.clearTimeout(f.current),f.current=window.setTimeout(()=>l(!0),o)},[o]),isPointerInTransitRef:c,onPointerInTransitChange:a.useCallback(u=>{c.current=u},[]),disableHoverableContent:r},i)},Be="Tooltip",[xo,Oe]=Pe(Be),$o=e=>{const{__scopeTooltip:t,children:n,open:o,defaultOpen:r=!1,onOpenChange:i,disableHoverableContent:s,delayDuration:l}=e,c=We(Be,e.__scopeTooltip),f=He(t),[u,d]=a.useState(null),m=rn(),p=a.useRef(0),h=s??c.disableHoverableContent,v=l??c.delayDuration,g=a.useRef(!1),[w=!1,x]=fo({prop:o,defaultProp:r,onChange:P=>{P?(c.onOpen(),document.dispatchEvent(new CustomEvent(De))):c.onClose(),i==null||i(P)}}),$=a.useMemo(()=>w?g.current?"delayed-open":"instant-open":"closed",[w]),y=a.useCallback(()=>{window.clearTimeout(p.current),g.current=!1,x(!0)},[x]),b=a.useCallback(()=>{window.clearTimeout(p.current),x(!1)},[x]),E=a.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{g.current=!0,x(!0)},v)},[v,x]);return a.useEffect(()=>()=>window.clearTimeout(p.current),[]),a.createElement(io,f,a.createElement(xo,{scope:t,contentId:m,open:w,stateAttribute:$,trigger:u,onTriggerChange:d,onTriggerEnter:a.useCallback(()=>{c.isOpenDelayed?E():y()},[c.isOpenDelayed,E,y]),onTriggerLeave:a.useCallback(()=>{h?b():window.clearTimeout(p.current)},[b,h]),onOpen:y,onClose:b,disableHoverableContent:h},n))},nt="TooltipTrigger",yo=a.forwardRef((e,t)=>{const{__scopeTooltip:n,...o}=e,r=Oe(nt,n),i=We(nt,n),s=He(n),l=a.useRef(null),c=te(t,l,r.onTriggerChange),f=a.useRef(!1),u=a.useRef(!1),d=a.useCallback(()=>f.current=!1,[]);return a.useEffect(()=>()=>document.removeEventListener("pointerup",d),[d]),a.createElement(so,L({asChild:!0},s),a.createElement(le.button,L({"aria-describedby":r.open?r.contentId:void 0,"data-state":r.stateAttribute},o,{ref:c,onPointerMove:B(e.onPointerMove,m=>{m.pointerType!=="touch"&&!u.current&&!i.isPointerInTransitRef.current&&(r.onTriggerEnter(),u.current=!0)}),onPointerLeave:B(e.onPointerLeave,()=>{r.onTriggerLeave(),u.current=!1}),onPointerDown:B(e.onPointerDown,()=>{f.current=!0,document.addEventListener("pointerup",d,{once:!0})}),onFocus:B(e.onFocus,()=>{f.current||r.onOpen()}),onBlur:B(e.onBlur,r.onClose),onClick:B(e.onClick,r.onClose)})))}),bo="TooltipPortal",[Vo,Eo]=Pe(bo,{forceMount:void 0}),ae="TooltipContent",Co=a.forwardRef((e,t)=>{const n=Eo(ae,e.__scopeTooltip),{forceMount:o=n.forceMount,side:r="top",...i}=e,s=Oe(ae,e.__scopeTooltip);return a.createElement(Ct,{present:o||s.open},s.disableHoverableContent?a.createElement(Pt,L({side:r},i,{ref:t})):a.createElement(Po,L({side:r},i,{ref:t})))}),Po=a.forwardRef((e,t)=>{const n=Oe(ae,e.__scopeTooltip),o=We(ae,e.__scopeTooltip),r=a.useRef(null),i=te(t,r),[s,l]=a.useState(null),{trigger:c,onClose:f}=n,u=r.current,{onPointerInTransitChange:d}=o,m=a.useCallback(()=>{l(null),d(!1)},[d]),p=a.useCallback((h,v)=>{const g=h.currentTarget,w={x:h.clientX,y:h.clientY},x=Ao(w,g.getBoundingClientRect()),$=To(w,x),y=Ro(v.getBoundingClientRect()),b=Do([...$,...y]);l(b),d(!0)},[d]);return a.useEffect(()=>()=>m(),[m]),a.useEffect(()=>{if(c&&u){const h=g=>p(g,u),v=g=>p(g,c);return c.addEventListener("pointerleave",h),u.addEventListener("pointerleave",v),()=>{c.removeEventListener("pointerleave",h),u.removeEventListener("pointerleave",v)}}},[c,u,p,m]),a.useEffect(()=>{if(s){const h=v=>{const g=v.target,w={x:v.clientX,y:v.clientY},x=(c==null?void 0:c.contains(g))||(u==null?void 0:u.contains(g)),$=!So(w,s);x?m():$&&(m(),f())};return document.addEventListener("pointermove",h),()=>document.removeEventListener("pointermove",h)}},[c,u,s,f,m]),a.createElement(Pt,L({},e,{ref:i}))}),[Oo,jo]=Pe(Be,{isInside:!1}),Pt=a.forwardRef((e,t)=>{const{__scopeTooltip:n,children:o,"aria-label":r,onEscapeKeyDown:i,onPointerDownOutside:s,...l}=e,c=Oe(ae,n),f=He(n),{onClose:u}=c;return a.useEffect(()=>(document.addEventListener(De,u),()=>document.removeEventListener(De,u)),[u]),a.useEffect(()=>{if(c.trigger){const d=m=>{const p=m.target;p!=null&&p.contains(c.trigger)&&u()};return window.addEventListener("scroll",d,{capture:!0}),()=>window.removeEventListener("scroll",d,{capture:!0})}},[c.trigger,u]),a.createElement(Qt,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:d=>d.preventDefault(),onDismiss:u},a.createElement(co,L({"data-state":c.stateAttribute},f,l,{ref:t,style:{...l.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"}}),a.createElement(st,null,o),a.createElement(Oo,{scope:n,isInside:!0},a.createElement(mo,{id:c.contentId,role:"tooltip"},r||o))))});function Ao(e,t){const n=Math.abs(t.top-e.y),o=Math.abs(t.bottom-e.y),r=Math.abs(t.right-e.x),i=Math.abs(t.left-e.x);switch(Math.min(n,o,r,i)){case i:return"left";case r:return"right";case n:return"top";case o:return"bottom";default:throw new Error("unreachable")}}function To(e,t,n=5){const o=[];switch(t){case"top":o.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":o.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":o.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":o.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return o}function Ro(e){const{top:t,right:n,bottom:o,left:r}=e;return[{x:r,y:t},{x:n,y:t},{x:n,y:o},{x:r,y:o}]}function So(e,t){const{x:n,y:o}=e;let r=!1;for(let i=0,s=t.length-1;i<t.length;s=i++){const l=t[i].x,c=t[i].y,f=t[s].x,u=t[s].y;c>o!=u>o&&n<(f-l)*(o-c)/(u-c)+l&&(r=!r)}return r}function Do(e){const t=e.slice();return t.sort((n,o)=>n.x<o.x?-1:n.x>o.x?1:n.y<o.y?-1:n.y>o.y?1:0),_o(t)}function _o(e){if(e.length<=1)return e.slice();const t=[];for(let o=0;o<e.length;o++){const r=e[o];for(;t.length>=2;){const i=t[t.length-1],s=t[t.length-2];if((i.x-s.x)*(r.y-s.y)>=(i.y-s.y)*(r.x-s.x))t.pop();else break}t.push(r)}t.pop();const n=[];for(let o=e.length-1;o>=0;o--){const r=e[o];for(;n.length>=2;){const i=n[n.length-1],s=n[n.length-2];if((i.x-s.x)*(r.y-s.y)>=(i.y-s.y)*(r.x-s.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}const Lo=wo,No=$o,Mo=yo,Ot=Co,Uo=Lo,ko=No,Io=Mo,At=a.forwardRef(({className:e,sideOffset:t=4,...n},o)=>ve.jsx(Ot,{ref:o,sideOffset:t,className:zt("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n}));At.displayName=Ot.displayName;function Yo({content:e,children:t}){return e?ve.jsxs(ko,{children:[ve.jsx(Io,{asChild:!0,children:t}),ve.jsx(At,{children:e})]}):t}export{rt as $,Yo as S,Uo as T,L as _,ko as a,Io as b,At as c,te as d,fo as e,ne as f,le as g,B as h,rn as i,Ct as j,$t as k,io as l,so as m,it as n,Qt as o,co as p,Q as q,po as r};
2
+ //# sourceMappingURL=tooltip-CVFWPOu0.js.map