@wandelbots/wandelbots-js-react-components 1.32.1 → 1.33.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wandelbots/wandelbots-js-react-components",
3
- "version": "1.32.1",
3
+ "version": "1.33.1",
4
4
  "description": "React UI toolkit for building applications on top of the Wandelbots platform",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -7,16 +7,17 @@ import JogMinus from "../../icons/jog-minus.svg"
7
7
  import JogPlus from "../../icons/jog-plus.svg"
8
8
  import type { AxisControlComponentColors } from "../../themes/themeTypes"
9
9
  import { useAnimationFrame } from "../utils/hooks"
10
-
11
- type Direction = "+" | "-"
10
+ import type { JoggingDirection } from "./JoggingStore"
12
11
 
13
12
  type JoggingCartesianAxisControlProps = {
14
13
  colors?: AxisControlComponentColors
15
14
  label: ReactNode
16
15
  getDisplayedValue: () => string
17
- startJogging: (direction: Direction) => void
16
+ startJogging: (direction: JoggingDirection) => void
18
17
  stopJogging: () => void
19
18
  disabled?: boolean
19
+ /** If set, the corresponding button will be rendered in the pressed state */
20
+ activeJoggingDirection?: JoggingDirection
20
21
  } & React.ComponentProps<typeof Stack>
21
22
 
22
23
  /** A input widget to control an individual cartesian axis */
