@wandelbots/wandelbots-js-react-components 3.2.0-pr.feat-improve-exports.414.40b4b4e → 3.2.0-pr.feat-improve-exports.414.80936cd

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 (112) hide show
  1. package/README.md +37 -59
  2. package/dist/3d.cjs.js +1 -1
  3. package/dist/3d.es.js +1 -1
  4. package/dist/LoadingCover-CbvPNfkO.cjs +2 -0
  5. package/dist/LoadingCover-CbvPNfkO.cjs.map +1 -0
  6. package/dist/LoadingCover-DkXwZXg8.js +87 -0
  7. package/dist/LoadingCover-DkXwZXg8.js.map +1 -0
  8. package/dist/WandelscriptEditor-DepOICD0.cjs +2 -0
  9. package/dist/WandelscriptEditor-DepOICD0.cjs.map +1 -0
  10. package/dist/WandelscriptEditor-DomKLwOz.js +140 -0
  11. package/dist/WandelscriptEditor-DomKLwOz.js.map +1 -0
  12. package/dist/core.cjs.js +1 -1
  13. package/dist/core.d.ts +11 -1
  14. package/dist/core.d.ts.map +1 -1
  15. package/dist/core.es.js +49 -41
  16. package/dist/core.es.js.map +1 -1
  17. package/dist/index-BHtHALJk.cjs +2 -0
  18. package/dist/index-BHtHALJk.cjs.map +1 -0
  19. package/dist/index-BSgNMmxG.js +2263 -0
  20. package/dist/index-BSgNMmxG.js.map +1 -0
  21. package/dist/index-DS_xdVel.cjs +29 -0
  22. package/dist/index-DS_xdVel.cjs.map +1 -0
  23. package/dist/{index-DZubFUuo.js → index-obAnXT9_.js} +2143 -1719
  24. package/dist/index-obAnXT9_.js.map +1 -0
  25. package/dist/index.cjs.js +1 -1
  26. package/dist/index.d.ts +3 -43
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.es.js +55 -58
  29. package/dist/index.es.js.map +1 -1
  30. package/dist/lib/JoggerConnection.d.ts +1 -1
  31. package/dist/lib/JoggerConnection.d.ts.map +1 -1
  32. package/dist/lib/MotionStreamConnection.d.ts +1 -1
  33. package/dist/lib/MotionStreamConnection.d.ts.map +1 -1
  34. package/dist/{manufacturerHomePositions-DHqcbFON.js → manufacturerHomePositions-4m2Kt5Pk.js} +17 -20
  35. package/dist/{manufacturerHomePositions-DHqcbFON.js.map → manufacturerHomePositions-4m2Kt5Pk.js.map} +1 -1
  36. package/dist/manufacturerHomePositions-AGIQC0U_.cjs +2 -0
  37. package/dist/{manufacturerHomePositions-zd-CKEiQ.cjs.map → manufacturerHomePositions-AGIQC0U_.cjs.map} +1 -1
  38. package/dist/theming-CO0a0eRg.js +21801 -0
  39. package/dist/theming-CO0a0eRg.js.map +1 -0
  40. package/dist/theming-ZJr8jTwS.cjs +128 -0
  41. package/dist/theming-ZJr8jTwS.cjs.map +1 -0
  42. package/dist/wandelscript.cjs.js +2 -0
  43. package/dist/wandelscript.cjs.js.map +1 -0
  44. package/dist/wandelscript.d.ts +2 -0
  45. package/dist/wandelscript.d.ts.map +1 -0
  46. package/dist/wandelscript.es.js +5 -0
  47. package/dist/wandelscript.es.js.map +1 -0
  48. package/package.json +21 -14
  49. package/src/components/AppHeader.md +1 -1
  50. package/src/core.ts +11 -1
  51. package/src/index.ts +4 -47
  52. package/src/lib/JoggerConnection.ts +1 -1
  53. package/src/lib/MotionStreamConnection.ts +4 -1
  54. package/src/wandelscript.ts +2 -0
  55. package/dist/PoseJointValues-C3bsJdfd.js +0 -5446
  56. package/dist/PoseJointValues-C3bsJdfd.js.map +0 -1
  57. package/dist/PoseJointValues-wLOjcYDe.cjs +0 -21
  58. package/dist/PoseJointValues-wLOjcYDe.cjs.map +0 -1
  59. package/dist/ProgramStateIndicator-CTT-CAcJ.js +0 -268
  60. package/dist/ProgramStateIndicator-CTT-CAcJ.js.map +0 -1
  61. package/dist/ProgramStateIndicator-DYKBcj1s.cjs +0 -2
  62. package/dist/ProgramStateIndicator-DYKBcj1s.cjs.map +0 -1
  63. package/dist/VelocitySlider-2Zme2MN7.cjs +0 -5
  64. package/dist/VelocitySlider-2Zme2MN7.cjs.map +0 -1
  65. package/dist/VelocitySlider-QSg_8eb1.js +0 -1906
  66. package/dist/VelocitySlider-QSg_8eb1.js.map +0 -1
  67. package/dist/createSvgIcon-BG4_bQuX.cjs +0 -56
  68. package/dist/createSvgIcon-BG4_bQuX.cjs.map +0 -1
  69. package/dist/createSvgIcon-D3GRPlVu.js +0 -3072
  70. package/dist/createSvgIcon-D3GRPlVu.js.map +0 -1
  71. package/dist/data.cjs.js +0 -2
  72. package/dist/data.cjs.js.map +0 -1
  73. package/dist/data.d.ts +0 -4
  74. package/dist/data.d.ts.map +0 -1
  75. package/dist/data.es.js +0 -7
  76. package/dist/data.es.js.map +0 -1
  77. package/dist/externalizeComponent-C12Qf79R.cjs +0 -24
  78. package/dist/externalizeComponent-C12Qf79R.cjs.map +0 -1
  79. package/dist/externalizeComponent-RpcZ_G17.js +0 -491
  80. package/dist/externalizeComponent-RpcZ_G17.js.map +0 -1
  81. package/dist/index-8UEqiXug.cjs +0 -7
  82. package/dist/index-8UEqiXug.cjs.map +0 -1
  83. package/dist/index-CQDi5W62.cjs +0 -2
  84. package/dist/index-CQDi5W62.cjs.map +0 -1
  85. package/dist/index-DSz82V23.js +0 -1801
  86. package/dist/index-DSz82V23.js.map +0 -1
  87. package/dist/index-DZubFUuo.js.map +0 -1
  88. package/dist/index-MyU3fVEK.cjs +0 -50
  89. package/dist/index-MyU3fVEK.cjs.map +0 -1
  90. package/dist/index-VURe0U2S.js +0 -9443
  91. package/dist/index-VURe0U2S.js.map +0 -1
  92. package/dist/interpolation-CVSmVNjc.cjs +0 -2
  93. package/dist/interpolation-CVSmVNjc.cjs.map +0 -1
  94. package/dist/interpolation-DjBX_Si-.js +0 -138
  95. package/dist/interpolation-DjBX_Si-.js.map +0 -1
  96. package/dist/jogging.cjs.js +0 -2
  97. package/dist/jogging.cjs.js.map +0 -1
  98. package/dist/jogging.d.ts +0 -9
  99. package/dist/jogging.d.ts.map +0 -1
  100. package/dist/jogging.es.js +0 -12
  101. package/dist/jogging.es.js.map +0 -1
  102. package/dist/manufacturerHomePositions-zd-CKEiQ.cjs +0 -2
  103. package/dist/theming-BO8z_Hpa.js +0 -2198
  104. package/dist/theming-BO8z_Hpa.js.map +0 -1
  105. package/dist/theming-D5DvGuxX.cjs +0 -4
  106. package/dist/theming-D5DvGuxX.cjs.map +0 -1
  107. package/dist/useThemeProps-P648Ox74.cjs +0 -2
  108. package/dist/useThemeProps-P648Ox74.cjs.map +0 -1
  109. package/dist/useThemeProps-jE_Qg6SI.js +0 -40
  110. package/dist/useThemeProps-jE_Qg6SI.js.map +0 -1
  111. package/src/data.ts +0 -4
  112. package/src/jogging.ts +0 -9
