@epic-web/workshop-app 4.25.3 → 4.26.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 (88) hide show
  1. package/build/client/assets/{_-BtebIQXw.js → _-C82olNpL.js} +2 -2
  2. package/build/client/assets/{_-BtebIQXw.js.map → _-C82olNpL.js.map} +1 -1
  3. package/build/client/assets/{_exerciseNumber-DPHRlskl.js → _exerciseNumber-B_1LTOMl.js} +2 -2
  4. package/build/client/assets/{_exerciseNumber-DPHRlskl.js.map → _exerciseNumber-B_1LTOMl.js.map} +1 -1
  5. package/build/client/assets/{_exerciseNumber_._stepNumber-D1CLZqv3.js → _exerciseNumber_._stepNumber-qCtEMlS2.js} +2 -2
  6. package/build/client/assets/{_exerciseNumber_._stepNumber-D1CLZqv3.js.map → _exerciseNumber_._stepNumber-qCtEMlS2.js.map} +1 -1
  7. package/build/client/assets/{_exerciseNumber_.finished-BtU0LxSx.js → _exerciseNumber_.finished-DHl9ou1s.js} +2 -2
  8. package/build/client/assets/{_exerciseNumber_.finished-BtU0LxSx.js.map → _exerciseNumber_.finished-DHl9ou1s.js.map} +1 -1
  9. package/build/client/assets/{_layout-B5bNFTFS.js → _layout-CksyTzND.js} +2 -2
  10. package/build/client/assets/{_layout-B5bNFTFS.js.map → _layout-CksyTzND.js.map} +1 -1
  11. package/build/client/assets/{_layout-mCB0NTJw.js → _layout-DATuycts.js} +2 -2
  12. package/build/client/assets/{_layout-mCB0NTJw.js.map → _layout-DATuycts.js.map} +1 -1
  13. package/build/client/assets/{_layout-D9AYVDws.js → _layout-TpI4uc69.js} +2 -2
  14. package/build/client/assets/{_layout-D9AYVDws.js.map → _layout-TpI4uc69.js.map} +1 -1
  15. package/build/client/assets/{accordion-BTylpyuo.js → accordion-CKwXYK9L.js} +2 -2
  16. package/build/client/assets/{accordion-BTylpyuo.js.map → accordion-CKwXYK9L.js.map} +1 -1
  17. package/build/client/assets/{account-Boc55rcF.js → account-DWhUP9x5.js} +2 -2
  18. package/build/client/assets/{account-Boc55rcF.js.map → account-DWhUP9x5.js.map} +1 -1
  19. package/build/client/assets/app-C-oFaj2l.js +2 -0
  20. package/build/client/assets/{app-D21SF96g.js.map → app-C-oFaj2l.js.map} +1 -1
  21. package/build/client/assets/{button-D3GGLffs.js → button-CQ6cnotS.js} +2 -2
  22. package/build/client/assets/{button-D3GGLffs.js.map → button-CQ6cnotS.js.map} +1 -1
  23. package/build/client/assets/{diff-Dlhnb9s0.js → diff-B5EME8RQ.js} +2 -2
  24. package/build/client/assets/{diff-Dlhnb9s0.js.map → diff-B5EME8RQ.js.map} +1 -1
  25. package/build/client/assets/{diff-_Yp5qaGd.js → diff-CKxYA_sC.js} +2 -2
  26. package/build/client/assets/{diff-_Yp5qaGd.js.map → diff-CKxYA_sC.js.map} +1 -1
  27. package/build/client/assets/{discord-ClGJ4reK.js → discord-OBIm1mMI.js} +2 -2
  28. package/build/client/assets/{discord-ClGJ4reK.js.map → discord-OBIm1mMI.js.map} +1 -1
  29. package/build/client/assets/discord-pvbkb0tl.js +2 -0
  30. package/build/client/assets/discord-pvbkb0tl.js.map +1 -0
  31. package/build/client/assets/{epic-video-BDMU5eQx.js → epic-video-CzGRLoYH.js} +2 -2
  32. package/build/client/assets/{epic-video-BDMU5eQx.js.map → epic-video-CzGRLoYH.js.map} +1 -1
  33. package/build/client/assets/{error-boundary-w-YmME9H.js → error-boundary-CqgVAFiu.js} +2 -2
  34. package/build/client/assets/{error-boundary-w-YmME9H.js.map → error-boundary-CqgVAFiu.js.map} +1 -1
  35. package/build/client/assets/{finished-DpVgSUHh.js → finished-Bb9g_iPq.js} +2 -2
  36. package/build/client/assets/{finished-DpVgSUHh.js.map → finished-Bb9g_iPq.js.map} +1 -1
  37. package/build/client/assets/{index-CrCyg109.js → index-9dWszLxO.js} +2 -2
  38. package/build/client/assets/{index-CrCyg109.js.map → index-9dWszLxO.js.map} +1 -1
  39. package/build/client/assets/{index-4mfbmNml.js → index-C-VazAW9.js} +2 -2
  40. package/build/client/assets/{index-4mfbmNml.js.map → index-C-VazAW9.js.map} +1 -1
  41. package/build/client/assets/{index-lG6dAghh.js → index-DlJAkutV.js} +2 -2
  42. package/build/client/assets/{index-lG6dAghh.js.map → index-DlJAkutV.js.map} +1 -1
  43. package/build/client/assets/{index-k-n20C3u.js → index-DoUR7StN.js} +2 -2
  44. package/build/client/assets/index-DoUR7StN.js.map +1 -0
  45. package/build/client/assets/{index-Cr2THg3v.js → index-j_VpxCZh.js} +2 -2
  46. package/build/client/assets/{index-Cr2THg3v.js.map → index-j_VpxCZh.js.map} +1 -1
  47. package/build/client/assets/{loading-CYX0lUnA.js → loading-CF7oQHQf.js} +2 -2
  48. package/build/client/assets/{loading-CYX0lUnA.js.map → loading-CF7oQHQf.js.map} +1 -1
  49. package/build/client/assets/{login-BfJnysK5.js → login-L4mUv67t.js} +2 -2
  50. package/build/client/assets/login-L4mUv67t.js.map +1 -0
  51. package/build/client/assets/{manifest-5f7c0456.js → manifest-577fdaea.js} +1 -1
  52. package/build/client/assets/{mdx-DGrucPXJ.js → mdx-CGcvotZI.js} +2 -2
  53. package/build/client/assets/{mdx-DGrucPXJ.js.map → mdx-CGcvotZI.js.map} +1 -1
  54. package/build/client/assets/{misc-BvHlNnqL.js → misc-Txs7O6JX.js} +2 -2
  55. package/build/client/assets/{misc-BvHlNnqL.js.map → misc-Txs7O6JX.js.map} +1 -1
  56. package/build/client/assets/{nav-chevrons-DNlM2M58.js → nav-chevrons-Cbc1bd_j.js} +2 -2
  57. package/build/client/assets/{nav-chevrons-DNlM2M58.js.map → nav-chevrons-Cbc1bd_j.js.map} +1 -1
  58. package/build/client/assets/{onboarding-C9YKrBRk.js → onboarding-Ci4QCevA.js} +2 -2
  59. package/build/client/assets/{onboarding-C9YKrBRk.js.map → onboarding-Ci4QCevA.js.map} +1 -1
  60. package/build/client/assets/{preview-cQAZ1sWw.js → preview-WJ-QYhx8.js} +2 -2
  61. package/build/client/assets/{preview-cQAZ1sWw.js.map → preview-WJ-QYhx8.js.map} +1 -1
  62. package/build/client/assets/{product-BUD74Itn.js → product-f8Gd2MQ6.js} +2 -2
  63. package/build/client/assets/{product-BUD74Itn.js.map → product-f8Gd2MQ6.js.map} +1 -1
  64. package/build/client/assets/{progress-Dn5gs-vs.js → progress-C7kc6YXZ.js} +2 -2
  65. package/build/client/assets/{progress-Dn5gs-vs.js.map → progress-C7kc6YXZ.js.map} +1 -1
  66. package/build/client/assets/{progress-bar-C7Wl3UWv.js → progress-bar-bUuKn1Q8.js} +2 -2
  67. package/build/client/assets/{progress-bar-C7Wl3UWv.js.map → progress-bar-bUuKn1Q8.js.map} +1 -1
  68. package/build/client/assets/{root-BO8-KppB.js → root-CbC_P7jJ.js} +2 -2
  69. package/build/client/assets/{root-BO8-KppB.js.map → root-CbC_P7jJ.js.map} +1 -1
  70. package/build/client/assets/{set-playground-CCm119Nm.js → set-playground-Cr0qL9N9.js} +2 -2
  71. package/build/client/assets/{set-playground-CCm119Nm.js.map → set-playground-Cr0qL9N9.js.map} +1 -1
  72. package/build/client/assets/test-CxCjtGOl.js +2 -0
  73. package/build/client/assets/{test-CPv5Bgs_.js.map → test-CxCjtGOl.js.map} +1 -1
  74. package/build/client/assets/{tests-DCK6NqSg.js → tests-DWqwnWIn.js} +2 -2
  75. package/build/client/assets/tests-DWqwnWIn.js.map +1 -0
  76. package/build/client/assets/{tooltip-fa2eC7LQ.js → tooltip-DTFU8ajx.js} +2 -2
  77. package/build/client/assets/{tooltip-fa2eC7LQ.js.map → tooltip-DTFU8ajx.js.map} +1 -1
  78. package/build/client/assets/user-D6tTg1yS.js.map +1 -1
  79. package/build/server/index.js +92 -5
  80. package/build/server/index.js.map +1 -1
  81. package/package.json +3 -3
  82. package/build/client/assets/app-D21SF96g.js +0 -2
  83. package/build/client/assets/discord-BZFQqiA1.js +0 -2
  84. package/build/client/assets/discord-BZFQqiA1.js.map +0 -1
  85. package/build/client/assets/index-k-n20C3u.js.map +0 -1
  86. package/build/client/assets/login-BfJnysK5.js.map +0 -1
  87. package/build/client/assets/test-CPv5Bgs_.js +0 -2
  88. package/build/client/assets/tests-DCK6NqSg.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{a as i,b as a,j as o,i as c}from"./index-1cKOJFpX.js";import{g as m}from"./misc-BvHlNnqL.js";function f({defaultStatusHandler:s=({error:r})=>o.jsxs("p",{children:[r.status," ",r.data]}),statusHandlers:e,unexpectedErrorHandler:t=r=>o.jsx("p",{children:m(r)})}){const r=i(),n=a();return typeof document<"u"&&console.error(r),o.jsx("div",{className:"container flex items-center justify-center p-20 text-h2",children:c(r)?((e==null?void 0:e[r.status])??s)({error:r,params:n}):t(r)})}export{f as G};
