@epic-web/workshop-app 6.69.1 → 6.71.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 (225) hide show
  1. package/build/client/assets/{_-BnmXymJG.js → _-dWSrc4Ox.js} +2 -2
  2. package/build/client/assets/{_-BnmXymJG.js.map → _-dWSrc4Ox.js.map} +1 -1
  3. package/build/client/assets/{_basePickBy-D6pFkWVF.js → _basePickBy-D77BeQbR.js} +2 -2
  4. package/build/client/assets/{_basePickBy-D6pFkWVF.js.map → _basePickBy-D77BeQbR.js.map} +1 -1
  5. package/build/client/assets/{_baseUniq-BbljtzXr.js → _baseUniq-DTO-tFvD.js} +2 -2
  6. package/build/client/assets/{_baseUniq-BbljtzXr.js.map → _baseUniq-DTO-tFvD.js.map} +1 -1
  7. package/build/client/assets/{_exerciseNumber-77g7-L-x.js → _exerciseNumber-DgMb13KP.js} +2 -2
  8. package/build/client/assets/{_exerciseNumber-77g7-L-x.js.map → _exerciseNumber-DgMb13KP.js.map} +1 -1
  9. package/build/client/assets/{_exerciseNumber_._stepNumber.index-DYb7kg06.js → _exerciseNumber_._stepNumber.index-WLW-sVZ0.js} +2 -2
  10. package/build/client/assets/{_exerciseNumber_._stepNumber.index-DYb7kg06.js.map → _exerciseNumber_._stepNumber.index-WLW-sVZ0.js.map} +1 -1
  11. package/build/client/assets/{_exerciseNumber_.finished-CGoPhVVF.js → _exerciseNumber_.finished-DkAs61X_.js} +2 -2
  12. package/build/client/assets/_exerciseNumber_.finished-DkAs61X_.js.map +1 -0
  13. package/build/client/assets/_extra-fwsy2qkP.js +2 -0
  14. package/build/client/assets/_extra-fwsy2qkP.js.map +1 -0
  15. package/build/client/assets/_layout-BQ8VYaze.js +2 -0
  16. package/build/client/assets/_layout-BQ8VYaze.js.map +1 -0
  17. package/build/client/assets/_layout-DR0LQ06M.js +2 -0
  18. package/build/client/assets/_layout-DR0LQ06M.js.map +1 -0
  19. package/build/client/assets/{accordion-CzXT3k43.js → accordion-CQ7oujC6.js} +2 -2
  20. package/build/client/assets/{accordion-CzXT3k43.js.map → accordion-CQ7oujC6.js.map} +1 -1
  21. package/build/client/assets/{account-Cs3Te0is.js → account-C96cpeZR.js} +2 -2
  22. package/build/client/assets/{account-Cs3Te0is.js.map → account-C96cpeZR.js.map} +1 -1
  23. package/build/client/assets/app-CJniokic.js +2 -0
  24. package/build/client/assets/{app-TcFAQB2o.js.map → app-CJniokic.js.map} +1 -1
  25. package/build/client/assets/{arc-BHxP6xxO.js → arc-ChVm3d4e.js} +2 -2
  26. package/build/client/assets/{arc-BHxP6xxO.js.map → arc-ChVm3d4e.js.map} +1 -1
  27. package/build/client/assets/{architectureDiagram-VXUJARFQ-oEJHJt7x.js → architectureDiagram-VXUJARFQ-DkqyKZ50.js} +2 -2
  28. package/build/client/assets/{architectureDiagram-VXUJARFQ-oEJHJt7x.js.map → architectureDiagram-VXUJARFQ-DkqyKZ50.js.map} +1 -1
  29. package/build/client/assets/{blockDiagram-VD42YOAC-7xzSJqoM.js → blockDiagram-VD42YOAC-Cqa8Z0qT.js} +2 -2
  30. package/build/client/assets/{blockDiagram-VD42YOAC-7xzSJqoM.js.map → blockDiagram-VD42YOAC-Cqa8Z0qT.js.map} +1 -1
  31. package/build/client/assets/{button-CIlVtsau.js → button-Cd-ekki5.js} +2 -2
  32. package/build/client/assets/{button-CIlVtsau.js.map → button-Cd-ekki5.js.map} +1 -1
  33. package/build/client/assets/{c4Diagram-YG6GDRKO-BUdT9rCJ.js → c4Diagram-YG6GDRKO-BHQRSJ1P.js} +2 -2
  34. package/build/client/assets/{c4Diagram-YG6GDRKO-BUdT9rCJ.js.map → c4Diagram-YG6GDRKO-BHQRSJ1P.js.map} +1 -1
  35. package/build/client/assets/{cache-MJu_dqFS.js → cache-CAr50MIB.js} +2 -2
  36. package/build/client/assets/{cache-MJu_dqFS.js.map → cache-CAr50MIB.js.map} +1 -1
  37. package/build/client/assets/channel-B7uExpgv.js +2 -0
  38. package/build/client/assets/{channel-BLJkdd1O.js.map → channel-B7uExpgv.js.map} +1 -1
  39. package/build/client/assets/{chunk-4BX2VUAB-qrzenNNi.js → chunk-4BX2VUAB-BOJM4J9w.js} +2 -2
  40. package/build/client/assets/{chunk-4BX2VUAB-qrzenNNi.js.map → chunk-4BX2VUAB-BOJM4J9w.js.map} +1 -1
  41. package/build/client/assets/{chunk-55IACEB6-BOr0rES3.js → chunk-55IACEB6-CO_GT_87.js} +2 -2
  42. package/build/client/assets/{chunk-55IACEB6-BOr0rES3.js.map → chunk-55IACEB6-CO_GT_87.js.map} +1 -1
  43. package/build/client/assets/{chunk-B4BG7PRW-C2qQTBXm.js → chunk-B4BG7PRW-CqfZTumF.js} +2 -2
  44. package/build/client/assets/{chunk-B4BG7PRW-C2qQTBXm.js.map → chunk-B4BG7PRW-CqfZTumF.js.map} +1 -1
  45. package/build/client/assets/{chunk-DI55MBZ5-CSfEUcAq.js → chunk-DI55MBZ5-CxSXOmoK.js} +2 -2
  46. package/build/client/assets/{chunk-DI55MBZ5-CSfEUcAq.js.map → chunk-DI55MBZ5-CxSXOmoK.js.map} +1 -1
  47. package/build/client/assets/{chunk-FMBD7UC4-CyJoWksV.js → chunk-FMBD7UC4-ChHVMdVq.js} +2 -2
  48. package/build/client/assets/{chunk-FMBD7UC4-CyJoWksV.js.map → chunk-FMBD7UC4-ChHVMdVq.js.map} +1 -1
  49. package/build/client/assets/{chunk-QN33PNHL-BpbvTQdp.js → chunk-QN33PNHL-DKEBwj3f.js} +2 -2
  50. package/build/client/assets/{chunk-QN33PNHL-BpbvTQdp.js.map → chunk-QN33PNHL-DKEBwj3f.js.map} +1 -1
  51. package/build/client/assets/{chunk-QZHKN3VN-C2RN0CtQ.js → chunk-QZHKN3VN-Cu5tuE5n.js} +2 -2
  52. package/build/client/assets/{chunk-QZHKN3VN-C2RN0CtQ.js.map → chunk-QZHKN3VN-Cu5tuE5n.js.map} +1 -1
  53. package/build/client/assets/{chunk-TZMSLE5B-0z8lxtDn.js → chunk-TZMSLE5B-BpvH1fVS.js} +2 -2
  54. package/build/client/assets/{chunk-TZMSLE5B-0z8lxtDn.js.map → chunk-TZMSLE5B-BpvH1fVS.js.map} +1 -1
  55. package/build/client/assets/classDiagram-2ON5EDUG-BjjlpwdW.js +2 -0
  56. package/build/client/assets/{classDiagram-2ON5EDUG-_kfNpv_f.js.map → classDiagram-2ON5EDUG-BjjlpwdW.js.map} +1 -1
  57. package/build/client/assets/classDiagram-v2-WZHVMYZB-BjjlpwdW.js +2 -0
  58. package/build/client/assets/{classDiagram-v2-WZHVMYZB-_kfNpv_f.js.map → classDiagram-v2-WZHVMYZB-BjjlpwdW.js.map} +1 -1
  59. package/build/client/assets/clone-DRkw5ylZ.js +2 -0
  60. package/build/client/assets/{clone-CztDUJhf.js.map → clone-DRkw5ylZ.js.map} +1 -1
  61. package/build/client/assets/{cose-bilkent-S5V4N54A-DQM-J4RL.js → cose-bilkent-S5V4N54A-9tAqXXXx.js} +2 -2
  62. package/build/client/assets/{cose-bilkent-S5V4N54A-DQM-J4RL.js.map → cose-bilkent-S5V4N54A-9tAqXXXx.js.map} +1 -1
  63. package/build/client/assets/{dagre-6UL2VRFP-BdfvKPZ9.js → dagre-6UL2VRFP-DdQahM76.js} +2 -2
  64. package/build/client/assets/{dagre-6UL2VRFP-BdfvKPZ9.js.map → dagre-6UL2VRFP-DdQahM76.js.map} +1 -1
  65. package/build/client/assets/{db-x6v-Uxrh.js → db-DAnX-T3_.js} +2 -2
  66. package/build/client/assets/{db-x6v-Uxrh.js.map → db-DAnX-T3_.js.map} +1 -1
  67. package/build/client/assets/{diagram-PSM6KHXK-CgwBEb3G.js → diagram-PSM6KHXK-D2ghOCFR.js} +2 -2
  68. package/build/client/assets/{diagram-PSM6KHXK-CgwBEb3G.js.map → diagram-PSM6KHXK-D2ghOCFR.js.map} +1 -1
  69. package/build/client/assets/{diagram-QEK2KX5R-DEaXdLXz.js → diagram-QEK2KX5R-CVdPnwKa.js} +2 -2
  70. package/build/client/assets/{diagram-QEK2KX5R-DEaXdLXz.js.map → diagram-QEK2KX5R-CVdPnwKa.js.map} +1 -1
  71. package/build/client/assets/{diagram-S2PKOQOG-Dq5QQWqq.js → diagram-S2PKOQOG-ByHcRNai.js} +2 -2
  72. package/build/client/assets/{diagram-S2PKOQOG-Dq5QQWqq.js.map → diagram-S2PKOQOG-ByHcRNai.js.map} +1 -1
  73. package/build/client/assets/{dialog-DnpUg3VT.js → dialog-CzO65Z5w.js} +3 -3
  74. package/build/client/assets/{dialog-DnpUg3VT.js.map → dialog-CzO65Z5w.js.map} +1 -1
  75. package/build/client/assets/{diff-CxEbhF8Q.js → diff-BhWzqoVN.js} +2 -2
  76. package/build/client/assets/{diff-CxEbhF8Q.js.map → diff-BhWzqoVN.js.map} +1 -1
  77. package/build/client/assets/{diff-eAvgXb3f.js → diff-DC-wn6-x.js} +2 -2
  78. package/build/client/assets/{diff-eAvgXb3f.js.map → diff-DC-wn6-x.js.map} +1 -1
  79. package/build/client/assets/{discord-DlU9y5Iz.js → discord-BJkw0IrB.js} +2 -2
  80. package/build/client/assets/{discord-DlU9y5Iz.js.map → discord-BJkw0IrB.js.map} +1 -1
  81. package/build/client/assets/{discord-CuxZiU8E.js → discord-r3m19sUM.js} +2 -2
  82. package/build/client/assets/discord-r3m19sUM.js.map +1 -0
  83. package/build/client/assets/{epic-video-Bx8Ctiez.js → epic-video-8Hv_HMMr.js} +2 -2
  84. package/build/client/assets/{epic-video-Bx8Ctiez.js.map → epic-video-8Hv_HMMr.js.map} +1 -1
  85. package/build/client/assets/{epic-video-BVcJzJzi.js → epic-video-D0drHmgC.js} +2 -2
  86. package/build/client/assets/{epic-video-BVcJzJzi.js.map → epic-video-D0drHmgC.js.map} +1 -1
  87. package/build/client/assets/{erDiagram-Q2GNP2WA-CW73Zw0q.js → erDiagram-Q2GNP2WA-CBRWzQzK.js} +2 -2
  88. package/build/client/assets/{erDiagram-Q2GNP2WA-CW73Zw0q.js.map → erDiagram-Q2GNP2WA-CBRWzQzK.js.map} +1 -1
  89. package/build/client/assets/{error-boundary-DFBd6s0g.js → error-boundary-DVp6wKiz.js} +2 -2
  90. package/build/client/assets/{error-boundary-DFBd6s0g.js.map → error-boundary-DVp6wKiz.js.map} +1 -1
  91. package/build/client/assets/{finished-CmV4aFjA.js → finished-CiVHAeSV.js} +2 -2
  92. package/build/client/assets/{finished-CmV4aFjA.js.map → finished-CiVHAeSV.js.map} +1 -1
  93. package/build/client/assets/{flowDiagram-NV44I4VS-BbxV9VQf.js → flowDiagram-NV44I4VS-L32__tfK.js} +2 -2
  94. package/build/client/assets/{flowDiagram-NV44I4VS-BbxV9VQf.js.map → flowDiagram-NV44I4VS-L32__tfK.js.map} +1 -1
  95. package/build/client/assets/{ganttDiagram-JELNMOA3-CRBJBlE5.js → ganttDiagram-JELNMOA3-Dpp5PKJc.js} +2 -2
  96. package/build/client/assets/{ganttDiagram-JELNMOA3-CRBJBlE5.js.map → ganttDiagram-JELNMOA3-Dpp5PKJc.js.map} +1 -1
  97. package/build/client/assets/{gitGraphDiagram-NY62KEGX-CU0X3hfs.js → gitGraphDiagram-NY62KEGX-zn4IXANG.js} +2 -2
  98. package/build/client/assets/{gitGraphDiagram-NY62KEGX-CU0X3hfs.js.map → gitGraphDiagram-NY62KEGX-zn4IXANG.js.map} +1 -1
  99. package/build/client/assets/{graph-CEUh1UxC.js → graph-Da5nhwRG.js} +2 -2
  100. package/build/client/assets/{graph-CEUh1UxC.js.map → graph-Da5nhwRG.js.map} +1 -1
  101. package/build/client/assets/guide-Cinib8Ji.js +9 -0
  102. package/build/client/assets/guide-Cinib8Ji.js.map +1 -0
  103. package/build/client/assets/{index-D3zOGeBE.js → index-BKAVQvm5.js} +2 -2
  104. package/build/client/assets/{index-D3zOGeBE.js.map → index-BKAVQvm5.js.map} +1 -1
  105. package/build/client/assets/{index-BOhw3wcM.js → index-CJDOQ1bl.js} +2 -2
  106. package/build/client/assets/{index-BOhw3wcM.js.map → index-CJDOQ1bl.js.map} +1 -1
  107. package/build/client/assets/{index-B-9GR1C2.js → index-C_wcF1aP.js} +2 -2
  108. package/build/client/assets/{index-B-9GR1C2.js.map → index-C_wcF1aP.js.map} +1 -1
  109. package/build/client/assets/{index-BW8stNyh.js → index-CdzVFL-Z.js} +3 -3
  110. package/build/client/assets/{index-BW8stNyh.js.map → index-CdzVFL-Z.js.map} +1 -1
  111. package/build/client/assets/index-CmflCPTU.js +2 -0
  112. package/build/client/assets/index-CmflCPTU.js.map +1 -0
  113. package/build/client/assets/index-DuFMeXSm.js +2 -0
  114. package/build/client/assets/index-DuFMeXSm.js.map +1 -0
  115. package/build/client/assets/index-hhQHCvb9.js +2 -0
  116. package/build/client/assets/{index-EdNV8gTk.js.map → index-hhQHCvb9.js.map} +1 -1
  117. package/build/client/assets/{index-C_KjwKVt.js → index-ynYvVAOK.js} +2 -2
  118. package/build/client/assets/{index-C_KjwKVt.js.map → index-ynYvVAOK.js.map} +1 -1
  119. package/build/client/assets/{infoDiagram-WHAUD3N6-BplcSre1.js → infoDiagram-WHAUD3N6-CToPP1ur.js} +2 -2
  120. package/build/client/assets/{infoDiagram-WHAUD3N6-BplcSre1.js.map → infoDiagram-WHAUD3N6-CToPP1ur.js.map} +1 -1
  121. package/build/client/assets/{journeyDiagram-XKPGCS4Q-yxvCkf49.js → journeyDiagram-XKPGCS4Q-BBRpqEuF.js} +2 -2
  122. package/build/client/assets/{journeyDiagram-XKPGCS4Q-yxvCkf49.js.map → journeyDiagram-XKPGCS4Q-BBRpqEuF.js.map} +1 -1
  123. package/build/client/assets/{kanban-definition-3W4ZIXB7-DFEBMrRH.js → kanban-definition-3W4ZIXB7-CyGlZ-MK.js} +2 -2
  124. package/build/client/assets/{kanban-definition-3W4ZIXB7-DFEBMrRH.js.map → kanban-definition-3W4ZIXB7-CyGlZ-MK.js.map} +1 -1
  125. package/build/client/assets/{launch-editor-B2dmpkaO.js → launch-editor-D2exGfVu.js} +2 -2
  126. package/build/client/assets/{launch-editor-B2dmpkaO.js.map → launch-editor-D2exGfVu.js.map} +1 -1
  127. package/build/client/assets/{layout-CiHrgFnf.js → layout-CUEelucj.js} +2 -2
  128. package/build/client/assets/{layout-CiHrgFnf.js.map → layout-CUEelucj.js.map} +1 -1
  129. package/build/client/assets/{linear-C-81cvJP.js → linear-DzZ9bjHs.js} +2 -2
  130. package/build/client/assets/{linear-C-81cvJP.js.map → linear-DzZ9bjHs.js.map} +1 -1
  131. package/build/client/assets/{loading-CUydCGD3.js → loading-CDNzW5oO.js} +2 -2
  132. package/build/client/assets/{loading-CUydCGD3.js.map → loading-CDNzW5oO.js.map} +1 -1
  133. package/build/client/assets/{login-DvBmP_ce.js → login-mWjVXGbJ.js} +2 -2
  134. package/build/client/assets/{login-DvBmP_ce.js.map → login-mWjVXGbJ.js.map} +1 -1
  135. package/build/client/assets/manifest-970c9ad1.js +1 -0
  136. package/build/client/assets/{mdx-vrch0szL.js → mdx-BzyhMqFg.js} +3 -3
  137. package/build/client/assets/{mdx-vrch0szL.js.map → mdx-BzyhMqFg.js.map} +1 -1
  138. package/build/client/assets/{mermaid.core-D3y7PO8B.js → mermaid.core-BdxLLjl2.js} +5 -5
  139. package/build/client/assets/{mermaid.core-D3y7PO8B.js.map → mermaid.core-BdxLLjl2.js.map} +1 -1
  140. package/build/client/assets/{mindmap-definition-VGOIOE7T-VMZ6ZZlW.js → mindmap-definition-VGOIOE7T-DeKD8ncg.js} +2 -2
  141. package/build/client/assets/{mindmap-definition-VGOIOE7T-VMZ6ZZlW.js.map → mindmap-definition-VGOIOE7T-DeKD8ncg.js.map} +1 -1
  142. package/build/client/assets/{misc-DVYuZMjW.js → misc-W4055b-0.js} +2 -2
  143. package/build/client/assets/{misc-DVYuZMjW.js.map → misc-W4055b-0.js.map} +1 -1
  144. package/build/client/assets/{nav-chevrons-DlNUibJV.js → nav-chevrons-Dk4GtZwQ.js} +2 -2
  145. package/build/client/assets/{nav-chevrons-DlNUibJV.js.map → nav-chevrons-Dk4GtZwQ.js.map} +1 -1
  146. package/build/client/assets/{offline-videos-Do9PBh87.js → offline-videos-BP7_xJkO.js} +2 -2
  147. package/build/client/assets/{offline-videos-Do9PBh87.js.map → offline-videos-BP7_xJkO.js.map} +1 -1
  148. package/build/client/assets/{onboarding-indicator-CVwXz3Cn.js → onboarding-indicator-B-XR90_G.js} +2 -2
  149. package/build/client/assets/{onboarding-indicator-CVwXz3Cn.js.map → onboarding-indicator-B-XR90_G.js.map} +1 -1
  150. package/build/client/assets/{pieDiagram-ADFJNKIX-CKbrBdQs.js → pieDiagram-ADFJNKIX-BQ4sFDrB.js} +2 -2
  151. package/build/client/assets/{pieDiagram-ADFJNKIX-CKbrBdQs.js.map → pieDiagram-ADFJNKIX-BQ4sFDrB.js.map} +1 -1
  152. package/build/client/assets/playground-DmEAkxG1.js +2 -0
  153. package/build/client/assets/playground-DmEAkxG1.js.map +1 -0
  154. package/build/client/assets/{playground-window-D9a7P7rH.js → playground-window-x2mQ5o1O.js} +2 -2
  155. package/build/client/assets/{playground-window-D9a7P7rH.js.map → playground-window-x2mQ5o1O.js.map} +1 -1
  156. package/build/client/assets/{preferences-BCvK10k2.js → preferences-D6HQ5bK1.js} +2 -2
  157. package/build/client/assets/{preferences-BCvK10k2.js.map → preferences-D6HQ5bK1.js.map} +1 -1
  158. package/build/client/assets/{preview-CiDtuQCc.js → preview-fhmjENlm.js} +2 -2
  159. package/build/client/assets/{preview-CiDtuQCc.js.map → preview-fhmjENlm.js.map} +1 -1
  160. package/build/client/assets/{product-GLsnY1u3.js → product-CvyMpYD_.js} +2 -2
  161. package/build/client/assets/{product-GLsnY1u3.js.map → product-CvyMpYD_.js.map} +1 -1
  162. package/build/client/assets/{progress-fKsNxmmt.js → progress-ILaVQtOO.js} +2 -2
  163. package/build/client/assets/{progress-fKsNxmmt.js.map → progress-ILaVQtOO.js.map} +1 -1
  164. package/build/client/assets/{progress-bar-B27isaGl.js → progress-bar-DpWhcyhC.js} +2 -2
  165. package/build/client/assets/{progress-bar-B27isaGl.js.map → progress-bar-DpWhcyhC.js.map} +1 -1
  166. package/build/client/assets/{quadrantDiagram-AYHSOK5B-Bb5EtkPw.js → quadrantDiagram-AYHSOK5B-QnjodHfi.js} +2 -2
  167. package/build/client/assets/{quadrantDiagram-AYHSOK5B-Bb5EtkPw.js.map → quadrantDiagram-AYHSOK5B-QnjodHfi.js.map} +1 -1
  168. package/build/client/assets/{requirementDiagram-UZGBJVZJ-BNsXiFG2.js → requirementDiagram-UZGBJVZJ-mL9Oeda0.js} +2 -2
  169. package/build/client/assets/{requirementDiagram-UZGBJVZJ-BNsXiFG2.js.map → requirementDiagram-UZGBJVZJ-mL9Oeda0.js.map} +1 -1
  170. package/build/client/assets/{root-Ch373D3a.js → root-Bktp3RtN.js} +2 -2
  171. package/build/client/assets/{root-Ch373D3a.js.map → root-Bktp3RtN.js.map} +1 -1
  172. package/build/client/assets/{sankeyDiagram-TZEHDZUN-qlPqhk7P.js → sankeyDiagram-TZEHDZUN-B8_zpQVR.js} +2 -2
  173. package/build/client/assets/{sankeyDiagram-TZEHDZUN-qlPqhk7P.js.map → sankeyDiagram-TZEHDZUN-B8_zpQVR.js.map} +1 -1
  174. package/build/client/assets/{sequenceDiagram-WL72ISMW-C3d31B7K.js → sequenceDiagram-WL72ISMW-BDd5tjuk.js} +2 -2
  175. package/build/client/assets/{sequenceDiagram-WL72ISMW-C3d31B7K.js.map → sequenceDiagram-WL72ISMW-BDd5tjuk.js.map} +1 -1
  176. package/build/client/assets/{set-playground-DeMY9i7p.js → set-playground-BSGwH9dH.js} +2 -2
  177. package/build/client/assets/{set-playground-DeMY9i7p.js.map → set-playground-BSGwH9dH.js.map} +1 -1
  178. package/build/client/assets/{stateDiagram-FKZM4ZOC-C1eIQm_7.js → stateDiagram-FKZM4ZOC-DGPNpRbW.js} +2 -2
  179. package/build/client/assets/{stateDiagram-FKZM4ZOC-C1eIQm_7.js.map → stateDiagram-FKZM4ZOC-DGPNpRbW.js.map} +1 -1
  180. package/build/client/assets/stateDiagram-v2-4FDKWEC3-DxaFuKxL.js +2 -0
  181. package/build/client/assets/{stateDiagram-v2-4FDKWEC3-CAmcrDIS.js.map → stateDiagram-v2-4FDKWEC3-DxaFuKxL.js.map} +1 -1
  182. package/build/client/assets/status-indicator-C6DiLYL5.js +2 -0
  183. package/build/client/assets/status-indicator-C6DiLYL5.js.map +1 -0
  184. package/build/client/assets/tailwind-B97VvnKU.css +1 -0
  185. package/build/client/assets/test-DtQCjBBX.js +2 -0
  186. package/build/client/assets/{test-CdEKoDoS.js.map → test-DtQCjBBX.js.map} +1 -1
  187. package/build/client/assets/{tests-xD9PppmM.js → tests-fDISNsE-.js} +2 -2
  188. package/build/client/assets/{tests-xD9PppmM.js.map → tests-fDISNsE-.js.map} +1 -1
  189. package/build/client/assets/{timeline-definition-IT6M3QCI-Di_ZGPjO.js → timeline-definition-IT6M3QCI-BnMOh0dz.js} +2 -2
  190. package/build/client/assets/{timeline-definition-IT6M3QCI-Di_ZGPjO.js.map → timeline-definition-IT6M3QCI-BnMOh0dz.js.map} +1 -1
  191. package/build/client/assets/{tooltip-Chzzs4KB.js → tooltip-Tlsyx2YO.js} +2 -2
  192. package/build/client/assets/{tooltip-Chzzs4KB.js.map → tooltip-Tlsyx2YO.js.map} +1 -1
  193. package/build/client/assets/{treemap-KMMF4GRG-DZrMUxqR.js → treemap-KMMF4GRG-Ds3XkDP-.js} +2 -2
  194. package/build/client/assets/{treemap-KMMF4GRG-DZrMUxqR.js.map → treemap-KMMF4GRG-Ds3XkDP-.js.map} +1 -1
  195. package/build/client/assets/{workspace-structure-i_5Tiikk.js → workspace-structure-B6Rpl-B2.js} +2 -2
  196. package/build/client/assets/{workspace-structure-i_5Tiikk.js.map → workspace-structure-B6Rpl-B2.js.map} +1 -1
  197. package/build/client/assets/{xychartDiagram-PRI3JC2R-BxuKJVc7.js → xychartDiagram-PRI3JC2R-DH_JPNZp.js} +2 -2
  198. package/build/client/assets/{xychartDiagram-PRI3JC2R-BxuKJVc7.js.map → xychartDiagram-PRI3JC2R-DH_JPNZp.js.map} +1 -1
  199. package/build/server/index.js +690 -114
  200. package/build/server/index.js.map +1 -1
  201. package/package.json +3 -3
  202. package/build/client/assets/_exerciseNumber_.finished-CGoPhVVF.js.map +0 -1
  203. package/build/client/assets/_extra-BZPB_nWQ.js +0 -2
  204. package/build/client/assets/_extra-BZPB_nWQ.js.map +0 -1
  205. package/build/client/assets/_layout-BxQPZuW6.js +0 -2
  206. package/build/client/assets/_layout-BxQPZuW6.js.map +0 -1
  207. package/build/client/assets/_layout-yxOoJ6Yg.js +0 -2
  208. package/build/client/assets/_layout-yxOoJ6Yg.js.map +0 -1
  209. package/build/client/assets/app-TcFAQB2o.js +0 -2
  210. package/build/client/assets/channel-BLJkdd1O.js +0 -2
  211. package/build/client/assets/classDiagram-2ON5EDUG-_kfNpv_f.js +0 -2
  212. package/build/client/assets/classDiagram-v2-WZHVMYZB-_kfNpv_f.js +0 -2
  213. package/build/client/assets/clone-CztDUJhf.js +0 -2
  214. package/build/client/assets/discord-CuxZiU8E.js.map +0 -1
  215. package/build/client/assets/guide-B4wAqzq_.js +0 -9
  216. package/build/client/assets/guide-B4wAqzq_.js.map +0 -1
  217. package/build/client/assets/index-C6vQqVxz.js +0 -2
  218. package/build/client/assets/index-C6vQqVxz.js.map +0 -1
  219. package/build/client/assets/index-EdNV8gTk.js +0 -2
  220. package/build/client/assets/manifest-34df6718.js +0 -1
  221. package/build/client/assets/playground-C_aP_pE8.js +0 -2
  222. package/build/client/assets/playground-C_aP_pE8.js.map +0 -1
  223. package/build/client/assets/stateDiagram-v2-4FDKWEC3-CAmcrDIS.js +0 -2
  224. package/build/client/assets/tailwind-D_K12wB7.css +0 -1
  225. package/build/client/assets/test-CdEKoDoS.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"accordion-CzXT3k43.js","sources":["../../../../../node_modules/@radix-ui/react-collapsible/dist/index.mjs","../../../../../node_modules/@radix-ui/react-accordion/dist/index.mjs","../../../../../node_modules/react-error-boundary/dist/react-error-boundary.js","../../../app/components/accordion.tsx"],"sourcesContent":["\"use client\";\n\n// src/collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: COLLAPSIBLE_NAME\n });\n return /* @__PURE__ */ jsx(\n CollapsibleProvider,\n {\n scope: __scopeCollapsible,\n disabled,\n contentId: useId(),\n open,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(open),\n \"data-disabled\": disabled ? \"\" : void 0,\n ...collapsibleProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open || false,\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n disabled: context.disabled,\n ...triggerProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef(0);\n const height = heightRef.current;\n const widthRef = React.useRef(0);\n const width = widthRef.current;\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef(void 0);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName\n };\n node.style.transitionDuration = \"0s\";\n node.style.animationName = \"none\";\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationName = originalStylesRef.current.animationName;\n }\n setIsPresent(present);\n }\n }, [context.open, present]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n id: context.contentId,\n hidden: !isOpen,\n ...contentProps,\n ref: composedRefs,\n style: {\n [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n ...props.style\n },\n children: isOpen && children\n }\n );\n});\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n Content,\n Root,\n Trigger,\n createCollapsibleScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/accordion.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\nimport { createCollapsibleScope } from \"@radix-ui/react-collapsible\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ACCORDION_NAME = \"Accordion\";\nvar ACCORDION_KEYS = [\"Home\", \"End\", \"ArrowDown\", \"ArrowUp\", \"ArrowLeft\", \"ArrowRight\"];\nvar [Collection, useCollection, createCollectionScope] = createCollection(ACCORDION_NAME);\nvar [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [\n createCollectionScope,\n createCollapsibleScope\n]);\nvar useCollapsibleScope = createCollapsibleScope();\nvar Accordion = React.forwardRef(\n (props, forwardedRef) => {\n const { type, ...accordionProps } = props;\n const singleProps = accordionProps;\n const multipleProps = accordionProps;\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeAccordion, children: type === \"multiple\" ? /* @__PURE__ */ jsx(AccordionImplMultiple, { ...multipleProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(AccordionImplSingle, { ...singleProps, ref: forwardedRef }) });\n }\n);\nAccordion.displayName = ACCORDION_NAME;\nvar [AccordionValueProvider, useAccordionValueContext] = createAccordionContext(ACCORDION_NAME);\nvar [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(\n ACCORDION_NAME,\n { collapsible: false }\n);\nvar AccordionImplSingle = React.forwardRef(\n (props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n collapsible = false,\n ...accordionSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? \"\",\n onChange: onValueChange,\n caller: ACCORDION_NAME\n });\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value: React.useMemo(() => value ? [value] : [], [value]),\n onItemOpen: setValue,\n onItemClose: React.useCallback(() => collapsible && setValue(\"\"), [collapsible, setValue]),\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef }) })\n }\n );\n }\n);\nvar AccordionImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...accordionMultipleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: ACCORDION_NAME\n });\n const handleItemOpen = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleItemClose = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value,\n onItemOpen: handleItemOpen,\n onItemClose: handleItemClose,\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible: true, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionMultipleProps, ref: forwardedRef }) })\n }\n );\n});\nvar [AccordionImplProvider, useAccordionContext] = createAccordionContext(ACCORDION_NAME);\nvar AccordionImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, disabled, dir, orientation = \"vertical\", ...accordionProps } = props;\n const accordionRef = React.useRef(null);\n const composedRefs = useComposedRefs(accordionRef, forwardedRef);\n const getItems = useCollection(__scopeAccordion);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {\n if (!ACCORDION_KEYS.includes(event.key)) return;\n const target = event.target;\n const triggerCollection = getItems().filter((item) => !item.ref.current?.disabled);\n const triggerIndex = triggerCollection.findIndex((item) => item.ref.current === target);\n const triggerCount = triggerCollection.length;\n if (triggerIndex === -1) return;\n event.preventDefault();\n let nextIndex = triggerIndex;\n const homeIndex = 0;\n const endIndex = triggerCount - 1;\n const moveNext = () => {\n nextIndex = triggerIndex + 1;\n if (nextIndex > endIndex) {\n nextIndex = homeIndex;\n }\n };\n const movePrev = () => {\n nextIndex = triggerIndex - 1;\n if (nextIndex < homeIndex) {\n nextIndex = endIndex;\n }\n };\n switch (event.key) {\n case \"Home\":\n nextIndex = homeIndex;\n break;\n case \"End\":\n nextIndex = endIndex;\n break;\n case \"ArrowRight\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n moveNext();\n } else {\n movePrev();\n }\n }\n break;\n case \"ArrowDown\":\n if (orientation === \"vertical\") {\n moveNext();\n }\n break;\n case \"ArrowLeft\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n movePrev();\n } else {\n moveNext();\n }\n }\n break;\n case \"ArrowUp\":\n if (orientation === \"vertical\") {\n movePrev();\n }\n break;\n }\n const clampedIndex = nextIndex % triggerCount;\n triggerCollection[clampedIndex].ref.current?.focus();\n });\n return /* @__PURE__ */ jsx(\n AccordionImplProvider,\n {\n scope: __scopeAccordion,\n disabled,\n direction: dir,\n orientation,\n children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...accordionProps,\n \"data-orientation\": orientation,\n ref: composedRefs,\n onKeyDown: disabled ? void 0 : handleKeyDown\n }\n ) })\n }\n );\n }\n);\nvar ITEM_NAME = \"AccordionItem\";\nvar [AccordionItemProvider, useAccordionItemContext] = createAccordionContext(ITEM_NAME);\nvar AccordionItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, value, ...accordionItemProps } = props;\n const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);\n const valueContext = useAccordionValueContext(ITEM_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n const triggerId = useId();\n const open = value && valueContext.value.includes(value) || false;\n const disabled = accordionContext.disabled || props.disabled;\n return /* @__PURE__ */ jsx(\n AccordionItemProvider,\n {\n scope: __scopeAccordion,\n open,\n disabled,\n triggerId,\n children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Root,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(open),\n ...collapsibleScope,\n ...accordionItemProps,\n ref: forwardedRef,\n disabled,\n open,\n onOpenChange: (open2) => {\n if (open2) {\n valueContext.onItemOpen(value);\n } else {\n valueContext.onItemClose(value);\n }\n }\n }\n )\n }\n );\n }\n);\nAccordionItem.displayName = ITEM_NAME;\nvar HEADER_NAME = \"AccordionHeader\";\nvar AccordionHeader = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...headerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(HEADER_NAME, __scopeAccordion);\n return /* @__PURE__ */ jsx(\n Primitive.h3,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(itemContext.open),\n \"data-disabled\": itemContext.disabled ? \"\" : void 0,\n ...headerProps,\n ref: forwardedRef\n }\n );\n }\n);\nAccordionHeader.displayName = HEADER_NAME;\nvar TRIGGER_NAME = \"AccordionTrigger\";\nvar AccordionTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...triggerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleContext = useAccordionCollapsibleContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Trigger,\n {\n \"aria-disabled\": itemContext.open && !collapsibleContext.collapsible || void 0,\n \"data-orientation\": accordionContext.orientation,\n id: itemContext.triggerId,\n ...collapsibleScope,\n ...triggerProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nAccordionTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"AccordionContent\";\nvar AccordionContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...contentProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(CONTENT_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Content,\n {\n role: \"region\",\n \"aria-labelledby\": itemContext.triggerId,\n \"data-orientation\": accordionContext.orientation,\n ...collapsibleScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n [\"--radix-accordion-content-height\"]: \"var(--radix-collapsible-content-height)\",\n [\"--radix-accordion-content-width\"]: \"var(--radix-collapsible-content-width)\",\n ...props.style\n }\n }\n );\n }\n);\nAccordionContent.displayName = CONTENT_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Accordion;\nvar Item = AccordionItem;\nvar Header = AccordionHeader;\nvar Trigger2 = AccordionTrigger;\nvar Content2 = AccordionContent;\nexport {\n Accordion,\n AccordionContent,\n AccordionHeader,\n AccordionItem,\n AccordionTrigger,\n Content2 as Content,\n Header,\n Item,\n Root2 as Root,\n Trigger2 as Trigger,\n createAccordionScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nimport { createContext as l, Component as y, createElement as d, useContext as f, useState as p, useMemo as E, forwardRef as B } from \"react\";\nconst h = l(null), c = {\n didCatch: !1,\n error: null\n};\nclass m extends y {\n constructor(e) {\n super(e), this.resetErrorBoundary = this.resetErrorBoundary.bind(this), this.state = c;\n }\n static getDerivedStateFromError(e) {\n return { didCatch: !0, error: e };\n }\n resetErrorBoundary(...e) {\n const { error: t } = this.state;\n t !== null && (this.props.onReset?.({\n args: e,\n reason: \"imperative-api\"\n }), this.setState(c));\n }\n componentDidCatch(e, t) {\n this.props.onError?.(e, t);\n }\n componentDidUpdate(e, t) {\n const { didCatch: o } = this.state, { resetKeys: s } = this.props;\n o && t.error !== null && C(e.resetKeys, s) && (this.props.onReset?.({\n next: s,\n prev: e.resetKeys,\n reason: \"keys\"\n }), this.setState(c));\n }\n render() {\n const { children: e, fallbackRender: t, FallbackComponent: o, fallback: s } = this.props, { didCatch: n, error: a } = this.state;\n let i = e;\n if (n) {\n const u = {\n error: a,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof t == \"function\")\n i = t(u);\n else if (o)\n i = d(o, u);\n else if (s !== void 0)\n i = s;\n else\n throw a;\n }\n return d(\n h.Provider,\n {\n value: {\n didCatch: n,\n error: a,\n resetErrorBoundary: this.resetErrorBoundary\n }\n },\n i\n );\n }\n}\nfunction C(r = [], e = []) {\n return r.length !== e.length || r.some((t, o) => !Object.is(t, e[o]));\n}\nfunction g(r) {\n return r !== null && typeof r == \"object\" && \"didCatch\" in r && typeof r.didCatch == \"boolean\" && \"error\" in r && \"resetErrorBoundary\" in r && typeof r.resetErrorBoundary == \"function\";\n}\nfunction x(r) {\n if (!g(r))\n throw new Error(\"ErrorBoundaryContext not found\");\n}\nfunction k() {\n const r = f(h);\n x(r);\n const { error: e, resetErrorBoundary: t } = r, [o, s] = p({\n error: null,\n hasError: !1\n }), n = E(\n () => ({\n error: e,\n resetBoundary: () => {\n t(), s({ error: null, hasError: !1 });\n },\n showBoundary: (a) => s({\n error: a,\n hasError: !0\n })\n }),\n [e, t]\n );\n if (o.hasError)\n throw o.error;\n return n;\n}\nfunction S(r) {\n switch (typeof r) {\n case \"object\": {\n if (r !== null && \"message\" in r && typeof r.message == \"string\")\n return r.message;\n break;\n }\n case \"string\":\n return r;\n }\n}\nfunction w(r, e) {\n const t = B(\n (s, n) => d(\n m,\n e,\n d(r, { ...s, ref: n })\n )\n ), o = r.displayName || r.name || \"Unknown\";\n return t.displayName = `withErrorBoundary(${o})`, t;\n}\nexport {\n m as ErrorBoundary,\n h as ErrorBoundaryContext,\n S as getErrorMessage,\n k as useErrorBoundary,\n w as withErrorBoundary\n};\n//# sourceMappingURL=react-error-boundary.js.map\n","import * as Accordion from '@radix-ui/react-accordion'\nimport { clsx } from 'clsx'\nimport * as React from 'react'\nimport { Icon } from './icons.tsx'\n\ntype AccordionProps = {\n\ttitle: string\n\tchildren: React.ReactElement\n\tvariant?: 'changed' | 'added' | 'deleted' | 'renamed'\n\ticon?: React.ReactElement\n\tforceMount?: boolean\n}\n\nconst AccordionComponent: React.FC<AccordionProps> = ({\n\ttitle,\n\tchildren,\n\tvariant,\n\ticon,\n\tforceMount = false,\n}) => {\n\tconst getVariantIcon = () => {\n\t\tswitch (variant) {\n\t\t\tcase 'changed':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Modified\"\n\t\t\t\t\t\taria-label=\"Modified\"\n\t\t\t\t\t\tclassName=\"text-[#fb923c]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\tcase 'renamed':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Renamed\"\n\t\t\t\t\t\taria-label=\"Renamed\"\n\t\t\t\t\t\tclassName=\"text-[#fb923c]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\tcase 'added':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon name=\"Added\" aria-label=\"Added\" className=\"text-[#10b981]\" />\n\t\t\t\t)\n\t\t\tcase 'deleted':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Deleted\"\n\t\t\t\t\t\taria-label=\"Deleted\"\n\t\t\t\t\t\tclassName=\"text-[#ef4444]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Modified\"\n\t\t\t\t\t\taria-label=\"Modified\"\n\t\t\t\t\t\tclassName=\"text-[#fb923c]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t}\n\t}\n\tconst getVariantLabel = () => {\n\t\tswitch (variant) {\n\t\t\tcase 'changed':\n\t\t\t\treturn 'modified'\n\t\t\tdefault:\n\t\t\t\treturn variant\n\t\t}\n\t}\n\n\t// Somehow on windows we get double backslashes in the title\n\t// so we'll just remove those 🤷‍♂️\n\tconst fixedTitle = title.replace(/\\\\\\\\/g, '\\\\')\n\treturn (\n\t\t<Accordion.Item value={title}>\n\t\t\t<AccordionTrigger variant={getVariantLabel()}>\n\t\t\t\t{icon ? icon : getVariantIcon()} {fixedTitle}\n\t\t\t</AccordionTrigger>\n\t\t\t<AccordionContent\n\t\t\t\tforceMount={forceMount}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'prose dark:prose-invert prose-pre:m-0 prose-pre:mb-1 prose-pre:rounded-none max-w-none whitespace-pre-wrap',\n\t\t\t\t\t{\n\t\t\t\t\t\t'radix-state-closed:hidden': forceMount,\n\t\t\t\t\t},\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</AccordionContent>\n\t\t</Accordion.Item>\n\t)\n}\n\nexport default AccordionComponent\n\nconst AccordionTrigger: React.FC<any> = ({\n\tref: forwardedRef,\n\tchildren,\n\tclassName,\n\tvariant,\n\t...props\n}) => (\n\t<Accordion.Header className=\"flex\" asChild>\n\t\t<Accordion.Trigger\n\t\t\tclassName={clsx(\n\t\t\t\t'group hover:bg-foreground/20 flex w-full items-center justify-between border-b p-4 pr-3 font-mono text-sm leading-none font-medium',\n\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t\tref={forwardedRef}\n\t\t>\n\t\t\t<div className=\"flex items-center gap-1.5\">{children}</div>\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<span className=\"text-muted-foreground font-mono text-xs font-normal uppercase\">\n\t\t\t\t\t{variant}\n\t\t\t\t</span>\n\t\t\t\t<Icon\n\t\t\t\t\tname=\"TriangleDownSmall\"\n\t\t\t\t\tclassName=\"group-radix-state-open:rotate-180 transition\"\n\t\t\t\t\taria-hidden\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</Accordion.Trigger>\n\t</Accordion.Header>\n)\n\nconst AccordionContent: React.FC<any> = ({\n\tref: forwardedRef,\n\tchildren,\n\tclassName,\n\t...props\n}) => (\n\t<Accordion.Content\n\t\tclassName={clsx('', className)}\n\t\t{...props}\n\t\tref={forwardedRef}\n\t>\n\t\t<div>{children}</div>\n\t</Accordion.Content>\n)\n"],"names":["COLLAPSIBLE_NAME","createCollapsibleContext","createCollapsibleScope","createContextScope","CollapsibleProvider","useCollapsibleContext","Collapsible","React.forwardRef","props","forwardedRef","__scopeCollapsible","openProp","defaultOpen","disabled","onOpenChange","collapsibleProps","open","setOpen","useControllableState","jsx","useId","React.useCallback","prevOpen","Primitive","getState","TRIGGER_NAME","CollapsibleTrigger","triggerProps","context","composeEventHandlers","CONTENT_NAME","CollapsibleContent","forceMount","contentProps","Presence","present","CollapsibleContentImpl","children","isPresent","setIsPresent","React.useState","ref","React.useRef","composedRefs","useComposedRefs","heightRef","height","widthRef","width","isOpen","isMountAnimationPreventedRef","originalStylesRef","React.useEffect","rAF","useLayoutEffect","node","rect","Root","Trigger","Content","ACCORDION_NAME","ACCORDION_KEYS","Collection","useCollection","createCollectionScope","createCollection","createAccordionContext","useCollapsibleScope","Accordion","React","type","accordionProps","singleProps","multipleProps","AccordionImplMultiple","AccordionImplSingle","AccordionValueProvider","useAccordionValueContext","AccordionCollapsibleProvider","useAccordionCollapsibleContext","valueProp","defaultValue","onValueChange","collapsible","accordionSingleProps","value","setValue","AccordionImpl","accordionMultipleProps","handleItemOpen","itemValue","prevValue","handleItemClose","value2","AccordionImplProvider","useAccordionContext","__scopeAccordion","dir","orientation","accordionRef","getItems","isDirectionLTR","useDirection","handleKeyDown","event","target","triggerCollection","item","triggerIndex","triggerCount","nextIndex","homeIndex","endIndex","moveNext","movePrev","clampedIndex","ITEM_NAME","AccordionItemProvider","useAccordionItemContext","AccordionItem","accordionItemProps","accordionContext","valueContext","collapsibleScope","triggerId","CollapsiblePrimitive.Root","open2","HEADER_NAME","AccordionHeader","headerProps","itemContext","AccordionTrigger","collapsibleContext","CollapsiblePrimitive.Trigger","AccordionContent","CollapsiblePrimitive.Content","Root2","Item","Header","Trigger2","Content2","h","l","c","m","y","e","t","o","s","C","n","a","i","u","d","r","AccordionComponent","title","variant","icon","getVariantIcon","Icon","getVariantLabel","fixedTitle","jsxs","Accordion.Item","clsx","className","Accordion.Header","Accordion.Trigger","Accordion.Content"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"accordion-CQ7oujC6.js","sources":["../../../../../node_modules/@radix-ui/react-collapsible/dist/index.mjs","../../../../../node_modules/@radix-ui/react-accordion/dist/index.mjs","../../../../../node_modules/react-error-boundary/dist/react-error-boundary.js","../../../app/components/accordion.tsx"],"sourcesContent":["\"use client\";\n\n// src/collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: COLLAPSIBLE_NAME\n });\n return /* @__PURE__ */ jsx(\n CollapsibleProvider,\n {\n scope: __scopeCollapsible,\n disabled,\n contentId: useId(),\n open,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(open),\n \"data-disabled\": disabled ? \"\" : void 0,\n ...collapsibleProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open || false,\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n disabled: context.disabled,\n ...triggerProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef(0);\n const height = heightRef.current;\n const widthRef = React.useRef(0);\n const width = widthRef.current;\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef(void 0);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName\n };\n node.style.transitionDuration = \"0s\";\n node.style.animationName = \"none\";\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationName = originalStylesRef.current.animationName;\n }\n setIsPresent(present);\n }\n }, [context.open, present]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n id: context.contentId,\n hidden: !isOpen,\n ...contentProps,\n ref: composedRefs,\n style: {\n [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n ...props.style\n },\n children: isOpen && children\n }\n );\n});\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n Content,\n Root,\n Trigger,\n createCollapsibleScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/accordion.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\nimport { createCollapsibleScope } from \"@radix-ui/react-collapsible\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ACCORDION_NAME = \"Accordion\";\nvar ACCORDION_KEYS = [\"Home\", \"End\", \"ArrowDown\", \"ArrowUp\", \"ArrowLeft\", \"ArrowRight\"];\nvar [Collection, useCollection, createCollectionScope] = createCollection(ACCORDION_NAME);\nvar [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [\n createCollectionScope,\n createCollapsibleScope\n]);\nvar useCollapsibleScope = createCollapsibleScope();\nvar Accordion = React.forwardRef(\n (props, forwardedRef) => {\n const { type, ...accordionProps } = props;\n const singleProps = accordionProps;\n const multipleProps = accordionProps;\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeAccordion, children: type === \"multiple\" ? /* @__PURE__ */ jsx(AccordionImplMultiple, { ...multipleProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(AccordionImplSingle, { ...singleProps, ref: forwardedRef }) });\n }\n);\nAccordion.displayName = ACCORDION_NAME;\nvar [AccordionValueProvider, useAccordionValueContext] = createAccordionContext(ACCORDION_NAME);\nvar [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(\n ACCORDION_NAME,\n { collapsible: false }\n);\nvar AccordionImplSingle = React.forwardRef(\n (props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n collapsible = false,\n ...accordionSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? \"\",\n onChange: onValueChange,\n caller: ACCORDION_NAME\n });\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value: React.useMemo(() => value ? [value] : [], [value]),\n onItemOpen: setValue,\n onItemClose: React.useCallback(() => collapsible && setValue(\"\"), [collapsible, setValue]),\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef }) })\n }\n );\n }\n);\nvar AccordionImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...accordionMultipleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: ACCORDION_NAME\n });\n const handleItemOpen = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleItemClose = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value,\n onItemOpen: handleItemOpen,\n onItemClose: handleItemClose,\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible: true, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionMultipleProps, ref: forwardedRef }) })\n }\n );\n});\nvar [AccordionImplProvider, useAccordionContext] = createAccordionContext(ACCORDION_NAME);\nvar AccordionImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, disabled, dir, orientation = \"vertical\", ...accordionProps } = props;\n const accordionRef = React.useRef(null);\n const composedRefs = useComposedRefs(accordionRef, forwardedRef);\n const getItems = useCollection(__scopeAccordion);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {\n if (!ACCORDION_KEYS.includes(event.key)) return;\n const target = event.target;\n const triggerCollection = getItems().filter((item) => !item.ref.current?.disabled);\n const triggerIndex = triggerCollection.findIndex((item) => item.ref.current === target);\n const triggerCount = triggerCollection.length;\n if (triggerIndex === -1) return;\n event.preventDefault();\n let nextIndex = triggerIndex;\n const homeIndex = 0;\n const endIndex = triggerCount - 1;\n const moveNext = () => {\n nextIndex = triggerIndex + 1;\n if (nextIndex > endIndex) {\n nextIndex = homeIndex;\n }\n };\n const movePrev = () => {\n nextIndex = triggerIndex - 1;\n if (nextIndex < homeIndex) {\n nextIndex = endIndex;\n }\n };\n switch (event.key) {\n case \"Home\":\n nextIndex = homeIndex;\n break;\n case \"End\":\n nextIndex = endIndex;\n break;\n case \"ArrowRight\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n moveNext();\n } else {\n movePrev();\n }\n }\n break;\n case \"ArrowDown\":\n if (orientation === \"vertical\") {\n moveNext();\n }\n break;\n case \"ArrowLeft\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n movePrev();\n } else {\n moveNext();\n }\n }\n break;\n case \"ArrowUp\":\n if (orientation === \"vertical\") {\n movePrev();\n }\n break;\n }\n const clampedIndex = nextIndex % triggerCount;\n triggerCollection[clampedIndex].ref.current?.focus();\n });\n return /* @__PURE__ */ jsx(\n AccordionImplProvider,\n {\n scope: __scopeAccordion,\n disabled,\n direction: dir,\n orientation,\n children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...accordionProps,\n \"data-orientation\": orientation,\n ref: composedRefs,\n onKeyDown: disabled ? void 0 : handleKeyDown\n }\n ) })\n }\n );\n }\n);\nvar ITEM_NAME = \"AccordionItem\";\nvar [AccordionItemProvider, useAccordionItemContext] = createAccordionContext(ITEM_NAME);\nvar AccordionItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, value, ...accordionItemProps } = props;\n const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);\n const valueContext = useAccordionValueContext(ITEM_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n const triggerId = useId();\n const open = value && valueContext.value.includes(value) || false;\n const disabled = accordionContext.disabled || props.disabled;\n return /* @__PURE__ */ jsx(\n AccordionItemProvider,\n {\n scope: __scopeAccordion,\n open,\n disabled,\n triggerId,\n children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Root,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(open),\n ...collapsibleScope,\n ...accordionItemProps,\n ref: forwardedRef,\n disabled,\n open,\n onOpenChange: (open2) => {\n if (open2) {\n valueContext.onItemOpen(value);\n } else {\n valueContext.onItemClose(value);\n }\n }\n }\n )\n }\n );\n }\n);\nAccordionItem.displayName = ITEM_NAME;\nvar HEADER_NAME = \"AccordionHeader\";\nvar AccordionHeader = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...headerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(HEADER_NAME, __scopeAccordion);\n return /* @__PURE__ */ jsx(\n Primitive.h3,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(itemContext.open),\n \"data-disabled\": itemContext.disabled ? \"\" : void 0,\n ...headerProps,\n ref: forwardedRef\n }\n );\n }\n);\nAccordionHeader.displayName = HEADER_NAME;\nvar TRIGGER_NAME = \"AccordionTrigger\";\nvar AccordionTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...triggerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleContext = useAccordionCollapsibleContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Trigger,\n {\n \"aria-disabled\": itemContext.open && !collapsibleContext.collapsible || void 0,\n \"data-orientation\": accordionContext.orientation,\n id: itemContext.triggerId,\n ...collapsibleScope,\n ...triggerProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nAccordionTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"AccordionContent\";\nvar AccordionContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...contentProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(CONTENT_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Content,\n {\n role: \"region\",\n \"aria-labelledby\": itemContext.triggerId,\n \"data-orientation\": accordionContext.orientation,\n ...collapsibleScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n [\"--radix-accordion-content-height\"]: \"var(--radix-collapsible-content-height)\",\n [\"--radix-accordion-content-width\"]: \"var(--radix-collapsible-content-width)\",\n ...props.style\n }\n }\n );\n }\n);\nAccordionContent.displayName = CONTENT_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Accordion;\nvar Item = AccordionItem;\nvar Header = AccordionHeader;\nvar Trigger2 = AccordionTrigger;\nvar Content2 = AccordionContent;\nexport {\n Accordion,\n AccordionContent,\n AccordionHeader,\n AccordionItem,\n AccordionTrigger,\n Content2 as Content,\n Header,\n Item,\n Root2 as Root,\n Trigger2 as Trigger,\n createAccordionScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nimport { createContext as l, Component as y, createElement as d, useContext as f, useState as p, useMemo as E, forwardRef as B } from \"react\";\nconst h = l(null), c = {\n didCatch: !1,\n error: null\n};\nclass m extends y {\n constructor(e) {\n super(e), this.resetErrorBoundary = this.resetErrorBoundary.bind(this), this.state = c;\n }\n static getDerivedStateFromError(e) {\n return { didCatch: !0, error: e };\n }\n resetErrorBoundary(...e) {\n const { error: t } = this.state;\n t !== null && (this.props.onReset?.({\n args: e,\n reason: \"imperative-api\"\n }), this.setState(c));\n }\n componentDidCatch(e, t) {\n this.props.onError?.(e, t);\n }\n componentDidUpdate(e, t) {\n const { didCatch: o } = this.state, { resetKeys: s } = this.props;\n o && t.error !== null && C(e.resetKeys, s) && (this.props.onReset?.({\n next: s,\n prev: e.resetKeys,\n reason: \"keys\"\n }), this.setState(c));\n }\n render() {\n const { children: e, fallbackRender: t, FallbackComponent: o, fallback: s } = this.props, { didCatch: n, error: a } = this.state;\n let i = e;\n if (n) {\n const u = {\n error: a,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof t == \"function\")\n i = t(u);\n else if (o)\n i = d(o, u);\n else if (s !== void 0)\n i = s;\n else\n throw a;\n }\n return d(\n h.Provider,\n {\n value: {\n didCatch: n,\n error: a,\n resetErrorBoundary: this.resetErrorBoundary\n }\n },\n i\n );\n }\n}\nfunction C(r = [], e = []) {\n return r.length !== e.length || r.some((t, o) => !Object.is(t, e[o]));\n}\nfunction g(r) {\n return r !== null && typeof r == \"object\" && \"didCatch\" in r && typeof r.didCatch == \"boolean\" && \"error\" in r && \"resetErrorBoundary\" in r && typeof r.resetErrorBoundary == \"function\";\n}\nfunction x(r) {\n if (!g(r))\n throw new Error(\"ErrorBoundaryContext not found\");\n}\nfunction k() {\n const r = f(h);\n x(r);\n const { error: e, resetErrorBoundary: t } = r, [o, s] = p({\n error: null,\n hasError: !1\n }), n = E(\n () => ({\n error: e,\n resetBoundary: () => {\n t(), s({ error: null, hasError: !1 });\n },\n showBoundary: (a) => s({\n error: a,\n hasError: !0\n })\n }),\n [e, t]\n );\n if (o.hasError)\n throw o.error;\n return n;\n}\nfunction S(r) {\n switch (typeof r) {\n case \"object\": {\n if (r !== null && \"message\" in r && typeof r.message == \"string\")\n return r.message;\n break;\n }\n case \"string\":\n return r;\n }\n}\nfunction w(r, e) {\n const t = B(\n (s, n) => d(\n m,\n e,\n d(r, { ...s, ref: n })\n )\n ), o = r.displayName || r.name || \"Unknown\";\n return t.displayName = `withErrorBoundary(${o})`, t;\n}\nexport {\n m as ErrorBoundary,\n h as ErrorBoundaryContext,\n S as getErrorMessage,\n k as useErrorBoundary,\n w as withErrorBoundary\n};\n//# sourceMappingURL=react-error-boundary.js.map\n","import * as Accordion from '@radix-ui/react-accordion'\nimport { clsx } from 'clsx'\nimport * as React from 'react'\nimport { Icon } from './icons.tsx'\n\ntype AccordionProps = {\n\ttitle: string\n\tchildren: React.ReactElement\n\tvariant?: 'changed' | 'added' | 'deleted' | 'renamed'\n\ticon?: React.ReactElement\n\tforceMount?: boolean\n}\n\nconst AccordionComponent: React.FC<AccordionProps> = ({\n\ttitle,\n\tchildren,\n\tvariant,\n\ticon,\n\tforceMount = false,\n}) => {\n\tconst getVariantIcon = () => {\n\t\tswitch (variant) {\n\t\t\tcase 'changed':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Modified\"\n\t\t\t\t\t\taria-label=\"Modified\"\n\t\t\t\t\t\tclassName=\"text-[#fb923c]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\tcase 'renamed':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Renamed\"\n\t\t\t\t\t\taria-label=\"Renamed\"\n\t\t\t\t\t\tclassName=\"text-[#fb923c]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\tcase 'added':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon name=\"Added\" aria-label=\"Added\" className=\"text-[#10b981]\" />\n\t\t\t\t)\n\t\t\tcase 'deleted':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Deleted\"\n\t\t\t\t\t\taria-label=\"Deleted\"\n\t\t\t\t\t\tclassName=\"text-[#ef4444]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Modified\"\n\t\t\t\t\t\taria-label=\"Modified\"\n\t\t\t\t\t\tclassName=\"text-[#fb923c]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t}\n\t}\n\tconst getVariantLabel = () => {\n\t\tswitch (variant) {\n\t\t\tcase 'changed':\n\t\t\t\treturn 'modified'\n\t\t\tdefault:\n\t\t\t\treturn variant\n\t\t}\n\t}\n\n\t// Somehow on windows we get double backslashes in the title\n\t// so we'll just remove those 🤷‍♂️\n\tconst fixedTitle = title.replace(/\\\\\\\\/g, '\\\\')\n\treturn (\n\t\t<Accordion.Item value={title}>\n\t\t\t<AccordionTrigger variant={getVariantLabel()}>\n\t\t\t\t{icon ? icon : getVariantIcon()} {fixedTitle}\n\t\t\t</AccordionTrigger>\n\t\t\t<AccordionContent\n\t\t\t\tforceMount={forceMount}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'prose dark:prose-invert prose-pre:m-0 prose-pre:mb-1 prose-pre:rounded-none max-w-none whitespace-pre-wrap',\n\t\t\t\t\t{\n\t\t\t\t\t\t'radix-state-closed:hidden': forceMount,\n\t\t\t\t\t},\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</AccordionContent>\n\t\t</Accordion.Item>\n\t)\n}\n\nexport default AccordionComponent\n\nconst AccordionTrigger: React.FC<any> = ({\n\tref: forwardedRef,\n\tchildren,\n\tclassName,\n\tvariant,\n\t...props\n}) => (\n\t<Accordion.Header className=\"flex\" asChild>\n\t\t<Accordion.Trigger\n\t\t\tclassName={clsx(\n\t\t\t\t'group hover:bg-foreground/20 flex w-full items-center justify-between border-b p-4 pr-3 font-mono text-sm leading-none font-medium',\n\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t\tref={forwardedRef}\n\t\t>\n\t\t\t<div className=\"flex items-center gap-1.5\">{children}</div>\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<span className=\"text-muted-foreground font-mono text-xs font-normal uppercase\">\n\t\t\t\t\t{variant}\n\t\t\t\t</span>\n\t\t\t\t<Icon\n\t\t\t\t\tname=\"TriangleDownSmall\"\n\t\t\t\t\tclassName=\"group-radix-state-open:rotate-180 transition\"\n\t\t\t\t\taria-hidden\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</Accordion.Trigger>\n\t</Accordion.Header>\n)\n\nconst AccordionContent: React.FC<any> = ({\n\tref: forwardedRef,\n\tchildren,\n\tclassName,\n\t...props\n}) => (\n\t<Accordion.Content\n\t\tclassName={clsx('', className)}\n\t\t{...props}\n\t\tref={forwardedRef}\n\t>\n\t\t<div>{children}</div>\n\t</Accordion.Content>\n)\n"],"names":["COLLAPSIBLE_NAME","createCollapsibleContext","createCollapsibleScope","createContextScope","CollapsibleProvider","useCollapsibleContext","Collapsible","React.forwardRef","props","forwardedRef","__scopeCollapsible","openProp","defaultOpen","disabled","onOpenChange","collapsibleProps","open","setOpen","useControllableState","jsx","useId","React.useCallback","prevOpen","Primitive","getState","TRIGGER_NAME","CollapsibleTrigger","triggerProps","context","composeEventHandlers","CONTENT_NAME","CollapsibleContent","forceMount","contentProps","Presence","present","CollapsibleContentImpl","children","isPresent","setIsPresent","React.useState","ref","React.useRef","composedRefs","useComposedRefs","heightRef","height","widthRef","width","isOpen","isMountAnimationPreventedRef","originalStylesRef","React.useEffect","rAF","useLayoutEffect","node","rect","Root","Trigger","Content","ACCORDION_NAME","ACCORDION_KEYS","Collection","useCollection","createCollectionScope","createCollection","createAccordionContext","useCollapsibleScope","Accordion","React","type","accordionProps","singleProps","multipleProps","AccordionImplMultiple","AccordionImplSingle","AccordionValueProvider","useAccordionValueContext","AccordionCollapsibleProvider","useAccordionCollapsibleContext","valueProp","defaultValue","onValueChange","collapsible","accordionSingleProps","value","setValue","AccordionImpl","accordionMultipleProps","handleItemOpen","itemValue","prevValue","handleItemClose","value2","AccordionImplProvider","useAccordionContext","__scopeAccordion","dir","orientation","accordionRef","getItems","isDirectionLTR","useDirection","handleKeyDown","event","target","triggerCollection","item","triggerIndex","triggerCount","nextIndex","homeIndex","endIndex","moveNext","movePrev","clampedIndex","ITEM_NAME","AccordionItemProvider","useAccordionItemContext","AccordionItem","accordionItemProps","accordionContext","valueContext","collapsibleScope","triggerId","CollapsiblePrimitive.Root","open2","HEADER_NAME","AccordionHeader","headerProps","itemContext","AccordionTrigger","collapsibleContext","CollapsiblePrimitive.Trigger","AccordionContent","CollapsiblePrimitive.Content","Root2","Item","Header","Trigger2","Content2","h","l","c","m","y","e","t","o","s","C","n","a","i","u","d","r","AccordionComponent","title","variant","icon","getVariantIcon","Icon","getVariantLabel","fixedTitle","jsxs","Accordion.Item","clsx","className","Accordion.Header","Accordion.Trigger","Accordion.Content"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -1,2 +1,2 @@
1
- import{w as f,L as t,F as j}from"./chunk-EPOLDU6W-BCLmut3y.js";import{j as e}from"./jsx-runtime-C5WNSv3b.js";import{B as N}from"./button-CIlVtsau.js";import{I as n,c as w}from"./misc-DVYuZMjW.js";import{u as l,O as d}from"./onboarding-indicator-CVwXz3Cn.js";import{S as c}from"./tooltip-Chzzs4KB.js";import{u as v,a as b,b as k}from"./user-BsPobzjB.js";import{u}from"./workshop-config-Zfc8zU0x.js";import"./index-CqIc3cxq.js";import"./root-loader-BOzEMapJ.js";import"./index-vDCSPjrM.js";const F={getSitemapEntries:()=>null};function y(){const{product:{host:a}}=u();return`https://${a}/discord`}const S=f(function(){const s=v(),o=u(),r=b(),m=y(),i=k(),[h,x]=l("account-guide"),[p,g]=l("account-preferences");return e.jsxs("main",{className:"container flex h-full w-full max-w-3xl grow flex-col items-center justify-center gap-4",children:[e.jsxs("div",{className:"flex flex-col items-center",children:[s.imageUrlLarge?e.jsx("img",{className:"h-36 w-36 rounded-full",alt:r?.displayName??s.name??s.email,src:s.imageUrlLarge}):e.jsx("div",{className:"bg-muted flex h-36 w-36 items-center justify-center rounded-full",children:e.jsx(n,{name:"User",size:"xl"})}),e.jsx("p",{className:"text-muted-foreground mt-2 text-center text-xs",children:r?e.jsxs(e.Fragment,{children:["Photo from"," ",e.jsx("a",{href:"https://discord.com/channels/@me",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"Discord"})]}):e.jsxs(e.Fragment,{children:["Photo from"," ",e.jsx("a",{href:"https://gravatar.com",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"Gravatar"})," ","or connect Discord below"]})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h1",{className:"mb-1 text-2xl",children:"Your Account"}),o.product.slug?e.jsx(c,{content:i?"You have access to this workshop":"You do not have full access to this workshop",children:e.jsx(n,{name:i?"Success":"Error",size:"lg",className:w(i?"bg-success text-success-foreground":"bg-warning text-warning-foreground","rounded-full p-1"),tabIndex:0})}):null]}),!i&&o.product.slug?e.jsx("div",{className:"prose",children:e.jsxs("callout-warning",{className:"notification",children:["Please"," ",e.jsx("a",{href:`https://${o.product.host}/workshops/${o.product.slug}`,className:"underline",children:"upgrade"})," ","your account to get full access to this workshop."]})}):null,e.jsx("p",{className:"text-muted-foreground text-center",children:s.name?`Hi ${r?.displayName??s.name}, your device is logged in with ${s.email}.`:`Your device is logged in with ${s.email}.`}),r?e.jsx(e.Fragment,{children:e.jsxs("p",{className:"text-muted-foreground text-center",children:["And you are connected to discord as"," ",e.jsx("a",{href:`https://discord.com/users/${r.id}`,target:"_blank",rel:"noopener noreferrer",className:"underline",children:r.displayName}),"."]})}):e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(t,{to:m,className:"inline-flex items-center gap-2 underline",children:[e.jsx(n,{name:"Discord",size:"lg"}),"Connect Discord"]}),e.jsx(c,{content:"This will give you access to the exclusive Discord channels for Epic Web",children:e.jsx(n,{name:"Question",tabIndex:0})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{method:"post",children:e.jsx(N,{varient:"mono",name:"intent",value:"logout",children:"Log device out"})}),e.jsx(c,{content:e.jsxs("div",{children:["Note: it is your ",e.jsx("i",{className:"italic",children:"device"})," that's logged in, not your browser.",e.jsx("br",{}),"So all browsers on this device will be logged in with the same account on this device."]}),children:e.jsx(n,{name:"Question",tabIndex:0})})]}),e.jsx("hr",{className:"w-full"}),e.jsxs("ul",{className:"flex list-inside list-disc flex-col gap-2 self-start",children:[e.jsx("li",{children:e.jsxs(t,{to:`https://${o.product.host}/profile`,className:"inline-flex gap-1 underline",children:[e.jsx("span",{children:"Manage your account"}),e.jsx(n,{name:"ExternalLink"})]})}),e.jsx("li",{children:e.jsxs(t,{to:"/preferences",className:"relative underline",onClick:g,children:[p?e.jsx(d,{tooltip:"Customize your workshop experience!",size:"sm",className:"-top-1 -left-4"}):null,"Manage your preferences"]})}),e.jsx("li",{children:e.jsxs(t,{to:"/guide",className:"relative underline",onClick:x,children:[h?e.jsx(d,{tooltip:"Learn how to use the workshop app!",size:"sm",className:"-top-1 -left-4"}):null,"Workshop app guide"]})}),e.jsx("li",{children:e.jsx(t,{to:"/support",className:"underline",children:"Get support"})})]})]})});export{S as default,F as handle};
2
- //# sourceMappingURL=account-Cs3Te0is.js.map
1
+ import{w as f,L as t,F as j}from"./chunk-EPOLDU6W-BCLmut3y.js";import{j as e}from"./jsx-runtime-C5WNSv3b.js";import{B as N}from"./button-Cd-ekki5.js";import{I as n,c as w}from"./misc-W4055b-0.js";import{u as l,O as d}from"./onboarding-indicator-B-XR90_G.js";import{S as c}from"./tooltip-Tlsyx2YO.js";import{u as v,a as b,b as k}from"./user-BsPobzjB.js";import{u}from"./workshop-config-Zfc8zU0x.js";import"./index-CqIc3cxq.js";import"./root-loader-BOzEMapJ.js";import"./index-vDCSPjrM.js";const F={getSitemapEntries:()=>null};function y(){const{product:{host:a}}=u();return`https://${a}/discord`}const S=f(function(){const s=v(),o=u(),r=b(),m=y(),i=k(),[h,x]=l("account-guide"),[p,g]=l("account-preferences");return e.jsxs("main",{className:"container flex h-full w-full max-w-3xl grow flex-col items-center justify-center gap-4",children:[e.jsxs("div",{className:"flex flex-col items-center",children:[s.imageUrlLarge?e.jsx("img",{className:"h-36 w-36 rounded-full",alt:r?.displayName??s.name??s.email,src:s.imageUrlLarge}):e.jsx("div",{className:"bg-muted flex h-36 w-36 items-center justify-center rounded-full",children:e.jsx(n,{name:"User",size:"xl"})}),e.jsx("p",{className:"text-muted-foreground mt-2 text-center text-xs",children:r?e.jsxs(e.Fragment,{children:["Photo from"," ",e.jsx("a",{href:"https://discord.com/channels/@me",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"Discord"})]}):e.jsxs(e.Fragment,{children:["Photo from"," ",e.jsx("a",{href:"https://gravatar.com",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"Gravatar"})," ","or connect Discord below"]})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h1",{className:"mb-1 text-2xl",children:"Your Account"}),o.product.slug?e.jsx(c,{content:i?"You have access to this workshop":"You do not have full access to this workshop",children:e.jsx(n,{name:i?"Success":"Error",size:"lg",className:w(i?"bg-success text-success-foreground":"bg-warning text-warning-foreground","rounded-full p-1"),tabIndex:0})}):null]}),!i&&o.product.slug?e.jsx("div",{className:"prose",children:e.jsxs("callout-warning",{className:"notification",children:["Please"," ",e.jsx("a",{href:`https://${o.product.host}/workshops/${o.product.slug}`,className:"underline",children:"upgrade"})," ","your account to get full access to this workshop."]})}):null,e.jsx("p",{className:"text-muted-foreground text-center",children:s.name?`Hi ${r?.displayName??s.name}, your device is logged in with ${s.email}.`:`Your device is logged in with ${s.email}.`}),r?e.jsx(e.Fragment,{children:e.jsxs("p",{className:"text-muted-foreground text-center",children:["And you are connected to discord as"," ",e.jsx("a",{href:`https://discord.com/users/${r.id}`,target:"_blank",rel:"noopener noreferrer",className:"underline",children:r.displayName}),"."]})}):e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(t,{to:m,className:"inline-flex items-center gap-2 underline",children:[e.jsx(n,{name:"Discord",size:"lg"}),"Connect Discord"]}),e.jsx(c,{content:"This will give you access to the exclusive Discord channels for Epic Web",children:e.jsx(n,{name:"Question",tabIndex:0})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{method:"post",children:e.jsx(N,{varient:"mono",name:"intent",value:"logout",children:"Log device out"})}),e.jsx(c,{content:e.jsxs("div",{children:["Note: it is your ",e.jsx("i",{className:"italic",children:"device"})," that's logged in, not your browser.",e.jsx("br",{}),"So all browsers on this device will be logged in with the same account on this device."]}),children:e.jsx(n,{name:"Question",tabIndex:0})})]}),e.jsx("hr",{className:"w-full"}),e.jsxs("ul",{className:"flex list-inside list-disc flex-col gap-2 self-start",children:[e.jsx("li",{children:e.jsxs(t,{to:`https://${o.product.host}/profile`,className:"inline-flex gap-1 underline",children:[e.jsx("span",{children:"Manage your account"}),e.jsx(n,{name:"ExternalLink"})]})}),e.jsx("li",{children:e.jsxs(t,{to:"/preferences",className:"relative underline",onClick:g,children:[p?e.jsx(d,{tooltip:"Customize your workshop experience!",size:"sm",className:"-top-1 -left-4"}):null,"Manage your preferences"]})}),e.jsx("li",{children:e.jsxs(t,{to:"/guide",className:"relative underline",onClick:x,children:[h?e.jsx(d,{tooltip:"Learn how to use the workshop app!",size:"sm",className:"-top-1 -left-4"}):null,"Workshop app guide"]})}),e.jsx("li",{children:e.jsx(t,{to:"/support",className:"underline",children:"Get support"})})]})]})});export{S as default,F as handle};
2
+ //# sourceMappingURL=account-C96cpeZR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account-Cs3Te0is.js","sources":["../../../app/routes/_app+/account.tsx"],"sourcesContent":["import { deleteCache } from '@epic-web/workshop-utils/cache.server'\nimport {\n\tlogout,\n\trequireAuthInfo,\n\tsetPreferences,\n} from '@epic-web/workshop-utils/db.server'\nimport { type SEOHandle } from '@nasa-gcn/remix-seo'\nimport { redirect, type LoaderFunctionArgs, Form, Link } from 'react-router'\nimport { Button } from '#app/components/button.tsx'\nimport { Icon } from '#app/components/icons.tsx'\nimport {\n\tOnboardingBadge,\n\tuseOnboardingIndicator,\n} from '#app/components/onboarding-indicator.tsx'\nimport { SimpleTooltip } from '#app/components/ui/tooltip.tsx'\nimport {\n\tuseOptionalDiscordMember,\n\tuseUser,\n\tuseUserHasAccess,\n} from '#app/components/user.tsx'\nimport { useWorkshopConfig } from '#app/components/workshop-config.tsx'\nimport { cn, ensureUndeployed } from '#app/utils/misc.tsx'\nimport { redirectWithToast } from '#app/utils/toast.server.ts'\n\nexport const handle: SEOHandle = {\n\tgetSitemapEntries: () => null,\n}\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tensureUndeployed()\n\tawait requireAuthInfo({ request })\n\treturn {}\n}\n\nexport async function action({ request }: { request: Request }) {\n\tensureUndeployed()\n\tconst formData = await request.formData()\n\tconst intent = formData.get('intent')\n\tif (intent === 'logout') {\n\t\tawait logout()\n\t\tawait deleteCache()\n\t\treturn redirectWithToast('/login', {\n\t\t\ttype: 'success',\n\t\t\ttitle: 'Logged out',\n\t\t\tdescription: 'Goodbye! Come back soon!',\n\t\t})\n\t} else if (intent === 'presence-opt-out') {\n\t\tconst optOut = formData.get('optOut') === 'true'\n\t\tawait setPreferences({ presence: { optOut } })\n\t\treturn redirectWithToast('/account', {\n\t\t\ttitle: optOut ? 'Opted out' : 'Opted in',\n\t\t\tdescription: `You are now ${optOut ? 'invisible' : 'visible'}.`,\n\t\t\ttype: 'success',\n\t\t})\n\t}\n\n\treturn redirect('/account')\n}\n\nfunction useConnectDiscordURL() {\n\tconst {\n\t\tproduct: { host },\n\t} = useWorkshopConfig()\n\treturn `https://${host}/discord`\n}\n\nexport default function Account() {\n\tconst user = useUser()\n\tconst config = useWorkshopConfig()\n\tconst discordMember = useOptionalDiscordMember()\n\tconst connectDiscordURL = useConnectDiscordURL()\n\tconst userHasAccess = useUserHasAccess()\n\n\t// Onboarding indicators\n\tconst [showGuideBadge, dismissGuideBadge] =\n\t\tuseOnboardingIndicator('account-guide')\n\tconst [showPreferencesBadge, dismissPreferencesBadge] =\n\t\tuseOnboardingIndicator('account-preferences')\n\n\treturn (\n\t\t<main className=\"container flex h-full w-full max-w-3xl grow flex-col items-center justify-center gap-4\">\n\t\t\t<div className=\"flex flex-col items-center\">\n\t\t\t\t{user.imageUrlLarge ? (\n\t\t\t\t\t<img\n\t\t\t\t\t\tclassName=\"h-36 w-36 rounded-full\"\n\t\t\t\t\t\talt={discordMember?.displayName ?? user.name ?? user.email}\n\t\t\t\t\t\tsrc={user.imageUrlLarge}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<div className=\"bg-muted flex h-36 w-36 items-center justify-center rounded-full\">\n\t\t\t\t\t\t<Icon name=\"User\" size=\"xl\" />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<p className=\"text-muted-foreground mt-2 text-center text-xs\">\n\t\t\t\t\t{discordMember ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\tPhoto from{' '}\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"https://discord.com/channels/@me\"\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tDiscord\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\tPhoto from{' '}\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"https://gravatar.com\"\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tGravatar\n\t\t\t\t\t\t\t</a>{' '}\n\t\t\t\t\t\t\tor connect Discord below\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<h1 className=\"mb-1 text-2xl\">Your Account</h1>\n\t\t\t\t{config.product.slug ? (\n\t\t\t\t\t<SimpleTooltip\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\tuserHasAccess\n\t\t\t\t\t\t\t\t? 'You have access to this workshop'\n\t\t\t\t\t\t\t\t: 'You do not have full access to this workshop'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tname={userHasAccess ? 'Success' : 'Error'}\n\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\tuserHasAccess\n\t\t\t\t\t\t\t\t\t? 'bg-success text-success-foreground'\n\t\t\t\t\t\t\t\t\t: 'bg-warning text-warning-foreground',\n\t\t\t\t\t\t\t\t'rounded-full p-1',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t) : null}\n\t\t\t</div>\n\n\t\t\t{!userHasAccess && config.product.slug ? (\n\t\t\t\t<div className=\"prose\">\n\t\t\t\t\t<callout-warning className=\"notification\">\n\t\t\t\t\t\tPlease{' '}\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={`https://${config.product.host}/workshops/${config.product.slug}`}\n\t\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tupgrade\n\t\t\t\t\t\t</a>{' '}\n\t\t\t\t\t\tyour account to get full access to this workshop.\n\t\t\t\t\t</callout-warning>\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t\t<p className=\"text-muted-foreground text-center\">\n\t\t\t\t{user.name\n\t\t\t\t\t? `Hi ${\n\t\t\t\t\t\t\tdiscordMember?.displayName ?? user.name\n\t\t\t\t\t\t}, your device is logged in with ${user.email}.`\n\t\t\t\t\t: `Your device is logged in with ${user.email}.`}\n\t\t\t</p>\n\t\t\t{discordMember ? (\n\t\t\t\t<>\n\t\t\t\t\t<p className=\"text-muted-foreground text-center\">\n\t\t\t\t\t\tAnd you are connected to discord as{' '}\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={`https://discord.com/users/${discordMember.id}`}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{discordMember.displayName}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t.\n\t\t\t\t\t</p>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto={connectDiscordURL}\n\t\t\t\t\t\tclassName=\"inline-flex items-center gap-2 underline\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon name=\"Discord\" size=\"lg\" />\n\t\t\t\t\t\tConnect Discord\n\t\t\t\t\t</Link>\n\t\t\t\t\t<SimpleTooltip content=\"This will give you access to the exclusive Discord channels for Epic Web\">\n\t\t\t\t\t\t<Icon name=\"Question\" tabIndex={0} />\n\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<Form method=\"post\">\n\t\t\t\t\t<Button varient=\"mono\" name=\"intent\" value=\"logout\">\n\t\t\t\t\t\tLog device out\n\t\t\t\t\t</Button>\n\t\t\t\t</Form>\n\t\t\t\t<SimpleTooltip\n\t\t\t\t\tcontent={\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\tNote: it is your <i className=\"italic\">device</i> that's logged\n\t\t\t\t\t\t\tin, not your browser.\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\tSo all browsers on this device will be logged in with the same\n\t\t\t\t\t\t\taccount on this device.\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<Icon name=\"Question\" tabIndex={0} />\n\t\t\t\t</SimpleTooltip>\n\t\t\t</div>\n\t\t\t<hr className=\"w-full\" />\n\t\t\t<ul className=\"flex list-inside list-disc flex-col gap-2 self-start\">\n\t\t\t\t<li>\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto={`https://${config.product.host}/profile`}\n\t\t\t\t\t\tclassName=\"inline-flex gap-1 underline\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>Manage your account</span>\n\t\t\t\t\t\t<Icon name=\"ExternalLink\" />\n\t\t\t\t\t</Link>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto=\"/preferences\"\n\t\t\t\t\t\tclassName=\"relative underline\"\n\t\t\t\t\t\tonClick={dismissPreferencesBadge}\n\t\t\t\t\t>\n\t\t\t\t\t\t{showPreferencesBadge ? (\n\t\t\t\t\t\t\t<OnboardingBadge\n\t\t\t\t\t\t\t\ttooltip=\"Customize your workshop experience!\"\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\tclassName=\"-top-1 -left-4\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\tManage your preferences\n\t\t\t\t\t</Link>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto=\"/guide\"\n\t\t\t\t\t\tclassName=\"relative underline\"\n\t\t\t\t\t\tonClick={dismissGuideBadge}\n\t\t\t\t\t>\n\t\t\t\t\t\t{showGuideBadge ? (\n\t\t\t\t\t\t\t<OnboardingBadge\n\t\t\t\t\t\t\t\ttooltip=\"Learn how to use the workshop app!\"\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\tclassName=\"-top-1 -left-4\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\tWorkshop app guide\n\t\t\t\t\t</Link>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<Link to=\"/support\" className=\"underline\">\n\t\t\t\t\t\tGet support\n\t\t\t\t\t</Link>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</main>\n\t)\n}\n"],"names":["handle","getSitemapEntries","useConnectDiscordURL","product","host","useWorkshopConfig","account","_UNSAFE_withComponentProps","user","useUser","config","discordMember","useOptionalDiscordMember","connectDiscordURL","userHasAccess","useUserHasAccess","showGuideBadge","dismissGuideBadge","useOnboardingIndicator","showPreferencesBadge","dismissPreferencesBadge","jsxs","className","children","imageUrlLarge","jsx","alt","displayName","name","email","src","Icon","size","Fragment","href","target","rel","slug","SimpleTooltip","content","cn","tabIndex","id","Link","to","Form","method","Button","varient","value","onClick","OnboardingBadge","tooltip"],"mappings":"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"}
1
+ {"version":3,"file":"account-C96cpeZR.js","sources":["../../../app/routes/_app+/account.tsx"],"sourcesContent":["import { deleteCache } from '@epic-web/workshop-utils/cache.server'\nimport {\n\tlogout,\n\trequireAuthInfo,\n\tsetPreferences,\n} from '@epic-web/workshop-utils/db.server'\nimport { type SEOHandle } from '@nasa-gcn/remix-seo'\nimport { redirect, type LoaderFunctionArgs, Form, Link } from 'react-router'\nimport { Button } from '#app/components/button.tsx'\nimport { Icon } from '#app/components/icons.tsx'\nimport {\n\tOnboardingBadge,\n\tuseOnboardingIndicator,\n} from '#app/components/onboarding-indicator.tsx'\nimport { SimpleTooltip } from '#app/components/ui/tooltip.tsx'\nimport {\n\tuseOptionalDiscordMember,\n\tuseUser,\n\tuseUserHasAccess,\n} from '#app/components/user.tsx'\nimport { useWorkshopConfig } from '#app/components/workshop-config.tsx'\nimport { cn, ensureUndeployed } from '#app/utils/misc.tsx'\nimport { redirectWithToast } from '#app/utils/toast.server.ts'\n\nexport const handle: SEOHandle = {\n\tgetSitemapEntries: () => null,\n}\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tensureUndeployed()\n\tawait requireAuthInfo({ request })\n\treturn {}\n}\n\nexport async function action({ request }: { request: Request }) {\n\tensureUndeployed()\n\tconst formData = await request.formData()\n\tconst intent = formData.get('intent')\n\tif (intent === 'logout') {\n\t\tawait logout()\n\t\tawait deleteCache()\n\t\treturn redirectWithToast('/login', {\n\t\t\ttype: 'success',\n\t\t\ttitle: 'Logged out',\n\t\t\tdescription: 'Goodbye! Come back soon!',\n\t\t})\n\t} else if (intent === 'presence-opt-out') {\n\t\tconst optOut = formData.get('optOut') === 'true'\n\t\tawait setPreferences({ presence: { optOut } })\n\t\treturn redirectWithToast('/account', {\n\t\t\ttitle: optOut ? 'Opted out' : 'Opted in',\n\t\t\tdescription: `You are now ${optOut ? 'invisible' : 'visible'}.`,\n\t\t\ttype: 'success',\n\t\t})\n\t}\n\n\treturn redirect('/account')\n}\n\nfunction useConnectDiscordURL() {\n\tconst {\n\t\tproduct: { host },\n\t} = useWorkshopConfig()\n\treturn `https://${host}/discord`\n}\n\nexport default function Account() {\n\tconst user = useUser()\n\tconst config = useWorkshopConfig()\n\tconst discordMember = useOptionalDiscordMember()\n\tconst connectDiscordURL = useConnectDiscordURL()\n\tconst userHasAccess = useUserHasAccess()\n\n\t// Onboarding indicators\n\tconst [showGuideBadge, dismissGuideBadge] =\n\t\tuseOnboardingIndicator('account-guide')\n\tconst [showPreferencesBadge, dismissPreferencesBadge] =\n\t\tuseOnboardingIndicator('account-preferences')\n\n\treturn (\n\t\t<main className=\"container flex h-full w-full max-w-3xl grow flex-col items-center justify-center gap-4\">\n\t\t\t<div className=\"flex flex-col items-center\">\n\t\t\t\t{user.imageUrlLarge ? (\n\t\t\t\t\t<img\n\t\t\t\t\t\tclassName=\"h-36 w-36 rounded-full\"\n\t\t\t\t\t\talt={discordMember?.displayName ?? user.name ?? user.email}\n\t\t\t\t\t\tsrc={user.imageUrlLarge}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<div className=\"bg-muted flex h-36 w-36 items-center justify-center rounded-full\">\n\t\t\t\t\t\t<Icon name=\"User\" size=\"xl\" />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<p className=\"text-muted-foreground mt-2 text-center text-xs\">\n\t\t\t\t\t{discordMember ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\tPhoto from{' '}\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"https://discord.com/channels/@me\"\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tDiscord\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\tPhoto from{' '}\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"https://gravatar.com\"\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tGravatar\n\t\t\t\t\t\t\t</a>{' '}\n\t\t\t\t\t\t\tor connect Discord below\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<h1 className=\"mb-1 text-2xl\">Your Account</h1>\n\t\t\t\t{config.product.slug ? (\n\t\t\t\t\t<SimpleTooltip\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\tuserHasAccess\n\t\t\t\t\t\t\t\t? 'You have access to this workshop'\n\t\t\t\t\t\t\t\t: 'You do not have full access to this workshop'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tname={userHasAccess ? 'Success' : 'Error'}\n\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\tuserHasAccess\n\t\t\t\t\t\t\t\t\t? 'bg-success text-success-foreground'\n\t\t\t\t\t\t\t\t\t: 'bg-warning text-warning-foreground',\n\t\t\t\t\t\t\t\t'rounded-full p-1',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t) : null}\n\t\t\t</div>\n\n\t\t\t{!userHasAccess && config.product.slug ? (\n\t\t\t\t<div className=\"prose\">\n\t\t\t\t\t<callout-warning className=\"notification\">\n\t\t\t\t\t\tPlease{' '}\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={`https://${config.product.host}/workshops/${config.product.slug}`}\n\t\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tupgrade\n\t\t\t\t\t\t</a>{' '}\n\t\t\t\t\t\tyour account to get full access to this workshop.\n\t\t\t\t\t</callout-warning>\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t\t<p className=\"text-muted-foreground text-center\">\n\t\t\t\t{user.name\n\t\t\t\t\t? `Hi ${\n\t\t\t\t\t\t\tdiscordMember?.displayName ?? user.name\n\t\t\t\t\t\t}, your device is logged in with ${user.email}.`\n\t\t\t\t\t: `Your device is logged in with ${user.email}.`}\n\t\t\t</p>\n\t\t\t{discordMember ? (\n\t\t\t\t<>\n\t\t\t\t\t<p className=\"text-muted-foreground text-center\">\n\t\t\t\t\t\tAnd you are connected to discord as{' '}\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={`https://discord.com/users/${discordMember.id}`}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{discordMember.displayName}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t.\n\t\t\t\t\t</p>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto={connectDiscordURL}\n\t\t\t\t\t\tclassName=\"inline-flex items-center gap-2 underline\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon name=\"Discord\" size=\"lg\" />\n\t\t\t\t\t\tConnect Discord\n\t\t\t\t\t</Link>\n\t\t\t\t\t<SimpleTooltip content=\"This will give you access to the exclusive Discord channels for Epic Web\">\n\t\t\t\t\t\t<Icon name=\"Question\" tabIndex={0} />\n\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<Form method=\"post\">\n\t\t\t\t\t<Button varient=\"mono\" name=\"intent\" value=\"logout\">\n\t\t\t\t\t\tLog device out\n\t\t\t\t\t</Button>\n\t\t\t\t</Form>\n\t\t\t\t<SimpleTooltip\n\t\t\t\t\tcontent={\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\tNote: it is your <i className=\"italic\">device</i> that's logged\n\t\t\t\t\t\t\tin, not your browser.\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\tSo all browsers on this device will be logged in with the same\n\t\t\t\t\t\t\taccount on this device.\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<Icon name=\"Question\" tabIndex={0} />\n\t\t\t\t</SimpleTooltip>\n\t\t\t</div>\n\t\t\t<hr className=\"w-full\" />\n\t\t\t<ul className=\"flex list-inside list-disc flex-col gap-2 self-start\">\n\t\t\t\t<li>\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto={`https://${config.product.host}/profile`}\n\t\t\t\t\t\tclassName=\"inline-flex gap-1 underline\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>Manage your account</span>\n\t\t\t\t\t\t<Icon name=\"ExternalLink\" />\n\t\t\t\t\t</Link>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto=\"/preferences\"\n\t\t\t\t\t\tclassName=\"relative underline\"\n\t\t\t\t\t\tonClick={dismissPreferencesBadge}\n\t\t\t\t\t>\n\t\t\t\t\t\t{showPreferencesBadge ? (\n\t\t\t\t\t\t\t<OnboardingBadge\n\t\t\t\t\t\t\t\ttooltip=\"Customize your workshop experience!\"\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\tclassName=\"-top-1 -left-4\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\tManage your preferences\n\t\t\t\t\t</Link>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto=\"/guide\"\n\t\t\t\t\t\tclassName=\"relative underline\"\n\t\t\t\t\t\tonClick={dismissGuideBadge}\n\t\t\t\t\t>\n\t\t\t\t\t\t{showGuideBadge ? (\n\t\t\t\t\t\t\t<OnboardingBadge\n\t\t\t\t\t\t\t\ttooltip=\"Learn how to use the workshop app!\"\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\tclassName=\"-top-1 -left-4\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\tWorkshop app guide\n\t\t\t\t\t</Link>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<Link to=\"/support\" className=\"underline\">\n\t\t\t\t\t\tGet support\n\t\t\t\t\t</Link>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</main>\n\t)\n}\n"],"names":["handle","getSitemapEntries","useConnectDiscordURL","product","host","useWorkshopConfig","account","_UNSAFE_withComponentProps","user","useUser","config","discordMember","useOptionalDiscordMember","connectDiscordURL","userHasAccess","useUserHasAccess","showGuideBadge","dismissGuideBadge","useOnboardingIndicator","showPreferencesBadge","dismissPreferencesBadge","jsxs","className","children","imageUrlLarge","jsx","alt","displayName","name","email","src","Icon","size","Fragment","href","target","rel","slug","SimpleTooltip","content","cn","tabIndex","id","Link","to","Form","method","Button","varient","value","onClick","OnboardingBadge","tooltip"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{w as t,b as p}from"./chunk-EPOLDU6W-BCLmut3y.js";import{j as s}from"./jsx-runtime-C5WNSv3b.js";import{r as i}from"./index-CqIc3cxq.js";import{P as m}from"./preview-fhmjENlm.js";import"./misc-W4055b-0.js";import"./button-Cd-ekki5.js";import"./loading-CDNzW5oO.js";import"./index-CdzVFL-Z.js";import"./tooltip-Tlsyx2YO.js";import"./index-vDCSPjrM.js";import"./root-loader-BOzEMapJ.js";import"./pe-CIZUOJMr.js";import"./schemas-Uj5SZtvt.js";import"./progress-bar-DpWhcyhC.js";const L=t(function(){const{appInfo:r}=p(),o=i.useRef(null);return s.jsx(m,{appInfo:r,inBrowserBrowserRef:o})});export{L as default};
2
+ //# sourceMappingURL=app-CJniokic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-TcFAQB2o.js","sources":["../../../app/routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app.tsx"],"sourcesContent":["import { requireExerciseApp } from '@epic-web/workshop-utils/apps.server'\nimport {\n\tcombineServerTimings,\n\tmakeTimings,\n} from '@epic-web/workshop-utils/timing.server'\nimport { useRef } from 'react'\nimport {\n\tdata,\n\ttype HeadersFunction,\n\ttype LoaderFunctionArgs,\n\tuseLoaderData,\n} from 'react-router'\nimport { type InBrowserBrowserRef } from '#app/components/in-browser-browser.ts'\nimport { Preview } from './__shared/preview.tsx'\nimport { getAppRunningState } from './__shared/utils.tsx'\n\nexport async function loader({ request, params }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('exercise-step-test')\n\tconst exerciseStepApp = await requireExerciseApp(params, { request, timings })\n\tconst { isRunning, portIsAvailable } =\n\t\tawait getAppRunningState(exerciseStepApp)\n\n\treturn data(\n\t\t{\n\t\t\tappInfo: {\n\t\t\t\tisRunning,\n\t\t\t\tname: exerciseStepApp.name,\n\t\t\t\ttitle: exerciseStepApp.title,\n\t\t\t\tportIsAvailable,\n\t\t\t\ttype: exerciseStepApp.type,\n\t\t\t\tfullPath: exerciseStepApp.fullPath,\n\t\t\t\tdev: exerciseStepApp.dev,\n\t\t\t\ttest: exerciseStepApp.test,\n\t\t\t\tstackBlitzUrl: exerciseStepApp.stackBlitzUrl,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\theaders: {\n\t\t\t\t'Server-Timing': timings.toString(),\n\t\t\t},\n\t\t},\n\t)\n}\n\nexport const headers: HeadersFunction = ({ loaderHeaders, parentHeaders }) => {\n\tconst headers = {\n\t\t'Server-Timing': combineServerTimings(loaderHeaders, parentHeaders),\n\t}\n\treturn headers\n}\n\nexport default function TestsList() {\n\tconst { appInfo } = useLoaderData<typeof loader>()\n\tconst ref = useRef<InBrowserBrowserRef>(null)\n\n\treturn <Preview appInfo={appInfo} inBrowserBrowserRef={ref} />\n}\n"],"names":["app","_UNSAFE_withComponentProps","appInfo","useLoaderData","ref","useRef","jsx","Preview","inBrowserBrowserRef"],"mappings":"geAmDA,MAAAA,EAAAC,EAAA,UAAoC,CACnC,KAAM,CAAEC,QAAAA,GAAYC,EAAA,EACdC,EAAMC,EAAAA,OAA4B,IAAI,EAE5C,OAAOC,EAAAA,IAACC,EAAA,CAAQL,QAAAA,EAAkBM,oBAAqBJ,CAAA,CAAK,CAC7D,CAAA"}
1
+ {"version":3,"file":"app-CJniokic.js","sources":["../../../app/routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app.tsx"],"sourcesContent":["import { requireExerciseApp } from '@epic-web/workshop-utils/apps.server'\nimport {\n\tcombineServerTimings,\n\tmakeTimings,\n} from '@epic-web/workshop-utils/timing.server'\nimport { useRef } from 'react'\nimport {\n\tdata,\n\ttype HeadersFunction,\n\ttype LoaderFunctionArgs,\n\tuseLoaderData,\n} from 'react-router'\nimport { type InBrowserBrowserRef } from '#app/components/in-browser-browser.ts'\nimport { Preview } from './__shared/preview.tsx'\nimport { getAppRunningState } from './__shared/utils.tsx'\n\nexport async function loader({ request, params }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('exercise-step-test')\n\tconst exerciseStepApp = await requireExerciseApp(params, { request, timings })\n\tconst { isRunning, portIsAvailable } =\n\t\tawait getAppRunningState(exerciseStepApp)\n\n\treturn data(\n\t\t{\n\t\t\tappInfo: {\n\t\t\t\tisRunning,\n\t\t\t\tname: exerciseStepApp.name,\n\t\t\t\ttitle: exerciseStepApp.title,\n\t\t\t\tportIsAvailable,\n\t\t\t\ttype: exerciseStepApp.type,\n\t\t\t\tfullPath: exerciseStepApp.fullPath,\n\t\t\t\tdev: exerciseStepApp.dev,\n\t\t\t\ttest: exerciseStepApp.test,\n\t\t\t\tstackBlitzUrl: exerciseStepApp.stackBlitzUrl,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\theaders: {\n\t\t\t\t'Server-Timing': timings.toString(),\n\t\t\t},\n\t\t},\n\t)\n}\n\nexport const headers: HeadersFunction = ({ loaderHeaders, parentHeaders }) => {\n\tconst headers = {\n\t\t'Server-Timing': combineServerTimings(loaderHeaders, parentHeaders),\n\t}\n\treturn headers\n}\n\nexport default function TestsList() {\n\tconst { appInfo } = useLoaderData<typeof loader>()\n\tconst ref = useRef<InBrowserBrowserRef>(null)\n\n\treturn <Preview appInfo={appInfo} inBrowserBrowserRef={ref} />\n}\n"],"names":["app","_UNSAFE_withComponentProps","appInfo","useLoaderData","ref","useRef","jsx","Preview","inBrowserBrowserRef"],"mappings":"geAmDA,MAAAA,EAAAC,EAAA,UAAoC,CACnC,KAAM,CAAEC,QAAAA,GAAYC,EAAA,EACdC,EAAMC,EAAAA,OAA4B,IAAI,EAE5C,OAAOC,EAAAA,IAACC,EAAA,CAAQL,QAAAA,EAAkBM,oBAAqBJ,CAAA,CAAK,CAC7D,CAAA"}
@@ -1,2 +1,2 @@
1
- import{M as ln,N as an,O as Y,P as O,Q,R as un,S as y,T as tn,V as j,W as _,X as rn,Y as o,Z as sn,$ as on,a0 as fn}from"./mermaid.core-D3y7PO8B.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,D,S,v,R,V,a){var E=D-l,i=S-h,n=V-v,d=a-R,u=d*E-n*i;if(!(u*u<y))return u=(n*(h-R)-d*(l-v))/u,[l+u*E,h+u*i]}function H(l,h,D,S,v,R,V){var a=l-D,E=h-S,i=(V?R:-R)/j(a*a+E*E),n=i*E,d=-i*a,u=l+n,s=h+d,f=D+n,c=S+d,W=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,A=m*m+g*g,T=v-R,P=u*c-f*s,I=(g<0?-1:1)*j(on(0,T*T*A-P*P)),M=(P*g-m*I)/A,N=(-P*m-g*I)/A,w=(P*g+m*I)/A,p=(-P*m+g*I)/A,x=M-W,e=N-t,r=w-W,X=p-t;return x*x+e*e>r*r+X*X&&(M=w,N=p),{cx:M,cy:N,x01:-n,y01:-d,x11:M*(v/T-1),y11:N*(v/T-1)}}function hn(){var l=cn,h=yn,D=Q(0),S=null,v=gn,R=dn,V=mn,a=null,E=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=R.apply(this,arguments)-un,W=rn(c-f),t=c>f;if(a||(a=n=E()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(W>tn-y)a.moveTo(s*Y(f),s*O(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*Y(c),u*O(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,A=f,T=c,P=W,I=W,M=V.apply(this,arguments)/2,N=M>y&&(S?+S.apply(this,arguments):j(u*u+s*s)),w=_(rn(s-u)/2,+D.apply(this,arguments)),p=w,x=w,e,r;if(N>y){var X=sn(N/u*O(M)),z=sn(N/s*O(M));(P-=X*2)>y?(X*=t?1:-1,A+=X,T-=X):(P=0,A=T=(f+c)/2),(I-=z*2)>y?(z*=t?1:-1,m+=z,g-=z):(I=0,m=g=(f+c)/2)}var Z=s*Y(m),$=s*O(m),B=u*Y(T),C=u*O(T);if(w>y){var F=s*Y(g),G=s*O(g),J=u*Y(A),K=u*O(A),q;if(W<an)if(q=pn(Z,$,J,K,F,G,B,C)){var L=Z-q[0],U=$-q[1],k=F-q[0],b=G-q[1],nn=1/O(fn((L*k+U*b)/(j(L*L+U*U)*j(k*k+b*b)))/2),en=j(q[0]*q[0]+q[1]*q[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}I>y?x>y?(e=H(J,K,Z,$,s,x,t),r=H(F,G,B,C,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(Z,$),a.arc(0,0,s,m,g,!t)):a.moveTo(Z,$),!(u>y)||!(P>y)?a.lineTo(B,C):p>y?(e=H(B,C,F,G,u,-p,t),r=H(Z,$,J,K,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,A,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +R.apply(this,arguments))/2-an/2;return[Y(d)*n,O(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:Q(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:Q(+n),i):h},i.cornerRadius=function(n){return arguments.length?(D=typeof n=="function"?n:Q(+n),i):D},i.padRadius=function(n){return arguments.length?(S=n==null?null:typeof n=="function"?n:Q(+n),i):S},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:Q(+n),i):v},i.endAngle=function(n){return arguments.length?(R=typeof n=="function"?n:Q(+n),i):R},i.padAngle=function(n){return arguments.length?(V=typeof n=="function"?n:Q(+n),i):V},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
2
- //# sourceMappingURL=arc-BHxP6xxO.js.map
1
+ import{M as ln,N as an,O as Y,P as O,Q,R as un,S as y,T as tn,V as j,W as _,X as rn,Y as o,Z as sn,$ as on,a0 as fn}from"./mermaid.core-BdxLLjl2.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,D,S,v,R,V,a){var E=D-l,i=S-h,n=V-v,d=a-R,u=d*E-n*i;if(!(u*u<y))return u=(n*(h-R)-d*(l-v))/u,[l+u*E,h+u*i]}function H(l,h,D,S,v,R,V){var a=l-D,E=h-S,i=(V?R:-R)/j(a*a+E*E),n=i*E,d=-i*a,u=l+n,s=h+d,f=D+n,c=S+d,W=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,A=m*m+g*g,T=v-R,P=u*c-f*s,I=(g<0?-1:1)*j(on(0,T*T*A-P*P)),M=(P*g-m*I)/A,N=(-P*m-g*I)/A,w=(P*g+m*I)/A,p=(-P*m+g*I)/A,x=M-W,e=N-t,r=w-W,X=p-t;return x*x+e*e>r*r+X*X&&(M=w,N=p),{cx:M,cy:N,x01:-n,y01:-d,x11:M*(v/T-1),y11:N*(v/T-1)}}function hn(){var l=cn,h=yn,D=Q(0),S=null,v=gn,R=dn,V=mn,a=null,E=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=R.apply(this,arguments)-un,W=rn(c-f),t=c>f;if(a||(a=n=E()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(W>tn-y)a.moveTo(s*Y(f),s*O(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*Y(c),u*O(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,A=f,T=c,P=W,I=W,M=V.apply(this,arguments)/2,N=M>y&&(S?+S.apply(this,arguments):j(u*u+s*s)),w=_(rn(s-u)/2,+D.apply(this,arguments)),p=w,x=w,e,r;if(N>y){var X=sn(N/u*O(M)),z=sn(N/s*O(M));(P-=X*2)>y?(X*=t?1:-1,A+=X,T-=X):(P=0,A=T=(f+c)/2),(I-=z*2)>y?(z*=t?1:-1,m+=z,g-=z):(I=0,m=g=(f+c)/2)}var Z=s*Y(m),$=s*O(m),B=u*Y(T),C=u*O(T);if(w>y){var F=s*Y(g),G=s*O(g),J=u*Y(A),K=u*O(A),q;if(W<an)if(q=pn(Z,$,J,K,F,G,B,C)){var L=Z-q[0],U=$-q[1],k=F-q[0],b=G-q[1],nn=1/O(fn((L*k+U*b)/(j(L*L+U*U)*j(k*k+b*b)))/2),en=j(q[0]*q[0]+q[1]*q[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}I>y?x>y?(e=H(J,K,Z,$,s,x,t),r=H(F,G,B,C,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(Z,$),a.arc(0,0,s,m,g,!t)):a.moveTo(Z,$),!(u>y)||!(P>y)?a.lineTo(B,C):p>y?(e=H(B,C,F,G,u,-p,t),r=H(Z,$,J,K,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,A,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +R.apply(this,arguments))/2-an/2;return[Y(d)*n,O(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:Q(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:Q(+n),i):h},i.cornerRadius=function(n){return arguments.length?(D=typeof n=="function"?n:Q(+n),i):D},i.padRadius=function(n){return arguments.length?(S=n==null?null:typeof n=="function"?n:Q(+n),i):S},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:Q(+n),i):v},i.endAngle=function(n){return arguments.length?(R=typeof n=="function"?n:Q(+n),i):R},i.padAngle=function(n){return arguments.length?(V=typeof n=="function"?n:Q(+n),i):V},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
2
+ //# sourceMappingURL=arc-ChVm3d4e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arc-BHxP6xxO.js","sources":["../../../../../node_modules/d3-shape/src/arc.js"],"sourcesContent":["import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n"],"names":["arcInnerRadius","d","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","intersect","x0","y0","x1","y1","x2","y2","x3","y3","x10","y10","x32","y32","t","epsilon","cornerTangents","r1","rc","cw","x01","y01","lo","sqrt","ox","oy","x11","y11","x00","y00","dx","dy","d2","r","D","max","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","d3arc","innerRadius","outerRadius","cornerRadius","constant","padRadius","startAngle","endAngle","padAngle","context","path","withPath","arc","buffer","r0","a0","halfPi","a1","da","abs","tau","cos","sin","a01","a11","a00","a10","da0","da1","ap","rp","min","rc0","rc1","t0","t1","p0","asin","p1","oc","pi","ax","ay","bx","by","kc","acos","lc","atan2","a","_"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"arc-ChVm3d4e.js","sources":["../../../../../node_modules/d3-shape/src/arc.js"],"sourcesContent":["import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n"],"names":["arcInnerRadius","d","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","intersect","x0","y0","x1","y1","x2","y2","x3","y3","x10","y10","x32","y32","t","epsilon","cornerTangents","r1","rc","cw","x01","y01","lo","sqrt","ox","oy","x11","y11","x00","y00","dx","dy","d2","r","D","max","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","d3arc","innerRadius","outerRadius","cornerRadius","constant","padRadius","startAngle","endAngle","padAngle","context","path","withPath","arc","buffer","r0","a0","halfPi","a1","da","abs","tau","cos","sin","a01","a11","a00","a10","da0","da1","ap","rp","min","rc0","rc1","t0","t1","p0","asin","p1","oc","pi","ax","ay","bx","by","kc","acos","lc","atan2","a","_"],"mappings":"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","x_google_ignoreList":[0]}