@pipelinesolucoes/menu 1.0.1-beta.1 → 1.0.1-beta.10

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.
@@ -6,58 +6,39 @@ import { DrawerProps } from '@/types/Drawer';
6
6
  * - Drawer lateral (mini/expandido) com itens de navegação;
7
7
  * - Conteúdo principal à direita.
8
8
  *
9
+ * Inclui uma área de alertas no Drawer:
10
+ * - Quando o Drawer está aberto: exibe ícone + conteúdo (`alertContent`);
11
+ * - Quando o Drawer está fechado: exibe apenas o ícone (`alertIcon`);
12
+ * - Clique no ícone NÃO troca de aba; ações devem ficar dentro do `alertContent`.
13
+ *
9
14
  * Também suporta um estado de carregamento (`loading`) que exibe um overlay
10
15
  * escurecido com um spinner centralizado, desabilitando a interação com a página.
11
16
  *
12
- * @param {string} backgroundHeader Cor de fundo do AppBar.
13
- * @param {string} backgroundMenuAvatar Cor de fundo do menu Avatar.
14
- * @param {string} colorItemMenu Cor do ícone do menu e dos itens de menu.
15
- * @param {string} colorItemMenuSelected Cor do item de menu selecionado.
16
- * @param {number | string | null} idUsuarioLogado Id do usuário logado.
17
- * @param {string} nomeUsuarioLogado Nome do usuário logado.
18
- * @param {string} emailUsuario Email do usuário logado.
19
- * @param {Array<any>} menuItems Itens exibidos no Drawer.
20
- * @param {Array<any>} avatarMenuItems Itens exibidos no menu do avatar.
21
- * @param {string} profileImage URL final da imagem de avatar tratada.
22
- * @param {number} selectedIndex Índice do item selecionado.
23
- * @param {(index: number) => void} onChangeIndex Callback chamado ao alterar o item selecionado.
24
- * @param {() => void} [onUnauthenticated] Callback chamado se não tiver usuário logado.
25
- * @param {React.ReactNode} [toolbarContent] Conteúdos genéricos exibidos na barra de ferramentas (texto, ícones, imagens etc.).
26
- * @param {boolean} [loading=false] Indica se o overlay de loading deve ser exibido sobre toda a tela.
27
- * @param {string} [loadingBackgroundColor='rgba(0, 0, 0, 0.4)'] Cor de fundo do overlay de loading.
28
- * @param {number} [loadingSpinnerSize=48] Tamanho do spinner de loading.
29
- * @param {string} [loadingMessage] Texto opcional exibido abaixo do spinner de loading.
30
- * @param {string} [loadingColor='#ffffff'] Cor do spinner e do texto da mensagem de loading.
31
- *
32
- * Exibido apenas em `md` ou acima.
17
+ * @param {number} [activeTabIndex] Índice ativo controlado externamente (troca programática).
18
+ * @param {number} [defaultTabIndex=0] Índice inicial quando não controlado.
19
+ * @param {(index: number) => void} [onTabChange] Callback disparado ao trocar de aba/item.
20
+ * @param {React.ReactElement} [alertIcon] Ícone exibido na área de alertas (sempre visível).
21
+ * @param {React.ReactNode} [alertContent] Conteúdo renderizado quando o Drawer está aberto.
22
+ * @param {() => void} [onAlertIconClick] Callback ao clicar no ícone de alertas.
23
+ * @param {string} [alertAriaLabel='Open alerts'] Rótulo de acessibilidade do botão de alertas.
24
+ * @param {string | number} [alertWidth='100%'] Largura do container de alertas (quando aberto).
25
+ * @param {string | number} [alertPadding=12] Espaçamento interno do container de alertas (quando aberto).
26
+ * @param {string | number} [alertMargin=0] Margem do container de alertas (quando aberto).
27
+ * @param {string} [alertBackground='transparent'] Cor de fundo do container de alertas (quando aberto).
28
+ * @param {string} [alertColor='inherit'] Cor do texto dentro do container de alertas.
29
+ * @param {string | number} [alertBorderRadius=0] Raio da borda do container de alertas (quando aberto).
30
+ * @param {string} [alertBoxShadow='none'] Sombra do container de alertas (quando aberto).
33
31
  *
34
32
  * @example
35
33
  * ```tsx
36
- * import DesktopDrawer from '@/components/DesktopDrawer';
34
+ * import NotificationsIcon from '@mui/icons-material/Notifications';
37
35
  *
38
- * const Example = () => {
39
- * return (
40
- * <DesktopDrawer
41
- * backgroundHeader="#ffffff"
42
- * backgroundMenuAvatar="#f5f5f5"
43
- * colorItemMenu="#000000"
44
- * colorItemMenuSelected="#1976d2"
45
- * idUsuarioLogado={1}
46
- * nomeUsuarioLogado="John Doe"
47
- * emailUsuario="john.doe@email.com"
48
- * profileImage="/images/default-avatar.png"
49
- * menuItems={menuItems}
50
- * avatarMenuItems={avatarMenuItems}
51
- * selectedIndex={0}
52
- * onChangeIndex={(index) => console.log(index)}
53
- * loading={true}
54
- * loadingBackgroundColor="rgba(0, 0, 0, 0.6)"
55
- * loadingSpinnerSize={64}
56
- * loadingMessage="Carregando dados..."
57
- * loadingColor="#ffffff"
58
- * />
59
- * );
60
- * };
36
+ * <DesktopDrawer
37
+ * // ...props do drawer
38
+ * alertIcon={<NotificationsIcon />}
39
+ * alertContent={<MyAlerts onOpenModal={() => setOpen(true)} />}
40
+ * onAlertIconClick={() => console.log('clicou no ícone')}
41
+ * />
61
42
  * ```