@@ -29,6 +30,7 @@ export const JoggingCartesianAxisControl = externalizeComponent(
29
30
  startJogging,
30
31
  stopJogging,
31
32
  disabled,
33
+ activeJoggingDirection,
32
34
  ...rest
33
35
  }: JoggingCartesianAxisControlProps) => {
34
36
  useAnimationFrame(() => {
@@ -39,7 +41,13 @@ export const JoggingCartesianAxisControl = externalizeComponent(
39
41
  element.textContent = displayValue
40
42
  })
41
43
  const theme = useTheme()
42
- const [borderColor, setBorderColor] = useState(colors?.borderColor)
44
+
45
+ const [localActiveJoggingDirection, setLocalActiveJoggingDirection] =
46
+ useState<JoggingDirection | null>(null)
47
+
48
+ // Handle both controlled and uncontrolled states
49
+ const showJoggingDirection =
50
+ activeJoggingDirection || localActiveJoggingDirection
43
51
 
44
52
  const valueContainerRef = useRef<HTMLParagraphElement>(null)
45
53
 
@@ -57,17 +65,31 @@ export const JoggingCartesianAxisControl = externalizeComponent(
57
65
  }
58
66
  }
59
67
 
60
- const SxAxisControlButton = {
68
+ const borderColor = showJoggingDirection
69
+ ? colors.buttonBackgroundColor?.pressed
70
+ : colors.borderColor
71
+
72
+ const sxAxisControlButtonBase = {
61
73
  width: "55px",
62
- backgroundColor: colors.buttonBackgroundColor?.default,
63
74
  color: colors.color,
75
+ path: { fill: colors.color },
64
76
  alignContent: "center",
65
77
  fontSize: "37px",
78
+ svg: {
79
+ pointerEvents: "none",
80
+ },
81
+ }
82
+
83
+ const sxAxisControlButtonDefault = {
84
+ ...sxAxisControlButtonBase,
85
+ backgroundColor: colors.buttonBackgroundColor?.default,
66
86
  "&:hover": {
67
87
  backgroundColor: colors.buttonBackgroundColor?.hovered,
68
88
  },
69
89
  "&:active": {
70
90
  backgroundColor: colors.buttonBackgroundColor?.pressed,
91
+ color: colors.backgroundColor,
92
+ path: { fill: colors.backgroundColor },
71
93
  },
72
94
  ":disabled": {
73
95
  backgroundColor: colors.buttonBackgroundColor?.disabled,
@@ -75,18 +97,33 @@ export const JoggingCartesianAxisControl = externalizeComponent(
75
97
  },
76
98
  }
77
99
 
78
- function onPointerDown(ev: React.PointerEvent, direction: Direction) {
100
+ const sxAxisControlButtonPressed = {
101
+ ...sxAxisControlButtonBase,
102
+ backgroundColor: colors.buttonBackgroundColor?.pressed,
103
+ color: colors.backgroundColor,
104
+ path: { fill: colors.backgroundColor },
105
+ ":disabled": {
106
+ backgroundColor: colors.buttonBackgroundColor?.pressed,
107
+ "svg path": { fill: theme.palette.action.disabled },
108
+ },
109
+ }
110
+
111
+ function onPointerDown(
112
+ ev: React.PointerEvent,
113
+ direction: JoggingDirection,
114
+ ) {
79
115
  if (disabled) {
80
116
  return
81
117
  }
82
- setBorderColor(colors?.buttonBackgroundColor?.pressed)
118
+
83
119
  if (ev.button === 0) {
120
+ setLocalActiveJoggingDirection(direction)
84
121
  startJogging(direction)
85
122
  }
86
123
  }
87
124
 
88
125
  function onPointerUpOrOut() {
89
- setBorderColor(colors?.borderColor)
126
+ setLocalActiveJoggingDirection(null)
90
127
  stopJogging()
91
128
  }
92
129
 
@@ -100,7 +137,9 @@ export const JoggingCartesianAxisControl = externalizeComponent(
100
137
  onPointerOut={onPointerUpOrOut}
101
138
  size="large"
102
139
  sx={{
103
- ...SxAxisControlButton,
140
+ ...(showJoggingDirection === "-"
141
+ ? sxAxisControlButtonPressed
142
+ : sxAxisControlButtonDefault),
104
143
  borderRadius: "16px 0px 0px 16px",
105
144
  borderLeft: `2px solid ${borderColor ?? "#fff"}`,
106
145
  borderBottom: `2px solid ${borderColor ?? "#fff"}`,
@@ -163,7 +202,9 @@ export const JoggingCartesianAxisControl = externalizeComponent(
163
202
  onPointerOut={onPointerUpOrOut}
164
203
  size="large"
165
204
  sx={{
166
- ...SxAxisControlButton,
205
+ ...(showJoggingDirection === "+"
206
+ ? sxAxisControlButtonPressed
207
+ : sxAxisControlButtonDefault),
167
208
  borderRadius: "0px 16px 16px 0px",
168
209
  borderRight: `2px solid ${borderColor ?? "#fff"}`,
169
210
  borderBottom: `2px solid ${borderColor ?? "#fff"}`,
@@ -17,14 +17,19 @@ import { JoggingActivationRequired } from "./JoggingActivationRequired"
17
17
  import { JoggingCartesianAxisControl } from "./JoggingCartesianAxisControl"
18
18
  import { JoggingJointLimitDetector } from "./JoggingJointLimitDetector"
19
19
  import { JoggingOptions } from "./JoggingOptions"
20
- import type { DiscreteIncrementOption, JoggingStore } from "./JoggingStore"
20
+ import type {
21
+ DiscreteIncrementOption,
22
+ JoggingAxis,
23
+ JoggingDirection,
24
+ JoggingStore,
25
+ } from "./JoggingStore"
21
26
  import { JoggingToggleButtonGroup } from "./JoggingToggleButtonGroup"
22
27
  import { JoggingVelocitySlider } from "./JoggingVelocitySlider"
23
28
 
24
29
  type JoggingCartesianOpts = {
25
- axis: "x" | "y" | "z"
30
+ axis: JoggingAxis
26
31
  motionType: "translate" | "rotate"
27
- direction: "-" | "+"
32
+ direction: JoggingDirection
28
33
  }
29
34
 
30
35
  export const JoggingCartesianTab = observer(
@@ -70,24 +75,32 @@ export const JoggingCartesianTab = observer(
70
75
  if (!tcpPose) return
71
76
 
72
77
  await store.withMotionLock(async () => {
73
- await store.jogger.runIncrementalCartesianMotion({
74
- currentTcpPose: tcpPose,
75
- currentJoints: jointPosition,
76
- coordSystemId: store.activeCoordSystemId,
77
- velocityInRelevantUnits: store.velocityInCurrentUnits,
78
- axis: opts.axis,
79
- direction: opts.direction,
80
- motion:
81
- store.selectedCartesianMotionType === "translate"
82
- ? {
83
- type: "translate",
84
- distanceMm: increment.mm,
85
- }
86
- : {
87
- type: "rotate",
88
- distanceRads: degreesToRadians(increment.degrees),
89
- },
90
- })
78
+ try {
79
+ store.setCurrentIncrementJog({
80
+ axis: opts.axis,
81
+ direction: opts.direction,
82
+ })
83
+ await store.jogger.runIncrementalCartesianMotion({
84
+ currentTcpPose: tcpPose,
85
+ currentJoints: jointPosition,
86
+ coordSystemId: store.activeCoordSystemId,
87
+ velocityInRelevantUnits: store.velocityInCurrentUnits,
88
+ axis: opts.axis,
89
+ direction: opts.direction,
90
+ motion:
91
+ store.selectedCartesianMotionType === "translate"
92
+ ? {
93
+ type: "translate",
94
+ distanceMm: increment.mm,
95
+ }
96
+ : {
97
+ type: "rotate",
98
+ distanceRads: degreesToRadians(increment.degrees),
99
+ },
100
+ })
101
+ } finally {
102
+ store.setCurrentIncrementJog(null)
103
+ }
91
104
  })
92
105
  }
93
106
 
@@ -195,6 +208,11 @@ export const JoggingCartesianTab = observer(
195
208
  key={axis.id}
196
209
  colors={axis.colors}
197
210
  disabled={store.isLocked}
211
+ activeJoggingDirection={
212
+ store.incrementJogInProgress?.axis === axis.id
213
+ ? store.incrementJogInProgress.direction
214
+ : undefined
215
+ }
198
216
  label={
199
217
  <>
200
218
  {axis.icon}
@@ -27,6 +27,8 @@ const incrementOptions = [
27
27
  ...discreteIncrementOptions,
28
28
  ] as const
29
29
 
30
+ export type JoggingAxis = "x" | "y" | "z"
31
+ export type JoggingDirection = "+" | "-"
30
32
  export type DiscreteIncrementOption = (typeof discreteIncrementOptions)[number]
31
33
  export type IncrementOption = (typeof incrementOptions)[number]
32
34
  export type IncrementOptionId = IncrementOption["id"]
@@ -34,6 +36,11 @@ export type IncrementOptionId = IncrementOption["id"]
34
36
  export const ORIENTATION_IDS = ["coordsys", "tool"]
35
37
  export type OrientationId = (typeof ORIENTATION_IDS)[number]
36
38
 
39
+ export type IncrementJogInProgress = {
40
+ direction: JoggingDirection
41
+ axis: JoggingAxis
42
+ }
43
+
37
44
  export class JoggingStore {
38
45
  selectedTabId: "cartesian" | "joint" | "debug" = "cartesian"
39
46
 
@@ -87,8 +94,11 @@ export class JoggingStore {
87
94
  */
88
95
  selectedCartesianMotionType: "translate" | "rotate" = "translate"
89
96
 
90
- /** True when the API is busy doing a planned increment jog motion */
91
- incrementJoggingInProgress = false
97
+ /**
98
+ * If the jogger is busy running an incremental jog, this will be set
99
+ * with the information about the motion
100
+ */
101
+ incrementJogInProgress: IncrementJogInProgress | null = null
92
102
 
93
103
  /** How fast the robot goes when doing cartesian translate jogging in mm/s */
94
104
  translationVelocityMmPerSec: number = 10
@@ -437,8 +447,8 @@ export class JoggingStore {
437
447
  this.selectedIncrementId = id
438
448
  }
439
449
 
440
- setIncrementJoggingInProgress(inProgress: boolean) {
441
- this.incrementJoggingInProgress = inProgress
450
+ setCurrentIncrementJog(incrementJog: IncrementJogInProgress | null) {
451
+ this.incrementJogInProgress = incrementJog
442
452
  }
443
453
 
444
454
  setVelocityFromSlider(velocity: number) {
@@ -5,6 +5,7 @@ import { ABB_1300_115_10 } from "./ABB_1300_115_10"
5
5
  import { FANUC_ARC_Mate_100iD } from "./FANUC_ARC_Mate_100iD"
6
6
  import { FANUC_ARC_Mate_120iD } from "./FANUC_ARC_Mate_120iD"
7
7
  import { FANUC_CRX10iA } from "./FANUC_CRX10iA"
8
+ import { FANUC_CRX10iAL } from "./FANUC_CRX10iAL"
8
9
  import { FANUC_CRX20iAL } from "./FANUC_CRX20iAL"
9
10
  import { FANUC_CRX25iA } from "./FANUC_CRX25iA"
10
11
  import { FANUC_CRX25iAL } from "./FANUC_CRX25iAL"
@@ -18,6 +19,7 @@ import { KUKA_KR270_R2700 } from "./KUKA_KR270_R2700"
18
19
  import { KUKA_KR6_R700_2 } from "./KUKA_KR6_R700_2"
19
20
  import { UniversalRobots_UR10CB } from "./UniversalRobots_UR10CB"
20
21
  import { UniversalRobots_UR10e } from "./UniversalRobots_UR10e"
22
+ import { UniversalRobots_UR16e } from "./UniversalRobots_UR16e"
21
23
  import { UniversalRobots_UR3CB } from "./UniversalRobots_UR3CB"
22
24
  import { UniversalRobots_UR3e } from "./UniversalRobots_UR3e"
23
25
  import { UniversalRobots_UR5CB } from "./UniversalRobots_UR5CB"
@@ -43,7 +45,6 @@ import { ErrorBoundary } from "react-error-boundary"
43
45
  import * as THREE from "three"
44
46
  import { externalizeComponent } from "../../externalizeComponent"
45
47
  import ConsoleFilter from "../ConsoleFilter"
46
- import { FANUC_CRX10iAL } from "./FANUC_CRX10iAL"
47
48
  import RobotAnimator from "./RobotAnimator"
48
49
  import type { RobotModelComponent } from "./types"
49
50
 
@@ -191,6 +192,9 @@ export const SupportedRobot = externalizeComponent(
191
192
  case "UniversalRobots_UR10e":
192
193
  Robot = UniversalRobots_UR10e
193
194
  break
195
+ case "UniversalRobots_UR16e":
196
+ Robot = UniversalRobots_UR16e
197
+ break
194
198
  case "Yaskawa_AR900":
195
199
  Robot = Yaskawa_AR900
196
200
  break
@@ -0,0 +1,234 @@
1
+ import { animated } from "@react-spring/three"
2
+ import { useGLTF } from "@react-three/drei"
3
+ import type { RobotModelProps } from "./types"
4
+
5
+ export function UniversalRobots_UR16e({
6
+ modelURL,
7
+ flangeRef,
8
+ ...props
9
+ }: RobotModelProps) {
10
+ const gltf = useGLTF(modelURL) as any
11
+ const nodes = gltf.nodes
12
+ const materials = gltf.materials
13
+
14
+ return (
15
+ <group {...props} dispose={null}>
16
+ <group name="Scene">
17
+ <group name="link_0">
18
+ <mesh
19
+ name="shape007"
20
+ geometry={nodes.shape007.geometry}
21
+ material={materials.universalrobots_stainlesssteel}
22
+ />
23
+ <mesh
24
+ name="shape007_1"
25
+ geometry={nodes.shape007_1.geometry}
26
+ material={materials.universalrobots_stainlesssteel}
27
+ />
28
+ <mesh
29
+ name="shape007_2"
30
+ geometry={nodes.shape007_2.geometry}
31
+ material={materials.universalrobots_aluminum}
32
+ />
33
+ <mesh
34
+ name="shape007_3"
35
+ geometry={nodes.shape007_3.geometry}
36
+ material={materials.universalrobots_aluminum}
37
+ />
38
+ <mesh
39
+ name="shape007_4"
40
+ geometry={nodes.shape007_4.geometry}
41
+ material={materials.universalrobots_black}
42
+ />
43
+ </group>
44
+ <animated.group name="UNIVERSALROBOTS_UR16E_J00">
45
+ <group name="link_1">
46
+ <mesh
47
+ name="shape039"
48
+ geometry={nodes.shape039.geometry}
49
+ material={materials.universalrobots_lightblue}
50
+ />
51
+ <mesh
52
+ name="shape039_1"
53
+ geometry={nodes.shape039_1.geometry}
54
+ material={materials.universalrobots_darkgrey}
55
+ />
56
+ <mesh
57
+ name="shape039_2"
58
+ geometry={nodes.shape039_2.geometry}
59
+ material={materials.universalrobots_stainlesssteel}
60
+ />
61
+ <mesh
62
+ name="shape039_3"
63
+ geometry={nodes.shape039_3.geometry}
64
+ material={materials.universalrobots_black}
65
+ />
66
+ </group>
67
+ <animated.group
68
+ name="UNIVERSALROBOTS_UR16E_J01"
69
+ position={[0, 0.181, 0]}
70
+ rotation={[Math.PI / 2, 0, 0]}
71
+ >
72
+ <group
73
+ name="link_2"
74
+ position={[0.181, 0, 0]}
75
+ rotation={[-Math.PI / 2, 0, Math.PI / 2]}
76
+ >
77
+ <mesh
78
+ name="shape002"
79
+ geometry={nodes.shape002.geometry}
80
+ material={materials.universalrobots_darkgrey}
81
+ />
82
+ <mesh
83
+ name="shape002_1"
84
+ geometry={nodes.shape002_1.geometry}
85
+ material={materials.universalrobots_black}
86
+ />
87
+ <mesh
88
+ name="shape002_2"
89
+ geometry={nodes.shape002_2.geometry}
90
+ material={materials.universalrobots_lightblue}
91
+ />
92
+ <mesh
93
+ name="shape002_3"
94
+ geometry={nodes.shape002_3.geometry}
95
+ material={materials.universalrobots_aluminum}
96
+ />
97
+ <mesh
98
+ name="shape002_4"
99
+ geometry={nodes.shape002_4.geometry}
100
+ material={materials.universalrobots_stainlesssteel}
101
+ />
102
+ </group>
103
+ <animated.group
104
+ name="UNIVERSALROBOTS_UR16E_J02"
105
+ position={[-0.478, 0, 0]}
106
+ >
107
+ <group
108
+ name="link_3"
109
+ position={[0.659, 0, 0]}
110
+ rotation={[-Math.PI / 2, 0, Math.PI / 2]}
111
+ >
112
+ <mesh
113
+ name="shape005"
114
+ geometry={nodes.shape005.geometry}
115
+ material={materials.universalrobots_stainlesssteel}
116
+ />
117
+ <mesh
118
+ name="shape005_1"
119
+ geometry={nodes.shape005_1.geometry}
120
+ material={materials.universalrobots_aluminum}
121
+ />
122
+ <mesh
123
+ name="shape005_2"
124
+ geometry={nodes.shape005_2.geometry}
125
+ material={materials.universalrobots_black}
126
+ />
127
+ <mesh
128
+ name="shape005_3"
129
+ geometry={nodes.shape005_3.geometry}
130
+ material={materials.universalrobots_lightblue}
131
+ />
132
+ <mesh
133
+ name="shape005_4"
134
+ geometry={nodes.shape005_4.geometry}
135
+ material={materials.universalrobots_darkgrey}
136
+ />
137
+ </group>
138
+ <animated.group
139
+ name="UNIVERSALROBOTS_UR16E_J03"
140
+ position={[-0.36, 0, 0]}
141
+ >
142
+ <group
143
+ name="link_4"
144
+ position={[0, 0, -1.019]}
145
+ rotation={[-Math.PI / 2, 0, Math.PI]}
146
+ >
147
+ <mesh
148
+ name="shape003"
149
+ geometry={nodes.shape003.geometry}
150
+ material={materials.universalrobots_lightblue}
151
+ />
152
+ <mesh
153
+ name="shape003_1"
154
+ geometry={nodes.shape003_1.geometry}
155
+ material={materials.universalrobots_darkgrey}
156
+ />
157
+ <mesh
158
+ name="shape003_2"
159
+ geometry={nodes.shape003_2.geometry}
160
+ material={materials.universalrobots_black}
161
+ />
162
+ <mesh
163
+ name="shape003_3"
164
+ geometry={nodes.shape003_3.geometry}
165
+ material={materials.universalrobots_stainlesssteel}
166
+ />
167
+ </group>
168
+ <animated.group
169
+ name="UNIVERSALROBOTS_UR16E_J04"
170
+ position={[0, 0.174, 0]}
171
+ rotation={[Math.PI / 2, 0, 0]}
172
+ >
173
+ <group
174
+ name="link_5"
175
+ position={[0, -1.019, 0.174]}
176
+ rotation={[Math.PI, 0, Math.PI]}
177
+ >
178
+ <mesh
179
+ name="shape"
180
+ geometry={nodes.shape.geometry}
181
+ material={materials.universalrobots_lightblue}
182
+ />
183
+ <mesh
184
+ name="shape_1"
185
+ geometry={nodes.shape_1.geometry}
186
+ material={materials.universalrobots_darkgrey}
187
+ />
188
+ <mesh
189
+ name="shape_2"
190
+ geometry={nodes.shape_2.geometry}
191
+ material={materials.universalrobots_black}
192
+ />
193
+ <mesh
194
+ name="shape_3"
195
+ geometry={nodes.shape_3.geometry}
196
+ material={materials.universalrobots_stainlesssteel}
197
+ />
198
+ </group>
199
+ <animated.group
200
+ name="UNIVERSALROBOTS_UR16E_J05"
201
+ position={[0, 0.12, 0]}
202
+ rotation={[-Math.PI / 2, 0, 0]}
203
+ >
204
+ <group
205
+ name="link_6"
206
+ position={[0, -0.174, -1.139]}
207
+ rotation={[-Math.PI / 2, 0, Math.PI]}
208
+ >
209
+ <mesh
210
+ name="shape004"
211
+ geometry={nodes.shape004.geometry}
212
+ material={materials.universalrobots_aluminum}
213
+ />
214
+ <mesh
215
+ name="shape004_1"
216
+ geometry={nodes.shape004_1.geometry}
217
+ material={materials.universalrobots_black}
218
+ />
219
+ </group>
220
+ <group
221
+ ref={flangeRef}
222
+ name="UNIVERSALROBOTS_UR16E_FLG"
223
+ position={[0, 0.117, 0]}
224
+ />
225
+ </animated.group>
226
+ </animated.group>
227
+ </animated.group>
228
+ </animated.group>
229
+ </animated.group>
230
+ </animated.group>
231
+ </group>
232
+ </group>
233
+ )
234
+ }
@@ -1 +1,3 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" fill="none"><path stroke="#fff" stroke-linecap="round" stroke-width="1.5" d="M18.5 12a6 6 0 1 0-6 6"/><path stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.5 11 2 2.5 2-2.5"/></svg>
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M8 16C5.76667 16 3.875 15.225 2.325 13.675C0.775 12.125 0 10.2333 0 8C0 5.76667 0.775 3.875 2.325 2.325C3.875 0.775 5.76667 0 8 0C9.15 0 10.25 0.2375 11.3 0.7125C12.35 1.1875 13.25 1.86667 14 2.75V0H16V7H9V5H13.2C12.6667 4.06667 11.9375 3.33333 11.0125 2.8C10.0875 2.26667 9.08333 2 8 2C6.33333 2 4.91667 2.58333 3.75 3.75C2.58333 4.91667 2 6.33333 2 8C2 9.66667 2.58333 11.0833 3.75 12.25C4.91667 13.4167 6.33333 14 8 14C9.28333 14 10.4417 13.6333 11.475 12.9C11.0583 14.1 12.5083 12.1667 11.475 12.9L12.9 14.325C11.4667 15.4417 9.83333 16 8 16Z" fill="white"/>
3
+ </svg>
@@ -212,7 +212,7 @@ export function createDarkTheme(): Theme {
212
212
  hovered: "rgba(241, 77, 66, 1)",
213
213
  disabled: "rgba(241, 77, 66, 1)",
214
214
  },
215
- color: "rgba(255, 255, 255, 1)",
215
+ color: "rgba(255, 198, 198, 1)",
216
216
  },
217
217
  Y: {
218
218
  backgroundColor: "rgba(20, 151, 108, 1)",
@@ -223,7 +223,7 @@ export function createDarkTheme(): Theme {
223
223
  disabled: "rgba(28, 188, 135, 1)",
224
224
  hovered: "rgba(28, 188, 135, 1)",
225
225
  },
226
- color: "rgba(255, 255, 255, 1)",
226
+ color: "rgba(215, 255, 242, 1)",
227
227
  },
228
228
  Z: {
229
229
  backgroundColor: "rgba(1, 87, 155, 1)",
@@ -234,7 +234,7 @@ export function createDarkTheme(): Theme {
234
234
  disabled: "rgba(2, 136, 209, 1)",
235
235
  hovered: "rgba(2, 136, 209, 1)",
236
236
  },
237
- color: "rgba(255, 255, 255, 1)",
237
+ color: "rgba(210, 239, 255, 1)",
238
238
  },
239
239
  },
240
240
  },