package/README.md CHANGED
@@ -6,49 +6,55 @@ React UI components for building robotics applications on the [Wandelbots Nova p
6
6
 
7
7
  Built with TypeScript, Material-UI, and React Three Fiber. Provides robot control interfaces, 3D visualizations, and automation components that integrate with the Nova ecosystem.
8
8
 
9
- ## Quick Start
9
+ ## Install
10
10
 
11
11
  ```bash
12
- npm install @wandelbots/wandelbots-js-react-components
12
+ npm install @wandelbots/wandelbots-js-react-components react react-dom @mui/material @emotion/react @emotion/styled
13
13
  ```
14
14
 
15
- ### Modular Imports (Optional)
15
+ ## Modular Imports
16
16
 
17
- For optimized bundle sizes, import only the components you need:
17
+ Some modules require additional peer dependencies, such as Three.js for 3D rendering. If you don't need 3D rendering in your application, import from `/core` to avoid these dependencies:
18
18
 
19
19
  ```typescript
20
- // Full library (all components)
21
- import { Robot, JoggingPanel } from "@wandelbots/wandelbots-js-react-components"
22
-
23
- // Or import specific categories
24
20
  import {
25
- ProgramControl,
26
21
  SafetyBar,
27
- } from "@wandelbots/wandelbots-js-react-components/core"
28
- import { Robot, RobotCard } from "@wandelbots/wandelbots-js-react-components/3d"
29
- import { JoggingPanel } from "@wandelbots/wandelbots-js-react-components/jogging"
30
- import {
22
+ JoggingPanel,
31
23
  DataGrid,
32
24
  Timer,
33
- } from "@wandelbots/wandelbots-js-react-components/data"
25
+ } from "@wandelbots/wandelbots-js-react-components/core"
34
26
  ```
35
27
 
36
- **Available Entry Points:**
28
+ For 3D-enabled components, use `/3d`:
29
+
30
+ ```typescript
31
+ import { Robot, RobotCard } from "@wandelbots/wandelbots-js-react-components/3d"
32
+ ```
33
+
34
+ For the code editor, use `/wandelscript`:
37
35
 
38
- | Entry Point | Components | Required Peer Dependencies |
39
- | -------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
40
- | **Main** (`.`) | All components | React 18+, MUI v6/v7, @emotion/react, @emotion/styled, + all below |
41
- | **`/core`** | Base components (AppHeader, ProgramControl, SafetyBar, VelocitySlider, WandelscriptEditor, themes, i18n, etc.) | React 18+, MUI v6/v7, @emotion/react, @emotion/styled |
42
- | **`/3d`** | 3D visualization (Robot, RobotCard, CollisionSceneRenderer, SafetyZonesRenderer, TrajectoryRenderer) | All from `/core` + three, @react-three/fiber, @react-three/drei, three-stdlib |
43
- | **`/jogging`** | Motion control UI (JoggingPanel, jogging controls, pose displays) | All from `/core` |
44
- | **`/data`** | Data components (DataGrid, Timer, CycleTimer) | All from `/core` + @mui/x-data-grid, @mui/x-charts |
36
+ ```typescript
37
+ import { WandelscriptEditor } from "@wandelbots/wandelbots-js-react-components/wandelscript"
38
+ ```
39
+
40
+ You can also import everything from the main entry point, but you'll need to install all optional peer dependencies:
41
+
42
+ ```bash
43
+ npm install @wandelbots/wandelbots-js-react-components \
44
+ react react-dom \
45
+ @mui/material @emotion/react @emotion/styled \
46
+ three @react-three/fiber @react-three/drei three-stdlib \
47
+ @monaco-editor/react shiki
48
+ ```
45
49
 
46
- **Benefits:**
50
+ **Available Entry Points:**
47
51
 
48
- - Reduce bundle size by excluding unused categories
49
- - Lazy load 3D components only when needed
50
- - Avoid loading Monaco editor if you don't use WandelscriptEditor
51
- - Exclude MUI X dependencies if you don't need DataGrid or charts
52
+ | Entry Point | Components | Required Peer Dependencies |
53
+ | ------------------- | ------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
54
+ | **Main** (`.`) | All components | React 18+, MUI v6/v7, @emotion/react, @emotion/styled, + all below |
55
+ | **`/core`** | Base components (AppHeader, ProgramControl, SafetyBar, VelocitySlider, JoggingPanel, DataGrid, Timer, themes, i18n, etc.) | React 18+, MUI v6/v7, @emotion/react, @emotion/styled |
56
+ | **`/3d`** | 3D visualization (Robot, RobotCard, CollisionSceneRenderer, SafetyZonesRenderer, TrajectoryRenderer) | All from `/core` + three, @react-three/fiber, @react-three/drei, three-stdlib |
57
+ | **`/wandelscript`** | Code editor (WandelscriptEditor) | All from `/core` + @monaco-editor/react, shiki, @shikijs/monaco |
52
58
 
53
59
  ## Getting Started
54
60
 
@@ -205,39 +211,11 @@ Components integrate with the Wandelbots Nova ecosystem:
205
211
  - @react-three/drei
206
212
  - three-stdlib
207
213
 
208
- **For `/data` (data components):**
209
-
210
- - @mui/x-data-grid (for DataGrid)
211
- - @mui/x-charts (for Timer/CycleTimer)
212
-
213
- ### Installation Examples
214
-
215
- **Full installation (all components):**
216
-
217
- ```bash
218
- npm install @wandelbots/wandelbots-js-react-components \
219
- react react-dom \
220
- @mui/material @emotion/react @emotion/styled \
221
- three @react-three/fiber @react-three/drei three-stdlib \
222
- @mui/x-data-grid @mui/x-charts
223
- ```
224
-
225
- **Minimal installation (core/jogging components only):**
226
-
227
- ```bash
228
- npm install @wandelbots/wandelbots-js-react-components \
229
- react react-dom \
230
- @mui/material @emotion/react @emotion/styled
231
- ```
232
-
233
- **With 3D components:**
234
-
235
- ```bash
236
- # Add to minimal installation:
237
- npm install three @react-three/fiber @react-three/drei three-stdlib
238
- ```
214
+ **For `/wandelscript` (code editor):**
239
215
 
240
- See the [Getting Started Guide](https://wandelbotsgmbh.github.io/wandelbots-js-react-components/?path=/docs/gettingstarted--docs) for complete setup instructions and integration examples.
216
+ - @monaco-editor/react
217
+ - shiki
218
+ - @shikijs/monaco
241
219
 
242
220
  ## Development
243
221
 
package/dist/3d.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./manufacturerHomePositions-zd-CKEiQ.cjs");exports.CollisionSceneRenderer=e.CollisionSceneRenderer;exports.MANUFACTURER_HOME_CONFIGS=e.MANUFACTURER_HOME_CONFIGS;exports.PresetEnvironment=e.PresetEnvironment;exports.Robot=e.Robot;exports.RobotCard=e.RobotCard;exports.SafetyZonesRenderer=e.SafetyZonesRenderer;exports.SupportedRobot=e.SupportedRobot;exports.TrajectoryRenderer=e.TrajectoryRenderer;exports.defaultAxisConfig=e.defaultAxisConfig;exports.defaultGetModel=e.defaultGetModel;exports.extractManufacturer=e.extractManufacturer;exports.getDefaultHomeConfig=e.getDefaultHomeConfig;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./manufacturerHomePositions-AGIQC0U_.cjs");exports.CollisionSceneRenderer=e.CollisionSceneRenderer;exports.MANUFACTURER_HOME_CONFIGS=e.MANUFACTURER_HOME_CONFIGS;exports.PresetEnvironment=e.PresetEnvironment;exports.Robot=e.Robot;exports.RobotCard=e.RobotCard;exports.SafetyZonesRenderer=e.SafetyZonesRenderer;exports.SupportedRobot=e.SupportedRobot;exports.TrajectoryRenderer=e.TrajectoryRenderer;exports.defaultAxisConfig=e.defaultAxisConfig;exports.defaultGetModel=e.defaultGetModel;exports.extractManufacturer=e.extractManufacturer;exports.getDefaultHomeConfig=e.getDefaultHomeConfig;
2
2
  //# sourceMappingURL=3d.cjs.js.map
package/dist/3d.es.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C as o, M as r, P as t, b as s, R as n, S as d, c as R, T as f, a as C, d as i, e as l, g as u } from "./manufacturerHomePositions-DHqcbFON.js";
1
+ import { C as o, M as r, P as t, b as s, R as n, S as d, c as R, T as f, a as C, d as i, e as l, g as u } from "./manufacturerHomePositions-4m2Kt5Pk.js";
2
2
  export {
3
3
  o as CollisionSceneRenderer,
4
4
  r as MANUFACTURER_HOME_CONFIGS,
@@ -0,0 +1,2 @@
1
+ "use strict";const t=require("./index-DS_xdVel.cjs"),n=require("@mui/material"),x=require("lodash-es"),a=require("react");function l(e){try{return JSON.stringify(e)}catch{return}}function m(e,s){throw new Error(s+` ${JSON.stringify(e)}`)}function g(e){var s,r,o,i;return e instanceof t.AxiosError&&e.code==="ERR_NETWORK"?"Failed to connect to the server. Please check your internet connection.":e instanceof t.AxiosError&&e.response?`${(s=e.response)==null?void 0:s.status} ${(r=e.response)==null?void 0:r.statusText} from ${(o=e.response)==null?void 0:o.config.url}: ${JSON.stringify((i=e.response)==null?void 0:i.data)}`:e instanceof Error?e.message:`Unexpected error: ${l(e)||e}`}const d=e=>{const s=e.softTimeout||3e3,[r,o]=a.useState(!1),i=n.useTheme();return a.useEffect(()=>{const u=setTimeout(()=>{o(!0)},s);return()=>clearTimeout(u)}),t.jsxRuntimeExports.jsx(n.Stack,{width:"100%",height:"100%",alignItems:"center",justifyContent:"center",sx:{color:i.palette.text.primary},children:e.error?t.jsxRuntimeExports.jsx(c,{loadingMessage:e.message,error:e.error}):t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx(n.CircularProgress,{sx:{marginBottom:"24px"}}),!!e.message&&t.jsxRuntimeExports.jsx("div",{children:e.message}),t.jsxRuntimeExports.jsx(n.Stack,{sx:{visibility:r?"visible":"hidden",marginTop:"1rem",color:i.palette.text.secondary},children:"This is taking longer than expected..."})]})})},c=e=>{const s=g(e.error),r=e.error instanceof Error?e.error.stack:null,o=n.useTheme();return t.jsxRuntimeExports.jsxs(n.Stack,{sx:{maxHeight:"100%",maxWidth:"min(100%, 800px)",padding:2,overflow:"auto",color:o.palette.error.main,"& pre":{whiteSpace:"pre-wrap",wordBreak:"break-word",paddingBottom:"3rem"}},children:[(e.loadingMessage?`Error while ${x.lowerFirst(n.capitalize(e.loadingMessage))} - `:"")+s,t.jsxRuntimeExports.jsx("br",{}),r&&t.jsxRuntimeExports.jsx("pre",{children:r})]})};exports.LoadingCover=d;exports.LoadingErrorMessage=c;exports.assertUnreachable=m;
2
+ //# sourceMappingURL=LoadingCover-CbvPNfkO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingCover-CbvPNfkO.cjs","sources":["../src/components/utils/converters.ts","../src/components/utils/errorHandling.ts","../src/components/LoadingCover.tsx"],"sourcesContent":["export function radiansToDegree(radians: number): number {\n return radians * (180 / Math.PI)\n}\n\nexport function degreesToRadians(degrees: number): number {\n return degrees * (Math.PI / 180)\n}\n\nexport function tryParseJson(json: unknown): any {\n try {\n return JSON.parse(json as string)\n } catch {\n return undefined\n }\n}\n\nexport function tryStringifyJson(json: unknown): string | undefined {\n try {\n return JSON.stringify(json)\n } catch {\n return undefined\n }\n}\n","import { AxiosError } from \"axios\"\nimport { tryStringifyJson } from \"./converters\"\n\n// Please note: These helper functions also exist in nova.js\n// (with slightly different formatting), and will be unified\n// at some point in the future.\n\nexport function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nexport function makeShortErrorMessage(err: unknown) {\n if (err instanceof AxiosError && err.code === \"ERR_NETWORK\") {\n return \"Failed to connect to the server. Please check your internet connection.\"\n } else if (err instanceof AxiosError && err.response) {\n return `${err.response?.status} ${err.response?.statusText}: ${JSON.stringify(err.response?.data)}`\n } else if (err instanceof Error) {\n return err.message\n } else {\n return `Unexpected error: ${err}`\n }\n}\n\nexport function assertUnreachable(x: never, msg: string): never {\n throw new Error(msg + ` ${JSON.stringify(x)}`)\n}\n\nexport function makeErrorMessage(err: unknown) {\n if (err instanceof AxiosError && err.code === \"ERR_NETWORK\") {\n return \"Failed to connect to the server. Please check your internet connection.\"\n } else if (err instanceof AxiosError && err.response) {\n return `${err.response?.status} ${err.response?.statusText} from ${err.response?.config.url}: ${JSON.stringify(err.response?.data)}`\n } else if (err instanceof Error) {\n return err.message\n } else {\n return `Unexpected error: ${tryStringifyJson(err) || err}`\n }\n}\n","import { capitalize, CircularProgress, Stack, useTheme } from \"@mui/material\"\nimport { lowerFirst } from \"lodash-es\"\nimport { useEffect, useState } from \"react\"\nimport { makeErrorMessage } from \"./utils/errorHandling\"\n\nexport const LoadingCover = (props: {\n message?: string\n error?: unknown\n softTimeout?: number\n}) => {\n const softTimeout = props.softTimeout || 3000\n\n const [showSlowLoadingMessage, setShowSlowLoadingMessage] = useState(false)\n const theme = useTheme()\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n setShowSlowLoadingMessage(true)\n }, softTimeout)\n\n return () => clearTimeout(timeout)\n })\n\n return (\n <Stack\n width=\"100%\"\n height=\"100%\"\n alignItems=\"center\"\n justifyContent=\"center\"\n sx={{ color: theme.palette.text.primary }}\n >\n {props.error ? (\n <LoadingErrorMessage\n loadingMessage={props.message}\n error={props.error}\n />\n ) : (\n <>\n <CircularProgress sx={{ marginBottom: \"24px\" }} />\n {!!props.message && <div>{props.message}</div>}\n <Stack\n sx={{\n visibility: showSlowLoadingMessage ? \"visible\" : \"hidden\",\n marginTop: \"1rem\",\n color: theme.palette.text.secondary,\n }}\n >\n {\"This is taking longer than expected...\"}\n </Stack>\n </>\n )}\n </Stack>\n )\n}\n\nexport const LoadingErrorMessage = (props: {\n loadingMessage?: string\n error: unknown\n}) => {\n const errorMessage = makeErrorMessage(props.error)\n const stack = props.error instanceof Error ? props.error.stack : null\n const theme = useTheme()\n\n return (\n <Stack\n sx={{\n maxHeight: \"100%\",\n maxWidth: \"min(100%, 800px)\",\n padding: 2,\n overflow: \"auto\",\n color: theme.palette.error.main,\n \"& pre\": {\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\",\n paddingBottom: \"3rem\",\n },\n }}\n >\n {(props.loadingMessage\n ? `Error while ${lowerFirst(capitalize(props.loadingMessage))} - `\n : \"\") + errorMessage}\n <br />\n {stack && <pre>{stack}</pre>}\n </Stack>\n )\n}\n"],"names":["tryStringifyJson","json","assertUnreachable","x","msg","makeErrorMessage","err","AxiosError","_a","_b","_c","_d","LoadingCover","props","softTimeout","showSlowLoadingMessage","setShowSlowLoadingMessage","useState","theme","useTheme","useEffect","timeout","jsx","Stack","LoadingErrorMessage","jsxs","Fragment","CircularProgress","errorMessage","stack","lowerFirst","capitalize"],"mappings":"0HAgBO,SAASA,EAAiBC,EAAmC,CAC9D,GAAA,CACK,OAAA,KAAK,UAAUA,CAAI,CAAA,MACpB,CACC,MAAA,CAEX,CCCgB,SAAAC,EAAkBC,EAAUC,EAAoB,CACxD,MAAA,IAAI,MAAMA,EAAM,IAAI,KAAK,UAAUD,CAAC,CAAC,EAAE,CAC/C,CAEO,SAASE,EAAiBC,EAAc,aAC7C,OAAIA,aAAeC,EAAA,YAAcD,EAAI,OAAS,cACrC,0EACEA,aAAeC,cAAcD,EAAI,SACnC,IAAGE,EAAAF,EAAI,WAAJ,YAAAE,EAAc,MAAM,KAAIC,EAAAH,EAAI,WAAJ,YAAAG,EAAc,UAAU,UAASC,EAAAJ,EAAI,WAAJ,YAAAI,EAAc,OAAO,GAAG,KAAK,KAAK,WAAUC,EAAAL,EAAI,WAAJ,YAAAK,EAAc,IAAI,CAAC,GACzHL,aAAe,MACjBA,EAAI,QAEJ,qBAAqBN,EAAiBM,CAAG,GAAKA,CAAG,EAE5D,CChCa,MAAAM,EAAgBC,GAIvB,CACE,MAAAC,EAAcD,EAAM,aAAe,IAEnC,CAACE,EAAwBC,CAAyB,EAAIC,EAAAA,SAAS,EAAK,EACpEC,EAAQC,EAAAA,SAAS,EAEvBC,OAAAA,EAAAA,UAAU,IAAM,CACR,MAAAC,EAAU,WAAW,IAAM,CAC/BL,EAA0B,EAAI,GAC7BF,CAAW,EAEP,MAAA,IAAM,aAAaO,CAAO,CAAA,CAClC,EAGCC,EAAA,kBAAA,IAACC,EAAA,MAAA,CACC,MAAM,OACN,OAAO,OACP,WAAW,SACX,eAAe,SACf,GAAI,CAAE,MAAOL,EAAM,QAAQ,KAAK,OAAQ,EAEvC,WAAM,MACLI,EAAA,kBAAA,IAACE,EAAA,CACC,eAAgBX,EAAM,QACtB,MAAOA,EAAM,KAAA,CAAA,EAIbY,EAAA,kBAAA,KAAAC,6BAAA,CAAA,SAAA,CAAAJ,EAAA,kBAAA,IAACK,EAAiB,iBAAA,CAAA,GAAI,CAAE,aAAc,QAAU,EAC/C,CAAC,CAACd,EAAM,SAAYS,EAAA,kBAAA,IAAA,MAAA,CAAK,WAAM,QAAQ,EACxCA,EAAA,kBAAA,IAACC,EAAA,MAAA,CACC,GAAI,CACF,WAAYR,EAAyB,UAAY,SACjD,UAAW,OACX,MAAOG,EAAM,QAAQ,KAAK,SAC5B,EAEC,SAAA,wCAAA,CAAA,CACH,CACF,CAAA,CAAA,CAEJ,CAEJ,EAEaM,EAAuBX,GAG9B,CACE,MAAAe,EAAevB,EAAiBQ,EAAM,KAAK,EAC3CgB,EAAQhB,EAAM,iBAAiB,MAAQA,EAAM,MAAM,MAAQ,KAC3DK,EAAQC,EAAAA,SAAS,EAGrB,OAAAM,EAAA,kBAAA,KAACF,EAAA,MAAA,CACC,GAAI,CACF,UAAW,OACX,SAAU,mBACV,QAAS,EACT,SAAU,OACV,MAAOL,EAAM,QAAQ,MAAM,KAC3B,QAAS,CACP,WAAY,WACZ,UAAW,aACX,cAAe,MAAA,CAEnB,EAEE,SAAA,EAAML,EAAA,eACJ,eAAeiB,EAAAA,WAAWC,EAAAA,WAAWlB,EAAM,cAAc,CAAC,CAAC,MAC3D,IAAMe,0BACT,KAAG,EAAA,EACHC,GAAUP,EAAAA,kBAAAA,IAAA,MAAA,CAAK,SAAMO,CAAA,CAAA,CAAA,CAAA,CACxB,CAEJ"}
@@ -0,0 +1,87 @@
1
+ import { A as a, j as t } from "./index-BSgNMmxG.js";
2
+ import { useTheme as c, Stack as i, CircularProgress as m, capitalize as g } from "@mui/material";
3
+ import { lowerFirst as d } from "lodash-es";
4
+ import { useState as u, useEffect as f } from "react";
5
+ function h(e) {
6
+ try {
7
+ return JSON.stringify(e);
8
+ } catch {
9
+ return;
10
+ }
11
+ }
12
+ function S(e, r) {
13
+ throw new Error(r + ` ${JSON.stringify(e)}`);
14
+ }
15
+ function x(e) {
16
+ var r, s, o, n;
17
+ return e instanceof a && e.code === "ERR_NETWORK" ? "Failed to connect to the server. Please check your internet connection." : e instanceof a && e.response ? `${(r = e.response) == null ? void 0 : r.status} ${(s = e.response) == null ? void 0 : s.statusText} from ${(o = e.response) == null ? void 0 : o.config.url}: ${JSON.stringify((n = e.response) == null ? void 0 : n.data)}` : e instanceof Error ? e.message : `Unexpected error: ${h(e) || e}`;
18
+ }
19
+ const T = (e) => {
20
+ const r = e.softTimeout || 3e3, [s, o] = u(!1), n = c();
21
+ return f(() => {
22
+ const l = setTimeout(() => {
23
+ o(!0);
24
+ }, r);
25
+ return () => clearTimeout(l);
26
+ }), /* @__PURE__ */ t.jsx(
27
+ i,
28
+ {
29
+ width: "100%",
30
+ height: "100%",
31
+ alignItems: "center",
32
+ justifyContent: "center",
33
+ sx: { color: n.palette.text.primary },
34
+ children: e.error ? /* @__PURE__ */ t.jsx(
35
+ w,
36
+ {
37
+ loadingMessage: e.message,
38
+ error: e.error
39
+ }
40
+ ) : /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
41
+ /* @__PURE__ */ t.jsx(m, { sx: { marginBottom: "24px" } }),
42
+ !!e.message && /* @__PURE__ */ t.jsx("div", { children: e.message }),
43
+ /* @__PURE__ */ t.jsx(
44
+ i,
45
+ {
46
+ sx: {
47
+ visibility: s ? "visible" : "hidden",
48
+ marginTop: "1rem",
49
+ color: n.palette.text.secondary
50
+ },
51
+ children: "This is taking longer than expected..."
52
+ }
53
+ )
54
+ ] })
55
+ }
56
+ );
57
+ }, w = (e) => {
58
+ const r = x(e.error), s = e.error instanceof Error ? e.error.stack : null, o = c();
59
+ return /* @__PURE__ */ t.jsxs(
60
+ i,
61
+ {
62
+ sx: {
63
+ maxHeight: "100%",
64
+ maxWidth: "min(100%, 800px)",
65
+ padding: 2,
66
+ overflow: "auto",
67
+ color: o.palette.error.main,
68
+ "& pre": {
69
+ whiteSpace: "pre-wrap",
70
+ wordBreak: "break-word",
71
+ paddingBottom: "3rem"
72
+ }
73
+ },
74
+ children: [
75
+ (e.loadingMessage ? `Error while ${d(g(e.loadingMessage))} - ` : "") + r,
76
+ /* @__PURE__ */ t.jsx("br", {}),
77
+ s && /* @__PURE__ */ t.jsx("pre", { children: s })
78
+ ]
79
+ }
80
+ );
81
+ };
82
+ export {
83
+ T as L,
84
+ w as a,
85
+ S as b
86
+ };
87
+ //# sourceMappingURL=LoadingCover-DkXwZXg8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingCover-DkXwZXg8.js","sources":["../src/components/utils/converters.ts","../src/components/utils/errorHandling.ts","../src/components/LoadingCover.tsx"],"sourcesContent":["export function radiansToDegree(radians: number): number {\n return radians * (180 / Math.PI)\n}\n\nexport function degreesToRadians(degrees: number): number {\n return degrees * (Math.PI / 180)\n}\n\nexport function tryParseJson(json: unknown): any {\n try {\n return JSON.parse(json as string)\n } catch {\n return undefined\n }\n}\n\nexport function tryStringifyJson(json: unknown): string | undefined {\n try {\n return JSON.stringify(json)\n } catch {\n return undefined\n }\n}\n","import { AxiosError } from \"axios\"\nimport { tryStringifyJson } from \"./converters\"\n\n// Please note: These helper functions also exist in nova.js\n// (with slightly different formatting), and will be unified\n// at some point in the future.\n\nexport function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nexport function makeShortErrorMessage(err: unknown) {\n if (err instanceof AxiosError && err.code === \"ERR_NETWORK\") {\n return \"Failed to connect to the server. Please check your internet connection.\"\n } else if (err instanceof AxiosError && err.response) {\n return `${err.response?.status} ${err.response?.statusText}: ${JSON.stringify(err.response?.data)}`\n } else if (err instanceof Error) {\n return err.message\n } else {\n return `Unexpected error: ${err}`\n }\n}\n\nexport function assertUnreachable(x: never, msg: string): never {\n throw new Error(msg + ` ${JSON.stringify(x)}`)\n}\n\nexport function makeErrorMessage(err: unknown) {\n if (err instanceof AxiosError && err.code === \"ERR_NETWORK\") {\n return \"Failed to connect to the server. Please check your internet connection.\"\n } else if (err instanceof AxiosError && err.response) {\n return `${err.response?.status} ${err.response?.statusText} from ${err.response?.config.url}: ${JSON.stringify(err.response?.data)}`\n } else if (err instanceof Error) {\n return err.message\n } else {\n return `Unexpected error: ${tryStringifyJson(err) || err}`\n }\n}\n","import { capitalize, CircularProgress, Stack, useTheme } from \"@mui/material\"\nimport { lowerFirst } from \"lodash-es\"\nimport { useEffect, useState } from \"react\"\nimport { makeErrorMessage } from \"./utils/errorHandling\"\n\nexport const LoadingCover = (props: {\n message?: string\n error?: unknown\n softTimeout?: number\n}) => {\n const softTimeout = props.softTimeout || 3000\n\n const [showSlowLoadingMessage, setShowSlowLoadingMessage] = useState(false)\n const theme = useTheme()\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n setShowSlowLoadingMessage(true)\n }, softTimeout)\n\n return () => clearTimeout(timeout)\n })\n\n return (\n <Stack\n width=\"100%\"\n height=\"100%\"\n alignItems=\"center\"\n justifyContent=\"center\"\n sx={{ color: theme.palette.text.primary }}\n >\n {props.error ? (\n <LoadingErrorMessage\n loadingMessage={props.message}\n error={props.error}\n />\n ) : (\n <>\n <CircularProgress sx={{ marginBottom: \"24px\" }} />\n {!!props.message && <div>{props.message}</div>}\n <Stack\n sx={{\n visibility: showSlowLoadingMessage ? \"visible\" : \"hidden\",\n marginTop: \"1rem\",\n color: theme.palette.text.secondary,\n }}\n >\n {\"This is taking longer than expected...\"}\n </Stack>\n </>\n )}\n </Stack>\n )\n}\n\nexport const LoadingErrorMessage = (props: {\n loadingMessage?: string\n error: unknown\n}) => {\n const errorMessage = makeErrorMessage(props.error)\n const stack = props.error instanceof Error ? props.error.stack : null\n const theme = useTheme()\n\n return (\n <Stack\n sx={{\n maxHeight: \"100%\",\n maxWidth: \"min(100%, 800px)\",\n padding: 2,\n overflow: \"auto\",\n color: theme.palette.error.main,\n \"& pre\": {\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\",\n paddingBottom: \"3rem\",\n },\n }}\n >\n {(props.loadingMessage\n ? `Error while ${lowerFirst(capitalize(props.loadingMessage))} - `\n : \"\") + errorMessage}\n <br />\n {stack && <pre>{stack}</pre>}\n </Stack>\n )\n}\n"],"names":["tryStringifyJson","json","assertUnreachable","x","msg","makeErrorMessage","err","AxiosError","_a","_b","_c","_d","LoadingCover","props","softTimeout","showSlowLoadingMessage","setShowSlowLoadingMessage","useState","theme","useTheme","useEffect","timeout","jsx","Stack","LoadingErrorMessage","jsxs","Fragment","CircularProgress","errorMessage","stack","lowerFirst","capitalize"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";var w=Object.create;var p=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var v=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of f(t))!b.call(e,i)&&i!==n&&p(e,i,{get:()=>t[i],enumerable:!(s=k(t,i))||s.enumerable});return e};var c=(e,t,n)=>(n=e!=null?w(x(e)):{},v(t||!e||!e.__esModule?p(n,"default",{value:e,enumerable:!0}):n,e));const r=require("./index-DS_xdVel.cjs"),u=require("react"),T=require("@mui/material"),y=require("./LoadingCover-CbvPNfkO.cjs"),C={$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"wandelscript",patterns:[{include:"#keywords"},{include:"#strings"},{include:"#comments"},{include:"#functions"}],repository:{keywords:{patterns:[{name:"keyword.control.flow.wandelscript",match:"\\b(move|via|to|interrupt|def|False|True|for|if|else|elif|while|return|switch|activate|deactivate|print|and|or|not)\\b"}]},strings:{name:"string.quoted.double.wandelscript",begin:'"',end:'"',patterns:[{name:"constant.character.escape.wandelscript",match:"\\\\."}]},comments:{patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.wandelscript"}},end:"$",name:"comment.line.number-sign.wandelscript"}]},functions:{patterns:[{match:"[a-zA-Z_-]+\\(",name:"entity.name.function.wandelscript"}]}},scopeName:"source.wandelscript"},E=u.lazy(()=>import("@monaco-editor/react"));let l=null;async function S(){if(!l){const[{createHighlighter:e},{shikiToMonaco:t}]=await Promise.all([import("shiki"),import("@shikijs/monaco")]);l={shiki:await e({langs:[C],themes:["dark-plus","light-plus"]}),shikiToMonaco:t}}return l}const j=r.externalizeComponent(e=>{const t=T.useTheme(),[n,s]=u.useState("dark-plus"),i=t.palette.mode==="dark"?"dark-plus":"light-plus";async function g(a){var m,d;a.languages.register({id:"wandelscript"}),a.languages.setLanguageConfiguration("wandelscript",{comments:{lineComment:"#"},brackets:[["(",")"],["[","]"]],autoClosingPairs:[{open:"[",close:"]"},{open:"(",close:")"}],surroundingPairs:[{open:"[",close:"]"},{open:"(",close:")"}]});const{shiki:o,shikiToMonaco:h}=await S();h(o,a),a.editor.defineTheme(i,((d=(m=t.componentsExt)==null?void 0:m.WandelscriptEditor)==null?void 0:d.monacoTheme)??{base:t.palette.mode==="dark"?"vs-dark":"vs",inherit:!0,rules:[],colors:{}}),e.monacoSetup&&e.monacoSetup(a),s(i)}return r.jsxRuntimeExports.jsx(u.Suspense,{fallback:r.jsxRuntimeExports.jsx(y.LoadingCover,{}),children:r.jsxRuntimeExports.jsx(E,{value:e.code,onMount:(a,o)=>{g(o)},onChange:e.onChange,defaultLanguage:"wandelscript",theme:n,options:{minimap:{enabled:!1},wordWrap:"on",automaticLayout:!0,...e.monacoOptions}})})});exports.WandelscriptEditor=j;
2
+ //# sourceMappingURL=WandelscriptEditor-DepOICD0.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WandelscriptEditor-DepOICD0.cjs","sources":["../src/components/wandelscript-editor/wandelscript.tmLanguage.ts","../src/components/wandelscript-editor/WandelscriptEditor.tsx"],"sourcesContent":["export default {\n $schema:\n \"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json\",\n name: \"wandelscript\",\n patterns: [\n {\n include: \"#keywords\",\n },\n {\n include: \"#strings\",\n },\n {\n include: \"#comments\",\n },\n {\n include: \"#functions\",\n },\n ],\n repository: {\n keywords: {\n patterns: [\n {\n name: \"keyword.control.flow.wandelscript\",\n match:\n \"\\\\b(move|via|to|interrupt|def|False|True|for|if|else|elif|while|return|switch|activate|deactivate|print|and|or|not)\\\\b\",\n },\n ],\n },\n strings: {\n name: \"string.quoted.double.wandelscript\",\n begin: '\"',\n end: '\"',\n patterns: [\n {\n name: \"constant.character.escape.wandelscript\",\n match: \"\\\\\\\\.\",\n },\n ],\n },\n comments: {\n patterns: [\n {\n begin: \"#\",\n beginCaptures: {\n \"0\": { name: \"punctuation.definition.comment.wandelscript\" },\n },\n end: \"$\",\n name: \"comment.line.number-sign.wandelscript\",\n },\n ],\n },\n functions: {\n patterns: [\n {\n match: \"[a-zA-Z_-]+\\\\(\",\n name: \"entity.name.function.wandelscript\",\n },\n ],\n },\n },\n scopeName: \"source.wandelscript\",\n}\n","import type { Monaco } from \"@monaco-editor/react\"\nimport { lazy, Suspense, useState } from \"react\"\nimport type {\n BundledLanguage,\n BundledTheme,\n HighlighterGeneric,\n ShikiInternal,\n} from \"shiki\"\n\nimport { useTheme } from \"@mui/material\"\nimport type { editor } from \"monaco-editor\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { LoadingCover } from \"../LoadingCover\"\nimport wandelscriptTextmateGrammar from \"./wandelscript.tmLanguage\"\n\ntype WandelscriptEditorProps = {\n /** The current Wandelscript content of the code editor (controlled component) */\n code?: string\n /** What to do when the user edits the code */\n onChange?: (\n code: string | undefined,\n ev: editor.IModelContentChangedEvent,\n ) => void\n /** Options for monaco editor */\n monacoOptions?: editor.IEditorOptions\n /** Callback to further configure monaco on startup if needed */\n monacoSetup?: (monaco: Monaco) => void\n}\n\nconst Editor = lazy(() => import(\"@monaco-editor/react\"))\n\nlet preparedShiki: {\n shiki: HighlighterGeneric<BundledLanguage, BundledTheme>\n shikiToMonaco: (\n shiki: HighlighterGeneric<BundledLanguage, BundledTheme>,\n monaco: Monaco,\n ) => void\n} | null = null\n\nasync function getShiki() {\n if (!preparedShiki) {\n const [{ createHighlighter }, { shikiToMonaco }] = await Promise.all([\n import(\"shiki\"),\n import(\"@shikijs/monaco\"),\n ])\n\n const shiki = await createHighlighter({\n // Our textmate grammar doesn't quite conform to the expected type\n // here; I'm not sure what the missing properties mean exactly\n langs: [wandelscriptTextmateGrammar as any],\n themes: [\"dark-plus\", \"light-plus\"],\n })\n\n preparedShiki = {\n shiki,\n shikiToMonaco: shikiToMonaco as unknown as (\n shiki: ShikiInternal<any, any>,\n monaco: typeof import(\"monaco-editor\"),\n ) => void,\n }\n }\n\n return preparedShiki\n}\n\n/** A Monaco (VSCode-style) embedded code editor with Wandelscript syntax highlighting */\nexport const WandelscriptEditor = externalizeComponent(\n (props: WandelscriptEditorProps) => {\n const theme = useTheme()\n const [activeShikiTheme, setActiveShikiTheme] =\n useState<BundledTheme>(\"dark-plus\")\n const targetShikiTheme =\n theme.palette.mode === \"dark\" ? \"dark-plus\" : \"light-plus\"\n\n async function setupEditor(monaco: Monaco) {\n // Register and configure the Wandelscript language\n monaco.languages.register({ id: \"wandelscript\" })\n\n monaco.languages.setLanguageConfiguration(\"wandelscript\", {\n comments: {\n lineComment: \"#\",\n },\n brackets: [\n [\"(\", \")\"],\n [\"[\", \"]\"],\n ],\n autoClosingPairs: [\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n ],\n surroundingPairs: [\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n ],\n })\n\n const { shiki, shikiToMonaco } = await getShiki()\n\n // Monaco doesn't support TextMate grammar config directly, so we\n // use Shiki as an intermediary\n shikiToMonaco(shiki, monaco)\n\n // Override the generated shiki theme to use shiki syntax highlighting\n // but vscode colors\n monaco.editor.defineTheme(\n targetShikiTheme,\n theme.componentsExt?.WandelscriptEditor?.monacoTheme ?? {\n base: theme.palette.mode === \"dark\" ? \"vs-dark\" : \"vs\",\n inherit: true,\n rules: [],\n colors: {},\n },\n )\n\n if (props.monacoSetup) {\n props.monacoSetup(monaco)\n }\n\n setActiveShikiTheme(targetShikiTheme)\n }\n\n return (\n <Suspense fallback={<LoadingCover />}>\n <Editor\n value={props.code}\n onMount={(_editor, monaco) => {\n setupEditor(monaco)\n }}\n onChange={props.onChange}\n defaultLanguage=\"wandelscript\"\n theme={activeShikiTheme}\n options={{\n minimap: { enabled: false },\n wordWrap: \"on\",\n automaticLayout: true,\n ...props.monacoOptions,\n }}\n />\n </Suspense>\n )\n },\n)\n"],"names":["wandelscriptTextmateGrammar","Editor","lazy","preparedShiki","getShiki","createHighlighter","shikiToMonaco","WandelscriptEditor","externalizeComponent","props","theme","useTheme","activeShikiTheme","setActiveShikiTheme","useState","targetShikiTheme","setupEditor","monaco","shiki","_b","_a","jsx","Suspense","LoadingCover","_editor"],"mappings":"ulBAAeA,EAAA,CACb,QACE,iFACF,KAAM,eACN,SAAU,CACR,CACE,QAAS,WACX,EACA,CACE,QAAS,UACX,EACA,CACE,QAAS,WACX,EACA,CACE,QAAS,YAAA,CAEb,EACA,WAAY,CACV,SAAU,CACR,SAAU,CACR,CACE,KAAM,oCACN,MACE,wHAAA,CACJ,CAEJ,EACA,QAAS,CACP,KAAM,oCACN,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,KAAM,yCACN,MAAO,OAAA,CACT,CAEJ,EACA,SAAU,CACR,SAAU,CACR,CACE,MAAO,IACP,cAAe,CACb,EAAK,CAAE,KAAM,6CAA8C,CAC7D,EACA,IAAK,IACL,KAAM,uCAAA,CACR,CAEJ,EACA,UAAW,CACT,SAAU,CACR,CACE,MAAO,iBACP,KAAM,mCAAA,CACR,CACF,CAEJ,EACA,UAAW,qBACb,EChCMC,EAASC,EAAA,KAAK,IAAM,OAAO,sBAAsB,CAAC,EAExD,IAAIC,EAMO,KAEX,eAAeC,GAAW,CACxB,GAAI,CAACD,EAAe,CACZ,KAAA,CAAC,CAAE,kBAAAE,GAAqB,CAAE,cAAAC,EAAe,EAAI,MAAM,QAAQ,IAAI,CACnE,OAAO,OAAO,EACd,OAAO,iBAAiB,CAAA,CACzB,EASeH,EAAA,CACd,MARY,MAAME,EAAkB,CAGpC,MAAO,CAACL,CAAkC,EAC1C,OAAQ,CAAC,YAAa,YAAY,CAAA,CACnC,EAIC,cAAAM,CAIF,CAAA,CAGK,OAAAH,CACT,CAGO,MAAMI,EAAqBC,EAAA,qBAC/BC,GAAmC,CAClC,MAAMC,EAAQC,EAAAA,SAAS,EACjB,CAACC,EAAkBC,CAAmB,EAC1CC,EAAAA,SAAuB,WAAW,EAC9BC,EACJL,EAAM,QAAQ,OAAS,OAAS,YAAc,aAEhD,eAAeM,EAAYC,EAAgB,SAEzCA,EAAO,UAAU,SAAS,CAAE,GAAI,eAAgB,EAEzCA,EAAA,UAAU,yBAAyB,eAAgB,CACxD,SAAU,CACR,YAAa,GACf,EACA,SAAU,CACR,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,GAAG,CACX,EACA,iBAAkB,CAChB,CAAE,KAAM,IAAK,MAAO,GAAI,EACxB,CAAE,KAAM,IAAK,MAAO,GAAI,CAC1B,EACA,iBAAkB,CAChB,CAAE,KAAM,IAAK,MAAO,GAAI,EACxB,CAAE,KAAM,IAAK,MAAO,GAAI,CAAA,CAC1B,CACD,EAED,KAAM,CAAE,MAAAC,EAAO,cAAAZ,CAAc,EAAI,MAAMF,EAAS,EAIhDE,EAAcY,EAAOD,CAAM,EAI3BA,EAAO,OAAO,YACZF,IACAI,GAAAC,EAAAV,EAAM,gBAAN,YAAAU,EAAqB,qBAArB,YAAAD,EAAyC,cAAe,CACtD,KAAMT,EAAM,QAAQ,OAAS,OAAS,UAAY,KAClD,QAAS,GACT,MAAO,CAAC,EACR,OAAQ,CAAA,CAAC,CAEb,EAEID,EAAM,aACRA,EAAM,YAAYQ,CAAM,EAG1BJ,EAAoBE,CAAgB,CAAA,CAGtC,OACGM,EAAA,kBAAA,IAAAC,EAAA,SAAA,CAAS,SAAUD,EAAA,kBAAA,IAACE,iBAAa,EAChC,SAAAF,EAAA,kBAAA,IAACpB,EAAA,CACC,MAAOQ,EAAM,KACb,QAAS,CAACe,EAASP,IAAW,CAC5BD,EAAYC,CAAM,CACpB,EACA,SAAUR,EAAM,SAChB,gBAAgB,eAChB,MAAOG,EACP,QAAS,CACP,QAAS,CAAE,QAAS,EAAM,EAC1B,SAAU,KACV,gBAAiB,GACjB,GAAGH,EAAM,aAAA,CACX,CAAA,EAEJ,CAAA,CAGN"}
@@ -0,0 +1,140 @@
1
+ import { e as p, j as i } from "./index-BSgNMmxG.js";
2
+ import { lazy as h, useState as g, Suspense as w } from "react";
3
+ import { useTheme as f } from "@mui/material";
4
+ import { L as k } from "./LoadingCover-DkXwZXg8.js";
5
+ const b = {
6
+ $schema: "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
7
+ name: "wandelscript",
8
+ patterns: [
9
+ {
10
+ include: "#keywords"
11
+ },
12
+ {
13
+ include: "#strings"
14
+ },
15
+ {
16
+ include: "#comments"
17
+ },
18
+ {
19
+ include: "#functions"
20
+ }
21
+ ],
22
+ repository: {
23
+ keywords: {
24
+ patterns: [
25
+ {
26
+ name: "keyword.control.flow.wandelscript",
27
+ match: "\\b(move|via|to|interrupt|def|False|True|for|if|else|elif|while|return|switch|activate|deactivate|print|and|or|not)\\b"
28
+ }
29
+ ]
30
+ },
31
+ strings: {
32
+ name: "string.quoted.double.wandelscript",
33
+ begin: '"',
34
+ end: '"',
35
+ patterns: [
36
+ {
37
+ name: "constant.character.escape.wandelscript",
38
+ match: "\\\\."
39
+ }
40
+ ]
41
+ },
42
+ comments: {
43
+ patterns: [
44
+ {
45
+ begin: "#",
46
+ beginCaptures: {
47
+ 0: { name: "punctuation.definition.comment.wandelscript" }
48
+ },
49
+ end: "$",
50
+ name: "comment.line.number-sign.wandelscript"
51
+ }
52
+ ]
53
+ },
54
+ functions: {
55
+ patterns: [
56
+ {
57
+ match: "[a-zA-Z_-]+\\(",
58
+ name: "entity.name.function.wandelscript"
59
+ }
60
+ ]
61
+ }
62
+ },
63
+ scopeName: "source.wandelscript"
64
+ }, v = h(() => import("@monaco-editor/react"));
65
+ let s = null;
66
+ async function T() {
67
+ if (!s) {
68
+ const [{ createHighlighter: e }, { shikiToMonaco: n }] = await Promise.all([
69
+ import("shiki"),
70
+ import("@shikijs/monaco")
71
+ ]);
72
+ s = {
73
+ shiki: await e({
74
+ // Our textmate grammar doesn't quite conform to the expected type
75
+ // here; I'm not sure what the missing properties mean exactly
76
+ langs: [b],
77
+ themes: ["dark-plus", "light-plus"]
78
+ }),
79
+ shikiToMonaco: n
80
+ };
81
+ }
82
+ return s;
83
+ }
84
+ const j = p(
85
+ (e) => {
86
+ const n = f(), [o, l] = g("dark-plus"), r = n.palette.mode === "dark" ? "dark-plus" : "light-plus";
87
+ async function u(t) {
88
+ var c, m;
89
+ t.languages.register({ id: "wandelscript" }), t.languages.setLanguageConfiguration("wandelscript", {
90
+ comments: {
91
+ lineComment: "#"
92
+ },
93
+ brackets: [
94
+ ["(", ")"],
95
+ ["[", "]"]
96
+ ],
97
+ autoClosingPairs: [
98
+ { open: "[", close: "]" },
99
+ { open: "(", close: ")" }
100
+ ],
101
+ surroundingPairs: [
102
+ { open: "[", close: "]" },
103
+ { open: "(", close: ")" }
104
+ ]
105
+ });
106
+ const { shiki: a, shikiToMonaco: d } = await T();
107
+ d(a, t), t.editor.defineTheme(
108
+ r,
109
+ ((m = (c = n.componentsExt) == null ? void 0 : c.WandelscriptEditor) == null ? void 0 : m.monacoTheme) ?? {
110
+ base: n.palette.mode === "dark" ? "vs-dark" : "vs",
111
+ inherit: !0,
112
+ rules: [],
113
+ colors: {}
114
+ }
115
+ ), e.monacoSetup && e.monacoSetup(t), l(r);
116
+ }
117
+ return /* @__PURE__ */ i.jsx(w, { fallback: /* @__PURE__ */ i.jsx(k, {}), children: /* @__PURE__ */ i.jsx(
118
+ v,
119
+ {
120
+ value: e.code,
121
+ onMount: (t, a) => {
122
+ u(a);
123
+ },
124
+ onChange: e.onChange,
125
+ defaultLanguage: "wandelscript",
126
+ theme: o,
127
+ options: {
128
+ minimap: { enabled: !1 },
129
+ wordWrap: "on",
130
+ automaticLayout: !0,
131
+ ...e.monacoOptions
132
+ }
133
+ }
134
+ ) });
135
+ }
136
+ );
137
+ export {
138
+ j as W
139
+ };
140
+ //# sourceMappingURL=WandelscriptEditor-DomKLwOz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WandelscriptEditor-DomKLwOz.js","sources":["../src/components/wandelscript-editor/wandelscript.tmLanguage.ts","../src/components/wandelscript-editor/WandelscriptEditor.tsx"],"sourcesContent":["export default {\n $schema:\n \"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json\",\n name: \"wandelscript\",\n patterns: [\n {\n include: \"#keywords\",\n },\n {\n include: \"#strings\",\n },\n {\n include: \"#comments\",\n },\n {\n include: \"#functions\",\n },\n ],\n repository: {\n keywords: {\n patterns: [\n {\n name: \"keyword.control.flow.wandelscript\",\n match:\n \"\\\\b(move|via|to|interrupt|def|False|True|for|if|else|elif|while|return|switch|activate|deactivate|print|and|or|not)\\\\b\",\n },\n ],\n },\n strings: {\n name: \"string.quoted.double.wandelscript\",\n begin: '\"',\n end: '\"',\n patterns: [\n {\n name: \"constant.character.escape.wandelscript\",\n match: \"\\\\\\\\.\",\n },\n ],\n },\n comments: {\n patterns: [\n {\n begin: \"#\",\n beginCaptures: {\n \"0\": { name: \"punctuation.definition.comment.wandelscript\" },\n },\n end: \"$\",\n name: \"comment.line.number-sign.wandelscript\",\n },\n ],\n },\n functions: {\n patterns: [\n {\n match: \"[a-zA-Z_-]+\\\\(\",\n name: \"entity.name.function.wandelscript\",\n },\n ],\n },\n },\n scopeName: \"source.wandelscript\",\n}\n","import type { Monaco } from \"@monaco-editor/react\"\nimport { lazy, Suspense, useState } from \"react\"\nimport type {\n BundledLanguage,\n BundledTheme,\n HighlighterGeneric,\n ShikiInternal,\n} from \"shiki\"\n\nimport { useTheme } from \"@mui/material\"\nimport type { editor } from \"monaco-editor\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { LoadingCover } from \"../LoadingCover\"\nimport wandelscriptTextmateGrammar from \"./wandelscript.tmLanguage\"\n\ntype WandelscriptEditorProps = {\n /** The current Wandelscript content of the code editor (controlled component) */\n code?: string\n /** What to do when the user edits the code */\n onChange?: (\n code: string | undefined,\n ev: editor.IModelContentChangedEvent,\n ) => void\n /** Options for monaco editor */\n monacoOptions?: editor.IEditorOptions\n /** Callback to further configure monaco on startup if needed */\n monacoSetup?: (monaco: Monaco) => void\n}\n\nconst Editor = lazy(() => import(\"@monaco-editor/react\"))\n\nlet preparedShiki: {\n shiki: HighlighterGeneric<BundledLanguage, BundledTheme>\n shikiToMonaco: (\n shiki: HighlighterGeneric<BundledLanguage, BundledTheme>,\n monaco: Monaco,\n ) => void\n} | null = null\n\nasync function getShiki() {\n if (!preparedShiki) {\n const [{ createHighlighter }, { shikiToMonaco }] = await Promise.all([\n import(\"shiki\"),\n import(\"@shikijs/monaco\"),\n ])\n\n const shiki = await createHighlighter({\n // Our textmate grammar doesn't quite conform to the expected type\n // here; I'm not sure what the missing properties mean exactly\n langs: [wandelscriptTextmateGrammar as any],\n themes: [\"dark-plus\", \"light-plus\"],\n })\n\n preparedShiki = {\n shiki,\n shikiToMonaco: shikiToMonaco as unknown as (\n shiki: ShikiInternal<any, any>,\n monaco: typeof import(\"monaco-editor\"),\n ) => void,\n }\n }\n\n return preparedShiki\n}\n\n/** A Monaco (VSCode-style) embedded code editor with Wandelscript syntax highlighting */\nexport const WandelscriptEditor = externalizeComponent(\n (props: WandelscriptEditorProps) => {\n const theme = useTheme()\n const [activeShikiTheme, setActiveShikiTheme] =\n useState<BundledTheme>(\"dark-plus\")\n const targetShikiTheme =\n theme.palette.mode === \"dark\" ? \"dark-plus\" : \"light-plus\"\n\n async function setupEditor(monaco: Monaco) {\n // Register and configure the Wandelscript language\n monaco.languages.register({ id: \"wandelscript\" })\n\n monaco.languages.setLanguageConfiguration(\"wandelscript\", {\n comments: {\n lineComment: \"#\",\n },\n brackets: [\n [\"(\", \")\"],\n [\"[\", \"]\"],\n ],\n autoClosingPairs: [\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n ],\n surroundingPairs: [\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n ],\n })\n\n const { shiki, shikiToMonaco } = await getShiki()\n\n // Monaco doesn't support TextMate grammar config directly, so we\n // use Shiki as an intermediary\n shikiToMonaco(shiki, monaco)\n\n // Override the generated shiki theme to use shiki syntax highlighting\n // but vscode colors\n monaco.editor.defineTheme(\n targetShikiTheme,\n theme.componentsExt?.WandelscriptEditor?.monacoTheme ?? {\n base: theme.palette.mode === \"dark\" ? \"vs-dark\" : \"vs\",\n inherit: true,\n rules: [],\n colors: {},\n },\n )\n\n if (props.monacoSetup) {\n props.monacoSetup(monaco)\n }\n\n setActiveShikiTheme(targetShikiTheme)\n }\n\n return (\n <Suspense fallback={<LoadingCover />}>\n <Editor\n value={props.code}\n onMount={(_editor, monaco) => {\n setupEditor(monaco)\n }}\n onChange={props.onChange}\n defaultLanguage=\"wandelscript\"\n theme={activeShikiTheme}\n options={{\n minimap: { enabled: false },\n wordWrap: \"on\",\n automaticLayout: true,\n ...props.monacoOptions,\n }}\n />\n </Suspense>\n )\n },\n)\n"],"names":["wandelscriptTextmateGrammar","Editor","lazy","preparedShiki","getShiki","createHighlighter","shikiToMonaco","WandelscriptEditor","externalizeComponent","props","theme","useTheme","activeShikiTheme","setActiveShikiTheme","useState","targetShikiTheme","setupEditor","monaco","shiki","_b","_a","jsx","Suspense","LoadingCover","_editor"],"mappings":"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"}
package/dist/core.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./theming-D5DvGuxX.cjs"),o=require("./VelocitySlider-2Zme2MN7.cjs"),a=require("./ProgramStateIndicator-DYKBcj1s.cjs"),t=require("./index-8UEqiXug.cjs"),r=require("./interpolation-CVSmVNjc.cjs"),n=require("./externalizeComponent-C12Qf79R.cjs");exports.AppHeader=e.AppHeader;exports.ConnectedMotionGroup=e.ConnectedMotionGroup;exports.LogPanel=e.LogPanel;exports.LogStore=e.LogStore;exports.LogViewer=e.LogViewer;exports.NoMotionGroupModal=e.NoMotionGroupModal;exports.RobotListItem=e.RobotListItem;exports.RobotSetupReadinessIndicator=e.RobotSetupReadinessIndicator;exports.RobotSetupReadinessState=e.RobotSetupReadinessState;exports.SafetyBar=e.SafetyBar;exports.SelectableFab=e.SelectableFab;exports.TabBar=e.TabBar;exports.WandelscriptEditor=e.WandelscriptEditor;exports.createDebugMessage=e.createDebugMessage;exports.createErrorMessage=e.createErrorMessage;exports.createInfoMessage=e.createInfoMessage;exports.createLogMessage=e.createLogMessage;exports.createNovaMuiTheme=e.createNovaMuiTheme;exports.createWarningMessage=e.createWarningMessage;exports.LoadingCover=o.LoadingCover;exports.LoadingErrorMessage=o.LoadingErrorMessage;exports.VelocitySlider=o.VelocitySlider;exports.VelocitySliderLabel=o.VelocitySliderLabel;exports.jointValuesEqual=o.jointValuesEqual;exports.poseEqual=o.poseEqual;exports.tcpMotionEqual=o.tcpMotionEqual;exports.unwrapRotationVector=o.unwrapRotationVector;exports.ProgramControl=a.ProgramControl;exports.ProgramState=a.ProgramState;exports.ProgramStateIndicator=a.ProgramStateIndicator;exports.useAnimationFrame=t.useAnimationFrame;exports.useAutorun=t.useAutorun;exports.useMounted=t.useMounted;exports.useReaction=t.useReaction;exports.ValueInterpolator=r.ValueInterpolator;exports.useInterpolation=r.useInterpolation;exports.i18n=n.i18n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./theming-ZJr8jTwS.cjs"),t=require("./LoadingCover-CbvPNfkO.cjs"),o=require("./index-BHtHALJk.cjs"),a=require("./index-DS_xdVel.cjs");exports.AppHeader=e.AppHeader;exports.ConnectedMotionGroup=e.ConnectedMotionGroup;exports.CycleTimer=e.CycleTimer;exports.JoggerConnection=e.JoggerConnection;exports.JoggingCartesianAxisControl=e.JoggingCartesianAxisControl;exports.JoggingJointRotationControl=e.JoggingJointRotationControl;exports.JoggingPanel=e.JoggingPanel;exports.JoggingStore=e.JoggingStore;exports.LogPanel=e.LogPanel;exports.LogStore=e.LogStore;exports.LogViewer=e.LogViewer;exports.MotionStreamConnection=e.MotionStreamConnection;exports.NoMotionGroupModal=e.NoMotionGroupModal;exports.PoseCartesianValues=e.PoseCartesianValues;exports.PoseJointValues=e.PoseJointValues;exports.RobotListItem=e.RobotListItem;exports.RobotSetupReadinessIndicator=e.RobotSetupReadinessIndicator;exports.RobotSetupReadinessState=e.RobotSetupReadinessState;exports.SafetyBar=e.SafetyBar;exports.SelectableFab=e.SelectableFab;exports.TabBar=e.TabBar;exports.Timer=e.Timer;exports.VelocitySlider=e.VelocitySlider;exports.VelocitySliderLabel=e.VelocitySliderLabel;exports.WandelbotsDataGrid=e.WandelbotsDataGrid;exports.createDebugMessage=e.createDebugMessage;exports.createErrorMessage=e.createErrorMessage;exports.createInfoMessage=e.createInfoMessage;exports.createLogMessage=e.createLogMessage;exports.createNovaMuiTheme=e.createNovaMuiTheme;exports.createWarningMessage=e.createWarningMessage;exports.jointValuesEqual=e.jointValuesEqual;exports.poseEqual=e.poseEqual;exports.tcpMotionEqual=e.tcpMotionEqual;exports.unwrapRotationVector=e.unwrapRotationVector;exports.LoadingCover=t.LoadingCover;exports.LoadingErrorMessage=t.LoadingErrorMessage;exports.ProgramControl=o.ProgramControl;exports.ProgramState=o.ProgramState;exports.ProgramStateIndicator=o.ProgramStateIndicator;exports.ValueInterpolator=o.ValueInterpolator;exports.useAnimationFrame=o.useAnimationFrame;exports.useAutorun=o.useAutorun;exports.useInterpolation=o.useInterpolation;exports.useMounted=o.useMounted;exports.useReaction=o.useReaction;exports.i18n=a.i18n;
2
2
  //# sourceMappingURL=core.cjs.js.map