62
43
  */
63
44
  declare const DesktopDrawer: React.FC<DrawerProps>;
@@ -81,128 +81,192 @@ const LoadingOverlay = styled('div', {
81
81
  pointerEvents: 'auto',
82
82
  color: overlayColor || '#ffffff',
83
83
  }));
84
+ const CardAvatar = styled('div')(() => ({
85
+ display: 'flex',
86
+ flexDirection: 'row',
87
+ alignItems: 'center',
88
+ justifyContent: 'start',
89
+ width: '100%',
90
+ gap: '16px',
91
+ marginBottom: '24px',
92
+ padding: '8px 20px',
93
+ }));
94
+ const AlertAreaWrapper = styled('div', {
95
+ shouldForwardProp: (prop) => ![
96
+ 'open',
97
+ 'width',
98
+ 'padding',
99
+ 'margin',
100
+ 'background',
101
+ 'color',
102
+ 'borderRadius',
103
+ 'boxShadow',
104
+ ].includes(prop),
105
+ })(({ theme, open, width, padding, margin, background, color, borderRadius, boxShadow }) => ({
106
+ width: open ? (width !== null && width !== void 0 ? width : '100%') : '100%',
107
+ padding: open ? (padding !== null && padding !== void 0 ? padding : theme.spacing(1, 1.5)) : 0,
108
+ margin: open ? (margin !== null && margin !== void 0 ? margin : theme.spacing(1, 0, 0, 0)) : 0,
109
+ background: open ? (background !== null && background !== void 0 ? background : 'transparent') : 'transparent',
110
+ color: color !== null && color !== void 0 ? color : 'inherit',
111
+ borderRadius: open ? (borderRadius !== null && borderRadius !== void 0 ? borderRadius : 0) : 0,
112
+ boxShadow: open ? (boxShadow !== null && boxShadow !== void 0 ? boxShadow : 'none') : 'none',
113
+ overflow: 'hidden',
114
+ }));
84
115
  /**
85
116
  * Layout desktop responsável por exibir:
86
117
  * - AppBar com botão de menu e informações do usuário;
87
118
  * - Drawer lateral (mini/expandido) com itens de navegação;
88
119
  * - Conteúdo principal à direita.
89
120
  *
121
+ * Inclui uma área de alertas no Drawer:
122
+ * - Quando o Drawer está aberto: exibe ícone + conteúdo (`alertContent`);
123
+ * - Quando o Drawer está fechado: exibe apenas o ícone (`alertIcon`);
124
+ * - Clique no ícone NÃO troca de aba; ações devem ficar dentro do `alertContent`.
125
+ *
90
126
  * Também suporta um estado de carregamento (`loading`) que exibe um overlay
91
127
  * escurecido com um spinner centralizado, desabilitando a interação com a página.
92
128
  *
93
- * @param {string} backgroundHeader Cor de fundo do AppBar.
94
- * @param {string} backgroundMenuAvatar Cor de fundo do menu Avatar.
95
- * @param {string} colorItemMenu Cor do ícone do menu e dos itens de menu.
96
- * @param {string} colorItemMenuSelected Cor do item de menu selecionado.
97
- * @param {number | string | null} idUsuarioLogado Id do usuário logado.
98
- * @param {string} nomeUsuarioLogado Nome do usuário logado.
99
- * @param {string} emailUsuario Email do usuário logado.
100
- * @param {Array<any>} menuItems Itens exibidos no Drawer.
101
- * @param {Array<any>} avatarMenuItems Itens exibidos no menu do avatar.
102
- * @param {string} profileImage URL final da imagem de avatar tratada.
103
- * @param {number} selectedIndex Índice do item selecionado.
104
- * @param {(index: number) => void} onChangeIndex Callback chamado ao alterar o item selecionado.
105
- * @param {() => void} [onUnauthenticated] Callback chamado se não tiver usuário logado.
106
- * @param {React.ReactNode} [toolbarContent] Conteúdos genéricos exibidos na barra de ferramentas (texto, ícones, imagens etc.).
107
- * @param {boolean} [loading=false] Indica se o overlay de loading deve ser exibido sobre toda a tela.
108
- * @param {string} [loadingBackgroundColor='rgba(0, 0, 0, 0.4)'] Cor de fundo do overlay de loading.
109
- * @param {number} [loadingSpinnerSize=48] Tamanho do spinner de loading.
110
- * @param {string} [loadingMessage] Texto opcional exibido abaixo do spinner de loading.
111
- * @param {string} [loadingColor='#ffffff'] Cor do spinner e do texto da mensagem de loading.
112
- *
113
- * Exibido apenas em `md` ou acima.
129
+ * @param {number} [activeTabIndex] Índice ativo controlado externamente (troca programática).
130
+ * @param {number} [defaultTabIndex=0] Índice inicial quando não controlado.
131
+ * @param {(index: number) => void} [onTabChange] Callback disparado ao trocar de aba/item.
132
+ * @param {React.ReactElement} [alertIcon] Ícone exibido na área de alertas (sempre visível).
133
+ * @param {React.ReactNode} [alertContent] Conteúdo renderizado quando o Drawer está aberto.
134
+ * @param {() => void} [onAlertIconClick] Callback ao clicar no ícone de alertas.
135
+ * @param {string} [alertAriaLabel='Open alerts'] Rótulo de acessibilidade do botão de alertas.
136
+ * @param {string | number} [alertWidth='100%'] Largura do container de alertas (quando aberto).
137
+ * @param {string | number} [alertPadding=12] Espaçamento interno do container de alertas (quando aberto).
138
+ * @param {string | number} [alertMargin=0] Margem do container de alertas (quando aberto).
139
+ * @param {string} [alertBackground='transparent'] Cor de fundo do container de alertas (quando aberto).
140
+ * @param {string} [alertColor='inherit'] Cor do texto dentro do container de alertas.
141
+ * @param {string | number} [alertBorderRadius=0] Raio da borda do container de alertas (quando aberto).
142
+ * @param {string} [alertBoxShadow='none'] Sombra do container de alertas (quando aberto).
114
143
  *
115
144
  * @example
116
145
  * ```tsx
117
- * import DesktopDrawer from '@/components/DesktopDrawer';
146
+ * import NotificationsIcon from '@mui/icons-material/Notifications';
118
147
  *
119
- * const Example = () => {
120
- * return (
121
- * <DesktopDrawer
122
- * backgroundHeader="#ffffff"
123
- * backgroundMenuAvatar="#f5f5f5"
124
- * colorItemMenu="#000000"
125
- * colorItemMenuSelected="#1976d2"
126
- * idUsuarioLogado={1}
127
- * nomeUsuarioLogado="John Doe"
128
- * emailUsuario="john.doe@email.com"
129
- * profileImage="/images/default-avatar.png"
130
- * menuItems={menuItems}
131
- * avatarMenuItems={avatarMenuItems}
132
- * selectedIndex={0}
133
- * onChangeIndex={(index) => console.log(index)}
134
- * loading={true}
135
- * loadingBackgroundColor="rgba(0, 0, 0, 0.6)"
136
- * loadingSpinnerSize={64}
137
- * loadingMessage="Carregando dados..."
138
- * loadingColor="#ffffff"
139
- * />
140
- * );
141
- * };
148
+ * <DesktopDrawer
149
+ * // ...props do drawer
150
+ * alertIcon={<NotificationsIcon />}
151
+ * alertContent={<MyAlerts onOpenModal={() => setOpen(true)} />}
152
+ * onAlertIconClick={() => console.log('clicou no ícone')}
153
+ * />
142
154
  * ```
143
155
  */
