vim-web 0.3.44-dev.7 → 0.3.44-dev.70

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 (221) hide show
  1. package/README.md +2 -2
  2. package/dist/style.css +25 -9
  3. package/dist/types/core-viewers/index.d.ts +3 -0
  4. package/dist/types/core-viewers/{webgl/viewer/inputs/inputHandler.d.ts → shared/baseInputHandler.d.ts} +6 -6
  5. package/dist/types/core-viewers/shared/index.d.ts +9 -0
  6. package/dist/types/core-viewers/shared/inputHandler.d.ts +116 -0
  7. package/dist/types/core-viewers/shared/keyboardHandler.d.ts +96 -0
  8. package/dist/types/core-viewers/shared/mouseHandler.d.ts +26 -0
  9. package/dist/types/core-viewers/shared/raycaster.d.ts +13 -0
  10. package/dist/types/core-viewers/shared/selection.d.ts +105 -0
  11. package/dist/types/core-viewers/{webgl/viewer/inputs → shared}/touchHandler.d.ts +15 -18
  12. package/dist/types/core-viewers/shared/vim.d.ts +35 -0
  13. package/dist/types/core-viewers/ultra/{viewer/camera.d.ts → camera.d.ts} +14 -4
  14. package/dist/types/core-viewers/ultra/{viewer/colorManager.d.ts → colorManager.d.ts} +6 -6
  15. package/dist/types/core-viewers/ultra/{viewer/decoder.d.ts → decoder.d.ts} +0 -8
  16. package/dist/types/core-viewers/ultra/element3d.d.ts +15 -0
  17. package/dist/types/core-viewers/ultra/index.d.ts +28 -8
  18. package/dist/types/core-viewers/ultra/inputAdapter.d.ts +5 -0
  19. package/dist/types/core-viewers/ultra/nodeState.d.ts +113 -0
  20. package/dist/types/core-viewers/ultra/raycaster.d.ts +52 -0
  21. package/dist/types/core-viewers/ultra/{viewer/color.d.ts → remoteColor.d.ts} +3 -3
  22. package/dist/types/core-viewers/ultra/{viewer/renderer.d.ts → renderer.d.ts} +9 -3
  23. package/dist/types/core-viewers/ultra/{viewer/rpcClient.d.ts → rpcClient.d.ts} +27 -28
  24. package/dist/types/core-viewers/ultra/rpcMarshal.d.ts +62 -0
  25. package/dist/types/core-viewers/ultra/{viewer/rpcSafeClient.d.ts → rpcSafeClient.d.ts} +22 -23
  26. package/dist/types/core-viewers/ultra/{utils/math3d.d.ts → rpcTypes.d.ts} +22 -22
  27. package/dist/types/core-viewers/ultra/{viewer/sectionBox.d.ts → sectionBox.d.ts} +7 -2
  28. package/dist/types/core-viewers/ultra/selection.d.ts +4 -0
  29. package/dist/types/core-viewers/ultra/{viewer/socketClient.d.ts → socketClient.d.ts} +4 -11
  30. package/dist/types/core-viewers/ultra/{viewer/viewer.d.ts → viewer.d.ts} +16 -13
  31. package/dist/types/core-viewers/ultra/vim.d.ts +48 -0
  32. package/dist/types/core-viewers/webgl/index.d.ts +2 -21
  33. package/dist/types/core-viewers/webgl/loader/{colorAttributes.d.ts → colorAttribute.d.ts} +4 -4
  34. package/dist/types/core-viewers/webgl/loader/{object3D.d.ts → element3d.d.ts} +12 -9
  35. package/dist/types/core-viewers/webgl/loader/geometry.d.ts +76 -78
  36. package/dist/types/core-viewers/webgl/loader/index.d.ts +24 -0
  37. package/dist/types/core-viewers/webgl/loader/materials/index.d.ts +9 -0
  38. package/dist/types/core-viewers/webgl/loader/materials/{viewerMaterials.d.ts → materials.d.ts} +5 -5
  39. package/dist/types/core-viewers/webgl/loader/mesh.d.ts +7 -7
  40. package/dist/types/core-viewers/webgl/loader/progressive/insertableGeometry.d.ts +2 -2
  41. package/dist/types/core-viewers/webgl/loader/progressive/insertableMesh.d.ts +1 -1
  42. package/dist/types/core-viewers/webgl/loader/progressive/insertableSubmesh.d.ts +1 -1
  43. package/dist/types/core-viewers/webgl/loader/progressive/instancedMesh.d.ts +1 -1
  44. package/dist/types/core-viewers/webgl/loader/progressive/instancedSubmesh.d.ts +1 -1
  45. package/dist/types/core-viewers/webgl/loader/progressive/legacyMeshFactory.d.ts +2 -2
  46. package/dist/types/core-viewers/webgl/loader/progressive/subsetBuilder.d.ts +2 -2
  47. package/dist/types/core-viewers/webgl/loader/progressive/subsetRequest.d.ts +2 -2
  48. package/dist/types/core-viewers/webgl/loader/progressive/vimRequest.d.ts +3 -3
  49. package/dist/types/core-viewers/webgl/loader/scene.d.ts +11 -14
  50. package/dist/types/core-viewers/webgl/loader/vim.d.ts +15 -19
  51. package/dist/types/core-viewers/webgl/loader/vimSettings.d.ts +2 -2
  52. package/dist/types/core-viewers/webgl/loader/{objectAttributes.d.ts → webglAttribute.d.ts} +4 -4
  53. package/dist/types/core-viewers/webgl/viewer/camera/camera.d.ts +8 -113
  54. package/dist/types/core-viewers/webgl/viewer/camera/{ICamera.d.ts → cameraInterface.d.ts} +0 -4
  55. package/dist/types/core-viewers/webgl/viewer/camera/cameraMovement.d.ts +5 -5
  56. package/dist/types/core-viewers/webgl/viewer/camera/cameraMovementLerp.d.ts +2 -2
  57. package/dist/types/core-viewers/webgl/viewer/camera/cameraMovementSnap.d.ts +2 -2
  58. package/dist/types/core-viewers/webgl/viewer/camera/{orthographic.d.ts → cameraOrthographic.d.ts} +1 -1
  59. package/dist/types/core-viewers/webgl/viewer/camera/{perspective.d.ts → cameraPerspective.d.ts} +1 -1
  60. package/dist/types/core-viewers/webgl/viewer/camera/index.d.ts +7 -0
  61. package/dist/types/core-viewers/webgl/viewer/environment/environment.d.ts +5 -5
  62. package/dist/types/core-viewers/webgl/viewer/environment/index.d.ts +3 -0
  63. package/dist/types/core-viewers/webgl/viewer/environment/{cameraLight.d.ts → light.d.ts} +2 -2
  64. package/dist/types/core-viewers/webgl/viewer/environment/skybox.d.ts +3 -3
  65. package/dist/types/core-viewers/webgl/viewer/gizmos/axes/axesSettings.d.ts +3 -2
  66. package/dist/types/core-viewers/webgl/viewer/gizmos/axes/gizmoAxes.d.ts +1 -1
  67. package/dist/types/core-viewers/webgl/viewer/gizmos/axes/index.d.ts +3 -0
  68. package/dist/types/core-viewers/webgl/viewer/gizmos/gizmoOrbit.d.ts +2 -2
  69. package/dist/types/core-viewers/webgl/viewer/gizmos/gizmos.d.ts +0 -5
  70. package/dist/types/core-viewers/webgl/viewer/gizmos/index.d.ts +7 -0
  71. package/dist/types/core-viewers/webgl/viewer/gizmos/markers/gizmoMarker.d.ts +63 -15
  72. package/dist/types/core-viewers/webgl/viewer/gizmos/markers/gizmoMarkers.d.ts +30 -7
  73. package/dist/types/core-viewers/webgl/viewer/gizmos/markers/index.d.ts +2 -0
  74. package/dist/types/core-viewers/webgl/viewer/gizmos/measure/index.d.ts +3 -0
  75. package/dist/types/core-viewers/webgl/viewer/gizmos/measure/measure.d.ts +10 -16
  76. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/index.d.ts +7 -0
  77. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBox.d.ts +4 -5
  78. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxGizmo.d.ts +1 -1
  79. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxHandle.d.ts +6 -4
  80. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxHandles.d.ts +1 -1
  81. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxInputs.d.ts +3 -40
  82. package/dist/types/core-viewers/webgl/viewer/index.d.ts +10 -0
  83. package/dist/types/core-viewers/webgl/viewer/inputsAdapter.d.ts +3 -0
  84. package/dist/types/core-viewers/webgl/viewer/raycaster.d.ts +37 -57
  85. package/dist/types/core-viewers/webgl/viewer/rendering/index.d.ts +4 -0
  86. package/dist/types/core-viewers/webgl/viewer/rendering/mergePass.d.ts +2 -2
  87. package/dist/types/core-viewers/webgl/viewer/rendering/renderScene.d.ts +8 -8
  88. package/dist/types/core-viewers/webgl/viewer/rendering/renderer.d.ts +9 -6
  89. package/dist/types/core-viewers/webgl/viewer/rendering/renderingComposer.d.ts +2 -2
  90. package/dist/types/core-viewers/webgl/viewer/rendering/renderingSection.d.ts +2 -2
  91. package/dist/types/core-viewers/webgl/viewer/selection.d.ts +6 -89
  92. package/dist/types/core-viewers/webgl/viewer/settings/index.d.ts +3 -0
  93. package/dist/types/core-viewers/webgl/viewer/settings/{defaultViewerSettings.d.ts → viewerDefaultSettings.d.ts} +1 -1
  94. package/dist/types/core-viewers/webgl/viewer/settings/viewerSettings.d.ts +2 -9
  95. package/dist/types/core-viewers/webgl/viewer/settings/viewerSettingsParsing.d.ts +1 -1
  96. package/dist/types/core-viewers/webgl/viewer/viewer.d.ts +13 -13
  97. package/dist/types/index.d.ts +2 -3
  98. package/dist/types/react-viewers/bim/bimInfoData.d.ts +2 -2
  99. package/dist/types/react-viewers/bim/bimInfoObject.d.ts +4 -4
  100. package/dist/types/react-viewers/bim/bimInfoPanel.d.ts +3 -3
  101. package/dist/types/react-viewers/bim/bimInfoVim.d.ts +4 -4
  102. package/dist/types/react-viewers/bim/bimPanel.d.ts +13 -13
  103. package/dist/types/react-viewers/bim/bimSearch.d.ts +2 -2
  104. package/dist/types/react-viewers/bim/bimTree.d.ts +10 -8
  105. package/dist/types/react-viewers/bim/bimTreeData.d.ts +5 -4
  106. package/dist/types/react-viewers/bim/index.d.ts +8 -0
  107. package/dist/types/react-viewers/components/inputNumber.d.ts +4 -0
  108. package/dist/types/react-viewers/container.d.ts +3 -3
  109. package/dist/types/react-viewers/controlbar/controlBar.d.ts +10 -4
  110. package/dist/types/react-viewers/controlbar/controlBarButton.d.ts +1 -4
  111. package/dist/types/react-viewers/controlbar/controlBarIds.d.ts +36 -27
  112. package/dist/types/react-viewers/controlbar/controlBarSection.d.ts +1 -4
  113. package/dist/types/react-viewers/controlbar/index.d.ts +6 -0
  114. package/dist/types/react-viewers/controlbar/style.d.ts +10 -0
  115. package/dist/types/react-viewers/errors/index.d.ts +2 -0
  116. package/dist/types/react-viewers/helpers/cameraObserver.d.ts +2 -2
  117. package/dist/types/react-viewers/helpers/cursor.d.ts +5 -3
  118. package/dist/types/react-viewers/helpers/element.d.ts +3 -2
  119. package/dist/types/react-viewers/helpers/index.d.ts +10 -0
  120. package/dist/types/react-viewers/helpers/loadRequest.d.ts +6 -6
  121. package/dist/types/react-viewers/helpers/reactUtils.d.ts +273 -0
  122. package/dist/types/react-viewers/helpers/utils.d.ts +1 -1
  123. package/dist/types/react-viewers/{panels/icons.d.ts → icons.d.ts} +9 -0
  124. package/dist/types/react-viewers/index.d.ts +10 -6
  125. package/dist/types/react-viewers/panels/axesPanel.d.ts +4 -4
  126. package/dist/types/react-viewers/panels/contextMenu.d.ts +20 -10
  127. package/dist/types/react-viewers/panels/genericPanel.d.ts +26 -0
  128. package/dist/types/react-viewers/panels/index.d.ts +14 -0
  129. package/dist/types/react-viewers/panels/loadingBox.d.ts +2 -2
  130. package/dist/types/react-viewers/panels/messageBox.d.ts +1 -1
  131. package/dist/types/react-viewers/panels/modal.d.ts +6 -6
  132. package/dist/types/react-viewers/panels/renderSettingsPanel.d.ts +4 -0
  133. package/dist/types/react-viewers/panels/restOfScreen.d.ts +1 -1
  134. package/dist/types/react-viewers/{sidePanel → panels}/sidePanel.d.ts +3 -3
  135. package/dist/types/react-viewers/panels/toast.d.ts +3 -3
  136. package/dist/types/react-viewers/settings/index.d.ts +5 -0
  137. package/dist/types/react-viewers/settings/menuSettings.d.ts +2 -2
  138. package/dist/types/react-viewers/settings/settings.d.ts +13 -50
  139. package/dist/types/react-viewers/settings/settingsState.d.ts +8 -8
  140. package/dist/types/react-viewers/settings/settingsStorage.d.ts +6 -6
  141. package/dist/types/react-viewers/settings/userBoolean.d.ts +17 -0
  142. package/dist/types/react-viewers/state/cameraState.d.ts +24 -0
  143. package/dist/types/react-viewers/state/controlBarState.d.ts +35 -20
  144. package/dist/types/react-viewers/state/index.d.ts +9 -0
  145. package/dist/types/react-viewers/state/measureState.d.ts +2 -2
  146. package/dist/types/react-viewers/state/pointerState.d.ts +5 -5
  147. package/dist/types/react-viewers/state/sectionBoxState.d.ts +18 -17
  148. package/dist/types/react-viewers/state/sharedIsolation.d.ts +38 -0
  149. package/dist/types/react-viewers/state/viewerInputs.d.ts +3 -0
  150. package/dist/types/react-viewers/ultra/camera.d.ts +3 -0
  151. package/dist/types/react-viewers/ultra/controlBar.d.ts +6 -0
  152. package/dist/types/react-viewers/ultra/errors/ultraErrors.d.ts +3 -3
  153. package/dist/types/react-viewers/ultra/index.d.ts +2 -1
  154. package/dist/types/react-viewers/ultra/isolation.d.ts +3 -0
  155. package/dist/types/react-viewers/ultra/modal.d.ts +5 -0
  156. package/dist/types/react-viewers/ultra/sectionBox.d.ts +3 -0
  157. package/dist/types/react-viewers/ultra/viewer.d.ts +21 -0
  158. package/dist/types/react-viewers/ultra/viewerRef.d.ts +38 -0
  159. package/dist/types/react-viewers/urls.d.ts +1 -0
  160. package/dist/types/react-viewers/webgl/camera.d.ts +3 -0
  161. package/dist/types/react-viewers/webgl/index.d.ts +3 -8
  162. package/dist/types/react-viewers/webgl/inputsBindings.d.ts +8 -0
  163. package/dist/types/react-viewers/webgl/isolation.d.ts +2 -0
  164. package/dist/types/react-viewers/webgl/{webglLoading.d.ts → loading.d.ts} +8 -8
  165. package/dist/types/react-viewers/webgl/sectionBox.d.ts +3 -0
  166. package/dist/types/react-viewers/webgl/viewer.d.ts +28 -0
  167. package/dist/types/react-viewers/webgl/viewerRef.d.ts +98 -0
  168. package/dist/types/react-viewers/webgl/viewerState.d.ts +7 -5
  169. package/dist/types/utils/debounce.d.ts +30 -0
  170. package/dist/types/utils/index.d.ts +10 -0
  171. package/dist/types/utils/interfaces.d.ts +3 -0
  172. package/dist/types/utils/math3d.d.ts +19 -0
  173. package/dist/types/utils/partial.d.ts +7 -0
  174. package/dist/types/{core-viewers/webgl/utils/requestResult.d.ts → utils/result.d.ts} +1 -1
  175. package/dist/types/{core-viewers/webgl/utils → utils}/threeUtils.d.ts +1 -0
  176. package/dist/types/{core-viewers/ultra/utils → utils}/url.d.ts +2 -0
  177. package/dist/types/{core-viewers/ultra/utils → utils}/validation.d.ts +11 -10
  178. package/dist/vim-web.iife.js +17600 -17597
  179. package/dist/vim-web.iife.js.map +1 -1
  180. package/dist/vim-web.js +17042 -17039
  181. package/dist/vim-web.js.map +1 -1
  182. package/package.json +1 -1
  183. package/dist/types/core-viewers/ultra/utils/debounce.d.ts +0 -1
  184. package/dist/types/core-viewers/ultra/utils/deferredPromise.d.ts +0 -8
  185. package/dist/types/core-viewers/ultra/utils/result.d.ts +0 -11
  186. package/dist/types/core-viewers/ultra/viewer/inputs/InputTouch.d.ts +0 -25
  187. package/dist/types/core-viewers/ultra/viewer/inputs/inputHandler.d.ts +0 -7
  188. package/dist/types/core-viewers/ultra/viewer/inputs/inputKeyboard.d.ts +0 -20
  189. package/dist/types/core-viewers/ultra/viewer/inputs/inputMouse.d.ts +0 -21
  190. package/dist/types/core-viewers/ultra/viewer/inputs/inputs.d.ts +0 -27
  191. package/dist/types/core-viewers/ultra/viewer/marshal.d.ts +0 -86
  192. package/dist/types/core-viewers/ultra/viewer/selection.d.ts +0 -96
  193. package/dist/types/core-viewers/ultra/viewer/vim.d.ts +0 -111
  194. package/dist/types/core-viewers/webgl/utils/deferredPromise.d.ts +0 -8
  195. package/dist/types/core-viewers/webgl/viewer/gizmos/gizmoRectangle.d.ts +0 -51
  196. package/dist/types/core-viewers/webgl/viewer/gizmos/measure/measureFlow.d.ts +0 -36
  197. package/dist/types/core-viewers/webgl/viewer/inputs/input.d.ts +0 -128
  198. package/dist/types/core-viewers/webgl/viewer/inputs/keyboardHandler.d.ts +0 -113
  199. package/dist/types/core-viewers/webgl/viewer/inputs/mouseHandler.d.ts +0 -66
  200. package/dist/types/react-viewers/errors/errorUtils.d.ts +0 -2
  201. package/dist/types/react-viewers/helpers/camera.d.ts +0 -37
  202. package/dist/types/react-viewers/helpers/inputs.d.ts +0 -22
  203. package/dist/types/react-viewers/helpers/isolation.d.ts +0 -128
  204. package/dist/types/react-viewers/ultra/ultraComponent.d.ts +0 -47
  205. package/dist/types/react-viewers/ultra/ultraControlBarState.d.ts +0 -6
  206. package/dist/types/react-viewers/ultra/ultraModal.d.ts +0 -4
  207. package/dist/types/react-viewers/ultra/ultraSectionBoxState.d.ts +0 -3
  208. package/dist/types/react-viewers/webgl/webglComponent.d.ts +0 -28
  209. package/dist/types/react-viewers/webgl/webglComponentRef.d.ts +0 -118
  210. package/dist/types/react-viewers/webgl/webglSectionBoxState.d.ts +0 -3
  211. /package/dist/types/core-viewers/ultra/{viewer/decoderWithWorker.d.ts → decoderWithWorker.d.ts} +0 -0
  212. /package/dist/types/core-viewers/ultra/{viewer/loadRequest.d.ts → loadRequest.d.ts} +0 -0
  213. /package/dist/types/core-viewers/ultra/{viewer/logger.d.ts → logger.d.ts} +0 -0
  214. /package/dist/types/core-viewers/ultra/{viewer/protocol.d.ts → protocol.d.ts} +0 -0
  215. /package/dist/types/core-viewers/ultra/{viewer/streamLogger.d.ts → streamLogger.d.ts} +0 -0
  216. /package/dist/types/core-viewers/ultra/{viewer/streamRenderer.d.ts → streamRenderer.d.ts} +0 -0
  217. /package/dist/types/core-viewers/ultra/{viewer/viewport.d.ts → viewport.d.ts} +0 -0
  218. /package/dist/types/core-viewers/ultra/{viewer/vimCollection.d.ts → vimCollection.d.ts} +0 -0
  219. /package/dist/types/react-viewers/{sidePanel → state}/sideState.d.ts +0 -0
  220. /package/dist/types/{core-viewers/ultra/utils → utils}/array.d.ts +0 -0
  221. /package/dist/types/{core-viewers/ultra/utils → utils}/promise.d.ts +0 -0
