@adcops/autocore-react 3.1.1 → 3.3.2

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 (252) hide show
  1. package/additional-docs/react_performance_notes.md +94 -0
  2. package/dist/components/AutoCoreDevPanel.d.ts.map +1 -1
  3. package/dist/components/AutoCoreDevPanel.js +1 -1
  4. package/dist/components/FileList.d.ts.map +1 -1
  5. package/dist/components/FileList.js +1 -1
  6. package/dist/components/FileSelect.d.ts.map +1 -1
  7. package/dist/components/FileSelect.js +1 -1
  8. package/dist/core/AutoCoreTagContext.d.ts +59 -185
  9. package/dist/core/AutoCoreTagContext.d.ts.map +1 -1
  10. package/dist/core/AutoCoreTagContext.js +1 -1
  11. package/dist/core/AutoCoreTagTypes.d.ts +127 -6
  12. package/dist/core/AutoCoreTagTypes.d.ts.map +1 -1
  13. package/dist/core/CoreStreamTypes.d.ts +345 -0
  14. package/dist/core/CoreStreamTypes.d.ts.map +1 -0
  15. package/dist/core/CoreStreamTypes.js +1 -0
  16. package/dist/core/EventEmitterContext.d.ts +91 -473
  17. package/dist/core/EventEmitterContext.d.ts.map +1 -1
  18. package/dist/core/EventEmitterContext.js +1 -1
  19. package/dist/hooks/adsHooks.d.ts.map +1 -1
  20. package/dist/hooks/adsHooks.js +1 -1
  21. package/dist/hooks/commandHooks.d.ts +3 -3
  22. package/dist/hooks/commandHooks.d.ts.map +1 -1
  23. package/dist/hooks/commandHooks.js +1 -1
  24. package/dist/hooks/useAutoCoreTag.js +1 -1
  25. package/dist/hub/CommandMessage.d.ts +18 -9
  26. package/dist/hub/CommandMessage.d.ts.map +1 -1
  27. package/dist/hub/CommandMessage.js +1 -1
  28. package/dist/hub/DebugPanel.d.ts +31 -0
  29. package/dist/hub/DebugPanel.d.ts.map +1 -0
  30. package/dist/hub/DebugPanel.js +1 -0
  31. package/dist/hub/HubBase.d.ts +83 -129
  32. package/dist/hub/HubBase.d.ts.map +1 -1
  33. package/dist/hub/HubBase.js +1 -1
  34. package/dist/hub/HubSimulate.d.ts +41 -8
  35. package/dist/hub/HubSimulate.d.ts.map +1 -1
  36. package/dist/hub/HubSimulate.js +1 -1
  37. package/dist/hub/HubTauri.d.ts +24 -60
  38. package/dist/hub/HubTauri.d.ts.map +1 -1
  39. package/dist/hub/HubTauri.js +1 -1
  40. package/dist/hub/HubWebSocket.d.ts +33 -17
  41. package/dist/hub/HubWebSocket.d.ts.map +1 -1
  42. package/dist/hub/HubWebSocket.js +1 -1
  43. package/dist/hub/debug.d.ts +23 -0
  44. package/dist/hub/debug.d.ts.map +1 -0
  45. package/dist/hub/debug.js +1 -0
  46. package/dist/hub/index.d.ts +19 -4
  47. package/dist/hub/index.d.ts.map +1 -1
  48. package/dist/hub/index.js +1 -1
  49. package/package.json +4 -4
  50. package/src/components/AutoCoreDevPanel.tsx +14 -11
  51. package/src/components/FileList.tsx +5 -4
  52. package/src/components/FileSelect.tsx +2 -1
  53. package/src/core/ActionMode.ts +1 -1
  54. package/src/core/AutoCoreTagContext.tsx +247 -330
  55. package/src/core/AutoCoreTagTypes.ts +236 -104
  56. package/src/core/CoreStreamTypes.ts +512 -0
  57. package/src/core/EventEmitterContext.tsx +182 -520
  58. package/src/core/IndicatorButtonState.ts +1 -1
  59. package/src/core/hoc.tsx +1 -1
  60. package/src/hooks/adsHooks.tsx +21 -22
  61. package/src/hooks/commandHooks.tsx +23 -19
  62. package/src/hooks/index.ts +1 -1
  63. package/src/hooks/useAutoCoreTag.ts +2 -2
  64. package/src/hooks/useScaledValue.tsx +1 -1
  65. package/src/hub/CommandMessage.ts +71 -19
  66. package/src/hub/DebugPanel.ts +280 -0
  67. package/src/hub/HubBase.ts +147 -223
  68. package/src/hub/HubSimulate.ts +93 -24
  69. package/src/hub/HubTauri.ts +87 -96
  70. package/src/hub/HubWebSocket.ts +118 -140
  71. package/src/hub/debug.ts +211 -0
  72. package/src/hub/index.ts +49 -39
  73. package/docs/.nojekyll +0 -1
  74. package/docs/assets/hierarchy.js +0 -1
  75. package/docs/assets/highlight.css +0 -134
  76. package/docs/assets/icons.js +0 -18
  77. package/docs/assets/icons.svg +0 -1
  78. package/docs/assets/main.js +0 -60
  79. package/docs/assets/navigation.js +0 -1
  80. package/docs/assets/search.js +0 -1
  81. package/docs/assets/style.css +0 -1633
  82. package/docs/classes/components_CodeEditor.CodeEditor.html +0 -135
  83. package/docs/classes/components_Indicator.Indicator.html +0 -122
  84. package/docs/classes/components_IndicatorRect.IndicatorRect.html +0 -121
  85. package/docs/classes/components_JogPanel.JogPanel.html +0 -136
  86. package/docs/classes/components_Lamp.Lamp.html +0 -122
  87. package/docs/classes/components_OskDialog.OskDialog.html +0 -125
  88. package/docs/classes/components_TextInput.TextInput.html +0 -125
  89. package/docs/classes/components_ValueDisplay.ValueDisplay.html +0 -148
  90. package/docs/classes/components_ValueIndicator.ValueIndicator.html +0 -126
  91. package/docs/classes/core_ValueSimulator.ValueSimulator.html +0 -51
  92. package/docs/classes/hub_HubBase.HubBase.html +0 -106
  93. package/docs/classes/hub_HubSimulate.HubSimulate.html +0 -75
  94. package/docs/classes/hub_HubTauri.HubTauri.html +0 -93
  95. package/docs/classes/hub_HubWebSocket.HubWebSocket.html +0 -112
  96. package/docs/documents/core_AutoCoreTagContext.AutoCoreTagContext.html +0 -148
  97. package/docs/enums/components_JogPanel.JogDistanceAction.html +0 -5
  98. package/docs/enums/components_JogPanel.JogPanelAction.html +0 -18
  99. package/docs/enums/components_JogPanel.JogSpeedAction.html +0 -5
  100. package/docs/enums/core_ActionMode.ActionMode.html +0 -6
  101. package/docs/enums/core_IndicatorColor.IndicatorColor.html +0 -23
  102. package/docs/functions/assets.BlocklyLogo.html +0 -1
  103. package/docs/functions/assets.Distance.html +0 -1
  104. package/docs/functions/assets.JogLong.html +0 -1
  105. package/docs/functions/assets.JogMedium.html +0 -1
  106. package/docs/functions/assets.JogShort.html +0 -1
  107. package/docs/functions/assets.PythonLogo.html +0 -1
  108. package/docs/functions/assets.Rotation3D.html +0 -1
  109. package/docs/functions/assets.RotationCcw.html +0 -1
  110. package/docs/functions/assets.RotationCcwA.html +0 -1
  111. package/docs/functions/assets.RotationCcwB.html +0 -1
  112. package/docs/functions/assets.RotationCcwC.html +0 -1
  113. package/docs/functions/assets.RotationCw.html +0 -1
  114. package/docs/functions/assets.RotationCwA.html +0 -1
  115. package/docs/functions/assets.RotationCwB.html +0 -1
  116. package/docs/functions/assets.RotationCwC.html +0 -1
  117. package/docs/functions/assets.Run.html +0 -1
  118. package/docs/functions/assets.Speed.html +0 -1
  119. package/docs/functions/assets.SpeedFast.html +0 -1
  120. package/docs/functions/assets.SpeedMedium.html +0 -1
  121. package/docs/functions/assets.SpeedNone.html +0 -1
  122. package/docs/functions/assets.SpeedSlow.html +0 -1
  123. package/docs/functions/assets.Walk.html +0 -1
  124. package/docs/functions/components_BlocklyEditor.createCustomToolbox.html +0 -6
  125. package/docs/functions/core_UniqueId.UniqueId.html +0 -9
  126. package/docs/functions/core_hoc.hocAddSubscription.html +0 -6
  127. package/docs/functions/hooks_adsHooks.useAdsRegisterSymbols.html +0 -16
  128. package/docs/functions/hooks_adsHooks.useAdsTapValue.html +0 -8
  129. package/docs/functions/hooks_adsHooks.useAdsWriteScaledValue.html +0 -18
  130. package/docs/functions/hooks_adsHooks.useAdsWriteValue.html +0 -9
  131. package/docs/functions/hooks_commandHooks.useRegisterSymbols.html +0 -16
  132. package/docs/functions/hooks_commandHooks.useTapValue.html +0 -10
  133. package/docs/functions/hooks_commandHooks.useWriteScaledValue.html +0 -18
  134. package/docs/functions/hooks_commandHooks.useWriteValue.html +0 -11
  135. package/docs/functions/hooks_useAutoCoreTag.ts.makeAutoCoreTagHooks.html +0 -12
  136. package/docs/functions/hooks_useScaledValue.useScaledValue.html +0 -18
  137. package/docs/functions/hub.createHub.html +0 -3
  138. package/docs/hierarchy.html +0 -1
  139. package/docs/index.html +0 -148
  140. package/docs/interfaces/components_IndicatorButton.IndicatorButtonProps.html +0 -654
  141. package/docs/interfaces/components_IndicatorRect.IndicatorRectProps.html +0 -37
  142. package/docs/interfaces/components_JogPanel.JogPanelButtonDefinition.html +0 -5
  143. package/docs/interfaces/components_ToggleGroup.ToggleGroupProps.html +0 -644
  144. package/docs/interfaces/core_AutoCoreTagTypes.BaseContextValue.html +0 -12
  145. package/docs/interfaces/core_AutoCoreTagTypes.ScaleConfig.html +0 -13
  146. package/docs/interfaces/core_EventEmitterContext.Action.html +0 -8
  147. package/docs/interfaces/core_EventEmitterContext.EventEmitterContextType.html +0 -33
  148. package/docs/interfaces/core_EventEmitterContext.State.html +0 -8
  149. package/docs/interfaces/core_EventEmitterContext.Subscription.html +0 -6
  150. package/docs/interfaces/core_IndicatorButtonState.IndicatorButtonState.html +0 -10
  151. package/docs/interfaces/core_PositionContext.IPositionContext.html +0 -17
  152. package/docs/interfaces/hub_CommandMessage.CommandMessage.html +0 -6
  153. package/docs/interfaces/hub_CommandMessage.CommandMessageResult.html +0 -4
  154. package/docs/modules/assets.html +0 -1
  155. package/docs/modules/assets_BlocklyLogo.html +0 -1
  156. package/docs/modules/assets_Distance.html +0 -1
  157. package/docs/modules/assets_JogLong.html +0 -1
  158. package/docs/modules/assets_JogMedium.html +0 -1
  159. package/docs/modules/assets_JogShort.html +0 -1
  160. package/docs/modules/assets_PythonLogo.html +0 -1
  161. package/docs/modules/assets_Rotation3D.html +0 -1
  162. package/docs/modules/assets_RotationCcw.html +0 -1
  163. package/docs/modules/assets_RotationCcwA.html +0 -1
  164. package/docs/modules/assets_RotationCcwB.html +0 -1
  165. package/docs/modules/assets_RotationCcwC.html +0 -1
  166. package/docs/modules/assets_RotationCw.html +0 -1
  167. package/docs/modules/assets_RotationCwA.html +0 -1
  168. package/docs/modules/assets_RotationCwB.html +0 -1
  169. package/docs/modules/assets_RotationCwC.html +0 -1
  170. package/docs/modules/assets_Run.html +0 -1
  171. package/docs/modules/assets_Speed.html +0 -1
  172. package/docs/modules/assets_SpeedFast.html +0 -1
  173. package/docs/modules/assets_SpeedMedium.html +0 -1
  174. package/docs/modules/assets_SpeedNone.html +0 -1
  175. package/docs/modules/assets_SpeedSlow.html +0 -1
  176. package/docs/modules/assets_Walk.html +0 -1
  177. package/docs/modules/components_AutoCoreDevPanel.html +0 -20
  178. package/docs/modules/components_BlocklyEditor.html +0 -1
  179. package/docs/modules/components_CodeEditor.html +0 -1
  180. package/docs/modules/components_FileList.html +0 -1
  181. package/docs/modules/components_FileSelect.html +0 -1
  182. package/docs/modules/components_FitText.html +0 -1
  183. package/docs/modules/components_Indicator.html +0 -1
  184. package/docs/modules/components_IndicatorButton.html +0 -1
  185. package/docs/modules/components_IndicatorRect.html +0 -1
  186. package/docs/modules/components_JogPanel.html +0 -1
  187. package/docs/modules/components_Lamp.html +0 -1
  188. package/docs/modules/components_Osk.html +0 -1
  189. package/docs/modules/components_OskDialog.html +0 -1
  190. package/docs/modules/components_ProgressBarWithValue.html +0 -1
  191. package/docs/modules/components_TextInput.html +0 -1
  192. package/docs/modules/components_ToggleGroup.html +0 -1
  193. package/docs/modules/components_ValueDisplay.html +0 -1
  194. package/docs/modules/components_ValueIndicator.html +0 -1
  195. package/docs/modules/components_ValueInput.html +0 -1
  196. package/docs/modules/core_ActionMode.html +0 -1
  197. package/docs/modules/core_AutoCoreTagContext.html +0 -11
  198. package/docs/modules/core_AutoCoreTagTypes.html +0 -1
  199. package/docs/modules/core_EventEmitterContext.html +0 -53
  200. package/docs/modules/core_IndicatorButtonState.html +0 -1
  201. package/docs/modules/core_IndicatorColor.html +0 -1
  202. package/docs/modules/core_MaskPatterns.html +0 -1
  203. package/docs/modules/core_NumerableTypes.html +0 -1
  204. package/docs/modules/core_PositionContext.html +0 -1
  205. package/docs/modules/core_UniqueId.html +0 -1
  206. package/docs/modules/core_ValueSimulator.html +0 -1
  207. package/docs/modules/core_hoc.html +0 -1
  208. package/docs/modules/hooks.html +0 -1
  209. package/docs/modules/hooks_adsHooks.html +0 -1
  210. package/docs/modules/hooks_commandHooks.html +0 -1
  211. package/docs/modules/hooks_useAutoCoreTag.ts.html +0 -52
  212. package/docs/modules/hooks_useScaledValue.html +0 -1
  213. package/docs/modules/hub.html +0 -1
  214. package/docs/modules/hub_CommandMessage.html +0 -1
  215. package/docs/modules/hub_HubBase.html +0 -1
  216. package/docs/modules/hub_HubSimulate.html +0 -1
  217. package/docs/modules/hub_HubTauri.html +0 -1
  218. package/docs/modules/hub_HubWebSocket.html +0 -1
  219. package/docs/modules.html +0 -23
  220. package/docs/types/components_IndicatorButton.IndicatorButtonOptionsType.html +0 -1
  221. package/docs/types/core_AutoCoreTagTypes.ExtractByTag.html +0 -2
  222. package/docs/types/core_AutoCoreTagTypes.PrimitiveKind.html +0 -1
  223. package/docs/types/core_AutoCoreTagTypes.TagConfig.html +0 -16
  224. package/docs/types/core_AutoCoreTagTypes.TagValueMap.html +0 -1
  225. package/docs/types/core_AutoCoreTagTypes.TagValueOf.html +0 -1
  226. package/docs/types/core_EventEmitterContext.EmitterDispatchFunction.html +0 -3
  227. package/docs/types/core_EventEmitterContext.EmitterSubscribeFunction.html +0 -3
  228. package/docs/types/core_EventEmitterContext.EmitterUnsubscribeFunction.html +0 -3
  229. package/docs/types/core_NumerableTypes.NumerableFormatOptions.html +0 -4
  230. package/docs/types/core_hoc.HocAddSubscriptionProps.html +0 -6
  231. package/docs/variables/components_AutoCoreDevPanel.AutoCoreDevPanel.html +0 -43
  232. package/docs/variables/components_BlocklyEditor.BlocklyEditor.html +0 -13
  233. package/docs/variables/components_BlocklyEditor.StandardToolbox.html +0 -1
  234. package/docs/variables/components_FileList.FileList.html +0 -23
  235. package/docs/variables/components_FileSelect.FileSelect.html +0 -1
  236. package/docs/variables/components_FitText.FitText.html +0 -4
  237. package/docs/variables/components_IndicatorButton.IndicatorButton.html +0 -1
  238. package/docs/variables/components_JogPanel.DefaultLinearJogButtons.html +0 -2
  239. package/docs/variables/components_JogPanel.DefaultRotationJogButtons.html +0 -2
  240. package/docs/variables/components_Osk.Osk.html +0 -1
  241. package/docs/variables/components_ProgressBarWithValue.ProgressBarWithValue.html +0 -1
  242. package/docs/variables/components_ToggleGroup.ToggleGroup.html +0 -1
  243. package/docs/variables/components_ValueInput.ValueInput.html +0 -4
  244. package/docs/variables/core_AutoCoreTagContext.AutoCoreTagContext.html +0 -1
  245. package/docs/variables/core_AutoCoreTagContext.AutoCoreTagProvider.html +0 -7
  246. package/docs/variables/core_EventEmitterContext.EventEmitterContext.html +0 -64
  247. package/docs/variables/core_EventEmitterContext.EventEmitterProvider.html +0 -10
  248. package/docs/variables/core_MaskPatterns.PrimeReactMaskPatterns.html +0 -14
  249. package/docs/variables/core_MaskPatterns.RegExMaskPatterns.html +0 -15
  250. package/docs/variables/core_PositionContext.DimensionsContext.html +0 -6
  251. package/docs/variables/hooks_useScaledValue.kMillimeters2Inches.html +0 -2
  252. package/docs/variables/hooks_useScaledValue.kNewtons2Pounds.html +0 -2