package/dist/core.d.ts CHANGED
@@ -1,4 +1,12 @@
1
1
  export * from "./components/AppHeader";
2
+ export * from "./components/CycleTimer";
3
+ export * from "./components/DataGrid";
4
+ export * from "./components/jogging/JoggingCartesianAxisControl";
5
+ export * from "./components/jogging/JoggingJointRotationControl";
6
+ export * from "./components/jogging/JoggingPanel";
7
+ export { JoggingStore } from "./components/jogging/JoggingStore";
8
+ export * from "./components/jogging/PoseCartesianValues";
9
+ export * from "./components/jogging/PoseJointValues";
2
10
  export * from "./components/LoadingCover";
3
11
  export * from "./components/LogPanel";
4
12
  export { LogStore } from "./components/LogStore";
@@ -11,13 +19,15 @@ export * from "./components/RobotSetupReadinessIndicator";
11
19
  export * from "./components/safetyBar/SafetyBar";
12
20
  export * from "./components/SelectableFab";
13
21
  export * from "./components/TabBar";
22
+ export * from "./components/Timer";
14
23
  export * from "./components/utils/hooks";
15
24
  export * from "./components/utils/interpolation";
16
25
  export * from "./components/VelocitySlider";
17
- export * from "./components/wandelscript-editor/WandelscriptEditor";
18
26
  export * from "./i18n/config";
