@archbase/components 3.0.25 → 4.0.0

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 (168) hide show
  1. package/dist/buttons/ArchbaseSpeedDial.d.ts +59 -0
  2. package/dist/buttons/index.d.ts +2 -0
  3. package/dist/charts/ArchbaseArcGauge.d.ts +55 -0
  4. package/dist/charts/ArchbaseGantt.d.ts +70 -0
  5. package/dist/charts/ArchbaseLinearGauge.d.ts +55 -0
  6. package/dist/charts/ArchbaseResourceTimeline.d.ts +61 -0
  7. package/dist/charts/ArchbaseSparkline.d.ts +45 -0
  8. package/dist/charts/index.d.ts +10 -0
  9. package/dist/containers/ArchbaseExpansionPanel.d.ts +60 -0
  10. package/dist/containers/ArchbaseFloatingPanel.d.ts +91 -0
  11. package/dist/containers/index.d.ts +4 -0
  12. package/dist/datagrid/export/ArchbaseDataGridExcelExport.d.ts +67 -0
  13. package/dist/datagrid/export/index.d.ts +2 -0
  14. package/dist/datagrid/index.d.ts +1 -0
  15. package/dist/display/ArchbaseAnimationWrapper.d.ts +73 -0
  16. package/dist/display/ArchbaseBarcodeGenerator.d.ts +50 -0
  17. package/dist/display/ArchbaseCarousel.d.ts +100 -0
  18. package/dist/display/ArchbaseCodeViewer.d.ts +63 -0
  19. package/dist/display/ArchbaseDiffViewer.d.ts +41 -0
  20. package/dist/display/ArchbaseJsonTree.d.ts +34 -0
  21. package/dist/display/ArchbaseLightbox.d.ts +89 -0
  22. package/dist/display/ArchbaseMarquee.d.ts +46 -0
  23. package/dist/display/ArchbasePhotoAlbum.d.ts +58 -0
  24. package/dist/display/ArchbaseQRCode.d.ts +44 -0
  25. package/dist/display/ArchbaseTooltipRich.d.ts +82 -0
  26. package/dist/display/ArchbaseVirtualList.d.ts +116 -0
  27. package/dist/display/index.d.ts +24 -0
  28. package/dist/editors/ArchbaseAIPromptInput.d.ts +69 -0
  29. package/dist/editors/ArchbaseAsyncMultiSelect.d.ts +1 -1
  30. package/dist/editors/ArchbaseAsyncSelect.d.ts +1 -1
  31. package/dist/editors/ArchbaseBarcodeScanner.d.ts +63 -0
  32. package/dist/editors/ArchbaseCepInput.d.ts +26 -0
  33. package/dist/editors/ArchbaseColorGradientPicker.d.ts +80 -0
  34. package/dist/editors/ArchbaseCpfCnpjInput.d.ts +21 -0
  35. package/dist/editors/ArchbaseCurrencyInput.d.ts +25 -0
  36. package/dist/editors/ArchbaseDualListbox.d.ts +61 -0
  37. package/dist/editors/ArchbaseInPlaceEditor.d.ts +67 -0
  38. package/dist/editors/ArchbaseLightGrid.d.ts +56 -0
  39. package/dist/editors/ArchbaseMentionInput.d.ts +75 -0
  40. package/dist/editors/ArchbaseMultiEmail.d.ts +53 -0
  41. package/dist/editors/ArchbaseMultiViewCalendar.d.ts +47 -0
  42. package/dist/editors/ArchbaseNumberStepper.d.ts +66 -0
  43. package/dist/editors/ArchbaseOTPInput.d.ts +27 -0
  44. package/dist/editors/ArchbasePhoneInput.d.ts +52 -0
  45. package/dist/editors/ArchbaseRangeSlider.d.ts +22 -0
  46. package/dist/editors/ArchbaseSignaturePad.d.ts +60 -0
  47. package/dist/editors/ArchbaseSpeechToTextInput.d.ts +106 -0
  48. package/dist/editors/ArchbaseSpreadsheet.d.ts +56 -0
  49. package/dist/editors/ArchbaseTagInput.d.ts +55 -0
  50. package/dist/editors/index.d.ts +40 -0
  51. package/dist/feedback/ArchbaseChunkProgressBar.d.ts +35 -0
  52. package/dist/feedback/ArchbaseRipple.d.ts +43 -0
  53. package/dist/feedback/ArchbaseSkeleton.d.ts +115 -0
  54. package/dist/feedback/index.d.ts +6 -0
  55. package/dist/filters/ArchbaseColumnSelector.d.ts +38 -0
  56. package/dist/filters/index.d.ts +2 -0
  57. package/dist/forms/ArchbaseFieldArray.d.ts +80 -0
  58. package/dist/forms/ArchbaseFormWizard.d.ts +73 -0
  59. package/dist/forms/ArchbaseStepper.d.ts +51 -0
  60. package/dist/forms/index.d.ts +8 -0
  61. package/dist/forms/useArchbaseFormWizard.d.ts +74 -0
  62. package/dist/hooks/index.d.ts +2 -0
  63. package/dist/hooks/useArchbaseConfirm.d.ts +59 -0
  64. package/dist/image/editor/index.d.ts +43 -4
  65. package/dist/image/index.d.ts +1 -0
  66. package/dist/index.css +1 -1
  67. package/dist/index.d.ts +1 -0
  68. package/dist/index.js +22510 -13820
  69. package/dist/list/ArchbaseTreeList.d.ts +76 -0
  70. package/dist/list/index.d.ts +2 -0
  71. package/dist/navigation/ArchbaseActionSheet.d.ts +70 -0
  72. package/dist/navigation/ArchbaseAppBar.d.ts +63 -0
  73. package/dist/navigation/ArchbaseBottomNavigation.d.ts +61 -0
  74. package/dist/navigation/ArchbaseContextMenu.d.ts +76 -0
  75. package/dist/navigation/ArchbaseKeyboardShortcuts.d.ts +85 -0
  76. package/dist/navigation/ArchbaseSpotlight.d.ts +69 -0
  77. package/dist/navigation/index.d.ts +12 -0
  78. package/dist/notification/ArchbaseNotificationCenter.d.ts +56 -0
  79. package/dist/notification/index.d.ts +2 -0
  80. package/dist/onboarding/ArchbaseOnboardingTour.d.ts +27 -76
  81. package/dist/viewers/ArchbaseDocViewer.d.ts +40 -0
  82. package/dist/viewers/ArchbasePdfBuilder.d.ts +53 -0
  83. package/dist/viewers/ArchbaseXmlViewer.d.ts +36 -0
  84. package/dist/viewers/index.d.ts +6 -0
  85. package/package.json +41 -18
  86. package/src/buttons/ArchbaseSpeedDial.tsx +282 -0
  87. package/src/buttons/index.ts +3 -0
  88. package/src/charts/ArchbaseArcGauge.tsx +325 -0
  89. package/src/charts/ArchbaseGantt.tsx +494 -0
  90. package/src/charts/ArchbaseLinearGauge.tsx +288 -0
  91. package/src/charts/ArchbaseResourceTimeline.tsx +433 -0
  92. package/src/charts/ArchbaseSparkline.tsx +193 -0
  93. package/src/charts/index.ts +20 -1
  94. package/src/containers/ArchbaseExpansionPanel.tsx +208 -0
  95. package/src/containers/ArchbaseFloatingPanel.tsx +448 -0
  96. package/src/containers/index.ts +17 -0
  97. package/src/datagrid/components/pagination/grid-pagination.tsx +2 -2
  98. package/src/datagrid/export/ArchbaseDataGridExcelExport.tsx +293 -0
  99. package/src/datagrid/export/index.ts +8 -0
  100. package/src/datagrid/index.tsx +2 -0
  101. package/src/display/ArchbaseAnimationWrapper.tsx +272 -0
  102. package/src/display/ArchbaseBarcodeGenerator.tsx +303 -0
  103. package/src/display/ArchbaseCarousel.tsx +679 -0
  104. package/src/display/ArchbaseCodeViewer.tsx +271 -0
  105. package/src/display/ArchbaseDiffViewer.tsx +108 -0
  106. package/src/display/ArchbaseJsonTree.tsx +150 -0
  107. package/src/display/ArchbaseLightbox.tsx +279 -0
  108. package/src/display/ArchbaseMarquee.tsx +268 -0
  109. package/src/display/ArchbasePhotoAlbum.tsx +415 -0
  110. package/src/display/ArchbaseQRCode.tsx +137 -0
  111. package/src/display/ArchbaseTooltipRich.tsx +317 -0
  112. package/src/display/ArchbaseVirtualList.tsx +618 -0
  113. package/src/display/index.ts +94 -1
  114. package/src/editors/ArchbaseAIPromptInput.tsx +432 -0
  115. package/src/editors/ArchbaseBarcodeScanner.tsx +570 -0
  116. package/src/editors/ArchbaseCepInput.tsx +173 -0
  117. package/src/editors/ArchbaseColorGradientPicker.tsx +460 -0
  118. package/src/editors/ArchbaseCpfCnpjInput.tsx +193 -0
  119. package/src/editors/ArchbaseCurrencyInput.tsx +100 -0
  120. package/src/editors/ArchbaseDualListbox.tsx +671 -0
  121. package/src/editors/ArchbaseInPlaceEditor.tsx +406 -0
  122. package/src/editors/ArchbaseLightGrid.tsx +538 -0
  123. package/src/editors/ArchbaseMentionInput.tsx +384 -0
  124. package/src/editors/ArchbaseMultiEmail.tsx +367 -0
  125. package/src/editors/ArchbaseMultiViewCalendar.tsx +439 -0
  126. package/src/editors/ArchbaseNumberStepper.tsx +219 -0
  127. package/src/editors/ArchbaseOTPInput.tsx +133 -0
  128. package/src/editors/ArchbaseOperationHoursEditor.tsx +1 -1
  129. package/src/editors/ArchbasePhoneInput.tsx +355 -0
  130. package/src/editors/ArchbaseRangeSlider.tsx +109 -0
  131. package/src/editors/ArchbaseSignaturePad.tsx +425 -0
  132. package/src/editors/ArchbaseSpeechToTextInput.tsx +444 -0
  133. package/src/editors/ArchbaseSpreadsheet.tsx +388 -0
  134. package/src/editors/ArchbaseTagInput.tsx +326 -0
  135. package/src/editors/index.tsx +92 -0
  136. package/src/feedback/ArchbaseChunkProgressBar.tsx +156 -0
  137. package/src/feedback/ArchbaseRipple.tsx +278 -0
  138. package/src/feedback/ArchbaseSkeleton.tsx +419 -0
  139. package/src/feedback/index.ts +22 -1
  140. package/src/filters/ArchbaseColumnSelector.tsx +268 -0
  141. package/src/filters/index.ts +2 -0
  142. package/src/forms/ArchbaseFieldArray.tsx +305 -0
  143. package/src/forms/ArchbaseFormWizard.tsx +284 -0
  144. package/src/forms/ArchbaseStepper.tsx +137 -0
  145. package/src/forms/index.ts +24 -2
  146. package/src/forms/useArchbaseFormWizard.ts +283 -0
  147. package/src/hooks/index.ts +12 -0
  148. package/src/hooks/useArchbaseConfirm.ts +293 -0
  149. package/src/image/editor/functions/image-processing.ts +5 -0
  150. package/src/image/editor/index.tsx +305 -391
  151. package/src/image/index.ts +1 -0
  152. package/src/index.ts +3 -0
  153. package/src/list/ArchbaseTreeList.tsx +422 -0
  154. package/src/list/index.ts +3 -0
  155. package/src/navigation/ArchbaseActionSheet.tsx +301 -0
  156. package/src/navigation/ArchbaseAppBar.tsx +233 -0
  157. package/src/navigation/ArchbaseBottomNavigation.tsx +243 -0
  158. package/src/navigation/ArchbaseContextMenu.tsx +298 -0
  159. package/src/navigation/ArchbaseKeyboardShortcuts.tsx +472 -0
  160. package/src/navigation/ArchbaseSpotlight.tsx +483 -0
  161. package/src/navigation/index.ts +48 -1
  162. package/src/notification/ArchbaseNotificationCenter.tsx +502 -0
  163. package/src/notification/index.ts +2 -0
  164. package/src/onboarding/ArchbaseOnboardingTour.tsx +229 -102
  165. package/src/viewers/ArchbaseDocViewer.tsx +584 -0
  166. package/src/viewers/ArchbasePdfBuilder.tsx +291 -0
  167. package/src/viewers/ArchbaseXmlViewer.tsx +142 -0
  168. package/src/viewers/index.ts +12 -0
