@elice/material-exercise 1.260305.0 → 1.260430.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 (253) hide show
  1. package/cjs/components/material-exercise/MaterialExercise.js +113 -17
  2. package/cjs/components/material-exercise/context/ExerciseProvider.d.ts +3 -1
  3. package/cjs/components/material-exercise/context/index.js +0 -7
  4. package/cjs/components/material-exercise/context/recoil.d.ts +0 -44
  5. package/cjs/components/material-exercise/context/recoil.js +0 -108
  6. package/cjs/components/material-exercise/context/recoilTypes.d.ts +0 -7
  7. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +52 -7
  8. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +1 -1
  9. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +1 -18
  10. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +2 -4
  11. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
  12. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
  13. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +27 -57
  14. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +34 -7
  15. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.d.ts +1 -1
  16. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +13 -219
  17. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.d.ts +2 -2
  18. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionCancel.d.ts +3 -0
  19. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionCancel.js +44 -0
  20. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionGrade.d.ts +3 -0
  21. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionGrade.js +58 -0
  22. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionRun.d.ts +3 -0
  23. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionRun.js +44 -0
  24. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.d.ts +3 -0
  25. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.js +44 -0
  26. package/cjs/components/material-exercise/exercise-runner/action/index.d.ts +5 -0
  27. package/cjs/components/material-exercise/exercise-runner/action/index.js +15 -0
  28. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionCancel.d.ts +14 -0
  29. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionCancel.js +52 -0
  30. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionGrade.d.ts +16 -0
  31. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionGrade.js +74 -0
  32. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionRun.d.ts +14 -0
  33. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionRun.js +65 -0
  34. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.d.ts +15 -0
  35. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.js +68 -0
  36. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.d.ts +3 -0
  37. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.js +163 -0
  38. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.d.ts +3 -0
  39. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.js +188 -0
  40. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.d.ts +3 -0
  41. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.js +128 -0
  42. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.d.ts +3 -0
  43. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.js +78 -0
  44. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.d.ts +3 -0
  45. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.js +98 -0
  46. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.d.ts +3 -0
  47. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.js +24 -0
  48. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.d.ts +3 -0
  49. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.js +201 -0
  50. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.d.ts +3 -0
  51. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.js +125 -0
  52. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.d.ts +3 -0
  53. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.js +179 -0
  54. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.d.ts +3 -0
  55. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.js +29 -0
  56. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.d.ts +3 -0
  57. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.js +94 -0
  58. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProvider.d.ts +16 -0
  59. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProvider.js +105 -0
  60. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.d.ts +12 -0
  61. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.js +94 -0
  62. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.d.ts +7 -0
  63. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.js +95 -0
  64. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.d.ts +7 -0
  65. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.js +70 -0
  66. package/cjs/components/material-exercise/exercise-runner/arduino/_context.d.ts +35 -0
  67. package/cjs/components/material-exercise/exercise-runner/arduino/_context.js +18 -0
  68. package/cjs/components/material-exercise/exercise-runner/arduino/index.d.ts +6 -0
  69. package/cjs/components/material-exercise/exercise-runner/arduino/index.js +13 -0
  70. package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.d.ts +9 -0
  71. package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.js +38 -0
  72. package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.d.ts +10 -0
  73. package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.js +33 -0
  74. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
  75. package/cjs/components/material-exercise/exercise-runner/locales/ja.json.js +1 -1
  76. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
  77. package/cjs/components/material-exercise/exercise-runner/locales/th.json.js +1 -1
  78. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +18 -2
  79. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.d.ts +1 -0
  80. package/cjs/components/shared/file-tabs/FileTab.js +70 -8
  81. package/cjs/components/shared/file-tabs/FileTabs.js +24 -3
  82. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +103 -14
  83. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +24 -3
  84. package/cjs/components/shared/file-tree/FileTreeListItems.js +28 -3
  85. package/cjs/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +7 -2
  86. package/cjs/components/shared/material-modal/MaterialModal.d.ts +1 -0
  87. package/cjs/components/shared/material-modal/MaterialModal.js +34 -6
  88. package/cjs/components/shared/monaco-editor/utils/prettier/config.d.ts +1 -1
  89. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +1 -1
  90. package/cjs/hooks/index.d.ts +0 -1
  91. package/cjs/hooks/index.js +0 -2
  92. package/es/components/material-exercise/MaterialExercise.js +97 -2
  93. package/es/components/material-exercise/context/ExerciseProvider.d.ts +3 -1
  94. package/es/components/material-exercise/context/index.js +1 -1
  95. package/es/components/material-exercise/context/recoil.d.ts +0 -44
  96. package/es/components/material-exercise/context/recoil.js +1 -102
  97. package/es/components/material-exercise/context/recoilTypes.d.ts +0 -7
  98. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +46 -2
  99. package/es/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +1 -1
  100. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +2 -18
  101. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +3 -3
  102. package/es/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
  103. package/es/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
  104. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +28 -58
  105. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +34 -7
  106. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.d.ts +1 -1
  107. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +13 -214
  108. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.d.ts +2 -2
  109. package/es/components/material-exercise/exercise-runner/action/ControllerActionCancel.d.ts +3 -0
  110. package/es/components/material-exercise/exercise-runner/action/ControllerActionCancel.js +40 -0
  111. package/es/components/material-exercise/exercise-runner/action/ControllerActionGrade.d.ts +3 -0
  112. package/es/components/material-exercise/exercise-runner/action/ControllerActionGrade.js +54 -0
  113. package/es/components/material-exercise/exercise-runner/action/ControllerActionRun.d.ts +3 -0
  114. package/es/components/material-exercise/exercise-runner/action/ControllerActionRun.js +40 -0
  115. package/es/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.d.ts +3 -0
  116. package/es/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.js +40 -0
  117. package/es/components/material-exercise/exercise-runner/action/index.d.ts +5 -0
  118. package/es/components/material-exercise/exercise-runner/action/index.js +5 -0
  119. package/es/components/material-exercise/exercise-runner/action/useControllerActionCancel.d.ts +14 -0
  120. package/es/components/material-exercise/exercise-runner/action/useControllerActionCancel.js +46 -0
  121. package/es/components/material-exercise/exercise-runner/action/useControllerActionGrade.d.ts +16 -0
  122. package/es/components/material-exercise/exercise-runner/action/useControllerActionGrade.js +68 -0
  123. package/es/components/material-exercise/exercise-runner/action/useControllerActionRun.d.ts +14 -0
  124. package/es/components/material-exercise/exercise-runner/action/useControllerActionRun.js +59 -0
  125. package/es/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.d.ts +15 -0
  126. package/es/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.js +62 -0
  127. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.d.ts +3 -0
  128. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.js +148 -0
  129. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.d.ts +3 -0
  130. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.js +177 -0
  131. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.d.ts +3 -0
  132. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.js +118 -0
  133. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.d.ts +3 -0
  134. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.js +70 -0
  135. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.d.ts +3 -0
  136. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.js +90 -0
  137. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.d.ts +3 -0
  138. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.js +20 -0
  139. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.d.ts +3 -0
  140. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.js +197 -0
  141. package/es/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.d.ts +3 -0
  142. package/es/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.js +112 -0
  143. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.d.ts +3 -0
  144. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.js +161 -0
  145. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.d.ts +3 -0
  146. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.js +25 -0
  147. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.d.ts +3 -0
  148. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.js +84 -0
  149. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProvider.d.ts +16 -0
  150. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProvider.js +97 -0
  151. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.d.ts +12 -0
  152. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.js +86 -0
  153. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.d.ts +7 -0
  154. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.js +87 -0
  155. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.d.ts +7 -0
  156. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.js +62 -0
  157. package/es/components/material-exercise/exercise-runner/arduino/_context.d.ts +35 -0
  158. package/es/components/material-exercise/exercise-runner/arduino/_context.js +15 -0
  159. package/es/components/material-exercise/exercise-runner/arduino/index.d.ts +6 -0
  160. package/es/components/material-exercise/exercise-runner/arduino/index.js +4 -0
  161. package/es/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.d.ts +9 -0
  162. package/es/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.js +32 -0
  163. package/es/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.d.ts +10 -0
  164. package/es/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.js +27 -0
  165. package/es/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
  166. package/es/components/material-exercise/exercise-runner/locales/ja.json.js +1 -1
  167. package/es/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
  168. package/es/components/material-exercise/exercise-runner/locales/th.json.js +1 -1
  169. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +13 -1
  170. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.d.ts +1 -0
  171. package/es/components/shared/file-tabs/FileTab.js +62 -1
  172. package/es/components/shared/file-tabs/FileTabs.js +21 -1
  173. package/es/components/shared/file-tree/FileTreeListItemContent.js +90 -2
  174. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +21 -1
  175. package/es/components/shared/file-tree/FileTreeListItems.js +22 -1
  176. package/es/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +5 -1
  177. package/es/components/shared/material-modal/MaterialModal.d.ts +1 -0
  178. package/es/components/shared/material-modal/MaterialModal.js +26 -2
  179. package/es/components/shared/monaco-editor/utils/prettier/config.d.ts +1 -1
  180. package/es/components/shared/monaco-editor/utils/prettier/config.js +1 -1
  181. package/es/hooks/index.d.ts +0 -1
  182. package/es/hooks/index.js +0 -1
  183. package/package.json +34 -21
  184. package/cjs/components/material-exercise/MaterialExercise.styled.d.ts +0 -66
  185. package/cjs/components/material-exercise/MaterialExercise.styled.js +0 -119
  186. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.d.ts +0 -24
  187. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -62
  188. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.d.ts +0 -3
  189. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -33
  190. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.d.ts +0 -3
  191. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -178
  192. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.d.ts +0 -3
  193. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +0 -169
  194. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.d.ts +0 -3
  195. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +0 -120
  196. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.d.ts +0 -5
  197. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -22
  198. package/cjs/components/shared/file-tabs/FileTab.styled.d.ts +0 -33
  199. package/cjs/components/shared/file-tabs/FileTab.styled.js +0 -77
  200. package/cjs/components/shared/file-tabs/FileTabs.styled.d.ts +0 -12
  201. package/cjs/components/shared/file-tabs/FileTabs.styled.js +0 -31
  202. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.d.ts +0 -62
  203. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +0 -108
  204. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.d.ts +0 -7
  205. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +0 -31
  206. package/cjs/components/shared/file-tree/FileTreeListItems.styled.d.ts +0 -8
  207. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +0 -32
  208. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.d.ts +0 -4
  209. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +0 -14
  210. package/cjs/components/shared/material-modal/MaterialModal.styled.d.ts +0 -20
  211. package/cjs/components/shared/material-modal/MaterialModal.styled.js +0 -39
  212. package/cjs/constants/arduino.d.ts +0 -35
  213. package/cjs/constants/arduino.js +0 -73
  214. package/cjs/hooks/useArduino.d.ts +0 -14
  215. package/cjs/hooks/useArduino.js +0 -589
  216. package/cjs/typings/arduino.d.ts +0 -77
  217. package/cjs/utils/arduino.d.ts +0 -43
  218. package/cjs/utils/arduino.js +0 -82
  219. package/es/components/material-exercise/MaterialExercise.styled.d.ts +0 -66
  220. package/es/components/material-exercise/MaterialExercise.styled.js +0 -100
  221. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.d.ts +0 -24
  222. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -49
  223. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.d.ts +0 -3
  224. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -29
  225. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.d.ts +0 -3
  226. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -170
  227. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.d.ts +0 -3
  228. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +0 -161
  229. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.d.ts +0 -3
  230. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +0 -112
  231. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.d.ts +0 -5
  232. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -16
  233. package/es/components/shared/file-tabs/FileTab.styled.d.ts +0 -33
  234. package/es/components/shared/file-tabs/FileTab.styled.js +0 -65
  235. package/es/components/shared/file-tabs/FileTabs.styled.d.ts +0 -12
  236. package/es/components/shared/file-tabs/FileTabs.styled.js +0 -24
  237. package/es/components/shared/file-tree/FileTreeListItemContent.styled.d.ts +0 -62
  238. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +0 -94
  239. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.d.ts +0 -7
  240. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +0 -24
  241. package/es/components/shared/file-tree/FileTreeListItems.styled.d.ts +0 -8
  242. package/es/components/shared/file-tree/FileTreeListItems.styled.js +0 -25
  243. package/es/components/shared/file-tree/FileTreeToolbar.styled.d.ts +0 -4
  244. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +0 -8
  245. package/es/components/shared/material-modal/MaterialModal.styled.d.ts +0 -20
  246. package/es/components/shared/material-modal/MaterialModal.styled.js +0 -29
  247. package/es/constants/arduino.d.ts +0 -35
  248. package/es/constants/arduino.js +0 -62
  249. package/es/hooks/useArduino.d.ts +0 -14
  250. package/es/hooks/useArduino.js +0 -583
  251. package/es/typings/arduino.d.ts +0 -77
  252. package/es/utils/arduino.d.ts +0 -43
  253. package/es/utils/arduino.js +0 -75
