@adcops/autocore-react 3.3.9 → 3.3.14

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 (223) hide show
  1. package/LICENSE +58 -58
  2. package/additional-docs/AutoCoreTagContext.md +441 -441
  3. package/additional-docs/ButtonApiSpecs.md +48 -48
  4. package/additional-docs/GlobalEventEmitter.md +243 -243
  5. package/additional-docs/general_recommendations.md +22 -22
  6. package/additional-docs/react_performance_notes.md +94 -94
  7. package/dist/assets/svg/blockly_logo.svg +82 -82
  8. package/dist/assets/svg/distance.svg +40 -40
  9. package/dist/assets/svg/python_logo.svg +246 -246
  10. package/dist/assets/svg/rotation_ccw.svg +50 -50
  11. package/dist/assets/svg/rotation_ccw_a.svg +57 -57
  12. package/dist/assets/svg/rotation_ccw_b.svg +57 -57
  13. package/dist/assets/svg/rotation_ccw_c.svg +57 -57
  14. package/dist/assets/svg/rotation_cw.svg +49 -49
  15. package/dist/assets/svg/rotation_cw_a.svg +30 -30
  16. package/dist/assets/svg/rotation_cw_b.svg +30 -30
  17. package/dist/assets/svg/rotation_cw_c.svg +30 -30
  18. package/dist/assets/svg/speed.svg +39 -39
  19. package/dist/components/BlocklyEditor.css +93 -93
  20. package/dist/components/Indicator.js +1 -1
  21. package/dist/components/IndicatorRect.d.ts.map +1 -1
  22. package/dist/components/IndicatorRect.js +1 -1
  23. package/dist/components/JogPanel.css +41 -41
  24. package/dist/components/ProgressBarWithValue.css +27 -27
  25. package/dist/components/TextInput.js +1 -1
  26. package/dist/components/ToggleGroup.js +1 -1
  27. package/dist/components/ValueIndicator.css +29 -31
  28. package/dist/components/ValueInput.js +1 -1
  29. package/dist/components/osk.css +123 -123
  30. package/dist/core/AutoCoreTagContext.d.ts.map +1 -1
  31. package/dist/core/AutoCoreTagContext.js +1 -1
  32. package/dist/hub/HubBase.d.ts +3 -3
  33. package/dist/hub/HubBase.d.ts.map +1 -1
  34. package/dist/hub/HubBase.js +1 -1
  35. package/dist/themes/adc-dark/blue/theme.css +3 -0
  36. package/dist/themes/adc-dark/blue/theme.css.map +1 -1
  37. package/package.json +104 -104
  38. package/readme.md +343 -343
  39. package/src/assets/BlocklyLogo.tsx +27 -27
  40. package/src/assets/Distance.tsx +18 -18
  41. package/src/assets/JogLong.tsx +13 -13
  42. package/src/assets/JogMedium.tsx +13 -13
  43. package/src/assets/JogShort.tsx +13 -13
  44. package/src/assets/PythonLogo.tsx +83 -83
  45. package/src/assets/Rotation3D.tsx +13 -13
  46. package/src/assets/RotationCcw.tsx +33 -33
  47. package/src/assets/RotationCcwA.tsx +45 -45
  48. package/src/assets/RotationCcwB.tsx +45 -45
  49. package/src/assets/RotationCcwC.tsx +45 -45
  50. package/src/assets/RotationCw.tsx +31 -31
  51. package/src/assets/RotationCwA.tsx +42 -42
  52. package/src/assets/RotationCwB.tsx +42 -42
  53. package/src/assets/RotationCwC.tsx +42 -42
  54. package/src/assets/Run.tsx +13 -13
  55. package/src/assets/Speed.tsx +18 -18
  56. package/src/assets/SpeedFast.tsx +13 -13
  57. package/src/assets/SpeedMedium.tsx +13 -13
  58. package/src/assets/SpeedNone.tsx +13 -13
  59. package/src/assets/SpeedSlow.tsx +13 -13
  60. package/src/assets/Walk.tsx +13 -13
  61. package/src/assets/index.ts +22 -22
  62. package/src/assets/svg/blockly_logo.svg +82 -82
  63. package/src/assets/svg/distance.svg +40 -40
  64. package/src/assets/svg/python_logo.svg +246 -246
  65. package/src/assets/svg/rotation_ccw.svg +50 -50
  66. package/src/assets/svg/rotation_ccw_a.svg +57 -57
  67. package/src/assets/svg/rotation_ccw_b.svg +57 -57
  68. package/src/assets/svg/rotation_ccw_c.svg +57 -57
  69. package/src/assets/svg/rotation_cw.svg +49 -49
  70. package/src/assets/svg/rotation_cw_a.svg +30 -30
  71. package/src/assets/svg/rotation_cw_b.svg +30 -30
  72. package/src/assets/svg/rotation_cw_c.svg +30 -30
  73. package/src/assets/svg/speed.svg +39 -39
  74. package/src/components/AutoCoreDevPanel.tsx +414 -414
  75. package/src/components/BlocklyEditor.css +93 -93
  76. package/src/components/BlocklyEditor.tsx +609 -609
  77. package/src/components/CodeEditor.tsx +155 -155
  78. package/src/components/FileList.tsx +390 -390
  79. package/src/components/FileSelect.tsx +128 -128
  80. package/src/components/FitText.tsx +35 -35
  81. package/src/components/Indicator.tsx +188 -188
  82. package/src/components/IndicatorButton.tsx +214 -214
  83. package/src/components/IndicatorRect.tsx +170 -172
  84. package/src/components/JogPanel.css +41 -41
  85. package/src/components/JogPanel.tsx +461 -461
  86. package/src/components/Lamp.tsx +243 -243
  87. package/src/components/Osk.tsx +192 -192
  88. package/src/components/OskDialog.tsx +164 -164
  89. package/src/components/ProgressBarWithValue.css +27 -27
  90. package/src/components/ProgressBarWithValue.tsx +48 -48
  91. package/src/components/TextInput.tsx +195 -195
  92. package/src/components/ToggleGroup.tsx +322 -322
  93. package/src/components/ValueDisplay.tsx +236 -236
  94. package/src/components/ValueIndicator.css +29 -31
  95. package/src/components/ValueIndicator.tsx +135 -135
  96. package/src/components/ValueInput.tsx +368 -368
  97. package/src/components/osk.css +123 -123
  98. package/src/core/ActionMode.ts +19 -19
  99. package/src/core/AutoCoreTagContext.tsx +625 -614
  100. package/src/core/AutoCoreTagTypes.ts +334 -334
  101. package/src/core/CoreStreamTypes.ts +512 -512
  102. package/src/core/EventEmitterContext.tsx +434 -434
  103. package/src/core/IndicatorButtonState.ts +34 -34
  104. package/src/core/IndicatorColor.ts +35 -35
  105. package/src/core/MaskPatterns.ts +87 -87
  106. package/src/core/NumerableTypes.ts +80 -80
  107. package/src/core/PositionContext.ts +59 -59
  108. package/src/core/UniqueId.ts +41 -41
  109. package/src/core/ValueSimulator.ts +166 -166
  110. package/src/core/hoc.tsx +65 -65
  111. package/src/hooks/adsHooks.tsx +287 -287
  112. package/src/hooks/commandHooks.tsx +300 -300
  113. package/src/hooks/index.ts +12 -12
  114. package/src/hooks/useAutoCoreTag.ts +103 -103
  115. package/src/hooks/useScaledValue.tsx +99 -99
  116. package/src/hub/CommandMessage.ts +89 -89
  117. package/src/hub/DebugPanel.ts +307 -307
  118. package/src/hub/HubBase.ts +249 -236
  119. package/src/hub/HubSimulate.ts +124 -124
  120. package/src/hub/HubTauri.ts +140 -140
  121. package/src/hub/HubWebSocket.ts +250 -250
  122. package/src/hub/debug.ts +211 -211
  123. package/src/hub/index.ts +81 -81
  124. package/src/themes/adc-dark/_extensions.scss +166 -166
  125. package/src/themes/adc-dark/_variables.scss +913 -913
  126. package/src/themes/adc-dark/blue/_fonts.scss +23 -23
  127. package/src/themes/adc-dark/blue/adc_theme.scss +31 -31
  128. package/src/themes/adc-dark/blue/theme.scss +14 -14
  129. package/src/themes/theme-base/_colors.scss +17 -17
  130. package/src/themes/theme-base/_common.scss +78 -74
  131. package/src/themes/theme-base/_components.scss +111 -111
  132. package/src/themes/theme-base/_mixins.scss +243 -243
  133. package/src/themes/theme-base/components/button/_button.scss +644 -644
  134. package/src/themes/theme-base/components/button/_speeddial.scss +91 -91
  135. package/src/themes/theme-base/components/button/_splitbutton.scss +358 -358
  136. package/src/themes/theme-base/components/data/_carousel.scss +39 -39
  137. package/src/themes/theme-base/components/data/_datascroller.scss +47 -47
  138. package/src/themes/theme-base/components/data/_datatable.scss +388 -388
  139. package/src/themes/theme-base/components/data/_dataview.scss +47 -47
  140. package/src/themes/theme-base/components/data/_filter.scss +137 -137
  141. package/src/themes/theme-base/components/data/_orderlist.scss +86 -86
  142. package/src/themes/theme-base/components/data/_organizationchart.scss +50 -50
  143. package/src/themes/theme-base/components/data/_paginator.scss +91 -91
  144. package/src/themes/theme-base/components/data/_picklist.scss +73 -73
  145. package/src/themes/theme-base/components/data/_timeline.scss +38 -38
  146. package/src/themes/theme-base/components/data/_tree.scss +184 -184
  147. package/src/themes/theme-base/components/data/_treetable.scss +431 -431
  148. package/src/themes/theme-base/components/file/_fileupload.scss +41 -41
  149. package/src/themes/theme-base/components/input/_autocomplete.scss +94 -94
  150. package/src/themes/theme-base/components/input/_calendar.scss +251 -251
  151. package/src/themes/theme-base/components/input/_cascadeselect.scss +107 -107
  152. package/src/themes/theme-base/components/input/_checkbox.scss +181 -181
  153. package/src/themes/theme-base/components/input/_chips.scss +102 -102
  154. package/src/themes/theme-base/components/input/_colorpicker.scss +17 -17
  155. package/src/themes/theme-base/components/input/_dropdown.scss +252 -252
  156. package/src/themes/theme-base/components/input/_editor.scss +122 -122
  157. package/src/themes/theme-base/components/input/_iconfield.scss +9 -9
  158. package/src/themes/theme-base/components/input/_inputgroup.scss +74 -74
  159. package/src/themes/theme-base/components/input/_inputicon.scss +14 -14
  160. package/src/themes/theme-base/components/input/_inputnumber.scss +4 -4
  161. package/src/themes/theme-base/components/input/_inputotp.scss +10 -10
  162. package/src/themes/theme-base/components/input/_inputswitch.scss +99 -99
  163. package/src/themes/theme-base/components/input/_inputtext.scss +101 -101
  164. package/src/themes/theme-base/components/input/_listbox.scss +138 -138
  165. package/src/themes/theme-base/components/input/_mention.scss +30 -30
  166. package/src/themes/theme-base/components/input/_multiselect.scss +278 -278
  167. package/src/themes/theme-base/components/input/_password.scss +32 -32
  168. package/src/themes/theme-base/components/input/_radiobutton.scss +169 -169
  169. package/src/themes/theme-base/components/input/_rating.scss +80 -80
  170. package/src/themes/theme-base/components/input/_selectbutton.scss +49 -49
  171. package/src/themes/theme-base/components/input/_slider.scss +49 -49
  172. package/src/themes/theme-base/components/input/_togglebutton.scss +99 -99
  173. package/src/themes/theme-base/components/input/_treeselect.scss +151 -151
  174. package/src/themes/theme-base/components/input/_tristatecheckbox.scss +46 -46
  175. package/src/themes/theme-base/components/menu/_breadcrumb.scss +42 -42
  176. package/src/themes/theme-base/components/menu/_contextmenu.scss +39 -39
  177. package/src/themes/theme-base/components/menu/_dock.scss +109 -109
  178. package/src/themes/theme-base/components/menu/_megamenu.scss +141 -141
  179. package/src/themes/theme-base/components/menu/_menu.scss +33 -33
  180. package/src/themes/theme-base/components/menu/_menubar.scss +216 -216
  181. package/src/themes/theme-base/components/menu/_panelmenu.scss +153 -153
  182. package/src/themes/theme-base/components/menu/_slidemenu.scss +60 -60
  183. package/src/themes/theme-base/components/menu/_steps.scss +57 -57
  184. package/src/themes/theme-base/components/menu/_tabmenu.scss +50 -50
  185. package/src/themes/theme-base/components/menu/_tieredmenu.scss +43 -43
  186. package/src/themes/theme-base/components/messages/_inlinemessage.scss +69 -69
  187. package/src/themes/theme-base/components/messages/_message.scss +107 -107
  188. package/src/themes/theme-base/components/messages/_toast.scss +100 -100
  189. package/src/themes/theme-base/components/misc/_avatar.scss +33 -33
  190. package/src/themes/theme-base/components/misc/_badge.scss +76 -76
  191. package/src/themes/theme-base/components/misc/_chip.scss +38 -38
  192. package/src/themes/theme-base/components/misc/_inplace.scss +17 -17
  193. package/src/themes/theme-base/components/misc/_metergroup.scss +80 -80
  194. package/src/themes/theme-base/components/misc/_progressbar.scss +17 -17
  195. package/src/themes/theme-base/components/misc/_scrolltop.scss +24 -24
  196. package/src/themes/theme-base/components/misc/_skeleton.scss +7 -7
  197. package/src/themes/theme-base/components/misc/_tag.scss +39 -39
  198. package/src/themes/theme-base/components/misc/_terminal.scss +12 -12
  199. package/src/themes/theme-base/components/multimedia/_galleria.scss +153 -153
  200. package/src/themes/theme-base/components/multimedia/_image.scss +53 -53
  201. package/src/themes/theme-base/components/overlay/_confirmpopup.scss +72 -72
  202. package/src/themes/theme-base/components/overlay/_dialog.scss +78 -78
  203. package/src/themes/theme-base/components/overlay/_overlaypanel.scss +64 -64
  204. package/src/themes/theme-base/components/overlay/_sidebar.scss +23 -23
  205. package/src/themes/theme-base/components/overlay/_tooltip.scss +33 -33
  206. package/src/themes/theme-base/components/panel/_accordion.scss +118 -118
  207. package/src/themes/theme-base/components/panel/_card.scss +30 -30
  208. package/src/themes/theme-base/components/panel/_divider.scss +30 -30
  209. package/src/themes/theme-base/components/panel/_fieldset.scss +47 -47
  210. package/src/themes/theme-base/components/panel/_panel.scss +47 -47
  211. package/src/themes/theme-base/components/panel/_scrollpanel.scss +10 -10
  212. package/src/themes/theme-base/components/panel/_splitter.scss +23 -23
  213. package/src/themes/theme-base/components/panel/_stepper.scss +136 -136
  214. package/src/themes/theme-base/components/panel/_tabview.scss +147 -147
  215. package/src/themes/theme-base/components/panel/_toolbar.scss +11 -11
  216. package/terser.config.cjs +25 -25
  217. package/todo.md +18 -18
  218. package/tools/build-themes.cjs +65 -65
  219. package/tools/copy-distribution-files.cjs +77 -77
  220. package/tools/minify.cjs +55 -55
  221. package/tsconfig.json +48 -48
  222. package/typedoc.json +12 -12
  223. package/.claude/settings.local.json +0 -7
