@sula-tech/webcomponents 0.24.1 → 0.26.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.
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/sula-avatar_32.cjs.entry.js +47 -16
- package/dist/cjs/sula-avatar_32.cjs.entry.js.map +1 -1
- package/dist/cjs/sula-profile-menu.cjs.entry.js +1 -1
- package/dist/cjs/sula-profile-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/sula-profile-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/sula-workbench-menu.cjs.entry.js +98 -59
- package/dist/cjs/sula-workbench-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/sula-workbench-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/webcomponents.cjs.js +1 -1
- package/dist/collection/components/sula-button/sula-button.css +1 -1
- package/dist/collection/components/sula-icon/sula-icon.css +1 -1
- package/dist/collection/components/sula-loader/sula-loader.css +1 -1
- package/dist/collection/components/sula-modal/sula-modal.css +1 -1
- package/dist/collection/components/sula-modal/sula-modal.js +142 -11
- package/dist/collection/components/sula-modal/sula-modal.js.map +1 -1
- package/dist/collection/components/sula-modal/sula-modal.stories.js +48 -0
- package/dist/collection/components/sula-modal/sula-modal.stories.js.map +1 -1
- package/dist/collection/components/sula-profile-menu/sula-profile-menu.css +1 -1
- package/dist/collection/components/sula-switch/sula-switch.css +1 -1
- package/dist/collection/components/sula-workbench-menu/sula-workbench-menu.css +1 -1
- package/dist/collection/components/sula-workbench-menu/sula-workbench-menu.js +104 -84
- package/dist/collection/components/sula-workbench-menu/sula-workbench-menu.js.map +1 -1
- package/dist/collection/components/sula-workbench-menu/sula-workbench-menu.stories.js +182 -103
- package/dist/collection/components/sula-workbench-menu/sula-workbench-menu.stories.js.map +1 -1
- package/dist/components/{p-CGpfhGAG.js → p-0Fu7X8Ko.js} +3 -3
- package/dist/components/{p-CGpfhGAG.js.map → p-0Fu7X8Ko.js.map} +1 -1
- package/dist/components/{p-DK8hW-Cd.js → p-6BsVErKp.js} +3 -3
- package/dist/components/{p-DK8hW-Cd.js.map → p-6BsVErKp.js.map} +1 -1
- package/dist/components/{p-BORy1230.js → p-BlRYoc3b.js} +3 -3
- package/dist/components/{p-BORy1230.js.map → p-BlRYoc3b.js.map} +1 -1
- package/dist/components/{p-GEr9Dmhq.js → p-C0jaJr-I.js} +3 -3
- package/dist/components/{p-GEr9Dmhq.js.map → p-C0jaJr-I.js.map} +1 -1
- package/dist/components/{p-DwZCdDhF.js → p-CRJeD_Ch.js} +3 -3
- package/dist/components/{p-DwZCdDhF.js.map → p-CRJeD_Ch.js.map} +1 -1
- package/dist/components/{p-KitH8bea.js → p-CvCiJEK7.js} +5 -5
- package/dist/components/{p-KitH8bea.js.map → p-CvCiJEK7.js.map} +1 -1
- package/dist/components/{p-CWTfj4TV.js → p-Cwj-T_a3.js} +3 -3
- package/dist/components/{p-CWTfj4TV.js.map → p-Cwj-T_a3.js.map} +1 -1
- package/dist/components/{p-B_WIoxzn.js → p-DPBeKst1.js} +4 -4
- package/dist/components/{p-B_WIoxzn.js.map → p-DPBeKst1.js.map} +1 -1
- package/dist/components/{p-BssyNhpP.js → p-Dj-BkOJM.js} +5 -5
- package/dist/components/{p-BssyNhpP.js.map → p-Dj-BkOJM.js.map} +1 -1
- package/dist/components/{p-DEhN6ZhJ.js → p-KIC3LfH4.js} +3 -3
- package/dist/components/{p-DEhN6ZhJ.js.map → p-KIC3LfH4.js.map} +1 -1
- package/dist/components/sula-avatar.js +1 -1
- package/dist/components/sula-badge.js +1 -1
- package/dist/components/sula-breadcrumb.js +1 -1
- package/dist/components/sula-button.js +1 -1
- package/dist/components/sula-calendar.js +2 -2
- package/dist/components/sula-checkbox.js +1 -1
- package/dist/components/sula-chip.js +2 -2
- package/dist/components/sula-dropdown.js +1 -1
- package/dist/components/sula-icon-picker.js +4 -4
- package/dist/components/sula-icon.js +1 -1
- package/dist/components/sula-loader.js +1 -1
- package/dist/components/sula-menu-select-list.js +1 -1
- package/dist/components/sula-menu.js +1 -1
- package/dist/components/sula-modal.js +51 -15
- package/dist/components/sula-modal.js.map +1 -1
- package/dist/components/sula-profile-menu.js +1 -1
- package/dist/components/sula-progress-bar.js +1 -1
- package/dist/components/sula-search-bar.js +1 -1
- package/dist/components/sula-segmented-control.js +1 -1
- package/dist/components/sula-switch.js +1 -1
- package/dist/components/sula-tag.js +1 -1
- package/dist/components/sula-textfield.js +1 -1
- package/dist/components/sula-tiles.js +1 -1
- package/dist/components/sula-timeline-list.js +1 -1
- package/dist/components/sula-toast-stack.js +2 -2
- package/dist/components/sula-toast.js +1 -1
- package/dist/components/sula-toggle.js +1 -1
- package/dist/components/sula-tooltip.js +1 -1
- package/dist/components/sula-workbench-menu.js +102 -63
- package/dist/components/sula-workbench-menu.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sula-avatar_32.entry.js +47 -16
- package/dist/esm/sula-avatar_32.entry.js.map +1 -1
- package/dist/esm/sula-profile-menu.entry.js +1 -1
- package/dist/esm/sula-profile-menu.entry.js.map +1 -1
- package/dist/esm/sula-workbench-menu.entry.js +98 -59
- package/dist/esm/sula-workbench-menu.entry.js.map +1 -1
- package/dist/esm/webcomponents.js +1 -1
- package/dist/types/components/sula-modal/sula-modal.d.ts +21 -0
- package/dist/types/components/sula-modal/sula-modal.stories.d.ts +22 -0
- package/dist/types/components/sula-workbench-menu/sula-workbench-menu.d.ts +15 -13
- package/dist/types/components/sula-workbench-menu/sula-workbench-menu.stories.d.ts +14 -30
- package/dist/types/components.d.ts +69 -29
- package/dist/webcomponents/p-235dcb90.entry.js +880 -0
- package/dist/webcomponents/p-235dcb90.entry.js.map +1 -0
- package/dist/webcomponents/{p-907588e9.entry.js → p-40f33932.entry.js} +53 -20
- package/dist/webcomponents/p-40f33932.entry.js.map +1 -0
- package/dist/webcomponents/{p-88e5171a.entry.js → p-7e31b463.entry.js} +2 -2
- package/dist/webcomponents/sula-profile-menu.entry.esm.js.map +1 -1
- package/dist/webcomponents/sula-workbench-menu.entry.esm.js.map +1 -1
- package/dist/webcomponents/webcomponents.esm.js +9 -4
- package/package.json +1 -1
- package/dist/webcomponents/p-50ad82d0.entry.js +0 -827
- package/dist/webcomponents/p-50ad82d0.entry.js.map +0 -1
- package/dist/webcomponents/p-907588e9.entry.js.map +0 -1
- /package/dist/webcomponents/{p-88e5171a.entry.js.map → p-7e31b463.entry.js.map} +0 -0
|
@@ -73,7 +73,7 @@ const BRAND_IMAGE = `data:image/svg+xml;utf8,${encodeURIComponent(`
|
|
|
73
73
|
<path d="M52 24H35.5C31.3579 24 28 27.3579 28 31.5C28 35.6421 31.3579 39 35.5 39H44.5C48.6421 39 52 42.3579 52 46.5C52 50.6421 48.6421 54 44.5 54H28" stroke="white" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
|
|
74
74
|
</svg>
|
|
75
75
|
`)}`;
|
|
76
|
-
// Same items as the menu in production today
|
|
76
|
+
// Same items as the menu in production today.
|
|
77
77
|
const currentMenuItems = [
|
|
78
78
|
{ id: 'dashboard', label: 'Dashboard', icon: 'ph ph-house', selected: true },
|
|
79
79
|
{ id: 'exemplo', label: 'Exemplo menu', icon: 'ph ph-archive', children: [{ id: 'exemplo-usuarios', label: 'Usuários', icon: 'ph ph-user' }] },
|
|
@@ -189,7 +189,7 @@ const createStoryShell = () => {
|
|
|
189
189
|
contentPanel.style.borderRadius = '0 24px 24px 0';
|
|
190
190
|
contentPanel.style.color = '#6c6e6e';
|
|
191
191
|
contentPanel.style.fontSize = '14px';
|
|
192
|
-
contentPanel.textContent = 'Área de conteúdo.
|
|
192
|
+
contentPanel.textContent = 'Área de conteúdo. Até 3 níveis o menu expande em linha; se algum item chega ao 4º nível, toda a navegação vira drill-down com breadcrumb.';
|
|
193
193
|
shell.appendChild(contentPanel);
|
|
194
194
|
container.appendChild(shell);
|
|
195
195
|
return { container, shell };
|
|
@@ -199,6 +199,7 @@ export default {
|
|
|
199
199
|
tags: ['autodocs'],
|
|
200
200
|
argTypes: {
|
|
201
201
|
menuTitle: { control: 'text', defaultValue: 'Sula Hub', description: 'Título do menu.' },
|
|
202
|
+
image: { control: 'text', description: 'Imagem da marca no cabeçalho da raiz (URL ou data URI).' },
|
|
202
203
|
density: {
|
|
203
204
|
control: { type: 'select' },
|
|
204
205
|
options: Object.values(SulaMenuDensity),
|
|
@@ -209,13 +210,9 @@ export default {
|
|
|
209
210
|
options: Object.values(SulaMenuLabelOverflow),
|
|
210
211
|
description: 'Quebra ou ellipsis dos labels.',
|
|
211
212
|
},
|
|
212
|
-
drilldownLevel: {
|
|
213
|
-
control: { type: 'number', min: 1 },
|
|
214
|
-
description: 'Nível (1-based) a partir do qual itens com filhos abrem drill-down em vez de expandir em linha.',
|
|
215
|
-
},
|
|
216
213
|
drillPath: {
|
|
217
214
|
control: 'object',
|
|
218
|
-
description: 'Controla
|
|
215
|
+
description: 'Controla a navegação pelo host: ids da raiz até o item cujos filhos aparecem. No drill-down, array vazio volta à raiz; no modo em linha, os itens do caminho são expandidos. undefined deixa só os cliques navegarem.',
|
|
219
216
|
},
|
|
220
217
|
items: { control: 'object', description: 'Árvore de itens, recursiva.' },
|
|
221
218
|
itemSelected: { action: 'itemSelected', description: 'Emitido ao selecionar um item folha.' },
|
|
@@ -231,23 +228,23 @@ export default {
|
|
|
231
228
|
parameters: {
|
|
232
229
|
docs: {
|
|
233
230
|
description: {
|
|
234
|
-
component: 'Menu
|
|
231
|
+
component: 'Menu de navegação com dois modos, escolhidos pela profundidade dos items: com até 3 níveis, tudo expande em linha como no sula-menu; se algum item visível chega ao 4º nível, toda a navegação vira drill-down, e itens com filhos abrem um painel de um nível com breadcrumb e botão de voltar.',
|
|
235
232
|
},
|
|
236
233
|
},
|
|
237
234
|
},
|
|
238
235
|
};
|
|
239
236
|
const Template = (args) => {
|
|
240
|
-
var _a;
|
|
237
|
+
var _a, _b;
|
|
241
238
|
const { container, shell } = createStoryShell();
|
|
242
239
|
const el = document.createElement('sula-workbench-menu');
|
|
243
240
|
el.menuTitle = args.menuTitle;
|
|
241
|
+
el.image = (_a = args.image) !== null && _a !== void 0 ? _a : '';
|
|
244
242
|
el.density = args.density;
|
|
245
243
|
el.labelOverflow = args.labelOverflow;
|
|
246
|
-
el.drilldownLevel = args.drilldownLevel;
|
|
247
244
|
el.drillPath = args.drillPath;
|
|
248
245
|
el.items = cloneItems(args.items);
|
|
249
246
|
el.user = args.user;
|
|
250
|
-
el.profileItems = ((
|
|
247
|
+
el.profileItems = ((_b = args.profileItems) !== null && _b !== void 0 ? _b : hubProfileItems).map(item => (Object.assign({}, item)));
|
|
251
248
|
el.addEventListener('itemSelected', args.itemSelected);
|
|
252
249
|
el.addEventListener('itemClicked', args.itemClicked);
|
|
253
250
|
el.addEventListener('levelChanged', args.levelChanged);
|
|
@@ -263,14 +260,13 @@ Default.args = {
|
|
|
263
260
|
menuTitle: 'Sula Hub',
|
|
264
261
|
density: SulaMenuDensity.Default,
|
|
265
262
|
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
266
|
-
drilldownLevel: 3,
|
|
267
263
|
items: workbenchItems,
|
|
268
264
|
user: sampleUser,
|
|
269
265
|
};
|
|
270
266
|
Default.parameters = {
|
|
271
267
|
docs: {
|
|
272
268
|
description: {
|
|
273
|
-
story: 'Exemplo com 6 níveis reais
|
|
269
|
+
story: 'Exemplo com 6 níveis reais: como passa de 3 níveis, toda a navegação é drill-down, a partir da raiz. "Apólices" e "Veículos" usam um SVG no lugar do ícone de fonte (propriedade image do item). O rodapé mostra o usuário logado; clicar nele emite profileClicked.',
|
|
274
270
|
},
|
|
275
271
|
},
|
|
276
272
|
};
|
|
@@ -279,7 +275,6 @@ WithoutPhotoOrEmail.args = {
|
|
|
279
275
|
menuTitle: 'Sula Hub',
|
|
280
276
|
density: SulaMenuDensity.Default,
|
|
281
277
|
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
282
|
-
drilldownLevel: 3,
|
|
283
278
|
items: workbenchItems,
|
|
284
279
|
user: { name: 'Carlos Mendes' },
|
|
285
280
|
};
|
|
@@ -304,7 +299,6 @@ WithProfileMenu.args = {
|
|
|
304
299
|
menuTitle: 'Sula Hub',
|
|
305
300
|
density: SulaMenuDensity.Default,
|
|
306
301
|
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
307
|
-
drilldownLevel: 3,
|
|
308
302
|
items: currentMenuItems,
|
|
309
303
|
user: { name: 'Lucas Reichert', email: 'lucas.reichert@sulamerica.com.br' },
|
|
310
304
|
profileItems: hubProfileItems,
|
|
@@ -321,7 +315,6 @@ CustomProfileItems.args = {
|
|
|
321
315
|
menuTitle: 'Sula Hub',
|
|
322
316
|
density: SulaMenuDensity.Default,
|
|
323
317
|
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
324
|
-
drilldownLevel: 3,
|
|
325
318
|
items: workbenchItems,
|
|
326
319
|
user: sampleUser,
|
|
327
320
|
profileItems: [
|
|
@@ -347,6 +340,7 @@ export const ControlledDrillPath = (args) => {
|
|
|
347
340
|
const menu = container.querySelector('sula-workbench-menu');
|
|
348
341
|
const paths = {
|
|
349
342
|
Tree: [],
|
|
343
|
+
Sinistros: ['claims'],
|
|
350
344
|
'Cobertura': ['claims', 'claims-auto', 'claims-auto-coverage'],
|
|
351
345
|
'Terceiros': ['claims', 'claims-auto', 'claims-auto-coverage', 'claims-auto-third'],
|
|
352
346
|
};
|
|
@@ -366,14 +360,13 @@ ControlledDrillPath.args = {
|
|
|
366
360
|
menuTitle: 'Sula Hub',
|
|
367
361
|
density: SulaMenuDensity.Default,
|
|
368
362
|
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
369
|
-
drilldownLevel: 3,
|
|
370
363
|
items: workbenchItems,
|
|
371
364
|
user: sampleUser,
|
|
372
365
|
};
|
|
373
366
|
ControlledDrillPath.parameters = {
|
|
374
367
|
docs: {
|
|
375
368
|
description: {
|
|
376
|
-
story: 'O host controla o drill-down pela propriedade drillPath: os botões acima entram em Cobertura, em Terceiros ou voltam para a
|
|
369
|
+
story: 'O host controla o drill-down pela propriedade drillPath: os botões acima entram em Sinistros, em Cobertura, em Terceiros ou voltam para a raiz. Ids desconhecidos interrompem o caminho no último nível válido.',
|
|
377
370
|
},
|
|
378
371
|
},
|
|
379
372
|
};
|
|
@@ -382,108 +375,194 @@ InlineOnly.args = {
|
|
|
382
375
|
menuTitle: 'Sula Hub',
|
|
383
376
|
density: SulaMenuDensity.Default,
|
|
384
377
|
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
385
|
-
|
|
386
|
-
items: workbenchItems,
|
|
378
|
+
items: currentMenuItems,
|
|
387
379
|
user: sampleUser,
|
|
388
380
|
};
|
|
389
381
|
InlineOnly.parameters = {
|
|
390
382
|
docs: {
|
|
391
383
|
description: {
|
|
392
|
-
story: 'Com
|
|
384
|
+
story: 'Com no máximo 3 níveis, não há drill-down: o componente se comporta como o sula-menu, expandindo tudo em linha.',
|
|
393
385
|
},
|
|
394
386
|
},
|
|
395
387
|
};
|
|
396
|
-
const
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
container.style.gap = '32px';
|
|
405
|
-
container.style.alignItems = 'flex-start';
|
|
406
|
-
return container;
|
|
388
|
+
export const InlineWithExpandedPath = Template.bind({});
|
|
389
|
+
InlineWithExpandedPath.args = {
|
|
390
|
+
menuTitle: 'Sula Hub',
|
|
391
|
+
density: SulaMenuDensity.Default,
|
|
392
|
+
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
393
|
+
items: currentMenuItems,
|
|
394
|
+
drillPath: ['tech-portal', 'tech-cadastros'],
|
|
395
|
+
user: sampleUser,
|
|
407
396
|
};
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
caption.style.marginBottom = '12px';
|
|
415
|
-
const box = document.createElement('div');
|
|
416
|
-
box.style.height = '720px';
|
|
417
|
-
box.style.width = '350px';
|
|
418
|
-
box.style.display = 'flex';
|
|
419
|
-
box.style.background = '#ffffff';
|
|
420
|
-
box.style.border = '1px solid #e5e6e6';
|
|
421
|
-
box.style.borderRadius = '16px';
|
|
422
|
-
box.style.overflow = 'hidden';
|
|
423
|
-
column.appendChild(caption);
|
|
424
|
-
column.appendChild(box);
|
|
425
|
-
return { column, box };
|
|
426
|
-
};
|
|
427
|
-
// Fourth level under Tech Portal > Cadastros > Tribos. The current sula-menu stops at the third level,
|
|
428
|
-
// so in it "Tribos" stays a leaf; in the new menu it opens the drill-down.
|
|
429
|
-
const withFourthLevel = (items) => cloneItems(items).map(item => {
|
|
430
|
-
if (item.id !== 'tech-portal')
|
|
431
|
-
return item;
|
|
432
|
-
return Object.assign(Object.assign({}, item), { expanded: true, children: item.children.map(child => {
|
|
433
|
-
if (child.id !== 'tech-cadastros')
|
|
434
|
-
return child;
|
|
435
|
-
return Object.assign(Object.assign({}, child), { expanded: true, children: child.children.map(grandchild => grandchild.id === 'tech-tribos'
|
|
436
|
-
? Object.assign(Object.assign({}, grandchild), { children: [
|
|
437
|
-
{ id: 'tribo-saude', label: 'Tribo Saúde', icon: 'ph ph-heartbeat', selected: true },
|
|
438
|
-
{ id: 'tribo-odonto', label: 'Tribo Odonto', icon: 'ph ph-tooth' },
|
|
439
|
-
{ id: 'tribo-auto', label: 'Tribo Auto e Massificados', icon: 'ph ph-car' },
|
|
440
|
-
{ id: 'tribo-dados', label: 'Tribo Dados e Analytics', icon: 'ph ph-chart-line-up' },
|
|
441
|
-
] }) : grandchild) });
|
|
442
|
-
}) });
|
|
443
|
-
});
|
|
444
|
-
const withoutSelection = (items) => items.map(item => (Object.assign(Object.assign({}, item), { selected: false, children: item.children ? withoutSelection(item.children) : undefined })));
|
|
445
|
-
const clickMenuRow = (menu, label) => {
|
|
446
|
-
const row = Array.from(menu.shadowRoot.querySelectorAll('.menu-item, .submenu-item')).find(el => { var _a; return ((_a = el.textContent) === null || _a === void 0 ? void 0 : _a.trim()) === label; });
|
|
447
|
-
row === null || row === void 0 ? void 0 : row.click();
|
|
448
|
-
};
|
|
449
|
-
const renderComparison = (items, drillTo) => {
|
|
450
|
-
const container = createComparisonShell();
|
|
451
|
-
const current = createComparisonColumn('sula-menu (atual)');
|
|
452
|
-
const currentMenu = document.createElement('sula-menu');
|
|
453
|
-
currentMenu.menuTitle = 'Sula Hub';
|
|
454
|
-
currentMenu.image = BRAND_IMAGE;
|
|
455
|
-
currentMenu.items = cloneItems(items);
|
|
456
|
-
current.box.appendChild(currentMenu);
|
|
457
|
-
const workbench = createComparisonColumn('sula-workbench-menu (novo)');
|
|
458
|
-
const workbenchMenu = document.createElement('sula-workbench-menu');
|
|
459
|
-
workbenchMenu.menuTitle = 'Sula Hub';
|
|
460
|
-
workbenchMenu.image = BRAND_IMAGE;
|
|
461
|
-
workbenchMenu.user = sampleUser;
|
|
462
|
-
workbenchMenu.items = cloneItems(items);
|
|
463
|
-
workbench.box.appendChild(workbenchMenu);
|
|
464
|
-
if (drillTo) {
|
|
465
|
-
customElements
|
|
466
|
-
.whenDefined('sula-workbench-menu')
|
|
467
|
-
.then(() => workbenchMenu.componentOnReady())
|
|
468
|
-
.then(() => clickMenuRow(workbenchMenu, drillTo));
|
|
469
|
-
}
|
|
470
|
-
container.appendChild(current.column);
|
|
471
|
-
container.appendChild(workbench.column);
|
|
472
|
-
return container;
|
|
397
|
+
InlineWithExpandedPath.parameters = {
|
|
398
|
+
docs: {
|
|
399
|
+
description: {
|
|
400
|
+
story: 'Sem drill-down, drillPath expande em linha os itens do caminho (Tech Portal e Cadastros) uma única vez; o usuário pode recolhê-los depois.',
|
|
401
|
+
},
|
|
402
|
+
},
|
|
473
403
|
};
|
|
474
|
-
export const
|
|
475
|
-
|
|
404
|
+
export const FourthLevelBreadcrumb = Template.bind({});
|
|
405
|
+
FourthLevelBreadcrumb.args = {
|
|
406
|
+
menuTitle: 'Sula Hub',
|
|
407
|
+
density: SulaMenuDensity.Default,
|
|
408
|
+
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
409
|
+
items: workbenchItems,
|
|
410
|
+
drillPath: ['claims', 'claims-auto', 'claims-auto-coverage', 'claims-auto-third'],
|
|
411
|
+
user: sampleUser,
|
|
412
|
+
};
|
|
413
|
+
FourthLevelBreadcrumb.parameters = {
|
|
476
414
|
docs: {
|
|
477
415
|
description: {
|
|
478
|
-
story: '
|
|
416
|
+
story: 'Drill-down no quarto nível: duas faixas de camadas na borda esquerda, breadcrumb com o nome do menu, reticências (o dropdown lista os níveis ocultos) e os dois últimos ancestrais, e o título do nível atual.',
|
|
479
417
|
},
|
|
480
418
|
},
|
|
481
419
|
};
|
|
482
|
-
export const
|
|
483
|
-
|
|
420
|
+
export const WithBrandImage = Template.bind({});
|
|
421
|
+
WithBrandImage.args = {
|
|
422
|
+
menuTitle: 'Sula Hub',
|
|
423
|
+
image: BRAND_IMAGE,
|
|
424
|
+
density: SulaMenuDensity.Default,
|
|
425
|
+
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
426
|
+
items: currentMenuItems,
|
|
427
|
+
user: sampleUser,
|
|
428
|
+
};
|
|
429
|
+
WithBrandImage.parameters = {
|
|
430
|
+
docs: {
|
|
431
|
+
description: {
|
|
432
|
+
story: 'Imagem da marca ao lado do título no cabeçalho da raiz. No drill-down o cabeçalho segue o protótipo e não mostra a imagem.',
|
|
433
|
+
},
|
|
434
|
+
},
|
|
435
|
+
};
|
|
436
|
+
const longLabelItems = [
|
|
437
|
+
{ id: 'inicio', label: 'Início', icon: 'ph ph-house' },
|
|
438
|
+
{
|
|
439
|
+
id: 'long-root',
|
|
440
|
+
label: 'Plataforma de Gestão Integrada de Sinistros e Apólices',
|
|
441
|
+
icon: 'ph ph-buildings',
|
|
442
|
+
children: [
|
|
443
|
+
{
|
|
444
|
+
id: 'long-contracts',
|
|
445
|
+
label: 'Administração de Contratos Corporativos de Longa Duração',
|
|
446
|
+
icon: 'ph ph-briefcase',
|
|
447
|
+
children: [
|
|
448
|
+
{
|
|
449
|
+
id: 'long-coverage',
|
|
450
|
+
label: 'Coberturas Adicionais para Terceiros e Beneficiários',
|
|
451
|
+
icon: 'ph ph-shield-check',
|
|
452
|
+
children: [
|
|
453
|
+
{
|
|
454
|
+
id: 'long-docs',
|
|
455
|
+
label: 'Documentação Complementar Exigida pela Seguradora',
|
|
456
|
+
icon: 'ph ph-folder-open',
|
|
457
|
+
children: [
|
|
458
|
+
{ id: 'long-address', label: 'Comprovante de residência atualizado nos últimos noventa dias', icon: 'ph ph-map-pin' },
|
|
459
|
+
{ id: 'long-short', label: 'Curto', icon: 'ph ph-file' },
|
|
460
|
+
],
|
|
461
|
+
},
|
|
462
|
+
],
|
|
463
|
+
},
|
|
464
|
+
],
|
|
465
|
+
},
|
|
466
|
+
],
|
|
467
|
+
},
|
|
468
|
+
];
|
|
469
|
+
const longLabelPath = ['long-root', 'long-contracts', 'long-coverage', 'long-docs'];
|
|
470
|
+
export const LongLabels = Template.bind({});
|
|
471
|
+
LongLabels.args = {
|
|
472
|
+
menuTitle: 'Sula Hub',
|
|
473
|
+
density: SulaMenuDensity.Default,
|
|
474
|
+
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
475
|
+
items: longLabelItems,
|
|
476
|
+
drillPath: longLabelPath,
|
|
477
|
+
user: { name: 'Maria Fernanda Albuquerque de Souza', email: 'maria.fernanda.albuquerque.de.souza@sulamerica.com.br' },
|
|
478
|
+
};
|
|
479
|
+
LongLabels.parameters = {
|
|
480
|
+
docs: {
|
|
481
|
+
description: {
|
|
482
|
+
story: 'Textos longos no drill-down: o título do nível quebra em até duas linhas, os itens quebram em até duas linhas (a seta fica na primeira), o breadcrumb encolhe com reticências e o rodapé corta nome e e-mail.',
|
|
483
|
+
},
|
|
484
|
+
},
|
|
485
|
+
};
|
|
486
|
+
export const LongLabelsTruncate = Template.bind({});
|
|
487
|
+
LongLabelsTruncate.args = Object.assign(Object.assign({}, LongLabels.args), { labelOverflow: SulaMenuLabelOverflow.Truncate });
|
|
488
|
+
LongLabelsTruncate.parameters = {
|
|
489
|
+
docs: {
|
|
490
|
+
description: {
|
|
491
|
+
story: 'Os mesmos textos longos com labelOverflow="truncate": os itens ficam em uma linha, com reticências.',
|
|
492
|
+
},
|
|
493
|
+
},
|
|
494
|
+
};
|
|
495
|
+
export const CompactDensity = Template.bind({});
|
|
496
|
+
CompactDensity.args = {
|
|
497
|
+
menuTitle: 'Sula Hub',
|
|
498
|
+
density: SulaMenuDensity.Compact,
|
|
499
|
+
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
500
|
+
items: currentMenuItems,
|
|
501
|
+
user: sampleUser,
|
|
502
|
+
};
|
|
503
|
+
CompactDensity.parameters = {
|
|
504
|
+
docs: {
|
|
505
|
+
description: {
|
|
506
|
+
story: 'Densidade compacta: itens da raiz com menos espaço vertical.',
|
|
507
|
+
},
|
|
508
|
+
},
|
|
509
|
+
};
|
|
510
|
+
export const ComfortableDensity = Template.bind({});
|
|
511
|
+
ComfortableDensity.args = {
|
|
512
|
+
menuTitle: 'Sula Hub',
|
|
513
|
+
density: SulaMenuDensity.Comfortable,
|
|
514
|
+
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
515
|
+
items: currentMenuItems,
|
|
516
|
+
user: sampleUser,
|
|
517
|
+
};
|
|
518
|
+
ComfortableDensity.parameters = {
|
|
519
|
+
docs: {
|
|
520
|
+
description: {
|
|
521
|
+
story: 'Densidade confortável: itens da raiz maiores e com mais espaço.',
|
|
522
|
+
},
|
|
523
|
+
},
|
|
524
|
+
};
|
|
525
|
+
export const HiddenAndDisabledItems = Template.bind({});
|
|
526
|
+
HiddenAndDisabledItems.args = {
|
|
527
|
+
menuTitle: 'Sula Hub',
|
|
528
|
+
density: SulaMenuDensity.Default,
|
|
529
|
+
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
530
|
+
items: [
|
|
531
|
+
{ id: 'home', label: 'Início', icon: 'ph ph-house', selected: true },
|
|
532
|
+
{ id: 'reports', label: 'Relatórios', icon: 'ph ph-chart-bar', disabled: true },
|
|
533
|
+
{ id: 'secret', label: 'Oculto', icon: 'ph ph-eye-slash', hidden: true },
|
|
534
|
+
{
|
|
535
|
+
id: 'admin',
|
|
536
|
+
label: 'Administração',
|
|
537
|
+
icon: 'ph ph-gear',
|
|
538
|
+
children: [
|
|
539
|
+
{ id: 'admin-users', label: 'Usuários', icon: 'ph ph-users' },
|
|
540
|
+
{ id: 'admin-audit', label: 'Auditoria', icon: 'ph ph-clipboard-text', disabled: true },
|
|
541
|
+
{ id: 'admin-hidden', label: 'Oculto', icon: 'ph ph-eye-slash', hidden: true },
|
|
542
|
+
],
|
|
543
|
+
},
|
|
544
|
+
],
|
|
545
|
+
user: sampleUser,
|
|
546
|
+
};
|
|
547
|
+
HiddenAndDisabledItems.parameters = {
|
|
548
|
+
docs: {
|
|
549
|
+
description: {
|
|
550
|
+
story: 'Itens hidden não aparecem (nem contam para a profundidade) e itens disabled ficam esmaecidos e não respondem a cliques.',
|
|
551
|
+
},
|
|
552
|
+
},
|
|
553
|
+
};
|
|
554
|
+
export const WithoutUser = Template.bind({});
|
|
555
|
+
WithoutUser.args = {
|
|
556
|
+
menuTitle: 'Sula Hub',
|
|
557
|
+
density: SulaMenuDensity.Default,
|
|
558
|
+
labelOverflow: SulaMenuLabelOverflow.Wrap,
|
|
559
|
+
items: workbenchItems,
|
|
560
|
+
user: undefined,
|
|
561
|
+
};
|
|
562
|
+
WithoutUser.parameters = {
|
|
484
563
|
docs: {
|
|
485
564
|
description: {
|
|
486
|
-
story: '
|
|
565
|
+
story: 'Sem a propriedade user o rodapé e o menu de perfil não são renderizados.',
|
|
487
566
|
},
|
|
488
567
|
},
|
|
489
568
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sula-workbench-menu.stories.js","sourceRoot":"","sources":["../../../src/components/sula-workbench-menu/sula-workbench-menu.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { SulaMenuDensity, SulaMenuLabelOverflow } from '../sula-menu/model/sula-menu.model';\nimport { SulaMenuMainItem } from '../sula-menu/model/sula-menu.model';\nimport { SulaProfileMenuItem, SulaProfileMenuSwitchChange } from '../sula-profile-menu/model/sula-profile-menu.model';\nimport { SulaWorkbenchMenuItem, SulaWorkbenchMenuUser } from './model/sula-workbench-menu.model';\n\ntype StoryArgs = {\n\tmenuTitle: string;\n\tdensity: SulaMenuDensity;\n\tlabelOverflow: SulaMenuLabelOverflow;\n\tdrilldownLevel: number;\n\tdrillPath?: string[];\n\titems: SulaWorkbenchMenuItem[];\n\tuser: SulaWorkbenchMenuUser;\n\tprofileItems?: SulaProfileMenuItem[];\n\tprofileClicked: EventListener;\n\tprofileItemClicked: EventListener;\n\tprofileSwitchChanged: EventListener;\n\titemSelected: EventListener;\n\titemClicked: EventListener;\n\tlevelChanged: EventListener;\n\tmenuToggled: EventListener;\n};\n\nconst SHIELD_SVG = `data:image/svg+xml;utf8,${encodeURIComponent(`\n\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#6c6e6e\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n\t\t<path d=\"M12 3l7 3v5c0 4.5-3 8.2-7 10-4-1.8-7-5.5-7-10V6l7-3z\"/>\n\t\t<path d=\"M9 12l2 2 4-4\"/>\n\t</svg>\n`)}`;\n\nconst CAR_SVG = `data:image/svg+xml;utf8,${encodeURIComponent(`\n\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#6c6e6e\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n\t\t<path d=\"M4 16v-3.2L6 8h12l2 4.8V16\"/>\n\t\t<path d=\"M4 16h16v2.4a.8.8 0 0 1-.8.8h-1.4a.8.8 0 0 1-.8-.8V17H7v1.4a.8.8 0 0 1-.8.8H4.8a.8.8 0 0 1-.8-.8Z\"/>\n\t</svg>\n`)}`;\n\nconst workbenchItems: SulaWorkbenchMenuItem[] = [\n\t{ id: 'overview', label: 'Visão Geral', icon: 'ph ph-house-line' },\n\t{\n\t\tid: 'claims',\n\t\tlabel: 'Sinistros',\n\t\ticon: 'ph ph-warning-circle',\n\t\texpanded: true,\n\t\tchildren: [\n\t\t\t{\n\t\t\t\tid: 'claims-auto',\n\t\t\t\tlabel: 'Auto',\n\t\t\t\ticon: 'ph ph-car',\n\t\t\t\texpanded: true,\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'claims-auto-coverage',\n\t\t\t\t\t\tlabel: 'Cobertura',\n\t\t\t\t\t\ticon: 'ph ph-shield-check',\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'claims-auto-third',\n\t\t\t\t\t\t\t\tlabel: 'Terceiros',\n\t\t\t\t\t\t\t\ticon: 'ph ph-users-three',\n\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tid: 'claims-auto-third-docs',\n\t\t\t\t\t\t\t\t\t\tlabel: 'Documentação',\n\t\t\t\t\t\t\t\t\t\ticon: 'ph ph-folder-open',\n\t\t\t\t\t\t\t\t\t\tchildren: [{ id: 'claims-auto-third-address', label: 'Comprovante de residência', icon: 'ph ph-map-pin', selected: true }],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{ id: 'claims-auto-own', label: 'Próprio', icon: 'ph ph-car-profile' },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{ id: 'claims-auto-glass', label: 'Vidros', icon: 'ph ph-wrench' },\n\t\t\t\t\t{ id: 'claims-auto-other', label: 'Outros (ícone padrão)' },\n\t\t\t\t],\n\t\t\t},\n\t\t\t{ id: 'claims-home', label: 'Residencial', icon: 'ph ph-house', children: [{ id: 'claims-home-fire', label: 'Incêndio', icon: 'ph ph-fire' }] },\n\t\t\t{ id: 'claims-vehicle', label: 'Veículos', icon: 'ph ph-car', image: CAR_SVG },\n\t\t\t{ id: 'claims-life', label: 'Vida', icon: 'ph ph-heartbeat' },\n\t\t],\n\t},\n\t{\n\t\tid: 'policies',\n\t\tlabel: 'Apólices',\n\t\ticon: 'ph ph-files',\n\t\timage: SHIELD_SVG,\n\t\tchildren: [\n\t\t\t{ id: 'policies-issued', label: 'Emitidas', icon: 'ph ph-file-text' },\n\t\t\t{ id: 'policies-review', label: 'Em análise', icon: 'ph ph-clipboard-text' },\n\t\t],\n\t},\n\t{ id: 'settings', label: 'Configurações', icon: 'ph ph-gear-six', children: [{ id: 'settings-users', label: 'Usuários', icon: 'ph ph-users-three' }] },\n];\n\nconst BRAND_IMAGE = `data:image/svg+xml;utf8,${encodeURIComponent(`\n\t<svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<rect width=\"80\" height=\"80\" rx=\"20\" fill=\"#E5231B\"/>\n\t\t<path d=\"M52 24H35.5C31.3579 24 28 27.3579 28 31.5C28 35.6421 31.3579 39 35.5 39H44.5C48.6421 39 52 42.3579 52 46.5C52 50.6421 48.6421 54 44.5 54H28\" stroke=\"white\" stroke-width=\"8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n\t</svg>\n`)}`;\n\n// Same items as the menu in production today, to compare both components with identical content.\nconst currentMenuItems: SulaWorkbenchMenuItem[] = [\n\t{ id: 'dashboard', label: 'Dashboard', icon: 'ph ph-house', selected: true },\n\t{ id: 'exemplo', label: 'Exemplo menu', icon: 'ph ph-archive', children: [{ id: 'exemplo-usuarios', label: 'Usuários', icon: 'ph ph-user' }] },\n\t{ id: 'contas', label: 'Contas Médicas', icon: 'ph ph-align-right', children: [{ id: 'guias', label: 'Guias', icon: 'ph ph-align-center-horizontal-simple' }] },\n\t{\n\t\tid: 'ppa',\n\t\tlabel: 'PPA (Portal Plataforma Antifraude)',\n\t\ticon: 'ph ph-air-traffic-control',\n\t\tchildren: [\n\t\t\t{ id: 'ppa-prestadores', label: 'Prestadores', icon: 'ph ph-ambulance' },\n\t\t\t{ id: 'ppa-usuarios', label: 'Usuários', icon: 'ph ph-user' },\n\t\t\t{ id: 'ppa-prestadores-local', label: 'Prestadores-LOCAL', icon: 'ph ph-' },\n\t\t\t{ id: 'ppa-usuarios-local', label: 'Usuarios-LOCAL', icon: 'ph ph-' },\n\t\t\t{ id: 'ppa-prestadores-lilian', label: 'Prestadores Lilian', icon: 'ph ph-address-book' },\n\t\t],\n\t},\n\t{\n\t\tid: 'sula-audit',\n\t\tlabel: 'Sula Audit',\n\t\ticon: 'ph ph-airplane-in-flight',\n\t\tchildren: [\n\t\t\t{ id: 'audit-home', label: 'Home', icon: 'ph ph-house' },\n\t\t\t{ id: 'audit-prestadores', label: 'Prestadores auditados', icon: 'ph ph-airplay' },\n\t\t],\n\t},\n\t{\n\t\tid: 'dev-portal',\n\t\tlabel: 'Dev Portal',\n\t\ticon: 'ph ph-code-simple',\n\t\tchildren: [\n\t\t\t{ id: 'dev-devsecops', label: 'DevSecOps', icon: 'ph ph-chart-line' },\n\t\t\t{ id: 'dev-tech-radar', label: 'Tech Radar', icon: 'ph ph-target' },\n\t\t\t{ id: 'dev-portal-eda', label: 'Portal EDA', icon: 'ph ph-' },\n\t\t],\n\t},\n\t{\n\t\tid: 'sula-os',\n\t\tlabel: 'Sula OS',\n\t\ticon: 'ph ph-browsers',\n\t\tchildren: [\n\t\t\t{ id: 'os-dashboard', label: 'Dashboard', icon: 'ph ph-gauge' },\n\t\t\t{ id: 'os-canvas', label: 'Canvas', icon: 'ph ph-frame-corners' },\n\t\t],\n\t},\n\t{\n\t\tid: 'tech-portal',\n\t\tlabel: 'Tech Portal',\n\t\ticon: 'ph ph-address-book',\n\t\tchildren: [\n\t\t\t{ id: 'tech-home', label: 'Home', icon: 'ph ph-users-four' },\n\t\t\t{ id: 'tech-busca', label: 'Busca', icon: 'ph ph-user-circle-gear' },\n\t\t\t{ id: 'tech-perfil', label: 'Meu perfil', icon: 'ph ph-user-circle' },\n\t\t\t{\n\t\t\t\tid: 'tech-cadastros',\n\t\t\t\tlabel: 'Cadastros',\n\t\t\t\ticon: 'ph ph-table',\n\t\t\t\tchildren: [\n\t\t\t\t\t{ id: 'tech-empresas', label: 'Empresas terceiras', icon: 'ph ph-' },\n\t\t\t\t\t{ id: 'tech-tribos', label: 'Tribos', icon: 'ph ph-' },\n\t\t\t\t\t{ id: 'tech-capitulos', label: 'Capítulos/Jornadas', icon: 'ph ph-' },\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: 'configuracoes',\n\t\tlabel: 'Configurações',\n\t\ticon: 'ph ph-gear',\n\t\tchildren: [\n\t\t\t{ id: 'conf-menus', label: 'Menus', icon: 'ph ph-layout' },\n\t\t\t{ id: 'conf-usuarios', label: 'Usuários', icon: 'ph ph-users' },\n\t\t\t{ id: 'conf-tenant', label: 'Tenant', icon: 'ph ph-building' },\n\t\t\t{ id: 'conf-chaves', label: 'Chaves de APIs', icon: 'ph ph-key' },\n\t\t\t{\n\t\t\t\tid: 'conf-permissoes',\n\t\t\t\tlabel: 'Permissões',\n\t\t\t\ticon: 'ph ph-lock',\n\t\t\t\tchildren: [\n\t\t\t\t\t{ id: 'perm-papeis', label: 'Papéis', icon: 'ph ph-' },\n\t\t\t\t\t{ id: 'perm-recursos', label: 'Recursos', icon: 'ph ph-' },\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n];\n\nconst sampleUser: SulaWorkbenchMenuUser = { name: 'Ana Ribeiro', email: 'ana.ribeiro@sula.com.br' };\n\nconst hubProfileItems: SulaProfileMenuItem[] = [\n\t{ id: 'account', label: 'Minha conta', icon: 'ph ph-user-circle' },\n\t{ id: 'dark-mode', label: 'Modo escuro', icon: 'ph ph-moon', hasSwitch: true, active: false },\n\t{ id: 'divider-logout', divider: true },\n\t{ id: 'logout', label: 'Sair', icon: 'ph ph-sign-out' },\n];\n\nconst cloneItems = (items: SulaWorkbenchMenuItem[]): SulaWorkbenchMenuItem[] =>\n\titems.map(item => ({ ...item, children: item.children ? cloneItems(item.children) : undefined }));\n\nconst createStoryShell = () => {\n\tconst container = document.createElement('div');\n\tcontainer.style.margin = '20px';\n\tcontainer.style.padding = '24px';\n\tcontainer.style.background = 'linear-gradient(180deg, #f8f9f9 0%, #eef2f2 100%)';\n\tcontainer.style.borderRadius = '24px';\n\tcontainer.style.boxSizing = 'border-box';\n\n\tconst shell = document.createElement('div');\n\tshell.style.display = 'flex';\n\tshell.style.width = '960px';\n\tshell.style.maxWidth = '100%';\n\tshell.style.height = '720px';\n\tshell.style.borderRadius = '24px';\n\tshell.style.background = '#ffffff';\n\tshell.style.border = '1px solid #dfe5e5';\n\tshell.style.boxShadow = '0 20px 48px rgba(15, 23, 42, 0.08)';\n\n\tconst contentPanel = document.createElement('div');\n\tcontentPanel.style.flex = '1';\n\tcontentPanel.style.padding = '40px';\n\tcontentPanel.style.borderRadius = '0 24px 24px 0';\n\tcontentPanel.style.color = '#6c6e6e';\n\tcontentPanel.style.fontSize = '14px';\n\tcontentPanel.textContent = 'Área de conteúdo. Níveis 1 a 2 expandem em linha; a partir do nível 3 com filhos, o menu entra em drill-down com breadcrumb.';\n\n\tshell.appendChild(contentPanel);\n\tcontainer.appendChild(shell);\n\treturn { container, shell };\n};\n\nexport default {\n\ttitle: 'Components/sula-workbench-menu',\n\ttags: ['autodocs'],\n\targTypes: {\n\t\tmenuTitle: { control: 'text', defaultValue: 'Sula Hub', description: 'Título do menu.' },\n\t\tdensity: {\n\t\t\tcontrol: { type: 'select' },\n\t\t\toptions: Object.values(SulaMenuDensity),\n\t\t\tdescription: 'Densidade visual dos itens.',\n\t\t},\n\t\tlabelOverflow: {\n\t\t\tcontrol: { type: 'select' },\n\t\t\toptions: Object.values(SulaMenuLabelOverflow),\n\t\t\tdescription: 'Quebra ou ellipsis dos labels.',\n\t\t},\n\t\tdrilldownLevel: {\n\t\t\tcontrol: { type: 'number', min: 1 },\n\t\t\tdescription: 'Nível (1-based) a partir do qual itens com filhos abrem drill-down em vez de expandir em linha.',\n\t\t},\n\t\tdrillPath: {\n\t\t\tcontrol: 'object',\n\t\t\tdescription: 'Controla o drill-down pelo host: ids da raiz até o item cujos filhos aparecem. Array vazio volta à árvore; undefined deixa só os cliques navegarem.',\n\t\t},\n\t\titems: { control: 'object', description: 'Árvore de itens, recursiva.' },\n\t\titemSelected: { action: 'itemSelected', description: 'Emitido ao selecionar um item folha.' },\n\t\titemClicked: { action: 'itemClicked', description: 'Emitido a cada clique em um item.' },\n\t\tlevelChanged: { action: 'levelChanged', description: 'Emitido ao entrar ou voltar de nível no drill-down.' },\n\t\tuser: { control: 'object', description: 'Usuário logado exibido no rodapé: name (obrigatório), email e photo (URL ou data URI). Sem photo, mostra as iniciais.' },\n\t\tprofileClicked: { action: 'profileClicked', description: 'Emitido ao clicar na área do usuário. Abre o menu de perfil, a menos que o evento seja cancelado com preventDefault().' },\n\t\tprofileItems: { control: 'object', description: 'Opções do menu de perfil: id, label, icon, hasSwitch + active, divider, disabled, hidden.' },\n\t\tprofileItemClicked: { action: 'profileItemClicked', description: 'Emitido ao clicar em uma opção sem switch do menu de perfil. O popover fecha.' },\n\t\tprofileSwitchChanged: { action: 'profileSwitchChanged', description: 'Emitido ao alternar o switch de uma opção, com { item, active }. O popover continua aberto.' },\n\t\tmenuToggled: { action: 'menuToggled', description: 'Emitido ao colapsar ou expandir o menu.' },\n\t},\n\tparameters: {\n\t\tdocs: {\n\t\t\tdescription: {\n\t\t\t\tcomponent:\n\t\t\t\t\t'Menu que combina a navegação em árvore do sula-menu (níveis 1 e 2 expandem em linha) com o drill-down: a partir do nível configurado em drilldownLevel (padrão 3), itens com filhos abrem um painel de um nível com breadcrumb e botão de voltar.',\n\t\t\t},\n\t\t},\n\t},\n};\n\nconst Template: any = (args: StoryArgs) => {\n\tconst { container, shell } = createStoryShell();\n\tconst el = document.createElement('sula-workbench-menu');\n\n\tel.menuTitle = args.menuTitle;\n\tel.density = args.density;\n\tel.labelOverflow = args.labelOverflow;\n\tel.drilldownLevel = args.drilldownLevel;\n\tel.drillPath = args.drillPath;\n\tel.items = cloneItems(args.items);\n\tel.user = args.user;\n\tel.profileItems = (args.profileItems ?? hubProfileItems).map(item => ({ ...item }));\n\n\tel.addEventListener('itemSelected', args.itemSelected);\n\tel.addEventListener('itemClicked', args.itemClicked);\n\tel.addEventListener('levelChanged', args.levelChanged);\n\tel.addEventListener('menuToggled', args.menuToggled);\n\tel.addEventListener('profileClicked', args.profileClicked);\n\tel.addEventListener('profileItemClicked', args.profileItemClicked);\n\tel.addEventListener('profileSwitchChanged', args.profileSwitchChanged);\n\n\tshell.prepend(el);\n\treturn container;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\tdrilldownLevel: 3,\n\titems: workbenchItems,\n\tuser: sampleUser,\n};\nDefault.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory:\n\t\t\t\t'Exemplo com 6 níveis reais. Sinistros e Auto já vêm expandidos; em Cobertura (nível 3) o item Terceiros abre o drill-down. \"Apólices\" e \"Veículos\" usam um SVG no lugar do ícone de fonte (propriedade image do item). O rodapé mostra o usuário logado; clicar nele emite profileClicked.',\n\t\t},\n\t},\n};\n\nexport const WithoutPhotoOrEmail = Template.bind({});\nWithoutPhotoOrEmail.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\tdrilldownLevel: 3,\n\titems: workbenchItems,\n\tuser: { name: 'Carlos Mendes' },\n};\nWithoutPhotoOrEmail.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'Usuário sem foto nem e-mail: o avatar mostra as iniciais e o nome aparece sozinho.',\n\t\t},\n\t},\n};\n\nexport const WithProfileMenu = (args: StoryArgs) => {\n\tconst container = Template(args);\n\tconst menu = container.querySelector('sula-workbench-menu');\n\t// Example of the host application applying the theme chosen in the profile popover.\n\tmenu.addEventListener('profileSwitchChanged', (event: CustomEvent<SulaProfileMenuSwitchChange>) => {\n\t\tif (event.detail.item.id === 'dark-mode') document.documentElement.classList.toggle('dark', event.detail.active);\n\t});\n\treturn container;\n};\nWithProfileMenu.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\tdrilldownLevel: 3,\n\titems: currentMenuItems,\n\tuser: { name: 'Lucas Reichert', email: 'lucas.reichert@sulamerica.com.br' },\n\tprofileItems: hubProfileItems,\n};\nWithProfileMenu.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory:\n\t\t\t\t'Clique no usuário do rodapé para abrir o menu de perfil, que substitui o header da aplicação. Com o menu expandido, o popover abre acima do usuário, na largura do menu; recolhido, abre ao lado do rail. Fecha com clique fora, Esc ou novo clique no usuário. As opções vêm de profileItems (label, icon, hasSwitch, divider...): cliques emitem profileItemClicked e switches emitem profileSwitchChanged. Aqui a story aplica a classe .dark no documentElement quando o switch dark-mode muda. Para não abrir o popover e tratar o clique por conta própria, chame preventDefault() em profileClicked. Conteúdo extra pode ser passado com slot=\"profile-content\".',\n\t\t},\n\t},\n};\n\nexport const CustomProfileItems = Template.bind({});\nCustomProfileItems.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\tdrilldownLevel: 3,\n\titems: workbenchItems,\n\tuser: sampleUser,\n\tprofileItems: [\n\t\t{ id: 'profile', label: 'Meu perfil', icon: 'ph ph-identification-card' },\n\t\t{ id: 'notifications', label: 'Notificações', icon: 'ph ph-bell', hasSwitch: true, active: true },\n\t\t{ id: 'compact', label: 'Modo compacto', icon: 'ph ph-rows', hasSwitch: true, active: false },\n\t\t{ id: 'divider-help', divider: true },\n\t\t{ id: 'help', label: 'Central de ajuda', icon: 'ph ph-question' },\n\t\t{ id: 'billing', label: 'Faturamento', icon: 'ph ph-credit-card', disabled: true },\n\t\t{ id: 'divider-logout', divider: true },\n\t\t{ id: 'logout', label: 'Sair', icon: 'ph ph-sign-out' },\n\t],\n};\nCustomProfileItems.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'Outra aplicação com opções próprias: dois switches, item desabilitado e dois divisores. Basta trocar profileItems.',\n\t\t},\n\t},\n};\n\nexport const ControlledDrillPath = (args: StoryArgs) => {\n\tconst container = Template(args);\n\tconst menu = container.querySelector('sula-workbench-menu');\n\tconst paths: Record<string, string[]> = {\n\t\tTree: [],\n\t\t'Cobertura': ['claims', 'claims-auto', 'claims-auto-coverage'],\n\t\t'Terceiros': ['claims', 'claims-auto', 'claims-auto-coverage', 'claims-auto-third'],\n\t};\n\n\tconst toolbar = document.createElement('div');\n\ttoolbar.style.cssText = 'display:flex;gap:8px;margin:20px 20px 0';\n\tObject.entries(paths).forEach(([label, path]) => {\n\t\tconst button = document.createElement('sula-button');\n\t\tbutton.text = label;\n\t\tbutton.addEventListener('click', () => (menu.drillPath = path));\n\t\ttoolbar.appendChild(button);\n\t});\n\n\tconst wrapper = document.createElement('div');\n\twrapper.append(toolbar, container);\n\treturn wrapper;\n};\nControlledDrillPath.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\tdrilldownLevel: 3,\n\titems: workbenchItems,\n\tuser: sampleUser,\n};\nControlledDrillPath.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'O host controla o drill-down pela propriedade drillPath: os botões acima entram em Cobertura, em Terceiros ou voltam para a árvore. Ids desconhecidos interrompem o caminho no último nível válido.',\n\t\t},\n\t},\n};\n\nexport const InlineOnly = Template.bind({});\nInlineOnly.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\tdrilldownLevel: 99,\n\titems: workbenchItems,\n\tuser: sampleUser,\n};\nInlineOnly.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'Com drilldownLevel acima da profundidade da árvore, o componente se comporta como o sula-menu, expandindo tudo em linha.',\n\t\t},\n\t},\n};\n\nconst createComparisonShell = () => {\n\tconst container = document.createElement('div');\n\tcontainer.style.margin = '20px';\n\tcontainer.style.padding = '24px';\n\tcontainer.style.background = '#eef2f2';\n\tcontainer.style.borderRadius = '24px';\n\tcontainer.style.boxSizing = 'border-box';\n\tcontainer.style.display = 'flex';\n\tcontainer.style.gap = '32px';\n\tcontainer.style.alignItems = 'flex-start';\n\treturn container;\n};\n\nconst createComparisonColumn = (title: string) => {\n\tconst column = document.createElement('div');\n\tconst caption = document.createElement('div');\n\tcaption.textContent = title;\n\tcaption.style.font = '600 13px sans-serif';\n\tcaption.style.color = '#6c6e6e';\n\tcaption.style.marginBottom = '12px';\n\tconst box = document.createElement('div');\n\tbox.style.height = '720px';\n\tbox.style.width = '350px';\n\tbox.style.display = 'flex';\n\tbox.style.background = '#ffffff';\n\tbox.style.border = '1px solid #e5e6e6';\n\tbox.style.borderRadius = '16px';\n\tbox.style.overflow = 'hidden';\n\tcolumn.appendChild(caption);\n\tcolumn.appendChild(box);\n\treturn { column, box };\n};\n\n// Fourth level under Tech Portal > Cadastros > Tribos. The current sula-menu stops at the third level,\n// so in it \"Tribos\" stays a leaf; in the new menu it opens the drill-down.\nconst withFourthLevel = (items: SulaWorkbenchMenuItem[]): SulaWorkbenchMenuItem[] =>\n\tcloneItems(items).map(item => {\n\t\tif (item.id !== 'tech-portal') return item;\n\t\treturn {\n\t\t\t...item,\n\t\t\texpanded: true,\n\t\t\tchildren: item.children!.map(child => {\n\t\t\t\tif (child.id !== 'tech-cadastros') return child;\n\t\t\t\treturn {\n\t\t\t\t\t...child,\n\t\t\t\t\texpanded: true,\n\t\t\t\t\tchildren: child.children!.map(grandchild =>\n\t\t\t\t\t\tgrandchild.id === 'tech-tribos'\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t...grandchild,\n\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\t{ id: 'tribo-saude', label: 'Tribo Saúde', icon: 'ph ph-heartbeat', selected: true },\n\t\t\t\t\t\t\t\t\t\t{ id: 'tribo-odonto', label: 'Tribo Odonto', icon: 'ph ph-tooth' },\n\t\t\t\t\t\t\t\t\t\t{ id: 'tribo-auto', label: 'Tribo Auto e Massificados', icon: 'ph ph-car' },\n\t\t\t\t\t\t\t\t\t\t{ id: 'tribo-dados', label: 'Tribo Dados e Analytics', icon: 'ph ph-chart-line-up' },\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: grandchild,\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t}),\n\t\t};\n\t});\n\nconst withoutSelection = (items: SulaWorkbenchMenuItem[]): SulaWorkbenchMenuItem[] =>\n\titems.map(item => ({ ...item, selected: false, children: item.children ? withoutSelection(item.children) : undefined }));\n\nconst clickMenuRow = (menu: HTMLElement, label: string) => {\n\tconst row = Array.from(menu.shadowRoot!.querySelectorAll<HTMLElement>('.menu-item, .submenu-item')).find(el => el.textContent?.trim() === label);\n\trow?.click();\n};\n\nconst renderComparison = (items: SulaWorkbenchMenuItem[], drillTo?: string) => {\n\tconst container = createComparisonShell();\n\n\tconst current = createComparisonColumn('sula-menu (atual)');\n\tconst currentMenu = document.createElement('sula-menu');\n\tcurrentMenu.menuTitle = 'Sula Hub';\n\tcurrentMenu.image = BRAND_IMAGE;\n\tcurrentMenu.items = cloneItems(items) as unknown as SulaMenuMainItem[];\n\tcurrent.box.appendChild(currentMenu);\n\n\tconst workbench = createComparisonColumn('sula-workbench-menu (novo)');\n\tconst workbenchMenu = document.createElement('sula-workbench-menu');\n\tworkbenchMenu.menuTitle = 'Sula Hub';\n\tworkbenchMenu.image = BRAND_IMAGE;\n\tworkbenchMenu.user = sampleUser;\n\tworkbenchMenu.items = cloneItems(items);\n\tworkbench.box.appendChild(workbenchMenu);\n\n\tif (drillTo) {\n\t\tcustomElements\n\t\t\t.whenDefined('sula-workbench-menu')\n\t\t\t.then(() => workbenchMenu.componentOnReady())\n\t\t\t.then(() => clickMenuRow(workbenchMenu, drillTo));\n\t}\n\n\tcontainer.appendChild(current.column);\n\tcontainer.appendChild(workbench.column);\n\treturn container;\n};\n\nexport const ComparisonWithCurrentSulaMenu = () => renderComparison(currentMenuItems);\nComparisonWithCurrentSulaMenu.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory:\n\t\t\t\t'Os mesmos itens do menu atual de produção, renderizados no sula-menu (atual) e no sula-workbench-menu (novo), lado a lado, para comparar espaçamento, ícones e hierarquia. O menu novo mostra o perfil do usuário no rodapé, que substitui o \"Ocultar menu\" (o recolher fica no topo).',\n\t\t},\n\t},\n};\n\nexport const ComparisonDrilldownFourthLevel = () => renderComparison(withFourthLevel(withoutSelection(currentMenuItems)), 'Tribos');\nComparisonDrilldownFourthLevel.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory:\n\t\t\t\t'Mesmos itens do menu atual com um quarto nível em Tech Portal > Cadastros > Tribos. No sula-menu (atual) a árvore para no terceiro nível e Tribos fica sem os filhos. No sula-workbench-menu (novo), Tribos abre o drill-down: breadcrumb com o caminho, botão de voltar e os itens do quarto nível em tela cheia.',\n\t\t},\n\t},\n};\n"]}
|
|
1
|
+
{"version":3,"file":"sula-workbench-menu.stories.js","sourceRoot":"","sources":["../../../src/components/sula-workbench-menu/sula-workbench-menu.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { SulaMenuDensity, SulaMenuLabelOverflow } from '../sula-menu/model/sula-menu.model';\nimport { SulaProfileMenuItem, SulaProfileMenuSwitchChange } from '../sula-profile-menu/model/sula-profile-menu.model';\nimport { SulaWorkbenchMenuItem, SulaWorkbenchMenuUser } from './model/sula-workbench-menu.model';\n\ntype StoryArgs = {\n\tmenuTitle: string;\n\timage?: string;\n\tdensity: SulaMenuDensity;\n\tlabelOverflow: SulaMenuLabelOverflow;\n\tdrillPath?: string[];\n\titems: SulaWorkbenchMenuItem[];\n\tuser: SulaWorkbenchMenuUser;\n\tprofileItems?: SulaProfileMenuItem[];\n\tprofileClicked: EventListener;\n\tprofileItemClicked: EventListener;\n\tprofileSwitchChanged: EventListener;\n\titemSelected: EventListener;\n\titemClicked: EventListener;\n\tlevelChanged: EventListener;\n\tmenuToggled: EventListener;\n};\n\nconst SHIELD_SVG = `data:image/svg+xml;utf8,${encodeURIComponent(`\n\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#6c6e6e\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n\t\t<path d=\"M12 3l7 3v5c0 4.5-3 8.2-7 10-4-1.8-7-5.5-7-10V6l7-3z\"/>\n\t\t<path d=\"M9 12l2 2 4-4\"/>\n\t</svg>\n`)}`;\n\nconst CAR_SVG = `data:image/svg+xml;utf8,${encodeURIComponent(`\n\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#6c6e6e\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n\t\t<path d=\"M4 16v-3.2L6 8h12l2 4.8V16\"/>\n\t\t<path d=\"M4 16h16v2.4a.8.8 0 0 1-.8.8h-1.4a.8.8 0 0 1-.8-.8V17H7v1.4a.8.8 0 0 1-.8.8H4.8a.8.8 0 0 1-.8-.8Z\"/>\n\t</svg>\n`)}`;\n\nconst workbenchItems: SulaWorkbenchMenuItem[] = [\n\t{ id: 'overview', label: 'Visão Geral', icon: 'ph ph-house-line' },\n\t{\n\t\tid: 'claims',\n\t\tlabel: 'Sinistros',\n\t\ticon: 'ph ph-warning-circle',\n\t\texpanded: true,\n\t\tchildren: [\n\t\t\t{\n\t\t\t\tid: 'claims-auto',\n\t\t\t\tlabel: 'Auto',\n\t\t\t\ticon: 'ph ph-car',\n\t\t\t\texpanded: true,\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'claims-auto-coverage',\n\t\t\t\t\t\tlabel: 'Cobertura',\n\t\t\t\t\t\ticon: 'ph ph-shield-check',\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'claims-auto-third',\n\t\t\t\t\t\t\t\tlabel: 'Terceiros',\n\t\t\t\t\t\t\t\ticon: 'ph ph-users-three',\n\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tid: 'claims-auto-third-docs',\n\t\t\t\t\t\t\t\t\t\tlabel: 'Documentação',\n\t\t\t\t\t\t\t\t\t\ticon: 'ph ph-folder-open',\n\t\t\t\t\t\t\t\t\t\tchildren: [{ id: 'claims-auto-third-address', label: 'Comprovante de residência', icon: 'ph ph-map-pin', selected: true }],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{ id: 'claims-auto-own', label: 'Próprio', icon: 'ph ph-car-profile' },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{ id: 'claims-auto-glass', label: 'Vidros', icon: 'ph ph-wrench' },\n\t\t\t\t\t{ id: 'claims-auto-other', label: 'Outros (ícone padrão)' },\n\t\t\t\t],\n\t\t\t},\n\t\t\t{ id: 'claims-home', label: 'Residencial', icon: 'ph ph-house', children: [{ id: 'claims-home-fire', label: 'Incêndio', icon: 'ph ph-fire' }] },\n\t\t\t{ id: 'claims-vehicle', label: 'Veículos', icon: 'ph ph-car', image: CAR_SVG },\n\t\t\t{ id: 'claims-life', label: 'Vida', icon: 'ph ph-heartbeat' },\n\t\t],\n\t},\n\t{\n\t\tid: 'policies',\n\t\tlabel: 'Apólices',\n\t\ticon: 'ph ph-files',\n\t\timage: SHIELD_SVG,\n\t\tchildren: [\n\t\t\t{ id: 'policies-issued', label: 'Emitidas', icon: 'ph ph-file-text' },\n\t\t\t{ id: 'policies-review', label: 'Em análise', icon: 'ph ph-clipboard-text' },\n\t\t],\n\t},\n\t{ id: 'settings', label: 'Configurações', icon: 'ph ph-gear-six', children: [{ id: 'settings-users', label: 'Usuários', icon: 'ph ph-users-three' }] },\n];\n\nconst BRAND_IMAGE = `data:image/svg+xml;utf8,${encodeURIComponent(`\n\t<svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<rect width=\"80\" height=\"80\" rx=\"20\" fill=\"#E5231B\"/>\n\t\t<path d=\"M52 24H35.5C31.3579 24 28 27.3579 28 31.5C28 35.6421 31.3579 39 35.5 39H44.5C48.6421 39 52 42.3579 52 46.5C52 50.6421 48.6421 54 44.5 54H28\" stroke=\"white\" stroke-width=\"8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n\t</svg>\n`)}`;\n\n// Same items as the menu in production today.\nconst currentMenuItems: SulaWorkbenchMenuItem[] = [\n\t{ id: 'dashboard', label: 'Dashboard', icon: 'ph ph-house', selected: true },\n\t{ id: 'exemplo', label: 'Exemplo menu', icon: 'ph ph-archive', children: [{ id: 'exemplo-usuarios', label: 'Usuários', icon: 'ph ph-user' }] },\n\t{ id: 'contas', label: 'Contas Médicas', icon: 'ph ph-align-right', children: [{ id: 'guias', label: 'Guias', icon: 'ph ph-align-center-horizontal-simple' }] },\n\t{\n\t\tid: 'ppa',\n\t\tlabel: 'PPA (Portal Plataforma Antifraude)',\n\t\ticon: 'ph ph-air-traffic-control',\n\t\tchildren: [\n\t\t\t{ id: 'ppa-prestadores', label: 'Prestadores', icon: 'ph ph-ambulance' },\n\t\t\t{ id: 'ppa-usuarios', label: 'Usuários', icon: 'ph ph-user' },\n\t\t\t{ id: 'ppa-prestadores-local', label: 'Prestadores-LOCAL', icon: 'ph ph-' },\n\t\t\t{ id: 'ppa-usuarios-local', label: 'Usuarios-LOCAL', icon: 'ph ph-' },\n\t\t\t{ id: 'ppa-prestadores-lilian', label: 'Prestadores Lilian', icon: 'ph ph-address-book' },\n\t\t],\n\t},\n\t{\n\t\tid: 'sula-audit',\n\t\tlabel: 'Sula Audit',\n\t\ticon: 'ph ph-airplane-in-flight',\n\t\tchildren: [\n\t\t\t{ id: 'audit-home', label: 'Home', icon: 'ph ph-house' },\n\t\t\t{ id: 'audit-prestadores', label: 'Prestadores auditados', icon: 'ph ph-airplay' },\n\t\t],\n\t},\n\t{\n\t\tid: 'dev-portal',\n\t\tlabel: 'Dev Portal',\n\t\ticon: 'ph ph-code-simple',\n\t\tchildren: [\n\t\t\t{ id: 'dev-devsecops', label: 'DevSecOps', icon: 'ph ph-chart-line' },\n\t\t\t{ id: 'dev-tech-radar', label: 'Tech Radar', icon: 'ph ph-target' },\n\t\t\t{ id: 'dev-portal-eda', label: 'Portal EDA', icon: 'ph ph-' },\n\t\t],\n\t},\n\t{\n\t\tid: 'sula-os',\n\t\tlabel: 'Sula OS',\n\t\ticon: 'ph ph-browsers',\n\t\tchildren: [\n\t\t\t{ id: 'os-dashboard', label: 'Dashboard', icon: 'ph ph-gauge' },\n\t\t\t{ id: 'os-canvas', label: 'Canvas', icon: 'ph ph-frame-corners' },\n\t\t],\n\t},\n\t{\n\t\tid: 'tech-portal',\n\t\tlabel: 'Tech Portal',\n\t\ticon: 'ph ph-address-book',\n\t\tchildren: [\n\t\t\t{ id: 'tech-home', label: 'Home', icon: 'ph ph-users-four' },\n\t\t\t{ id: 'tech-busca', label: 'Busca', icon: 'ph ph-user-circle-gear' },\n\t\t\t{ id: 'tech-perfil', label: 'Meu perfil', icon: 'ph ph-user-circle' },\n\t\t\t{\n\t\t\t\tid: 'tech-cadastros',\n\t\t\t\tlabel: 'Cadastros',\n\t\t\t\ticon: 'ph ph-table',\n\t\t\t\tchildren: [\n\t\t\t\t\t{ id: 'tech-empresas', label: 'Empresas terceiras', icon: 'ph ph-' },\n\t\t\t\t\t{ id: 'tech-tribos', label: 'Tribos', icon: 'ph ph-' },\n\t\t\t\t\t{ id: 'tech-capitulos', label: 'Capítulos/Jornadas', icon: 'ph ph-' },\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tid: 'configuracoes',\n\t\tlabel: 'Configurações',\n\t\ticon: 'ph ph-gear',\n\t\tchildren: [\n\t\t\t{ id: 'conf-menus', label: 'Menus', icon: 'ph ph-layout' },\n\t\t\t{ id: 'conf-usuarios', label: 'Usuários', icon: 'ph ph-users' },\n\t\t\t{ id: 'conf-tenant', label: 'Tenant', icon: 'ph ph-building' },\n\t\t\t{ id: 'conf-chaves', label: 'Chaves de APIs', icon: 'ph ph-key' },\n\t\t\t{\n\t\t\t\tid: 'conf-permissoes',\n\t\t\t\tlabel: 'Permissões',\n\t\t\t\ticon: 'ph ph-lock',\n\t\t\t\tchildren: [\n\t\t\t\t\t{ id: 'perm-papeis', label: 'Papéis', icon: 'ph ph-' },\n\t\t\t\t\t{ id: 'perm-recursos', label: 'Recursos', icon: 'ph ph-' },\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n];\n\nconst sampleUser: SulaWorkbenchMenuUser = { name: 'Ana Ribeiro', email: 'ana.ribeiro@sula.com.br' };\n\nconst hubProfileItems: SulaProfileMenuItem[] = [\n\t{ id: 'account', label: 'Minha conta', icon: 'ph ph-user-circle' },\n\t{ id: 'dark-mode', label: 'Modo escuro', icon: 'ph ph-moon', hasSwitch: true, active: false },\n\t{ id: 'divider-logout', divider: true },\n\t{ id: 'logout', label: 'Sair', icon: 'ph ph-sign-out' },\n];\n\nconst cloneItems = (items: SulaWorkbenchMenuItem[]): SulaWorkbenchMenuItem[] =>\n\titems.map(item => ({ ...item, children: item.children ? cloneItems(item.children) : undefined }));\n\nconst createStoryShell = () => {\n\tconst container = document.createElement('div');\n\tcontainer.style.margin = '20px';\n\tcontainer.style.padding = '24px';\n\tcontainer.style.background = 'linear-gradient(180deg, #f8f9f9 0%, #eef2f2 100%)';\n\tcontainer.style.borderRadius = '24px';\n\tcontainer.style.boxSizing = 'border-box';\n\n\tconst shell = document.createElement('div');\n\tshell.style.display = 'flex';\n\tshell.style.width = '960px';\n\tshell.style.maxWidth = '100%';\n\tshell.style.height = '720px';\n\tshell.style.borderRadius = '24px';\n\tshell.style.background = '#ffffff';\n\tshell.style.border = '1px solid #dfe5e5';\n\tshell.style.boxShadow = '0 20px 48px rgba(15, 23, 42, 0.08)';\n\n\tconst contentPanel = document.createElement('div');\n\tcontentPanel.style.flex = '1';\n\tcontentPanel.style.padding = '40px';\n\tcontentPanel.style.borderRadius = '0 24px 24px 0';\n\tcontentPanel.style.color = '#6c6e6e';\n\tcontentPanel.style.fontSize = '14px';\n\tcontentPanel.textContent = 'Área de conteúdo. Até 3 níveis o menu expande em linha; se algum item chega ao 4º nível, toda a navegação vira drill-down com breadcrumb.';\n\n\tshell.appendChild(contentPanel);\n\tcontainer.appendChild(shell);\n\treturn { container, shell };\n};\n\nexport default {\n\ttitle: 'Components/sula-workbench-menu',\n\ttags: ['autodocs'],\n\targTypes: {\n\t\tmenuTitle: { control: 'text', defaultValue: 'Sula Hub', description: 'Título do menu.' },\n\t\timage: { control: 'text', description: 'Imagem da marca no cabeçalho da raiz (URL ou data URI).' },\n\t\tdensity: {\n\t\t\tcontrol: { type: 'select' },\n\t\t\toptions: Object.values(SulaMenuDensity),\n\t\t\tdescription: 'Densidade visual dos itens.',\n\t\t},\n\t\tlabelOverflow: {\n\t\t\tcontrol: { type: 'select' },\n\t\t\toptions: Object.values(SulaMenuLabelOverflow),\n\t\t\tdescription: 'Quebra ou ellipsis dos labels.',\n\t\t},\n\t\tdrillPath: {\n\t\t\tcontrol: 'object',\n\t\t\tdescription: 'Controla a navegação pelo host: ids da raiz até o item cujos filhos aparecem. No drill-down, array vazio volta à raiz; no modo em linha, os itens do caminho são expandidos. undefined deixa só os cliques navegarem.',\n\t\t},\n\t\titems: { control: 'object', description: 'Árvore de itens, recursiva.' },\n\t\titemSelected: { action: 'itemSelected', description: 'Emitido ao selecionar um item folha.' },\n\t\titemClicked: { action: 'itemClicked', description: 'Emitido a cada clique em um item.' },\n\t\tlevelChanged: { action: 'levelChanged', description: 'Emitido ao entrar ou voltar de nível no drill-down.' },\n\t\tuser: { control: 'object', description: 'Usuário logado exibido no rodapé: name (obrigatório), email e photo (URL ou data URI). Sem photo, mostra as iniciais.' },\n\t\tprofileClicked: { action: 'profileClicked', description: 'Emitido ao clicar na área do usuário. Abre o menu de perfil, a menos que o evento seja cancelado com preventDefault().' },\n\t\tprofileItems: { control: 'object', description: 'Opções do menu de perfil: id, label, icon, hasSwitch + active, divider, disabled, hidden.' },\n\t\tprofileItemClicked: { action: 'profileItemClicked', description: 'Emitido ao clicar em uma opção sem switch do menu de perfil. O popover fecha.' },\n\t\tprofileSwitchChanged: { action: 'profileSwitchChanged', description: 'Emitido ao alternar o switch de uma opção, com { item, active }. O popover continua aberto.' },\n\t\tmenuToggled: { action: 'menuToggled', description: 'Emitido ao colapsar ou expandir o menu.' },\n\t},\n\tparameters: {\n\t\tdocs: {\n\t\t\tdescription: {\n\t\t\t\tcomponent:\n\t\t\t\t\t'Menu de navegação com dois modos, escolhidos pela profundidade dos items: com até 3 níveis, tudo expande em linha como no sula-menu; se algum item visível chega ao 4º nível, toda a navegação vira drill-down, e itens com filhos abrem um painel de um nível com breadcrumb e botão de voltar.',\n\t\t\t},\n\t\t},\n\t},\n};\n\nconst Template: any = (args: StoryArgs) => {\n\tconst { container, shell } = createStoryShell();\n\tconst el = document.createElement('sula-workbench-menu');\n\n\tel.menuTitle = args.menuTitle;\n\tel.image = args.image ?? '';\n\tel.density = args.density;\n\tel.labelOverflow = args.labelOverflow;\n\tel.drillPath = args.drillPath;\n\tel.items = cloneItems(args.items);\n\tel.user = args.user;\n\tel.profileItems = (args.profileItems ?? hubProfileItems).map(item => ({ ...item }));\n\n\tel.addEventListener('itemSelected', args.itemSelected);\n\tel.addEventListener('itemClicked', args.itemClicked);\n\tel.addEventListener('levelChanged', args.levelChanged);\n\tel.addEventListener('menuToggled', args.menuToggled);\n\tel.addEventListener('profileClicked', args.profileClicked);\n\tel.addEventListener('profileItemClicked', args.profileItemClicked);\n\tel.addEventListener('profileSwitchChanged', args.profileSwitchChanged);\n\n\tshell.prepend(el);\n\treturn container;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: workbenchItems,\n\tuser: sampleUser,\n};\nDefault.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory:\n\t\t\t\t'Exemplo com 6 níveis reais: como passa de 3 níveis, toda a navegação é drill-down, a partir da raiz. \"Apólices\" e \"Veículos\" usam um SVG no lugar do ícone de fonte (propriedade image do item). O rodapé mostra o usuário logado; clicar nele emite profileClicked.',\n\t\t},\n\t},\n};\n\nexport const WithoutPhotoOrEmail = Template.bind({});\nWithoutPhotoOrEmail.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: workbenchItems,\n\tuser: { name: 'Carlos Mendes' },\n};\nWithoutPhotoOrEmail.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'Usuário sem foto nem e-mail: o avatar mostra as iniciais e o nome aparece sozinho.',\n\t\t},\n\t},\n};\n\nexport const WithProfileMenu = (args: StoryArgs) => {\n\tconst container = Template(args);\n\tconst menu = container.querySelector('sula-workbench-menu');\n\t// Example of the host application applying the theme chosen in the profile popover.\n\tmenu.addEventListener('profileSwitchChanged', (event: CustomEvent<SulaProfileMenuSwitchChange>) => {\n\t\tif (event.detail.item.id === 'dark-mode') document.documentElement.classList.toggle('dark', event.detail.active);\n\t});\n\treturn container;\n};\nWithProfileMenu.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: currentMenuItems,\n\tuser: { name: 'Lucas Reichert', email: 'lucas.reichert@sulamerica.com.br' },\n\tprofileItems: hubProfileItems,\n};\nWithProfileMenu.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory:\n\t\t\t\t'Clique no usuário do rodapé para abrir o menu de perfil, que substitui o header da aplicação. Com o menu expandido, o popover abre acima do usuário, na largura do menu; recolhido, abre ao lado do rail. Fecha com clique fora, Esc ou novo clique no usuário. As opções vêm de profileItems (label, icon, hasSwitch, divider...): cliques emitem profileItemClicked e switches emitem profileSwitchChanged. Aqui a story aplica a classe .dark no documentElement quando o switch dark-mode muda. Para não abrir o popover e tratar o clique por conta própria, chame preventDefault() em profileClicked. Conteúdo extra pode ser passado com slot=\"profile-content\".',\n\t\t},\n\t},\n};\n\nexport const CustomProfileItems = Template.bind({});\nCustomProfileItems.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: workbenchItems,\n\tuser: sampleUser,\n\tprofileItems: [\n\t\t{ id: 'profile', label: 'Meu perfil', icon: 'ph ph-identification-card' },\n\t\t{ id: 'notifications', label: 'Notificações', icon: 'ph ph-bell', hasSwitch: true, active: true },\n\t\t{ id: 'compact', label: 'Modo compacto', icon: 'ph ph-rows', hasSwitch: true, active: false },\n\t\t{ id: 'divider-help', divider: true },\n\t\t{ id: 'help', label: 'Central de ajuda', icon: 'ph ph-question' },\n\t\t{ id: 'billing', label: 'Faturamento', icon: 'ph ph-credit-card', disabled: true },\n\t\t{ id: 'divider-logout', divider: true },\n\t\t{ id: 'logout', label: 'Sair', icon: 'ph ph-sign-out' },\n\t],\n};\nCustomProfileItems.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'Outra aplicação com opções próprias: dois switches, item desabilitado e dois divisores. Basta trocar profileItems.',\n\t\t},\n\t},\n};\n\nexport const ControlledDrillPath = (args: StoryArgs) => {\n\tconst container = Template(args);\n\tconst menu = container.querySelector('sula-workbench-menu');\n\tconst paths: Record<string, string[]> = {\n\t\tTree: [],\n\t\tSinistros: ['claims'],\n\t\t'Cobertura': ['claims', 'claims-auto', 'claims-auto-coverage'],\n\t\t'Terceiros': ['claims', 'claims-auto', 'claims-auto-coverage', 'claims-auto-third'],\n\t};\n\n\tconst toolbar = document.createElement('div');\n\ttoolbar.style.cssText = 'display:flex;gap:8px;margin:20px 20px 0';\n\tObject.entries(paths).forEach(([label, path]) => {\n\t\tconst button = document.createElement('sula-button');\n\t\tbutton.text = label;\n\t\tbutton.addEventListener('click', () => (menu.drillPath = path));\n\t\ttoolbar.appendChild(button);\n\t});\n\n\tconst wrapper = document.createElement('div');\n\twrapper.append(toolbar, container);\n\treturn wrapper;\n};\nControlledDrillPath.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: workbenchItems,\n\tuser: sampleUser,\n};\nControlledDrillPath.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'O host controla o drill-down pela propriedade drillPath: os botões acima entram em Sinistros, em Cobertura, em Terceiros ou voltam para a raiz. Ids desconhecidos interrompem o caminho no último nível válido.',\n\t\t},\n\t},\n};\n\nexport const InlineOnly = Template.bind({});\nInlineOnly.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: currentMenuItems,\n\tuser: sampleUser,\n};\nInlineOnly.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'Com no máximo 3 níveis, não há drill-down: o componente se comporta como o sula-menu, expandindo tudo em linha.',\n\t\t},\n\t},\n};\n\nexport const InlineWithExpandedPath = Template.bind({});\nInlineWithExpandedPath.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: currentMenuItems,\n\tdrillPath: ['tech-portal', 'tech-cadastros'],\n\tuser: sampleUser,\n};\nInlineWithExpandedPath.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'Sem drill-down, drillPath expande em linha os itens do caminho (Tech Portal e Cadastros) uma única vez; o usuário pode recolhê-los depois.',\n\t\t},\n\t},\n};\n\nexport const FourthLevelBreadcrumb = Template.bind({});\nFourthLevelBreadcrumb.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: workbenchItems,\n\tdrillPath: ['claims', 'claims-auto', 'claims-auto-coverage', 'claims-auto-third'],\n\tuser: sampleUser,\n};\nFourthLevelBreadcrumb.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory:\n\t\t\t\t'Drill-down no quarto nível: duas faixas de camadas na borda esquerda, breadcrumb com o nome do menu, reticências (o dropdown lista os níveis ocultos) e os dois últimos ancestrais, e o título do nível atual.',\n\t\t},\n\t},\n};\n\nexport const WithBrandImage = Template.bind({});\nWithBrandImage.args = {\n\tmenuTitle: 'Sula Hub',\n\timage: BRAND_IMAGE,\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: currentMenuItems,\n\tuser: sampleUser,\n};\nWithBrandImage.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'Imagem da marca ao lado do título no cabeçalho da raiz. No drill-down o cabeçalho segue o protótipo e não mostra a imagem.',\n\t\t},\n\t},\n};\n\nconst longLabelItems: SulaWorkbenchMenuItem[] = [\n\t{ id: 'inicio', label: 'Início', icon: 'ph ph-house' },\n\t{\n\t\tid: 'long-root',\n\t\tlabel: 'Plataforma de Gestão Integrada de Sinistros e Apólices',\n\t\ticon: 'ph ph-buildings',\n\t\tchildren: [\n\t\t\t{\n\t\t\t\tid: 'long-contracts',\n\t\t\t\tlabel: 'Administração de Contratos Corporativos de Longa Duração',\n\t\t\t\ticon: 'ph ph-briefcase',\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'long-coverage',\n\t\t\t\t\t\tlabel: 'Coberturas Adicionais para Terceiros e Beneficiários',\n\t\t\t\t\t\ticon: 'ph ph-shield-check',\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'long-docs',\n\t\t\t\t\t\t\t\tlabel: 'Documentação Complementar Exigida pela Seguradora',\n\t\t\t\t\t\t\t\ticon: 'ph ph-folder-open',\n\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t{ id: 'long-address', label: 'Comprovante de residência atualizado nos últimos noventa dias', icon: 'ph ph-map-pin' },\n\t\t\t\t\t\t\t\t\t{ id: 'long-short', label: 'Curto', icon: 'ph ph-file' },\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n];\n\nconst longLabelPath = ['long-root', 'long-contracts', 'long-coverage', 'long-docs'];\n\nexport const LongLabels = Template.bind({});\nLongLabels.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: longLabelItems,\n\tdrillPath: longLabelPath,\n\tuser: { name: 'Maria Fernanda Albuquerque de Souza', email: 'maria.fernanda.albuquerque.de.souza@sulamerica.com.br' },\n};\nLongLabels.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory:\n\t\t\t\t'Textos longos no drill-down: o título do nível quebra em até duas linhas, os itens quebram em até duas linhas (a seta fica na primeira), o breadcrumb encolhe com reticências e o rodapé corta nome e e-mail.',\n\t\t},\n\t},\n};\n\nexport const LongLabelsTruncate = Template.bind({});\nLongLabelsTruncate.args = {\n\t...LongLabels.args,\n\tlabelOverflow: SulaMenuLabelOverflow.Truncate,\n};\nLongLabelsTruncate.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'Os mesmos textos longos com labelOverflow=\"truncate\": os itens ficam em uma linha, com reticências.',\n\t\t},\n\t},\n};\n\nexport const CompactDensity = Template.bind({});\nCompactDensity.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Compact,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: currentMenuItems,\n\tuser: sampleUser,\n};\nCompactDensity.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'Densidade compacta: itens da raiz com menos espaço vertical.',\n\t\t},\n\t},\n};\n\nexport const ComfortableDensity = Template.bind({});\nComfortableDensity.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Comfortable,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: currentMenuItems,\n\tuser: sampleUser,\n};\nComfortableDensity.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'Densidade confortável: itens da raiz maiores e com mais espaço.',\n\t\t},\n\t},\n};\n\nexport const HiddenAndDisabledItems = Template.bind({});\nHiddenAndDisabledItems.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: [\n\t\t{ id: 'home', label: 'Início', icon: 'ph ph-house', selected: true },\n\t\t{ id: 'reports', label: 'Relatórios', icon: 'ph ph-chart-bar', disabled: true },\n\t\t{ id: 'secret', label: 'Oculto', icon: 'ph ph-eye-slash', hidden: true },\n\t\t{\n\t\t\tid: 'admin',\n\t\t\tlabel: 'Administração',\n\t\t\ticon: 'ph ph-gear',\n\t\t\tchildren: [\n\t\t\t\t{ id: 'admin-users', label: 'Usuários', icon: 'ph ph-users' },\n\t\t\t\t{ id: 'admin-audit', label: 'Auditoria', icon: 'ph ph-clipboard-text', disabled: true },\n\t\t\t\t{ id: 'admin-hidden', label: 'Oculto', icon: 'ph ph-eye-slash', hidden: true },\n\t\t\t],\n\t\t},\n\t],\n\tuser: sampleUser,\n};\nHiddenAndDisabledItems.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'Itens hidden não aparecem (nem contam para a profundidade) e itens disabled ficam esmaecidos e não respondem a cliques.',\n\t\t},\n\t},\n};\n\nexport const WithoutUser = Template.bind({});\nWithoutUser.args = {\n\tmenuTitle: 'Sula Hub',\n\tdensity: SulaMenuDensity.Default,\n\tlabelOverflow: SulaMenuLabelOverflow.Wrap,\n\titems: workbenchItems,\n\tuser: undefined,\n};\nWithoutUser.parameters = {\n\tdocs: {\n\t\tdescription: {\n\t\t\tstory: 'Sem a propriedade user o rodapé e o menu de perfil não são renderizados.',\n\t\t},\n\t},\n};\n\n"]}
|