144
- const DesktopDrawer = ({ endPointLogout, backgroundHeader, backgroundMenuAvatar, colorItemMenu, colorItemMenuSelected, idUsuarioLogado, nomeUsuarioLogado, emailUsuario, profileImage, menuItems, avatarMenuItems, selectedIndex, onChangeIndex, onUnauthenticated, toolbarContent, loading, loadingBackgroundColor, loadingSpinnerSize, loadingMessage, loadingColor, }) => {
145
- var _a, _b;
156
+ const DesktopDrawer = ({ endPointLogout, backgroundHeader, backgroundMenuAvatar, colorItemMenu, colorItemMenuSelected, idUsuarioLogado, nomeUsuarioLogado, emailUsuario, profileImage, menuItems, avatarMenuItems, activeTabIndex, defaultTabIndex = 0, onTabChange, onUnauthenticated, toolbarContent, loading, loadingBackgroundColor, loadingSpinnerSize, loadingMessage, loadingColor, titulo, subtitulo, menu_opened = true, alert }) => {
157
+ var _a, _b, _c;
146
158
  const theme = useTheme();
147
159
  const { confirm, ConfirmMessagePortal } = useConfirmMessage();
148
- const [open, setOpen] = React.useState(false);
149
- //garante que chamamos onUnauthenticated uma única vez
160
+ const [open, setOpen] = React.useState(menu_opened);
161
+ const isControlled = typeof activeTabIndex === 'number';
162
+ const [internalIndex, setInternalIndex] = React.useState(defaultTabIndex);
163
+ React.useEffect(() => {
164
+ if (!isControlled) {
165
+ setInternalIndex(defaultTabIndex);
166
+ }
167
+ }, [defaultTabIndex, isControlled]);
168
+ const currentIndex = isControlled ? activeTabIndex : internalIndex;
150
169
  const hasFiredUnauth = React.useRef(false);
151
170
  React.useEffect(() => {
152
- // dispara quando terminou o loading
153
- if (!hasFiredUnauth.current &&
154
- loading === false &&
155
- idUsuarioLogado === null) {
171
+ if (!hasFiredUnauth.current && loading === false && idUsuarioLogado === null) {
156
172
  hasFiredUnauth.current = true;
157
173
  onUnauthenticated === null || onUnauthenticated === void 0 ? void 0 : onUnauthenticated();
158
174
  }
159
- }, [loading, idUsuarioLogado]);
175
+ }, [loading, idUsuarioLogado, onUnauthenticated]);
160
176
  if (loading === false && idUsuarioLogado === null) {
161
- // enquanto o pai decide o que fazer (redirect, etc.), você não renderiza nada
162
177
  return null;
163
178
  }
164
179
  const handleDrawerOpen = () => setOpen(true);
165
180
  const handleDrawerClose = () => setOpen(false);
166
- const [, setErrorMsg] = React.useState(null);
167
181
  const handleClickLogout = async () => {
168
- setErrorMsg(null);
169
- try {
170
- const accepted = await confirm({
171
- message: 'Deseja realmente sair?',
172
- confirmLabel: 'Ok',
173
- cancelLabel: 'Cancelar',
174
- closeOnBackdropClick: true,
175
- closeOnEsc: true,
176
- });
177
- if (!accepted)
178
- return;
179
- window.location.href = endPointLogout;
180
- }
181
- catch (e) {
182
- setErrorMsg('Ocorreu um erro no logout.');
182
+ const accepted = await confirm({
183
+ message: 'Deseja realmente sair?',
184
+ confirmLabel: 'Ok',
185
+ cancelLabel: 'Cancelar',
186
+ closeOnBackdropClick: true,
187
+ closeOnEsc: true,
188
+ });
189
+ if (!accepted)
190
+ return;
191
+ window.location.href = endPointLogout;
192
+ };
193
+ const handleSelectTab = (index) => {
194
+ onTabChange === null || onTabChange === void 0 ? void 0 : onTabChange(index);
195
+ if (!isControlled)
196
+ setInternalIndex(index);
197
+ };
198
+ const handleAlertClick = () => {
199
+ if (alert === null || alert === void 0 ? void 0 : alert.onAlertIconClick) {
200
+ alert === null || alert === void 0 ? void 0 : alert.onAlertIconClick();
201
+ return;
183
202
  }
203
+ // Comportamento padrão: se estiver fechado, abre. Se estiver aberto, não faz nada.
204
+ if (!open)
205
+ setOpen(true);
184
206
  };
207
+ const shouldRenderAlertArea = Boolean((alert === null || alert === void 0 ? void 0 : alert.alertIcon) || (alert === null || alert === void 0 ? void 0 : alert.alertContent));
185
208
  return (_jsxs(_Fragment, { children: [_jsxs(Box, { sx: { display: 'flex' }, children: [_jsx(AppBar, { position: "fixed", open: open, background: backgroundHeader, children: _jsxs(Toolbar, { children: [_jsx(IconButton, { "aria-label": "open drawer", onClick: handleDrawerOpen, edge: "start", sx: [
186
209
  { marginRight: 5, color: colorItemMenu },
187
210
  open && { display: 'none' },
188
- ], children: _jsx(MenuIcon, {}) }), _jsxs(ToolbarContent, { children: [toolbarContent && toolbarContent, _jsx(IconDrawerTrigger, { background: backgroundMenuAvatar, icon: _jsx(Avatar, { src: profileImage, alt: `foto do perfil de ${nomeUsuarioLogado}`, sx: { width: 48, height: 48, cursor: 'pointer' } }), children: _jsx(UserAvatarMenu, { userName: nomeUsuarioLogado, userEmail: emailUsuario, menuItems: avatarMenuItems, endPointLogout: endPointLogout }) })] })] }) }), _jsxs(Drawer, { variant: "permanent", open: open, children: [_jsx(DrawerHeader, { children: _jsx(IconButton, { onClick: handleDrawerClose, children: theme.direction === 'rtl' ? _jsx(ChevronRightIcon, {}) : _jsx(ChevronLeftIcon, {}) }) }), _jsx(Divider, {}), _jsxs(List, { children: [menuItems.map((item, index) => (_jsx(ListItem, { disablePadding: true, sx: { display: 'block' }, children: _jsxs(ListItemButton, { selected: selectedIndex === index, onClick: () => onChangeIndex(index), sx: {
211
+ ], children: _jsx(MenuIcon, {}) }), _jsxs(ToolbarContent, { children: [toolbarContent && toolbarContent, _jsx(IconDrawerTrigger, { background: backgroundMenuAvatar, icon: _jsx(Avatar, { src: profileImage, alt: `foto do perfil de ${nomeUsuarioLogado}`, sx: { width: 48, height: 48, cursor: 'pointer' } }), children: _jsx(UserAvatarMenu, { userName: nomeUsuarioLogado, userEmail: emailUsuario, menuItems: avatarMenuItems, endPointLogout: endPointLogout }) })] })] }) }), _jsxs(Drawer, { variant: "permanent", open: open, children: [_jsx(DrawerHeader, { children: _jsx(IconButton, { onClick: handleDrawerClose, children: theme.direction === 'rtl' ? _jsx(ChevronRightIcon, {}) : _jsx(ChevronLeftIcon, {}) }) }), _jsx(Divider, {}), _jsxs(List, { children: [open && titulo && (_jsxs(CardAvatar, { children: [_jsx(Avatar, { src: profileImage, alt: `foto do perfil de ${nomeUsuarioLogado}`, sx: { width: 48, height: 48, cursor: 'pointer' } }), _jsxs(Box, { display: "flex", flexDirection: "column", children: [_jsx(Typography, { variant: "subtitle2", color: colorItemMenu, children: titulo }), _jsx(Typography, { variant: "caption", color: colorItemMenu, children: subtitulo })] })] })), menuItems.map((item, index) => {
212
+ var _a;
213
+ return (_jsx(ListItem, { disablePadding: true, sx: { display: 'block' }, children: _jsxs(ListItemButton, { selected: currentIndex === index, onClick: () => handleSelectTab(index), sx: {
214
+ minHeight: 48,
215
+ px: 2.5,
216
+ justifyContent: open ? 'initial' : 'center',
217
+ color: currentIndex === index ? colorItemMenuSelected : colorItemMenu,
218
+ }, children: [_jsx(ListItemIcon, { sx: {
219
+ minWidth: 0,
220
+ justifyContent: 'center',
221
+ mr: open ? 3 : 'auto',
222
+ color: currentIndex === index ? colorItemMenuSelected : colorItemMenu,
223
+ }, children: item.icon }), _jsx(ListItemText, { primary: item.text, sx: { opacity: open ? 1 : 0 } })] }) }, (_a = item.text) !== null && _a !== void 0 ? _a : index));
224
+ }), shouldRenderAlertArea && (_jsx(ListItem, { disablePadding: true, sx: { display: 'block' }, children: _jsxs(ListItemButton, { onClick: handleAlertClick, sx: {
189
225
  minHeight: 48,
190
226
  px: 2.5,
191
227
  justifyContent: open ? 'initial' : 'center',
228
+ color: colorItemMenu,
229
+ // permite quebrar para a linha de baixo
230
+ flexWrap: open ? 'wrap' : 'nowrap',
231
+ alignItems: open ? 'flex-start' : 'center',
192
232
  }, children: [_jsx(ListItemIcon, { sx: {
193
233
  minWidth: 0,
194
234
  justifyContent: 'center',
195
235
  mr: open ? 3 : 'auto',
196
- }, children: item.icon }), _jsx(ListItemText, { primary: item.text, sx: { opacity: open ? 1 : 0 } })] }) }, item.text))), _jsx(Box, { height: "24px" }), _jsx(ListItem, { disablePadding: true, sx: { display: 'block' }, children: _jsxs(ListItemButton, { onClick: handleClickLogout, sx: {
236
+ color: colorItemMenu,
237
+ }, children: (_a = alert === null || alert === void 0 ? void 0 : alert.alertIcon) !== null && _a !== void 0 ? _a : _jsx(_Fragment, {}) }), _jsx(ListItemText, { primary: alert === null || alert === void 0 ? void 0 : alert.alertTitulo, sx: {
238
+ opacity: open ? 1 : 0,
239
+ // garante que o texto do título continue na mesma linha do ícone
240
+ flex: open ? '1 1 auto' : '0 0 auto',
241
+ m: 0,
242
+ } }), open && (_jsxs(AlertAreaWrapper, { open: open, width: alert === null || alert === void 0 ? void 0 : alert.alertWidth, padding: alert === null || alert === void 0 ? void 0 : alert.alertPadding, margin: alert === null || alert === void 0 ? void 0 : alert.alertMargin, background: alert === null || alert === void 0 ? void 0 : alert.alertBackground, color: alert === null || alert === void 0 ? void 0 : alert.alertColor, borderRadius: alert === null || alert === void 0 ? void 0 : alert.alertBorderRadius, boxShadow: alert === null || alert === void 0 ? void 0 : alert.alertBoxShadow,
243
+ // força o wrapper a "pular" para a próxima linha
244
+ style: {
245
+ flexBasis: '100%',
246
+ width: '100%',
247
+ // indent para alinhar com o começo do texto (mesmo alinhamento dos itens do menu)
248
+ marginLeft: 'calc(24px + 24px)', // (aprox) largura do ícone + gap do ListItemIcon
249
+ }, children: [_jsx(Typography, { component: "span", sx: {
250
+ position: 'absolute',
251
+ width: 1,
252
+ height: 1,
253
+ p: 0,
254
+ m: -1,
255
+ overflow: 'hidden',
256
+ clip: 'rect(0, 0, 0, 0)',
257
+ whiteSpace: 'nowrap',
258
+ border: 0,
259
+ }, children: alert === null || alert === void 0 ? void 0 : alert.alertAriaLabel }), alert === null || alert === void 0 ? void 0 : alert.alertContent] }))] }) })), _jsx(Box, { height: "24px" }), _jsx(ListItem, { disablePadding: true, sx: { display: 'block' }, children: _jsxs(ListItemButton, { onClick: handleClickLogout, sx: {
197
260
  minHeight: 48,
198
261
  px: 2.5,
199
262
  justifyContent: open ? 'initial' : 'center',
263
+ color: colorItemMenu,
200
264
  }, children: [_jsx(ListItemIcon, { sx: {
201
265
  minWidth: 0,
202
266
  justifyContent: 'center',
203
267
  mr: open ? 3 : 'auto',
204
268
  color: colorItemMenu,
205
- }, children: _jsx(LogoutIcon, {}) }), _jsx(ListItemText, { primary: "Sair", sx: { opacity: open ? 1 : 0 } })] }) }, "logout")] })] }), _jsxs(Box, { component: "main", sx: { flexGrow: 1, p: 3 }, children: [_jsx(DrawerHeader, {}), (_b = (_a = menuItems[selectedIndex]) === null || _a === void 0 ? void 0 : _a.component) !== null && _b !== void 0 ? _b : (_jsx(Typography, { children: "Selecione um item do menu." }))] }), ConfirmMessagePortal] }), loading && (_jsxs(LoadingOverlay, { overlayBackground: loadingBackgroundColor, overlayColor: loadingColor, children: [_jsx(CircularProgress, { size: loadingSpinnerSize, sx: { color: loadingColor, mb: loadingMessage ? 2 : 0 } }), loadingMessage && (_jsx(Typography, { sx: { mt: 2, color: loadingColor }, children: loadingMessage }))] }))] }));
269
+ }, children: _jsx(LogoutIcon, {}) }), _jsx(ListItemText, { primary: "Sair", sx: { opacity: open ? 1 : 0 } })] }) }, "logout")] })] }), _jsxs(Box, { component: "main", sx: { flexGrow: 1, p: 3 }, children: [_jsx(DrawerHeader, {}), (_c = (_b = menuItems[currentIndex]) === null || _b === void 0 ? void 0 : _b.component) !== null && _c !== void 0 ? _c : (_jsx(Typography, { children: "Selecione um item do menu." }))] }), ConfirmMessagePortal] }), loading && (_jsxs(LoadingOverlay, { overlayBackground: loadingBackgroundColor, overlayColor: loadingColor, children: [_jsx(CircularProgress, { size: loadingSpinnerSize, sx: { color: loadingColor, mb: loadingMessage ? 2 : 0 } }), loadingMessage && (_jsx(Typography, { sx: { mt: 2, color: loadingColor }, children: loadingMessage }))] }))] }));
206
270
  };
