@epic-web/workshop-app 4.20.0 → 4.21.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 (125) hide show
  1. package/build/client/assets/{_-DYArYM0Z.js → _-DbrWZazo.js} +2 -2
  2. package/build/client/assets/_-DbrWZazo.js.map +1 -0
  3. package/build/client/assets/_exerciseNumber-Cq0nozYz.js +2 -0
  4. package/build/client/assets/_exerciseNumber-Cq0nozYz.js.map +1 -0
  5. package/build/client/assets/{_exerciseNumber_._stepNumber-Ct5BCuA1.js → _exerciseNumber_._stepNumber-B5pmJ29o.js} +2 -2
  6. package/build/client/assets/_exerciseNumber_._stepNumber-B5pmJ29o.js.map +1 -0
  7. package/build/client/assets/{_exerciseNumber_.finished-C9TSc48F.js → _exerciseNumber_.finished-Q9qnPuZX.js} +2 -2
  8. package/build/client/assets/_exerciseNumber_.finished-Q9qnPuZX.js.map +1 -0
  9. package/build/client/assets/_layout-AgYGL72C.js +6 -0
  10. package/build/client/assets/_layout-AgYGL72C.js.map +1 -0
  11. package/build/client/assets/{_layout-DLIzcS5v.js → _layout-BUs3av-e.js} +2 -2
  12. package/build/client/assets/_layout-BUs3av-e.js.map +1 -0
  13. package/build/client/assets/{_layout-CZ3fjUvs.js → _layout-C8uU4Hwj.js} +2 -2
  14. package/build/client/assets/{_layout-CZ3fjUvs.js.map → _layout-C8uU4Hwj.js.map} +1 -1
  15. package/build/client/assets/_layout-DLVrpOki.js +2 -0
  16. package/build/client/assets/_layout-DLVrpOki.js.map +1 -0
  17. package/build/client/assets/accordion-BroSqIct.js +2 -0
  18. package/build/client/assets/accordion-BroSqIct.js.map +1 -0
  19. package/build/client/assets/{account-LnI_Eq0t.js → account-7o6O4ruO.js} +2 -2
  20. package/build/client/assets/{account-LnI_Eq0t.js.map → account-7o6O4ruO.js.map} +1 -1
  21. package/build/client/assets/app-BiWJY58g.js +2 -0
  22. package/build/client/assets/app-BiWJY58g.js.map +1 -0
  23. package/build/client/assets/{button-BA3iiLRs.js → button-BklqyTPS.js} +2 -2
  24. package/build/client/assets/{button-BA3iiLRs.js.map → button-BklqyTPS.js.map} +1 -1
  25. package/build/client/assets/{client-hints-DLYDs4RF.js → client-hints-DNUUFGmB.js} +2 -2
  26. package/build/client/assets/{client-hints-DLYDs4RF.js.map → client-hints-DNUUFGmB.js.map} +1 -1
  27. package/build/client/assets/{components-wgHiPsTg.js → components-CME-nGId.js} +3 -3
  28. package/build/client/assets/{components-wgHiPsTg.js.map → components-CME-nGId.js.map} +1 -1
  29. package/build/client/assets/diff-CpFxuKA2.js +2 -0
  30. package/build/client/assets/diff-CpFxuKA2.js.map +1 -0
  31. package/build/client/assets/diff-Cw8ktQ1-.js +2 -0
  32. package/build/client/assets/{diff-CPrD1rHd.js.map → diff-Cw8ktQ1-.js.map} +1 -1
  33. package/build/client/assets/discord-CHP4_JLJ.js +2 -0
  34. package/build/client/assets/discord-CHP4_JLJ.js.map +1 -0
  35. package/build/client/assets/{discord-BgaWmFRC.js → discord-Dq4e30wV.js} +2 -2
  36. package/build/client/assets/{discord-BgaWmFRC.js.map → discord-Dq4e30wV.js.map} +1 -1
  37. package/build/client/assets/{entry.client-Cs8lBz8l.js → entry.client-3M2p-8I3.js} +2 -2
  38. package/build/client/assets/{entry.client-Cs8lBz8l.js.map → entry.client-3M2p-8I3.js.map} +1 -1
  39. package/build/client/assets/{epic-video-CfelX9-n.js → epic-video-iluUs1-s.js} +2 -2
  40. package/build/client/assets/{epic-video-CfelX9-n.js.map → epic-video-iluUs1-s.js.map} +1 -1
  41. package/build/client/assets/{error-boundary-BVTbN8PZ.js → error-boundary-DDTvdkB4.js} +2 -2
  42. package/build/client/assets/{error-boundary-BVTbN8PZ.js.map → error-boundary-DDTvdkB4.js.map} +1 -1
  43. package/build/client/assets/{finished-C0mN8TiU.js → finished-Bm-bCUU2.js} +2 -2
  44. package/build/client/assets/{finished-C0mN8TiU.js.map → finished-Bm-bCUU2.js.map} +1 -1
  45. package/build/client/assets/{index-Czg1ruVn.js → index-1cKOJFpX.js} +2 -2
  46. package/build/client/assets/{index-Czg1ruVn.js.map → index-1cKOJFpX.js.map} +1 -1
  47. package/build/client/assets/{index-DjzedX4O.js → index-B-hHvmeV.js} +2 -2
  48. package/build/client/assets/{index-DjzedX4O.js.map → index-B-hHvmeV.js.map} +1 -1
  49. package/build/client/assets/{index-yEAxvbDV.js → index-BATSX33w.js} +2 -2
  50. package/build/client/assets/{index-yEAxvbDV.js.map → index-BATSX33w.js.map} +1 -1
  51. package/build/client/assets/{index-C6ToujzV.js → index-BXWoOGxB.js} +4 -4
  52. package/build/client/assets/{index-C6ToujzV.js.map → index-BXWoOGxB.js.map} +1 -1
  53. package/build/client/assets/index-Dm1ll1kT.js +2 -0
  54. package/build/client/assets/index-Dm1ll1kT.js.map +1 -0
  55. package/build/client/assets/{index-D6ukHE4T.js → index-Dx5GmdYq.js} +2 -2
  56. package/build/client/assets/{index-D6ukHE4T.js.map → index-Dx5GmdYq.js.map} +1 -1
  57. package/build/client/assets/{index-De7yI02n.js → index-Tfdnz1AB.js} +2 -2
  58. package/build/client/assets/{index-De7yI02n.js.map → index-Tfdnz1AB.js.map} +1 -1
  59. package/build/client/assets/index-hogig2HK.js +2 -0
  60. package/build/client/assets/index-hogig2HK.js.map +1 -0
  61. package/build/client/assets/{loading-B0uKxERz.js → loading-C5uX0jJw.js} +2 -2
  62. package/build/client/assets/{loading-B0uKxERz.js.map → loading-C5uX0jJw.js.map} +1 -1
  63. package/build/client/assets/{login-SJlLMYmL.js → login-4cvVFzF8.js} +2 -2
  64. package/build/client/assets/{login-SJlLMYmL.js.map → login-4cvVFzF8.js.map} +1 -1
  65. package/build/client/assets/manifest-746b2907.js +1 -0
  66. package/build/client/assets/{mdx-CQW0I4So.js → mdx-M0kcP-mP.js} +2 -2
  67. package/build/client/assets/{mdx-CQW0I4So.js.map → mdx-M0kcP-mP.js.map} +1 -1
  68. package/build/client/assets/{misc-S5ZD98sI.js → misc-ENVX3CWf.js} +2 -2
  69. package/build/client/assets/{misc-S5ZD98sI.js.map → misc-ENVX3CWf.js.map} +1 -1
  70. package/build/client/assets/{nav-chevrons-DaXg0NPS.js → nav-chevrons-B82nbdyj.js} +2 -2
  71. package/build/client/assets/{nav-chevrons-DaXg0NPS.js.map → nav-chevrons-B82nbdyj.js.map} +1 -1
  72. package/build/client/assets/{onboarding-BXGyEPXy.js → onboarding-Bib-wh6d.js} +2 -2
  73. package/build/client/assets/{onboarding-BXGyEPXy.js.map → onboarding-Bib-wh6d.js.map} +1 -1
  74. package/build/client/assets/presence-Cr--lRCr.js +28 -0
  75. package/build/client/assets/{presence-CW1_eiIo.js.map → presence-Cr--lRCr.js.map} +1 -1
  76. package/build/client/assets/preview-CqrRe2BV.js +2 -0
  77. package/build/client/assets/preview-CqrRe2BV.js.map +1 -0
  78. package/build/client/assets/{progress-BwanvUpB.js → progress-BsY6hGPp.js} +2 -2
  79. package/build/client/assets/{progress-BwanvUpB.js.map → progress-BsY6hGPp.js.map} +1 -1
  80. package/build/client/assets/{progress-bar-wMXWRGq0.js → progress-bar-CSvo1ZXP.js} +2 -2
  81. package/build/client/assets/{progress-bar-wMXWRGq0.js.map → progress-bar-CSvo1ZXP.js.map} +1 -1
  82. package/build/client/assets/{request-info-DHtGM4FI.js → request-info-CEhUGODY.js} +2 -2
  83. package/build/client/assets/{request-info-DHtGM4FI.js.map → request-info-CEhUGODY.js.map} +1 -1
  84. package/build/client/assets/{root-BUqeXmeK.js → root-Tcnfz99O.js} +3 -3
  85. package/build/client/assets/root-Tcnfz99O.js.map +1 -0
  86. package/build/client/assets/set-playground-Cdy8VlVD.js +2 -0
  87. package/build/client/assets/set-playground-Cdy8VlVD.js.map +1 -0
  88. package/build/client/assets/{support-DilzTPHE.js → support-hcqGIpir.js} +2 -2
  89. package/build/client/assets/{support-DilzTPHE.js.map → support-hcqGIpir.js.map} +1 -1
  90. package/build/client/assets/tailwind-DTowOebn.css +1 -0
  91. package/build/client/assets/test-D9HsTvpe.js +2 -0
  92. package/build/client/assets/test-D9HsTvpe.js.map +1 -0
  93. package/build/client/assets/tests-CmNNBElK.js +4 -0
  94. package/build/client/assets/tests-CmNNBElK.js.map +1 -0
  95. package/build/client/assets/{tooltip-BtzSIxlB.js → tooltip-BiHTe_7F.js} +2 -2
  96. package/build/client/assets/{tooltip-BtzSIxlB.js.map → tooltip-BiHTe_7F.js.map} +1 -1
  97. package/build/client/assets/{use-event-source-ySol3hbz.js → use-event-source-A_0lEOPX.js} +2 -2
  98. package/build/client/assets/{use-event-source-ySol3hbz.js.map → use-event-source-A_0lEOPX.js.map} +1 -1
  99. package/build/client/assets/use-hydrated-Citou692.js +2 -0
  100. package/build/client/assets/use-hydrated-Citou692.js.map +1 -0
  101. package/build/client/assets/{user-CdUDQ7a8.js → user-D6tTg1yS.js} +2 -2
  102. package/build/client/assets/{user-CdUDQ7a8.js.map → user-D6tTg1yS.js.map} +1 -1
  103. package/build/client/icons.svg +1 -1
  104. package/build/server/index.js +6134 -5859
  105. package/build/server/index.js.map +1 -1
  106. package/package.json +3 -3
  107. package/build/client/assets/_-DYArYM0Z.js.map +0 -1
  108. package/build/client/assets/_exerciseNumber-BLQUCLPr.js +0 -2
  109. package/build/client/assets/_exerciseNumber-BLQUCLPr.js.map +0 -1
  110. package/build/client/assets/_exerciseNumber_._stepNumber-Ct5BCuA1.js.map +0 -1
  111. package/build/client/assets/_exerciseNumber_.finished-C9TSc48F.js.map +0 -1
  112. package/build/client/assets/_layout-B789acDk.js +0 -6
  113. package/build/client/assets/_layout-B789acDk.js.map +0 -1
  114. package/build/client/assets/_layout-DLIzcS5v.js.map +0 -1
  115. package/build/client/assets/_layout-DhP5RhPk.js +0 -4
  116. package/build/client/assets/_layout-DhP5RhPk.js.map +0 -1
  117. package/build/client/assets/diff-4FQLirNf.js +0 -2
  118. package/build/client/assets/diff-4FQLirNf.js.map +0 -1
  119. package/build/client/assets/diff-CPrD1rHd.js +0 -2
  120. package/build/client/assets/discord-Dk1wbXOn.js +0 -2
  121. package/build/client/assets/discord-Dk1wbXOn.js.map +0 -1
  122. package/build/client/assets/manifest-73106676.js +0 -1
  123. package/build/client/assets/presence-CW1_eiIo.js +0 -28
  124. package/build/client/assets/root-BUqeXmeK.js.map +0 -1
  125. package/build/client/assets/tailwind-BZciDTNv.css +0 -1