2
- //# sourceMappingURL=error-boundary-w-YmME9H.js.map
1
+ import{a as i,b as a,j as o,i as c}from"./index-1cKOJFpX.js";import{g as m}from"./misc-Txs7O6JX.js";function f({defaultStatusHandler:s=({error:r})=>o.jsxs("p",{children:[r.status," ",r.data]}),statusHandlers:e,unexpectedErrorHandler:t=r=>o.jsx("p",{children:m(r)})}){const r=i(),n=a();return typeof document<"u"&&console.error(r),o.jsx("div",{className:"container flex items-center justify-center p-20 text-h2",children:c(r)?((e==null?void 0:e[r.status])??s)({error:r,params:n}):t(r)})}export{f as G};
2
+ //# sourceMappingURL=error-boundary-CqgVAFiu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-boundary-w-YmME9H.js","sources":["../../../app/components/error-boundary.tsx"],"sourcesContent":["import {\n\tisRouteErrorResponse,\n\tuseParams,\n\tuseRouteError,\n\ttype ErrorResponse,\n} from '@remix-run/react'\nimport { getErrorMessage } from '#app/utils/misc.tsx'\n\ntype StatusHandler = (info: {\n\terror: ErrorResponse\n\tparams: Record<string, string | undefined>\n}) => React.ReactNode | null\n\nexport function GeneralErrorBoundary({\n\tdefaultStatusHandler = ({ error }) => (\n\t\t<p>\n\t\t\t{error.status} {error.data}\n\t\t</p>\n\t),\n\tstatusHandlers,\n\tunexpectedErrorHandler = (error) => <p>{getErrorMessage(error)}</p>,\n}: {\n\tdefaultStatusHandler?: StatusHandler\n\tstatusHandlers?: Record<number, StatusHandler>\n\tunexpectedErrorHandler?: (error: unknown) => React.ReactNode | null\n}) {\n\tconst error = useRouteError()\n\tconst params = useParams()\n\n\tif (typeof document !== 'undefined') {\n\t\tconsole.error(error)\n\t}\n\n\treturn (\n\t\t<div className=\"container flex items-center justify-center p-20 text-h2\">\n\t\t\t{isRouteErrorResponse(error)\n\t\t\t\t? (statusHandlers?.[error.status] ?? defaultStatusHandler)({\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tparams,\n\t\t\t\t\t})\n\t\t\t\t: unexpectedErrorHandler(error)}\n\t\t</div>\n\t)\n}\n"],"names":["GeneralErrorBoundary","defaultStatusHandler","error","statusHandlers","unexpectedErrorHandler","getErrorMessage","useRouteError","params","useParams","jsx","isRouteErrorResponse"],"mappings":"oGAaO,SAASA,EAAqB,CACpC,qBAAAC,EAAuB,CAAC,CAAE,MAAAC,CAAM,WAC9B,IACC,CAAA,SAAA,CAAMA,EAAA,OAAO,IAAEA,EAAM,IAAA,EACvB,EAED,eAAAC,EACA,uBAAAC,EAA0BF,SAAW,IAAG,CAAA,SAAAG,EAAgBH,CAAK,EAAE,CAChE,EAIG,CACF,MAAMA,EAAQI,IACRC,EAASC,IAEX,OAAA,OAAO,SAAa,KACvB,QAAQ,MAAMN,CAAK,EAInBO,EAAA,IAAC,MAAI,CAAA,UAAU,0DACb,SAAAC,EAAqBR,CAAK,IACvBC,GAAA,YAAAA,EAAiBD,EAAM,UAAWD,GAAsB,CACzD,MAAAC,EACA,OAAAK,CACA,CAAA,EACAH,EAAuBF,CAAK,CAChC,CAAA,CAEF"}
1
+ {"version":3,"file":"error-boundary-CqgVAFiu.js","sources":["../../../app/components/error-boundary.tsx"],"sourcesContent":["import {\n\tisRouteErrorResponse,\n\tuseParams,\n\tuseRouteError,\n\ttype ErrorResponse,\n} from '@remix-run/react'\nimport { getErrorMessage } from '#app/utils/misc.tsx'\n\ntype StatusHandler = (info: {\n\terror: ErrorResponse\n\tparams: Record<string, string | undefined>\n}) => React.ReactNode | null\n\nexport function GeneralErrorBoundary({\n\tdefaultStatusHandler = ({ error }) => (\n\t\t<p>\n\t\t\t{error.status} {error.data}\n\t\t</p>\n\t),\n\tstatusHandlers,\n\tunexpectedErrorHandler = (error) => <p>{getErrorMessage(error)}</p>,\n}: {\n\tdefaultStatusHandler?: StatusHandler\n\tstatusHandlers?: Record<number, StatusHandler>\n\tunexpectedErrorHandler?: (error: unknown) => React.ReactNode | null\n}) {\n\tconst error = useRouteError()\n\tconst params = useParams()\n\n\tif (typeof document !== 'undefined') {\n\t\tconsole.error(error)\n\t}\n\n\treturn (\n\t\t<div className=\"container flex items-center justify-center p-20 text-h2\">\n\t\t\t{isRouteErrorResponse(error)\n\t\t\t\t? (statusHandlers?.[error.status] ?? defaultStatusHandler)({\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tparams,\n\t\t\t\t\t})\n\t\t\t\t: unexpectedErrorHandler(error)}\n\t\t</div>\n\t)\n}\n"],"names":["GeneralErrorBoundary","defaultStatusHandler","error","statusHandlers","unexpectedErrorHandler","getErrorMessage","useRouteError","params","useParams","jsx","isRouteErrorResponse"],"mappings":"oGAaO,SAASA,EAAqB,CACpC,qBAAAC,EAAuB,CAAC,CAAE,MAAAC,CAAM,WAC9B,IACC,CAAA,SAAA,CAAMA,EAAA,OAAO,IAAEA,EAAM,IAAA,EACvB,EAED,eAAAC,EACA,uBAAAC,EAA0BF,SAAW,IAAG,CAAA,SAAAG,EAAgBH,CAAK,EAAE,CAChE,EAIG,CACF,MAAMA,EAAQI,IACRC,EAASC,IAEX,OAAA,OAAO,SAAa,KACvB,QAAQ,MAAMN,CAAK,EAInBO,EAAA,IAAC,MAAI,CAAA,UAAU,0DACb,SAAAC,EAAqBR,CAAK,IACvBC,GAAA,YAAAA,EAAiBD,EAAM,UAAWD,GAAsB,CACzD,MAAAC,EACA,OAAAK,CACA,CAAA,EACAH,EAAuBF,CAAK,CAChC,CAAA,CAEF"}
@@ -1,2 +1,2 @@
1
- import{j as e,r as t}from"./index-1cKOJFpX.js";import{E as l}from"./index-Dx5GmdYq.js";import{E as n}from"./epic-video-BDMU5eQx.js";import{L as a}from"./loading-CYX0lUnA.js";import{N as d}from"./nav-chevrons-DNlM2M58.js";import{M as c,E as m}from"./mdx-DGrucPXJ.js";import{a as p}from"./misc-BvHlNnqL.js";import{g as f}from"./seo-pBpFCWsy.js";import{P as h}from"./progress-Dn5gs-vs.js";import{u as x,L as u}from"./components-CME-nGId.js";import"./index-lG6dAghh.js";import"./request-info-CEhUGODY.js";import"./tooltip-fa2eC7LQ.js";import"./pe-CUZaIcdt.js";import"./user-D6tTg1yS.js";import"./workshop-config-CL4F08kr.js";import"./progress-bar-C7Wl3UWv.js";const q={getSitemapEntries:()=>[{route:"/finished"}]},R=({matches:s})=>{var o;const r=(o=s.find(i=>i.id==="root"))==null?void 0:o.data;return r?f({title:`🎉 ${r==null?void 0:r.workshopTitle}`,description:`Elaboration for ${r==null?void 0:r.workshopTitle}`,ogTitle:`Finished ${r==null?void 0:r.workshopTitle}`,ogDescription:"You finished! Time to submit feedback.",instructor:r.instructor,requestInfo:r.requestInfo}):[]},j={h1:()=>null};function U(){const s=x();return e.jsx("div",{className:"flex h-full flex-grow flex-col",children:e.jsxs("main",{className:"grid h-full flex-grow grid-cols-1 grid-rows-2 lg:grid-cols-2 lg:grid-rows-1",children:[e.jsxs("div",{className:"relative col-span-1 row-span-1 flex h-full flex-col lg:border-r",children:[e.jsx("h1",{className:"h-14 border-b pl-10 pr-5 text-sm font-medium uppercase leading-none",children:e.jsx("div",{className:"flex h-14 flex-wrap items-center justify-between gap-x-2 py-2",children:e.jsxs("div",{className:"flex items-center justify-start gap-x-2",children:[e.jsx(u,{to:"/",className:"hover:underline",children:s.workshopTitle}),e.jsx("span",{children:"/"}),e.jsx("span",{children:"Elaboration"})]})})}),e.jsx("article",{className:"shadow-on-scrollbox h-full w-full max-w-none flex-1 scroll-pt-6 space-y-6 overflow-y-auto p-2 scrollbar-thin scrollbar-thumb-scrollbar sm:p-10 sm:pt-8",id:s.articleId,children:s.finishedCode?e.jsx(n,{epicVideoInfosPromise:s.epicVideoInfosPromise,children:e.jsx("div",{className:"prose dark:prose-invert sm:prose-lg",children:e.jsx(c,{code:s.finishedCode,components:j})})}):"No finished instructions yet..."}),e.jsx(l,{elementQuery:`#${s.articleId}`}),e.jsx(h,{type:"workshop-finished",className:"h-14 border-t px-6"}),e.jsxs("div",{className:"flex h-16 justify-between border-b-4 border-t lg:border-b-0",children:[e.jsx("div",{}),s.workshopFinished.status==="success"?e.jsx(m,{file:s.workshopFinished.file,relativePath:s.workshopFinished.relativePath}):null,e.jsx(d,{prev:s.prevStepLink,next:{to:"/"}})]})]}),e.jsx(b,{workshopTitle:s.workshopTitle,workshopFormEmbedUrl:s.workshopFormEmbedUrl})]})})}function b({workshopTitle:s,workshopFormEmbedUrl:r}){const[o,i]=t.useState(!1);return e.jsxs("div",{className:"relative flex-shrink-0",children:[o?null:e.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center",children:e.jsx(a,{children:e.jsxs("span",{children:["Loading ",s," Elaboration form"]})})}),e.jsx("iframe",{onLoad:()=>i(!0),onError:()=>i(!0),title:"Elaboration",src:r,className:p("absolute inset-0 flex h-full w-full transition-opacity duration-300",o?"opacity-100":"opacity-0")})]})}export{U as default,q as handle,R as meta};
2
- //# sourceMappingURL=finished-DpVgSUHh.js.map
1
+ import{j as e,r as t}from"./index-1cKOJFpX.js";import{E as l}from"./index-Dx5GmdYq.js";import{E as n}from"./epic-video-CzGRLoYH.js";import{L as a}from"./loading-CF7oQHQf.js";import{N as d}from"./nav-chevrons-Cbc1bd_j.js";import{M as c,E as m}from"./mdx-CGcvotZI.js";import{a as p}from"./misc-Txs7O6JX.js";import{g as f}from"./seo-pBpFCWsy.js";import{P as h}from"./progress-C7kc6YXZ.js";import{u as x,L as u}from"./components-CME-nGId.js";import"./index-DlJAkutV.js";import"./request-info-CEhUGODY.js";import"./tooltip-DTFU8ajx.js";import"./pe-CUZaIcdt.js";import"./user-D6tTg1yS.js";import"./workshop-config-CL4F08kr.js";import"./progress-bar-bUuKn1Q8.js";const q={getSitemapEntries:()=>[{route:"/finished"}]},R=({matches:s})=>{var o;const r=(o=s.find(i=>i.id==="root"))==null?void 0:o.data;return r?f({title:`🎉 ${r==null?void 0:r.workshopTitle}`,description:`Elaboration for ${r==null?void 0:r.workshopTitle}`,ogTitle:`Finished ${r==null?void 0:r.workshopTitle}`,ogDescription:"You finished! Time to submit feedback.",instructor:r.instructor,requestInfo:r.requestInfo}):[]},j={h1:()=>null};function U(){const s=x();return e.jsx("div",{className:"flex h-full flex-grow flex-col",children:e.jsxs("main",{className:"grid h-full flex-grow grid-cols-1 grid-rows-2 lg:grid-cols-2 lg:grid-rows-1",children:[e.jsxs("div",{className:"relative col-span-1 row-span-1 flex h-full flex-col lg:border-r",children:[e.jsx("h1",{className:"h-14 border-b pl-10 pr-5 text-sm font-medium uppercase leading-none",children:e.jsx("div",{className:"flex h-14 flex-wrap items-center justify-between gap-x-2 py-2",children:e.jsxs("div",{className:"flex items-center justify-start gap-x-2",children:[e.jsx(u,{to:"/",className:"hover:underline",children:s.workshopTitle}),e.jsx("span",{children:"/"}),e.jsx("span",{children:"Elaboration"})]})})}),e.jsx("article",{className:"shadow-on-scrollbox h-full w-full max-w-none flex-1 scroll-pt-6 space-y-6 overflow-y-auto p-2 scrollbar-thin scrollbar-thumb-scrollbar sm:p-10 sm:pt-8",id:s.articleId,children:s.finishedCode?e.jsx(n,{epicVideoInfosPromise:s.epicVideoInfosPromise,children:e.jsx("div",{className:"prose dark:prose-invert sm:prose-lg",children:e.jsx(c,{code:s.finishedCode,components:j})})}):"No finished instructions yet..."}),e.jsx(l,{elementQuery:`#${s.articleId}`}),e.jsx(h,{type:"workshop-finished",className:"h-14 border-t px-6"}),e.jsxs("div",{className:"flex h-16 justify-between border-b-4 border-t lg:border-b-0",children:[e.jsx("div",{}),s.workshopFinished.status==="success"?e.jsx(m,{file:s.workshopFinished.file,relativePath:s.workshopFinished.relativePath}):null,e.jsx(d,{prev:s.prevStepLink,next:{to:"/"}})]})]}),e.jsx(b,{workshopTitle:s.workshopTitle,workshopFormEmbedUrl:s.workshopFormEmbedUrl})]})})}function b({workshopTitle:s,workshopFormEmbedUrl:r}){const[o,i]=t.useState(!1);return e.jsxs("div",{className:"relative flex-shrink-0",children:[o?null:e.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center",children:e.jsx(a,{children:e.jsxs("span",{children:["Loading ",s," Elaboration form"]})})}),e.jsx("iframe",{onLoad:()=>i(!0),onError:()=>i(!0),title:"Elaboration",src:r,className:p("absolute inset-0 flex h-full w-full transition-opacity duration-300",o?"opacity-100":"opacity-0")})]})}export{U as default,q as handle,R as meta};
2
+ //# sourceMappingURL=finished-Bb9g_iPq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"finished-DpVgSUHh.js","sources":["../../../app/routes/_app+/finished.tsx"],"sourcesContent":["import { ElementScrollRestoration } from '@epic-web/restore-scroll'\nimport {\n\tgetExercises,\n\tgetWorkshopFinished,\n} from '@epic-web/workshop-utils/apps.server'\nimport { getWorkshopConfig } from '@epic-web/workshop-utils/config.server'\nimport {\n\tcombineServerTimings,\n\tgetServerTimeHeader,\n\tmakeTimings,\n\ttime,\n} from '@epic-web/workshop-utils/timing.server'\nimport { type SEOHandle } from '@nasa-gcn/remix-seo'\nimport {\n\tdefer,\n\ttype HeadersFunction,\n\ttype LoaderFunctionArgs,\n\ttype MetaFunction,\n} from '@remix-run/node'\nimport { Link, useLoaderData } from '@remix-run/react'\nimport slugify from '@sindresorhus/slugify'\nimport * as React from 'react'\nimport { EpicVideoInfoProvider } from '#app/components/epic-video.tsx'\nimport { Loading } from '#app/components/loading.tsx'\nimport { NavChevrons } from '#app/components/nav-chevrons.tsx'\nimport { type loader as rootLoader } from '#app/root.tsx'\nimport { getEpicVideoInfos } from '#app/utils/epic-api.ts'\nimport { Mdx } from '#app/utils/mdx.tsx'\nimport { cn } from '#app/utils/misc.tsx'\nimport { getSeoMetaTags } from '#app/utils/seo.js'\nimport { EditFileOnGitHub } from '../launch-editor.tsx'\nimport { ProgressToggle } from '../progress.tsx'\n\nexport const handle: SEOHandle = {\n\tgetSitemapEntries: () => [{ route: '/finished' }],\n}\n\nexport const meta: MetaFunction<typeof loader, { root: typeof rootLoader }> = ({\n\tmatches,\n}) => {\n\tconst rootData = matches.find((m) => m.id === 'root')?.data\n\tif (!rootData) return []\n\n\treturn getSeoMetaTags({\n\t\ttitle: `🎉 ${rootData?.workshopTitle}`,\n\t\tdescription: `Elaboration for ${rootData?.workshopTitle}`,\n\t\togTitle: `Finished ${rootData?.workshopTitle}`,\n\t\togDescription: `You finished! Time to submit feedback.`,\n\t\tinstructor: rootData.instructor,\n\t\trequestInfo: rootData.requestInfo,\n\t})\n}\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('finishedLoader')\n\tconst exercises = await getExercises({ request, timings })\n\tconst compiledFinished = await time(() => getWorkshopFinished({ request }), {\n\t\ttimings,\n\t\ttype: 'compileMdx',\n\t\tdesc: 'compileMdx in finished',\n\t})\n\n\tconst lastExercises = exercises[exercises.length - 1]\n\tconst workshopConfig = getWorkshopConfig()\n\tconst workshopTitle = workshopConfig.title\n\tconst workshopFormTemplate = workshopConfig.forms.workshop\n\tconst workshopFormEmbedUrl = workshopFormTemplate.replace(\n\t\t'{workshopTitle}',\n\t\tencodeURIComponent(workshopTitle),\n\t)\n\treturn defer(\n\t\t{\n\t\t\tarticleId: `workshop-${slugify(workshopTitle)}-finished`,\n\t\t\tworkshopTitle,\n\t\t\tworkshopFormEmbedUrl,\n\t\t\tfinishedCode:\n\t\t\t\tcompiledFinished.compiled.status === 'success'\n\t\t\t\t\t? compiledFinished.compiled.code\n\t\t\t\t\t: null,\n\t\t\tepicVideoInfosPromise:\n\t\t\t\tcompiledFinished.compiled.status === 'success'\n\t\t\t\t\t? getEpicVideoInfos(compiledFinished.compiled.epicVideoEmbeds, {\n\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t})\n\t\t\t\t\t: null,\n\t\t\tworkshopFinished: {\n\t\t\t\tstatus: compiledFinished.compiled.status,\n\t\t\t\tfile: compiledFinished.file,\n\t\t\t\trelativePath: compiledFinished.relativePath,\n\t\t\t},\n\t\t\tprevStepLink: lastExercises\n\t\t\t\t? {\n\t\t\t\t\t\tto: `/${lastExercises.exerciseNumber}/finished`,\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t},\n\t\t{\n\t\t\theaders: {\n\t\t\t\t'Server-Timing': getServerTimeHeader(timings),\n\t\t\t},\n\t\t},\n\t)\n}\n\nexport const headers: HeadersFunction = ({ loaderHeaders, parentHeaders }) => {\n\tconst headers = {\n\t\t'Cache-Control': loaderHeaders.get('Cache-Control') ?? '',\n\t\t'Server-Timing': combineServerTimings(loaderHeaders, parentHeaders),\n\t}\n\treturn headers\n}\n\nconst mdxComponents = { h1: () => null }\n\nexport default function ExerciseFinished() {\n\tconst data = useLoaderData<typeof loader>()\n\treturn (\n\t\t<div className=\"flex h-full flex-grow flex-col\">\n\t\t\t<main className=\"grid h-full flex-grow grid-cols-1 grid-rows-2 lg:grid-cols-2 lg:grid-rows-1\">\n\t\t\t\t<div className=\"relative col-span-1 row-span-1 flex h-full flex-col lg:border-r\">\n\t\t\t\t\t<h1 className=\"h-14 border-b pl-10 pr-5 text-sm font-medium uppercase leading-none\">\n\t\t\t\t\t\t<div className=\"flex h-14 flex-wrap items-center justify-between gap-x-2 py-2\">\n\t\t\t\t\t\t\t<div className=\"flex items-center justify-start gap-x-2\">\n\t\t\t\t\t\t\t\t<Link to=\"/\" className=\"hover:underline\">\n\t\t\t\t\t\t\t\t\t{data.workshopTitle}\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t<span>/</span>\n\t\t\t\t\t\t\t\t<span>Elaboration</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</h1>\n\t\t\t\t\t<article\n\t\t\t\t\t\tclassName=\"shadow-on-scrollbox h-full w-full max-w-none flex-1 scroll-pt-6 space-y-6 overflow-y-auto p-2 scrollbar-thin scrollbar-thumb-scrollbar sm:p-10 sm:pt-8\"\n\t\t\t\t\t\tid={data.articleId}\n\t\t\t\t\t>\n\t\t\t\t\t\t{data.finishedCode ? (\n\t\t\t\t\t\t\t<EpicVideoInfoProvider\n\t\t\t\t\t\t\t\tepicVideoInfosPromise={data.epicVideoInfosPromise}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"prose dark:prose-invert sm:prose-lg\">\n\t\t\t\t\t\t\t\t\t<Mdx code={data.finishedCode} components={mdxComponents} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</EpicVideoInfoProvider>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t// TODO: render a random dad joke...\n\t\t\t\t\t\t\t'No finished instructions yet...'\n\t\t\t\t\t\t)}\n\t\t\t\t\t</article>\n\t\t\t\t\t<ElementScrollRestoration elementQuery={`#${data.articleId}`} />\n\t\t\t\t\t<ProgressToggle\n\t\t\t\t\t\ttype=\"workshop-finished\"\n\t\t\t\t\t\tclassName=\"h-14 border-t px-6\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"flex h-16 justify-between border-b-4 border-t lg:border-b-0\">\n\t\t\t\t\t\t<div />\n\t\t\t\t\t\t{data.workshopFinished.status === 'success' ? (\n\t\t\t\t\t\t\t<EditFileOnGitHub\n\t\t\t\t\t\t\t\tfile={data.workshopFinished.file}\n\t\t\t\t\t\t\t\trelativePath={data.workshopFinished.relativePath}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t<NavChevrons prev={data.prevStepLink} next={{ to: '/' }} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<Survey\n\t\t\t\t\tworkshopTitle={data.workshopTitle}\n\t\t\t\t\tworkshopFormEmbedUrl={data.workshopFormEmbedUrl}\n\t\t\t\t/>\n\t\t\t</main>\n\t\t</div>\n\t)\n}\n\nfunction Survey({\n\tworkshopTitle,\n\tworkshopFormEmbedUrl,\n}: {\n\tworkshopTitle: string\n\tworkshopFormEmbedUrl: string\n}) {\n\tconst [iframeLoaded, setIframeLoaded] = React.useState(false)\n\treturn (\n\t\t<div className=\"relative flex-shrink-0\">\n\t\t\t{!iframeLoaded ? (\n\t\t\t\t<div className=\"absolute inset-0 z-10 flex items-center justify-center\">\n\t\t\t\t\t<Loading>\n\t\t\t\t\t\t<span>Loading {workshopTitle} Elaboration form</span>\n\t\t\t\t\t</Loading>\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t\t<iframe\n\t\t\t\tonLoad={() => setIframeLoaded(true)}\n\t\t\t\t// show what would have shown if there is an error\n\t\t\t\tonError={() => setIframeLoaded(true)}\n\t\t\t\ttitle=\"Elaboration\"\n\t\t\t\tsrc={workshopFormEmbedUrl}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'absolute inset-0 flex h-full w-full transition-opacity duration-300',\n\t\t\t\t\tiframeLoaded ? 'opacity-100' : 'opacity-0',\n\t\t\t\t)}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n"],"names":["handle","getSitemapEntries","route","meta","matches","rootData","find","m","id","data","getSeoMetaTags","title","workshopTitle","description","ogTitle","ogDescription","instructor","requestInfo","mdxComponents","h1","ExerciseFinished","useLoaderData","className","children","jsxs","jsx","Link","to","articleId","finishedCode","EpicVideoInfoProvider","epicVideoInfosPromise","Mdx","code","components","ElementScrollRestoration","elementQuery","ProgressToggle","type","workshopFinished","status","EditFileOnGitHub","file","relativePath","NavChevrons","prev","prevStepLink","next","Survey","workshopFormEmbedUrl","iframeLoaded","setIframeLoaded","React","Loading","onLoad","onError","src","cn"],"mappings":"gpBAiCO,MAAMA,EAAoB,CAChCC,kBAAmBA,IAAM,CAAC,CAAEC,MAAO,YAAa,CACjD,EAEaC,EAAiEA,CAAC,CAC9EC,QAAAA,CACD,IAAM,OACC,MAAAC,GAAWD,EAAAA,EAAQE,KAAMC,GAAMA,EAAEC,KAAO,MAAM,IAAnCJ,YAAAA,EAAsCK,KACnD,OAACJ,EAEEK,EAAe,CACrBC,MAAO,MAAMN,GAAAA,YAAAA,EAAUO,aAAa,GACpCC,YAAa,mBAAmBR,GAAAA,YAAAA,EAAUO,aAAa,GACvDE,QAAS,YAAYT,GAAAA,YAAAA,EAAUO,aAAa,GAC5CG,cAAe,yCACfC,WAAYX,EAASW,WACrBC,YAAaZ,EAASY,WACvB,CAAC,EATqB,EAUvB,EA6DMC,EAAgB,CAAEC,GAAIA,IAAM,IAAK,EAEvC,SAAwBC,GAAmB,CAC1C,MAAMX,EAAOY,IACb,aACE,MAAI,CAAAC,UAAU,iCACdC,SAACC,EAAA,KAAA,OAAA,CAAKF,UAAU,8EACfC,SAAA,CAACC,EAAA,KAAA,MAAA,CAAIF,UAAU,kEACdC,SAAA,CAACE,EAAA,IAAA,KAAA,CAAGH,UAAU,sEACbC,SAACE,EAAA,IAAA,MAAA,CAAIH,UAAU,gEACdC,SAAAC,EAAA,KAAC,MAAI,CAAAF,UAAU,0CACdC,SAAA,CAAAE,EAAA,IAACC,GAAKC,GAAG,IAAIL,UAAU,kBACrBC,WAAKX,aACP,CAAA,EACAa,EAAA,IAAC,QAAKF,SAAC,GAAA,CAAA,EACPE,EAAA,IAAC,QAAKF,SAAW,aAAA,CAAA,CAAA,EAClB,EACD,CACD,CAAA,EACAE,EAAA,IAAC,UAAA,CACAH,UAAU,yJACVd,GAAIC,EAAKmB,UAERL,WAAKM,aACLJ,EAAAA,IAACK,EAAA,CACAC,sBAAuBtB,EAAKsB,sBAE5BR,SAAAE,EAAA,IAAC,MAAI,CAAAH,UAAU,sCACdC,SAAAE,EAAA,IAACO,EAAI,CAAAC,KAAMxB,EAAKoB,aAAcK,WAAYhB,EAAe,EAC1D,CAAA,CACD,EAGA,iCAAA,CAEF,QACCiB,EAAyB,CAAAC,aAAc,IAAI3B,EAAKmB,SAAS,EAAI,CAAA,EAC9DH,EAAA,IAACY,EAAA,CACAC,KAAK,oBACLhB,UAAU,oBAAA,CACX,EACAE,EAAA,KAAC,MAAI,CAAAF,UAAU,8DACdC,SAAA,CAAAE,EAAAA,IAAC,MAAI,EAAA,EACJhB,EAAK8B,iBAAiBC,SAAW,UACjCf,EAAAA,IAACgB,EAAA,CACAC,KAAMjC,EAAK8B,iBAAiBG,KAC5BC,aAAclC,EAAK8B,iBAAiBI,aACrC,EACG,KACJlB,EAAA,IAACmB,GAAYC,KAAMpC,EAAKqC,aAAcC,KAAM,CAAEpB,GAAI,GAAI,CAAG,CAAA,CAAA,CAC1D,CAAA,CAAA,CACD,CAAA,EACAF,EAAA,IAACuB,EAAA,CACApC,cAAeH,EAAKG,cACpBqC,qBAAsBxC,EAAKwC,oBAAA,CAC5B,CAAA,EACD,CACD,CAAA,CAEF,CAEA,SAASD,EAAO,CACfpC,cAAAA,EACAqC,qBAAAA,CACD,EAGG,CACF,KAAM,CAACC,EAAcC,CAAe,EAAIC,WAAe,EAAK,EAE3D,OAAA5B,EAAAA,KAAC,MAAI,CAAAF,UAAU,yBACbC,SAAA,CAAC2B,EAME,WALF,MAAI,CAAA5B,UAAU,yDACdC,SAACE,EAAA,IAAA4B,EAAA,CACA9B,gBAAC,OAAK,CAAAA,SAAA,CAAA,WAASX,EAAc,mBAAA,EAAiB,EAC/C,EACD,EAEDa,EAAA,IAAC,SAAA,CACA6B,OAAQA,IAAMH,EAAgB,EAAI,EAElCI,QAASA,IAAMJ,EAAgB,EAAI,EACnCxC,MAAM,cACN6C,IAAKP,EACL3B,UAAWmC,EACV,sEACAP,EAAe,cAAgB,WAChC,CAAA,CACD,CAAA,CACD,CAAA,CAEF"}
1
+ {"version":3,"file":"finished-Bb9g_iPq.js","sources":["../../../app/routes/_app+/finished.tsx"],"sourcesContent":["import { ElementScrollRestoration } from '@epic-web/restore-scroll'\nimport {\n\tgetExercises,\n\tgetWorkshopFinished,\n} from '@epic-web/workshop-utils/apps.server'\nimport { getWorkshopConfig } from '@epic-web/workshop-utils/config.server'\nimport {\n\tcombineServerTimings,\n\tgetServerTimeHeader,\n\tmakeTimings,\n\ttime,\n} from '@epic-web/workshop-utils/timing.server'\nimport { type SEOHandle } from '@nasa-gcn/remix-seo'\nimport {\n\tdefer,\n\ttype HeadersFunction,\n\ttype LoaderFunctionArgs,\n\ttype MetaFunction,\n} from '@remix-run/node'\nimport { Link, useLoaderData } from '@remix-run/react'\nimport slugify from '@sindresorhus/slugify'\nimport * as React from 'react'\nimport { EpicVideoInfoProvider } from '#app/components/epic-video.tsx'\nimport { Loading } from '#app/components/loading.tsx'\nimport { NavChevrons } from '#app/components/nav-chevrons.tsx'\nimport { type loader as rootLoader } from '#app/root.tsx'\nimport { getEpicVideoInfos } from '#app/utils/epic-api.ts'\nimport { Mdx } from '#app/utils/mdx.tsx'\nimport { cn } from '#app/utils/misc.tsx'\nimport { getSeoMetaTags } from '#app/utils/seo.js'\nimport { EditFileOnGitHub } from '../launch-editor.tsx'\nimport { ProgressToggle } from '../progress.tsx'\n\nexport const handle: SEOHandle = {\n\tgetSitemapEntries: () => [{ route: '/finished' }],\n}\n\nexport const meta: MetaFunction<typeof loader, { root: typeof rootLoader }> = ({\n\tmatches,\n}) => {\n\tconst rootData = matches.find((m) => m.id === 'root')?.data\n\tif (!rootData) return []\n\n\treturn getSeoMetaTags({\n\t\ttitle: `🎉 ${rootData?.workshopTitle}`,\n\t\tdescription: `Elaboration for ${rootData?.workshopTitle}`,\n\t\togTitle: `Finished ${rootData?.workshopTitle}`,\n\t\togDescription: `You finished! Time to submit feedback.`,\n\t\tinstructor: rootData.instructor,\n\t\trequestInfo: rootData.requestInfo,\n\t})\n}\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('finishedLoader')\n\tconst exercises = await getExercises({ request, timings })\n\tconst compiledFinished = await time(() => getWorkshopFinished({ request }), {\n\t\ttimings,\n\t\ttype: 'compileMdx',\n\t\tdesc: 'compileMdx in finished',\n\t})\n\n\tconst lastExercises = exercises[exercises.length - 1]\n\tconst workshopConfig = getWorkshopConfig()\n\tconst workshopTitle = workshopConfig.title\n\tconst workshopFormTemplate = workshopConfig.forms.workshop\n\tconst workshopFormEmbedUrl = workshopFormTemplate.replace(\n\t\t'{workshopTitle}',\n\t\tencodeURIComponent(workshopTitle),\n\t)\n\treturn defer(\n\t\t{\n\t\t\tarticleId: `workshop-${slugify(workshopTitle)}-finished`,\n\t\t\tworkshopTitle,\n\t\t\tworkshopFormEmbedUrl,\n\t\t\tfinishedCode:\n\t\t\t\tcompiledFinished.compiled.status === 'success'\n\t\t\t\t\t? compiledFinished.compiled.code\n\t\t\t\t\t: null,\n\t\t\tepicVideoInfosPromise:\n\t\t\t\tcompiledFinished.compiled.status === 'success'\n\t\t\t\t\t? getEpicVideoInfos(compiledFinished.compiled.epicVideoEmbeds, {\n\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t})\n\t\t\t\t\t: null,\n\t\t\tworkshopFinished: {\n\t\t\t\tstatus: compiledFinished.compiled.status,\n\t\t\t\tfile: compiledFinished.file,\n\t\t\t\trelativePath: compiledFinished.relativePath,\n\t\t\t},\n\t\t\tprevStepLink: lastExercises\n\t\t\t\t? {\n\t\t\t\t\t\tto: `/${lastExercises.exerciseNumber}/finished`,\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t},\n\t\t{\n\t\t\theaders: {\n\t\t\t\t'Server-Timing': getServerTimeHeader(timings),\n\t\t\t},\n\t\t},\n\t)\n}\n\nexport const headers: HeadersFunction = ({ loaderHeaders, parentHeaders }) => {\n\tconst headers = {\n\t\t'Cache-Control': loaderHeaders.get('Cache-Control') ?? '',\n\t\t'Server-Timing': combineServerTimings(loaderHeaders, parentHeaders),\n\t}\n\treturn headers\n}\n\nconst mdxComponents = { h1: () => null }\n\nexport default function ExerciseFinished() {\n\tconst data = useLoaderData<typeof loader>()\n\treturn (\n\t\t<div className=\"flex h-full flex-grow flex-col\">\n\t\t\t<main className=\"grid h-full flex-grow grid-cols-1 grid-rows-2 lg:grid-cols-2 lg:grid-rows-1\">\n\t\t\t\t<div className=\"relative col-span-1 row-span-1 flex h-full flex-col lg:border-r\">\n\t\t\t\t\t<h1 className=\"h-14 border-b pl-10 pr-5 text-sm font-medium uppercase leading-none\">\n\t\t\t\t\t\t<div className=\"flex h-14 flex-wrap items-center justify-between gap-x-2 py-2\">\n\t\t\t\t\t\t\t<div className=\"flex items-center justify-start gap-x-2\">\n\t\t\t\t\t\t\t\t<Link to=\"/\" className=\"hover:underline\">\n\t\t\t\t\t\t\t\t\t{data.workshopTitle}\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t<span>/</span>\n\t\t\t\t\t\t\t\t<span>Elaboration</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</h1>\n\t\t\t\t\t<article\n\t\t\t\t\t\tclassName=\"shadow-on-scrollbox h-full w-full max-w-none flex-1 scroll-pt-6 space-y-6 overflow-y-auto p-2 scrollbar-thin scrollbar-thumb-scrollbar sm:p-10 sm:pt-8\"\n\t\t\t\t\t\tid={data.articleId}\n\t\t\t\t\t>\n\t\t\t\t\t\t{data.finishedCode ? (\n\t\t\t\t\t\t\t<EpicVideoInfoProvider\n\t\t\t\t\t\t\t\tepicVideoInfosPromise={data.epicVideoInfosPromise}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"prose dark:prose-invert sm:prose-lg\">\n\t\t\t\t\t\t\t\t\t<Mdx code={data.finishedCode} components={mdxComponents} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</EpicVideoInfoProvider>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t// TODO: render a random dad joke...\n\t\t\t\t\t\t\t'No finished instructions yet...'\n\t\t\t\t\t\t)}\n\t\t\t\t\t</article>\n\t\t\t\t\t<ElementScrollRestoration elementQuery={`#${data.articleId}`} />\n\t\t\t\t\t<ProgressToggle\n\t\t\t\t\t\ttype=\"workshop-finished\"\n\t\t\t\t\t\tclassName=\"h-14 border-t px-6\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"flex h-16 justify-between border-b-4 border-t lg:border-b-0\">\n\t\t\t\t\t\t<div />\n\t\t\t\t\t\t{data.workshopFinished.status === 'success' ? (\n\t\t\t\t\t\t\t<EditFileOnGitHub\n\t\t\t\t\t\t\t\tfile={data.workshopFinished.file}\n\t\t\t\t\t\t\t\trelativePath={data.workshopFinished.relativePath}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t<NavChevrons prev={data.prevStepLink} next={{ to: '/' }} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<Survey\n\t\t\t\t\tworkshopTitle={data.workshopTitle}\n\t\t\t\t\tworkshopFormEmbedUrl={data.workshopFormEmbedUrl}\n\t\t\t\t/>\n\t\t\t</main>\n\t\t</div>\n\t)\n}\n\nfunction Survey({\n\tworkshopTitle,\n\tworkshopFormEmbedUrl,\n}: {\n\tworkshopTitle: string\n\tworkshopFormEmbedUrl: string\n}) {\n\tconst [iframeLoaded, setIframeLoaded] = React.useState(false)\n\treturn (\n\t\t<div className=\"relative flex-shrink-0\">\n\t\t\t{!iframeLoaded ? (\n\t\t\t\t<div className=\"absolute inset-0 z-10 flex items-center justify-center\">\n\t\t\t\t\t<Loading>\n\t\t\t\t\t\t<span>Loading {workshopTitle} Elaboration form</span>\n\t\t\t\t\t</Loading>\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t\t<iframe\n\t\t\t\tonLoad={() => setIframeLoaded(true)}\n\t\t\t\t// show what would have shown if there is an error\n\t\t\t\tonError={() => setIframeLoaded(true)}\n\t\t\t\ttitle=\"Elaboration\"\n\t\t\t\tsrc={workshopFormEmbedUrl}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'absolute inset-0 flex h-full w-full transition-opacity duration-300',\n\t\t\t\t\tiframeLoaded ? 'opacity-100' : 'opacity-0',\n\t\t\t\t)}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n"],"names":["handle","getSitemapEntries","route","meta","matches","rootData","find","m","id","data","getSeoMetaTags","title","workshopTitle","description","ogTitle","ogDescription","instructor","requestInfo","mdxComponents","h1","ExerciseFinished","useLoaderData","className","children","jsxs","jsx","Link","to","articleId","finishedCode","EpicVideoInfoProvider","epicVideoInfosPromise","Mdx","code","components","ElementScrollRestoration","elementQuery","ProgressToggle","type","workshopFinished","status","EditFileOnGitHub","file","relativePath","NavChevrons","prev","prevStepLink","next","Survey","workshopFormEmbedUrl","iframeLoaded","setIframeLoaded","React","Loading","onLoad","onError","src","cn"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{R as X,j as i,r as o}from"./index-1cKOJFpX.js";import{r as be}from"./components-CME-nGId.js";import{d as Ne,h as D,k as Se,j as _e,A as st,P as j,f as b,i as U,D as lt,C as ct,e as Te,l as at,V as it,m as dt,u as Pe,R as ut}from"./tooltip-fa2eC7LQ.js";import{h as pt,u as ft,R as mt,F as ht,P as vt}from"./index-Cr2THg3v.js";function Ee(t,[n,e]){return Math.min(e,Math.max(n,t))}function gt(t){const n=t+"CollectionProvider",[e,a]=Ne(n),[c,d]=e(n,{collectionRef:{current:null},itemMap:new Map}),l=C=>{const{scope:f,children:v}=C,S=X.useRef(null),m=X.useRef(new Map).current;return i.jsx(c,{scope:f,itemMap:m,collectionRef:S,children:v})};l.displayName=n;const s=t+"CollectionSlot",r=X.forwardRef((C,f)=>{const{scope:v,children:S}=C,m=d(s,v),u=D(f,m.collectionRef);return i.jsx(Se,{ref:u,children:S})});r.displayName=s;const p=t+"CollectionItemSlot",g="data-radix-collection-item",w=X.forwardRef((C,f)=>{const{scope:v,children:S,...m}=C,u=X.useRef(null),x=D(f,u),_=d(p,v);return X.useEffect(()=>(_.itemMap.set(u,{ref:u,...m}),()=>void _.itemMap.delete(u))),i.jsx(Se,{[g]:"",ref:x,children:S})});w.displayName=p;function P(C){const f=d(t+"CollectionConsumer",C);return X.useCallback(()=>{const S=f.collectionRef.current;if(!S)return[];const m=Array.from(S.querySelectorAll(`[${g}]`));return Array.from(f.itemMap.values()).sort((_,M)=>m.indexOf(_.ref.current)-m.indexOf(M.ref.current))},[f.collectionRef,f.itemMap])}return[{Provider:l,Slot:r,ItemSlot:w},P,a]}var St=o.createContext(void 0);function xt(t){const n=o.useContext(St);return t||n||"ltr"}function wt(t){const n=o.useRef({value:t,previous:t});return o.useMemo(()=>(n.current.value!==t&&(n.current.previous=n.current.value,n.current.value=t),n.current.previous),[t])}var Ct=[" ","Enter","ArrowUp","ArrowDown"],It=[" ","Enter"],se="Select",[ie,de,yt]=gt(se),[te,Kt]=Ne(se,[yt,_e]),ue=_e(),[Tt,K]=te(se),[Rt,Pt]=te(se),Me=t=>{const{__scopeSelect:n,children:e,open:a,defaultOpen:c,onOpenChange:d,value:l,defaultValue:s,onValueChange:r,dir:p,name:g,autoComplete:w,disabled:P,required:C}=t,f=ue(n),[v,S]=o.useState(null),[m,u]=o.useState(null),[x,_]=o.useState(!1),M=xt(p),[oe=!1,N]=Pe({prop:a,defaultProp:c,onChange:d}),[O,z]=Pe({prop:l,defaultProp:s,onChange:r}),J=o.useRef(null),q=v?!!v.closest("form"):!0,[L,H]=o.useState(new Set),F=Array.from(L).map(E=>E.props.value).join(";");return i.jsx(ut,{...f,children:i.jsxs(Tt,{required:C,scope:n,trigger:v,onTriggerChange:S,valueNode:m,onValueNodeChange:u,valueNodeHasChildren:x,onValueNodeHasChildrenChange:_,contentId:Te(),value:O,onValueChange:z,open:oe,onOpenChange:N,dir:M,triggerPointerDownPosRef:J,disabled:P,children:[i.jsx(ie.Provider,{scope:n,children:i.jsx(Rt,{scope:t.__scopeSelect,onNativeOptionAdd:o.useCallback(E=>{H(k=>new Set(k).add(E))},[]),onNativeOptionRemove:o.useCallback(E=>{H(k=>{const V=new Set(k);return V.delete(E),V})},[]),children:e})}),q?i.jsxs(ot,{"aria-hidden":!0,required:C,tabIndex:-1,name:g,autoComplete:w,value:O,onChange:E=>z(E.target.value),disabled:P,children:[O===void 0?i.jsx("option",{value:""}):null,Array.from(L)]},F):null]})})};Me.displayName=se;var Ae="SelectTrigger",Oe=o.forwardRef((t,n)=>{const{__scopeSelect:e,disabled:a=!1,...c}=t,d=ue(e),l=K(Ae,e),s=l.disabled||a,r=D(n,l.onTriggerChange),p=de(e),[g,w,P]=nt(f=>{const v=p().filter(u=>!u.disabled),S=v.find(u=>u.value===l.value),m=rt(v,f,S);m!==void 0&&l.onValueChange(m.value)}),C=()=>{s||(l.onOpenChange(!0),P())};return i.jsx(st,{asChild:!0,...d,children:i.jsx(j.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":tt(l.value)?"":void 0,...c,ref:r,onClick:b(c.onClick,f=>{f.currentTarget.focus()}),onPointerDown:b(c.onPointerDown,f=>{const v=f.target;v.hasPointerCapture(f.pointerId)&&v.releasePointerCapture(f.pointerId),f.button===0&&f.ctrlKey===!1&&(C(),l.triggerPointerDownPosRef.current={x:Math.round(f.pageX),y:Math.round(f.pageY)},f.preventDefault())}),onKeyDown:b(c.onKeyDown,f=>{const v=g.current!=="";!(f.ctrlKey||f.altKey||f.metaKey)&&f.key.length===1&&w(f.key),!(v&&f.key===" ")&&Ct.includes(f.key)&&(C(),f.preventDefault())})})})});Oe.displayName=Ae;var De="SelectValue",je=o.forwardRef((t,n)=>{const{__scopeSelect:e,className:a,style:c,children:d,placeholder:l="",...s}=t,r=K(De,e),{onValueNodeHasChildrenChange:p}=r,g=d!==void 0,w=D(n,r.onValueNodeChange);return U(()=>{p(g)},[p,g]),i.jsx(j.span,{...s,ref:w,style:{pointerEvents:"none"},children:tt(r.value)?i.jsx(i.Fragment,{children:l}):d})});je.displayName=De;var Et="SelectIcon",Le=o.forwardRef((t,n)=>{const{__scopeSelect:e,children:a,...c}=t;return i.jsx(j.span,{"aria-hidden":!0,...c,ref:n,children:a||"▼"})});Le.displayName=Et;var bt="SelectPortal",ke=t=>i.jsx(vt,{asChild:!0,...t});ke.displayName=bt;var Z="SelectContent",Ve=o.forwardRef((t,n)=>{const e=K(Z,t.__scopeSelect),[a,c]=o.useState();if(U(()=>{c(new DocumentFragment)},[]),!e.open){const d=a;return d?be.createPortal(i.jsx(Be,{scope:t.__scopeSelect,children:i.jsx(ie.Slot,{scope:t.__scopeSelect,children:i.jsx("div",{children:t.children})})}),d):null}return i.jsx(He,{...t,ref:n})});Ve.displayName=Z;var B=10,[Be,G]=te(Z),Nt="SelectContentImpl",He=o.forwardRef((t,n)=>{const{__scopeSelect:e,position:a="item-aligned",onCloseAutoFocus:c,onEscapeKeyDown:d,onPointerDownOutside:l,side:s,sideOffset:r,align:p,alignOffset:g,arrowPadding:w,collisionBoundary:P,collisionPadding:C,sticky:f,hideWhenDetached:v,avoidCollisions:S,...m}=t,u=K(Z,e),[x,_]=o.useState(null),[M,oe]=o.useState(null),N=D(n,h=>_(h)),[O,z]=o.useState(null),[J,q]=o.useState(null),L=de(e),[H,F]=o.useState(!1),E=o.useRef(!1);o.useEffect(()=>{if(x)return pt(x)},[x]),ft();const k=o.useCallback(h=>{const[R,...A]=L().map(y=>y.ref.current),[T]=A.slice(-1),I=document.activeElement;for(const y of h)if(y===I||(y==null||y.scrollIntoView({block:"nearest"}),y===R&&M&&(M.scrollTop=0),y===T&&M&&(M.scrollTop=M.scrollHeight),y==null||y.focus(),document.activeElement!==I))return},[L,M]),V=o.useCallback(()=>k([O,x]),[k,O,x]);o.useEffect(()=>{H&&V()},[H,V]);const{onOpenChange:Q,triggerPointerDownPosRef:W}=u;o.useEffect(()=>{if(x){let h={x:0,y:0};const R=T=>{var I,y;h={x:Math.abs(Math.round(T.pageX)-(((I=W.current)==null?void 0:I.x)??0)),y:Math.abs(Math.round(T.pageY)-(((y=W.current)==null?void 0:y.y)??0))}},A=T=>{h.x<=10&&h.y<=10?T.preventDefault():x.contains(T.target)||Q(!1),document.removeEventListener("pointermove",R),W.current=null};return W.current!==null&&(document.addEventListener("pointermove",R),document.addEventListener("pointerup",A,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",R),document.removeEventListener("pointerup",A,{capture:!0})}}},[x,Q,W]),o.useEffect(()=>{const h=()=>Q(!1);return window.addEventListener("blur",h),window.addEventListener("resize",h),()=>{window.removeEventListener("blur",h),window.removeEventListener("resize",h)}},[Q]);const[pe,le]=nt(h=>{const R=L().filter(I=>!I.disabled),A=R.find(I=>I.ref.current===document.activeElement),T=rt(R,h,A);T&&setTimeout(()=>T.ref.current.focus())}),fe=o.useCallback((h,R,A)=>{const T=!E.current&&!A;(u.value!==void 0&&u.value===R||T)&&(z(h),T&&(E.current=!0))},[u.value]),me=o.useCallback(()=>x==null?void 0:x.focus(),[x]),ee=o.useCallback((h,R,A)=>{const T=!E.current&&!A;(u.value!==void 0&&u.value===R||T)&&q(h)},[u.value]),ce=a==="popper"?xe:Fe,ne=ce===xe?{side:s,sideOffset:r,align:p,alignOffset:g,arrowPadding:w,collisionBoundary:P,collisionPadding:C,sticky:f,hideWhenDetached:v,avoidCollisions:S}:{};return i.jsx(Be,{scope:e,content:x,viewport:M,onViewportChange:oe,itemRefCallback:fe,selectedItem:O,onItemLeave:me,itemTextRefCallback:ee,focusSelectedItem:V,selectedItemText:J,position:a,isPositioned:H,searchRef:pe,children:i.jsx(mt,{as:Se,allowPinchZoom:!0,children:i.jsx(ht,{asChild:!0,trapped:u.open,onMountAutoFocus:h=>{h.preventDefault()},onUnmountAutoFocus:b(c,h=>{var R;(R=u.trigger)==null||R.focus({preventScroll:!0}),h.preventDefault()}),children:i.jsx(lt,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:d,onPointerDownOutside:l,onFocusOutside:h=>h.preventDefault(),onDismiss:()=>u.onOpenChange(!1),children:i.jsx(ce,{role:"listbox",id:u.contentId,"data-state":u.open?"open":"closed",dir:u.dir,onContextMenu:h=>h.preventDefault(),...m,...ne,onPlaced:()=>F(!0),ref:N,style:{display:"flex",flexDirection:"column",outline:"none",...m.style},onKeyDown:b(m.onKeyDown,h=>{const R=h.ctrlKey||h.altKey||h.metaKey;if(h.key==="Tab"&&h.preventDefault(),!R&&h.key.length===1&&le(h.key),["ArrowUp","ArrowDown","Home","End"].includes(h.key)){let T=L().filter(I=>!I.disabled).map(I=>I.ref.current);if(["ArrowUp","End"].includes(h.key)&&(T=T.slice().reverse()),["ArrowUp","ArrowDown"].includes(h.key)){const I=h.target,y=T.indexOf(I);T=T.slice(y+1)}setTimeout(()=>k(T)),h.preventDefault()}})})})})})})});He.displayName=Nt;var _t="SelectItemAlignedPosition",Fe=o.forwardRef((t,n)=>{const{__scopeSelect:e,onPlaced:a,...c}=t,d=K(Z,e),l=G(Z,e),[s,r]=o.useState(null),[p,g]=o.useState(null),w=D(n,N=>g(N)),P=de(e),C=o.useRef(!1),f=o.useRef(!0),{viewport:v,selectedItem:S,selectedItemText:m,focusSelectedItem:u}=l,x=o.useCallback(()=>{if(d.trigger&&d.valueNode&&s&&p&&v&&S&&m){const N=d.trigger.getBoundingClientRect(),O=p.getBoundingClientRect(),z=d.valueNode.getBoundingClientRect(),J=m.getBoundingClientRect();if(d.dir!=="rtl"){const I=J.left-O.left,y=z.left-I,Y=N.left-y,$=N.width+Y,he=Math.max($,O.width),ve=window.innerWidth-B,ge=Ee(y,[B,ve-he]);s.style.minWidth=$+"px",s.style.left=ge+"px"}else{const I=O.right-J.right,y=window.innerWidth-z.right-I,Y=window.innerWidth-N.right-y,$=N.width+Y,he=Math.max($,O.width),ve=window.innerWidth-B,ge=Ee(y,[B,ve-he]);s.style.minWidth=$+"px",s.style.right=ge+"px"}const q=P(),L=window.innerHeight-B*2,H=v.scrollHeight,F=window.getComputedStyle(p),E=parseInt(F.borderTopWidth,10),k=parseInt(F.paddingTop,10),V=parseInt(F.borderBottomWidth,10),Q=parseInt(F.paddingBottom,10),W=E+k+H+Q+V,pe=Math.min(S.offsetHeight*5,W),le=window.getComputedStyle(v),fe=parseInt(le.paddingTop,10),me=parseInt(le.paddingBottom,10),ee=N.top+N.height/2-B,ce=L-ee,ne=S.offsetHeight/2,h=S.offsetTop+ne,R=E+k+h,A=W-R;if(R<=ee){const I=S===q[q.length-1].ref.current;s.style.bottom="0px";const y=p.clientHeight-v.offsetTop-v.offsetHeight,Y=Math.max(ce,ne+(I?me:0)+y+V),$=R+Y;s.style.height=$+"px"}else{const I=S===q[0].ref.current;s.style.top="0px";const Y=Math.max(ee,E+v.offsetTop+(I?fe:0)+ne)+A;s.style.height=Y+"px",v.scrollTop=R-ee+v.offsetTop}s.style.margin=`${B}px 0`,s.style.minHeight=pe+"px",s.style.maxHeight=L+"px",a==null||a(),requestAnimationFrame(()=>C.current=!0)}},[P,d.trigger,d.valueNode,s,p,v,S,m,d.dir,a]);U(()=>x(),[x]);const[_,M]=o.useState();U(()=>{p&&M(window.getComputedStyle(p).zIndex)},[p]);const oe=o.useCallback(N=>{N&&f.current===!0&&(x(),u==null||u(),f.current=!1)},[x,u]);return i.jsx(At,{scope:e,contentWrapper:s,shouldExpandOnScrollRef:C,onScrollButtonChange:oe,children:i.jsx("div",{ref:r,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:_},children:i.jsx(j.div,{...c,ref:w,style:{boxSizing:"border-box",maxHeight:"100%",...c.style}})})})});Fe.displayName=_t;var Mt="SelectPopperPosition",xe=o.forwardRef((t,n)=>{const{__scopeSelect:e,align:a="start",collisionPadding:c=B,...d}=t,l=ue(e);return i.jsx(ct,{...l,...d,ref:n,align:a,collisionPadding:c,style:{boxSizing:"border-box",...d.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});xe.displayName=Mt;var[At,Re]=te(Z,{}),we="SelectViewport",We=o.forwardRef((t,n)=>{const{__scopeSelect:e,nonce:a,...c}=t,d=G(we,e),l=Re(we,e),s=D(n,d.onViewportChange),r=o.useRef(0);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),i.jsx(ie.Slot,{scope:e,children:i.jsx(j.div,{"data-radix-select-viewport":"",role:"presentation",...c,ref:s,style:{position:"relative",flex:1,overflow:"auto",...c.style},onScroll:b(c.onScroll,p=>{const g=p.currentTarget,{contentWrapper:w,shouldExpandOnScrollRef:P}=l;if(P!=null&&P.current&&w){const C=Math.abs(r.current-g.scrollTop);if(C>0){const f=window.innerHeight-B*2,v=parseFloat(w.style.minHeight),S=parseFloat(w.style.height),m=Math.max(v,S);if(m<f){const u=m+C,x=Math.min(f,u),_=u-x;w.style.height=x+"px",w.style.bottom==="0px"&&(g.scrollTop=_>0?_:0,w.style.justifyContent="flex-end")}}}r.current=g.scrollTop})})})]})});We.displayName=we;var Ue="SelectGroup",[Ot,Dt]=te(Ue),Ke=o.forwardRef((t,n)=>{const{__scopeSelect:e,...a}=t,c=Te();return i.jsx(Ot,{scope:e,id:c,children:i.jsx(j.div,{role:"group","aria-labelledby":c,...a,ref:n})})});Ke.displayName=Ue;var Ge="SelectLabel",ze=o.forwardRef((t,n)=>{const{__scopeSelect:e,...a}=t,c=Dt(Ge,e);return i.jsx(j.div,{id:c.id,...a,ref:n})});ze.displayName=Ge;var ae="SelectItem",[jt,qe]=te(ae),Ye=o.forwardRef((t,n)=>{const{__scopeSelect:e,value:a,disabled:c=!1,textValue:d,...l}=t,s=K(ae,e),r=G(ae,e),p=s.value===a,[g,w]=o.useState(d??""),[P,C]=o.useState(!1),f=D(n,m=>{var u;return(u=r.itemRefCallback)==null?void 0:u.call(r,m,a,c)}),v=Te(),S=()=>{c||(s.onValueChange(a),s.onOpenChange(!1))};if(a==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return i.jsx(jt,{scope:e,value:a,disabled:c,textId:v,isSelected:p,onItemTextChange:o.useCallback(m=>{w(u=>u||((m==null?void 0:m.textContent)??"").trim())},[]),children:i.jsx(ie.ItemSlot,{scope:e,value:a,disabled:c,textValue:g,children:i.jsx(j.div,{role:"option","aria-labelledby":v,"data-highlighted":P?"":void 0,"aria-selected":p&&P,"data-state":p?"checked":"unchecked","aria-disabled":c||void 0,"data-disabled":c?"":void 0,tabIndex:c?void 0:-1,...l,ref:f,onFocus:b(l.onFocus,()=>C(!0)),onBlur:b(l.onBlur,()=>C(!1)),onPointerUp:b(l.onPointerUp,S),onPointerMove:b(l.onPointerMove,m=>{var u;c?(u=r.onItemLeave)==null||u.call(r):m.currentTarget.focus({preventScroll:!0})}),onPointerLeave:b(l.onPointerLeave,m=>{var u;m.currentTarget===document.activeElement&&((u=r.onItemLeave)==null||u.call(r))}),onKeyDown:b(l.onKeyDown,m=>{var x;((x=r.searchRef)==null?void 0:x.current)!==""&&m.key===" "||(It.includes(m.key)&&S(),m.key===" "&&m.preventDefault())})})})})});Ye.displayName=ae;var re="SelectItemText",$e=o.forwardRef((t,n)=>{const{__scopeSelect:e,className:a,style:c,...d}=t,l=K(re,e),s=G(re,e),r=qe(re,e),p=Pt(re,e),[g,w]=o.useState(null),P=D(n,m=>w(m),r.onItemTextChange,m=>{var u;return(u=s.itemTextRefCallback)==null?void 0:u.call(s,m,r.value,r.disabled)}),C=g==null?void 0:g.textContent,f=o.useMemo(()=>i.jsx("option",{value:r.value,disabled:r.disabled,children:C},r.value),[r.disabled,r.value,C]),{onNativeOptionAdd:v,onNativeOptionRemove:S}=p;return U(()=>(v(f),()=>S(f)),[v,S,f]),i.jsxs(i.Fragment,{children:[i.jsx(j.span,{id:r.textId,...d,ref:P}),r.isSelected&&l.valueNode&&!l.valueNodeHasChildren?be.createPortal(d.children,l.valueNode):null]})});$e.displayName=re;var Xe="SelectItemIndicator",Ze=o.forwardRef((t,n)=>{const{__scopeSelect:e,...a}=t;return qe(Xe,e).isSelected?i.jsx(j.span,{"aria-hidden":!0,...a,ref:n}):null});Ze.displayName=Xe;var Ce="SelectScrollUpButton",Je=o.forwardRef((t,n)=>{const e=G(Ce,t.__scopeSelect),a=Re(Ce,t.__scopeSelect),[c,d]=o.useState(!1),l=D(n,a.onScrollButtonChange);return U(()=>{if(e.viewport&&e.isPositioned){let s=function(){const p=r.scrollTop>0;d(p)};const r=e.viewport;return s(),r.addEventListener("scroll",s),()=>r.removeEventListener("scroll",s)}},[e.viewport,e.isPositioned]),c?i.jsx(et,{...t,ref:l,onAutoScroll:()=>{const{viewport:s,selectedItem:r}=e;s&&r&&(s.scrollTop=s.scrollTop-r.offsetHeight)}}):null});Je.displayName=Ce;var Ie="SelectScrollDownButton",Qe=o.forwardRef((t,n)=>{const e=G(Ie,t.__scopeSelect),a=Re(Ie,t.__scopeSelect),[c,d]=o.useState(!1),l=D(n,a.onScrollButtonChange);return U(()=>{if(e.viewport&&e.isPositioned){let s=function(){const p=r.scrollHeight-r.clientHeight,g=Math.ceil(r.scrollTop)<p;d(g)};const r=e.viewport;return s(),r.addEventListener("scroll",s),()=>r.removeEventListener("scroll",s)}},[e.viewport,e.isPositioned]),c?i.jsx(et,{...t,ref:l,onAutoScroll:()=>{const{viewport:s,selectedItem:r}=e;s&&r&&(s.scrollTop=s.scrollTop+r.offsetHeight)}}):null});Qe.displayName=Ie;var et=o.forwardRef((t,n)=>{const{__scopeSelect:e,onAutoScroll:a,...c}=t,d=G("SelectScrollButton",e),l=o.useRef(null),s=de(e),r=o.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return o.useEffect(()=>()=>r(),[r]),U(()=>{var g;const p=s().find(w=>w.ref.current===document.activeElement);(g=p==null?void 0:p.ref.current)==null||g.scrollIntoView({block:"nearest"})},[s]),i.jsx(j.div,{"aria-hidden":!0,...c,ref:n,style:{flexShrink:0,...c.style},onPointerDown:b(c.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(a,50))}),onPointerMove:b(c.onPointerMove,()=>{var p;(p=d.onItemLeave)==null||p.call(d),l.current===null&&(l.current=window.setInterval(a,50))}),onPointerLeave:b(c.onPointerLeave,()=>{r()})})}),Lt="SelectSeparator",kt=o.forwardRef((t,n)=>{const{__scopeSelect:e,...a}=t;return i.jsx(j.div,{"aria-hidden":!0,...a,ref:n})});kt.displayName=Lt;var ye="SelectArrow",Vt=o.forwardRef((t,n)=>{const{__scopeSelect:e,...a}=t,c=ue(e),d=K(ye,e),l=G(ye,e);return d.open&&l.position==="popper"?i.jsx(at,{...c,...a,ref:n}):null});Vt.displayName=ye;function tt(t){return t===""||t===void 0}var ot=o.forwardRef((t,n)=>{const{value:e,...a}=t,c=o.useRef(null),d=D(n,c),l=wt(e);return o.useEffect(()=>{const s=c.current,r=window.HTMLSelectElement.prototype,g=Object.getOwnPropertyDescriptor(r,"value").set;if(l!==e&&g){const w=new Event("change",{bubbles:!0});g.call(s,e),s.dispatchEvent(w)}},[l,e]),i.jsx(it,{asChild:!0,children:i.jsx("select",{...a,ref:d,defaultValue:e})})});ot.displayName="BubbleSelect";function nt(t){const n=dt(t),e=o.useRef(""),a=o.useRef(0),c=o.useCallback(l=>{const s=e.current+l;n(s),function r(p){e.current=p,window.clearTimeout(a.current),p!==""&&(a.current=window.setTimeout(()=>r(""),1e3))}(s)},[n]),d=o.useCallback(()=>{e.current="",window.clearTimeout(a.current)},[]);return o.useEffect(()=>()=>window.clearTimeout(a.current),[]),[e,c,d]}function rt(t,n,e){const c=n.length>1&&Array.from(n).every(p=>p===n[0])?n[0]:n,d=e?t.indexOf(e):-1;let l=Bt(t,Math.max(d,0));c.length===1&&(l=l.filter(p=>p!==e));const r=l.find(p=>p.textValue.toLowerCase().startsWith(c.toLowerCase()));return r!==e?r:void 0}function Bt(t,n){return t.map((e,a)=>t[(n+a)%t.length])}var Gt=Me,zt=Oe,qt=je,Yt=Le,$t=ke,Xt=Ve,Zt=We,Jt=Ke,Qt=ze,eo=Ye,to=$e,oo=Ze,no=Je,ro=Qe;export{Xt as C,Jt as G,Yt as I,Qt as L,$t as P,Gt as R,no as S,zt as T,qt as V,Zt as a,ro as b,eo as c,to as d,oo as e,gt as f,xt as u};
2
- //# sourceMappingURL=index-CrCyg109.js.map
1
+ import{R as X,j as i,r as o}from"./index-1cKOJFpX.js";import{r as be}from"./components-CME-nGId.js";import{d as Ne,h as D,k as Se,j as _e,A as st,P as j,f as b,i as U,D as lt,C as ct,e as Te,l as at,V as it,m as dt,u as Pe,R as ut}from"./tooltip-DTFU8ajx.js";import{h as pt,u as ft,R as mt,F as ht,P as vt}from"./index-j_VpxCZh.js";function Ee(t,[n,e]){return Math.min(e,Math.max(n,t))}function gt(t){const n=t+"CollectionProvider",[e,a]=Ne(n),[c,d]=e(n,{collectionRef:{current:null},itemMap:new Map}),l=C=>{const{scope:f,children:v}=C,S=X.useRef(null),m=X.useRef(new Map).current;return i.jsx(c,{scope:f,itemMap:m,collectionRef:S,children:v})};l.displayName=n;const s=t+"CollectionSlot",r=X.forwardRef((C,f)=>{const{scope:v,children:S}=C,m=d(s,v),u=D(f,m.collectionRef);return i.jsx(Se,{ref:u,children:S})});r.displayName=s;const p=t+"CollectionItemSlot",g="data-radix-collection-item",w=X.forwardRef((C,f)=>{const{scope:v,children:S,...m}=C,u=X.useRef(null),x=D(f,u),_=d(p,v);return X.useEffect(()=>(_.itemMap.set(u,{ref:u,...m}),()=>void _.itemMap.delete(u))),i.jsx(Se,{[g]:"",ref:x,children:S})});w.displayName=p;function P(C){const f=d(t+"CollectionConsumer",C);return X.useCallback(()=>{const S=f.collectionRef.current;if(!S)return[];const m=Array.from(S.querySelectorAll(`[${g}]`));return Array.from(f.itemMap.values()).sort((_,M)=>m.indexOf(_.ref.current)-m.indexOf(M.ref.current))},[f.collectionRef,f.itemMap])}return[{Provider:l,Slot:r,ItemSlot:w},P,a]}var St=o.createContext(void 0);function xt(t){const n=o.useContext(St);return t||n||"ltr"}function wt(t){const n=o.useRef({value:t,previous:t});return o.useMemo(()=>(n.current.value!==t&&(n.current.previous=n.current.value,n.current.value=t),n.current.previous),[t])}var Ct=[" ","Enter","ArrowUp","ArrowDown"],It=[" ","Enter"],se="Select",[ie,de,yt]=gt(se),[te,Kt]=Ne(se,[yt,_e]),ue=_e(),[Tt,K]=te(se),[Rt,Pt]=te(se),Me=t=>{const{__scopeSelect:n,children:e,open:a,defaultOpen:c,onOpenChange:d,value:l,defaultValue:s,onValueChange:r,dir:p,name:g,autoComplete:w,disabled:P,required:C}=t,f=ue(n),[v,S]=o.useState(null),[m,u]=o.useState(null),[x,_]=o.useState(!1),M=xt(p),[oe=!1,N]=Pe({prop:a,defaultProp:c,onChange:d}),[O,z]=Pe({prop:l,defaultProp:s,onChange:r}),J=o.useRef(null),q=v?!!v.closest("form"):!0,[L,H]=o.useState(new Set),F=Array.from(L).map(E=>E.props.value).join(";");return i.jsx(ut,{...f,children:i.jsxs(Tt,{required:C,scope:n,trigger:v,onTriggerChange:S,valueNode:m,onValueNodeChange:u,valueNodeHasChildren:x,onValueNodeHasChildrenChange:_,contentId:Te(),value:O,onValueChange:z,open:oe,onOpenChange:N,dir:M,triggerPointerDownPosRef:J,disabled:P,children:[i.jsx(ie.Provider,{scope:n,children:i.jsx(Rt,{scope:t.__scopeSelect,onNativeOptionAdd:o.useCallback(E=>{H(k=>new Set(k).add(E))},[]),onNativeOptionRemove:o.useCallback(E=>{H(k=>{const V=new Set(k);return V.delete(E),V})},[]),children:e})}),q?i.jsxs(ot,{"aria-hidden":!0,required:C,tabIndex:-1,name:g,autoComplete:w,value:O,onChange:E=>z(E.target.value),disabled:P,children:[O===void 0?i.jsx("option",{value:""}):null,Array.from(L)]},F):null]})})};Me.displayName=se;var Ae="SelectTrigger",Oe=o.forwardRef((t,n)=>{const{__scopeSelect:e,disabled:a=!1,...c}=t,d=ue(e),l=K(Ae,e),s=l.disabled||a,r=D(n,l.onTriggerChange),p=de(e),[g,w,P]=nt(f=>{const v=p().filter(u=>!u.disabled),S=v.find(u=>u.value===l.value),m=rt(v,f,S);m!==void 0&&l.onValueChange(m.value)}),C=()=>{s||(l.onOpenChange(!0),P())};return i.jsx(st,{asChild:!0,...d,children:i.jsx(j.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":tt(l.value)?"":void 0,...c,ref:r,onClick:b(c.onClick,f=>{f.currentTarget.focus()}),onPointerDown:b(c.onPointerDown,f=>{const v=f.target;v.hasPointerCapture(f.pointerId)&&v.releasePointerCapture(f.pointerId),f.button===0&&f.ctrlKey===!1&&(C(),l.triggerPointerDownPosRef.current={x:Math.round(f.pageX),y:Math.round(f.pageY)},f.preventDefault())}),onKeyDown:b(c.onKeyDown,f=>{const v=g.current!=="";!(f.ctrlKey||f.altKey||f.metaKey)&&f.key.length===1&&w(f.key),!(v&&f.key===" ")&&Ct.includes(f.key)&&(C(),f.preventDefault())})})})});Oe.displayName=Ae;var De="SelectValue",je=o.forwardRef((t,n)=>{const{__scopeSelect:e,className:a,style:c,children:d,placeholder:l="",...s}=t,r=K(De,e),{onValueNodeHasChildrenChange:p}=r,g=d!==void 0,w=D(n,r.onValueNodeChange);return U(()=>{p(g)},[p,g]),i.jsx(j.span,{...s,ref:w,style:{pointerEvents:"none"},children:tt(r.value)?i.jsx(i.Fragment,{children:l}):d})});je.displayName=De;var Et="SelectIcon",Le=o.forwardRef((t,n)=>{const{__scopeSelect:e,children:a,...c}=t;return i.jsx(j.span,{"aria-hidden":!0,...c,ref:n,children:a||"▼"})});Le.displayName=Et;var bt="SelectPortal",ke=t=>i.jsx(vt,{asChild:!0,...t});ke.displayName=bt;var Z="SelectContent",Ve=o.forwardRef((t,n)=>{const e=K(Z,t.__scopeSelect),[a,c]=o.useState();if(U(()=>{c(new DocumentFragment)},[]),!e.open){const d=a;return d?be.createPortal(i.jsx(Be,{scope:t.__scopeSelect,children:i.jsx(ie.Slot,{scope:t.__scopeSelect,children:i.jsx("div",{children:t.children})})}),d):null}return i.jsx(He,{...t,ref:n})});Ve.displayName=Z;var B=10,[Be,G]=te(Z),Nt="SelectContentImpl",He=o.forwardRef((t,n)=>{const{__scopeSelect:e,position:a="item-aligned",onCloseAutoFocus:c,onEscapeKeyDown:d,onPointerDownOutside:l,side:s,sideOffset:r,align:p,alignOffset:g,arrowPadding:w,collisionBoundary:P,collisionPadding:C,sticky:f,hideWhenDetached:v,avoidCollisions:S,...m}=t,u=K(Z,e),[x,_]=o.useState(null),[M,oe]=o.useState(null),N=D(n,h=>_(h)),[O,z]=o.useState(null),[J,q]=o.useState(null),L=de(e),[H,F]=o.useState(!1),E=o.useRef(!1);o.useEffect(()=>{if(x)return pt(x)},[x]),ft();const k=o.useCallback(h=>{const[R,...A]=L().map(y=>y.ref.current),[T]=A.slice(-1),I=document.activeElement;for(const y of h)if(y===I||(y==null||y.scrollIntoView({block:"nearest"}),y===R&&M&&(M.scrollTop=0),y===T&&M&&(M.scrollTop=M.scrollHeight),y==null||y.focus(),document.activeElement!==I))return},[L,M]),V=o.useCallback(()=>k([O,x]),[k,O,x]);o.useEffect(()=>{H&&V()},[H,V]);const{onOpenChange:Q,triggerPointerDownPosRef:W}=u;o.useEffect(()=>{if(x){let h={x:0,y:0};const R=T=>{var I,y;h={x:Math.abs(Math.round(T.pageX)-(((I=W.current)==null?void 0:I.x)??0)),y:Math.abs(Math.round(T.pageY)-(((y=W.current)==null?void 0:y.y)??0))}},A=T=>{h.x<=10&&h.y<=10?T.preventDefault():x.contains(T.target)||Q(!1),document.removeEventListener("pointermove",R),W.current=null};return W.current!==null&&(document.addEventListener("pointermove",R),document.addEventListener("pointerup",A,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",R),document.removeEventListener("pointerup",A,{capture:!0})}}},[x,Q,W]),o.useEffect(()=>{const h=()=>Q(!1);return window.addEventListener("blur",h),window.addEventListener("resize",h),()=>{window.removeEventListener("blur",h),window.removeEventListener("resize",h)}},[Q]);const[pe,le]=nt(h=>{const R=L().filter(I=>!I.disabled),A=R.find(I=>I.ref.current===document.activeElement),T=rt(R,h,A);T&&setTimeout(()=>T.ref.current.focus())}),fe=o.useCallback((h,R,A)=>{const T=!E.current&&!A;(u.value!==void 0&&u.value===R||T)&&(z(h),T&&(E.current=!0))},[u.value]),me=o.useCallback(()=>x==null?void 0:x.focus(),[x]),ee=o.useCallback((h,R,A)=>{const T=!E.current&&!A;(u.value!==void 0&&u.value===R||T)&&q(h)},[u.value]),ce=a==="popper"?xe:Fe,ne=ce===xe?{side:s,sideOffset:r,align:p,alignOffset:g,arrowPadding:w,collisionBoundary:P,collisionPadding:C,sticky:f,hideWhenDetached:v,avoidCollisions:S}:{};return i.jsx(Be,{scope:e,content:x,viewport:M,onViewportChange:oe,itemRefCallback:fe,selectedItem:O,onItemLeave:me,itemTextRefCallback:ee,focusSelectedItem:V,selectedItemText:J,position:a,isPositioned:H,searchRef:pe,children:i.jsx(mt,{as:Se,allowPinchZoom:!0,children:i.jsx(ht,{asChild:!0,trapped:u.open,onMountAutoFocus:h=>{h.preventDefault()},onUnmountAutoFocus:b(c,h=>{var R;(R=u.trigger)==null||R.focus({preventScroll:!0}),h.preventDefault()}),children:i.jsx(lt,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:d,onPointerDownOutside:l,onFocusOutside:h=>h.preventDefault(),onDismiss:()=>u.onOpenChange(!1),children:i.jsx(ce,{role:"listbox",id:u.contentId,"data-state":u.open?"open":"closed",dir:u.dir,onContextMenu:h=>h.preventDefault(),...m,...ne,onPlaced:()=>F(!0),ref:N,style:{display:"flex",flexDirection:"column",outline:"none",...m.style},onKeyDown:b(m.onKeyDown,h=>{const R=h.ctrlKey||h.altKey||h.metaKey;if(h.key==="Tab"&&h.preventDefault(),!R&&h.key.length===1&&le(h.key),["ArrowUp","ArrowDown","Home","End"].includes(h.key)){let T=L().filter(I=>!I.disabled).map(I=>I.ref.current);if(["ArrowUp","End"].includes(h.key)&&(T=T.slice().reverse()),["ArrowUp","ArrowDown"].includes(h.key)){const I=h.target,y=T.indexOf(I);T=T.slice(y+1)}setTimeout(()=>k(T)),h.preventDefault()}})})})})})})});He.displayName=Nt;var _t="SelectItemAlignedPosition",Fe=o.forwardRef((t,n)=>{const{__scopeSelect:e,onPlaced:a,...c}=t,d=K(Z,e),l=G(Z,e),[s,r]=o.useState(null),[p,g]=o.useState(null),w=D(n,N=>g(N)),P=de(e),C=o.useRef(!1),f=o.useRef(!0),{viewport:v,selectedItem:S,selectedItemText:m,focusSelectedItem:u}=l,x=o.useCallback(()=>{if(d.trigger&&d.valueNode&&s&&p&&v&&S&&m){const N=d.trigger.getBoundingClientRect(),O=p.getBoundingClientRect(),z=d.valueNode.getBoundingClientRect(),J=m.getBoundingClientRect();if(d.dir!=="rtl"){const I=J.left-O.left,y=z.left-I,Y=N.left-y,$=N.width+Y,he=Math.max($,O.width),ve=window.innerWidth-B,ge=Ee(y,[B,ve-he]);s.style.minWidth=$+"px",s.style.left=ge+"px"}else{const I=O.right-J.right,y=window.innerWidth-z.right-I,Y=window.innerWidth-N.right-y,$=N.width+Y,he=Math.max($,O.width),ve=window.innerWidth-B,ge=Ee(y,[B,ve-he]);s.style.minWidth=$+"px",s.style.right=ge+"px"}const q=P(),L=window.innerHeight-B*2,H=v.scrollHeight,F=window.getComputedStyle(p),E=parseInt(F.borderTopWidth,10),k=parseInt(F.paddingTop,10),V=parseInt(F.borderBottomWidth,10),Q=parseInt(F.paddingBottom,10),W=E+k+H+Q+V,pe=Math.min(S.offsetHeight*5,W),le=window.getComputedStyle(v),fe=parseInt(le.paddingTop,10),me=parseInt(le.paddingBottom,10),ee=N.top+N.height/2-B,ce=L-ee,ne=S.offsetHeight/2,h=S.offsetTop+ne,R=E+k+h,A=W-R;if(R<=ee){const I=S===q[q.length-1].ref.current;s.style.bottom="0px";const y=p.clientHeight-v.offsetTop-v.offsetHeight,Y=Math.max(ce,ne+(I?me:0)+y+V),$=R+Y;s.style.height=$+"px"}else{const I=S===q[0].ref.current;s.style.top="0px";const Y=Math.max(ee,E+v.offsetTop+(I?fe:0)+ne)+A;s.style.height=Y+"px",v.scrollTop=R-ee+v.offsetTop}s.style.margin=`${B}px 0`,s.style.minHeight=pe+"px",s.style.maxHeight=L+"px",a==null||a(),requestAnimationFrame(()=>C.current=!0)}},[P,d.trigger,d.valueNode,s,p,v,S,m,d.dir,a]);U(()=>x(),[x]);const[_,M]=o.useState();U(()=>{p&&M(window.getComputedStyle(p).zIndex)},[p]);const oe=o.useCallback(N=>{N&&f.current===!0&&(x(),u==null||u(),f.current=!1)},[x,u]);return i.jsx(At,{scope:e,contentWrapper:s,shouldExpandOnScrollRef:C,onScrollButtonChange:oe,children:i.jsx("div",{ref:r,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:_},children:i.jsx(j.div,{...c,ref:w,style:{boxSizing:"border-box",maxHeight:"100%",...c.style}})})})});Fe.displayName=_t;var Mt="SelectPopperPosition",xe=o.forwardRef((t,n)=>{const{__scopeSelect:e,align:a="start",collisionPadding:c=B,...d}=t,l=ue(e);return i.jsx(ct,{...l,...d,ref:n,align:a,collisionPadding:c,style:{boxSizing:"border-box",...d.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});xe.displayName=Mt;var[At,Re]=te(Z,{}),we="SelectViewport",We=o.forwardRef((t,n)=>{const{__scopeSelect:e,nonce:a,...c}=t,d=G(we,e),l=Re(we,e),s=D(n,d.onViewportChange),r=o.useRef(0);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),i.jsx(ie.Slot,{scope:e,children:i.jsx(j.div,{"data-radix-select-viewport":"",role:"presentation",...c,ref:s,style:{position:"relative",flex:1,overflow:"auto",...c.style},onScroll:b(c.onScroll,p=>{const g=p.currentTarget,{contentWrapper:w,shouldExpandOnScrollRef:P}=l;if(P!=null&&P.current&&w){const C=Math.abs(r.current-g.scrollTop);if(C>0){const f=window.innerHeight-B*2,v=parseFloat(w.style.minHeight),S=parseFloat(w.style.height),m=Math.max(v,S);if(m<f){const u=m+C,x=Math.min(f,u),_=u-x;w.style.height=x+"px",w.style.bottom==="0px"&&(g.scrollTop=_>0?_:0,w.style.justifyContent="flex-end")}}}r.current=g.scrollTop})})})]})});We.displayName=we;var Ue="SelectGroup",[Ot,Dt]=te(Ue),Ke=o.forwardRef((t,n)=>{const{__scopeSelect:e,...a}=t,c=Te();return i.jsx(Ot,{scope:e,id:c,children:i.jsx(j.div,{role:"group","aria-labelledby":c,...a,ref:n})})});Ke.displayName=Ue;var Ge="SelectLabel",ze=o.forwardRef((t,n)=>{const{__scopeSelect:e,...a}=t,c=Dt(Ge,e);return i.jsx(j.div,{id:c.id,...a,ref:n})});ze.displayName=Ge;var ae="SelectItem",[jt,qe]=te(ae),Ye=o.forwardRef((t,n)=>{const{__scopeSelect:e,value:a,disabled:c=!1,textValue:d,...l}=t,s=K(ae,e),r=G(ae,e),p=s.value===a,[g,w]=o.useState(d??""),[P,C]=o.useState(!1),f=D(n,m=>{var u;return(u=r.itemRefCallback)==null?void 0:u.call(r,m,a,c)}),v=Te(),S=()=>{c||(s.onValueChange(a),s.onOpenChange(!1))};if(a==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return i.jsx(jt,{scope:e,value:a,disabled:c,textId:v,isSelected:p,onItemTextChange:o.useCallback(m=>{w(u=>u||((m==null?void 0:m.textContent)??"").trim())},[]),children:i.jsx(ie.ItemSlot,{scope:e,value:a,disabled:c,textValue:g,children:i.jsx(j.div,{role:"option","aria-labelledby":v,"data-highlighted":P?"":void 0,"aria-selected":p&&P,"data-state":p?"checked":"unchecked","aria-disabled":c||void 0,"data-disabled":c?"":void 0,tabIndex:c?void 0:-1,...l,ref:f,onFocus:b(l.onFocus,()=>C(!0)),onBlur:b(l.onBlur,()=>C(!1)),onPointerUp:b(l.onPointerUp,S),onPointerMove:b(l.onPointerMove,m=>{var u;c?(u=r.onItemLeave)==null||u.call(r):m.currentTarget.focus({preventScroll:!0})}),onPointerLeave:b(l.onPointerLeave,m=>{var u;m.currentTarget===document.activeElement&&((u=r.onItemLeave)==null||u.call(r))}),onKeyDown:b(l.onKeyDown,m=>{var x;((x=r.searchRef)==null?void 0:x.current)!==""&&m.key===" "||(It.includes(m.key)&&S(),m.key===" "&&m.preventDefault())})})})})});Ye.displayName=ae;var re="SelectItemText",$e=o.forwardRef((t,n)=>{const{__scopeSelect:e,className:a,style:c,...d}=t,l=K(re,e),s=G(re,e),r=qe(re,e),p=Pt(re,e),[g,w]=o.useState(null),P=D(n,m=>w(m),r.onItemTextChange,m=>{var u;return(u=s.itemTextRefCallback)==null?void 0:u.call(s,m,r.value,r.disabled)}),C=g==null?void 0:g.textContent,f=o.useMemo(()=>i.jsx("option",{value:r.value,disabled:r.disabled,children:C},r.value),[r.disabled,r.value,C]),{onNativeOptionAdd:v,onNativeOptionRemove:S}=p;return U(()=>(v(f),()=>S(f)),[v,S,f]),i.jsxs(i.Fragment,{children:[i.jsx(j.span,{id:r.textId,...d,ref:P}),r.isSelected&&l.valueNode&&!l.valueNodeHasChildren?be.createPortal(d.children,l.valueNode):null]})});$e.displayName=re;var Xe="SelectItemIndicator",Ze=o.forwardRef((t,n)=>{const{__scopeSelect:e,...a}=t;return qe(Xe,e).isSelected?i.jsx(j.span,{"aria-hidden":!0,...a,ref:n}):null});Ze.displayName=Xe;var Ce="SelectScrollUpButton",Je=o.forwardRef((t,n)=>{const e=G(Ce,t.__scopeSelect),a=Re(Ce,t.__scopeSelect),[c,d]=o.useState(!1),l=D(n,a.onScrollButtonChange);return U(()=>{if(e.viewport&&e.isPositioned){let s=function(){const p=r.scrollTop>0;d(p)};const r=e.viewport;return s(),r.addEventListener("scroll",s),()=>r.removeEventListener("scroll",s)}},[e.viewport,e.isPositioned]),c?i.jsx(et,{...t,ref:l,onAutoScroll:()=>{const{viewport:s,selectedItem:r}=e;s&&r&&(s.scrollTop=s.scrollTop-r.offsetHeight)}}):null});Je.displayName=Ce;var Ie="SelectScrollDownButton",Qe=o.forwardRef((t,n)=>{const e=G(Ie,t.__scopeSelect),a=Re(Ie,t.__scopeSelect),[c,d]=o.useState(!1),l=D(n,a.onScrollButtonChange);return U(()=>{if(e.viewport&&e.isPositioned){let s=function(){const p=r.scrollHeight-r.clientHeight,g=Math.ceil(r.scrollTop)<p;d(g)};const r=e.viewport;return s(),r.addEventListener("scroll",s),()=>r.removeEventListener("scroll",s)}},[e.viewport,e.isPositioned]),c?i.jsx(et,{...t,ref:l,onAutoScroll:()=>{const{viewport:s,selectedItem:r}=e;s&&r&&(s.scrollTop=s.scrollTop+r.offsetHeight)}}):null});Qe.displayName=Ie;var et=o.forwardRef((t,n)=>{const{__scopeSelect:e,onAutoScroll:a,...c}=t,d=G("SelectScrollButton",e),l=o.useRef(null),s=de(e),r=o.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return o.useEffect(()=>()=>r(),[r]),U(()=>{var g;const p=s().find(w=>w.ref.current===document.activeElement);(g=p==null?void 0:p.ref.current)==null||g.scrollIntoView({block:"nearest"})},[s]),i.jsx(j.div,{"aria-hidden":!0,...c,ref:n,style:{flexShrink:0,...c.style},onPointerDown:b(c.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(a,50))}),onPointerMove:b(c.onPointerMove,()=>{var p;(p=d.onItemLeave)==null||p.call(d),l.current===null&&(l.current=window.setInterval(a,50))}),onPointerLeave:b(c.onPointerLeave,()=>{r()})})}),Lt="SelectSeparator",kt=o.forwardRef((t,n)=>{const{__scopeSelect:e,...a}=t;return i.jsx(j.div,{"aria-hidden":!0,...a,ref:n})});kt.displayName=Lt;var ye="SelectArrow",Vt=o.forwardRef((t,n)=>{const{__scopeSelect:e,...a}=t,c=ue(e),d=K(ye,e),l=G(ye,e);return d.open&&l.position==="popper"?i.jsx(at,{...c,...a,ref:n}):null});Vt.displayName=ye;function tt(t){return t===""||t===void 0}var ot=o.forwardRef((t,n)=>{const{value:e,...a}=t,c=o.useRef(null),d=D(n,c),l=wt(e);return o.useEffect(()=>{const s=c.current,r=window.HTMLSelectElement.prototype,g=Object.getOwnPropertyDescriptor(r,"value").set;if(l!==e&&g){const w=new Event("change",{bubbles:!0});g.call(s,e),s.dispatchEvent(w)}},[l,e]),i.jsx(it,{asChild:!0,children:i.jsx("select",{...a,ref:d,defaultValue:e})})});ot.displayName="BubbleSelect";function nt(t){const n=dt(t),e=o.useRef(""),a=o.useRef(0),c=o.useCallback(l=>{const s=e.current+l;n(s),function r(p){e.current=p,window.clearTimeout(a.current),p!==""&&(a.current=window.setTimeout(()=>r(""),1e3))}(s)},[n]),d=o.useCallback(()=>{e.current="",window.clearTimeout(a.current)},[]);return o.useEffect(()=>()=>window.clearTimeout(a.current),[]),[e,c,d]}function rt(t,n,e){const c=n.length>1&&Array.from(n).every(p=>p===n[0])?n[0]:n,d=e?t.indexOf(e):-1;let l=Bt(t,Math.max(d,0));c.length===1&&(l=l.filter(p=>p!==e));const r=l.find(p=>p.textValue.toLowerCase().startsWith(c.toLowerCase()));return r!==e?r:void 0}function Bt(t,n){return t.map((e,a)=>t[(n+a)%t.length])}var Gt=Me,zt=Oe,qt=je,Yt=Le,$t=ke,Xt=Ve,Zt=We,Jt=Ke,Qt=ze,eo=Ye,to=$e,oo=Ze,no=Je,ro=Qe;export{Xt as C,Jt as G,Yt as I,Qt as L,$t as P,Gt as R,no as S,zt as T,qt as V,Zt as a,ro as b,eo as c,to as d,oo as e,gt as f,xt as u};
2
+ //# sourceMappingURL=index-9dWszLxO.js.map