207
271
  DesktopDrawer.displayName = 'DesktopDrawer';
208
272
  export default DesktopDrawer;
@@ -1 +1 @@
1
- {"version":3,"file":"DesktopDrawer.js","sourceRoot":"","sources":["../../../src/components/drawer/DesktopDrawer.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAoB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,eAAe,MAAM,iCAAiC,CAAC;AAC9D,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,MAAM,WAAW,GAAG,CAAC,KAAY,EAAa,EAAE,CAAC,CAAC;IAChD,KAAK,EAAE,WAAW;IAClB,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE;QAC5C,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;QACtC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc;KACpD,CAAC;IACF,SAAS,EAAE,QAAQ;CACpB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,KAAY,EAAa,EAAE,CAAC,CAAC;IAChD,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE;QAC5C,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;QACtC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa;KACnD,CAAC;IACF,SAAS,EAAE,QAAQ;IACnB,KAAK,EAAE,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;IACxC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE;QAC5B,KAAK,EAAE,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KACzC;CACF,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,iBAChD,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,QAAQ,EACpB,cAAc,EAAE,UAAU,EAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,IACzB,KAAK,CAAC,MAAM,CAAC,OAAO,EACvB,CAAC,CAAC;AAEJ,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE;IAC/B,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAc,CAAC;CAC9E,CAAC,CAGC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,iBAClC,UAAU,EACV,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAC/B,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;QACxD,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;QACtC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa;KACnD,CAAC,IACC,CAAC,IAAI,IAAI;IACV,UAAU,EAAE,WAAW;IACvB,KAAK,EAAE,eAAe,WAAW,KAAK;IACtC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;QACxD,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;QACtC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc;KACpD,CAAC;CACH,CAAC,EACF,CAAC,CAAC;AAEJ,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE;IAC/B,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM;CAC7C,CAAC,CAEC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,iBACtB,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,QAAQ,EACpB,SAAS,EAAE,YAAY,IACpB,CAAC,IAAI;IACN,CAAC,iCACM,WAAW,CAAC,KAAK,CAAC,KACrB,oBAAoB,EAAE,WAAW,CAAC,KAAK,CAAC,IAE5C,CAAC,iCACM,WAAW,CAAC,KAAK,CAAC,KACrB,oBAAoB,EAAE,WAAW,CAAC,KAAK,CAAC,GACzC,CAAC,EACN,CAAC,CAAC;AAEJ,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1C,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,KAAK;IACrB,KAAK,EAAE,MAAM;IACb,GAAG,EAAE,MAAM;CACZ,CAAC,CAAC,CAAC;AAEJ,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,EAAE;IACnC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1B,CAAC,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAc,CAAC;CAClE,CAAC,CAGC,CAAC,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;IAC9B,eAAe,EAAE,iBAAiB,IAAI,oBAAoB;IAC1D,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,aAAa,EAAE,MAAM;IACrB,KAAK,EAAE,YAAY,IAAI,SAAS;CACjC,CAAC,CAAC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAM,aAAa,GAA0B,CAAC,EAC5C,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,eAAe,EACf,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,EAAE,EAAE;;IAEH,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAE9D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,yDAAyD;IACzD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,0CAA0C;QAC1C,IACE,CAAC,cAAc,CAAC,OAAO;YACvB,OAAO,KAAK,KAAK;YACjB,eAAe,KAAK,IAAI,EACxB,CAAC;YACD,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;YAC9B,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,EAAI,CAAC;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IAE/B,IAAI,OAAO,KAAK,KAAK,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAClD,8EAA8E;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE/C,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAE5D,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;QACnC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;gBAC7B,OAAO,EAAE,wBAAwB;gBACjC,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,UAAU;gBACvB,oBAAoB,EAAE,IAAI;gBAC1B,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEtB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,cAAc,CAAC;QAExC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,WAAW,CAAC,4BAA4B,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,8BACE,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAC,aAEzB,KAAC,MAAM,IAAC,QAAQ,EAAC,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,YAC/D,MAAC,OAAO,eACN,KAAC,UAAU,kBACE,aAAa,EACxB,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE;wCACF,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE;wCACxC,IAAI,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;qCAC5B,YAED,KAAC,QAAQ,KAAG,GACD,EAEb,MAAC,cAAc,eACZ,cAAc,IAAI,cAAc,EAEjC,KAAC,iBAAiB,IAChB,UAAU,EAAE,oBAAoB,EAChC,IAAI,EACF,KAAC,MAAM,IACL,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,qBAAqB,iBAAiB,EAAE,EAC7C,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAChD,YAGJ,KAAC,cAAc,IACb,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,eAAe,EAC1B,cAAc,EAAE,cAAc,GAC9B,GACgB,IACL,IACT,GACH,EAET,MAAC,MAAM,IAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAE,IAAI,aACpC,KAAC,YAAY,cACX,KAAC,UAAU,IAAC,OAAO,EAAE,iBAAiB,YACnC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAC,gBAAgB,KAAG,CAAC,CAAC,CAAC,KAAC,eAAe,KAAG,GAC5D,GACA,EAEf,KAAC,OAAO,KAAG,EAEX,MAAC,IAAI,eACF,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9B,KAAC,QAAQ,IAAiB,cAAc,QAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAC/D,MAAC,cAAc,IACb,QAAQ,EAAE,aAAa,KAAK,KAAK,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EACnC,EAAE,EAAE;gDACF,SAAS,EAAE,EAAE;gDACb,EAAE,EAAE,GAAG;gDACP,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;6CAC5C,aAED,KAAC,YAAY,IACX,EAAE,EAAE;wDACF,QAAQ,EAAE,CAAC;wDACX,cAAc,EAAE,QAAQ;wDACxB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;qDACtB,YAEA,IAAI,CAAC,IAAI,GACG,EACf,KAAC,YAAY,IACX,OAAO,EAAE,IAAI,CAAC,IAAI,EAClB,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAC7B,IACa,IAvBJ,IAAI,CAAC,IAAI,CAwBb,CACZ,CAAC,EAEF,KAAC,GAAG,IAAC,MAAM,EAAC,MAAM,GAAG,EAGrB,KAAC,QAAQ,IAAc,cAAc,QAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAC5D,MAAC,cAAc,IACb,OAAO,EAAE,iBAAiB,EAC1B,EAAE,EAAE;gDACF,SAAS,EAAE,EAAE;gDACb,EAAE,EAAE,GAAG;gDACP,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;6CAC5C,aAED,KAAC,YAAY,IACX,EAAE,EAAE;wDACF,QAAQ,EAAE,CAAC;wDACX,cAAc,EAAE,QAAQ;wDACxB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;wDACrB,KAAK,EAAE,aAAa;qDACrB,YAED,KAAC,UAAU,KAAG,GACD,EACf,KAAC,YAAY,IAAC,OAAO,EAAC,MAAM,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAI,IAC/C,IApBL,QAAQ,CAqBX,IACN,IACA,EAET,MAAC,GAAG,IAAC,SAAS,EAAC,MAAM,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,aAC7C,KAAC,YAAY,KAAG,EACf,MAAA,MAAA,SAAS,CAAC,aAAa,CAAC,0CAAE,SAAS,mCAAI,CACtC,KAAC,UAAU,6CAAwC,CACpD,IACG,EAEL,oBAAoB,IACjB,EAEL,OAAO,IAAI,CACV,MAAC,cAAc,IACb,iBAAiB,EAAE,sBAAsB,EACzC,YAAY,EAAE,YAAY,aAE1B,KAAC,gBAAgB,IAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAI,EACtG,cAAc,IAAI,CACjB,KAAC,UAAU,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,YAC3C,cAAc,GACJ,CACd,IACc,CAClB,IACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC;AAE5C,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"DesktopDrawer.js","sourceRoot":"","sources":["../../../src/components/drawer/DesktopDrawer.tsx"],"names":[],"mappings":"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"}
@@ -1,74 +1,42 @@
1
1
  import * as React from 'react';
2
2
  import { DrawerProps } from '@/types/Drawer';
3
+ type DrawerResponsiveProps = DrawerProps & {
4
+ /**
5
+ * Índice da aba/item ativo controlado externamente.
6
+ * Quando definido, o DrawerResponsive vira controlado.
7
+ */
8
+ activeTabIndex?: number;
9
+ /**
10
+ * Índice inicial quando não controlado por `activeTabIndex`.
11
+ */
12
+ defaultTabIndex?: number;
13
+ /**
14
+ * Callback disparado ao trocar de aba/item.
15
+ */
16
+ onTabChange?: (index: number) => void;
17
+ };
3
18
  /**
4
19
  * DrawerResponsive é um layout de navegação responsivo que:
5
- * - Em telas pequenas (xs/sm) usa o `MobileMiniDrawerLayout` (header + bottom navigation);
6
- * - Em telas médias ou maiores (md+) usa o `DesktopMiniDrawerLayout` (AppBar + Drawer).
20
+ * - Em telas pequenas (xs/sm) usa o `MobileDrawer`;
21
+ * - Em telas médias ou maiores (md+) usa o `DesktopDrawer`.
7
22
  *
8
- * @param {string} backgroundHeader Cor de fundo do AppBar.
9
- * @param {string} backgroundMenuAvatar Cor de fundo do menu Avatar.
10
- * @param {string} colorItemMenu Cor do ícone do menu e dos itens de menu.
11
- * @param {string} colorItemMenuSelected Cor do item de menu selecionado.
12
- * @param {number | string | null} idUsuarioLogado Id do usuário logado.
13
- * @param {string} nomeUsuarioLogado Nome do usuário logado.
14
- * @param {string} emailUsuario Email do usuário logado.
15
- * @param {Array<any>} menuItems Itens exibidos no Drawer.
16
- * @param {Array<any>} avatarMenuItems Itens exibidos no menu do avatar.
17
- * @param {string} profileImage URL final da imagem de avatar já tratada.
18
- * @param {number} selectedIndex Índice do item selecionado.
19
- * @param {(index: number) => void} onChangeIndex Callback chamado ao alterar o item selecionado.
20
- * @param {() => void} [onUnauthenticated] Callback chamado se não tiver usuário logado.
21
- * @param {React.ReactNode} [toolbarContent] Conteúdos genéricos exibidos na barra de ferramentas (texto, ícones, imagens etc.).
22
- * @param {boolean} [loading=false] Indica se o overlay de loading deve ser exibido sobre toda a tela.
23
- * @param {string} [loadingBackgroundColor='rgba(0, 0, 0, 0.4)'] Cor de fundo do overlay de loading.
24
- * @param {number} [loadingSpinnerSize=48] Tamanho do spinner de loading.
25
- * @param {string} [loadingMessage] Texto opcional exibido abaixo do spinner de loading.
26
- * @param {string} [loadingColor='#ffffff'] Cor do spinner e do texto da mensagem de loading.
27
- * @param {() => void} [onChangeIndex] Callback chamado quando o item de menu selecionado é alterado.
23
+ * @param {number} [activeTabIndex] Índice do item ativo controlado externamente (troca programática).
24
+ * @param {number} [defaultTabIndex=0] Índice inicial quando não controlado por `activeTabIndex`.
25
+ * @param {(index: number) => void} [onTabChange] Callback disparado ao trocar de aba/item.
28
26
  *
29
- *
30
- * Exemplo de uso:
27
+ * @example
31
28
  * ```tsx
32
- * <MiniDrawer
33
- * backgroundHeader="#ffffff"
34
- * colorMenuHamburguer="#000000"
35
- * nomeUsuarioLogado="John Doe"
36
- * menuItems={[
37
- * { text: 'Home', icon: <HomeIcon />, component: <HomePage /> },
38
- * { text: 'Configurações', icon: <SettingsIcon />, component: <SettingsPage /> },
39
- * ]}
40
- * />
29
+ * const Page = () => {
30
+ * const [tab, setTab] = React.useState(0);
31
+ * return (
32
+ * <DrawerResponsive
33
+ * activeTabIndex={tab}
34
+ * onTabChange={(i) => setTab(i)}
35
+ * // ...outras props
36
+ * />
37
+ * );
38
+ * };
41
39
  * ```
42
- *
43
- * ``` Como implementar o evento onChangeIndex
44
- * const Page = () => {
45
- * const [abaAtual, setAbaAtual] = React.useState(0);
46
- * const handleMenuIndexChange = (index: number) => {
47
- * setAbaAtual(index);
48
- * // Aqui você decide o que carregar:
49
- * switch (index) {
50
- * case 0:
51
- * // carregar dados da aba "Dashboard"
52
- * // fetchDashboard();
53
- * break;
54
- * case 1:
55
- * // carregar dados da aba "Consultas"
56
- * // fetchConsultas();
57
- * break;
58
- * case 2:
59
- * // carregar dados da aba "Financeiro"
60
- * // fetchFinanceiro();
61
- * break;
62
- * // etc...
63
- * }
64
- * };
65
- * return (
66
- * <DrawerResponsive
67
- * // ...outras props
68
- * onMenuIndexChange={handleMenuIndexChange}
69
- * />
70
- * );
71
- * };
72
40
  */
73
- declare const DrawerResponsive: React.FC<DrawerProps>;
41
+ declare const DrawerResponsive: React.FC<DrawerResponsiveProps>;
74
42
  export default DrawerResponsive;