@@ -0,0 +1,273 @@
1
+ /**
2
+ * @module state-action-refs
3
+ *
4
+ * This module exports various React hooks and TypeScript interfaces to create references for state,
5
+ * actions, and functions. These references allow you to store and manipulate values and functions,
6
+ * as well as dynamically inject additional behavior (using prepend and append methods) into their call chains.
7
+ *
8
+ * The provided hooks include:
9
+ * - useStateRef: A state reference with event dispatching and validation.
10
+ * - useActionRef: A reference for an action (a function with no arguments).
11
+ * - useArgActionRef: A reference for an action that accepts an argument.
12
+ * - useFuncRef: A reference for a function returning a value.
13
+ * - useAsyncFuncRef: A reference for an asynchronous function.
14
+ * - useArgFuncRef: A reference for a function that accepts an argument and returns a value.
15
+ */
16
+ import { ISimpleEvent } from "ste-simple-events";
17
+ /**
18
+ * Interface for a state reference.
19
+ * Provides methods to get, set, and confirm the current state.
20
+ */
21
+ export interface StateRef<T> {
22
+ /**
23
+ * Returns the current state value.
24
+ */
25
+ get(): T;
26
+ /**
27
+ * Updates the state to the provided value.
28
+ * @param value - The new state value.
29
+ */
30
+ set(value: T): void;
31
+ /**
32
+ * Confirms the current state (potentially applying a confirmation transformation).
33
+ */
34
+ confirm(): void;
35
+ onChange: ISimpleEvent<T>;
36
+ }
37
+ export interface StateRefresher {
38
+ refresh: () => void;
39
+ }
40
+ export declare function useRefresher(): StateRefresher;
41
+ /**
42
+ * A custom hook that creates a state reference.
43
+ * The reference provides access to the state, along with event dispatching, validation, and confirmation logic.
44
+ *
45
+ * @param initialValue - The initial state value.
46
+ * @returns An object implementing StateRef along with additional helper hooks.
47
+ */
48
+ export declare function useStateRef<T>(initialValue: T | (() => T)): {
49
+ /**
50
+ * Returns the current state value.
51
+ */
52
+ get(): T;
53
+ set: (value: T) => void;
54
+ onChange: ISimpleEvent<T>;
55
+ /**
56
+ * Confirms the current state by applying the confirm function and updating the state.
57
+ */
58
+ confirm(): void;
59
+ /**
60
+ * Registers a callback to be invoked when the state changes.
61
+ * Accepts a sync function, a cleanup function, or a function returning a Promise<void> (which will be ignored).
62
+ *
63
+ * @param on - The callback function that receives the new state value.
64
+ */
65
+ useOnChange(on: (value: T) => void | (() => void) | Promise<void>): void;
66
+ /**
67
+ * Memoizes a value based on the current state and additional dependencies.
68
+ * @param on - A function that computes a value based on the current state.
69
+ * @param deps - Optional additional dependencies.
70
+ * @returns The memoized value.
71
+ */
72
+ useMemo<TOut>(on: (value: T) => TOut, deps?: any[]): TOut;
73
+ /**
74
+ * Sets a validation function to process any new state value before updating.
75
+ * @param on - A function that validates (and optionally transforms) the new state value.
76
+ */
77
+ useValidate(on: (next: T, current: T) => T): void;
78
+ /**
79
+ * Sets a confirmation function to process the state value during confirmation.
80
+ * @param on - A function that confirms (and optionally transforms) the current state value.
81
+ */
82
+ useConfirm(on: (value: T) => T): void;
83
+ };
84
+ /**
85
+ * Interface for an action reference (a function with no arguments).
86
+ * Provides methods to call, get, set, and inject code before or after the stored function.
87
+ */
88
+ export interface ActionRef {
89
+ /**
90
+ * Invokes the stored action.
91
+ */
92
+ call(): void;
93
+ /**
94
+ * Retrieves the current action function.
95
+ * @returns The stored action function.
96
+ */
97
+ get(): () => void;
98
+ /**
99
+ * Sets the stored action function.
100
+ * @param fn - The new action function.
101
+ */
102
+ set(fn: () => void): void;
103
+ /**
104
+ * Prepends a function to be executed before the stored action.
105
+ * @param fn - The function to run before the original action.
106
+ */
107
+ prepend(fn: () => void): void;
108
+ /**
109
+ * Appends a function to be executed after the stored action.
110
+ * @param fn - The function to run after the original action.
111
+ */
112
+ append(fn: () => void): void;
113
+ }
114
+ /**
115
+ * Custom hook to create an action reference.
116
+ *
117
+ * @param action - The initial action function.
118
+ * @returns An object implementing ActionRef.
119
+ */
120
+ export declare function useActionRef(action: () => void): ActionRef;
121
+ /**
122
+ * Interface for an action reference that accepts an argument.
123
+ * Provides methods to call with an argument, get, set, and inject code before or after the stored function.
124
+ */
125
+ export interface ArgActionRef<T> {
126
+ /**
127
+ * Invokes the stored action with the provided argument.
128
+ * @param arg - The argument to pass to the action.
129
+ */
130
+ call(arg: T): void;
131
+ /**
132
+ * Retrieves the current action function.
133
+ * @returns The stored action function.
134
+ */
135
+ get(): (arg: T) => void;
136
+ /**
137
+ * Sets the stored action function.
138
+ * @param fn - The new action function.
139
+ */
140
+ set(fn: (arg: T) => void): void;
141
+ /**
142
+ * Prepends a function to be executed before the stored action.
143
+ * @param fn - The function to run before the original action.
144
+ */
145
+ prepend(fn: (arg: T) => void): void;
146
+ /**
147
+ * Appends a function to be executed after the stored action.
148
+ * @param fn - The function to run after the original action.
149
+ */
150
+ append(fn: (arg: T) => void): void;
151
+ }
152
+ /**
153
+ * Custom hook to create an argument-based action reference.
154
+ *
155
+ * @param action - The initial action function that accepts an argument.
156
+ * @returns An object implementing ArgActionRef.
157
+ */
158
+ export declare function useArgActionRef<T>(action: (arg: T) => void): ArgActionRef<T>;
159
+ /**
160
+ * Interface for a function reference that returns a value.
161
+ * Provides methods to call, get, set, and inject code before or after the stored function.
162
+ */
163
+ export interface FuncRef<T> {
164
+ /**
165
+ * Invokes the stored function and returns its value.
166
+ * @returns The result of the function call.
167
+ */
168
+ call(): T;
169
+ /**
170
+ * Retrieves the current function.
171
+ * @returns The stored function.
172
+ */
173
+ get(): () => T;
174
+ /**
175
+ * Sets the stored function.
176
+ * @param fn - The new function.
177
+ */
178
+ set(fn: () => T): void;
179
+ /**
180
+ * Prepends a function to be executed before the stored function.
181
+ * @param fn - The function to run before the original function.
182
+ */
183
+ prepend(fn: () => void): void;
184
+ /**
185
+ * Appends a function to be executed after the stored function.
186
+ * @param fn - The function to run after the original function.
187
+ */
188
+ append(fn: () => void): void;
189
+ }
190
+ /**
191
+ * Custom hook to create a function reference.
192
+ *
193
+ * @param fn - The initial function.
194
+ * @returns An object implementing FuncRef.
195
+ */
196
+ export declare function useFuncRef<T>(fn: () => T): FuncRef<T>;
197
+ /**
198
+ * Interface for an asynchronous function reference.
199
+ * Provides methods to call, get, set, and inject code before or after the stored async function.
200
+ */
201
+ export interface AsyncFuncRef<T> {
202
+ /**
203
+ * Invokes the stored asynchronous function and returns a promise of its result.
204
+ * @returns A promise resolving to the result of the async function.
205
+ */
206
+ call(): Promise<T>;
207
+ /**
208
+ * Retrieves the current asynchronous function.
209
+ * @returns The stored async function.
210
+ */
211
+ get(): () => Promise<T>;
212
+ /**
213
+ * Sets the stored asynchronous function.
214
+ * @param fn - The new async function.
215
+ */
216
+ set(fn: () => Promise<T>): void;
217
+ /**
218
+ * Prepends a function to be executed before the stored async function.
219
+ * @param fn - The function to run before the original async function.
220
+ */
221
+ prepend(fn: () => Promise<void> | void): void;
222
+ /**
223
+ * Appends a function to be executed after the stored async function.
224
+ * @param fn - The function to run after the original async function.
225
+ */
226
+ append(fn: () => Promise<void> | void): void;
227
+ }
228
+ /**
229
+ * Custom hook to create an asynchronous function reference.
230
+ *
231
+ * @param fn - The initial asynchronous function.
232
+ * @returns An object implementing AsyncFuncRef.
233
+ */
234
+ export declare function useAsyncFuncRef<T>(fn: () => Promise<T>): AsyncFuncRef<T>;
235
+ /**
236
+ * Interface for a function reference that accepts an argument and returns a result.
237
+ * Provides methods to call, get, set, and inject code before or after the stored function.
238
+ */
239
+ export interface ArgFuncRef<TArg, TResult> {
240
+ /**
241
+ * Invokes the stored function with the provided argument.
242
+ * @param arg - The argument to pass to the function.
243
+ * @returns The result of the function call.
244
+ */
245
+ call(arg: TArg): TResult;
246
+ /**
247
+ * Retrieves the current function.
248
+ * @returns The stored function.
249
+ */
250
+ get(): (arg: TArg) => TResult;
251
+ /**
252
+ * Sets the stored function.
253
+ * @param fn - The new function.
254
+ */
255
+ set(fn: (arg: TArg) => TResult): void;
256
+ /**
257
+ * Prepends a function to be executed before the stored function.
258
+ * @param fn - The function to run before the original function.
259
+ */
260
+ prepend(fn: (arg: TArg) => void): void;
261
+ /**
262
+ * Appends a function to be executed after the stored function.
263
+ * @param fn - The function to run after the original function.
264
+ */
265
+ append(fn: (arg: TArg) => void): void;
266
+ }
267
+ /**
268
+ * Custom hook to create an argument-based function reference.
269
+ *
270
+ * @param fn - The initial function that accepts an argument and returns a result.
271
+ * @returns An object implementing ArgFuncRef.
272
+ */
273
+ export declare function useArgFuncRef<TArg, TResult>(fn: (arg: TArg) => TResult): ArgFuncRef<TArg, TResult>;
@@ -1,4 +1,4 @@
1
- import { UserBoolean } from '../settings/settings';
1
+ import { UserBoolean } from '../settings';
2
2
  export declare function whenTrue(value: UserBoolean | boolean, element: JSX.Element): JSX.Element;