19
27
  export * from "./lib/ConnectedMotionGroup";
28
+ export * from "./lib/JoggerConnection";
20
29
  export * from "./lib/motionStateUpdate";
30
+ export * from "./lib/MotionStreamConnection";
21
31
  export * from "./themes/themeTypes";
22
32
  export { createNovaMuiTheme } from "./themes/theming";
23
33
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,cAAc,wBAAwB,CAAA;AACtC,cAAc,uCAAuC,CAAA;AACrD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oCAAoC,CAAA;AAClD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2CAA2C,CAAA;AACzD,cAAc,kCAAkC,CAAA;AAChD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qDAAqD,CAAA;AACnE,cAAc,eAAe,CAAA;AAC7B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kDAAkD,CAAA;AAChE,cAAc,kDAAkD,CAAA;AAChE,cAAc,mCAAmC,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,cAAc,0CAA0C,CAAA;AACxD,cAAc,sCAAsC,CAAA;AACpD,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,cAAc,wBAAwB,CAAA;AACtC,cAAc,uCAAuC,CAAA;AACrD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oCAAoC,CAAA;AAClD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2CAA2C,CAAA;AACzD,cAAc,kCAAkC,CAAA;AAChD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,eAAe,CAAA;AAC7B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA"}
package/dist/core.es.js CHANGED
@@ -1,46 +1,54 @@
1
- import { A as o, C as s, a as r, L as t, h as n, N as i, R as u, j as p, i as c, S as g, k as l, T as d, W as m, d as b, g as M, e as S, b as L, c as f, f as R } from "./theming-BO8z_Hpa.js";
2
- import { L as x, a as E, V as I, b as P, j as A, p as C, t as j, u as q } from "./VelocitySlider-QSg_8eb1.js";
3
- import { a as N, P as T, b as W } from "./ProgramStateIndicator-CTT-CAcJ.js";
4
- import { c as v, a as w, u as B, b as F } from "./index-DSz82V23.js";
5
- import { V as k, u as D } from "./interpolation-DjBX_Si-.js";
6
- import { i as z } from "./externalizeComponent-RpcZ_G17.js";
1
+ import { A as o, r as s, C as t, s as r, a as n, b as i, d as g, J as l, f as u, L as c, l as d, M as p, N as m, P as M, e as S, R as b, n as C, m as L, S as V, o as P, T as R, p as f, V as J, q as I, W as x, h as A, k as E, i as T, g as q, c as y, j as v, t as w, u as G, v as N, w as W } from "./theming-CO0a0eRg.js";
2
+ import { L as j, a as B } from "./LoadingCover-DkXwZXg8.js";
3
+ import { a as F, P as k, b as H, V as z, e as K, c as O, f as Q, u as U, d as X } from "./index-obAnXT9_.js";
4
+ import { i as Z } from "./index-BSgNMmxG.js";
7
5
  export {
8
6
  o as AppHeader,
9
7
  s as ConnectedMotionGroup,
10
- x as LoadingCover,
11
- E as LoadingErrorMessage,
12
- r as LogPanel,
13
- t as LogStore,
14
- n as LogViewer,
15
- i as NoMotionGroupModal,
16
- N as ProgramControl,
17
- T as ProgramState,
18
- W as ProgramStateIndicator,
19
- u as RobotListItem,
20
- p as RobotSetupReadinessIndicator,
21
- c as RobotSetupReadinessState,
22
- g as SafetyBar,
23
- l as SelectableFab,
24
- d as TabBar,
25
- k as ValueInterpolator,
26
- I as VelocitySlider,
27
- P as VelocitySliderLabel,
28
- m as WandelscriptEditor,
29
- b as createDebugMessage,
30
- M as createErrorMessage,
31
- S as createInfoMessage,
32
- L as createLogMessage,
33
- f as createNovaMuiTheme,
34
- R as createWarningMessage,
35
- z as i18n,
36
- A as jointValuesEqual,
37
- C as poseEqual,
38
- j as tcpMotionEqual,
39
- q as unwrapRotationVector,
40
- v as useAnimationFrame,
41
- w as useAutorun,
42
- D as useInterpolation,
43
- B as useMounted,
44
- F as useReaction
8
+ t as CycleTimer,
9
+ r as JoggerConnection,
10
+ n as JoggingCartesianAxisControl,
11
+ i as JoggingJointRotationControl,
12
+ g as JoggingPanel,
13
+ l as JoggingStore,
14
+ j as LoadingCover,
15
+ B as LoadingErrorMessage,
16
+ u as LogPanel,
17
+ c as LogStore,
18
+ d as LogViewer,
19
+ p as MotionStreamConnection,
20
+ m as NoMotionGroupModal,
21
+ M as PoseCartesianValues,
22
+ S as PoseJointValues,
23
+ F as ProgramControl,
24
+ k as ProgramState,
25
+ H as ProgramStateIndicator,
26
+ b as RobotListItem,
27
+ C as RobotSetupReadinessIndicator,
28
+ L as RobotSetupReadinessState,
29
+ V as SafetyBar,
30
+ P as SelectableFab,
31
+ R as TabBar,
32
+ f as Timer,
33
+ z as ValueInterpolator,
34
+ J as VelocitySlider,
35
+ I as VelocitySliderLabel,
36
+ x as WandelbotsDataGrid,
37
+ A as createDebugMessage,
38
+ E as createErrorMessage,
39
+ T as createInfoMessage,
40
+ q as createLogMessage,
41
+ y as createNovaMuiTheme,
42
+ v as createWarningMessage,
43
+ Z as i18n,
44
+ w as jointValuesEqual,
45
+ G as poseEqual,
46
+ N as tcpMotionEqual,
47
+ W as unwrapRotationVector,
48
+ K as useAnimationFrame,
49
+ O as useAutorun,
50
+ Q as useInterpolation,
51
+ U as useMounted,
52
+ X as useReaction
45
53
  };
46
54
  //# sourceMappingURL=core.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"core.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}