@@ -1,148 +0,0 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AutoCoreTagContext | autocore-react - v3.1.0</title><meta name="description" content="Documentation for autocore-react"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">autocore-react - v3.1.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/core_AutoCoreTagContext.html">core/AutoCoreTagContext</a></li><li><a href="" aria-current="page">AutoCoreTagContext</a></li></ul></div><div class="tsd-panel tsd-typography"><h1 id="autocoretagcontext-manual" class="tsd-anchor-link">AutoCoreTagContext Manual<a href="#autocoretagcontext-manual" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1><p>This manual explains how to configure, provide, and consume the <strong>AutoCoreTagContext</strong> system.<br>
2
- The goal is to create a <strong>typed, global context</strong> of tags (values from <code>autocore-server</code>), so your React components can read and update them easily.</p>
3
- <hr>
4
- <h2 id="overview" class="tsd-anchor-link">Overview<a href="#overview" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>The AutoCoreTagContext is built around three parts:</p>
5
- <ol>
6
- <li><strong>Context</strong> – created with <code>makeAutoCoreTagContext</code> to hold live tag values.</li>
7
- <li><strong>Hooks</strong> – created with <code>makeAutoCoreTagHooks</code> to read, write, tap, and derive values.</li>
8
- <li><strong>Dev Panel</strong> – created with <code>makeAutoCoreDevPanel</code> to inspect and manually interact with tags during development.</li>
9
- </ol>
10
- <p>Tags are defined in a <code>spec</code> object: an array of <code>TagConfig</code> entries that tell the system what to subscribe to.</p>
11
- <hr>
12
- <h2 id="summary" class="tsd-anchor-link">Summary<a href="#summary" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><ul>
13
- <li>Define tags once in a spec.</li>
14
- <li>Create context, hooks, and optionally a Dev Panel.</li>
15
- <li>Provide the context at the root of your app.</li>
16
- <li>Consume via:
17
- <ul>
18
- <li>useAutoCoreTag → single value + actions.</li>
19
- <li>useAutoCoreTags → bulk values.</li>
20
- <li>useAutoCoreSelect → computed state.</li>
21
- </ul>
22
- </li>
23
- </ul>
24
- <p>This makes your React UI a strongly-typed, declarative layer over the live tag system from autocore-server.</p>
25
- <h2 id="defining-your-tags-and-autocorehooks" class="tsd-anchor-link">Defining Your Tags and AutoCoreHooks<a href="#defining-your-tags-and-autocorehooks" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>In this initial step, we make two files:</p>
26
- <ol>
27
- <li>AutoCoreTags.ts</li>
28
- <li>AutoCore.ts</li>
29
- </ol>
30
- <p>Note that ADC is working to create a VS Code extension for help auto-generating these files.</p>
31
- <h3 id="autocoretagsts" class="tsd-anchor-link">AutoCoreTags.ts<a href="#autocoretagsts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>To maintain type safety, tags are defined and exported from a TypeScript file. Tags are defined as an array of TagConfig objects.</p>
32
- <p>Each tag has:</p>
33
- <ul>
34
- <li><code>tagName</code> – your local name for the tag.</li>
35
- <li><code>domain</code> – the domain for the symbol (e.g., <code>&quot;ADS&quot;</code>, <code>&quot;MEMORYSTORE&quot;</code>).</li>
36
- <li><code>symbolName</code> – the backend symbol name.</li>
37
- <li><code>valueType</code> – <code>&quot;boolean&quot;</code>, <code>&quot;number&quot;</code>, <code>&quot;string&quot;</code>, or <code>&quot;json&quot;</code>.</li>
38
- <li><code>initialValue</code> (optional) – value before first update.</li>
39
- <li><code>options</code> (optional) – advanced subscription options.</li>
40
- </ul>
41
- <p>By convention, the TypeScript file is located in the same directory as App.tsx and named AutoCoreTags.ts. The exported object is named acTagSpec.</p>
42
- <p>Example:</p>
43
- <pre><code class="ts"><span class="hl-2">import</span><span class="hl-1"> </span><span class="hl-2">type</span><span class="hl-1"> { </span><span class="hl-0">TagConfig</span><span class="hl-1"> } </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">&quot;@adcops/autocore-react/core/AutoCoreTagTypes&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-2">export</span><span class="hl-1"> </span><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">acTagSpec</span><span class="hl-1"> = [</span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;isControlPowerOk&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;GIO.xbControlPowerOk&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;boolean&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;positionScalar&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MEMORYSTORE&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;position_scalar&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;number&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;initialValue&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">1.0</span><span class="hl-1"> },</span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;isAutoCycleRunning&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gm.bAutoCycleRunning&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;boolean&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;isAutoCycleRunning&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gm.bAutoCycleRunning&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;boolean&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;shuttlePosition&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gio.axisShuttle.fPosition&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;number&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;pressLoad&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gm.fPressLoad&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;number&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;pressPosition&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gm.fPressPosition&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;number&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;pressPeakLoad&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gm.fPressPeakLoad&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;number&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;isReadyForCycle&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gm.bReadyForCycle&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;boolean&quot;</span><span class="hl-1"> }, </span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;reqStartAuto&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gsig.bSigStartAuto&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;boolean&quot;</span><span class="hl-1"> }, </span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;useSecondaryLoadChannel&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gnv.bEnableSecondaryLoadInput&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;boolean&quot;</span><span class="hl-1"> }, </span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;isLoadCellOverrange&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gio.xstLoadInputStatus.IsOverrange&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;boolean&quot;</span><span class="hl-1"> }, </span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;isLoadCellUnderrange&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gio.xstLoadInputStatus.IsUnderrange&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;boolean&quot;</span><span class="hl-1"> }, </span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;isMotorsOn&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gm.bAllMotorsOn&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;boolean&quot;</span><span class="hl-1"> }, </span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;isAxisErrorPresent&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gm.bAxisErrorPresent&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;boolean&quot;</span><span class="hl-1"> }, </span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;isAllAxesHomed&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gm.bAllAxesHomed&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;boolean&quot;</span><span class="hl-1"> }, </span><br/><span class="hl-1"> { </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;isReadyForOperation&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;MAIN.ctx.gm.bReadyForOperation&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-3">&quot;boolean&quot;</span><span class="hl-1"> }</span><br/><span class="hl-1">] </span><span class="hl-2">as</span><span class="hl-1"> </span><span class="hl-7">const</span><span class="hl-1"> </span><span class="hl-2">satisfies</span><span class="hl-1"> </span><span class="hl-4">readonly</span><span class="hl-1"> </span><span class="hl-7">TagConfig</span><span class="hl-1">[];</span><br/><br/><span class="hl-2">export</span><span class="hl-1"> </span><span class="hl-2">default</span><span class="hl-1"> </span><span class="hl-0">acTagSpec</span><span class="hl-1">;</span>
44
- </code><button type="button">Copy</button></pre>
45
-
46
- <h3 id="autocorets" class="tsd-anchor-link">AutoCore.ts<a href="#autocorets" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Once the tags are created, we create a simple TypeScript file to make and provide the hooks throughout the application. By producing typed hooks, Intellisense is able to provide support for tag names and value types.</p>
47
- <p>Create AutoCore.ts in the same directory as App.tsx and AutoCoreTags.ts. The template below should work for any project.</p>
48
- <pre><code class="ts"><span class="hl-9">/**</span><br/><span class="hl-9"> * </span><span class="hl-4">@module</span><span class="hl-9"> </span><span class="hl-7">src/AutoCore</span><br/><span class="hl-9"> * </span><span class="hl-4">@preferred</span><br/><span class="hl-9"> *</span><br/><span class="hl-9"> * Strongly-typed hooks for AutoCore tags.</span><br/><span class="hl-9"> * Could be automatically generated by autocore-react plugin.</span><br/><span class="hl-9"> *</span><br/><span class="hl-9"> * This module binds your app’s tag spec (from `tags.json` or `tags-spec.ts`) to the</span><br/><span class="hl-9"> * global `AutoCoreTagContext`, producing **typed hooks** that provide perfect</span><br/><span class="hl-9"> * IntelliSense for tag names and value types.</span><br/><span class="hl-9"> *</span><br/><span class="hl-9"> * </span><span class="hl-4">@remarks</span><br/><span class="hl-9"> * - Pair this with the runtime provider in your app root:</span><br/><span class="hl-9"> * `AutoCoreTagProvider` wraps `&lt;App/&gt;` and receives the same `spec`.</span><br/><span class="hl-9"> * - These hooks expose:</span><br/><span class="hl-9"> * - `useAutoCoreTag(tagName)` → `{ value, write, tap, isLoading, ... }`</span><br/><span class="hl-9"> * - `useAutoCoreTags(tagNames[])` → `{ values, set, isLoading }`</span><br/><span class="hl-9"> * - `useAutoCoreSelect(selector)` → `{ selected, isLoading }`</span><br/><span class="hl-9"> * - Keep `tags.json` (or `tags.ts`) as the single source of truth. If using JSON,</span><br/><span class="hl-9"> * validate and narrow it before export so `valueType` is the literal union</span><br/><span class="hl-9"> * `&quot;boolean&quot; | &quot;number&quot; | &quot;string&quot; | &quot;json&quot;`.</span><br/><span class="hl-9"> *</span><br/><span class="hl-9"> * </span><span class="hl-4">@example</span><br/><span class="hl-9"> * ```ts</span><br/><span class="hl-9"> * // src/AutoCore.ts</span><br/><span class="hl-9"> * import { AutoCoreTagContext } from &quot;@adcops/autocore-react/core/AutoCoreTagContext&quot;;</span><br/><span class="hl-9"> * import { makeAutoCoreTagHooks } from &quot;@adcops/autocore-react/hooks/useAutoCoreTag&quot;;</span><br/><span class="hl-9"> * import { spec } from &quot;./tags-spec&quot;; // wraps ./tags.json and exports a narrowed, validated spec</span><br/><span class="hl-9"> *</span><br/><span class="hl-9"> * export const AutoCoreHooks = makeAutoCoreTagHooks(AutoCoreTagContext, spec);</span><br/><span class="hl-9"> * ```</span><br/><span class="hl-9"> *</span><br/><span class="hl-9"> * </span><span class="hl-4">@example</span><br/><span class="hl-9"> * ```tsx</span><br/><span class="hl-9"> * // App.tsx (runtime provider)</span><br/><span class="hl-9"> * import rawSpec from &quot;./tags.json&quot; assert { type: &quot;json&quot; };</span><br/><span class="hl-9"> * import { AutoCoreTagProvider } from &quot;@adcops/autocore-react/core/AutoCoreTagContext&quot;;</span><br/><span class="hl-9"> *</span><br/><span class="hl-9"> * &lt;EventEmitterProvider&gt;</span><br/><span class="hl-9"> * &lt;AutoCoreTagProvider tags={rawSpec} eagerRead&gt;</span><br/><span class="hl-9"> * &lt;App/&gt;</span><br/><span class="hl-9"> * &lt;/AutoCoreTagProvider&gt;</span><br/><span class="hl-9"> * &lt;/EventEmitterProvider&gt;</span><br/><span class="hl-9"> * ```</span><br/><span class="hl-9"> *</span><br/><span class="hl-9"> * </span><span class="hl-4">@example</span><br/><span class="hl-9"> * ```tsx</span><br/><span class="hl-9"> * // Any component</span><br/><span class="hl-9"> * import { AutoCoreHooks } from &quot;./AutoCore&quot;;</span><br/><span class="hl-9"> *</span><br/><span class="hl-9"> * const { value: solForward, tap } = AutoCoreHooks.useAutoCoreTag(&quot;gio.solForward&quot;);</span><br/><span class="hl-9"> * const { value: preset, write } = AutoCoreHooks.useAutoCoreTag(&quot;gm.ton.tPreset&quot;);</span><br/><span class="hl-9"> *</span><br/><span class="hl-9"> * const { values } = AutoCoreHooks.useAutoCoreTags([&quot;isDoorClosed&quot;, &quot;isControlPowerOk&quot;]);</span><br/><span class="hl-9"> *</span><br/><span class="hl-9"> * const { selected: ready } = AutoCoreHooks.useAutoCoreSelect(v =&gt;</span><br/><span class="hl-9"> * !!v[&quot;isDoorClosed&quot;] &amp;&amp; !!v[&quot;isControlPowerOk&quot;]</span><br/><span class="hl-9"> * );</span><br/><span class="hl-9"> * ```</span><br/><span class="hl-9"> *</span><br/><span class="hl-9"> * </span><span class="hl-4">@see</span><span class="hl-9"> @adcops/autocore-react/core/AutoCoreTagContext.AutoCoreTagProvider | AutoCoreTagProvider</span><br/><span class="hl-9"> * </span><span class="hl-4">@see</span><span class="hl-9"> @adcops/autocore-react/hooks/useAutoCoreTag.makeAutoCoreTagHooks | makeAutoCoreTagHooks</span><br/><span class="hl-9"> */</span><br/><br/><span class="hl-2">import</span><span class="hl-1"> {</span><span class="hl-0">acTagSpec</span><span class="hl-1">} </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">&quot;./AutoCoreTags&quot;</span><span class="hl-1">;</span><br/><span class="hl-2">import</span><span class="hl-1"> { </span><span class="hl-0">AutoCoreTagContext</span><span class="hl-1"> } </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">&quot;@adcops/autocore-react/core/AutoCoreTagContext&quot;</span><span class="hl-1">;</span><br/><span class="hl-2">import</span><span class="hl-1"> { </span><span class="hl-0">makeAutoCoreTagHooks</span><span class="hl-1"> } </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">&quot;@adcops/autocore-react/hooks/useAutoCoreTag&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-2">export</span><span class="hl-1"> </span><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">AutoCoreHooks</span><span class="hl-1"> = </span><span class="hl-8">makeAutoCoreTagHooks</span><span class="hl-1">(</span><span class="hl-0">AutoCoreTagContext</span><span class="hl-1">, </span><span class="hl-0">acTagSpec</span><span class="hl-1">);</span>
49
- </code><button type="button">Copy</button></pre>
50
-
51
- <h1 id="providing-context-to-the-app" class="tsd-anchor-link">Providing Context to the App<a href="#providing-context-to-the-app" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1><p>With our autocore tags and hooks defined, we now wrap our app in the provided context. Make sure to wrap the application in both the EventEmitterProvider and AutoCoreTagProvider. The example shown also uses primereact.</p>
52
- <pre><code class="ts"><span class="hl-2">import</span><span class="hl-1"> { </span><span class="hl-0">PrimeReactProvider</span><span class="hl-1">} </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">&#39;primereact/api&#39;</span><span class="hl-1">;</span><br/><span class="hl-2">import</span><span class="hl-1"> { </span><span class="hl-0">EventEmitterProvider</span><span class="hl-1"> } </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">&quot;@adcops/autocore-react/core/EventEmitterContext.js&quot;</span><span class="hl-1">;</span><br/><span class="hl-2">import</span><span class="hl-1"> {</span><span class="hl-0">AutoCoreTagProvider</span><span class="hl-1">} </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">&quot;@adcops/autocore-react/core/AutoCoreTagContext&quot;</span><span class="hl-1">;</span><br/><span class="hl-2">import</span><span class="hl-1"> {</span><span class="hl-0">acTagSpec</span><span class="hl-1">} </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">&quot;./AutoCoreTags&quot;</span><span class="hl-1">;</span><br/><br/><br/><span class="hl-9">// 3. Developer panel</span><br/><span class="hl-2">export</span><span class="hl-1"> </span><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">AutoCorePanel</span><span class="hl-1"> = </span><span class="hl-8">makeAutoCoreDevPanel</span><span class="hl-1">(</span><span class="hl-0">AutoCore</span><span class="hl-1">.</span><span class="hl-0">Context</span><span class="hl-1">, </span><span class="hl-0">spec</span><span class="hl-1">);</span>
53
- </code><button type="button">Copy</button></pre>
54
-
55
- <h1 id="providing-context-to-your-app" class="tsd-anchor-link">Providing Context to Your App<a href="#providing-context-to-your-app" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1><p>Wrap your application with the provider:</p>
56
- <pre><code class="tsx"><span class="hl-4">function</span><span class="hl-1"> </span><span class="hl-8">App</span><span class="hl-1">() {</span><br/><span class="hl-1"> </span><span class="hl-2">return</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-7">EventEmitterProvider</span><span class="hl-10">&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-7">PrimeReactProvider</span><span class="hl-10">&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-7">AutoCoreTagProvider</span><span class="hl-1"> </span><span class="hl-13">tags</span><span class="hl-1">=</span><span class="hl-4">{</span><span class="hl-0">acTagSpec</span><span class="hl-4">}</span><span class="hl-1"> </span><span class="hl-13">eagerRead</span><span class="hl-10">&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-11">div</span><span class="hl-1"> </span><span class="hl-13">className</span><span class="hl-1">=</span><span class="hl-3">&quot;app-wrapper&quot;</span><span class="hl-10">&gt;</span><br/><br/><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-11">main</span><span class="hl-1"> </span><span class="hl-13">className</span><span class="hl-1">=</span><span class="hl-3">&quot;main-wrapper&quot;</span><span class="hl-10">&gt;</span><br/><br/><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-11">section</span><span class="hl-1"> </span><span class="hl-13">className</span><span class="hl-1">=</span><span class="hl-3">&quot;content-wrapper&quot;</span><span class="hl-10">&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-7">ContentView</span><span class="hl-1"> </span><span class="hl-10">/&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;/</span><span class="hl-11">section</span><span class="hl-10">&gt;</span><br/><br/><span class="hl-1"> </span><span class="hl-10">&lt;/</span><span class="hl-11">main</span><span class="hl-10">&gt;</span><br/><br/><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-11">footer</span><span class="hl-1"> </span><span class="hl-13">className</span><span class="hl-1">=</span><span class="hl-3">&quot;footer-wrapper&quot;</span><span class="hl-10">&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-7">FooterView</span><span class="hl-1"> </span><span class="hl-10">/&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;/</span><span class="hl-11">footer</span><span class="hl-10">&gt;</span><br/><br/><span class="hl-1"> </span><span class="hl-10">&lt;/</span><span class="hl-11">div</span><span class="hl-10">&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;/</span><span class="hl-7">AutoCoreTagProvider</span><span class="hl-10">&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;/</span><span class="hl-7">PrimeReactProvider</span><span class="hl-10">&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;/</span><span class="hl-7">EventEmitterProvider</span><span class="hl-10">&gt;</span><span class="hl-1"> </span><br/><span class="hl-1"> ) </span><br/><span class="hl-1">}</span>
57
- </code><button type="button">Copy</button></pre>
58
-
59
- <ul>
60
- <li><code>eagerRead</code> (default: true) triggers initial reads so values are populated immediately.</li>
61
- </ul>
62
- <h1 id="using-the-hooks" class="tsd-anchor-link">Using the Hooks<a href="#using-the-hooks" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1><ol>
63
- <li>useAutoCoreTag(tagName)</li>
64
- </ol>
65
- <p>Access a single tag. Provides:</p>
66
- <ul>
67
- <li><code>value</code> – current value.</li>
68
- <li><code>setValue</code> / write – optimistic setter (updates context + backend).</li>
69
- <li><code>writeRaw</code> – direct backend write, no optimistic update.</li>
70
- <li><code>tap</code> – momentary true → false action (for booleans).</li>
71
- <li><code>isLoading</code> – whether the initial read is pending.</li>
72
- </ul>
73
- <ol start="2">
74
- <li>useAutoCoreTags([tagNames])</li>
75
- </ol>
76
- <p>Access multiple tags at once. Provides:</p>
77
- <ul>
78
- <li><code>values</code> – object with each tag’s current value.</li>
79
- <li><code>set(tagName, value)</code> – update any tag in the set.</li>
80
- <li><code>isLoading</code> – whether the initial read is pending.</li>
81
- </ul>
82
- <ol start="3">
83
- <li>useAutoCoreSelect(selector)</li>
84
- </ol>
85
- <p>Derive a computed value from the full tag state.</p>
86
- <pre><code class="tsx"><span class="hl-4">const</span><span class="hl-1"> { </span><span class="hl-0">selected</span><span class="hl-1">: </span><span class="hl-5">ready</span><span class="hl-1"> } = </span><span class="hl-0">AutoCoreHooks</span><span class="hl-1">.</span><span class="hl-8">useAutoCoreSelect</span><span class="hl-1">(</span><span class="hl-0">v</span><span class="hl-1"> </span><span class="hl-4">=&gt;</span><br/><span class="hl-1"> !!</span><span class="hl-0">v</span><span class="hl-1">[</span><span class="hl-3">&quot;gio.solForward&quot;</span><span class="hl-1">] &amp;&amp; (</span><span class="hl-0">v</span><span class="hl-1">[</span><span class="hl-3">&quot;gm.ton.tPreset&quot;</span><span class="hl-1">] ?? </span><span class="hl-6">0</span><span class="hl-1">) &gt; </span><span class="hl-6">0</span><br/><span class="hl-1">);</span><br/><br/><span class="hl-2">return</span><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-7">Button</span><span class="hl-1"> </span><span class="hl-13">disabled</span><span class="hl-1">=</span><span class="hl-4">{</span><span class="hl-1">!</span><span class="hl-0">ready</span><span class="hl-4">}</span><span class="hl-10">&gt;</span><span class="hl-1">Start</span><span class="hl-10">&lt;/</span><span class="hl-7">Button</span><span class="hl-10">&gt;</span><span class="hl-1">;</span>
87
- </code><button type="button">Copy</button></pre>
88
-
89
- <ul>
90
- <li><code>ready</code> is recomputed any time gio.solForward or gm.ton.tPreset changes.</li>
91
- <li>Great for business logic conditions.</li>
92
- </ul>
93
- <h1 id="automatic-scaling" class="tsd-anchor-link">Automatic Scaling<a href="#automatic-scaling" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1><p>AutoCoreTagContext supports automatic unit conversion through named scales with server synchronization. Scale factors are automatically kept in sync with autocore-server values, enabling user-configurable units that persist across sessions.</p>
94
- <h3 id="how-scaling-works" class="tsd-anchor-link">How Scaling Works<a href="#how-scaling-works" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul>
95
- <li>Incoming values: Server values are multiplied by the scale factor before being stored</li>
96
- <li>Outgoing values: Display values are divided by the scale factor before being sent to server</li>
97
- <li>Components see scaled values: All hook operations work with display-friendly values</li>
98
- <li>Automatic sync: Scale factors with serverTag properties are automatically synchronized with their server values.</li>
99
- <li>Real-time updates: Scale changes take effect immediately across the application.</li>
100
- <li>Consistent display: All components automatically show the same units.</li>
101
- <li>Dual subscriptions: The system maintains separate subscriptions for data tags and scale tags.</li>
102
- <li>No manual scaling needed: Eliminates the need for <code>useScaledValue</code> hooks
103
- <ul>
104
- <li>Prevents value flicker. Values are scaled before being displayed.</li>
105
- <li>Type-safe. Scale names are validated at compile time.</li>
106
- </ul>
107
- </li>
108
- </ul>
109
- <p>Server-Driven Scales are preferred.</p>
110
- <ul>
111
- <li>Scale factors can come from autocore-server tags for user-configurable units.</li>
112
- <li>The autocore-server GNV domain will store changes in non-volatile memory.</li>
113
- <li>Automatic synchronization: Multiple clients stay in sync</li>
114
- </ul>
115
- <h2 id="defining-server-driven-scales" class="tsd-anchor-link">Defining Server-Driven Scales<a href="#defining-server-driven-scales" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Create AutoCoreScales.ts with server tag references:</p>
116
- <pre><code class="tsx"><span class="hl-2">import</span><span class="hl-1"> { </span><span class="hl-0">ScaleConfig</span><span class="hl-1"> } </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">&quot;@adcops/autocore-react/core/AutoCoreTagTypes&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-2">export</span><span class="hl-1"> </span><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">acScales</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-0">position:</span><span class="hl-1"> { </span><br/><span class="hl-1"> </span><span class="hl-0">name:</span><span class="hl-1"> </span><span class="hl-3">&quot;position&quot;</span><span class="hl-1">, </span><br/><span class="hl-1"> </span><span class="hl-0">scale:</span><span class="hl-1"> </span><span class="hl-6">1.0</span><span class="hl-1">, </span><br/><span class="hl-1"> </span><span class="hl-0">label:</span><span class="hl-1"> </span><span class="hl-3">&quot;mm&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-0">serverTag:</span><span class="hl-1"> { </span><span class="hl-0">domain:</span><span class="hl-1"> </span><span class="hl-3">&quot;MEMORYSTORE&quot;</span><span class="hl-1">, </span><span class="hl-0">symbolName:</span><span class="hl-1"> </span><span class="hl-3">&quot;position_scalar&quot;</span><span class="hl-1"> }</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-0">load:</span><span class="hl-1"> { </span><br/><span class="hl-1"> </span><span class="hl-0">name:</span><span class="hl-1"> </span><span class="hl-3">&quot;load&quot;</span><span class="hl-1">, </span><br/><span class="hl-1"> </span><span class="hl-0">scale:</span><span class="hl-1"> </span><span class="hl-6">1.0</span><span class="hl-1">, </span><br/><span class="hl-1"> </span><span class="hl-0">label:</span><span class="hl-1"> </span><span class="hl-3">&quot;N&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-0">serverTag:</span><span class="hl-1"> { </span><span class="hl-0">domain:</span><span class="hl-1"> </span><span class="hl-3">&quot;MEMORYSTORE&quot;</span><span class="hl-1">, </span><span class="hl-0">symbolName:</span><span class="hl-1"> </span><span class="hl-3">&quot;load_scalar&quot;</span><span class="hl-1"> }</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-0">temperature:</span><span class="hl-1"> { </span><br/><span class="hl-1"> </span><span class="hl-0">name:</span><span class="hl-1"> </span><span class="hl-3">&quot;temperature&quot;</span><span class="hl-1">, </span><br/><span class="hl-1"> </span><span class="hl-0">scale:</span><span class="hl-1"> </span><span class="hl-6">1.0</span><span class="hl-1">, </span><br/><span class="hl-1"> </span><span class="hl-0">label:</span><span class="hl-1"> </span><span class="hl-3">&quot;°C&quot;</span><br/><span class="hl-1"> </span><span class="hl-9">// No serverTag - static scale only</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">} </span><span class="hl-2">as</span><span class="hl-1"> </span><span class="hl-7">const</span><span class="hl-1"> </span><span class="hl-2">satisfies</span><span class="hl-1"> </span><span class="hl-7">Record</span><span class="hl-1">&lt;</span><span class="hl-7">string</span><span class="hl-1">, </span><span class="hl-7">ScaleConfig</span><span class="hl-1">&gt;;</span>
117
- </code><button type="button">Copy</button></pre>
118
-
119
- <p>Then reference scales in the tag definitions:</p>
120
- <pre><code class="tsx"><span class="hl-9">// In AutoCoreTags.ts - add scale property to numeric tags</span><br/><span class="hl-1">{ </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;pressPosition&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;MAIN.ctx.gm.fPressPosition&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;number&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;scale&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;position&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1">{ </span><span class="hl-3">&quot;tagName&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;pressLoad&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;domain&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;ADS&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;symbolName&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;MAIN.ctx.gm.fPressLoad&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;valueType&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;number&quot;</span><span class="hl-1">, </span><span class="hl-3">&quot;scale&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;load&quot;</span><span class="hl-1"> }</span>
121
- </code><button type="button">Copy</button></pre>
122
-
123
- <h2 id="provider-configuration" class="tsd-anchor-link">Provider Configuration<a href="#provider-configuration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Pass scales to the provider:</p>
124
- <pre><code class="tsx"><span class="hl-2">import</span><span class="hl-1"> { </span><span class="hl-0">acScales</span><span class="hl-1"> } </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">&quot;./AutoCoreScales&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-10">&lt;</span><span class="hl-7">AutoCoreTagProvider</span><span class="hl-1"> </span><span class="hl-13">tags</span><span class="hl-1">=</span><span class="hl-4">{</span><span class="hl-0">acTagSpec</span><span class="hl-4">}</span><span class="hl-1"> </span><span class="hl-13">scales</span><span class="hl-1">=</span><span class="hl-4">{</span><span class="hl-0">acScales</span><span class="hl-4">}</span><span class="hl-1"> </span><span class="hl-13">eagerRead</span><span class="hl-10">&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-7">App</span><span class="hl-10">/&gt;</span><br/><span class="hl-10">&lt;/</span><span class="hl-7">AutoCoreTagProvider</span><span class="hl-10">&gt;</span>
125
- </code><button type="button">Copy</button></pre>
126
-
127
- <h2 id="updating-scale-factors" class="tsd-anchor-link">Updating Scale Factors<a href="#updating-scale-factors" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Use the updateScale function to change units at runtime:</p>
128
- <pre><code class="tsx"><span class="hl-2">import</span><span class="hl-1"> { </span><span class="hl-0">useContext</span><span class="hl-1"> } </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">&#39;react&#39;</span><span class="hl-1">;</span><br/><span class="hl-2">import</span><span class="hl-1"> { </span><span class="hl-0">AutoCoreTagContext</span><span class="hl-1"> } </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">&quot;@adcops/autocore-react/core/AutoCoreTagContext&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-8">ScaleControls</span><span class="hl-1">: </span><span class="hl-7">React</span><span class="hl-1">.</span><span class="hl-7">FC</span><span class="hl-1"> = () </span><span class="hl-4">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">const</span><span class="hl-1"> { </span><span class="hl-5">updateScale</span><span class="hl-1"> } = </span><span class="hl-8">useContext</span><span class="hl-1">(</span><span class="hl-0">AutoCoreTagContext</span><span class="hl-1">);</span><br/><br/><span class="hl-1"> </span><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-8">switchToInches</span><span class="hl-1"> = </span><span class="hl-4">async</span><span class="hl-1"> () </span><span class="hl-4">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-2">await</span><span class="hl-1"> </span><span class="hl-8">updateScale</span><span class="hl-1">(</span><span class="hl-3">&quot;position&quot;</span><span class="hl-1">, </span><span class="hl-6">1</span><span class="hl-1">/</span><span class="hl-6">25.4</span><span class="hl-1">); </span><span class="hl-9">// Converts mm to inches</span><br/><span class="hl-1"> };</span><br/><br/><span class="hl-1"> </span><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-8">switchToPounds</span><span class="hl-1"> = </span><span class="hl-4">async</span><span class="hl-1"> () </span><span class="hl-4">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-2">await</span><span class="hl-1"> </span><span class="hl-8">updateScale</span><span class="hl-1">(</span><span class="hl-3">&quot;load&quot;</span><span class="hl-1">, </span><span class="hl-6">0.224809</span><span class="hl-1">); </span><span class="hl-9">// Converts Newtons to pounds</span><br/><span class="hl-1"> };</span><br/><br/><span class="hl-1"> </span><span class="hl-2">return</span><span class="hl-1"> (</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-11">div</span><span class="hl-10">&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-11">button</span><span class="hl-1"> </span><span class="hl-13">onClick</span><span class="hl-1">=</span><span class="hl-4">{</span><span class="hl-0">switchToInches</span><span class="hl-4">}</span><span class="hl-10">&gt;</span><span class="hl-1">Switch to Inches</span><span class="hl-10">&lt;/</span><span class="hl-11">button</span><span class="hl-10">&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;</span><span class="hl-11">button</span><span class="hl-1"> </span><span class="hl-13">onClick</span><span class="hl-1">=</span><span class="hl-4">{</span><span class="hl-0">switchToPounds</span><span class="hl-4">}</span><span class="hl-10">&gt;</span><span class="hl-1">Switch to Pounds</span><span class="hl-10">&lt;/</span><span class="hl-11">button</span><span class="hl-10">&gt;</span><br/><span class="hl-1"> </span><span class="hl-10">&lt;/</span><span class="hl-11">div</span><span class="hl-10">&gt;</span><br/><span class="hl-1"> );</span><br/><span class="hl-1">};</span>
129
- </code><button type="button">Copy</button></pre>
130
-
131
- <h1 id="devpanel" class="tsd-anchor-link">DevPanel<a href="#devpanel" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1><p>For debugging, include the Dev Panel in your app:</p>
132
- <pre><code class="tsx"><span class="hl-10">&lt;</span><span class="hl-7">AutoCorePanel</span><span class="hl-1"> </span><span class="hl-13">className</span><span class="hl-1">=</span><span class="hl-3">&quot;fixed bottom-4 right-4 bg-black/60 text-white&quot;</span><span class="hl-1"> </span><span class="hl-10">/&gt;</span>
133
- </code><button type="button">Copy</button></pre>
134
-
135
- <p>It shows:</p>
136
- <ul>
137
- <li>Each tag’s name, type, current value.</li>
138
- <li>Editable input fields for live writes/taps.</li>
139
- <li>Loading/live status indicator.</li>
140
- </ul>
141
- <h1 id="best-practices" class="tsd-anchor-link">Best Practices<a href="#best-practices" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1><ul>
142
- <li>Always define your tags in one spec to keep types consistent across your app.</li>
143
- <li>Prefer write (optimistic) for user-driven updates; use writeRaw only if you need backend confirmation before updating UI.</li>
144
- <li>Use tap only for boolean momentary actions (reset, trigger, etc.).</li>
145
- <li>Use useAutoCoreSelect to express high-level conditions (isSafeToStart, readyToCycle) instead of scattering logic through components.</li>
146
- <li>Keep the Dev Panel available in development to quickly test and validate your tag interactions.</li>
147
- </ul>
148
- </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#autocoretagcontext-manual"><span>Auto<wbr/>Core<wbr/>Tag<wbr/>Context <wbr/>Manual</span></a><ul><li><a href="#overview"><span>Overview</span></a></li><li><a href="#summary"><span>Summary</span></a></li><li><a href="#defining-your-tags-and-autocorehooks"><span>Defining <wbr/>Your <wbr/>Tags and <wbr/>Auto<wbr/>Core<wbr/>Hooks</span></a></li><li><ul><li><a href="#autocoretagsts"><span>Auto<wbr/>Core<wbr/>Tags.ts</span></a></li><li><a href="#autocorets"><span>Auto<wbr/>Core.ts</span></a></li></ul></li></ul><a href="#providing-context-to-the-app"><span>Providing <wbr/>Context to the <wbr/>App</span></a><a href="#providing-context-to-your-app"><span>Providing <wbr/>Context to <wbr/>Your <wbr/>App</span></a><a href="#using-the-hooks"><span>Using the <wbr/>Hooks</span></a><a href="#automatic-scaling"><span>Automatic <wbr/>Scaling</span></a><ul><li><ul><li><a href="#how-scaling-works"><span>How <wbr/>Scaling <wbr/>Works</span></a></li></ul></li><li><a href="#defining-server-driven-scales"><span>Defining <wbr/>Server-<wbr/>Driven <wbr/>Scales</span></a></li><li><a href="#provider-configuration"><span>Provider <wbr/>Configuration</span></a></li><li><a href="#updating-scale-factors"><span>Updating <wbr/>Scale <wbr/>Factors</span></a></li></ul><a href="#devpanel"><span>Dev<wbr/>Panel</span></a><a href="#best-practices"><span>Best <wbr/>Practices</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">autocore-react - v3.1.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -1,5 +0,0 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>JogDistanceAction | autocore-react - v3.1.0</title><meta name="description" content="Documentation for autocore-react"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">autocore-react - v3.1.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/components_JogPanel.html">components/JogPanel</a></li><li><a href="" aria-current="page">JogDistanceAction</a></li></ul><h1>Enumeration JogDistanceAction</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Enumerates the selected jog distance.</p>
2
- </div></section><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:62</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="#long" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Long</span></a>
3
- <a href="#medium" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Medium</span></a>
4
- <a href="#short" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Short</span></a>
5
- </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Enumeration Members"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Enumeration Members</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="long"><span>Long</span><a href="#long" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">Long</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">32</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:65</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="medium"><span>Medium</span><a href="#medium" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">Medium</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">16</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:64</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="short"><span>Short</span><a href="#short" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">Short</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">0</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:63</li></ul></aside></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Enumeration Members"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Enumeration Members</summary><div><a href="#long"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Long</span></a><a href="#medium"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Medium</span></a><a href="#short"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Short</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">autocore-react - v3.1.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -1,18 +0,0 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>JogPanelAction | autocore-react - v3.1.0</title><meta name="description" content="Documentation for autocore-react"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">autocore-react - v3.1.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/components_JogPanel.html">components/JogPanel</a></li><li><a href="" aria-current="page">JogPanelAction</a></li></ul><h1>Enumeration JogPanelAction</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Enumerates the source button or action when an event occurs.</p>
2
- </div></section><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:26</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="#anegative" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>a<wbr/>Negative</span></a>
3
- <a href="#apositive" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>a<wbr/>Positive</span></a>
4
- <a href="#bnegative" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>b<wbr/>Negative</span></a>
5
- <a href="#bpositive" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>b<wbr/>Positive</span></a>
6
- <a href="#cnegative" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>c<wbr/>Negative</span></a>
7
- <a href="#cpositive" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>c<wbr/>Positive</span></a>
8
- <a href="#invalid" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Invalid</span></a>
9
- <a href="#stop" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Stop</span></a>
10
- <a href="#xnegative" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>x<wbr/>Negative</span></a>
11
- <a href="#xpositive" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>x<wbr/>Positive</span></a>
12
- <a href="#ynegative" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>y<wbr/>Negative</span></a>
13
- <a href="#ypositive" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>y<wbr/>Positive</span></a>
14
- <a href="#znegative" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>z<wbr/>Negative</span></a>
15
- <a href="#zpositive" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>z<wbr/>Positive</span></a>
16
- </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Enumeration Members"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Enumeration Members</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="anegative"><span>a<wbr/>Negative</span><a href="#anegative" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">aNegative</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">8</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:44</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="apositive"><span>a<wbr/>Positive</span><a href="#apositive" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">aPositive</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">7</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:42</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="bnegative"><span>b<wbr/>Negative</span><a href="#bnegative" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">bNegative</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">16</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:48</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="bpositive"><span>b<wbr/>Positive</span><a href="#bpositive" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">bPositive</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">9</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:46</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="cnegative"><span>c<wbr/>Negative</span><a href="#cnegative" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">cNegative</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">18</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:52</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="cpositive"><span>c<wbr/>Positive</span><a href="#cpositive" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">cPositive</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">17</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:50</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="invalid"><span>Invalid</span><a href="#invalid" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">Invalid</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">0</span></div><div class="tsd-comment tsd-typography"><p>Invalid - Ignore this button</p>
17
- </div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:28</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="stop"><span>Stop</span><a href="#stop" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">Stop</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">255</span></div><div class="tsd-comment tsd-typography"><p>Stop, clear or reset</p>
18
- </div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:55</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="xnegative"><span>x<wbr/>Negative</span><a href="#xnegative" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">xNegative</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">2</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:32</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="xpositive"><span>x<wbr/>Positive</span><a href="#xpositive" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">xPositive</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">1</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:30</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="ynegative"><span>y<wbr/>Negative</span><a href="#ynegative" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">yNegative</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">4</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:36</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="ypositive"><span>y<wbr/>Positive</span><a href="#ypositive" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">yPositive</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">3</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:34</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="znegative"><span>z<wbr/>Negative</span><a href="#znegative" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">zNegative</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">6</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:40</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="zpositive"><span>z<wbr/>Positive</span><a href="#zpositive" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">zPositive</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">5</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:38</li></ul></aside></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Enumeration Members"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Enumeration Members</summary><div><a href="#anegative"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>a<wbr/>Negative</span></a><a href="#apositive"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>a<wbr/>Positive</span></a><a href="#bnegative"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>b<wbr/>Negative</span></a><a href="#bpositive"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>b<wbr/>Positive</span></a><a href="#cnegative"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>c<wbr/>Negative</span></a><a href="#cpositive"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>c<wbr/>Positive</span></a><a href="#invalid"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Invalid</span></a><a href="#stop"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Stop</span></a><a href="#xnegative"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>x<wbr/>Negative</span></a><a href="#xpositive"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>x<wbr/>Positive</span></a><a href="#ynegative"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>y<wbr/>Negative</span></a><a href="#ypositive"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>y<wbr/>Positive</span></a><a href="#znegative"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>z<wbr/>Negative</span></a><a href="#zpositive"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>z<wbr/>Positive</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">autocore-react - v3.1.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -1,5 +0,0 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>JogSpeedAction | autocore-react - v3.1.0</title><meta name="description" content="Documentation for autocore-react"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">autocore-react - v3.1.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/components_JogPanel.html">components/JogPanel</a></li><li><a href="" aria-current="page">JogSpeedAction</a></li></ul><h1>Enumeration JogSpeedAction</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Enumerates the selected jog distance.</p>
2
- </div></section><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:71</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="#fast" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Fast</span></a>
3
- <a href="#medium" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Medium</span></a>
4
- <a href="#slow" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Slow</span></a>
5
- </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Enumeration Members"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Enumeration Members</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="fast"><span>Fast</span><a href="#fast" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">Fast</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">32</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:74</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="medium"><span>Medium</span><a href="#medium" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">Medium</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">16</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:73</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="slow"><span>Slow</span><a href="#slow" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">Slow</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">0</span></div><aside class="tsd-sources"><ul><li>Defined in src/components/JogPanel.tsx:72</li></ul></aside></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Enumeration Members"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Enumeration Members</summary><div><a href="#fast"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Fast</span></a><a href="#medium"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Medium</span></a><a href="#slow"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Slow</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">autocore-react - v3.1.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -1,6 +0,0 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ActionMode | autocore-react - v3.1.0</title><meta name="description" content="Documentation for autocore-react"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">autocore-react - v3.1.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/core_ActionMode.html">core/ActionMode</a></li><li><a href="" aria-current="page">ActionMode</a></li></ul><h1>Enumeration ActionMode</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Enum for different input modes of the IndicatorButton.</p>
2
- </div></section><aside class="tsd-sources"><ul><li>Defined in src/core/ActionMode.ts:15</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="#pressed" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Pressed</span></a>
3
- <a href="#released" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Released</span></a>
4
- <a href="#tap" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Tap</span></a>
5
- <a href="#toggle" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Toggle</span></a>
6
- </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Enumeration Members"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Enumeration Members</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="pressed"><span>Pressed</span><a href="#pressed" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">Pressed</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;Pressed&quot;</span></div><aside class="tsd-sources"><ul><li>Defined in src/core/ActionMode.ts:18</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="released"><span>Released</span><a href="#released" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">Released</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;Released&quot;</span></div><aside class="tsd-sources"><ul><li>Defined in src/core/ActionMode.ts:19</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="tap"><span>Tap</span><a href="#tap" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">Tap</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;Tap&quot;</span></div><aside class="tsd-sources"><ul><li>Defined in src/core/ActionMode.ts:16</li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="toggle"><span>Toggle</span><a href="#toggle" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">Toggle</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;Toggle&quot;</span></div><aside class="tsd-sources"><ul><li>Defined in src/core/ActionMode.ts:17</li></ul></aside></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Enumeration Members"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Enumeration Members</summary><div><a href="#pressed"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Pressed</span></a><a href="#released"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Released</span></a><a href="#tap"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Tap</span></a><a href="#toggle"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration Member"><use href="../assets/icons.svg#icon-16"></use></svg><span>Toggle</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">autocore-react - v3.1.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>