@@ -1,30 +1,30 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <svg
3
- height="24"
4
- viewBox="0 -960 960 960"
5
- width="24"
6
- version="1.1"
7
- id="svg1"
8
- fill="white"
9
- xmlns="http://www.w3.org/2000/svg"
10
- xmlns:svg="http://www.w3.org/2000/svg">
11
- <defs
12
- id="defs1" />
13
- <g
14
- id="layer1"
15
- style="display:inline">
16
- <path
17
- d="m 480,-880 c -55.33327,0 -107.349,10.4844 -156.01563,31.48438 -48.66662,20.99997 -90.95316,49.54691 -126.95312,85.54687 -35.99996,35.99996 -64.5469,78.2865 -85.54687,126.95313 C 90.484396,-587.349 80,-535.33327 80,-480 c 0,11.33332 3.817716,20.84896 11.484375,28.51563 C 99.151034,-443.81771 108.66668,-440 120,-440 c 11.33332,0 20.84896,-3.81771 28.51562,-11.48437 C 156.18229,-459.15104 160,-468.66668 160,-480 c 0,-76.66659 24.16672,-144.30214 72.5,-202.96875 48.33328,-58.66661 110.1355,-95.68231 185.46875,-111.01562 l -30,30 c -7.33332,7.33332 -10.9375,16.63543 -10.9375,27.96875 0,11.33331 3.60418,20.71355 10.9375,28.04687 7.33332,7.33332 16.71356,10.9375 28.04687,10.9375 11.33332,0 20.63543,-3.60418 27.96875,-10.9375 l 128.98438,-129.0625 c 5.33332,-5.33332 7,-12.00001 5,-20 -2,-7.99999 -7.00001,-13 -15,-15 -13.33332,-3.33333 -26.93751,-5.48438 -40.9375,-6.48437 C 508.03126,-879.51562 493.99999,-880 480,-880 Z"
18
- style="display:inline"
19
- id="path2" />
20
- <path
21
- d="m 478.78951,-80 c 55.33474,0 107.3518,-10.4844 156.01978,-31.48438 48.66788,-20.99997 90.95549,-49.54691 126.95644,-85.54687 36.00084,-35.99996 64.54859,-78.2865 85.54904,-126.95313 C 868.31532,-372.651 878.8,-424.66673 878.8,-480 c 0,-11.33332 -3.8178,-20.84896 -11.4846,-28.51563 C 859.6485,-516.18229 850.13255,-520 838.79895,-520 c -11.3336,0 -20.84945,3.81771 -28.51635,11.48437 -7.6669,7.66667 -11.4847,17.18231 -11.4847,28.51563 0,76.66659 -24.16734,144.30214 -72.50191,202.96875 -48.33456,58.66661 -110.13839,95.68231 -185.47357,111.01562 l 30.00079,-30 c 7.33349,-7.33332 10.93779,-16.63543 10.93779,-27.96875 0,-11.33331 -3.6043,-20.71355 -10.93779,-28.04687 -7.33349,-7.33332 -16.71404,-10.9375 -28.04764,-10.9375 -11.33359,0 -20.63594,3.60418 -27.96943,10.9375 l -128.98781,129.0625 c -5.33346,5.33332 -7.00018,12.00001 -5.00013,20 2.00005,7.99999 7.00019,13 15.0004,15 13.33366,3.33333 26.9382,5.48438 40.93856,6.48437 14.00036,1 28.032,1.48438 42.03235,1.48438 z"
22
- style="display:inline;stroke-width:1.00001"
23
- id="path3" />
24
- <path
25
- style="font-size:480px;font-family:'Nova Round';-inkscape-font-specification:'Nova Round';text-align:center;text-anchor:middle;stroke-width:40"
26
- d="m 598.59781,-434.29251 v 16.40625 q 0,50.85937 -31.64063,83.20312 -33.28125,33.98438 -86.71875,33.98438 -53.4375,0 -86.71875,-33.98438 -31.64062,-32.34375 -31.64062,-83.20312 v -128.90625 q 0,-50.85938 31.64062,-83.20313 33.28125,-33.98437 86.71875,-33.98437 55.3125,0 86.71875,33.98437 31.64063,33.98438 31.64063,78.51563 l -44.53125,21.09375 h -2.34375 v -16.40625 q 0,-31.40625 -16.875,-50.85938 -20.85938,-24.14062 -54.60938,-24.14062 -33.75,0 -54.60937,24.14062 -16.875,19.45313 -16.875,50.85938 v 128.90625 q 0,31.40625 16.875,50.85937 20.85937,24.14063 54.60937,24.14063 33.75,0 54.60938,-24.14063 16.875,-19.45312 16.875,-46.17187 l 44.53125,-21.09375 z"
27
- id="text3"
28
- aria-label="C" />
29
- </g>
30
- </svg>
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ height="24"
4
+ viewBox="0 -960 960 960"
5
+ width="24"
6
+ version="1.1"
7
+ id="svg1"
8
+ fill="white"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:svg="http://www.w3.org/2000/svg">
11
+ <defs
12
+ id="defs1" />
13
+ <g
14
+ id="layer1"
15
+ style="display:inline">
16
+ <path
17
+ d="m 480,-880 c -55.33327,0 -107.349,10.4844 -156.01563,31.48438 -48.66662,20.99997 -90.95316,49.54691 -126.95312,85.54687 -35.99996,35.99996 -64.5469,78.2865 -85.54687,126.95313 C 90.484396,-587.349 80,-535.33327 80,-480 c 0,11.33332 3.817716,20.84896 11.484375,28.51563 C 99.151034,-443.81771 108.66668,-440 120,-440 c 11.33332,0 20.84896,-3.81771 28.51562,-11.48437 C 156.18229,-459.15104 160,-468.66668 160,-480 c 0,-76.66659 24.16672,-144.30214 72.5,-202.96875 48.33328,-58.66661 110.1355,-95.68231 185.46875,-111.01562 l -30,30 c -7.33332,7.33332 -10.9375,16.63543 -10.9375,27.96875 0,11.33331 3.60418,20.71355 10.9375,28.04687 7.33332,7.33332 16.71356,10.9375 28.04687,10.9375 11.33332,0 20.63543,-3.60418 27.96875,-10.9375 l 128.98438,-129.0625 c 5.33332,-5.33332 7,-12.00001 5,-20 -2,-7.99999 -7.00001,-13 -15,-15 -13.33332,-3.33333 -26.93751,-5.48438 -40.9375,-6.48437 C 508.03126,-879.51562 493.99999,-880 480,-880 Z"
18
+ style="display:inline"
19
+ id="path2" />
20
+ <path
21
+ d="m 478.78951,-80 c 55.33474,0 107.3518,-10.4844 156.01978,-31.48438 48.66788,-20.99997 90.95549,-49.54691 126.95644,-85.54687 36.00084,-35.99996 64.54859,-78.2865 85.54904,-126.95313 C 868.31532,-372.651 878.8,-424.66673 878.8,-480 c 0,-11.33332 -3.8178,-20.84896 -11.4846,-28.51563 C 859.6485,-516.18229 850.13255,-520 838.79895,-520 c -11.3336,0 -20.84945,3.81771 -28.51635,11.48437 -7.6669,7.66667 -11.4847,17.18231 -11.4847,28.51563 0,76.66659 -24.16734,144.30214 -72.50191,202.96875 -48.33456,58.66661 -110.13839,95.68231 -185.47357,111.01562 l 30.00079,-30 c 7.33349,-7.33332 10.93779,-16.63543 10.93779,-27.96875 0,-11.33331 -3.6043,-20.71355 -10.93779,-28.04687 -7.33349,-7.33332 -16.71404,-10.9375 -28.04764,-10.9375 -11.33359,0 -20.63594,3.60418 -27.96943,10.9375 l -128.98781,129.0625 c -5.33346,5.33332 -7.00018,12.00001 -5.00013,20 2.00005,7.99999 7.00019,13 15.0004,15 13.33366,3.33333 26.9382,5.48438 40.93856,6.48437 14.00036,1 28.032,1.48438 42.03235,1.48438 z"
22
+ style="display:inline;stroke-width:1.00001"
23
+ id="path3" />
24
+ <path
25
+ style="font-size:480px;font-family:'Nova Round';-inkscape-font-specification:'Nova Round';text-align:center;text-anchor:middle;stroke-width:40"
26
+ d="m 598.59781,-434.29251 v 16.40625 q 0,50.85937 -31.64063,83.20312 -33.28125,33.98438 -86.71875,33.98438 -53.4375,0 -86.71875,-33.98438 -31.64062,-32.34375 -31.64062,-83.20312 v -128.90625 q 0,-50.85938 31.64062,-83.20313 33.28125,-33.98437 86.71875,-33.98437 55.3125,0 86.71875,33.98437 31.64063,33.98438 31.64063,78.51563 l -44.53125,21.09375 h -2.34375 v -16.40625 q 0,-31.40625 -16.875,-50.85938 -20.85938,-24.14062 -54.60938,-24.14062 -33.75,0 -54.60937,24.14062 -16.875,19.45313 -16.875,50.85938 v 128.90625 q 0,31.40625 16.875,50.85937 20.85937,24.14063 54.60937,24.14063 33.75,0 54.60938,-24.14063 16.875,-19.45312 16.875,-46.17187 l 44.53125,-21.09375 z"
27
+ id="text3"
28
+ aria-label="C" />
29
+ </g>
30
+ </svg>
@@ -1,39 +1,39 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <svg
3
- height="24"
4
- viewBox="0 -960 960 960"
5
- width="24"
6
- fill="white"
7
- version="1.1"
8
- id="svg1"
9
- sodipodi:docname="speed.svg"
10
- inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
11
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
13
- xmlns="http://www.w3.org/2000/svg"
14
- xmlns:svg="http://www.w3.org/2000/svg">
15
- <defs
16
- id="defs1" />
17
- <sodipodi:namedview
18
- id="namedview1"
19
- pagecolor="#505050"
20
- bordercolor="#eeeeee"
21
- borderopacity="1"
22
- inkscape:showpageshadow="0"
23
- inkscape:pageopacity="0"
24
- inkscape:pagecheckerboard="0"
25
- inkscape:deskcolor="#505050"
26
- inkscape:zoom="33.875"
27
- inkscape:cx="12"
28
- inkscape:cy="12"
29
- inkscape:window-width="1920"
30
- inkscape:window-height="1009"
31
- inkscape:window-x="1912"
32
- inkscape:window-y="-8"
33
- inkscape:window-maximized="1"
34
- inkscape:current-layer="svg1" />
35
- <path
36
- d="m 406.33774,-313.68 q 28.512,28.512 73.656,27.918 45.144,-0.594 66.528,-32.67 l 200.772,-300.564 q 10.692,-16.632 -2.97,-30.294 -13.662,-13.662 -30.294,-2.97 l -300.564,200.772 q -32.076,21.384 -33.858,65.34 -1.782,43.956 26.73,72.468 z m 73.656,-546.48 q 42.768,0 84.348,7.128 41.58,7.128 80.784,22.572 19.008,7.128 40.392,26.73 21.384,19.602 11.88,37.422 -9.504,17.82 -42.768,23.76 -33.264,5.94 -53.46,-1.188 -29.7,-10.692 -59.994,-16.038 -30.294,-5.346 -61.182,-5.346 -158.004,0 -269.082,111.078 -111.078003,111.078 -111.078003,269.082 0,49.896 13.662003,98.604 13.662,48.708 38.61,91.476 h 655.776 q 27.324,-45.144 39.798,-93.852 12.474,-48.708 12.474,-100.98 0,-30.888 -5.346,-60.588 -5.346,-29.7 -16.038,-58.212 -7.128,-20.196 -2.376,-39.204 4.752,-19.008 21.384,-32.076 15.444,-11.88 33.858,-7.128 18.414,4.752 25.542,21.384 17.82,41.58 27.324,84.942 9.504,43.362 10.692,88.506 1.188,67.716 -15.444,129.492 -16.632,61.776 -48.708,117.612 -13.068,21.384 -35.64,33.264 -22.572,11.88 -47.52,11.88 h -655.776 q -24.948,0 -47.52,-11.88 -22.572003,-11.88 -35.640006,-33.264 -30.888,-53.46 -47.52,-113.454 -16.6320005,-59.994 -16.6320005,-126.522 0,-98.604 37.4220005,-184.734 37.422003,-86.13 102.168006,-150.876 64.746,-64.746 151.47,-102.168 86.724,-37.422 184.14,-37.422 z m 8.316,371.844 z"
37
- id="path1"
38
- style="stroke-width:1.188" />
39
- </svg>
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ height="24"
4
+ viewBox="0 -960 960 960"
5
+ width="24"
6
+ fill="white"
7
+ version="1.1"
8
+ id="svg1"
9
+ sodipodi:docname="speed.svg"
10
+ inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ xmlns:svg="http://www.w3.org/2000/svg">
15
+ <defs
16
+ id="defs1" />
17
+ <sodipodi:namedview
18
+ id="namedview1"
19
+ pagecolor="#505050"
20
+ bordercolor="#eeeeee"
21
+ borderopacity="1"
22
+ inkscape:showpageshadow="0"
23
+ inkscape:pageopacity="0"
24
+ inkscape:pagecheckerboard="0"
25
+ inkscape:deskcolor="#505050"
26
+ inkscape:zoom="33.875"
27
+ inkscape:cx="12"
28
+ inkscape:cy="12"
29
+ inkscape:window-width="1920"
30
+ inkscape:window-height="1009"
31
+ inkscape:window-x="1912"
32
+ inkscape:window-y="-8"
33
+ inkscape:window-maximized="1"
34
+ inkscape:current-layer="svg1" />
35
+ <path
36
+ d="m 406.33774,-313.68 q 28.512,28.512 73.656,27.918 45.144,-0.594 66.528,-32.67 l 200.772,-300.564 q 10.692,-16.632 -2.97,-30.294 -13.662,-13.662 -30.294,-2.97 l -300.564,200.772 q -32.076,21.384 -33.858,65.34 -1.782,43.956 26.73,72.468 z m 73.656,-546.48 q 42.768,0 84.348,7.128 41.58,7.128 80.784,22.572 19.008,7.128 40.392,26.73 21.384,19.602 11.88,37.422 -9.504,17.82 -42.768,23.76 -33.264,5.94 -53.46,-1.188 -29.7,-10.692 -59.994,-16.038 -30.294,-5.346 -61.182,-5.346 -158.004,0 -269.082,111.078 -111.078003,111.078 -111.078003,269.082 0,49.896 13.662003,98.604 13.662,48.708 38.61,91.476 h 655.776 q 27.324,-45.144 39.798,-93.852 12.474,-48.708 12.474,-100.98 0,-30.888 -5.346,-60.588 -5.346,-29.7 -16.038,-58.212 -7.128,-20.196 -2.376,-39.204 4.752,-19.008 21.384,-32.076 15.444,-11.88 33.858,-7.128 18.414,4.752 25.542,21.384 17.82,41.58 27.324,84.942 9.504,43.362 10.692,88.506 1.188,67.716 -15.444,129.492 -16.632,61.776 -48.708,117.612 -13.068,21.384 -35.64,33.264 -22.572,11.88 -47.52,11.88 h -655.776 q -24.948,0 -47.52,-11.88 -22.572003,-11.88 -35.640006,-33.264 -30.888,-53.46 -47.52,-113.454 -16.6320005,-59.994 -16.6320005,-126.522 0,-98.604 37.4220005,-184.734 37.422003,-86.13 102.168006,-150.876 64.746,-64.746 151.47,-102.168 86.724,-37.422 184.14,-37.422 z m 8.316,371.844 z"
37
+ id="path1"
38
+ style="stroke-width:1.188" />
39
+ </svg>
@@ -1,94 +1,94 @@
1
- /*
2
- * Copyright (C) 2024 Automated Design Corp.. All Rights Reserved.
3
- * Created Date: 2024-03-15 14:22:54
4
- * -----
5
- * Last Modified: 2025-07-16 12:01:34
6
- * -----
7
- *
8
- */
9
-
10
- .editor-toggle-group {
11
- margin-bottom: 2mm;
12
- }
13
-
14
-
15
- .fill-height {
16
- height: 100%;
17
- width: 100%;
18
- background-color: green;
19
- }
20
-
21
- /* In your CSS file */
22
- .icon-scale {
23
- height: 24px;
24
- width: auto;
25
- }
26
-
27
- /*
28
- * Custom CSS overrides for Google Blockly to improve readability in a dark theme
29
- * and to apply a custom font.
30
- */
31
-
32
- /* --- General Font Customization --- */
33
-
34
- /* Changes the font for text on blocks, in input fields, and in the toolbox.
35
- Using !important is often necessary to override Blockly's default styles. */
36
- .blocklyText,
37
- .blocklyHtmlInput,
38
- .blocklyTreeLabel {
39
- font-family: "HyperlegibleNext var", sans-serif !important;
40
- }
41
-
42
-
43
- /* --- Toolbox / Category Menu Customization --- */
44
-
45
- /* Improves the text color for category labels in the toolbox for better contrast. */
46
- .blocklyTreeLabel {
47
- color: #000000 !important;
48
- font-size: 1rem !important;
49
- }
50
-
51
-
52
- .blocklyTreeRow.blocklyTreeSelected .blocklyTreeLabel {
53
- color: #000000 !important;
54
- }
55
-
56
-
57
- /* --- Context Menu & Dropdown Menu Customization (Fixes Unreadable Text) --- */
58
-
59
- /* Sets a dark background for the right-click context menu and dropdowns. */
60
- .goog-menu {
61
- background: #2a313c !important;
62
- border-color: #4f5b6a !important;
63
- padding: 4px 0 !important;
64
- }
65
-
66
- /* Sets the font color for all menu items. */
67
- .goog-menuitem .goog-menuitem-content {
68
- font-family: "HyperlegibleNext var", sans-serif !important;
69
- color: #f0f0f0 !important;
70
- padding: 8px 20px !important;
71
- }
72
-
73
- /* Styles the highlight that appears when you hover over a menu item. */
74
- .goog-menuitem-highlight {
75
- background-color: #424b57 !important;
76
- border-color: transparent !important;
77
- }
78
-
79
- /* Styles the separator lines in the menus. */
80
- .goog-menuseparator {
81
- border-top-color: #4f5b6a !important;
82
- margin: 4px 0 !important;
83
- }
84
-
85
-
86
- /* --- Tooltip Customization --- */
87
- /* Improves the appearance of the tooltips that appear on hover. */
88
- .blocklyTooltipDiv {
89
- background-color: #2a313c !important;
90
- color: #f0f0f0 !important;
91
- border-color: #4f5b6a !important;
92
- font-family: "HyperlegibleNext var", sans-serif !important;
93
- padding: 6px !important;
1
+ /*
2
+ * Copyright (C) 2024 Automated Design Corp.. All Rights Reserved.
3
+ * Created Date: 2024-03-15 14:22:54
4
+ * -----
5
+ * Last Modified: 2025-07-16 12:01:34
6
+ * -----
7
+ *
8
+ */
9
+
10
+ .editor-toggle-group {
11
+ margin-bottom: 2mm;
12
+ }
13
+
14
+
15
+ .fill-height {
16
+ height: 100%;
17
+ width: 100%;
18
+ background-color: green;
19
+ }
20
+
21
+ /* In your CSS file */
22
+ .icon-scale {
23
+ height: 24px;
24
+ width: auto;
25
+ }
26
+
27
+ /*
28
+ * Custom CSS overrides for Google Blockly to improve readability in a dark theme
29
+ * and to apply a custom font.
30
+ */
31
+
32
+ /* --- General Font Customization --- */
33
+
34
+ /* Changes the font for text on blocks, in input fields, and in the toolbox.
35
+ Using !important is often necessary to override Blockly's default styles. */
36
+ .blocklyText,
37
+ .blocklyHtmlInput,
38
+ .blocklyTreeLabel {
39
+ font-family: "HyperlegibleNext var", sans-serif !important;
40
+ }
41
+
42
+
43
+ /* --- Toolbox / Category Menu Customization --- */
44
+
45
+ /* Improves the text color for category labels in the toolbox for better contrast. */
46
+ .blocklyTreeLabel {
47
+ color: #000000 !important;
48
+ font-size: 1rem !important;
49
+ }
50
+
51
+
52
+ .blocklyTreeRow.blocklyTreeSelected .blocklyTreeLabel {
53
+ color: #000000 !important;
54
+ }
55
+
56
+
57
+ /* --- Context Menu & Dropdown Menu Customization (Fixes Unreadable Text) --- */
58
+
59
+ /* Sets a dark background for the right-click context menu and dropdowns. */
60
+ .goog-menu {
61
+ background: #2a313c !important;
62
+ border-color: #4f5b6a !important;
63
+ padding: 4px 0 !important;
64
+ }
65
+
66
+ /* Sets the font color for all menu items. */
67
+ .goog-menuitem .goog-menuitem-content {
68
+ font-family: "HyperlegibleNext var", sans-serif !important;
69
+ color: #f0f0f0 !important;
70
+ padding: 8px 20px !important;
71
+ }
72
+
73
+ /* Styles the highlight that appears when you hover over a menu item. */
74
+ .goog-menuitem-highlight {
75
+ background-color: #424b57 !important;
76
+ border-color: transparent !important;
77
+ }
78
+
79
+ /* Styles the separator lines in the menus. */
80
+ .goog-menuseparator {
81
+ border-top-color: #4f5b6a !important;
82
+ margin: 4px 0 !important;
83
+ }
84
+
85
+
86
+ /* --- Tooltip Customization --- */
87
+ /* Improves the appearance of the tooltips that appear on hover. */
88
+ .blocklyTooltipDiv {
89
+ background-color: #2a313c !important;
90
+ color: #f0f0f0 !important;
91
+ border-color: #4f5b6a !important;
92
+ font-family: "HyperlegibleNext var", sans-serif !important;
93
+ padding: 6px !important;
94
94
  }
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import React,{Component}from"react";import{EventEmitterContext}from"../core/EventEmitterContext";import{IndicatorColor}from"../core/IndicatorColor";export{IndicatorColor};export class Indicator extends Component{constructor(e){super(e),Object.defineProperty(this,"unsubscribeTopicId",{enumerable:!0,configurable:!0,writable:!0,value:null}),this.state={subscribedValue:e.value,fontSize:"100%"}}componentDidMount(){const{topic:e}=this.props;if(e&&null===this.unsubscribeTopicId){const{subscribe:t}=this.context;this.unsubscribeTopicId=t(e,e=>{this.setState({subscribedValue:e})})}}componentDidUpdate(e){e.value!==this.props.value&&this.setState({subscribedValue:this.props.value})}componentWillUnmount(){if(null!==this.unsubscribeTopicId){const{unsubscribe:e}=this.context;e(this.unsubscribeTopicId),this.unsubscribeTopicId=null}}render(){const{label:e,value:t,onColor:o,offColor:r,invalidColor:s}=this.props,{subscribedValue:i}=this.state;let n,a=i;switch(void 0!==t&&(a=t),a){case!0:n=o;break;case!1:n=r;break;default:n=s}return _jsxs("div",{className:"p-inputgroup flex-1",style:{alignItems:"center !important"},children:[_jsx("span",{className:"p-inputgroup-addon",style:{backgroundColor:n,width:"22px"},children:" "}),_jsx("span",{className:"p-inputgroup-addon",children:e})]})}}Object.defineProperty(Indicator,"contextType",{enumerable:!0,configurable:!0,writable:!0,value:EventEmitterContext}),Object.defineProperty(Indicator,"defaultProps",{enumerable:!0,configurable:!0,writable:!0,value:{onColor:"green",offColor:"gray",invalidColor:"black"}});export default Indicator;
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import React,{Component}from"react";import{EventEmitterContext}from"../core/EventEmitterContext";import{IndicatorColor}from"../core/IndicatorColor";export{IndicatorColor};export class Indicator extends Component{constructor(e){super(e),Object.defineProperty(this,"unsubscribeTopicId",{enumerable:!0,configurable:!0,writable:!0,value:null}),this.state={subscribedValue:e.value,fontSize:"100%"}}componentDidMount(){const{topic:e}=this.props;if(e&&null===this.unsubscribeTopicId){const{subscribe:t}=this.context;this.unsubscribeTopicId=t(e,e=>{this.setState({subscribedValue:e})})}}componentDidUpdate(e){e.value!==this.props.value&&this.setState({subscribedValue:this.props.value})}componentWillUnmount(){if(null!==this.unsubscribeTopicId){const{unsubscribe:e}=this.context;e(this.unsubscribeTopicId),this.unsubscribeTopicId=null}}render(){const{label:e,value:t,onColor:o,offColor:r,invalidColor:s}=this.props,{subscribedValue:i}=this.state;let n,a=i;switch(void 0!==t&&(a=t),a){case!0:n=o;break;case!1:n=r;break;default:n=s}return _jsxs("div",{className:"p-inputgroup",style:{alignItems:"center !important"},children:[_jsx("span",{className:"p-inputgroup-addon",style:{backgroundColor:n,width:"22px"},children:" "}),_jsx("span",{className:"p-inputgroup-addon",children:e})]})}}Object.defineProperty(Indicator,"contextType",{enumerable:!0,configurable:!0,writable:!0,value:EventEmitterContext}),Object.defineProperty(Indicator,"defaultProps",{enumerable:!0,configurable:!0,writable:!0,value:{onColor:"green",offColor:"gray",invalidColor:"black"}});export default Indicator;
@@ -1 +1 @@
1
- {"version":3,"file":"IndicatorRect.d.ts","sourceRoot":"","sources":["../../src/components/IndicatorRect.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAuB,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,kBAAkB;IAE/B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAE/B;AAED,UAAU,kBAAkB;IACxB,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CAC5C;AAED,qBAAa,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChF,MAAM,CAAC,WAAW,mDAAuB;IAGzC,MAAM,CAAC,YAAY;;;MAGjB;gBAEU,KAAK,EAAE,kBAAkB;IAOrC,iBAAiB;IAIjB,oBAAoB;IAIpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAEvB;IAEF,MAAM;CAuCT;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"IndicatorRect.d.ts","sourceRoot":"","sources":["../../src/components/IndicatorRect.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAuB,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,kBAAkB;IAE/B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAE/B;AAED,UAAU,kBAAkB;IACxB,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CAC5C;AAED,qBAAa,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChF,MAAM,CAAC,WAAW,mDAAuB;IAGzC,MAAM,CAAC,YAAY;;;MAGjB;gBAEU,KAAK,EAAE,kBAAkB;IAOrC,iBAAiB;IAIjB,oBAAoB;IAIpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAEvB;IAEF,MAAM;CAqCT;AAED,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{Component}from"react";import{EventEmitterContext}from"../core/EventEmitterContext";import{IndicatorColor}from"../core/IndicatorColor";export{IndicatorColor};export class IndicatorRect extends Component{constructor(t){super(t),Object.defineProperty(this,"handleTopicUpdate",{enumerable:!0,configurable:!0,writable:!0,value:t=>{this.setState({currentValue:t})}}),this.state={currentValue:void 0}}componentDidMount(){this.setupSubscriptions()}componentWillUnmount(){}setupSubscriptions(){const{topic:t}=this.props,{subscribe:e}=this.context;t&&e(t,this.handleTopicUpdate)}render(){const{currentValue:t}=this.state,{className:e,style:o,value:r,onColor:n,offColor:i,options:c}=this.props;let a,l=t;void 0!==r&&(l=r),void 0!==c&&c.length>0&&(a=l?c[1]:c[0]);let s=l?n:i;return void 0===l&&(s=IndicatorColor.IndicatorInvalid),_jsx("div",{className:`indicator-rect ${e||""}`,style:{backgroundColor:s,color:"white",width:"100px",height:"100px",display:"flex",alignItems:"center",justifyContent:"center",...o},children:a})}}Object.defineProperty(IndicatorRect,"contextType",{enumerable:!0,configurable:!0,writable:!0,value:EventEmitterContext}),Object.defineProperty(IndicatorRect,"defaultProps",{enumerable:!0,configurable:!0,writable:!0,value:{onColor:IndicatorColor.IndicatorGreen,offColor:"gray"}});export default IndicatorRect;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{Component}from"react";import{EventEmitterContext}from"../core/EventEmitterContext";import{IndicatorColor}from"../core/IndicatorColor";export{IndicatorColor};export class IndicatorRect extends Component{constructor(t){super(t),Object.defineProperty(this,"handleTopicUpdate",{enumerable:!0,configurable:!0,writable:!0,value:t=>{this.setState({currentValue:t})}}),this.state={currentValue:void 0}}componentDidMount(){this.setupSubscriptions()}componentWillUnmount(){}setupSubscriptions(){const{topic:t}=this.props,{subscribe:e}=this.context;t&&e(t,this.handleTopicUpdate)}render(){const{currentValue:t}=this.state,{className:e,style:o,value:r,onColor:n,offColor:i,options:c}=this.props;let a,l=t;void 0!==r&&(l=r),void 0!==c&&c.length>0&&(a=l?c[1]:c[0]);let s=l?n:i;return void 0===l&&(s=IndicatorColor.IndicatorInvalid),_jsx("div",{className:`indicator-rect ${e||""}`,style:{backgroundColor:s,color:"white",display:"flex",alignItems:"center",justifyContent:"center",...o},children:a})}}Object.defineProperty(IndicatorRect,"contextType",{enumerable:!0,configurable:!0,writable:!0,value:EventEmitterContext}),Object.defineProperty(IndicatorRect,"defaultProps",{enumerable:!0,configurable:!0,writable:!0,value:{onColor:IndicatorColor.IndicatorGreen,offColor:"gray"}});export default IndicatorRect;
@@ -1,41 +1,41 @@
1
- /*
2
- * Copyright (C) 2024 Automated Design Corp. All Rights Reserved.
3
- * Created Date: 2024-01-16 13:17:33
4
- * -----
5
- * Last Modified: 2024-03-19 10:37:26
6
- * -----
7
- *
8
- */
9
-
10
- .jogpanel-container {
11
- margin: 2mm;
12
- display: flex;
13
- flex-direction: column; /* Stack children vertically */
14
- align-items: center; /* Center children horizontally within the container */
15
- }
16
-
17
- .grid-container {
18
- display: flex;
19
- flex-direction: column;
20
- gap: 10px; /* Adjust the gap between rows */
21
-
22
- }
23
-
24
- .grid-row {
25
- display: flex;
26
- justify-content: space-between;
27
- gap: 10px; /* Adjust the gap between buttons */
28
- }
29
-
30
- .button-item {
31
- flex: 1; /* Make buttons expand to fill the row */
32
- }
33
-
34
- .distance-selector {
35
- margin-top: 2mm; /* Gap between buttons and distance selector */
36
- margin-left: auto;
37
- margin-right: auto;
38
- width: -moz-fit-content;
39
- width: fit-content;
40
- }
41
-
1
+ /*
2
+ * Copyright (C) 2024 Automated Design Corp. All Rights Reserved.
3
+ * Created Date: 2024-01-16 13:17:33
4
+ * -----
5
+ * Last Modified: 2024-03-19 10:37:26
6
+ * -----
7
+ *
8
+ */
9
+
10
+ .jogpanel-container {
11
+ margin: 2mm;
12
+ display: flex;
13
+ flex-direction: column; /* Stack children vertically */
14
+ align-items: center; /* Center children horizontally within the container */
15
+ }
16
+
17
+ .grid-container {
18
+ display: flex;
19
+ flex-direction: column;
20
+ gap: 10px; /* Adjust the gap between rows */
21
+
22
+ }
23
+
24
+ .grid-row {
25
+ display: flex;
26
+ justify-content: space-between;
27
+ gap: 10px; /* Adjust the gap between buttons */
28
+ }
29
+
30
+ .button-item {
31
+ flex: 1; /* Make buttons expand to fill the row */
32
+ }
33
+
34
+ .distance-selector {
35
+ margin-top: 2mm; /* Gap between buttons and distance selector */
36
+ margin-left: auto;
37
+ margin-right: auto;
38
+ width: -moz-fit-content;
39
+ width: fit-content;
40
+ }
41
+
@@ -1,27 +1,27 @@
1
- /*
2
- * Copyright (C) 2024 Automated Design Corp.. All Rights Reserved.
3
- * Created Date: 2024-04-27 12:46:35
4
- * -----
5
- * Last Modified: 2024-04-27 13:10:43
6
- * -----
7
- *
8
- */
9
-
10
-
11
-
12
- .custom-progress-bar {
13
- position: relative;
14
- width: 100%; /* Ensure the progress bar fills the container */
15
- }
16
-
17
- .centered-value {
18
- position: absolute;
19
- width: 100%;
20
- text-align: center;
21
- font-weight: 600;
22
- z-index: 10;
23
- top: 50%;
24
- left: 50%;
25
- transform: translate(-50%, -50%); /* Centering magic */
26
- }
27
-
1
+ /*
2
+ * Copyright (C) 2024 Automated Design Corp.. All Rights Reserved.
3
+ * Created Date: 2024-04-27 12:46:35
4
+ * -----
5
+ * Last Modified: 2024-04-27 13:10:43
6
+ * -----
7
+ *
8
+ */
9
+
10
+
11
+
12
+ .custom-progress-bar {
13
+ position: relative;
14
+ /* Width controlled by parent container */
15
+ }
16
+
17
+ .centered-value {
18
+ position: absolute;
19
+ width: 100%;
20
+ text-align: center;
21
+ font-weight: 600;
22
+ z-index: 10;
23
+ top: 50%;
24
+ left: 50%;
25
+ transform: translate(-50%, -50%); /* Centering magic */
26
+ }
27
+
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import React,{useEffect,useMemo,useState}from"react";import{InputText}from"primereact/inputtext";import{Button}from"primereact/button";function toStr(e){return e??""}export const TextInput=e=>{const{label:t,value:s,keyfilter:n,prefix:a,suffix:i,description:o,disabled:r=!1,placeholder:c,onValueChanged:l,validator:u,...p}=e,[d,m]=useState(toStr(s)),[x,f]=useState(!1),[j,v]=useState(!s||h(s,u));function h(e,t){return!t||t.test(e)}function _(){const e=d,t=h(e,u);v(t),t&&(f(!1),l?.(e))}function b(){const e=toStr(s);m(e),f(!1),v(!e||h(e,u))}useEffect(()=>{m(toStr(s)),f(!1),v(!s||h(s,u))},[s,u]);const N=useMemo(()=>toStr(d),[d]);return _jsxs("div",{children:[_jsxs("div",{className:"p-inputgroup flex-1",children:[_jsx("span",{className:"p-inputgroup-addon",children:t}),void 0!==a&&_jsx("span",{className:"p-inputgroup-addon",children:a}),_jsx(InputText,{...p,keyfilter:n,placeholder:c,value:N,onChange:e=>{m(e.target.value),f(!0)},className:j?p.className??"":`${p.className??""} p-invalid`,onKeyDown:e=>{"Enter"===e.key?_():"Escape"===e.key&&b()},disabled:r}),void 0!==i&&_jsx("span",{className:"p-inputgroup-addon",children:i}),_jsx(Button,{icon:"pi pi-check",disabled:r||!x,className:"p-button-success",onClick:_,visible:x}),_jsx(Button,{icon:"pi pi-times",disabled:r||!x,className:"p-button-danger",onClick:b,visible:x})]}),void 0!==o&&_jsx("small",{children:o})]})};
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import React,{useEffect,useMemo,useState}from"react";import{InputText}from"primereact/inputtext";import{Button}from"primereact/button";function toStr(e){return e??""}export const TextInput=e=>{const{label:t,value:s,keyfilter:n,prefix:a,suffix:i,description:o,disabled:r=!1,placeholder:c,onValueChanged:u,validator:l,...p}=e,[d,m]=useState(toStr(s)),[x,f]=useState(!1),[j,v]=useState(!s||h(s,l));function h(e,t){return!t||t.test(e)}function _(){const e=d,t=h(e,l);v(t),t&&(f(!1),u?.(e))}function b(){const e=toStr(s);m(e),f(!1),v(!e||h(e,l))}useEffect(()=>{m(toStr(s)),f(!1),v(!s||h(s,l))},[s,l]);const N=useMemo(()=>toStr(d),[d]);return _jsxs("div",{children:[_jsxs("div",{className:"p-inputgroup",children:[_jsx("span",{className:"p-inputgroup-addon",children:t}),void 0!==a&&_jsx("span",{className:"p-inputgroup-addon",children:a}),_jsx(InputText,{...p,keyfilter:n,placeholder:c,value:N,onChange:e=>{m(e.target.value),f(!0)},className:j?p.className??"":`${p.className??""} p-invalid`,onKeyDown:e=>{"Enter"===e.key?_():"Escape"===e.key&&b()},disabled:r}),void 0!==i&&_jsx("span",{className:"p-inputgroup-addon",children:i}),_jsx(Button,{icon:"pi pi-check",disabled:r||!x,className:"p-button-success",onClick:_,visible:x}),_jsx(Button,{icon:"pi pi-times",disabled:r||!x,className:"p-button-danger",onClick:b,visible:x})]}),void 0!==o&&_jsx("small",{children:o})]})};
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import React,{useState,useEffect,useContext}from"react";import{SelectButton}from"primereact/selectbutton";import{EventEmitterContext}from"../core/EventEmitterContext";import{IndicatorColor}from"../core/IndicatorColor";export{IndicatorColor};import{ActionMode}from"../core/ActionMode";export{ActionMode};import clsx from"clsx";export const ToggleGroup=({label:o,topic:t,onColor:e,offColor:n,command:r,commandTopic:i,commandArgs:l,disableTopic:s,invisibleTopic:a,actionMode:c,invert:d,onValueChanged:u,...p})=>{const[m]=useState(()=>`toggleGroup-${Math.random().toString(36).substr(2,9)}`),[f,g]=useState(void 0),[v,h]=useState(!1),[b,x]=useState(!1),[C,I]=useState(!1),y=useContext(EventEmitterContext);useEffect(()=>(t&&y.subscribe(t,A),s&&y.subscribe(s,j),a&&y.subscribe(a,M),()=>{}),[t,s,a]);const A=o=>{g(o)},j=o=>{h(o)},M=o=>{x(o)},E=()=>{C||(I(!0),c!==ActionMode.Tap&&c!==ActionMode.Pressed||T(!0))},S=()=>{C&&(I(!1),c===ActionMode.Tap?T(!1):c===ActionMode.Released&&T(!0))},T=o=>{if(r&&r.length>0){const t={topic:i,value:o,...l};y.dispatch({topic:r,payload:t})}};let $=f;void 0!==p.value&&($=p.value);let _=((o,t,e)=>{if(!t||0===t.length)return IndicatorColor.IndicatorInvalid;let n=Array.isArray(e)?e:void 0!==e?[e]:[IndicatorColor.IndicatorInvalid],r=typeof o;if("boolean"===r)return o?n[0]:n.length>1?n[1]:n[0];if("number"===r&&t.length>o){if(n.length>o){return n[o]}return n[0]}if("string"===r){let e=t.indexOf(o);return-1!==e&&e<n.length?n[e]:n[0]}return null!=e?Array.isArray(e)?e[0]:e:IndicatorColor.IndicatorInvalid})($,p.options,e);void 0===$&&(_=IndicatorColor.IndicatorInvalid);const N=void 0!==p.options&&null!==p.options&&void 0!==p.options.length&&p.options.length>2,G=`${m}-togglegroup-selectbutton-container`;return _jsxs("div",{className:"flex",children:[_jsx("style",{children:`\n ${void 0!==n?`\n .${G} .p-selectbutton .p-button {\n background-color: ${n};\n }\n `:""}\n .${G} .p-selectbutton .p-button.p-highlight {\n background-color: ${_} !important;\n border-color: ${_} !important;\n }\n `}),_jsx("div",{className:G,children:_jsxs("div",{className:"p-inputgroup",children:[_jsx("span",{className:"p-inputgroup-addon",style:{flexGrow:1},children:o}),_jsx(SelectButton,{...p,options:p.options,disabled:v||p.disabled,multiple:N,className:clsx(m,p.className,{"p-invalid":void 0===p.value}),style:b?{display:"none"}:{},value:((o,t)=>{if(null==t||0===t.length)return;let e=typeof o;if("boolean"==e){return o&&t.length>1?t[1]:t[0]}if("number"==e){let e=o;if(void 0!==e&&e<t.length)return t[e]}else if("string"==e)return o})($,p.options),allowEmpty:!1,onMouseDown:E,onTouchStart:E,onMouseUp:S,onTouchEnd:S,onChange:o=>(o=>{if(null!=u)if(void 0===p.options||null===p.options||0===p.options.length)u(!!N&&0);else{let t=0;for(let e=0;e<p.options.length;++e)if(o===p.options[e]){t=e;break}u(N?t:t>0)}})(o.value)})]})})]})};export default ToggleGroup;
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import React,{useState,useEffect,useContext}from"react";import{SelectButton}from"primereact/selectbutton";import{EventEmitterContext}from"../core/EventEmitterContext";import{IndicatorColor}from"../core/IndicatorColor";export{IndicatorColor};import{ActionMode}from"../core/ActionMode";export{ActionMode};import clsx from"clsx";export const ToggleGroup=({label:o,topic:t,onColor:e,offColor:n,command:r,commandTopic:i,commandArgs:l,disableTopic:s,invisibleTopic:a,actionMode:c,invert:d,onValueChanged:u,...p})=>{const[m]=useState(()=>`toggleGroup-${Math.random().toString(36).substr(2,9)}`),[g,f]=useState(void 0),[v,h]=useState(!1),[b,x]=useState(!1),[C,I]=useState(!1),A=useContext(EventEmitterContext);useEffect(()=>(t&&A.subscribe(t,j),s&&A.subscribe(s,y),a&&A.subscribe(a,M),()=>{}),[t,s,a]);const j=o=>{f(o)},y=o=>{h(o)},M=o=>{x(o)},E=()=>{C||(I(!0),c!==ActionMode.Tap&&c!==ActionMode.Pressed||T(!0))},S=()=>{C&&(I(!1),c===ActionMode.Tap?T(!1):c===ActionMode.Released&&T(!0))},T=o=>{if(r&&r.length>0){const t={topic:i,value:o,...l};A.dispatch({topic:r,payload:t})}};let $=g;void 0!==p.value&&($=p.value);let _=((o,t,e)=>{if(!t||0===t.length)return IndicatorColor.IndicatorInvalid;let n=Array.isArray(e)?e:void 0!==e?[e]:[IndicatorColor.IndicatorInvalid],r=typeof o;if("boolean"===r)return o?n[0]:n.length>1?n[1]:n[0];if("number"===r&&t.length>o){if(n.length>o){return n[o]}return n[0]}if("string"===r){let e=t.indexOf(o);return-1!==e&&e<n.length?n[e]:n[0]}return null!=e?Array.isArray(e)?e[0]:e:IndicatorColor.IndicatorInvalid})($,p.options,e);void 0===$&&(_=IndicatorColor.IndicatorInvalid);const N=void 0!==p.options&&null!==p.options&&void 0!==p.options.length&&p.options.length>2,k=`${m}-togglegroup-selectbutton-container`;return _jsxs("div",{className:"flex",children:[_jsx("style",{children:`\n ${void 0!==n?`\n .${k} .p-selectbutton .p-button {\n background-color: ${n};\n }\n `:""}\n .${k} .p-selectbutton .p-button.p-highlight {\n background-color: ${_} !important;\n border-color: ${_} !important;\n }\n `}),_jsx("div",{className:k,children:_jsxs("div",{className:"p-inputgroup",children:[_jsx("span",{className:"p-inputgroup-addon",children:o}),_jsx(SelectButton,{...p,options:p.options,disabled:v||p.disabled,multiple:N,className:clsx(m,p.className,{"p-invalid":void 0===p.value}),style:b?{display:"none"}:{},value:((o,t)=>{if(null==t||0===t.length)return;let e=typeof o;if("boolean"==e){return o&&t.length>1?t[1]:t[0]}if("number"==e){let e=o;if(void 0!==e&&e<t.length)return t[e]}else if("string"==e)return o})($,p.options),allowEmpty:!1,onMouseDown:E,onTouchStart:E,onMouseUp:S,onTouchEnd:S,onChange:o=>(o=>{if(null!=u)if(void 0===p.options||null===p.options||0===p.options.length)u(!!N&&0);else{let t=0;for(let e=0;e<p.options.length;++e)if(o===p.options[e]){t=e;break}u(N?t:t>0)}})(o.value)})]})})]})};export default ToggleGroup;
@@ -1,32 +1,30 @@
1
- /*
2
- * Copyright (C) 2024 Automated Design Corp.. All Rights Reserved.
3
- * Created Date: 2024-03-22 06:26:45
4
- * -----
5
- * Last Modified: 2024-03-22 07:07:50
6
- * -----
7
- *
8
- */
9
-
10
-
11
-
12
- .value-indicator-container {
13
-
14
- display: flex;
15
- flex-direction: column;
16
- background-color: var(--surface-ground);
17
- border-color: var(--surface-border);
18
- border-radius: var(--border-radius);
19
- border-width: 1px;
20
- border-style: solid;
21
- justify-content: center;
22
- align-items: center;
23
- padding: 2mm;
24
- flex-grow: 1; /* Allow the item to grow to fill available space */
25
- flex-shrink: 0; /* Allow the item to shrink if necessary */
26
- flex-basis: 0; /* Start with 0 width and then grow as needed, equal distribution */
27
- min-width: 0; /* Prevents flex items from overflowing their container */
28
- }
29
-
30
- .value-indicator-label {
31
- padding-bottom: 1mm;
1
+ /*
2
+ * Copyright (C) 2024 Automated Design Corp.. All Rights Reserved.
3
+ * Created Date: 2024-03-22 06:26:45
4
+ * -----
5
+ * Last Modified: 2024-03-22 07:07:50
6
+ * -----
7
+ *
8
+ */
9
+
10
+
11
+
12
+ .value-indicator-container {
13
+
14
+ display: flex;
15
+ flex-direction: column;
16
+ background-color: var(--surface-ground);
17
+ border-color: var(--surface-border);
18
+ border-radius: var(--border-radius);
19
+ border-width: 1px;
20
+ border-style: solid;
21
+ justify-content: center;
22
+ align-items: center;
23
+ padding: 2mm;
24
+ flex-shrink: 0;
25
+ min-width: 0; /* Prevents flex items from overflowing their container */
26
+ }
27
+
28
+ .value-indicator-label {
29
+ padding-bottom: 1mm;
32
30
  }
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import React,{useState,useRef,useEffect,useContext}from"react";import{InputNumber}from"primereact/inputnumber";import{EventEmitterContext}from"../core/EventEmitterContext";import{Button}from"primereact/button";export const ValueInput=({label:e="",value:t=null,min:s,max:i,minPrecision:n=0,maxPrecision:a=3,mode:o="decimal",currency:u="USD",prefix:l,suffix:r,showButtons:c=!1,step:p=1,locale:m="en-US",description:d,disabled:x=!1,dispatchTopic:f,placeholder:v,onValueChanged:b,...h})=>{const[j,C]=useState(t),[E,_]=useState(t),[S,g]=useState(t),[y,N]=useState(!1),[k,B]=useState(!1),D=useRef(null),F=useContext(EventEmitterContext);useEffect(()=>{null!==S?(_(S),g(null),B(!1)):t!==E&&(_(t),C(t),N(!1),B(!1))},[t,E]);const I=()=>{var e;y&&null!==j&&(e=j,void 0!==i&&e>i||void 0!==s&&e<s?B(!0):(_(j),N(!1),b?.(j),B(!1),f&&F.dispatch({topic:f,payload:j})))},w=()=>{y&&(C(null),_(null),N(!1),B(!1))};return _jsxs("div",{children:[_jsxs("div",{className:"p-inputgroup flex-1",children:[_jsx("span",{className:"p-inputgroup-addon",children:e}),_jsx(InputNumber,{...h,ref:D,invalid:k,min:s,max:i,minFractionDigits:n,maxFractionDigits:a,mode:o,prefix:l,suffix:r,showButtons:c,step:p,placeholder:v,value:E,onChange:e=>{return t=e.value,y||(g(E),N(!0)),void C(t);var t},locale:m,currency:u,onKeyDown:e=>{"Enter"===e.key?I():"Escape"===e.key&&w()},disabled:x}),_jsx(Button,{icon:"pi pi-check",disabled:x||!y,className:"p-button-success",onClick:()=>I(),visible:y,size:"small",autoFocus:!1}),_jsx(Button,{icon:"pi pi-times",disabled:x||!y,className:"p-button-danger",onClickCapture:()=>w(),visible:y,size:"small",autoFocus:!1})]}),d&&_jsx("small",{children:d})]})};export default ValueInput;
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import React,{useState,useRef,useEffect,useContext}from"react";import{InputNumber}from"primereact/inputnumber";import{EventEmitterContext}from"../core/EventEmitterContext";import{Button}from"primereact/button";export const ValueInput=({label:e="",value:t=null,min:s,max:i,minPrecision:n=0,maxPrecision:a=3,mode:o="decimal",currency:u="USD",prefix:l,suffix:r,showButtons:c=!1,step:p=1,locale:m="en-US",description:d,disabled:x=!1,dispatchTopic:f,placeholder:v,onValueChanged:b,...h})=>{const[j,C]=useState(t),[E,_]=useState(t),[S,g]=useState(t),[y,N]=useState(!1),[k,B]=useState(!1),D=useRef(null),F=useContext(EventEmitterContext);useEffect(()=>{null!==S?(_(S),g(null),B(!1)):t!==E&&(_(t),C(t),N(!1),B(!1))},[t,E]);const I=()=>{var e;y&&null!==j&&(e=j,void 0!==i&&e>i||void 0!==s&&e<s?B(!0):(_(j),N(!1),b?.(j),B(!1),f&&F.dispatch({topic:f,payload:j})))},w=()=>{y&&(C(null),_(null),N(!1),B(!1))};return _jsxs("div",{children:[_jsxs("div",{className:"p-inputgroup",children:[_jsx("span",{className:"p-inputgroup-addon",children:e}),_jsx(InputNumber,{...h,ref:D,invalid:k,min:s,max:i,minFractionDigits:n,maxFractionDigits:a,mode:o,prefix:l,suffix:r,showButtons:c,step:p,placeholder:v,value:E,onChange:e=>{return t=e.value,y||(g(E),N(!0)),void C(t);var t},locale:m,currency:u,onKeyDown:e=>{"Enter"===e.key?I():"Escape"===e.key&&w()},disabled:x}),_jsx(Button,{icon:"pi pi-check",disabled:x||!y,className:"p-button-success",onClick:()=>I(),visible:y,size:"small",autoFocus:!1}),_jsx(Button,{icon:"pi pi-times",disabled:x||!y,className:"p-button-danger",onClickCapture:()=>w(),visible:y,size:"small",autoFocus:!1})]}),d&&_jsx("small",{children:d})]})};export default ValueInput;