@@ -1,2 +1,2 @@
1
- import{r}from"./index-Czg1ruVn.js";const l=r.createContext(new Map);l.Provider;function m(n,{event:s="message",init:t}={}){let o=r.useContext(l),[d,a]=r.useState(null);return r.useEffect(()=>{let u=[n.toString(),t==null?void 0:t.withCredentials].join("::"),e=o.get(u)??{count:0,source:new EventSource(n,t)};++e.count,o.set(u,e),e.source.addEventListener(s,c),a(null);function c(E){a(E.data||"UNKNOWN_EVENT_DATA")}return()=>{e.source.removeEventListener(s,c),--e.count,e.count<=0&&(e.source.close(),o.delete(u))}},[n,s,t,o]),d}export{m as u};
2
- //# sourceMappingURL=use-event-source-ySol3hbz.js.map
1
+ import{r}from"./index-1cKOJFpX.js";const l=r.createContext(new Map);l.Provider;function m(n,{event:s="message",init:t}={}){let o=r.useContext(l),[d,a]=r.useState(null);return r.useEffect(()=>{let u=[n.toString(),t==null?void 0:t.withCredentials].join("::"),e=o.get(u)??{count:0,source:new EventSource(n,t)};++e.count,o.set(u,e),e.source.addEventListener(s,c),a(null);function c(E){a(E.data||"UNKNOWN_EVENT_DATA")}return()=>{e.source.removeEventListener(s,c),--e.count,e.count<=0&&(e.source.close(),o.delete(u))}},[n,s,t,o]),d}export{m as u};
2
+ //# sourceMappingURL=use-event-source-A_0lEOPX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-event-source-ySol3hbz.js","sources":["../../../../../node_modules/remix-utils/build/react/use-event-source.js"],"sourcesContent":["import { useEffect, useState, createContext, useContext } from \"react\";\nconst context = createContext(new Map());\nexport const EventSourceProvider = context.Provider;\n/**\n * Subscribe to an event source and return the latest event.\n * @param url The URL of the event source to connect to\n * @param options The options to pass to the EventSource constructor\n * @returns The last event received from the server\n */\nexport function useEventSource(url, { event = \"message\", init } = {}) {\n let map = useContext(context);\n let [data, setData] = useState(null);\n useEffect(() => {\n let key = [url.toString(), init?.withCredentials].join(\"::\");\n let value = map.get(key) ?? {\n count: 0,\n source: new EventSource(url, init),\n };\n ++value.count;\n map.set(key, value);\n value.source.addEventListener(event, handler);\n // rest data if dependencies change\n setData(null);\n function handler(event) {\n setData(event.data || \"UNKNOWN_EVENT_DATA\");\n }\n return () => {\n value.source.removeEventListener(event, handler);\n --value.count;\n if (value.count <= 0) {\n value.source.close();\n map.delete(key);\n }\n };\n }, [url, event, init, map]);\n return data;\n}\n"],"names":["context","createContext","useEventSource","url","event","init","map","useContext","data","setData","useState","useEffect","key","value","handler"],"mappings":"mCACA,MAAMA,EAAUC,EAAa,cAAC,IAAI,GAAK,EACJD,EAAQ,SAOpC,SAASE,EAAeC,EAAK,CAAE,MAAAC,EAAQ,UAAW,KAAAC,CAAM,EAAG,GAAI,CAClE,IAAIC,EAAMC,aAAWP,CAAO,EACxB,CAACQ,EAAMC,CAAO,EAAIC,EAAQ,SAAC,IAAI,EACnCC,OAAAA,EAAAA,UAAU,IAAM,CACZ,IAAIC,EAAM,CAACT,EAAI,SAAU,EAAEE,GAAA,YAAAA,EAAM,eAAe,EAAE,KAAK,IAAI,EACvDQ,EAAQP,EAAI,IAAIM,CAAG,GAAK,CACxB,MAAO,EACP,OAAQ,IAAI,YAAYT,EAAKE,CAAI,CAC7C,EACQ,EAAEQ,EAAM,MACRP,EAAI,IAAIM,EAAKC,CAAK,EAClBA,EAAM,OAAO,iBAAiBT,EAAOU,CAAO,EAE5CL,EAAQ,IAAI,EACZ,SAASK,EAAQV,EAAO,CACpBK,EAAQL,EAAM,MAAQ,oBAAoB,CAC7C,CACD,MAAO,IAAM,CACTS,EAAM,OAAO,oBAAoBT,EAAOU,CAAO,EAC/C,EAAED,EAAM,MACJA,EAAM,OAAS,IACfA,EAAM,OAAO,QACbP,EAAI,OAAOM,CAAG,EAE9B,CACK,EAAE,CAACT,EAAKC,EAAOC,EAAMC,CAAG,CAAC,EACnBE,CACX","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"use-event-source-A_0lEOPX.js","sources":["../../../../../node_modules/remix-utils/build/react/use-event-source.js"],"sourcesContent":["import { useEffect, useState, createContext, useContext } from \"react\";\nconst context = createContext(new Map());\nexport const EventSourceProvider = context.Provider;\n/**\n * Subscribe to an event source and return the latest event.\n * @param url The URL of the event source to connect to\n * @param options The options to pass to the EventSource constructor\n * @returns The last event received from the server\n */\nexport function useEventSource(url, { event = \"message\", init } = {}) {\n let map = useContext(context);\n let [data, setData] = useState(null);\n useEffect(() => {\n let key = [url.toString(), init?.withCredentials].join(\"::\");\n let value = map.get(key) ?? {\n count: 0,\n source: new EventSource(url, init),\n };\n ++value.count;\n map.set(key, value);\n value.source.addEventListener(event, handler);\n // rest data if dependencies change\n setData(null);\n function handler(event) {\n setData(event.data || \"UNKNOWN_EVENT_DATA\");\n }\n return () => {\n value.source.removeEventListener(event, handler);\n --value.count;\n if (value.count <= 0) {\n value.source.close();\n map.delete(key);\n }\n };\n }, [url, event, init, map]);\n return data;\n}\n"],"names":["context","createContext","useEventSource","url","event","init","map","useContext","data","setData","useState","useEffect","key","value","handler"],"mappings":"mCACA,MAAMA,EAAUC,EAAa,cAAC,IAAI,GAAK,EACJD,EAAQ,SAOpC,SAASE,EAAeC,EAAK,CAAE,MAAAC,EAAQ,UAAW,KAAAC,CAAM,EAAG,GAAI,CAClE,IAAIC,EAAMC,aAAWP,CAAO,EACxB,CAACQ,EAAMC,CAAO,EAAIC,EAAQ,SAAC,IAAI,EACnCC,OAAAA,EAAAA,UAAU,IAAM,CACZ,IAAIC,EAAM,CAACT,EAAI,SAAU,EAAEE,GAAA,YAAAA,EAAM,eAAe,EAAE,KAAK,IAAI,EACvDQ,EAAQP,EAAI,IAAIM,CAAG,GAAK,CACxB,MAAO,EACP,OAAQ,IAAI,YAAYT,EAAKE,CAAI,CAC7C,EACQ,EAAEQ,EAAM,MACRP,EAAI,IAAIM,EAAKC,CAAK,EAClBA,EAAM,OAAO,iBAAiBT,EAAOU,CAAO,EAE5CL,EAAQ,IAAI,EACZ,SAASK,EAAQV,EAAO,CACpBK,EAAQL,EAAM,MAAQ,oBAAoB,CAC7C,CACD,MAAO,IAAM,CACTS,EAAM,OAAO,oBAAoBT,EAAOU,CAAO,EAC/C,EAAED,EAAM,MACJA,EAAM,OAAS,IACfA,EAAM,OAAO,QACbP,EAAI,OAAOM,CAAG,EAE9B,CACK,EAAE,CAACT,EAAKC,EAAOC,EAAMC,CAAG,CAAC,EACnBE,CACX","x_google_ignoreList":[0]}
@@ -0,0 +1,2 @@
1
+ import{r}from"./index-1cKOJFpX.js";function e(){return()=>{}}function u(){return r.useSyncExternalStore(e,()=>!0,()=>!1)}export{u};
2
+ //# sourceMappingURL=use-hydrated-Citou692.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-hydrated-Citou692.js","sources":["../../../../../node_modules/remix-utils/build/react/use-hydrated.js"],"sourcesContent":["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"],"names":["subscribe","useHydrated","useSyncExternalStore"],"mappings":"mCACA,SAASA,GAAY,CACjB,MAAO,IAAM,CAAA,CACjB,CAkBO,SAASC,GAAc,CAC1B,OAAOC,EAAoB,qBAACF,EAAW,IAAM,GAAM,IAAM,EAAK,CAClE","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- import{d as r}from"./components-wgHiPsTg.js";function s(){const e=r("root");return e==null?void 0:e.user}function t(){const e=s();if(!e)throw new Error("useUser requires a user. If the user is optional, use useOptionalUser instead.");return e}function u(){const e=r("root");return e==null?void 0:e.discordMember}export{u as a,s as b,t as u};
2
- //# sourceMappingURL=user-CdUDQ7a8.js.map
1
+ import{e as r}from"./components-CME-nGId.js";function s(){const e=r("root");return e==null?void 0:e.user}function t(){const e=s();if(!e)throw new Error("useUser requires a user. If the user is optional, use useOptionalUser instead.");return e}function u(){const e=r("root");return e==null?void 0:e.discordMember}export{u as a,s as b,t as u};
2
+ //# sourceMappingURL=user-D6tTg1yS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-CdUDQ7a8.js","sources":["../../../app/components/user.tsx"],"sourcesContent":["import { useRouteLoaderData } from '@remix-run/react'\nimport { type loader as rootLoader } from '#app/root.tsx'\n\nexport function useOptionalUser() {\n\tconst data = useRouteLoaderData<typeof rootLoader>('root')\n\treturn data?.user\n}\n\nexport function useUser() {\n\tconst user = useOptionalUser()\n\tif (!user) {\n\t\tthrow new Error(\n\t\t\t'useUser requires a user. If the user is optional, use useOptionalUser instead.',\n\t\t)\n\t}\n\treturn user\n}\n\nexport function useOptionalDiscordMember() {\n\tconst data = useRouteLoaderData<typeof rootLoader>('root')\n\treturn data?.discordMember\n}\n\nexport function useDiscordMember() {\n\tconst discordMember = useOptionalDiscordMember()\n\tif (!discordMember) {\n\t\tthrow new Error(\n\t\t\t'useDiscordMember requires a discordMember. If the discordMember is optional, use useOptionalDiscordMember instead.',\n\t\t)\n\t}\n\treturn discordMember\n}\n"],"names":["useOptionalUser","data","useRouteLoaderData","useUser","user","useOptionalDiscordMember"],"mappings":"6CAGO,SAASA,GAAkB,CAC3B,MAAAC,EAAOC,EAAsC,MAAM,EACzD,OAAOD,GAAA,YAAAA,EAAM,IACd,CAEO,SAASE,GAAU,CACzB,MAAMC,EAAOJ,IACb,GAAI,CAACI,EACJ,MAAM,IAAI,MACT,gFAAA,EAGK,OAAAA,CACR,CAEO,SAASC,GAA2B,CACpC,MAAAJ,EAAOC,EAAsC,MAAM,EACzD,OAAOD,GAAA,YAAAA,EAAM,aACd"}
1
+ {"version":3,"file":"user-D6tTg1yS.js","sources":["../../../app/components/user.tsx"],"sourcesContent":["import { useRouteLoaderData } from '@remix-run/react'\nimport { type loader as rootLoader } from '#app/root.tsx'\n\nexport function useOptionalUser() {\n\tconst data = useRouteLoaderData<typeof rootLoader>('root')\n\treturn data?.user\n}\n\nexport function useUser() {\n\tconst user = useOptionalUser()\n\tif (!user) {\n\t\tthrow new Error(\n\t\t\t'useUser requires a user. If the user is optional, use useOptionalUser instead.',\n\t\t)\n\t}\n\treturn user\n}\n\nexport function useOptionalDiscordMember() {\n\tconst data = useRouteLoaderData<typeof rootLoader>('root')\n\treturn data?.discordMember\n}\n\nexport function useDiscordMember() {\n\tconst discordMember = useOptionalDiscordMember()\n\tif (!discordMember) {\n\t\tthrow new Error(\n\t\t\t'useDiscordMember requires a discordMember. If the discordMember is optional, use useOptionalDiscordMember instead.',\n\t\t)\n\t}\n\treturn discordMember\n}\n"],"names":["useOptionalUser","data","useRouteLoaderData","useUser","user","useOptionalDiscordMember"],"mappings":"6CAGO,SAASA,GAAkB,CAC3B,MAAAC,EAAOC,EAAsC,MAAM,EACzD,OAAOD,GAAA,YAAAA,EAAM,IACd,CAEO,SAASE,GAAU,CACzB,MAAMC,EAAOJ,IACb,GAAI,CAACI,EACJ,MAAM,IAAI,MACT,gFAAA,EAGK,OAAAA,CACR,CAEO,SAASC,GAA2B,CACpC,MAAAJ,EAAOC,EAAsC,MAAM,EACzD,OAAOD,GAAA,YAAAA,EAAM,aACd"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
4
4
  <defs>
5
- <symbol viewBox="0 0 24 24" id="keyboard" fill="none">
5
+ <symbol viewBox="0 0 24 24" id="Keyboard" fill="none">
6
6
  <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"
7
7
  d="M7.75 12.75h8.5m-8.5 3.5h8.5m-4.5-6.5h-5a2 2 0 0 0-2 2v5.5a2 2 0 0 0 2 2h10.5a2 2 0 0 0 2-2v-5.5a2 2 0 0 0-2-2h-5.5Zm0 0v-1.5a1 1 0 0 1 1-1h4.5a1 1 0 0 0 1-1v-1.5" />
8
8
  </symbol>