@@ -0,0 +1,3 @@
1
+ import type React from 'react';
2
+ declare const ArduinoErrorDialog: React.VFC;
3
+ export default ArduinoErrorDialog;
@@ -0,0 +1,112 @@
1
+ import { asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { useRawEliceIntl } from '@elice/intl';
4
+ import { useConnection, useMCUBridgeError, usePermissionState, PermissionAlert, MCUBridgeErrorText } from '@elice/mcu-bridge';
5
+ import Button from '@mui/material/Button';
6
+ import Dialog from '@mui/material/Dialog';
7
+ import DialogActions from '@mui/material/DialogActions';
8
+ import DialogContent from '@mui/material/DialogContent';
9
+ import DialogTitle from '@mui/material/DialogTitle';
10
+ import Stack from '@mui/material/Stack';
11
+
12
+ //
13
+ //
14
+ //
15
+ var ArduinoErrorDialog = function ArduinoErrorDialog() {
16
+ var intl = useRawEliceIntl();
17
+ var _useConnection = useConnection(),
18
+ connect = _useConnection.connect;
19
+ var _useMCUBridgeError = useMCUBridgeError(),
20
+ errorCode = _useMCUBridgeError.errorCode,
21
+ clearError = _useMCUBridgeError.clearError;
22
+ var _usePermissionState = usePermissionState(),
23
+ permissionPhase = _usePermissionState.phase,
24
+ resetPermission = _usePermissionState.reset;
25
+ var isErrorDialogOpen = permissionPhase === 'denied' || Boolean(errorCode);
26
+ /**
27
+ *
28
+ */
29
+ var handleClose = function handleClose() {
30
+ resetPermission();
31
+ clearError();
32
+ };
33
+ // `PermissionAlert` resets `permissionStore` itself; `errorStore` is
34
+ // separate and must be cleared here or `errorCode` keeps the dialog open.
35
+ var handleRetry = /*#__PURE__*/function () {
36
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
37
+ return _regenerator().w(function (_context) {
38
+ while (1) switch (_context.p = _context.n) {
39
+ case 0:
40
+ clearError();
41
+ _context.p = 1;
42
+ _context.n = 2;
43
+ return connect();
44
+ case 2:
45
+ _context.n = 4;
46
+ break;
47
+ case 3:
48
+ _context.p = 3;
49
+ _context.v;
50
+ case 4:
51
+ return _context.a(2);
52
+ }
53
+ }, _callee, null, [[1, 3]]);
54
+ }));
55
+ return function handleRetry() {
56
+ return _ref.apply(this, arguments);
57
+ };
58
+ }();
59
+ /**
60
+ *
61
+ */
62
+ var renderErrorDialogTitle = function renderErrorDialogTitle() {
63
+ return jsx(DialogTitle, {
64
+ children: intl.formatMessage({
65
+ id: 'exerciseRunner.arduino.error.title'
66
+ })
67
+ });
68
+ };
69
+ /**
70
+ *
71
+ */
72
+ var renderErrorDialogContent = function renderErrorDialogContent() {
73
+ return jsx(DialogContent, {
74
+ children: jsxs(Stack, {
75
+ spacing: 1.5,
76
+ children: [permissionPhase === 'denied' ? jsx(PermissionAlert, {
77
+ onRetry: handleRetry
78
+ }) : null, errorCode ? jsx(MCUBridgeErrorText, {
79
+ code: errorCode,
80
+ variant: "body2",
81
+ color: "error"
82
+ }) : null]
83
+ })
84
+ });
85
+ };
86
+ /**
87
+ *
88
+ */
89
+ var renderErrorDialogActions = function renderErrorDialogActions() {
90
+ return jsx(DialogActions, {
91
+ children: jsx(Button, {
92
+ color: "inherit",
93
+ onClick: handleClose,
94
+ children: intl.formatMessage({
95
+ id: 'exerciseRunner.arduino.error.close'
96
+ })
97
+ })
98
+ });
99
+ };
100
+ //
101
+ //
102
+ //
103
+ return jsxs(Dialog, {
104
+ fullWidth: true,
105
+ open: isErrorDialogOpen,
106
+ maxWidth: "sm",
107
+ onClose: handleClose,
108
+ children: [renderErrorDialogTitle(), renderErrorDialogContent(), renderErrorDialogActions()]
109
+ });
110
+ };
111
+
112
+ export { ArduinoErrorDialog as default };
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ArduinoHelpDialog: React.VFC;
3
+ export default ArduinoHelpDialog;
@@ -0,0 +1,161 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import React from 'react';
4
+ import { useRawEliceIntl } from '@elice/intl';
5
+ import { EliceIcon } from '@elice/mui-elements';
6
+ import { faBookAlt, faArrowRight } from '@fortawesome/pro-regular-svg-icons';
7
+ import { Card, CardActionArea } from '@mui/material';
8
+ import Box from '@mui/material/Box';
9
+ import Button from '@mui/material/Button';
10
+ import Checkbox from '@mui/material/Checkbox';
11
+ import Dialog from '@mui/material/Dialog';
12
+ import DialogActions from '@mui/material/DialogActions';
13
+ import DialogContent from '@mui/material/DialogContent';
14
+ import DialogTitle from '@mui/material/DialogTitle';
15
+ import FormControlLabel from '@mui/material/FormControlLabel';
16
+ import Stack from '@mui/material/Stack';
17
+ import Typography from '@mui/material/Typography';
18
+ import { useArduinoBridge } from './_context.js';
19
+ import ArduinoHelpDialogChecklist from './ArduinoHelpDialogChecklist.js';
20
+
21
+ //
22
+ //
23
+ //
24
+ var STORAGE_KEY = 'elice-material-exercise-arduino-help-modal-closed';
25
+ var STORAGE_VALUE = 'true';
26
+ var ARDUINO_FAQ_URL = 'https://eli.so/arduino-faq';
27
+ //
28
+ //
29
+ //
30
+ var ArduinoHelpDialog = function ArduinoHelpDialog() {
31
+ var intl = useRawEliceIntl();
32
+ var _useArduinoBridge = useArduinoBridge(),
33
+ isHelpDialogOpen = _useArduinoBridge.isHelpDialogOpen,
34
+ openHelpDialog = _useArduinoBridge.openHelpDialog,
35
+ closeHelpDialog = _useArduinoBridge.closeHelpDialog;
36
+ var _React$useState = React.useState(false),
37
+ _React$useState2 = _slicedToArray(_React$useState, 2),
38
+ wasAutoOpened = _React$useState2[0],
39
+ setWasAutoOpened = _React$useState2[1];
40
+ var _React$useState3 = React.useState(false),
41
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
42
+ dontShowAgain = _React$useState4[0],
43
+ setDontShowAgain = _React$useState4[1];
44
+ //
45
+ // Auto-popup once on first visit (localStorage flag survives reloads).
46
+ //
47
+ React.useEffect(function () {
48
+ var isClosed = localStorage.getItem(STORAGE_KEY) === STORAGE_VALUE;
49
+ if (!isClosed) {
50
+ openHelpDialog();
51
+ setWasAutoOpened(true);
52
+ }
53
+ },
54
+ // eslint-disable-next-line react-hooks/exhaustive-deps
55
+ []);
56
+ /**
57
+ *
58
+ */
59
+ var handleClose = function handleClose() {
60
+ if (dontShowAgain) {
61
+ localStorage.setItem(STORAGE_KEY, STORAGE_VALUE);
62
+ }
63
+ closeHelpDialog();
64
+ setWasAutoOpened(false);
65
+ setDontShowAgain(false);
66
+ };
67
+ /**
68
+ *
69
+ */
70
+ var renderDialogManual = function renderDialogManual() {
71
+ return jsx(Card, {
72
+ variant: "outlined",
73
+ children: jsx(CardActionArea, {
74
+ component: "a",
75
+ href: ARDUINO_FAQ_URL,
76
+ target: "_blank",
77
+ rel: "noopener noreferrer",
78
+ sx: {
79
+ p: 1.5
80
+ },
81
+ children: jsxs(Stack, {
82
+ direction: "row",
83
+ spacing: 1.5,
84
+ alignItems: "center",
85
+ children: [jsx(EliceIcon, {
86
+ icon: faBookAlt
87
+ }), jsxs(Box, {
88
+ sx: {
89
+ flex: 1,
90
+ minWidth: 0
91
+ },
92
+ children: [jsx(Typography, {
93
+ variant: "body2",
94
+ fontWeight: 700,
95
+ children: intl.formatMessage({
96
+ id: 'exerciseRunner.arduino.help.manual.title'
97
+ })
98
+ }), jsx(Typography, {
99
+ variant: "caption",
100
+ color: "text.secondary",
101
+ children: intl.formatMessage({
102
+ id: 'exerciseRunner.arduino.help.manual.detail'
103
+ })
104
+ })]
105
+ }), jsx(EliceIcon, {
106
+ icon: faArrowRight
107
+ })]
108
+ })
109
+ })
110
+ });
111
+ };
112
+ //
113
+ //
114
+ //
115
+ return jsxs(Dialog, {
116
+ fullWidth: true,
117
+ open: isHelpDialogOpen,
118
+ maxWidth: "sm",
119
+ onClose: handleClose,
120
+ children: [jsx(DialogTitle, {
121
+ children: intl.formatMessage({
122
+ id: 'exerciseRunner.arduino.help.title'
123
+ })
124
+ }), jsx(DialogContent, {
125
+ children: jsxs(Stack, {
126
+ spacing: 2.5,
127
+ children: [jsx(Typography, {
128
+ variant: "body2",
129
+ color: "text.secondary",
130
+ children: intl.formatMessage({
131
+ id: 'exerciseRunner.arduino.help.greeting'
132
+ })
133
+ }), jsx(ArduinoHelpDialogChecklist, {}), renderDialogManual()]
134
+ })
135
+ }), jsxs(DialogActions, {
136
+ sx: {
137
+ justifyContent: 'space-between'
138
+ },
139
+ children: [wasAutoOpened ? jsx(FormControlLabel, {
140
+ control: jsx(Checkbox, {
141
+ size: "small",
142
+ checked: dontShowAgain,
143
+ onChange: function onChange(e) {
144
+ return setDontShowAgain(e.target.checked);
145
+ }
146
+ }),
147
+ label: intl.formatMessage({
148
+ id: 'exerciseRunner.arduino.help.dontShowAgain'
149
+ })
150
+ }) : jsx(Box, {}), jsx(Button, {
151
+ color: "inherit",
152
+ onClick: handleClose,
153
+ children: intl.formatMessage({
154
+ id: 'exerciseRunner.arduino.help.close'
155
+ })
156
+ })]
157
+ })]
158
+ });
159
+ };
160
+
161
+ export { ArduinoHelpDialog as default };
@@ -0,0 +1,3 @@
1
+ import type React from 'react';
2
+ declare const ArduinoHelpDialogButton: React.VFC;
3
+ export default ArduinoHelpDialogButton;
@@ -0,0 +1,25 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { eilStatusInfo } from '@elice/icons';
3
+ import { useRawEliceIntl } from '@elice/intl';
4
+ import { useArduinoBridge } from './_context.js';
5
+ import ExerciseMenuButton from '../../../shared/exercise-menu-button/ExerciseMenuButton.js';
6
+
7
+ //
8
+ //
9
+ //
10
+ var ArduinoHelpDialogButton = function ArduinoHelpDialogButton() {
11
+ var intl = useRawEliceIntl();
12
+ var _useArduinoBridge = useArduinoBridge(),
13
+ isHelpDialogOpen = _useArduinoBridge.isHelpDialogOpen,
14
+ openHelpDialog = _useArduinoBridge.openHelpDialog;
15
+ return jsx(ExerciseMenuButton, {
16
+ icon: eilStatusInfo,
17
+ title: intl.formatMessage({
18
+ id: 'exerciseRunner.arduino.help.button'
19
+ }),
20
+ active: isHelpDialogOpen,
21
+ onClick: openHelpDialog
22
+ });
23
+ };
24
+
25
+ export { ArduinoHelpDialogButton as default };
@@ -0,0 +1,3 @@
1
+ import type React from 'react';
2
+ declare const ArduinoHelpDialogChecklist: React.VFC;
3
+ export default ArduinoHelpDialogChecklist;
@@ -0,0 +1,84 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { useRawEliceIntl } from '@elice/intl';
3
+ import Box from '@mui/material/Box';
4
+ import Stack from '@mui/material/Stack';
5
+ import Typography from '@mui/material/Typography';
6
+
7
+ //
8
+ //
9
+ //
10
+ var CHECKLIST_STEPS = [1, 2, 3, 4];
11
+ //
12
+ //
13
+ //
14
+ var ArduinoHelpDialogChecklist = function ArduinoHelpDialogChecklist() {
15
+ var intl = useRawEliceIntl();
16
+ /**
17
+ *
18
+ */
19
+ var renderStepBadge = function renderStepBadge(step) {
20
+ return jsx(Box, {
21
+ "aria-hidden": "true",
22
+ sx: {
23
+ width: 24,
24
+ height: 24,
25
+ borderRadius: '50%',
26
+ display: 'flex',
27
+ alignItems: 'center',
28
+ justifyContent: 'center',
29
+ fontSize: 13,
30
+ fontWeight: 700,
31
+ bgcolor: 'primary.main',
32
+ color: 'primary.contrastText',
33
+ flexShrink: 0
34
+ },
35
+ children: step
36
+ });
37
+ };
38
+ /**
39
+ *
40
+ */
41
+ var renderItem = function renderItem(step) {
42
+ var title = intl.formatMessage({
43
+ id: "exerciseRunner.arduino.help.checklist.".concat(step, ".title")
44
+ });
45
+ var body = intl.formatMessage({
46
+ id: "exerciseRunner.arduino.help.checklist.".concat(step, ".body")
47
+ });
48
+ return jsxs(Stack, {
49
+ direction: "row",
50
+ spacing: 1.5,
51
+ alignItems: "flex-start",
52
+ children: [renderStepBadge(step), jsxs(Box, {
53
+ sx: {
54
+ flex: 1,
55
+ pt: 0.25
56
+ },
57
+ children: [jsx(Typography, {
58
+ variant: "body2",
59
+ fontWeight: 700,
60
+ children: title
61
+ }), jsx(Typography, {
62
+ variant: "caption",
63
+ color: "text.secondary",
64
+ sx: {
65
+ display: 'block',
66
+ mt: 0.25
67
+ },
68
+ children: body
69
+ })]
70
+ })]
71
+ }, step);
72
+ };
73
+ //
74
+ //
75
+ //
76
+ return jsx(Stack, {
77
+ spacing: 1.5,
78
+ children: CHECKLIST_STEPS.map(function (step) {
79
+ return renderItem(step);
80
+ })
81
+ });
82
+ };
83
+
84
+ export { ArduinoHelpDialogChecklist as default };
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { XtermApis } from "../../../shared/xterm/Xterm";
3
+ export interface ArduinoBridgeApi {
4
+ handleIncomingHex: (dataUrl: string) => void;
5
+ sendText: (text: string) => void;
6
+ }
7
+ export interface ArduinoBridgeProviderProps {
8
+ xtermRef: React.RefObject<XtermApis | null>;
9
+ apiRef: React.MutableRefObject<ArduinoBridgeApi | null>;
10
+ children: React.ReactNode;
11
+ }
12
+ export interface ArduinoBridgeProviderGateProps extends ArduinoBridgeProviderProps {
13
+ enabled: boolean;
14
+ }
15
+ declare const _default: ({ enabled, children, ...rest }: ArduinoBridgeProviderGateProps) => import("react/jsx-runtime").JSX.Element;
16
+ export default _default;
@@ -0,0 +1,97 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { __rest } from 'tslib';
3
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
4
+ import React, { useEffect } from 'react';
5
+ import { useFlash, usePermissionPhase, setupMCUBridge, ArduinoUnoDriver, ArduinoMegaDriver } from '@elice/mcu-bridge';
6
+ import { ArduinoBridgeContext } from './_context.js';
7
+ import ArduinoConnectionGuideDialog from './ArduinoConnectionGuideDialog.js';
8
+ import ArduinoErrorDialog from './ArduinoErrorDialog.js';
9
+ import ArduinoHelpDialog from './ArduinoHelpDialog.js';
10
+ import ArduinoProviderApiBinder from './ArduinoProviderApiBinder.js';
11
+ import ArduinoProviderFlashWriter from './ArduinoProviderFlashWriter.js';
12
+ import ArduinoProviderSessionWriter from './ArduinoProviderSessionWriter.js';
13
+ import { useArduinoRunIntent } from './useArduinoRunIntent.js';
14
+
15
+ //
16
+ //
17
+ //
18
+ var ArduinoBridgeProvider = function ArduinoBridgeProvider(_ref) {
19
+ var xtermRef = _ref.xtermRef,
20
+ apiRef = _ref.apiRef,
21
+ children = _ref.children;
22
+ var _useFlash = useFlash(),
23
+ isFlashing = _useFlash.isFlashing;
24
+ var _useArduinoRunIntent = useArduinoRunIntent(),
25
+ pendingIntent = _useArduinoRunIntent.pendingIntent,
26
+ pendingIntentRef = _useArduinoRunIntent.pendingIntentRef,
27
+ setRunIntent = _useArduinoRunIntent.setRunIntent,
28
+ clearRunIntent = _useArduinoRunIntent.clearRunIntent;
29
+ var permissionPhase = usePermissionPhase();
30
+ var _React$useState = React.useState(null),
31
+ _React$useState2 = _slicedToArray(_React$useState, 2),
32
+ connectionIntent = _React$useState2[0],
33
+ setConnectionIntent = _React$useState2[1];
34
+ var _React$useState3 = React.useState(false),
35
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
36
+ isHelpDialogOpen = _React$useState4[0],
37
+ setHelpDialogOpen = _React$useState4[1];
38
+ var openHelpDialog = React.useCallback(function () {
39
+ return setHelpDialogOpen(true);
40
+ }, []);
41
+ var closeHelpDialog = React.useCallback(function () {
42
+ return setHelpDialogOpen(false);
43
+ }, []);
44
+ useEffect(function () {
45
+ setupMCUBridge([ArduinoUnoDriver, ArduinoMegaDriver]);
46
+ }, []);
47
+ // Clear the variant tag once the picker resolves so it can't bleed into
48
+ // an unrelated future connect flow.
49
+ useEffect(function () {
50
+ if (permissionPhase === 'granted') {
51
+ setConnectionIntent(null);
52
+ }
53
+ }, [permissionPhase]);
54
+ //
55
+ //
56
+ //
57
+ return jsxs(ArduinoBridgeContext.Provider, {
58
+ value: {
59
+ setPendingIntent: setRunIntent,
60
+ isPending: pendingIntent !== null,
61
+ isFlashing: isFlashing,
62
+ connectionIntent: connectionIntent,
63
+ setConnectionIntent: setConnectionIntent,
64
+ isHelpDialogOpen: isHelpDialogOpen,
65
+ openHelpDialog: openHelpDialog,
66
+ closeHelpDialog: closeHelpDialog
67
+ },
68
+ children: [children, jsx(ArduinoProviderSessionWriter, {
69
+ xtermRef: xtermRef
70
+ }), jsx(ArduinoProviderFlashWriter, {
71
+ xtermRef: xtermRef
72
+ }), jsx(ArduinoProviderApiBinder, {
73
+ apiRef: apiRef,
74
+ xtermRef: xtermRef,
75
+ pendingIntentRef: pendingIntentRef,
76
+ clearRunIntent: clearRunIntent
77
+ }), jsx(ArduinoConnectionGuideDialog, {}), jsx(ArduinoHelpDialog, {}), jsx(ArduinoErrorDialog, {})]
78
+ });
79
+ };
80
+ //
81
+ //
82
+ //
83
+ var ArduinoBridgeProvider$1 = (function (_a) {
84
+ var enabled = _a.enabled,
85
+ children = _a.children,
86
+ rest = __rest(_a, ["enabled", "children"]);
87
+ if (!enabled) {
88
+ return jsx(Fragment, {
89
+ children: children
90
+ });
91
+ }
92
+ return jsx(ArduinoBridgeProvider, Object.assign({}, rest, {
93
+ children: children
94
+ }));
95
+ });
96
+
97
+ export { ArduinoBridgeProvider$1 as default };
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import type { XtermApis } from "../../../shared/xterm/Xterm";
3
+ import type { ArduinoBridgeIntent } from './_context';
4
+ import type { ArduinoBridgeApi } from './ArduinoProvider';
5
+ export interface ArduinoProviderApiBinderProps {
6
+ apiRef: React.MutableRefObject<ArduinoBridgeApi | null>;
7
+ xtermRef: React.RefObject<XtermApis | null>;
8
+ pendingIntentRef: React.MutableRefObject<ArduinoBridgeIntent | null>;
9
+ clearRunIntent: () => void;
10
+ }
11
+ declare const ArduinoProviderApiBinder: React.FC<ArduinoProviderApiBinderProps>;
12
+ export default ArduinoProviderApiBinder;
@@ -0,0 +1,86 @@
1
+ import React from 'react';
2
+ import { useRawEliceIntl } from '@elice/intl';
3
+ import { useSession, useFlash } from '@elice/mcu-bridge';
4
+ import { useArduinoTerminalWriter } from './useArduinoTerminalWriter.js';
5
+
6
+ //
7
+ //
8
+ //
9
+ function decodeHexDataUrl(dataUrl) {
10
+ var base64 = dataUrl.includes(',') ? dataUrl.split(',')[1] : dataUrl;
11
+ var binary = atob(base64);
12
+ var bytes = new Uint8Array(binary.length);
13
+ for (var i = 0; i < binary.length; i += 1) {
14
+ bytes[i] = binary.charCodeAt(i);
15
+ }
16
+ return bytes;
17
+ }
18
+ //
19
+ //
20
+ //
21
+ var ArduinoProviderApiBinder = function ArduinoProviderApiBinder(_ref) {
22
+ var apiRef = _ref.apiRef,
23
+ xtermRef = _ref.xtermRef,
24
+ pendingIntentRef = _ref.pendingIntentRef,
25
+ clearRunIntent = _ref.clearRunIntent;
26
+ var intl = useRawEliceIntl();
27
+ var session = useSession();
28
+ var _useFlash = useFlash(),
29
+ flash = _useFlash.flash;
30
+ var _useArduinoTerminalWr = useArduinoTerminalWriter({
31
+ xtermRef: xtermRef
32
+ }),
33
+ writeSystemMessage = _useArduinoTerminalWr.writeSystemMessage;
34
+ //
35
+ // Expose imperative API to the parent runner via ref.
36
+ //
37
+ React.useEffect(function () {
38
+ apiRef.current = {
39
+ handleIncomingHex: function handleIncomingHex(dataUrl) {
40
+ var intent = pendingIntentRef.current;
41
+ clearRunIntent();
42
+ if (intent !== 'upload') {
43
+ if (intent === 'compile') {
44
+ writeSystemMessage(intl.formatMessage({
45
+ id: 'exerciseRunner.arduino.terminal.compile.done'
46
+ }));
47
+ }
48
+ return;
49
+ }
50
+ if (!session) {
51
+ writeSystemMessage(intl.formatMessage({
52
+ id: 'exerciseRunner.arduino.terminal.board.notConnected'
53
+ }));
54
+ return;
55
+ }
56
+ writeSystemMessage(intl.formatMessage({
57
+ id: 'exerciseRunner.arduino.terminal.compile.done'
58
+ }));
59
+ var bytes;
60
+ try {
61
+ bytes = decodeHexDataUrl(dataUrl);
62
+ } catch (_a) {
63
+ writeSystemMessage(intl.formatMessage({
64
+ id: 'exerciseRunner.arduino.terminal.firmware.readFail'
65
+ }));
66
+ return;
67
+ }
68
+ void flash(bytes)["catch"](function () {
69
+ // Error already surfaced through the progress writer.
70
+ });
71
+ },
72
+ sendText: function sendText(text) {
73
+ if (!session) {
74
+ return;
75
+ }
76
+ void session.writeText(text);
77
+ }
78
+ };
79
+ return function () {
80
+ apiRef.current = null;
81
+ };
82
+ }, [apiRef, session, flash, pendingIntentRef, clearRunIntent, writeSystemMessage, intl]);
83
+ return null;
84
+ };
85
+
86
+ export { ArduinoProviderApiBinder as default };
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { XtermApis } from "../../../shared/xterm/Xterm";
3
+ export interface ArduinoProviderFlashWriterProps {
4
+ xtermRef: React.RefObject<XtermApis | null>;
5
+ }
6
+ declare const ArduinoProviderFlashWriter: React.FC<ArduinoProviderFlashWriterProps>;
7
+ export default ArduinoProviderFlashWriter;