3
3
  export declare function whenFalse(value: UserBoolean | boolean, element: JSX.Element): JSX.Element;
4
4
  export declare function whenAllTrue(value: (UserBoolean | boolean)[], element: JSX.Element): JSX.Element;
@@ -10,6 +10,8 @@ export type IconOptions = {
10
10
  fill: string;
11
11
  className?: string;
12
12
  };
13
+ export declare function pointer({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
14
+ export declare function filter({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
13
15
  export declare function slidersHoriz({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
14
16
  export declare function settings({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
15
17
  export declare function help({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
@@ -27,6 +29,8 @@ export declare function arrowLeft({ height, width, fill, className }: IconOption
27
29
  export declare function fullArrowLeft({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
28
30
  export declare function visible({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
29
31
  export declare function hidden({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
32
+ export declare function frameScene({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
33
+ export declare function autoCamera({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
30
34
  export declare function orbit({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
31
35
  export declare function look({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
32
36
  export declare function perspective({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
@@ -36,6 +40,11 @@ export declare function pan({ height, width, fill, className }: IconOptions): im
36
40
  export declare function zoom({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
37
41
  export declare function frameRect({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
38
42
  export declare function frameSelection({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
43
+ export declare function showAll({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
44
+ export declare function showSelection({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
45
+ export declare function hideSelection({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
46
+ export declare function isolateSelection({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
47
+ export declare function autoIsolate({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
39
48
  export declare function toggleIsolation({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
40
49
  export declare function measure({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
41
50
  export declare function sectionBoxSettings({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
@@ -1,9 +1,13 @@
1
1
  import './style.css';
2
- export * as WebglReact from './webgl/index';
3
- export * as UltraReact from './ultra/index';
4
- export * as ErrorStyle from './errors/errorStyle';
5
- export * as Errors from './errors/errors';
2
+ export * from './bim';
3
+ export * as ControlBar from './controlbar';
4
+ export * as Icons from './icons';
5
+ export * as Settings from './settings';
6
+ export * as Webgl from './webgl';
7
+ export * as Ultra from './ultra';
8
+ export * as Errors from './errors';
6
9
  export * as Urls from './urls';
7
- export * as Icons from './panels/icons';
8
- export type { MessageBoxProps } from './panels/messageBox';
9
10
  export * from './container';
11
+ export * from './panels';
12
+ export type * from './helpers';
13
+ export type * from './state';
@@ -2,8 +2,8 @@
2
2
  * @module viw-webgl-react
3
3
  */
4
4
  import React from 'react';
5
- import * as VIM from '../../core-viewers/webgl/index';
6
- import { ComponentCamera } from '../helpers/camera';
5
+ import * as Core from '../../core-viewers';
6
+ import { CameraRef } from '../state/cameraState';
7
7
  import { SettingsState } from '../settings/settingsState';
8
8
  /**
9
9
  * Memoized version of the AxesPanelMemo.
@@ -13,8 +13,8 @@ export declare const AxesPanelMemo: React.MemoExoticComponent<typeof AxesPanel>;
13
13
  * JSX Component for axes gizmo.
14
14
  */
15
15
  declare function AxesPanel(props: {
16
- viewer: VIM.Viewer;
17
- camera: ComponentCamera;
16
+ viewer: Core.Webgl.Viewer;
17
+ camera: CameraRef;
18
18
  settings: SettingsState;
19
19
  }): import("react/jsx-runtime").JSX.Element;
20
20
  export {};
@@ -2,12 +2,22 @@
2
2
  * @module viw-webgl-react
3
3
  */
4
4
  import React from 'react';
5
- import { WebglViewer } from '../..';
6
- import { Isolation } from '../helpers/isolation';
7
- import { ComponentCamera } from '../helpers/camera';
5
+ import { CameraRef } from '../state/cameraState';
8
6
  import { TreeActionRef } from '../bim/bimTree';
9
7
  import { ModalRef } from './modal';
8
+ import { IsolationRef } from '../state/sharedIsolation';
9
+ import * as Core from '../../core-viewers';
10
10
  type ClickCallback = React.MouseEvent<HTMLDivElement, MouseEvent>;
11
+ /**
12
+ * Reference to manage context menu functionality in the viewer.
13
+ */
14
+ export type ContextMenuRef = {
15
+ /**
16
+ * Defines a callback function to dynamically customize the context menu.
17
+ * @param customization The configuration object specifying the customization options for the context menu.
18
+ */
19
+ customize: (customization: ContextMenuCustomization) => void;
20
+ };
11
21
  export declare function showContextMenu(position: {
12
22
  x: number;
13
23
  y: number;
@@ -59,16 +69,16 @@ export type ContextMenuCustomization = (e: ContextMenuElement[]) => ContextMenuE
59
69
  /**
60
70
  * Memoized version of VimContextMenu.
61
71
  */
62
- export declare const VimContextMenuMemo: React.MemoExoticComponent<typeof VimContextMenu>;
72
+ export declare const VimContextMenuMemo: React.MemoExoticComponent<typeof ContextMenu>;
63
73
  /**
64
- * Context menu component definition according to current state.
74
+ * Context menu viewer definition according to current state.
65
75
  */
66
- export declare function VimContextMenu(props: {
67
- viewer: WebglViewer.Viewer;
68
- camera: ComponentCamera;
76
+ export declare function ContextMenu(props: {
77
+ viewer: Core.Webgl.Viewer;
78
+ camera: CameraRef;
69
79
  modal: ModalRef;
70
- isolation: Isolation;
71
- selection: WebglViewer.Object3D[];
80
+ isolation: IsolationRef;
81
+ selection: Core.Webgl.Element3D[];
72
82
  customization?: (e: ContextMenuElement[]) => ContextMenuElement[];
73
83
  treeRef: React.MutableRefObject<TreeActionRef | undefined>;
74
84
  }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,26 @@
1
+ import { StateRef } from "../helpers/reactUtils";
2
+ interface BasePanelField {
3
+ id: string;
4
+ label: string;
5
+ }
6
+ export interface PanelFieldText extends BasePanelField {
7
+ type: "text";
8
+ state: StateRef<string>;
9
+ }
10
+ export interface PanelFieldNumber extends BasePanelField {
11
+ type: "number";
12
+ state: StateRef<number>;
13
+ }
14
+ export interface PanelFieldBool extends BasePanelField {
15
+ type: "bool";
16
+ state: StateRef<boolean>;
17
+ }
18
+ export type PanelField = PanelFieldText | PanelFieldBool | PanelFieldNumber;
19
+ export interface GenericPanelProps {
20
+ showPanel: StateRef<boolean>;
21
+ header?: React.ReactNode;
22
+ fields: PanelField[];
23
+ onClose?: () => void;
24
+ }
25
+ export declare function GenericPanel(props: GenericPanelProps): import("react/jsx-runtime").JSX.Element;
26
+ export {};
@@ -0,0 +1,14 @@
1
+ export * as ContextMenu from './contextMenu';
2
+ export type * from './axesPanel';
3
+ export type * from './genericPanel';
4
+ export type * from './help';
5
+ export type * from './loadingBox';
6
+ export type * from './logo';
7
+ export type * from './messageBox';
8
+ export type * from './modal';
9
+ export type * from './overlay';
10
+ export type * from './performance';
11
+ export type * from './renderSettingsPanel';
12
+ export type * from './restOfScreen';
13
+ export type * from './sectionBoxPanel';
14
+ export type * from './toast';
@@ -17,9 +17,9 @@ export type LoadingBoxPropsTyped = LoadingBoxProps & {
17
17
  type: 'loading';
18
18
  };
19
19
  /**
20
- * LoadingBox component that displays a loading message or other messages.
20
+ * LoadingBox viewer that displays a loading message or other messages.
21
21
  * @param props - Component props containing optional content.
22
- * @returns The LoadingBox component or null if no content is provided.
22
+ * @returns The LoadingBox viewer or null if no content is provided.
23
23
  */
24
24
  export declare function LoadingBox(props: {
25
25
  content: LoadingBoxProps;
@@ -2,7 +2,7 @@ export type MessageBoxProps = {
2
2
  title: string;
3
3
  body: string | JSX.Element;
4
4
  footer?: string | JSX.Element;
5
- canClose: boolean;
5
+ canClose?: boolean;
6
6
  onClose?: () => void;
7
7
  };
8
8
  export type MessageBoxPropsTyped = MessageBoxProps & {
@@ -1,18 +1,18 @@
1
+ import React from 'react';
1
2
  import { MessageBoxProps, MessageBoxPropsTyped } from './messageBox';
2
3
  import { LoadingBoxProps, LoadingBoxPropsTyped } from './loadingBox';
3
4
  import { HelpProps, HelpPropsTyped } from './help';
4
5
  export type ModalProps = MessageBoxProps | LoadingBoxProps | HelpProps;
5
6
  export type ModalPropsTyped = (MessageBoxPropsTyped | LoadingBoxPropsTyped | HelpPropsTyped) & {
6
- canClose: boolean;
7
+ canClose?: boolean;
7
8
  onClose?: () => void;
8
9
  };
9
10
  export type ModalRef = {
10
- current: ModalPropsTyped | undefined;
11
+ getActiveState(): ModalPropsTyped | undefined;
11
12
  loading(content: LoadingBoxProps | undefined): void;
12
13
  message(content: MessageBoxProps | undefined): void;
13
14
  help(show: boolean): void;
14
15
  };
15
- export declare function useModal(canFollowLinks: boolean): ModalRef;
16
- export declare function Modal(props: {
17
- state: ModalRef;
18
- }): import("react/jsx-runtime").JSX.Element;
16
+ export declare const Modal: React.ForwardRefExoticComponent<{
17
+ canFollowLinks: boolean;
18
+ } & React.RefAttributes<ModalRef>>;
@@ -0,0 +1,4 @@
1
+ import { IsolationRef } from "../state/sharedIsolation";
2
+ export declare function IsolationSettingsPanel(props: {
3
+ state: IsolationRef;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { SideState } from '../sidePanel/sideState';
1
+ import { SideState } from '../state/sideState';
2
2
  export declare function RestOfScreen(props: {
3
3
  side: SideState;
4
4
  content: () => JSX.Element;
@@ -2,8 +2,8 @@
2
2
  * @module viw-webgl-react
3
3
  */
4
4
  import React from 'react';
5
- import * as VIM from '../../core-viewers/webgl/index';
6
- import { SideState } from './sideState';
5
+ import * as Core from '../../core-viewers';
6
+ import { SideState } from '../state/sideState';
7
7
  import { Container } from '../container';
8
8
  /**
9
9
  * Memoized version of the SidePanel.
@@ -15,6 +15,6 @@ export declare const SidePanelMemo: React.MemoExoticComponent<typeof SidePanel>;
15
15
  export declare function SidePanel(props: {
16
16
  container: Container;
17
17
  side: SideState;
18
- viewer: VIM.Viewer;
18
+ viewer: Core.Webgl.Viewer;
19
19
  content: () => JSX.Element;
20
20
  }): import("react/jsx-runtime").JSX.Element;
@@ -2,8 +2,8 @@
2
2
  * @module viw-webgl-react
3
3
  */
4
4
  import React from 'react';
5
- import * as VIM from '../../core-viewers/webgl/index';
6
- import { SideState } from '../sidePanel/sideState';
5
+ import * as Core from '../../core-viewers';
6
+ import { SideState } from '../state/sideState';
7
7
  export type ToastConfigSpeed = {
8
8
  visible: boolean;
9
9
  speed: number;
@@ -16,7 +16,7 @@ export declare const MenuToastMemo: React.MemoExoticComponent<typeof MenuToast>;
16
16
  * Toast jsx component that briefly shows up when camera speed changes.
17
17
  */
18
18
  declare function MenuToast(props: {
19
- viewer: VIM.Viewer;
19
+ viewer: Core.Webgl.Viewer;
20
20
  side: SideState;
21
21
  }): import("react/jsx-runtime").JSX.Element;
22
22
  export {};
@@ -0,0 +1,5 @@
1
+ export * from './settings';
2
+ export * from './settingsStorage';
3
+ export * from './userBoolean';
4
+ export type * from './menuSettings';
5
+ export type * from './settingsState';
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module viw-webgl-react
3
3
  */
4
- import * as VIM from '../../core-viewers/webgl/index';
4
+ import * as Core from '../../core-viewers';
5
5
  import { SettingsState } from './settingsState';
6
6
  /**
7
7
  * JSX Component to interact with settings.
@@ -11,7 +11,7 @@ import { SettingsState } from './settingsState';
11
11
  * @returns
12
12
  */
13
13
  export declare function MenuSettings(props: {
14
- viewer: VIM.Viewer;
14
+ viewer: Core.Webgl.Viewer;
15
15
  settings: SettingsState;
16
16
  visible: boolean;
17
17
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * @module viw-webgl-react
3
- * Contains settings and type definitions for the Vim web component
3
+ * Contains settings and type definitions for the Vim web viewer
4
4
  */
5
+ import { UserBoolean } from "./userBoolean";
5
6
  /**
6
7
  * Makes all fields optional recursively
7
8
  * @template T - The type to make recursively partial
@@ -11,27 +12,10 @@ export type RecursivePartial<T> = {
11
12
  [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object ? RecursivePartial<T[P]> : T[P];
12
13
  };
13
14
  /**
14
- * Represents a boolean value that can also be locked to always true or false
15
- * @typedef {boolean | 'AlwaysTrue' | 'AlwaysFalse'} UserBoolean
15
+ * Complete settings configuration for the Vim viewer
16
+ * @interface Settings
16
17
  */
17
- export type UserBoolean = boolean | 'AlwaysTrue' | 'AlwaysFalse';
18
- /**
19
- * Checks if a UserBoolean value is effectively true
20
- * @param {UserBoolean | boolean} value - The value to check
21
- * @returns {boolean} True if the value is true or 'AlwaysTrue'
22
- */
23
- export declare function isTrue(value: UserBoolean | boolean): value is true | "AlwaysTrue";
24
- /**
25
- * Checks if a UserBoolean value is effectively false
26
- * @param {UserBoolean | boolean} value - The value to check
27
- * @returns {boolean} True if the value is false or 'AlwaysFalse'
28
- */
29
- export declare function isFalse(value: UserBoolean | boolean): value is false | "AlwaysFalse";
30
- /**
31
- * Complete settings configuration for the Vim component
32
- * @interface ComponentSettings
33
- */
34
- export type ComponentSettings = {
18
+ export type Settings = {
35
19
  materials: {
36
20
  useFastMaterial: boolean;
37
21
  useGhostMaterial: boolean;
@@ -61,7 +45,9 @@ export type ComponentSettings = {
61
45
  pan: UserBoolean;
62
46
  zoom: UserBoolean;
63
47
  zoomWindow: UserBoolean;
64
- zoomToFit: UserBoolean;
48
+ autoCamera: UserBoolean;
49
+ frameSelection: UserBoolean;
50
+ frameScene: UserBoolean;
65
51
  sectioningMode: UserBoolean;
66
52
  measuringMode: UserBoolean;
67
53
  toggleIsolation: UserBoolean;
@@ -74,34 +60,11 @@ export type ComponentSettings = {
74
60
  /**
75
61
  * Partial version of ComponentSettings where all properties are optional
76
62
  */
77
- export type PartialComponentSettings = RecursivePartial<ComponentSettings>;
78
- /**
79
- * Checks if any axes-related UI buttons are enabled
80
- * @param {ComponentSettings} settings - The component settings to check
81
- * @returns {boolean} True if any axes buttons are enabled
82
- */
83
- export declare function anyUiAxesButton(settings: ComponentSettings): UserBoolean;
84
- /**
85
- * Checks if any cursor-related UI buttons are enabled
86
- * @param {ComponentSettings} settings - The component settings to check
87
- * @returns {boolean} True if any cursor buttons are enabled
88
- */
89
- export declare function anyUiCursorButton(settings: ComponentSettings): boolean;
90
- /**
91
- * Checks if any tool-related UI buttons are enabled
92
- * @param {ComponentSettings} settings - The component settings to check
93
- * @returns {boolean} True if any tool buttons are enabled
94
- */
95
- export declare function anyUiToolButton(settings: ComponentSettings): boolean;
96
- /**
97
- * Checks if any settings-related UI buttons are enabled
98
- * @param {ComponentSettings} settings - The component settings to check
99
- * @returns {boolean} True if any settings buttons are enabled
100
- */
101
- export declare function anyUiSettingButton(settings: ComponentSettings): boolean;
63
+ export type PartialSettings = RecursivePartial<Settings>;
102
64
  /**
103
- * Default settings configuration for the Vim component
65
+ * Default settings configuration for the Vim Viewer
104
66
  * @constant
105
- * @type {ComponentSettings}
67
+ * @type {Settings}
106
68
  */
107
- export declare const defaultSettings: ComponentSettings;
69
+ export declare function getDefaultSettings(): Settings;
70
+ export declare function createSettings(settings: PartialSettings): Settings;