@archbase/components 3.0.25 → 4.0.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.
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
@@ -0,0 +1,317 @@
1
+ import React, { forwardRef, ReactNode } from 'react';
2
+ import {
3
+ HoverCard,
4
+ HoverCardProps,
5
+ Stack,
6
+ Group,
7
+ Text,
8
+ Image,
9
+ Anchor,
10
+ Box,
11
+ MantineSize,
12
+ MantineColor,
13
+ MantineRadius,
14
+ } from '@mantine/core';
15
+ import { IconExternalLink } from '@tabler/icons-react';
16
+
17
+ export interface ArchbaseTooltipRichProps {
18
+ /** Elemento alvo (trigger) */
19
+ children: ReactNode;
20
+ /** Título do tooltip */
21
+ title: string;
22
+ /** Descrição */
23
+ description?: string;
24
+ /** URL da imagem */
25
+ image?: string;
26
+ /** Alt da imagem */
27
+ imageAlt?: string;
28
+ /** Altura da imagem */
29
+ imageHeight?: number;
30
+ /** Link "saiba mais" */
31
+ link?: string;
32
+ /** Label do link */
33
+ linkLabel?: string;
34
+ /** Se o link abre em nova aba */
35
+ linkExternal?: boolean;
36
+ /** Conteúdo customizado adicional */
37
+ footer?: ReactNode;
38
+ /** Largura do tooltip */
39
+ width?: number;
40
+ /** Delay para abrir */
41
+ openDelay?: number;
42
+ /** Delay para fechar */
43
+ closeDelay?: number;
44
+ /** Posição */
45
+ position?: HoverCardProps['position'];
46
+ /** Se deve ter seta */
47
+ withArrow?: boolean;
48
+ /** Tamanho da seta */
49
+ arrowSize?: number;
50
+ /** Raio das bordas */
51
+ radius?: MantineRadius;
52
+ /** Sombra */
53
+ shadow?: MantineSize;
54
+ /** Cor do título */
55
+ titleColor?: MantineColor;
56
+ /** Tamanho do título */
57
+ titleSize?: MantineSize;
58
+ /** Se está desabilitado */
59
+ disabled?: boolean;
60
+ /** Classe CSS */
61
+ className?: string;
62
+ /** Estilo */
63
+ style?: React.CSSProperties;
64
+ }
65
+
66
+ export const ArchbaseTooltipRich = forwardRef<HTMLDivElement, ArchbaseTooltipRichProps>(
67
+ (
68
+ {
69
+ children,
70
+ title,
71
+ description,
72
+ image,
73
+ imageAlt,
74
+ imageHeight = 120,
75
+ link,
76
+ linkLabel = 'Saiba mais',
77
+ linkExternal = true,
78
+ footer,
79
+ width = 280,
80
+ openDelay = 300,
81
+ closeDelay = 150,
82
+ position = 'top',
83
+ withArrow = true,
84
+ arrowSize = 8,
85
+ radius = 'md',
86
+ shadow = 'md',
87
+ titleColor,
88
+ titleSize = 'sm',
89
+ disabled = false,
90
+ className,
91
+ style,
92
+ },
93
+ ref
94
+ ) => {
95
+ if (disabled) {
96
+ return <>{children}</>;
97
+ }
98
+
99
+ return (
100
+ <HoverCard
101
+ width={width}
102
+ openDelay={openDelay}
103
+ closeDelay={closeDelay}
104
+ position={position}
105
+ withArrow={withArrow}
106
+ arrowSize={arrowSize}
107
+ radius={radius}
108
+ shadow={shadow}
109
+ >
110
+ <HoverCard.Target>{children}</HoverCard.Target>
111
+ <HoverCard.Dropdown ref={ref} className={className} style={style}>
112
+ <Stack gap="xs">
113
+ {/* Image */}
114
+ {image && (
115
+ <Image
116
+ src={image}
117
+ alt={imageAlt || title}
118
+ height={imageHeight}
119
+ radius="sm"
120
+ fit="cover"
121
+ />
122
+ )}
123
+
124
+ {/* Title */}
125
+ <Text size={titleSize} fw={600} c={titleColor}>
126
+ {title}
127
+ </Text>
128
+
129
+ {/* Description */}
130
+ {description && (
131
+ <Text size="xs" c="dimmed" lineClamp={4}>
132
+ {description}
133
+ </Text>
134
+ )}
135
+
136
+ {/* Link */}
137
+ {link && (
138
+ <Anchor
139
+ href={link}
140
+ target={linkExternal ? '_blank' : undefined}
141
+ rel={linkExternal ? 'noopener noreferrer' : undefined}
142
+ size="xs"
143
+ >
144
+ <Group gap={4}>
145
+ {linkLabel}
146
+ {linkExternal && <IconExternalLink size={12} />}
147
+ </Group>
148
+ </Anchor>
149
+ )}
150
+
151
+ {/* Footer */}
152
+ {footer && <Box mt={4}>{footer}</Box>}
153
+ </Stack>
154
+ </HoverCard.Dropdown>
155
+ </HoverCard>
156
+ );
157
+ }
158
+ );
159
+
160
+ ArchbaseTooltipRich.displayName = 'ArchbaseTooltipRich';
161
+
162
+ // ================== Variante com Avatar ==================
163
+
164
+ export interface ArchbaseTooltipUserProps {
165
+ /** Elemento alvo (trigger) */
166
+ children: ReactNode;
167
+ /** Nome do usuário */
168
+ name: string;
169
+ /** Email ou cargo */
170
+ subtitle?: string;
171
+ /** URL do avatar */
172
+ avatar?: string;
173
+ /** Status online */
174
+ status?: 'online' | 'offline' | 'away' | 'busy';
175
+ /** Bio ou descrição */
176
+ bio?: string;
177
+ /** Ações customizadas */
178
+ actions?: ReactNode;
179
+ /** Largura */
180
+ width?: number;
181
+ /** Delay para abrir */
182
+ openDelay?: number;
183
+ /** Delay para fechar */
184
+ closeDelay?: number;
185
+ /** Posição */
186
+ position?: HoverCardProps['position'];
187
+ /** Se deve ter seta */
188
+ withArrow?: boolean;
189
+ /** Classe CSS */
190
+ className?: string;
191
+ /** Estilo */
192
+ style?: React.CSSProperties;
193
+ }
194
+
195
+ export const ArchbaseTooltipUser = forwardRef<HTMLDivElement, ArchbaseTooltipUserProps>(
196
+ (
197
+ {
198
+ children,
199
+ name,
200
+ subtitle,
201
+ avatar,
202
+ status,
203
+ bio,
204
+ actions,
205
+ width = 300,
206
+ openDelay = 300,
207
+ closeDelay = 150,
208
+ position = 'top',
209
+ withArrow = true,
210
+ className,
211
+ style,
212
+ },
213
+ ref
214
+ ) => {
215
+ const statusColors: Record<string, MantineColor> = {
216
+ online: 'green',
217
+ offline: 'gray',
218
+ away: 'yellow',
219
+ busy: 'red',
220
+ };
221
+
222
+ const statusLabels: Record<string, string> = {
223
+ online: 'Online',
224
+ offline: 'Offline',
225
+ away: 'Ausente',
226
+ busy: 'Ocupado',
227
+ };
228
+
229
+ return (
230
+ <HoverCard
231
+ width={width}
232
+ openDelay={openDelay}
233
+ closeDelay={closeDelay}
234
+ position={position}
235
+ withArrow={withArrow}
236
+ shadow="md"
237
+ >
238
+ <HoverCard.Target>{children}</HoverCard.Target>
239
+ <HoverCard.Dropdown ref={ref} className={className} style={style}>
240
+ <Stack gap="sm">
241
+ <Group wrap="nowrap">
242
+ {/* Avatar */}
243
+ <Box
244
+ style={{
245
+ width: 48,
246
+ height: 48,
247
+ borderRadius: '50%',
248
+ backgroundColor: avatar ? undefined : 'var(--mantine-color-gray-3)',
249
+ backgroundImage: avatar ? `url(${avatar})` : undefined,
250
+ backgroundSize: 'cover',
251
+ backgroundPosition: 'center',
252
+ position: 'relative',
253
+ flexShrink: 0,
254
+ }}
255
+ >
256
+ {/* Status indicator */}
257
+ {status && (
258
+ <Box
259
+ style={{
260
+ position: 'absolute',
261
+ bottom: 0,
262
+ right: 0,
263
+ width: 14,
264
+ height: 14,
265
+ borderRadius: '50%',
266
+ backgroundColor: `var(--mantine-color-${statusColors[status]}-6)`,
267
+ border: '2px solid var(--mantine-color-body)',
268
+ }}
269
+ />
270
+ )}
271
+ </Box>
272
+
273
+ {/* Info */}
274
+ <Stack gap={2} style={{ flex: 1 }}>
275
+ <Text size="sm" fw={600}>
276
+ {name}
277
+ </Text>
278
+ {subtitle && (
279
+ <Text size="xs" c="dimmed">
280
+ {subtitle}
281
+ </Text>
282
+ )}
283
+ {status && (
284
+ <Group gap={4}>
285
+ <Box
286
+ style={{
287
+ width: 8,
288
+ height: 8,
289
+ borderRadius: '50%',
290
+ backgroundColor: `var(--mantine-color-${statusColors[status]}-6)`,
291
+ }}
292
+ />
293
+ <Text size="xs" c={statusColors[status]}>
294
+ {statusLabels[status]}
295
+ </Text>
296
+ </Group>
297
+ )}
298
+ </Stack>
299
+ </Group>
300
+
301
+ {/* Bio */}
302
+ {bio && (
303
+ <Text size="xs" c="dimmed" lineClamp={3}>
304
+ {bio}
305
+ </Text>
306
+ )}
307
+
308
+ {/* Actions */}
309
+ {actions && <Box>{actions}</Box>}
310
+ </Stack>
311
+ </HoverCard.Dropdown>
312
+ </HoverCard>
313
+ );
314
+ }
315
+ );
316
+
317
+ ArchbaseTooltipUser.displayName = 'ArchbaseTooltipUser';