@@ -5,3 +5,6 @@ export type {
5
5
  ArchbaseAction,
6
6
  ActionButtonsCustomComponentsDefinition,
7
7
  } from './ArchbaseActionButtons';
8
+
9
+ export { ArchbaseSpeedDial } from './ArchbaseSpeedDial';
10
+ export type { ArchbaseSpeedDialProps, ArchbaseSpeedDialAction } from './ArchbaseSpeedDial';
@@ -0,0 +1,325 @@
1
+ import React, { forwardRef, useMemo } from 'react';
2
+ import { Box, Text, Stack, MantineColor, MantineSize } from '@mantine/core';
3
+
4
+ export interface ArchbaseArcGaugeSegment {
5
+ /** Valor final do segmento (percentual 0-100) */
6
+ value: number;
7
+ /** Cor do segmento */
8
+ color: MantineColor;
9
+ /** Label opcional */
10
+ label?: string;
11
+ }
12
+
13
+ export interface ArchbaseArcGaugeProps {
14
+ /** Valor atual (0-100 ou dentro de min-max) */
15
+ value: number;
16
+ /** Valor mínimo */
17
+ min?: number;
18
+ /** Valor máximo */
19
+ max?: number;
20
+ /** Segmentos coloridos do gauge */
21
+ segments?: ArchbaseArcGaugeSegment[];
22
+ /** Cor padrão do arco */
23
+ color?: MantineColor;
24
+ /** Cor do fundo do arco */
25
+ backgroundColor?: MantineColor;
26
+ /** Cor do ponteiro */
27
+ needleColor?: MantineColor;
28
+ /** Ângulo de início (graus, 0 = direita) */
29
+ startAngle?: number;
30
+ /** Ângulo de fim (graus) */
31
+ endAngle?: number;
32
+ /** Tamanho do componente */
33
+ size?: number;
34
+ /** Espessura do arco */
35
+ thickness?: number;
36
+ /** Se deve mostrar o valor */
37
+ showValue?: boolean;
38
+ /** Formato do valor */
39
+ valueFormat?: (value: number) => string;
40
+ /** Sufixo do valor */
41
+ valueSuffix?: string;
42
+ /** Label inferior */
43
+ label?: string;
44
+ /** Tamanho do label */
45
+ labelSize?: MantineSize;
46
+ /** Se deve mostrar marcadores */
47
+ showTicks?: boolean;
48
+ /** Número de marcadores */
49
+ tickCount?: number;
50
+ /** Se deve mostrar labels nos marcadores */
51
+ showTickLabels?: boolean;
52
+ /** Classe CSS */
53
+ className?: string;
54
+ /** Estilo */
55
+ style?: React.CSSProperties;
56
+ }
57
+
58
+ export const ArchbaseArcGauge = forwardRef<HTMLDivElement, ArchbaseArcGaugeProps>(
59
+ (
60
+ {
61
+ value,
62
+ min = 0,
63
+ max = 100,
64
+ segments,
65
+ color = 'blue',
66
+ backgroundColor = 'gray.2',
67
+ needleColor = 'dark',
68
+ startAngle = 180,
69
+ endAngle = 0,
70
+ size = 200,
71
+ thickness = 20,
72
+ showValue = true,
73
+ valueFormat,
74
+ valueSuffix = '%',
75
+ label,
76
+ labelSize = 'sm',
77
+ showTicks = false,
78
+ tickCount = 5,
79
+ showTickLabels = false,
80
+ className,
81
+ style,
82
+ },
83
+ ref
84
+ ) => {
85
+ // Normaliza o valor para percentual
86
+ const normalizedValue = useMemo(() => {
87
+ const clamped = Math.min(max, Math.max(min, value));
88
+ return ((clamped - min) / (max - min)) * 100;
89
+ }, [max, min, value]);
90
+
91
+ // Calcula os parâmetros do arco
92
+ const arcParams = useMemo(() => {
93
+ const centerX = size / 2;
94
+ const centerY = size / 2;
95
+ const radius = (size - thickness) / 2 - 10; // Margem para ticks
96
+ const innerRadius = radius - thickness;
97
+
98
+ // Converte graus para radianos
99
+ const startRad = (startAngle * Math.PI) / 180;
100
+ const endRad = (endAngle * Math.PI) / 180;
101
+ const totalAngle = startRad - endRad;
102
+
103
+ // Calcula o ângulo do ponteiro
104
+ const needleAngle = startRad - (normalizedValue / 100) * totalAngle;
105
+
106
+ return {
107
+ centerX,
108
+ centerY,
109
+ radius,
110
+ innerRadius,
111
+ startRad,
112
+ endRad,
113
+ totalAngle,
114
+ needleAngle,
115
+ };
116
+ }, [endAngle, normalizedValue, size, startAngle, thickness]);
117
+
118
+ // Gera o path do arco
119
+ const createArcPath = (start: number, end: number, radius: number) => {
120
+ const { centerX, centerY } = arcParams;
121
+ const x1 = centerX + radius * Math.cos(start);
122
+ const y1 = centerY - radius * Math.sin(start);
123
+ const x2 = centerX + radius * Math.cos(end);
124
+ const y2 = centerY - radius * Math.sin(end);
125
+ const largeArc = start - end > Math.PI ? 1 : 0;
126
+
127
+ return `M ${x1} ${y1} A ${radius} ${radius} 0 ${largeArc} 1 ${x2} ${y2}`;
128
+ };
129
+
130
+ // Gera os segmentos do arco
131
+ const arcSegments = useMemo(() => {
132
+ const { startRad, totalAngle, radius } = arcParams;
133
+
134
+ if (!segments || segments.length === 0) {
135
+ // Arco único com cor padrão
136
+ const valueAngle = startRad - (normalizedValue / 100) * totalAngle;
137
+ return [
138
+ {
139
+ path: createArcPath(startRad, valueAngle, radius),
140
+ color: `var(--mantine-color-${color}-6)`,
141
+ },
142
+ ];
143
+ }
144
+
145
+ // Múltiplos segmentos
146
+ const result: Array<{ path: string; color: string }> = [];
147
+ let prevAngle = startRad;
148
+
149
+ segments.forEach((segment, index) => {
150
+ const segmentAngle = startRad - (Math.min(segment.value, normalizedValue) / 100) * totalAngle;
151
+ const prevValue = index === 0 ? 0 : segments[index - 1].value;
152
+
153
+ if (normalizedValue > prevValue) {
154
+ const fromAngle = startRad - (prevValue / 100) * totalAngle;
155
+ const toAngle = startRad - (Math.min(segment.value, normalizedValue) / 100) * totalAngle;
156
+
157
+ if (fromAngle !== toAngle) {
158
+ result.push({
159
+ path: createArcPath(fromAngle, toAngle, radius),
160
+ color: `var(--mantine-color-${segment.color}-6)`,
161
+ });
162
+ }
163
+ }
164
+
165
+ prevAngle = segmentAngle;
166
+ });
167
+
168
+ return result;
169
+ }, [arcParams, color, normalizedValue, segments]);
170
+
171
+ // Gera o path do background
172
+ const backgroundPath = useMemo(() => {
173
+ const { startRad, endRad, radius } = arcParams;
174
+ return createArcPath(startRad, endRad, radius);
175
+ }, [arcParams]);
176
+
177
+ // Gera os ticks
178
+ const ticks = useMemo(() => {
179
+ if (!showTicks) return [];
180
+
181
+ const { centerX, centerY, radius, startRad, totalAngle } = arcParams;
182
+ const result: Array<{
183
+ x1: number;
184
+ y1: number;
185
+ x2: number;
186
+ y2: number;
187
+ labelX: number;
188
+ labelY: number;
189
+ value: number;
190
+ }> = [];
191
+
192
+ for (let i = 0; i <= tickCount; i++) {
193
+ const tickValue = min + (i / tickCount) * (max - min);
194
+ const angle = startRad - (i / tickCount) * totalAngle;
195
+ const tickLength = 8;
196
+
197
+ const x1 = centerX + radius * Math.cos(angle);
198
+ const y1 = centerY - radius * Math.sin(angle);
199
+ const x2 = centerX + (radius + tickLength) * Math.cos(angle);
200
+ const y2 = centerY - (radius + tickLength) * Math.sin(angle);
201
+ const labelX = centerX + (radius + tickLength + 10) * Math.cos(angle);
202
+ const labelY = centerY - (radius + tickLength + 10) * Math.sin(angle);
203
+
204
+ result.push({ x1, y1, x2, y2, labelX, labelY, value: tickValue });
205
+ }
206
+
207
+ return result;
208
+ }, [arcParams, max, min, showTicks, tickCount]);
209
+
210
+ // Gera o path do ponteiro
211
+ const needlePath = useMemo(() => {
212
+ const { centerX, centerY, radius, needleAngle } = arcParams;
213
+ const needleLength = radius - 5;
214
+ const needleWidth = 4;
215
+
216
+ // Ponta do ponteiro
217
+ const tipX = centerX + needleLength * Math.cos(needleAngle);
218
+ const tipY = centerY - needleLength * Math.sin(needleAngle);
219
+
220
+ // Base do ponteiro (duas pontas)
221
+ const baseAngle1 = needleAngle + Math.PI / 2;
222
+ const baseAngle2 = needleAngle - Math.PI / 2;
223
+ const base1X = centerX + needleWidth * Math.cos(baseAngle1);
224
+ const base1Y = centerY - needleWidth * Math.sin(baseAngle1);
225
+ const base2X = centerX + needleWidth * Math.cos(baseAngle2);
226
+ const base2Y = centerY - needleWidth * Math.sin(baseAngle2);
227
+
228
+ return `M ${tipX} ${tipY} L ${base1X} ${base1Y} L ${base2X} ${base2Y} Z`;
229
+ }, [arcParams]);
230
+
231
+ // Formata o valor para exibição
232
+ const displayValue = useMemo(() => {
233
+ if (valueFormat) {
234
+ return valueFormat(value);
235
+ }
236
+ return `${Math.round(value)}${valueSuffix}`;
237
+ }, [value, valueFormat, valueSuffix]);
238
+
239
+ return (
240
+ <Stack ref={ref} gap={4} align="center" className={className} style={style}>
241
+ <svg width={size} height={size / 2 + 30} viewBox={`0 0 ${size} ${size / 2 + 30}`}>
242
+ {/* Background arc */}
243
+ <path
244
+ d={backgroundPath}
245
+ fill="none"
246
+ stroke={`var(--mantine-color-${backgroundColor})`}
247
+ strokeWidth={thickness}
248
+ strokeLinecap="round"
249
+ />
250
+
251
+ {/* Value arc(s) */}
252
+ {arcSegments.map((segment, index) => (
253
+ <path
254
+ key={index}
255
+ d={segment.path}
256
+ fill="none"
257
+ stroke={segment.color}
258
+ strokeWidth={thickness}
259
+ strokeLinecap="round"
260
+ />
261
+ ))}
262
+
263
+ {/* Ticks */}
264
+ {ticks.map((tick, index) => (
265
+ <g key={index}>
266
+ <line
267
+ x1={tick.x1}
268
+ y1={tick.y1}
269
+ x2={tick.x2}
270
+ y2={tick.y2}
271
+ stroke="var(--mantine-color-gray-5)"
272
+ strokeWidth={2}
273
+ />
274
+ {showTickLabels && (
275
+ <text
276
+ x={tick.labelX}
277
+ y={tick.labelY}
278
+ textAnchor="middle"
279
+ dominantBaseline="middle"
280
+ fontSize={10}
281
+ fill="var(--mantine-color-gray-6)"
282
+ >
283
+ {Math.round(tick.value)}
284
+ </text>
285
+ )}
286
+ </g>
287
+ ))}
288
+
289
+ {/* Needle */}
290
+ <path d={needlePath} fill={`var(--mantine-color-${needleColor}-7)`} />
291
+
292
+ {/* Center circle */}
293
+ <circle
294
+ cx={arcParams.centerX}
295
+ cy={arcParams.centerY}
296
+ r={8}
297
+ fill={`var(--mantine-color-${needleColor}-7)`}
298
+ />
299
+
300
+ {/* Value text */}
301
+ {showValue && (
302
+ <text
303
+ x={arcParams.centerX}
304
+ y={arcParams.centerY + 35}
305
+ textAnchor="middle"
306
+ fontSize={size / 8}
307
+ fontWeight={600}
308
+ fill="var(--mantine-color-dark-7)"
309
+ >
310
+ {displayValue}
311
+ </text>
312
+ )}
313
+ </svg>
314
+
315
+ {label && (
316
+ <Text size={labelSize} c="dimmed">
317
+ {label}
318
+ </Text>
319
+ )}
320
+ </Stack>
321
+ );
322
+ }
323
+ );
324
+
325
+ ArchbaseArcGauge.displayName = 'ArchbaseArcGauge';