@sula-tech/webcomponents 0.25.0 → 0.27.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 +83 -67
- 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-toast-stack.cjs.entry.js +4 -4
- package/dist/cjs/sula-toast.cjs.entry.js +2 -2
- 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-chip/sula-chip.css +1 -1
- package/dist/collection/components/sula-chip/sula-chip.js +50 -10
- package/dist/collection/components/sula-chip/sula-chip.js.map +1 -1
- package/dist/collection/components/sula-chip/sula-chip.stories.js +39 -0
- package/dist/collection/components/sula-chip/sula-chip.stories.js.map +1 -1
- package/dist/collection/components/sula-dropdown/sula-dropdown.js +3 -3
- package/dist/collection/components/sula-icon/sula-icon.css +1 -1
- package/dist/collection/components/sula-icon/sula-icon.js +1 -1
- package/dist/collection/components/sula-icon-picker/sula-icon-picker.js +2 -2
- package/dist/collection/components/sula-loader/sula-loader.css +1 -1
- package/dist/collection/components/sula-loader/sula-loader.js +1 -1
- package/dist/collection/components/sula-menu/sula-menu.js +8 -8
- package/dist/collection/components/sula-menu-select-list/sula-menu-select-list.css +1 -1
- package/dist/collection/components/sula-menu-select-list/sula-menu-select-list.js +1 -1
- package/dist/collection/components/sula-profile-menu/sula-profile-menu.css +1 -1
- package/dist/collection/components/sula-progress-bar/sula-progress-bar.js +2 -2
- package/dist/collection/components/sula-radio-button/sula-radio-button.js +2 -2
- package/dist/collection/components/sula-search-bar/sula-search-bar.js +2 -2
- package/dist/collection/components/sula-segmented-control/sula-segmented-control.js +1 -1
- package/dist/collection/components/sula-switch/sula-switch.css +1 -1
- package/dist/collection/components/sula-switch/sula-switch.js +4 -4
- package/dist/collection/components/sula-table/sula-table.js +3 -3
- package/dist/collection/components/sula-table-body/sula-table-body.js +1 -1
- package/dist/collection/components/sula-table-cell/sula-table-cell.js +2 -2
- package/dist/collection/components/sula-table-head-cell/sula-table-head-cell.js +2 -2
- package/dist/collection/components/sula-table-header/sula-table-header.js +1 -1
- package/dist/collection/components/sula-table-row/sula-table-row.js +1 -1
- package/dist/collection/components/sula-tag/sula-tag.js +3 -3
- package/dist/collection/components/sula-textarea/sula-textarea.js +6 -6
- package/dist/collection/components/sula-textfield/sula-textfield.js +2 -2
- package/dist/collection/components/sula-tiles/sula-tiles.js +1 -1
- package/dist/collection/components/sula-timeline-list/sula-timeline-list.js +1 -1
- package/dist/collection/components/sula-toast/sula-toast.js +2 -2
- package/dist/collection/components/sula-toast-stack/sula-toast-stack.js +4 -4
- package/dist/collection/components/sula-toggle/sula-toggle.js +1 -1
- package/dist/collection/components/sula-tooltip/sula-tooltip.js +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-Ckrg2kct.js → p-BNxL-ZjI.js} +5 -5
- package/dist/components/{p-Ckrg2kct.js.map → p-BNxL-ZjI.js.map} +1 -1
- package/dist/components/{p-BlRYoc3b.js → p-ByuiM_SX.js} +4 -4
- package/dist/components/{p-BlRYoc3b.js.map → p-ByuiM_SX.js.map} +1 -1
- package/dist/components/{p-DOhCUb27.js → p-CQQX0ZEo.js} +5 -5
- package/dist/components/{p-DOhCUb27.js.map → p-CQQX0ZEo.js.map} +1 -1
- package/dist/components/{p-DEhN6ZhJ.js → p-CTY6E4Qo.js} +7 -7
- package/dist/components/{p-DEhN6ZhJ.js.map → p-CTY6E4Qo.js.map} +1 -1
- package/dist/components/{p-CkBDMANF.js → p-CiJSp-1r.js} +5 -5
- package/dist/components/{p-CkBDMANF.js.map → p-CiJSp-1r.js.map} +1 -1
- package/dist/components/{p-ej3XWtzq.js → p-DImZWpEm.js} +4 -4
- package/dist/components/{p-ej3XWtzq.js.map → p-DImZWpEm.js.map} +1 -1
- package/dist/components/{p-CNJmyTBM.js → p-DQYdk1Hu.js} +4 -4
- package/dist/components/{p-CNJmyTBM.js.map → p-DQYdk1Hu.js.map} +1 -1
- package/dist/components/{p-Chv1iPo7.js → p-DcFem7BV.js} +7 -7
- package/dist/components/{p-Chv1iPo7.js.map → p-DcFem7BV.js.map} +1 -1
- package/dist/components/{p-BSlKsiiN.js → p-DotZeO3E.js} +5 -5
- package/dist/components/{p-BSlKsiiN.js.map → p-DotZeO3E.js.map} +1 -1
- package/dist/components/{p-CqrWuXvX.js → p-L_u-y6EK.js} +5 -5
- package/dist/components/{p-CqrWuXvX.js.map → p-L_u-y6EK.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 +40 -15
- package/dist/components/sula-chip.js.map +1 -1
- package/dist/components/sula-dropdown.js +1 -1
- package/dist/components/sula-icon-picker.js +6 -6
- 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 +9 -9
- package/dist/components/sula-modal.js +3 -3
- package/dist/components/sula-profile-menu.js +1 -1
- package/dist/components/sula-progress-bar.js +3 -3
- package/dist/components/sula-radio-button.js +2 -2
- package/dist/components/sula-search-bar.js +1 -1
- package/dist/components/sula-segmented-control.js +2 -2
- package/dist/components/sula-switch.js +1 -1
- package/dist/components/sula-table-body.js +1 -1
- package/dist/components/sula-table-cell.js +2 -2
- package/dist/components/sula-table-head-cell.js +2 -2
- package/dist/components/sula-table-header.js +1 -1
- package/dist/components/sula-table-row.js +1 -1
- package/dist/components/sula-table.js +3 -3
- package/dist/components/sula-tag.js +4 -4
- package/dist/components/sula-textarea.js +6 -6
- package/dist/components/sula-textfield.js +1 -1
- package/dist/components/sula-tiles.js +2 -2
- package/dist/components/sula-timeline-list.js +2 -2
- package/dist/components/sula-toast-stack.js +6 -6
- package/dist/components/sula-toast.js +1 -1
- package/dist/components/sula-toggle.js +2 -2
- package/dist/components/sula-tooltip.js +2 -2
- 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 +83 -67
- 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-toast-stack.entry.js +4 -4
- package/dist/esm/sula-toast.entry.js +2 -2
- 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-chip/sula-chip.d.ts +5 -0
- package/dist/types/components/sula-chip/sula-chip.stories.d.ts +11 -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 +29 -29
- package/dist/webcomponents/{p-18c84807.entry.js → p-4fa0213d.entry.js} +6 -6
- package/dist/webcomponents/{p-705e2424.entry.js → p-76884b75.entry.js} +16 -16
- package/dist/webcomponents/{p-88e5171a.entry.js → p-7e31b463.entry.js} +2 -2
- package/dist/webcomponents/p-86448fcf.entry.js +880 -0
- package/dist/webcomponents/p-86448fcf.entry.js.map +1 -0
- package/dist/webcomponents/{p-28e25fac.entry.js → p-d8d9b8e6.entry.js} +168 -143
- package/dist/webcomponents/p-d8d9b8e6.entry.js.map +1 -0
- 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 +23 -20
- package/package.json +1 -1
- package/dist/webcomponents/p-28e25fac.entry.js.map +0 -1
- package/dist/webcomponents/p-50ad82d0.entry.js +0 -827
- package/dist/webcomponents/p-50ad82d0.entry.js.map +0 -1
- /package/dist/webcomponents/{p-18c84807.entry.js.map → p-4fa0213d.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-705e2424.entry.js.map → p-76884b75.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-88e5171a.entry.js.map → p-7e31b463.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sula-workbench-menu.entry.cjs.js","sources":["src/components/sula-workbench-menu/sula-workbench-menu.scss?tag=sula-workbench-menu&encapsulation=shadow","src/components/sula-workbench-menu/sula-workbench-menu.tsx"],"sourcesContent":["$menu-ease-emphasized: cubic-bezier(0.22, 1, 0.36, 1);\n$menu-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);\n\n:host {\n --sula-menu-width: 280px;\n --sula-menu-collapsed-width: 88px;\n --sula-menu-main-item-font-size: 1rem;\n --sula-menu-main-item-line-height: 1.25rem;\n --sula-menu-sub-item-font-size: 0.9375rem;\n --sula-menu-main-item-max-lines: 2;\n --sula-menu-main-item-padding-block: 0.5rem;\n\n display: block;\n height: 100%;\n width: var(--sula-menu-width);\n position: relative;\n overflow: visible;\n transition: width 360ms $menu-ease-emphasized;\n}\n\n:host(.menu-host--density-compact) {\n --sula-menu-main-item-font-size: 0.875rem;\n --sula-menu-main-item-line-height: 1.125rem;\n --sula-menu-sub-item-font-size: 0.8125rem;\n --sula-menu-main-item-padding-block: 0.375rem;\n}\n\n:host(.menu-host--density-comfortable) {\n --sula-menu-main-item-font-size: 1.0625rem;\n --sula-menu-main-item-line-height: 1.5rem;\n --sula-menu-sub-item-font-size: 1rem;\n --sula-menu-main-item-padding-block: 0.625rem;\n}\n\n:host(.menu-host--collapsed) {\n width: var(--sula-menu-collapsed-width);\n}\n\n.menu-shell {\n position: relative;\n padding: 20px 0 12px;\n width: 100%;\n min-height: 100%;\n overflow: hidden;\n transition:\n padding 360ms $menu-ease-emphasized,\n width 360ms $menu-ease-emphasized,\n transform 360ms $menu-ease-emphasized,\n box-shadow 360ms $menu-ease-emphasized,\n border-radius 280ms $menu-ease-standard,\n background-color 220ms $menu-ease-standard;\n}\n\n.menu-shell--expanded {\n width: var(--sula-menu-width);\n padding: 20px 20px 12px;\n box-shadow:\n 0 10px 24px rgba(15, 23, 42, 0.08),\n 0 2px 8px rgba(15, 23, 42, 0.06);\n}\n\n.menu-shell--collapsed {\n box-shadow:\n 0 8px 18px rgba(15, 23, 42, 0.06),\n 0 1px 4px rgba(15, 23, 42, 0.04);\n}\n\n.menu-shell--preview {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: var(--sula-menu-width);\n border-radius: 0 24px 24px 0;\n box-shadow:\n 0 28px 60px rgba(15, 23, 42, 0.18),\n 0 10px 24px rgba(15, 23, 42, 0.12);\n z-index: 2;\n}\n\n.menu-header {\n gap: 0;\n transition: padding 360ms $menu-ease-emphasized;\n}\n\n.menu-group + .menu-group {\n margin-top: 8px;\n}\n\n/* Orange segment on the tree line, next to the selected item. The line is the 1px left border of the\n parent list, so the 2px segment is centered over it. */\n.submenu > li.is-selected {\n position: relative;\n}\n\n.submenu > li.is-selected::before {\n content: '';\n position: absolute;\n top: 6px;\n bottom: 6px;\n left: -9.5px;\n width: 2px;\n border-radius: 2px;\n background: var(--color-brand-primary, #f05223);\n}\n\n/* ---------- collapse button (inside the header) ---------- */\n\n.menu-toggle {\n width: 32px;\n height: 32px;\n margin-left: auto;\n padding: 0;\n border: 1px solid var(--color-line-general, #e5e6e6);\n border-radius: 999px;\n background: var(--color-surface-body, #fff);\n color: var(--color-icon-primary, #6c6e6e);\n cursor: pointer;\n transition:\n color 160ms $menu-ease-standard,\n border-color 160ms $menu-ease-standard,\n background-color 160ms $menu-ease-standard;\n}\n\n.menu-toggle:hover {\n color: var(--color-brand-primary, #f05223);\n border-color: var(--color-brand-primary, #f05223);\n}\n\n.menu-toggle:focus-visible {\n outline: 2px solid var(--color-states-bg-focus, #1355b4);\n outline-offset: 2px;\n}\n\n.menu-shell--collapsed .menu-toggle {\n margin: 16px 0 0;\n}\n\n/* ---------- collapsed rail ---------- */\n\n.menu-shell--collapsed .menu-item {\n margin-inline: 0;\n padding-block: 10px;\n}\n\n.menu-shell--collapsed .item-icon {\n width: 20px;\n height: 20px;\n}\n\n.menu-shell--collapsed .item-icon i {\n font-size: 20px;\n}\n\n/* The profile button spans the same width as the footer divider and the item rows. */\n.menu-shell--expanded .user-info {\n margin-inline: 0;\n}\n\n.menu-shell--collapsed .menu-footer {\n padding-inline: 18px;\n}\n\n.menu-shell--collapsed .menu-nav {\n scrollbar-width: none;\n}\n\n.menu-shell--collapsed .menu-nav::-webkit-scrollbar {\n display: none;\n}\n\n/* A hidden wrapping label must not keep its height in the rail. */\n.menu-copy--hidden.menu-item-label--wrap {\n white-space: nowrap;\n}\n\n.menu-nav {\n transition: padding 360ms $menu-ease-emphasized;\n scrollbar-width: thin;\n scrollbar-color: var(--color-line-general-strong, #bfc0c0) transparent;\n padding-bottom: 16px;\n}\n\n/* The scroll area spans the full menu width so the scrollbar sits on the menu edge,\n not between the labels and the carets. The gutter keeps the right edge stable. */\n.menu-shell--expanded .menu-nav {\n margin-inline: -20px;\n padding-left: 20px;\n padding-right: 14px;\n scrollbar-gutter: stable;\n}\n\n.menu-nav::-webkit-scrollbar {\n width: 6px;\n}\n\n.menu-nav::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.menu-nav::-webkit-scrollbar-thumb {\n border-radius: 999px;\n background: var(--color-line-general-strong, #bfc0c0);\n}\n\n.menu-nav::-webkit-scrollbar-thumb:hover {\n background: var(--color-text-disabled, #949595);\n}\n\n.item-icon {\n width: 16px;\n height: 16px;\n}\n\n/* Long system names wrap; keep icon and caret on the first line. */\n.menu-nav .menu-item,\n.menu-nav .menu-item > div,\n.menu-nav .submenu-item,\n.menu-nav .submenu-item-branch-content,\n.menu-nav .submenu-item-branch-caret {\n align-items: flex-start;\n}\n\n\n.submenu-item .submenu-item-label {\n font-size: var(--sula-menu-sub-item-font-size);\n line-height: 1.25rem;\n}\n\n/* Icon and caret boxes match the first text line, so they stay aligned when labels wrap. */\n.menu-nav .item-icon,\n.menu-nav .menu-item-caret,\n.menu-nav .submenu-item-branch-caret {\n height: 1.25rem;\n}\n\n.menu-shell--expanded .menu-item .item-icon {\n width: 18px;\n}\n\n.menu-shell--expanded .menu-item .item-icon i {\n font-size: 18px;\n}\n\n\n\n.menu-footer {\n transition: padding 360ms $menu-ease-emphasized;\n}\n\n.menu-brand-image {\n flex: 0 0 auto;\n transition:\n margin 320ms $menu-ease-emphasized,\n transform 320ms $menu-ease-emphasized;\n}\n\n.menu-copy {\n display: block;\n min-width: 0;\n max-width: 220px;\n overflow: hidden;\n opacity: 1;\n white-space: nowrap;\n transform: translateX(0);\n transform-origin: left center;\n transition:\n max-width 320ms $menu-ease-emphasized,\n opacity 200ms $menu-ease-standard,\n transform 320ms $menu-ease-emphasized;\n}\n\n.menu-copy--visible {\n max-width: 100%;\n opacity: 1;\n transform: translateX(0);\n pointer-events: auto;\n}\n\n.menu-copy--hidden {\n max-width: 0;\n opacity: 0;\n transform: translateX(-10px);\n pointer-events: none;\n}\n\n.menu-title {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.menu-title.menu-copy--visible {\n max-width: 100%;\n}\n\n.menu-item-label {\n flex: 1 1 auto;\n font-size: var(--sula-menu-main-item-font-size);\n line-height: var(--sula-menu-main-item-line-height);\n}\n\n.menu-item-label--truncate {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.menu-item-label--wrap {\n display: -webkit-box;\n overflow: hidden;\n text-overflow: initial;\n white-space: normal;\n overflow-wrap: anywhere;\n word-break: break-word;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--sula-menu-main-item-max-lines);\n line-clamp: var(--sula-menu-main-item-max-lines);\n}\n\n.menu-item {\n margin-inline: -8px;\n padding-block: var(--sula-menu-main-item-padding-block);\n transition:\n background-color 200ms $menu-ease-standard,\n color 200ms $menu-ease-standard,\n border-color 240ms $menu-ease-emphasized,\n margin-left 240ms $menu-ease-emphasized,\n padding 320ms $menu-ease-emphasized;\n}\n\n.menu-item-caret {\n max-width: 16px;\n overflow: hidden;\n opacity: 1;\n transition:\n transform 280ms $menu-ease-emphasized,\n opacity 180ms $menu-ease-standard,\n max-width 280ms $menu-ease-emphasized,\n margin-left 280ms $menu-ease-emphasized;\n}\n\n.menu-item-caret--visible {\n opacity: 1;\n max-width: 16px;\n margin-left: 12px;\n}\n\n.menu-item-caret--hidden {\n opacity: 0;\n max-width: 0;\n margin-left: 0;\n transform: translateX(-8px);\n}\n\n.menu-item-caret--expanded {\n transform: rotate(180deg);\n}\n\n.submenu {\n max-height: 0;\n opacity: 0;\n overflow: hidden;\n pointer-events: none;\n will-change: max-height, opacity, transform;\n transform: translateY(-6px);\n transform-origin: top left;\n transition:\n max-height 260ms $menu-ease-emphasized,\n opacity 120ms $menu-ease-standard,\n transform 180ms $menu-ease-emphasized;\n}\n\n.submenu--expanded {\n max-height: 999px;\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n\n.submenu-item {\n transition:\n background-color 200ms $menu-ease-standard,\n color 200ms $menu-ease-standard,\n transform 240ms $menu-ease-emphasized;\n}\n\n.submenu-item--branch {\n transition:\n background-color 200ms $menu-ease-standard,\n color 200ms $menu-ease-standard,\n border-color 240ms $menu-ease-emphasized,\n margin-left 240ms $menu-ease-emphasized;\n}\n\n.submenu-item-branch-content {\n min-width: 0;\n}\n\n.submenu-branch {\n transform-origin: top left;\n}\n\n.submenu-grandchild-item {\n transition:\n background-color 200ms $menu-ease-standard,\n color 200ms $menu-ease-standard,\n transform 240ms $menu-ease-emphasized;\n}\n\n.submenu-grandchild-label {\n display: block;\n}\n\n/* ---------- drill-down header ---------- */\n\n.menu-header--drilldown {\n animation: drill-header-in 220ms $menu-ease-standard;\n}\n\n.identity-strip {\n display: flex;\n flex: 1 1 auto;\n min-width: 0;\n align-items: center;\n margin: 0 0 0 -8px;\n padding: 6px 8px;\n border: none;\n border-radius: 8px;\n background: transparent;\n color: inherit;\n font: inherit;\n text-align: left;\n cursor: pointer;\n transition: background-color 160ms $menu-ease-standard;\n}\n\n.identity-row {\n margin-bottom: 12px;\n}\n\n.identity-strip:hover {\n background: var(--color-surface-on-body, #f3f4f4);\n}\n\n.identity-image {\n flex: none;\n width: 20px;\n height: 20px;\n margin-right: 8px;\n border-radius: 5px;\n overflow: hidden;\n}\n\n.identity-image img {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.identity-label {\n min-width: 0;\n font-size: 13px;\n font-weight: 500;\n color: var(--color-text-secondary, #6c6e6e);\n}\n\n.breadcrumb-row {\n position: relative;\n display: flex;\n align-items: center;\n min-width: 0;\n margin-bottom: 10px;\n}\n\n.back-btn {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n margin: 0 2px 0 -6px;\n padding: 0;\n border: none;\n border-radius: 8px;\n background: transparent;\n cursor: pointer;\n transition: background-color 160ms $menu-ease-standard;\n}\n\n.back-btn:hover {\n background: var(--color-surface-on-body, #f3f4f4);\n}\n\n.crumb-trail {\n flex: 1 1 auto;\n min-width: 0;\n gap: 2px;\n}\n\n.crumb-btn {\n flex: 0 1 auto;\n text-align: left;\n min-width: 28px;\n max-width: 120px;\n padding: 3px 4px;\n border: none;\n border-radius: 6px;\n background: transparent;\n color: var(--color-text-secondary, #6c6e6e);\n font: inherit;\n font-size: 12px;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: background-color 160ms $menu-ease-standard, color 160ms $menu-ease-standard;\n}\n\n.crumb-btn:hover {\n background: var(--color-surface-on-body, #f3f4f4);\n color: var(--color-text-primary, #313333);\n}\n\n\n.crumb-btn--ellipsis {\n flex: none;\n max-width: none;\n display: flex;\n align-items: center;\n padding: 3px 5px;\n}\n\n.crumb-sep {\n flex: none;\n color: var(--color-text-disabled, #949595);\n}\n\n.crumb-dropdown {\n position: absolute;\n min-width: 172px;\n max-width: 230px;\n padding: 6px;\n display: flex;\n flex-direction: column;\n gap: 1px;\n border: 1px solid var(--color-line-general, #e5e6e6);\n border-radius: 10px;\n background: var(--color-surface-body, #fff);\n box-shadow: 0 14px 32px rgba(15, 23, 42, 0.16);\n z-index: 30;\n}\n\n.crumb-dropdown-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 7px 8px;\n border: none;\n border-radius: 6px;\n background: transparent;\n color: var(--color-text-primary, #313333);\n font: inherit;\n font-size: 13px;\n text-align: left;\n cursor: pointer;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.crumb-dropdown-item:hover {\n background: var(--color-surface-on-body, #f3f4f4);\n}\n\n.context-row {\n min-width: 0;\n}\n\n.context-icon {\n width: 20px;\n height: 20px;\n margin-right: 8px;\n}\n\n.context-title {\n min-width: 0;\n}\n\n/* ---------- drill-down panel ---------- */\n\n.menu-panel--forward {\n animation: drill-slide-forward 260ms $menu-ease-emphasized;\n}\n\n.menu-panel--back {\n animation: drill-slide-back 260ms $menu-ease-emphasized;\n}\n\n@keyframes drill-header-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes drill-slide-forward {\n from {\n opacity: 0;\n transform: translateX(20px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n@keyframes drill-slide-back {\n from {\n opacity: 0;\n transform: translateX(-20px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n\nsula-icon {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n line-height: 1;\n}\n\nsula-icon > i {\n display: block;\n line-height: 1;\n}\n\n.item-icon > sula-icon,\n.item-icon > .menu-item-image {\n flex: none;\n}\n\n.menu-item-image {\n flex: none;\n display: block;\n object-fit: contain;\n transition: opacity 200ms $menu-ease-standard;\n}\n\n.menu-item-image--sm {\n width: 0.875rem;\n height: 0.875rem;\n}\n\n.menu-item-image--md {\n width: 1rem;\n height: 1rem;\n}\n\n.menu-item-image--lg {\n width: 1.25rem;\n height: 1.25rem;\n}\n\n.menu-item-image.is-faded {\n opacity: 0.5;\n}\n\n/* Inside an icon slot the image follows the slot size (16px sub levels, 18px level 1, 20px rail). */\n.item-icon > .menu-item-image {\n width: 100%;\n height: auto;\n aspect-ratio: 1 / 1;\n}\n\n.menu-item-image--mask {\n background-color: currentColor;\n -webkit-mask: var(--menu-item-image) center / contain no-repeat;\n mask: var(--menu-item-image) center / contain no-repeat;\n}\n\n\n.user-copy {\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n transition:\n max-width 320ms $menu-ease-emphasized,\n opacity 200ms $menu-ease-standard;\n}\n\n.user-copy--visible {\n max-width: 100%;\n opacity: 1;\n transition:\n max-width 320ms $menu-ease-emphasized,\n opacity 200ms $menu-ease-standard 120ms;\n}\n\n.user-copy--hidden {\n max-width: 0;\n opacity: 0;\n}\n\n.user-avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.profile-popover {\n position: fixed;\n z-index: 60;\n width: 256px;\n box-sizing: border-box;\n border: 1px solid var(--color-line-general);\n border-radius: 12px;\n background: var(--color-surface-body);\n box-shadow:\n 0 12px 32px rgba(15, 23, 42, 0.12),\n 0 2px 8px rgba(15, 23, 42, 0.06);\n outline: none;\n visibility: hidden;\n opacity: 0;\n transform: translateY(6px) scale(0.98);\n transform-origin: bottom left;\n transition:\n opacity 160ms $menu-ease-standard,\n transform 200ms $menu-ease-emphasized,\n visibility 0s linear 200ms;\n}\n\n.profile-popover--side {\n transform: translateX(-6px) scale(0.98);\n}\n\n.profile-popover--open {\n visibility: visible;\n opacity: 1;\n transform: none;\n transition:\n opacity 160ms $menu-ease-standard,\n transform 200ms $menu-ease-emphasized;\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host,\n .menu-shell,\n .menu-header,\n .menu-nav,\n .menu-footer,\n .menu-brand-image,\n .menu-copy,\n .menu-item,\n .menu-item-caret,\n .submenu,\n .submenu-item,\n .menu-toggle,\n\n\n .menu-header--drilldown,\n .menu-panel--forward,\n .menu-panel--back {\n animation: none;\n }\n\n .menu-item-caret,\n .submenu-item,\n .submenu-grandchild-item,\n .profile-popover {\n transition: none;\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, JSX, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { SulaMenuDensity, SulaMenuLabelOverflow } from '../sula-menu/model/sula-menu.model';\nimport { SulaProfileMenuItem, SulaProfileMenuSwitchChange } from '../sula-profile-menu/model/sula-profile-menu.model';\nimport { SulaWorkbenchMenuDirection, SulaWorkbenchMenuItem, SulaWorkbenchMenuPath, SulaWorkbenchMenuUser } from './model/sula-workbench-menu.model';\n\ntype CrumbMenuState = { open: boolean; left: number; top: number };\n\n/**\n * Navigation menu that combines an inline expandable tree with a drill-down panel.\n * Levels above `drilldownLevel` expand in place, as in `sula-menu`. Items at or below\n * that level with children open a single-level panel with a breadcrumb trail.\n *\n * @part shell - Main visual container of the menu.\n * @part title - Menu title, or the current level title while drilled in.\n * @part main-item-label - Label of each top-level item.\n * @part item-label - Label of each item inside the drill-down panel.\n * @part toggle-label - Label of the collapse/expand control.\n * @slot profile-content - Extra content rendered inside the profile popover.\n * @part profile-popover - Popover opened from the user area.\n * @cssprop --sula-menu-width - Width of the expanded menu. Defaults to 256px.\n * @cssprop --sula-menu-collapsed-width - Width of the collapsed menu. Defaults to 88px.\n */\n@Component({\n tag: 'sula-workbench-menu',\n styleUrl: 'sula-workbench-menu.scss',\n shadow: true,\n})\nexport class SulaWorkbenchMenu {\n @Element() el: HTMLElement;\n\n /**\n * Menu title\n */\n @Prop()\n menuTitle: string = '';\n\n /**\n * Menu image\n */\n @Prop()\n image: string = '';\n\n /**\n * Menu width in expanded state. Use a CSS length that does not depend on the\n * host width, for example: 256px, 20rem or clamp(16rem, 25vw, 24rem).\n */\n @Prop()\n width: string = '';\n\n /**\n * Density applied to menu items.\n */\n @Prop()\n density: SulaMenuDensity = SulaMenuDensity.Default;\n\n /**\n * Overflow behavior for item labels.\n */\n @Prop()\n labelOverflow: SulaMenuLabelOverflow = SulaMenuLabelOverflow.Wrap;\n\n /**\n * Depth (1-based) from which items with children open a drill-down panel instead of expanding in place.\n * With the default of 3, the first two levels expand inline and deeper branches drill down.\n */\n @Prop()\n drilldownLevel: number = 3;\n\n /**\n * Controls the drill-down from the host: ids from the root to the item whose children are shown.\n * An empty array shows the tree (leaves the drill-down). Leave it undefined to let only user clicks navigate.\n */\n @Prop()\n drillPath?: string[];\n\n /**\n * Menu items. Each item may use `icon` (icon font class) or `image` (URL or data URI of an image or SVG).\n */\n @Prop({ mutable: true, reflect: true })\n items: SulaWorkbenchMenuItem[] = [];\n\n /**\n * Logged user shown at the bottom of the menu. Without a photo, the initials are shown.\n */\n @Prop()\n user?: SulaWorkbenchMenuUser;\n\n /**\n * Icon used for items without `icon` or `image`. Use an empty string to show no icon.\n */\n @Prop()\n defaultIcon: string = 'ph ph-dot-outline';\n\n /**\n * Options of the profile popover. Use `divider` for a separator and `hasSwitch` + `active` for a toggle row.\n */\n @Prop({ mutable: true })\n profileItems: SulaProfileMenuItem[] = [];\n\n /**\n * Emitted when a leaf item is selected\n */\n @Event()\n itemSelected: EventEmitter<SulaWorkbenchMenuItem>;\n\n /**\n * Emitted when any item is clicked\n */\n @Event()\n itemClicked: EventEmitter<SulaWorkbenchMenuItem>;\n\n /**\n * Emitted when the drill-down level changes, with the ids from the root to the level shown (empty at the root)\n */\n @Event()\n levelChanged: EventEmitter<SulaWorkbenchMenuPath>;\n\n /**\n * Emitted when the user area is clicked. Call `preventDefault()` to keep the profile popover closed.\n */\n @Event({ cancelable: true })\n profileClicked: EventEmitter<SulaWorkbenchMenuUser>;\n\n /**\n * Emitted when a profile popover option without switch is clicked. The popover closes.\n */\n @Event()\n profileItemClicked: EventEmitter<SulaProfileMenuItem>;\n\n /**\n * Emitted when the switch of a profile popover option changes. The popover stays open.\n */\n @Event()\n profileSwitchChanged: EventEmitter<SulaProfileMenuSwitchChange>;\n\n /**\n * Emitted when the menu is toggled between collapsed and expanded states\n * True: Menu is expanded\n * False: Menu is collapsed\n */\n @Event()\n menuToggled: EventEmitter<boolean>;\n\n @State()\n collapsed: boolean = false;\n\n @State()\n previewExpanded: boolean = false;\n\n @State()\n stack: SulaWorkbenchMenuItem[] = [];\n\n @State()\n direction: SulaWorkbenchMenuDirection = 'forward';\n\n @State()\n selectedPath: SulaWorkbenchMenuPath = [];\n\n @State()\n crumbMenu: CrumbMenuState = { open: false, left: 0, top: 0 };\n\n @State()\n profileOpen: boolean = false;\n\n private crumbEllipsisEl?: HTMLElement;\n private crumbDropdownEl?: HTMLElement;\n private shellEl?: HTMLElement;\n private userInfoEl?: HTMLElement;\n private profileEl?: HTMLElement;\n private hovering = false;\n\n private get normalizedWidth() {\n const value = this.width?.trim();\n return value ? value : undefined;\n }\n\n private get hostStyleVariables() {\n return {\n ...(this.normalizedWidth ? { '--sula-menu-width': this.normalizedWidth } : {}),\n };\n }\n\n componentWillLoad() {\n this.syncWithItems(this.items);\n }\n\n @Watch('items')\n syncWithItems(items: SulaWorkbenchMenuItem[]) {\n const nextSelected = this.findSelectedIds(items);\n if (nextSelected) {\n this.selectedPath = nextSelected;\n } else if (!this.selectedPath.length || !this.isStillSelectable(items, this.selectedPath)) {\n this.selectedPath = [];\n }\n this.stack = this.rebuildStack(items, this.stack);\n if (this.drillPath) this.applyDrillPath(this.drillPath);\n }\n\n @Watch('drillPath')\n syncDrillPath(path?: string[]) {\n if (path) this.applyDrillPath(path);\n }\n\n private applyDrillPath(path: string[]) {\n const next: SulaWorkbenchMenuItem[] = [];\n let level = this.items;\n for (const id of path) {\n const match = this.getVisibleItems(level).find(item => item.id === id);\n if (!match) break;\n next.push(match);\n level = match.children ?? [];\n }\n\n const same = next.length === this.stack.length && next.every((item, index) => item.id === this.stack[index].id);\n if (same) return;\n\n this.direction = next.length < this.stack.length ? 'back' : 'forward';\n this.stack = next;\n }\n\n componentDidRender() {\n this.positionProfile();\n }\n\n @Listen('click', { target: 'document' })\n onDocumentClick(event: MouseEvent) {\n const path = event.composedPath();\n if (this.profileOpen && !path.includes(this.profileEl) && !path.includes(this.userInfoEl)) this.closeProfile();\n if (!this.crumbMenu.open) return;\n if (path.includes(this.crumbEllipsisEl) || path.includes(this.crumbDropdownEl)) return;\n this.closeCrumbMenu();\n }\n\n @Listen('keydown', { target: 'document' })\n onDocumentKeydown(event: KeyboardEvent) {\n if (event.key !== 'Escape') return;\n this.closeCrumbMenu();\n if (this.profileOpen) {\n this.closeProfile();\n this.userInfoEl?.focus();\n }\n }\n\n @Listen('resize', { target: 'window' })\n onWindowResize() {\n this.positionProfile();\n }\n\n private getVisibleItems(items?: SulaWorkbenchMenuItem[]) {\n return items?.filter(item => !item.hidden) ?? [];\n }\n\n private hasVisibleChildren(item: Pick<SulaWorkbenchMenuItem, 'children'>) {\n return this.getVisibleItems(item.children).length > 0;\n }\n\n private isDrilled() {\n return this.stack.length >= this.drilldownLevel;\n }\n\n private findSelectedIds(items: SulaWorkbenchMenuItem[], trail: string[] = []): string[] | undefined {\n for (const item of this.getVisibleItems(items)) {\n if (!this.hasVisibleChildren(item)) {\n if (item.selected) return [...trail, item.id];\n continue;\n }\n const nested = this.findSelectedIds(item.children, [...trail, item.id]);\n if (nested) return nested;\n }\n return undefined;\n }\n\n private isStillSelectable(items: SulaWorkbenchMenuItem[], path: string[]) {\n const found = this.findPath(items, path[path.length - 1]);\n return !!found && !this.hasVisibleChildren(found[found.length - 1]);\n }\n\n private toggleExpanded(items: SulaWorkbenchMenuItem[], id: string): SulaWorkbenchMenuItem[] {\n return items.map(item => {\n if (item.id === id) return { ...item, expanded: !item.expanded };\n if (!item.children) return item;\n return { ...item, children: this.toggleExpanded(item.children, id) };\n });\n }\n\n private findPath(items: SulaWorkbenchMenuItem[], id: string, trail: SulaWorkbenchMenuItem[] = []): SulaWorkbenchMenuItem[] | undefined {\n for (const item of this.getVisibleItems(items)) {\n const next = [...trail, item];\n if (item.id === id) return next;\n const nested = this.findPath(item.children ?? [], id, next);\n if (nested) return nested;\n }\n return undefined;\n }\n\n private rebuildStack(items: SulaWorkbenchMenuItem[], previous: SulaWorkbenchMenuItem[]) {\n const next: SulaWorkbenchMenuItem[] = [];\n let level = items;\n\n for (const ancestor of previous) {\n const match = this.getVisibleItems(level).find(item => item.id === ancestor.id);\n if (!match) break;\n next.push(match);\n level = match.children ?? [];\n }\n\n return next;\n }\n\n private isActive(item: SulaWorkbenchMenuItem, branch: boolean) {\n if (branch) return this.selectedPath.includes(item.id);\n return this.selectedPath.length > 0 && this.selectedPath[this.selectedPath.length - 1] === item.id;\n }\n\n private isFaded(item: SulaWorkbenchMenuItem, active: boolean) {\n return !!item.disabled && !active;\n }\n\n private emitLevel() {\n this.levelChanged.emit(this.stack.map(item => item.id));\n }\n\n private toggleInline(id: string) {\n this.items = this.toggleExpanded(this.items, id);\n }\n\n private enterDrill(item: SulaWorkbenchMenuItem) {\n const path = this.findPath(this.items, item.id) ?? [item];\n this.direction = 'forward';\n this.stack = path;\n this.closeCrumbMenu();\n this.emitLevel();\n }\n\n private markSelected(items: SulaWorkbenchMenuItem[], id: string): SulaWorkbenchMenuItem[] {\n return items.map(item => ({\n ...item,\n selected: item.id === id,\n ...(item.children ? { children: this.markSelected(item.children, id) } : {}),\n }));\n }\n\n // Selection lives on the items (like `expanded`), so re-assigning items when a branch is\n // toggled keeps the user's choice instead of falling back to the initially selected item.\n private selectItem(item: SulaWorkbenchMenuItem) {\n const path = this.findPath(this.items, item.id) ?? [item];\n this.items = this.markSelected(this.items, item.id);\n this.selectedPath = path.map(p => p.id);\n this.itemSelected.emit(item);\n }\n\n private handleRowClick(item: SulaWorkbenchMenuItem, depth: number) {\n if (item.disabled) return;\n\n this.itemClicked.emit(item);\n\n if (this.hasVisibleChildren(item)) {\n if (depth < this.drilldownLevel) {\n this.toggleInline(item.id);\n } else {\n this.enterDrill(item);\n }\n return;\n }\n\n this.selectItem(item);\n }\n\n private goToDepth(index: number) {\n this.direction = 'back';\n this.stack = index < 0 ? [] : this.stack.slice(0, index + 1);\n this.closeCrumbMenu();\n this.emitLevel();\n }\n\n private toggleCrumbMenu(event: MouseEvent) {\n if (this.crumbMenu.open) {\n this.closeCrumbMenu();\n return;\n }\n const button = event.currentTarget as HTMLElement;\n this.crumbMenu = {\n open: true,\n left: button.offsetLeft,\n top: button.offsetTop + button.offsetHeight + 6,\n };\n }\n\n private closeCrumbMenu() {\n if (this.crumbMenu.open) this.crumbMenu = { ...this.crumbMenu, open: false };\n }\n\n private toggleMenu() {\n this.closeProfile();\n if (this.collapsed) {\n this.collapsed = false;\n this.previewExpanded = false;\n this.menuToggled.emit(true);\n return;\n }\n\n this.collapsed = true;\n this.menuToggled.emit(false);\n this.previewExpanded = false;\n }\n\n private handleMenuMouseEnter() {\n this.hovering = true;\n if (this.collapsed) this.previewExpanded = true;\n }\n\n // While the popover is open the preview stays expanded, so the popover keeps its anchor.\n private handleMenuMouseLeave() {\n this.hovering = false;\n if (this.collapsed && !this.profileOpen) this.previewExpanded = false;\n }\n\n private toggleProfile() {\n if (this.profileOpen) {\n this.closeProfile();\n return;\n }\n if (this.profileClicked.emit(this.user).defaultPrevented) return;\n this.profileOpen = true;\n requestAnimationFrame(() => this.profileEl?.focus());\n }\n\n private closeProfile() {\n if (!this.profileOpen) return;\n this.profileOpen = false;\n if (this.collapsed && !this.hovering) this.previewExpanded = false;\n }\n\n // Fixed position, so ancestors with overflow hidden do not clip the popover.\n private positionProfile() {\n if (!this.profileOpen || !this.profileEl || !this.userInfoEl || !this.shellEl) return;\n const gap = 8;\n const inset = 12;\n const anchor = this.userInfoEl.getBoundingClientRect();\n const shell = this.shellEl.getBoundingClientRect();\n const style = this.profileEl.style;\n\n if (!this.collapsed || this.previewExpanded) {\n style.left = `${shell.left + inset}px`;\n style.width = `${shell.width - inset * 2}px`;\n style.bottom = `${window.innerHeight - anchor.top + gap}px`;\n return;\n }\n\n style.left = `${shell.right + gap}px`;\n style.width = '';\n style.bottom = `${window.innerHeight - anchor.bottom}px`;\n }\n\n // Inner events are composed; stopping them avoids clashing with this menu's own itemClicked.\n private handleProfileItemClicked(event: CustomEvent<SulaProfileMenuItem>) {\n event.stopPropagation();\n this.closeProfile();\n this.profileItemClicked.emit(event.detail);\n }\n\n private handleProfileSwitchChanged(event: CustomEvent<SulaProfileMenuSwitchChange>) {\n event.stopPropagation();\n const { item } = event.detail;\n this.profileItems = this.profileItems.map(current => (current.id === item.id ? item : current));\n this.profileSwitchChanged.emit(event.detail);\n }\n\n private renderProfilePopover(expandedView: boolean) {\n return (\n <div\n part=\"profile-popover\"\n role=\"dialog\"\n aria-label={`Perfil de ${this.user.name}`}\n aria-hidden={String(!this.profileOpen)}\n tabIndex={-1}\n ref={el => (this.profileEl = el)}\n class={{\n 'profile-popover': true,\n 'profile-popover--open': this.profileOpen,\n 'profile-popover--side': !expandedView,\n }}\n >\n <sula-profile-menu\n user={this.user}\n items={this.profileItems}\n onItemClicked={event => this.handleProfileItemClicked(event)}\n onSwitchChanged={event => this.handleProfileSwitchChanged(event)}\n >\n <slot name=\"profile-content\"></slot>\n </sula-profile-menu>\n </div>\n );\n }\n\n private isValidIcon(icon?: string) {\n return !!icon && /ph-[a-z]/.test(icon);\n }\n\n private isSvg(image: string) {\n return /^data:image\\/svg\\+xml/i.test(image) || /\\.svg(\\?|#|$)/i.test(image);\n }\n\n private iconOf(item: SulaWorkbenchMenuItem) {\n return this.isValidIcon(item.icon) ? item.icon : this.defaultIcon;\n }\n\n private hasIcon(item: SulaWorkbenchMenuItem) {\n return !!item.image || this.isValidIcon(this.iconOf(item));\n }\n\n private renderItemIcon(item: SulaWorkbenchMenuItem, customClass: string, size: 'sm' | 'md' | 'lg', faded = false) {\n if (!this.hasIcon(item)) return null;\n if (item.image && this.isSvg(item.image)) {\n // SVGs are painted with currentColor through a mask, so they follow the same state colors as the icon font.\n return (\n <span\n class={`menu-item-image menu-item-image--mask menu-item-image--${size} ${customClass}`}\n style={{ '--menu-item-image': `url(\"${item.image.replace(/\"/g, '%22')}\")` }}\n aria-hidden=\"true\"\n ></span>\n );\n }\n if (item.image) {\n return (\n <img\n class={{ 'menu-item-image': true, [`menu-item-image--${size}`]: true, 'is-faded': faded }}\n src={item.image}\n alt=\"\"\n />\n );\n }\n return <sula-icon icon={this.iconOf(item)} customClass={customClass}></sula-icon>;\n }\n\n private getInitials(name: string) {\n return name\n .split(' ')\n .filter(Boolean)\n .slice(0, 2)\n .map(part => part[0].toUpperCase())\n .join('');\n }\n\n private renderUserInfo(expandedView: boolean) {\n const user = this.user;\n return (\n <button\n type=\"button\"\n class={{\n 'user-info flex min-w-0 cursor-pointer items-center rounded-xs p-8 text-left hover:bg-states-empty-bg-hover': true,\n 'user-info--active bg-states-empty-bg-hover': this.profileOpen,\n 'w-full': expandedView,\n }}\n title={`Ver perfil de ${user.name}`}\n aria-label={`Ver perfil de ${user.name}`}\n aria-haspopup=\"dialog\"\n aria-expanded={String(this.profileOpen)}\n ref={el => (this.userInfoEl = el)}\n onClick={() => this.toggleProfile()}\n >\n <span class=\"user-avatar flex h-9 w-9 flex-none items-center justify-center overflow-hidden rounded-full bg-brand-primary text-sm font-semibold text-negative-negative-1\">\n {user.photo ? <img src={user.photo} alt={user.name} /> : this.getInitials(user.name)}\n </span>\n <span\n aria-hidden={!expandedView}\n class={{\n 'user-copy': true,\n 'ml-8': true,\n 'user-copy--visible': expandedView,\n 'user-copy--hidden': !expandedView,\n }}\n >\n <span part=\"user-name\" class=\"user-name truncate text-sm font-semibold text-text-primary\">\n {user.name}\n </span>\n {user.email && <span part=\"user-email\" class=\"user-email truncate text-xs text-text-secondary\">{user.email}</span>}\n </span>\n </button>\n );\n }\n\n private getIconClass(active: boolean, faded: boolean, size: string) {\n if (faded) return `text-icon-disabled ${size}`;\n if (active) return `text-brand-primary ${size}`;\n return `text-icon-primary ${size}`;\n }\n\n private renderCollapseButton() {\n const label = this.collapsed ? 'Expandir menu' : 'Recolher menu';\n return (\n <button\n type=\"button\"\n class=\"menu-toggle flex flex-none items-center justify-center\"\n title={label}\n aria-label={label}\n aria-expanded={String(!this.collapsed)}\n onClick={() => this.toggleMenu()}\n >\n <sula-icon icon={`ph-bold ph-caret-${this.collapsed ? 'right' : 'left'}`} customClass=\"text-lg\"></sula-icon>\n </button>\n );\n }\n\n private renderRootHeader(expandedView: boolean) {\n return (\n <div\n class={{\n 'menu-header flex items-center': true,\n 'mb-40': expandedView,\n 'mb-24 flex-col justify-center px-0': !expandedView,\n }}\n >\n {this.image && (\n <div class={{ 'menu-brand-image max-h-10 max-w-10 overflow-hidden': true, 'mr-6': expandedView }}>\n <img src={this.image} alt={this.menuTitle} />\n </div>\n )}\n <div\n aria-hidden={!expandedView}\n title={expandedView ? this.menuTitle : undefined}\n class={{\n 'menu-title menu-copy': true,\n 'menu-copy--visible': expandedView,\n 'menu-copy--hidden': !expandedView,\n }}\n >\n <h1 part=\"title\" class=\"truncate text-2xl font-bold leading-7 text-text-secondary\">\n {this.menuTitle}\n </h1>\n </div>\n {this.renderCollapseButton()}\n </div>\n );\n }\n\n private renderTrail(ancestors: SulaWorkbenchMenuItem[]) {\n const hasHidden = ancestors.length > 2;\n const visible = hasHidden ? ancestors.slice(-2) : ancestors;\n const crumbs: JSX.Element[] = [];\n\n if (hasHidden) {\n crumbs.push(\n <button\n key=\"ellipsis\"\n type=\"button\"\n class=\"crumb-btn crumb-btn--ellipsis\"\n aria-haspopup=\"true\"\n aria-expanded={String(this.crumbMenu.open)}\n title={`${ancestors.length - 2} nível(is) anterior(es)`}\n ref={el => (this.crumbEllipsisEl = el)}\n onClick={event => this.toggleCrumbMenu(event)}\n >\n <sula-icon icon=\"ph-bold ph-dots-three\" customClass=\"text-base text-text-secondary\"></sula-icon>\n </button>,\n );\n }\n\n visible.forEach(ancestor => {\n crumbs.push(\n <button\n key={ancestor.id}\n type=\"button\"\n class=\"crumb-btn\"\n title={ancestor.label}\n onClick={() => this.goToDepth(this.stack.indexOf(ancestor))}\n >\n {ancestor.label}\n </button>,\n );\n });\n\n const nodes: JSX.Element[] = [];\n crumbs.forEach((crumb, index) => {\n if (index > 0) nodes.push(<sula-icon key={`sep-${index}`} icon=\"ph ph-caret-right\" customClass=\"crumb-sep text-xs\"></sula-icon>);\n nodes.push(crumb);\n });\n\n return (\n <nav class=\"crumb-trail flex min-w-0 items-center\" aria-label=\"Caminho de navegação\">\n {nodes}\n </nav>\n );\n }\n\n private renderCrumbDropdown(ancestors: SulaWorkbenchMenuItem[]) {\n if (!this.crumbMenu.open || ancestors.length <= 2) return null;\n const hidden = ancestors.slice(0, -2);\n\n return (\n <div\n class=\"crumb-dropdown\"\n role=\"menu\"\n ref={el => (this.crumbDropdownEl = el)}\n style={{ left: `${this.crumbMenu.left}px`, top: `${this.crumbMenu.top}px` }}\n >\n {hidden.map(ancestor => (\n <button\n key={ancestor.id}\n type=\"button\"\n role=\"menuitem\"\n class=\"crumb-dropdown-item\"\n onClick={() => this.goToDepth(this.stack.indexOf(ancestor))}\n >\n <span class=\"item-icon flex flex-none items-center justify-center\">{this.renderItemIcon(ancestor, 'text-sm text-icon-primary', 'sm')}</span>\n <span class=\"truncate\">{ancestor.label}</span>\n </button>\n ))}\n </div>\n );\n }\n\n private renderDrillHeader(activeParent: SulaWorkbenchMenuItem) {\n const ancestors = this.stack.slice(0, -1);\n const backLabel = ancestors.length ? ancestors[ancestors.length - 1].label : this.menuTitle || 'Início';\n const backButton = (\n <button\n type=\"button\"\n class=\"back-btn\"\n title={`Voltar para ${backLabel}`}\n aria-label={`Voltar para ${backLabel}`}\n onClick={() => this.goToDepth(this.stack.length - 2)}\n >\n <sula-icon icon=\"ph ph-arrow-left\" customClass=\"text-lg text-icon-primary\"></sula-icon>\n </button>\n );\n\n return (\n <div class=\"menu-header menu-header--drilldown mb-16 flex flex-col border-b border-line-general pb-24\">\n <div class=\"identity-row flex items-center\">\n <button type=\"button\" class=\"identity-strip\" title={`Ir para o início de ${this.menuTitle}`} onClick={() => this.goToDepth(-1)}>\n {this.image && (\n <span class=\"identity-image\">\n <img src={this.image} alt=\"\" />\n </span>\n )}\n <span class=\"identity-label truncate\">{this.menuTitle}</span>\n </button>\n {this.renderCollapseButton()}\n </div>\n\n {ancestors.length > 0 && (\n <div class=\"breadcrumb-row\">\n {backButton}\n {this.renderTrail(ancestors)}\n {this.renderCrumbDropdown(ancestors)}\n </div>\n )}\n\n <div class={{ 'context-row flex items-center min-w-0': true, 'mt-8': ancestors.length > 0 }}>\n {ancestors.length === 0 && backButton}\n {this.hasIcon(activeParent) && (\n <span class=\"context-icon flex flex-none items-center justify-center\">\n {this.renderItemIcon(activeParent, 'text-xl text-brand-primary', 'md')}\n </span>\n )}\n <h1 part=\"title\" class=\"context-title truncate text-xl font-semibold leading-tight text-text-primary\">\n {activeParent.label}\n </h1>\n </div>\n </div>\n );\n }\n\n private renderDrillRow(item: SulaWorkbenchMenuItem, reserve: boolean) {\n const branch = this.hasVisibleChildren(item);\n const active = this.isActive(item, branch);\n const faded = this.isFaded(item, active);\n\n return (\n <li class=\"list-none\" key={item.id}>\n <div\n class={{\n 'menu-item flex items-center justify-between rounded-xs px-8': true,\n 'cursor-pointer hover:bg-states-empty-bg-hover': !item.disabled && !active,\n 'cursor-pointer': !item.disabled && active,\n 'cursor-not-allowed': !!item.disabled,\n }}\n aria-disabled={!!item.disabled}\n onClick={() => this.handleRowClick(item, this.stack.length + 1)}\n >\n <span class=\"flex min-w-0 flex-1 items-center gap-8\">\n {this.renderIconSlot(item, this.getIconClass(active, faded, 'text-base'), faded, reserve)}\n <span\n part=\"item-label\"\n class={{\n 'menu-item-label truncate': this.labelOverflow !== SulaMenuLabelOverflow.Wrap,\n 'menu-item-label menu-item-label--wrap': this.labelOverflow === SulaMenuLabelOverflow.Wrap,\n 'font-bold text-text-primary': active,\n 'text-text-disabled': faded,\n 'text-text-secondary': !active && !faded,\n }}\n >\n {item.label}\n </span>\n </span>\n {branch && <sula-icon icon=\"ph ph-caret-right\" customClass={faded ? 'text-text-disabled text-xs' : 'text-text-secondary text-xs'}></sula-icon>}\n </div>\n </li>\n );\n }\n\n private renderDrillPanel() {\n const activeParent = this.stack[this.stack.length - 1];\n const panelKey = this.stack.map(item => item.id).join('/');\n\n return (\n <ul\n key={panelKey}\n class={{\n 'menu-panel flex flex-col': true,\n 'menu-panel--forward': this.direction === 'forward',\n 'menu-panel--back': this.direction === 'back',\n }}\n >\n {this.getVisibleItems(activeParent.children).map(item => this.renderDrillRow(item, this.siblingsHaveIcon(activeParent.children)))}\n </ul>\n );\n }\n\n private getMainIconClass(active: boolean, faded: boolean) {\n if (faded) return 'text-icon-disabled text-base';\n if (active) return 'text-brand-primary text-base';\n return 'text-icon-primary text-base';\n }\n\n private getMainCaretClass(active: boolean, faded: boolean) {\n if (faded) return 'text-text-disabled text-xs';\n if (active) return 'text-text-primary text-xs';\n return 'text-text-secondary text-xs';\n }\n\n private getSubIconClass(faded: boolean, selected = false) {\n if (faded) return 'text-icon-disabled text-base';\n if (selected) return 'text-brand-primary text-base';\n return 'text-icon-primary text-base';\n }\n\n private getSubCaretClass(faded: boolean) {\n return faded ? 'text-icon-disabled text-xs' : 'text-icon-primary text-xs';\n }\n\n private siblingsHaveIcon(items: SulaWorkbenchMenuItem[]) {\n return this.getVisibleItems(items).some(sibling => this.hasIcon(sibling));\n }\n\n private renderIconSlot(item: SulaWorkbenchMenuItem, customClass: string, faded: boolean, reserve = true) {\n if (!reserve && !this.hasIcon(item)) return null;\n return <span class=\"item-icon flex flex-none items-center justify-center\">{this.renderItemIcon(item, customClass, 'lg', faded)}</span>;\n }\n\n private renderMainRow(item: SulaWorkbenchMenuItem, expandedView: boolean, branch: boolean, expanded: boolean, active: boolean, faded: boolean, reserve: boolean) {\n const labelOverflowTruncate = this.labelOverflow === SulaMenuLabelOverflow.Truncate;\n return (\n <div\n class={{\n 'menu-item flex items-center rounded-xs px-8': true,\n 'cursor-pointer hover:bg-states-empty-bg-hover': !item.disabled,\n 'cursor-not-allowed': !!item.disabled,\n 'justify-between': expandedView,\n 'justify-center': !expandedView,\n }}\n title={!expandedView ? item.label : undefined}\n aria-disabled={!!item.disabled}\n onClick={() => this.handleRowClick(item, 1)}\n >\n <div class={{ 'flex items-center': true, 'flex-1 min-w-0 gap-8': expandedView, 'justify-center': !expandedView }}>\n {this.renderIconSlot(item, this.getMainIconClass(active, faded), faded, reserve)}\n <span\n part=\"main-item-label\"\n title={expandedView ? item.label : undefined}\n aria-hidden={!expandedView}\n class={{\n 'menu-item-label menu-copy': true,\n 'menu-item-label--truncate': labelOverflowTruncate,\n 'menu-item-label--wrap': !labelOverflowTruncate,\n 'menu-copy--visible': expandedView,\n 'menu-copy--hidden': !expandedView,\n 'font-bold text-text-primary': active,\n 'text-text-disabled': faded,\n 'text-text-secondary': !active && !faded,\n }}\n >\n {item.label}\n </span>\n </div>\n {branch && (\n <sula-icon\n aria-hidden={!expandedView}\n class={{\n 'menu-item-caret flex items-center justify-center': true,\n 'menu-item-caret--expanded': expanded,\n 'menu-item-caret--visible': expandedView,\n 'menu-item-caret--hidden': !expandedView,\n }}\n icon=\"ph ph-caret-down\"\n customClass={this.getMainCaretClass(active, faded)}\n ></sula-icon>\n )}\n </div>\n );\n }\n\n private renderSubRow(item: SulaWorkbenchMenuItem, expandedView: boolean, branch: boolean, expanded: boolean, active: boolean, faded: boolean, drill: boolean, reserve: boolean) {\n const caretIcon = drill ? 'ph-bold ph-caret-right' : `ph-bold ph-caret-${expanded && expandedView ? 'up' : 'down'}`;\n const onClick = () => this.handleRowClick(item, this.depthOf(item));\n const rowClass = {\n 'submenu-item flex min-w-0 items-center rounded-xs py-8 pr-8 select-none': true,\n 'submenu-item--branch w-full': branch,\n 'cursor-pointer hover:bg-states-empty-bg-hover': !item.disabled,\n 'cursor-not-allowed': !!item.disabled,\n 'font-bold': active && branch,\n };\n const label = (\n <span\n class={{\n 'submenu-item-label min-w-0 flex-1': true,\n 'ml-8': reserve || this.hasIcon(item),\n 'menu-item-label--truncate': this.labelOverflow === SulaMenuLabelOverflow.Truncate,\n 'menu-item-label--wrap': this.labelOverflow !== SulaMenuLabelOverflow.Truncate,\n 'text-text-primary': !faded,\n 'text-text-disabled': faded,\n 'font-bold': active,\n }}\n >\n {item.label}\n </span>\n );\n\n if (!branch) {\n return (\n <a class={rowClass} style={{ paddingLeft: '8px' }} title={item.label} aria-disabled={!!item.disabled} onClick={onClick}>\n {this.renderIconSlot(item, this.getSubIconClass(faded, active && !branch), faded, reserve)}\n {label}\n </a>\n );\n }\n\n return (\n <a class={rowClass} style={{ paddingLeft: '8px' }} title={item.label} aria-disabled={!!item.disabled} onClick={onClick}>\n <div class=\"submenu-item-branch-content flex min-w-0 flex-1 items-center\">\n {this.renderIconSlot(item, this.getSubIconClass(faded, active && !branch), faded, reserve)}\n {label}\n </div>\n <div class=\"submenu-item-branch-caret flex flex-none items-center justify-end pl-8\">\n <sula-icon icon={caretIcon} customClass={this.getSubCaretClass(faded)}></sula-icon>\n </div>\n </a>\n );\n }\n\n private depthOf(item: SulaWorkbenchMenuItem) {\n const path = this.findPath(this.items, item.id);\n return path ? path.length : 1;\n }\n\n private renderInlineList(items: SulaWorkbenchMenuItem[], depth: number, expandedView: boolean) {\n const reserve = this.siblingsHaveIcon(items);\n return this.getVisibleItems(items).map(item => {\n const branch = this.hasVisibleChildren(item);\n const drill = branch && depth >= this.drilldownLevel;\n const inline = branch && !drill;\n const expanded = inline && !!item.expanded;\n const active = this.isActive(item, branch) || expanded;\n const faded = this.isFaded(item, active);\n\n const row =\n depth === 1\n ? this.renderMainRow(item, expandedView, branch, expanded, active, faded, reserve)\n : this.renderSubRow(item, expandedView, branch, expanded, active, faded, drill, reserve);\n\n return (\n <li class={{ 'decoration-none list-none': true, 'menu-group': depth === 1, 'is-selected': depth > 1 && active && !branch }} key={item.id}>\n {row}\n {inline && (\n <ul\n aria-hidden={!expandedView || !expanded}\n class={{\n submenu: true,\n 'submenu--expanded': expandedView && expanded,\n 'ml-[8px] border-l border-line-general pl-8': depth === 1,\n 'submenu-branch ml-[24px] border-l border-line-general pl-8': depth > 1,\n }}\n >\n {this.renderInlineList(item.children, depth + 1, expandedView)}\n </ul>\n )}\n </li>\n );\n });\n }\n\n render() {\n const expandedView = !this.collapsed || this.previewExpanded;\n const drilled = expandedView && this.isDrilled();\n const activeParent = this.stack[this.stack.length - 1];\n\n return (\n <Host\n class={{\n 'menu-host--collapsed': this.collapsed,\n 'menu-host--preview': this.collapsed && this.previewExpanded,\n 'menu-host--density-compact': this.density === SulaMenuDensity.Compact,\n 'menu-host--density-comfortable': this.density === SulaMenuDensity.Comfortable,\n }}\n style={this.hostStyleVariables}\n onMouseEnter={() => this.handleMenuMouseEnter()}\n onMouseLeave={() => this.handleMenuMouseLeave()}\n >\n <aside\n part=\"shell\"\n ref={el => (this.shellEl = el)}\n class={{\n 'menu-shell flex h-full flex-col bg-surface-body shadow-md z-50': true,\n 'menu-shell--collapsed': this.collapsed && !this.previewExpanded,\n 'menu-shell--expanded': expandedView,\n 'menu-shell--preview': this.collapsed && this.previewExpanded,\n }}\n >\n {drilled ? this.renderDrillHeader(activeParent) : this.renderRootHeader(expandedView)}\n\n <nav\n class={{\n 'menu-nav flex h-full flex-col overflow-y-auto overflow-x-hidden': true,\n 'px-12': !expandedView,\n }}\n >\n {drilled ? (\n this.renderDrillPanel()\n ) : (\n <ul class=\"flex flex-col\">{this.renderInlineList(this.items, 1, expandedView)}</ul>\n )}\n </nav>\n\n {this.user && (\n <div class=\"menu-footer border-t border-line-general pt-12\">\n {this.renderUserInfo(expandedView)}\n </div>\n )}\n </aside>\n\n {this.user && this.renderProfilePopover(expandedView)}\n </Host>\n );\n }\n}\n"],"names":["SulaMenuDensity","SulaMenuLabelOverflow","h","index","Host"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sula-workbench-menu.entry.cjs.js","sources":["src/components/sula-workbench-menu/sula-workbench-menu.scss?tag=sula-workbench-menu&encapsulation=shadow","src/components/sula-workbench-menu/sula-workbench-menu.tsx"],"sourcesContent":["$menu-ease-emphasized: cubic-bezier(0.22, 1, 0.36, 1);\n$menu-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);\n\n:host {\n --sula-menu-width: 300px;\n --sula-menu-collapsed-width: 88px;\n --sula-menu-main-item-font-size: 1rem;\n --sula-menu-main-item-line-height: 1.25rem;\n --sula-menu-sub-item-font-size: 0.875rem;\n --sula-menu-main-item-max-lines: 2;\n --sula-menu-main-item-padding-block: 0.5rem;\n\n display: block;\n height: 100%;\n width: var(--sula-menu-width);\n position: relative;\n overflow: visible;\n transition: width 360ms $menu-ease-emphasized;\n}\n\n:host(.menu-host--density-compact) {\n --sula-menu-main-item-font-size: 0.875rem;\n --sula-menu-main-item-line-height: 1.125rem;\n --sula-menu-sub-item-font-size: 0.8125rem;\n --sula-menu-main-item-padding-block: 0.375rem;\n}\n\n:host(.menu-host--density-comfortable) {\n --sula-menu-main-item-font-size: 1.0625rem;\n --sula-menu-main-item-line-height: 1.5rem;\n --sula-menu-sub-item-font-size: 1rem;\n --sula-menu-main-item-padding-block: 0.625rem;\n}\n\n:host(.menu-host--collapsed) {\n width: var(--sula-menu-collapsed-width);\n}\n\n.menu-shell {\n position: relative;\n padding: 20px 0 12px;\n width: 100%;\n min-height: 100%;\n overflow: hidden;\n transition:\n padding 360ms $menu-ease-emphasized,\n width 360ms $menu-ease-emphasized,\n transform 360ms $menu-ease-emphasized,\n box-shadow 360ms $menu-ease-emphasized,\n border-radius 280ms $menu-ease-standard,\n background-color 220ms $menu-ease-standard;\n}\n\n.menu-shell--expanded {\n width: var(--sula-menu-width);\n padding: 20px 24px 12px;\n box-shadow:\n 0 10px 24px rgba(15, 23, 42, 0.08),\n 0 2px 8px rgba(15, 23, 42, 0.06);\n}\n\n.menu-shell--collapsed {\n box-shadow:\n 0 8px 18px rgba(15, 23, 42, 0.06),\n 0 1px 4px rgba(15, 23, 42, 0.04);\n}\n\n.menu-shell--preview {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: var(--sula-menu-width);\n border-radius: 0 24px 24px 0;\n box-shadow:\n 0 28px 60px rgba(15, 23, 42, 0.18),\n 0 10px 24px rgba(15, 23, 42, 0.12);\n z-index: 2;\n}\n\n.menu-header {\n gap: 0;\n transition: padding 360ms $menu-ease-emphasized;\n}\n\n.menu-group + .menu-group {\n margin-top: 8px;\n}\n\n/* Orange bar over the tree line next to the selected item. The line is the 1px left border of the\n level-2 list, so the 3px bar is centered over it; level 3 shares that line, 20px further left. */\n.submenu > li {\n padding-block: 4px;\n}\n\n.submenu > li.is-selected {\n position: relative;\n}\n\n.submenu > li.is-selected::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: -14px;\n width: 3px;\n border-radius: 8px;\n background: var(--color-brand-primary, #f05223);\n}\n\n.submenu-branch > li.is-selected::before {\n left: -34px;\n}\n\n/* ---------- collapse button (inside the header) ---------- */\n\n.menu-toggle {\n width: 32px;\n height: 32px;\n margin-left: auto;\n padding: 0;\n border: 1px solid var(--color-line-general, #e5e6e6);\n border-radius: 999px;\n background: var(--color-surface-body, #fff);\n color: var(--color-icon-primary, #6c6e6e);\n cursor: pointer;\n transition:\n color 160ms $menu-ease-standard,\n border-color 160ms $menu-ease-standard,\n background-color 160ms $menu-ease-standard;\n}\n\n.menu-toggle:hover {\n color: var(--color-brand-primary, #f05223);\n border-color: var(--color-brand-primary, #f05223);\n}\n\n.menu-toggle:focus-visible {\n outline: 2px solid var(--color-states-bg-focus, #1355b4);\n outline-offset: 2px;\n}\n\n.menu-shell--collapsed .menu-toggle {\n margin: 16px 0 0;\n}\n\n/* ---------- collapsed rail ---------- */\n\n.menu-shell--collapsed .menu-item {\n margin-inline: 0;\n padding-block: 10px;\n}\n\n.menu-shell--collapsed .item-icon {\n width: 20px;\n height: 20px;\n}\n\n.menu-shell--collapsed .item-icon i {\n font-size: 20px;\n}\n\n/* The profile card spans the same width as the footer divider and the item rows. */\n.menu-shell--expanded .user-info {\n margin-inline: 0;\n}\n\n.user-info--card .user-avatar {\n width: 44px;\n height: 44px;\n}\n\n.user-info--card.user-info--active,\n.user-info--card:hover {\n box-shadow: inset 0 0 0 999px rgba(25, 29, 29, 0.05);\n}\n\n.user-info--card:active {\n box-shadow: inset 0 0 0 999px rgba(25, 29, 29, 0.11);\n}\n\n.menu-shell--collapsed .menu-footer {\n padding-inline: 18px;\n}\n\n.menu-shell--collapsed .menu-nav {\n scrollbar-width: none;\n}\n\n.menu-shell--collapsed .menu-nav::-webkit-scrollbar {\n display: none;\n}\n\n/* A hidden wrapping label must not keep its height in the rail. */\n.menu-copy--hidden.menu-item-label--wrap {\n white-space: nowrap;\n}\n\n.menu-nav {\n transition: padding 360ms $menu-ease-emphasized;\n scrollbar-width: thin;\n scrollbar-color: var(--color-line-general-strong, #bfc0c0) transparent;\n padding-bottom: 16px;\n}\n\n/* The scroll area spans the full menu width so the scrollbar sits on the menu edge,\n not between the labels and the carets. The gutter keeps the right edge stable. */\n.menu-shell--expanded .menu-nav {\n margin-inline: -24px;\n padding-left: 24px;\n padding-right: 18px;\n scrollbar-gutter: stable;\n}\n\n.menu-nav::-webkit-scrollbar {\n width: 6px;\n}\n\n.menu-nav::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.menu-nav::-webkit-scrollbar-thumb {\n border-radius: 999px;\n background: var(--color-line-general-strong, #bfc0c0);\n}\n\n.menu-nav::-webkit-scrollbar-thumb:hover {\n background: var(--color-text-disabled, #949595);\n}\n\n.item-icon {\n width: 16px;\n height: 16px;\n}\n\n/* Long system names wrap; keep icon and caret on the first line. */\n.menu-nav .menu-item,\n.menu-nav .menu-item > div,\n.menu-nav .submenu-item,\n.menu-nav .submenu-item-branch-content,\n.menu-nav .submenu-item-branch-caret {\n align-items: flex-start;\n}\n\n\n.submenu-item .submenu-item-label {\n font-size: var(--sula-menu-sub-item-font-size);\n line-height: 1.25rem;\n}\n\n/* Icon and caret boxes match the first text line, so they stay aligned when labels wrap. */\n.menu-nav .item-icon,\n.menu-nav .menu-item-caret,\n.menu-nav .submenu-item-branch-caret {\n height: 1.25rem;\n}\n\n.menu-shell--expanded .menu-item .item-icon {\n width: 18px;\n}\n\n.menu-shell--expanded .menu-item .item-icon i {\n font-size: 18px;\n}\n\n\n\n.menu-footer {\n transition: padding 360ms $menu-ease-emphasized;\n}\n\n.menu-brand-image {\n flex: 0 0 auto;\n transition:\n margin 320ms $menu-ease-emphasized,\n transform 320ms $menu-ease-emphasized;\n}\n\n.menu-copy {\n display: block;\n min-width: 0;\n max-width: 220px;\n overflow: hidden;\n opacity: 1;\n white-space: nowrap;\n transform: translateX(0);\n transform-origin: left center;\n transition:\n max-width 320ms $menu-ease-emphasized,\n opacity 200ms $menu-ease-standard,\n transform 320ms $menu-ease-emphasized;\n}\n\n.menu-copy--visible {\n max-width: 100%;\n opacity: 1;\n transform: translateX(0);\n pointer-events: auto;\n}\n\n.menu-copy--hidden {\n max-width: 0;\n opacity: 0;\n transform: translateX(-10px);\n pointer-events: none;\n}\n\n.menu-title {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.menu-title.menu-copy--visible {\n max-width: 100%;\n}\n\n.menu-item-label {\n flex: 1 1 auto;\n font-size: var(--sula-menu-main-item-font-size);\n line-height: var(--sula-menu-main-item-line-height);\n}\n\n.menu-item-label--truncate {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.menu-item-label--wrap {\n display: -webkit-box;\n overflow: hidden;\n text-overflow: initial;\n white-space: normal;\n overflow-wrap: anywhere;\n word-break: break-word;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--sula-menu-main-item-max-lines);\n line-clamp: var(--sula-menu-main-item-max-lines);\n}\n\n.menu-item {\n margin-inline: -8px;\n padding-block: var(--sula-menu-main-item-padding-block);\n transition:\n background-color 200ms $menu-ease-standard,\n color 200ms $menu-ease-standard,\n border-color 240ms $menu-ease-emphasized,\n margin-left 240ms $menu-ease-emphasized,\n padding 320ms $menu-ease-emphasized;\n}\n\n.menu-item-caret {\n max-width: 16px;\n overflow: hidden;\n opacity: 1;\n transition:\n transform 280ms $menu-ease-emphasized,\n opacity 180ms $menu-ease-standard,\n max-width 280ms $menu-ease-emphasized,\n margin-left 280ms $menu-ease-emphasized;\n}\n\n.menu-item-caret--visible {\n opacity: 1;\n max-width: 16px;\n margin-left: 12px;\n}\n\n.menu-item-caret--hidden {\n opacity: 0;\n max-width: 0;\n margin-left: 0;\n transform: translateX(-8px);\n}\n\n.menu-item-caret--expanded {\n transform: rotate(180deg);\n}\n\n.submenu {\n max-height: 0;\n opacity: 0;\n overflow: hidden;\n pointer-events: none;\n will-change: max-height, opacity, transform;\n transform: translateY(-6px);\n transform-origin: top left;\n transition:\n max-height 260ms $menu-ease-emphasized,\n opacity 120ms $menu-ease-standard,\n transform 180ms $menu-ease-emphasized;\n}\n\n.submenu--expanded {\n max-height: 999px;\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n\n.submenu-item {\n transition:\n background-color 200ms $menu-ease-standard,\n color 200ms $menu-ease-standard,\n transform 240ms $menu-ease-emphasized;\n}\n\n.submenu-item--branch {\n transition:\n background-color 200ms $menu-ease-standard,\n color 200ms $menu-ease-standard,\n border-color 240ms $menu-ease-emphasized,\n margin-left 240ms $menu-ease-emphasized;\n}\n\n.submenu-item-branch-content {\n min-width: 0;\n}\n\n.submenu-branch {\n transform-origin: top left;\n}\n\n.submenu-grandchild-item {\n transition:\n background-color 200ms $menu-ease-standard,\n color 200ms $menu-ease-standard,\n transform 240ms $menu-ease-emphasized;\n}\n\n.submenu-grandchild-label {\n display: block;\n}\n\n/* ---------- drill-down header ---------- */\n\n.menu-header--drilldown {\n gap: 24px;\n margin-bottom: 32px;\n}\n\n.drill-toolbar {\n padding: 0;\n}\n\n.menu-header--drilldown .menu-toggle {\n width: 24px;\n height: 24px;\n margin-left: 0;\n border: none;\n background: transparent;\n}\n\n.back-btn {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border: none;\n border-radius: 8px;\n background: transparent;\n cursor: pointer;\n transition: background-color 160ms $menu-ease-standard;\n}\n\n.back-btn:hover {\n background: var(--color-surface-on-body, #f3f4f4);\n}\n\n.breadcrumb-row {\n position: relative;\n display: flex;\n align-items: center;\n min-width: 0;\n}\n\n.crumb-trail {\n flex: 1 1 auto;\n min-width: 0;\n gap: 2px;\n}\n\n.crumb-btn {\n flex: 0 1 auto;\n text-align: left;\n min-width: 28px;\n max-width: 120px;\n padding: 3px 4px;\n border: none;\n border-radius: 6px;\n background: transparent;\n color: var(--color-text-secondary, #6c6e6e);\n font: inherit;\n font-size: 12px;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: background-color 160ms $menu-ease-standard, color 160ms $menu-ease-standard;\n}\n\n.crumb-btn:hover {\n background: var(--color-surface-on-body, #f3f4f4);\n color: var(--color-text-primary, #313333);\n}\n\n\n.crumb-btn--ellipsis {\n flex: none;\n max-width: none;\n display: flex;\n align-items: center;\n padding: 3px 5px;\n}\n\n.crumb-sep {\n flex: none;\n color: var(--color-text-disabled, #949595);\n}\n\n.crumb-dropdown {\n position: absolute;\n box-sizing: border-box;\n min-width: 172px;\n max-width: min(230px, 100%);\n padding: 6px;\n display: flex;\n flex-direction: column;\n gap: 1px;\n border: 1px solid var(--color-line-general, #e5e6e6);\n border-radius: 10px;\n background: var(--color-surface-body, #fff);\n box-shadow: 0 14px 32px rgba(15, 23, 42, 0.16);\n z-index: 30;\n}\n\n.crumb-dropdown-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 7px 8px;\n border: none;\n border-radius: 6px;\n background: transparent;\n color: var(--color-text-primary, #313333);\n font: inherit;\n font-size: 13px;\n text-align: left;\n cursor: pointer;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.crumb-dropdown-item:hover {\n background: var(--color-surface-on-body, #f3f4f4);\n}\n\n.context-row {\n min-width: 0;\n}\n\n.context-icon {\n width: 24px;\n height: 24px;\n margin-right: 8px;\n}\n\n.context-title {\n min-width: 0;\n font-size: 22px;\n font-weight: 700;\n line-height: 26px;\n display: -webkit-box;\n overflow: hidden;\n overflow-wrap: anywhere;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n}\n\n/* The caret sits on the first text line when a drill label wraps. */\n.menu-panel .menu-item > sula-icon {\n height: var(--sula-menu-main-item-line-height);\n margin-left: 8px;\n align-items: center;\n}\n\n/* ---------- drill-down panel ---------- */\n\n/* The left padding leaves room for the layer strips. */\n.menu-shell--drilled {\n padding-left: 48px;\n}\n\n.menu-shell--drilled .menu-nav {\n margin-left: -48px;\n padding-left: 48px;\n}\n\n.drill-layers {\n position: absolute;\n inset: 0 auto 0 0;\n pointer-events: none;\n}\n\n.drill-layer {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background: var(--color-surface-body, #fff);\n box-shadow: 0 4px 20px var(--color-line-general, #e5e6e6);\n animation: drill-layer-in 480ms $menu-ease-emphasized;\n}\n\n@keyframes drill-layer-in {\n from {\n opacity: 0;\n transform: translateX(160px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n.menu-panel--forward > li {\n animation: drill-slide-forward 420ms $menu-ease-emphasized both;\n animation-delay: calc(var(--row-index, 0) * 35ms);\n}\n\n.menu-panel--back > li {\n animation: drill-slide-back 420ms $menu-ease-emphasized both;\n animation-delay: calc(var(--row-index, 0) * 35ms);\n}\n\n.menu-header--drilldown {\n animation: drill-header-forward 380ms $menu-ease-emphasized;\n}\n\n.menu-header--drilldown.menu-header--back {\n animation-name: drill-header-back;\n}\n\n@keyframes drill-header-forward {\n from {\n opacity: 0;\n transform: translateX(32px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n@keyframes drill-header-back {\n from {\n opacity: 0;\n transform: translateX(-32px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n\n@keyframes drill-slide-forward {\n from {\n opacity: 0;\n transform: translateX(56px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n@keyframes drill-slide-back {\n from {\n opacity: 0;\n transform: translateX(-56px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n\nsula-icon {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n line-height: 1;\n}\n\nsula-icon > i {\n display: block;\n line-height: 1;\n}\n\n.item-icon > sula-icon,\n.item-icon > .menu-item-image {\n flex: none;\n}\n\n.menu-item-image {\n flex: none;\n display: block;\n object-fit: contain;\n transition: opacity 200ms $menu-ease-standard;\n}\n\n.menu-item-image--sm {\n width: 0.875rem;\n height: 0.875rem;\n}\n\n.menu-item-image--md {\n width: 1rem;\n height: 1rem;\n}\n\n.menu-item-image--lg {\n width: 1.25rem;\n height: 1.25rem;\n}\n\n.menu-item-image.is-faded {\n opacity: 0.5;\n}\n\n/* Inside an icon slot the image follows the slot size (16px sub levels, 18px level 1, 20px rail). */\n.item-icon > .menu-item-image {\n width: 100%;\n height: auto;\n aspect-ratio: 1 / 1;\n}\n\n.menu-item-image--mask {\n background-color: currentColor;\n -webkit-mask: var(--menu-item-image) center / contain no-repeat;\n mask: var(--menu-item-image) center / contain no-repeat;\n}\n\n\n.user-copy {\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n transition:\n max-width 320ms $menu-ease-emphasized,\n opacity 200ms $menu-ease-standard;\n}\n\n.user-copy--visible {\n max-width: 100%;\n opacity: 1;\n transition:\n max-width 320ms $menu-ease-emphasized,\n opacity 200ms $menu-ease-standard 120ms;\n}\n\n.user-copy--hidden {\n max-width: 0;\n opacity: 0;\n}\n\n.user-avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.profile-origin {\n position: fixed;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n visibility: hidden;\n pointer-events: none;\n}\n\n.profile-popover {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 60;\n width: 256px;\n box-sizing: border-box;\n border: 1px solid var(--color-line-general);\n border-radius: 12px;\n background: var(--color-surface-body);\n box-shadow:\n 0 12px 32px rgba(15, 23, 42, 0.12),\n 0 2px 8px rgba(15, 23, 42, 0.06);\n outline: none;\n visibility: hidden;\n opacity: 0;\n transform: translateY(6px) scale(0.98);\n transform-origin: bottom left;\n transition:\n opacity 160ms $menu-ease-standard,\n transform 200ms $menu-ease-emphasized,\n visibility 0s linear 200ms;\n}\n\n.profile-popover--side {\n transform: translateX(-6px) scale(0.98);\n}\n\n.profile-popover--open {\n visibility: visible;\n opacity: 1;\n transform: none;\n transition:\n opacity 160ms $menu-ease-standard,\n transform 200ms $menu-ease-emphasized;\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host,\n .menu-shell,\n .menu-header,\n .menu-nav,\n .menu-footer,\n .menu-brand-image,\n .menu-copy,\n .menu-item,\n .menu-item-caret,\n .submenu,\n .submenu-item,\n .menu-toggle,\n\n\n .menu-header--drilldown,\n .drill-layer,\n .menu-panel--forward > li,\n .menu-panel--back > li,\n .menu-panel--forward,\n .menu-panel--back {\n animation: none;\n }\n\n .menu-item-caret,\n .submenu-item,\n .submenu-grandchild-item,\n .profile-popover {\n transition: none;\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, JSX, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { SulaMenuDensity, SulaMenuLabelOverflow } from '../sula-menu/model/sula-menu.model';\nimport { SulaProfileMenuItem, SulaProfileMenuSwitchChange } from '../sula-profile-menu/model/sula-profile-menu.model';\nimport { SulaWorkbenchMenuDirection, SulaWorkbenchMenuItem, SulaWorkbenchMenuPath, SulaWorkbenchMenuUser } from './model/sula-workbench-menu.model';\n\ntype CrumbMenuState = { open: boolean; left: number; top: number };\n\n/**\n * Navigation menu that expands in place, as in `sula-menu`, while the tree has up to 3 levels.\n * When any visible item reaches a 4th level, every item with children opens a single-level\n * drill-down panel with a breadcrumb trail instead.\n *\n * @part shell - Main visual container of the menu.\n * @part title - Menu title, or the current level title while drilled in.\n * @part main-item-label - Label of each top-level item.\n * @part item-label - Label of each item inside the drill-down panel.\n * @part toggle-label - Label of the collapse/expand control.\n * @slot profile-content - Extra content rendered inside the profile popover.\n * @part profile-popover - Popover opened from the user area.\n * @cssprop --sula-menu-width - Width of the expanded menu. Defaults to 300px.\n * @cssprop --sula-menu-collapsed-width - Width of the collapsed menu. Defaults to 88px.\n */\n@Component({\n tag: 'sula-workbench-menu',\n styleUrl: 'sula-workbench-menu.scss',\n shadow: true,\n})\nexport class SulaWorkbenchMenu {\n @Element() el: HTMLElement;\n\n /**\n * Menu title\n */\n @Prop()\n menuTitle: string = '';\n\n /**\n * Menu image\n */\n @Prop()\n image: string = '';\n\n /**\n * Menu width in expanded state. Use a CSS length that does not depend on the\n * host width, for example: 256px, 20rem or clamp(16rem, 25vw, 24rem).\n */\n @Prop()\n width: string = '';\n\n /**\n * Density applied to menu items.\n */\n @Prop()\n density: SulaMenuDensity = SulaMenuDensity.Default;\n\n /**\n * Overflow behavior for item labels.\n */\n @Prop()\n labelOverflow: SulaMenuLabelOverflow = SulaMenuLabelOverflow.Wrap;\n\n /**\n * Controls the navigation from the host: ids from the root to the item whose children are shown.\n * In drill-down mode an empty array goes back to the root; in inline mode the items on the path are expanded.\n * Leave it undefined to let only user clicks navigate.\n */\n @Prop()\n drillPath?: string[];\n\n /**\n * Menu items. Each item may use `icon` (icon font class) or `image` (URL or data URI of an image or SVG).\n */\n @Prop({ mutable: true, reflect: true })\n items: SulaWorkbenchMenuItem[] = [];\n\n /**\n * Logged user shown at the bottom of the menu. Without a photo, the initials are shown.\n */\n @Prop()\n user?: SulaWorkbenchMenuUser;\n\n /**\n * Icon used for items without `icon` or `image`. Use an empty string to show no icon.\n */\n @Prop()\n defaultIcon: string = 'ph ph-dot-outline';\n\n /**\n * Options of the profile popover. Use `divider` for a separator and `hasSwitch` + `active` for a toggle row.\n */\n @Prop({ mutable: true })\n profileItems: SulaProfileMenuItem[] = [];\n\n /**\n * Emitted when a leaf item is selected\n */\n @Event()\n itemSelected: EventEmitter<SulaWorkbenchMenuItem>;\n\n /**\n * Emitted when any item is clickede\n */\n @Event()\n itemClicked: EventEmitter<SulaWorkbenchMenuItem>;\n\n /**\n * Emitted when the drill-down level changes, with the ids from the root to the level shown (empty at the root)\n */\n @Event()\n levelChanged: EventEmitter<SulaWorkbenchMenuPath>;\n\n /**\n * Emitted when the user area is clicked. Call `preventDefault()` to keep the profile popover closed.\n */\n @Event({ cancelable: true })\n profileClicked: EventEmitter<SulaWorkbenchMenuUser>;\n\n /**\n * Emitted when a profile popover option without switch is clicked. The popover closes.\n */\n @Event()\n profileItemClicked: EventEmitter<SulaProfileMenuItem>;\n\n /**\n * Emitted when the switch of a profile popover option changes. The popover stays open.\n */\n @Event()\n profileSwitchChanged: EventEmitter<SulaProfileMenuSwitchChange>;\n\n /**\n * Emitted when the menu is toggled between collapsed and expanded states\n * True: Menu is expanded\n * False: Menu is collapsed\n */\n @Event()\n menuToggled: EventEmitter<boolean>;\n\n @State()\n collapsed: boolean = false;\n\n @State()\n previewExpanded: boolean = false;\n\n @State()\n drillMode: boolean = false;\n\n @State()\n stack: SulaWorkbenchMenuItem[] = [];\n\n @State()\n direction: SulaWorkbenchMenuDirection = 'forward';\n\n @State()\n selectedPath: SulaWorkbenchMenuPath = [];\n\n @State()\n crumbMenu: CrumbMenuState = { open: false, left: 0, top: 0 };\n\n @State()\n profileOpen: boolean = false;\n\n private crumbEllipsisEl?: HTMLElement;\n private crumbDropdownEl?: HTMLElement;\n private shellEl?: HTMLElement;\n private userInfoEl?: HTMLElement;\n private profileEl?: HTMLElement;\n private profileOriginEl?: HTMLElement;\n private hovering = false;\n // Inline mode applies a drillPath once, so later collapses by the user are kept.\n private expandedPath?: string[];\n\n private get normalizedWidth() {\n const value = this.width?.trim();\n return value ? value : undefined;\n }\n\n private get hostStyleVariables() {\n return {\n ...(this.normalizedWidth ? { '--sula-menu-width': this.normalizedWidth } : {}),\n };\n }\n\n componentWillLoad() {\n this.syncWithItems(this.items);\n }\n\n @Watch('items')\n syncWithItems(items: SulaWorkbenchMenuItem[]) {\n this.drillMode = this.maxDepth(items) > 3;\n const nextSelected = this.findSelectedIds(items);\n if (nextSelected) {\n this.selectedPath = nextSelected;\n } else if (!this.selectedPath.length || !this.isStillSelectable(items, this.selectedPath)) {\n this.selectedPath = [];\n }\n this.stack = this.drillMode ? this.rebuildStack(items, this.stack) : [];\n if (this.drillPath && (this.drillMode || this.drillPath !== this.expandedPath)) this.applyDrillPath(this.drillPath);\n }\n\n @Watch('drillPath')\n syncDrillPath(path?: string[]) {\n if (path) this.applyDrillPath(path);\n }\n\n private applyDrillPath(path: string[]) {\n if (!this.drillMode) {\n this.expandInline(path);\n return;\n }\n\n const next: SulaWorkbenchMenuItem[] = [];\n let level = this.items;\n for (const id of path) {\n const match = this.getVisibleItems(level).find(item => item.id === id);\n if (!match) break;\n next.push(match);\n level = match.children ?? [];\n }\n\n const same = next.length === this.stack.length && next.every((item, index) => item.id === this.stack[index].id);\n if (same) return;\n\n this.direction = next.length < this.stack.length ? 'back' : 'forward';\n this.stack = next;\n }\n\n private expandInline(path: string[]) {\n if (!this.items.length) return;\n this.expandedPath = path;\n\n const ids: string[] = [];\n let level = this.items;\n for (const id of path) {\n const match = this.getVisibleItems(level).find(item => item.id === id);\n if (!match) break;\n if (!match.expanded && this.hasVisibleChildren(match)) ids.push(id);\n level = match.children ?? [];\n }\n\n if (ids.length) this.items = this.markExpanded(this.items, ids);\n }\n\n private markExpanded(items: SulaWorkbenchMenuItem[], ids: string[]): SulaWorkbenchMenuItem[] {\n return items.map(item => ({\n ...item,\n ...(ids.includes(item.id) ? { expanded: true } : {}),\n ...(item.children ? { children: this.markExpanded(item.children, ids) } : {}),\n }));\n }\n\n private maxDepth(items?: SulaWorkbenchMenuItem[]): number {\n const visible = this.getVisibleItems(items);\n if (!visible.length) return 0;\n return 1 + Math.max(...visible.map(item => this.maxDepth(item.children)));\n }\n\n componentDidRender() {\n this.positionProfile();\n }\n\n @Listen('click', { target: 'document' })\n onDocumentClick(event: MouseEvent) {\n const path = event.composedPath();\n if (this.profileOpen && !path.includes(this.profileEl) && !path.includes(this.userInfoEl)) this.closeProfile();\n if (!this.crumbMenu.open) return;\n if (path.includes(this.crumbEllipsisEl) || path.includes(this.crumbDropdownEl)) return;\n this.closeCrumbMenu();\n }\n\n @Listen('keydown', { target: 'document' })\n onDocumentKeydown(event: KeyboardEvent) {\n if (event.key !== 'Escape') return;\n this.closeCrumbMenu();\n if (this.profileOpen) {\n this.closeProfile();\n this.userInfoEl?.focus();\n }\n }\n\n @Listen('resize', { target: 'window' })\n onWindowResize() {\n this.positionProfile();\n }\n\n private getVisibleItems(items?: SulaWorkbenchMenuItem[]) {\n return items?.filter(item => !item.hidden) ?? [];\n }\n\n private hasVisibleChildren(item: Pick<SulaWorkbenchMenuItem, 'children'>) {\n return this.getVisibleItems(item.children).length > 0;\n }\n\n private isDrilled() {\n return this.drillMode && this.stack.length > 0;\n }\n\n private findSelectedIds(items: SulaWorkbenchMenuItem[], trail: string[] = []): string[] | undefined {\n for (const item of this.getVisibleItems(items)) {\n if (!this.hasVisibleChildren(item)) {\n if (item.selected) return [...trail, item.id];\n continue;\n }\n const nested = this.findSelectedIds(item.children, [...trail, item.id]);\n if (nested) return nested;\n }\n return undefined;\n }\n\n private isStillSelectable(items: SulaWorkbenchMenuItem[], path: string[]) {\n const found = this.findPath(items, path[path.length - 1]);\n return !!found && !this.hasVisibleChildren(found[found.length - 1]);\n }\n\n private toggleExpanded(items: SulaWorkbenchMenuItem[], id: string): SulaWorkbenchMenuItem[] {\n return items.map(item => {\n if (item.id === id) return { ...item, expanded: !item.expanded };\n if (!item.children) return item;\n return { ...item, children: this.toggleExpanded(item.children, id) };\n });\n }\n\n private findPath(items: SulaWorkbenchMenuItem[], id: string, trail: SulaWorkbenchMenuItem[] = []): SulaWorkbenchMenuItem[] | undefined {\n for (const item of this.getVisibleItems(items)) {\n const next = [...trail, item];\n if (item.id === id) return next;\n const nested = this.findPath(item.children ?? [], id, next);\n if (nested) return nested;\n }\n return undefined;\n }\n\n private rebuildStack(items: SulaWorkbenchMenuItem[], previous: SulaWorkbenchMenuItem[]) {\n const next: SulaWorkbenchMenuItem[] = [];\n let level = items;\n\n for (const ancestor of previous) {\n const match = this.getVisibleItems(level).find(item => item.id === ancestor.id);\n if (!match) break;\n next.push(match);\n level = match.children ?? [];\n }\n\n return next;\n }\n\n private isActive(item: SulaWorkbenchMenuItem, branch: boolean) {\n if (branch) return this.selectedPath.includes(item.id);\n return this.selectedPath.length > 0 && this.selectedPath[this.selectedPath.length - 1] === item.id;\n }\n\n private isFaded(item: SulaWorkbenchMenuItem, active: boolean) {\n return !!item.disabled && !active;\n }\n\n private emitLevel() {\n this.levelChanged.emit(this.stack.map(item => item.id));\n }\n\n private toggleInline(id: string) {\n this.items = this.toggleExpanded(this.items, id);\n }\n\n private enterDrill(item: SulaWorkbenchMenuItem) {\n const path = this.findPath(this.items, item.id) ?? [item];\n this.direction = 'forward';\n this.stack = path;\n this.closeCrumbMenu();\n this.emitLevel();\n }\n\n private markSelected(items: SulaWorkbenchMenuItem[], id: string): SulaWorkbenchMenuItem[] {\n return items.map(item => ({\n ...item,\n selected: item.id === id,\n ...(item.children ? { children: this.markSelected(item.children, id) } : {}),\n }));\n }\n\n // Selection lives on the items (like `expanded`), so re-assigning items when a branch is\n // toggled keeps the user's choice instead of falling back to the initially selected item.\n private selectItem(item: SulaWorkbenchMenuItem) {\n const path = this.findPath(this.items, item.id) ?? [item];\n this.items = this.markSelected(this.items, item.id);\n this.selectedPath = path.map(p => p.id);\n this.itemSelected.emit(item);\n }\n\n private handleRowClick(item: SulaWorkbenchMenuItem) {\n if (item.disabled) return;\n\n this.itemClicked.emit(item);\n\n if (this.hasVisibleChildren(item)) {\n if (this.drillMode) {\n this.enterDrill(item);\n } else {\n this.toggleInline(item.id);\n }\n return;\n }\n\n this.selectItem(item);\n }\n\n private goToDepth(index: number) {\n this.direction = 'back';\n this.stack = index < 0 ? [] : this.stack.slice(0, index + 1);\n this.closeCrumbMenu();\n this.emitLevel();\n }\n\n private toggleCrumbMenu(event: MouseEvent) {\n if (this.crumbMenu.open) {\n this.closeCrumbMenu();\n return;\n }\n const button = event.currentTarget as HTMLElement;\n this.crumbMenu = {\n open: true,\n left: 0,\n top: button.offsetTop + button.offsetHeight + 6,\n };\n }\n\n private closeCrumbMenu() {\n if (this.crumbMenu.open) this.crumbMenu = { ...this.crumbMenu, open: false };\n }\n\n private toggleMenu() {\n this.closeProfile();\n if (this.collapsed) {\n this.collapsed = false;\n this.previewExpanded = false;\n this.menuToggled.emit(true);\n return;\n }\n\n this.collapsed = true;\n this.menuToggled.emit(false);\n this.previewExpanded = false;\n }\n\n private handleMenuMouseEnter() {\n this.hovering = true;\n if (this.collapsed) this.previewExpanded = true;\n }\n\n // While the popover is open the preview stays expanded, so the popover keeps its anchor.\n private handleMenuMouseLeave() {\n this.hovering = false;\n if (this.collapsed && !this.profileOpen) this.previewExpanded = false;\n }\n\n private toggleProfile() {\n if (this.profileOpen) {\n this.closeProfile();\n return;\n }\n if (this.profileClicked.emit(this.user).defaultPrevented) return;\n this.profileOpen = true;\n requestAnimationFrame(() => this.profileEl?.focus());\n }\n\n private closeProfile() {\n if (!this.profileOpen) return;\n this.profileOpen = false;\n if (this.collapsed && !this.hovering) this.previewExpanded = false;\n }\n\n // Fixed position, so ancestors with overflow hidden do not clip the popover. A transformed ancestor\n // (e.g. the Storybook docs canvas) becomes the containing block, so coordinates are made relative to its origin.\n private positionProfile() {\n if (!this.profileOpen || !this.profileEl || !this.userInfoEl || !this.shellEl) return;\n const gap = 8;\n const inset = 12;\n const anchor = this.userInfoEl.getBoundingClientRect();\n const shell = this.shellEl.getBoundingClientRect();\n const origin = this.profileOriginEl?.getBoundingClientRect() ?? { left: 0, top: 0 };\n const style = this.profileEl.style;\n const expandedView = !this.collapsed || this.previewExpanded;\n\n style.width = expandedView ? `${shell.width - inset * 2}px` : '';\n const height = this.profileEl.offsetHeight;\n\n const left = expandedView ? shell.left + inset : shell.right + gap;\n const bottom = expandedView ? anchor.top - gap : anchor.bottom;\n\n style.bottom = 'auto';\n style.left = `${left - origin.left}px`;\n style.top = `${bottom - height - origin.top}px`;\n }\n\n // Inner events are composed; stopping them avoids clashing with this menu's own itemClicked.\n private handleProfileItemClicked(event: CustomEvent<SulaProfileMenuItem>) {\n event.stopPropagation();\n this.closeProfile();\n this.profileItemClicked.emit(event.detail);\n }\n\n private handleProfileSwitchChanged(event: CustomEvent<SulaProfileMenuSwitchChange>) {\n event.stopPropagation();\n const { item } = event.detail;\n this.profileItems = this.profileItems.map(current => (current.id === item.id ? item : current));\n this.profileSwitchChanged.emit(event.detail);\n }\n\n private renderProfilePopover(expandedView: boolean) {\n return (\n <div\n part=\"profile-popover\"\n role=\"dialog\"\n aria-label={`Perfil de ${this.user.name}`}\n aria-hidden={String(!this.profileOpen)}\n tabIndex={-1}\n ref={el => (this.profileEl = el)}\n class={{\n 'profile-popover': true,\n 'profile-popover--open': this.profileOpen,\n 'profile-popover--side': !expandedView,\n }}\n >\n <sula-profile-menu\n user={this.user}\n items={this.profileItems}\n onItemClicked={event => this.handleProfileItemClicked(event)}\n onSwitchChanged={event => this.handleProfileSwitchChanged(event)}\n >\n <slot name=\"profile-content\"></slot>\n </sula-profile-menu>\n </div>\n );\n }\n\n private isValidIcon(icon?: string) {\n return !!icon && /ph-[a-z]/.test(icon);\n }\n\n private isSvg(image: string) {\n return /^data:image\\/svg\\+xml/i.test(image) || /\\.svg(\\?|#|$)/i.test(image);\n }\n\n private iconOf(item: SulaWorkbenchMenuItem) {\n return this.isValidIcon(item.icon) ? item.icon : this.defaultIcon;\n }\n\n private hasIcon(item: SulaWorkbenchMenuItem) {\n return !!item.image || this.isValidIcon(this.iconOf(item));\n }\n\n private renderItemIcon(item: SulaWorkbenchMenuItem, customClass: string, size: 'sm' | 'md' | 'lg', faded = false) {\n if (!this.hasIcon(item)) return null;\n if (item.image && this.isSvg(item.image)) {\n // SVGs are painted with currentColor through a mask, so they follow the same state colors as the icon font.\n return (\n <span\n class={`menu-item-image menu-item-image--mask menu-item-image--${size} ${customClass}`}\n style={{ '--menu-item-image': `url(\"${item.image.replace(/\"/g, '%22')}\")` }}\n aria-hidden=\"true\"\n ></span>\n );\n }\n if (item.image) {\n return (\n <img\n class={{ 'menu-item-image': true, [`menu-item-image--${size}`]: true, 'is-faded': faded }}\n src={item.image}\n alt=\"\"\n />\n );\n }\n return <sula-icon icon={this.iconOf(item)} customClass={customClass}></sula-icon>;\n }\n\n private getInitials(name: string) {\n return name\n .split(' ')\n .filter(Boolean)\n .slice(0, 2)\n .map(part => part[0].toUpperCase())\n .join('');\n }\n\n private renderUserInfo(expandedView: boolean) {\n const user = this.user;\n return (\n <button\n type=\"button\"\n class={{\n 'user-info flex min-w-0 cursor-pointer items-center text-left': true,\n 'user-info--card w-full gap-16 rounded-md bg-surface-on-body p-16': expandedView,\n 'rounded-xs p-8 hover:bg-states-empty-bg-hover': !expandedView,\n 'user-info--active bg-states-empty-bg-hover': this.profileOpen && !expandedView,\n }}\n title={`Ver perfil de ${user.name}`}\n aria-label={`Ver perfil de ${user.name}`}\n aria-haspopup=\"dialog\"\n aria-expanded={String(this.profileOpen)}\n ref={el => (this.userInfoEl = el)}\n onClick={() => this.toggleProfile()}\n >\n <span class=\"user-avatar flex h-9 w-9 flex-none items-center justify-center overflow-hidden rounded-full bg-brand-primary text-sm font-semibold text-negative-negative-1\">\n {user.photo ? <img src={user.photo} alt={user.name} /> : this.getInitials(user.name)}\n </span>\n <span\n aria-hidden={!expandedView}\n class={{\n 'user-copy': true,\n 'ml-8': !expandedView,\n 'flex-1': expandedView,\n 'user-copy--visible': expandedView,\n 'user-copy--hidden': !expandedView,\n }}\n >\n <span part=\"user-name\" class=\"user-name truncate text-sm font-semibold text-text-primary\">\n {user.name}\n </span>\n {user.email && <span part=\"user-email\" class=\"user-email truncate text-xs text-text-secondary\">{user.email}</span>}\n </span>\n </button>\n );\n }\n\n private getIconClass(active: boolean, faded: boolean, size: string) {\n if (faded) return `text-icon-disabled ${size}`;\n if (active) return `text-brand-primary ${size}`;\n return `text-icon-primary ${size}`;\n }\n\n private renderCollapseButton() {\n const label = this.collapsed ? 'Expandir menu' : 'Recolher menu';\n return (\n <button\n type=\"button\"\n class=\"menu-toggle flex flex-none items-center justify-center\"\n title={label}\n aria-label={label}\n aria-expanded={String(!this.collapsed)}\n onClick={() => this.toggleMenu()}\n >\n <sula-icon icon=\"ph-bold ph-sidebar\" customClass=\"text-lg\"></sula-icon>\n </button>\n );\n }\n\n private renderRootHeader(expandedView: boolean) {\n return (\n <div\n class={{\n 'menu-header flex items-center': true,\n 'mb-40': expandedView,\n 'mb-24 flex-col justify-center px-0': !expandedView,\n }}\n >\n {this.image && (\n <div class={{ 'menu-brand-image max-h-10 max-w-10 overflow-hidden': true, 'mr-6': expandedView }}>\n <img src={this.image} alt={this.menuTitle} />\n </div>\n )}\n <div\n aria-hidden={!expandedView}\n title={expandedView ? this.menuTitle : undefined}\n class={{\n 'menu-title menu-copy': true,\n 'menu-copy--visible': expandedView,\n 'menu-copy--hidden': !expandedView,\n }}\n >\n <h1 part=\"title\" class=\"truncate text-2xl font-bold leading-7 text-text-secondary\">\n {this.menuTitle}\n </h1>\n </div>\n {this.renderCollapseButton()}\n </div>\n );\n }\n\n private renderTrail(ancestors: SulaWorkbenchMenuItem[]) {\n const hasHidden = ancestors.length > 2;\n const visible = hasHidden ? ancestors.slice(-2) : ancestors;\n const crumbs: JSX.Element[] = [\n <button key=\"root\" type=\"button\" class=\"crumb-btn\" title={`Ir para o início de ${this.menuTitle}`} onClick={() => this.goToDepth(-1)}>\n {this.menuTitle || 'Início'}\n </button>,\n ];\n\n if (hasHidden) {\n crumbs.push(\n <button\n key=\"ellipsis\"\n type=\"button\"\n class=\"crumb-btn crumb-btn--ellipsis\"\n aria-haspopup=\"true\"\n aria-expanded={String(this.crumbMenu.open)}\n title={`${ancestors.length - 2} nível(is) anterior(es)`}\n ref={el => (this.crumbEllipsisEl = el)}\n onClick={event => this.toggleCrumbMenu(event)}\n >\n <sula-icon icon=\"ph-bold ph-dots-three\" customClass=\"text-base text-text-secondary\"></sula-icon>\n </button>,\n );\n }\n\n visible.forEach(ancestor => {\n crumbs.push(\n <button\n key={ancestor.id}\n type=\"button\"\n class=\"crumb-btn\"\n title={ancestor.label}\n onClick={() => this.goToDepth(this.stack.indexOf(ancestor))}\n >\n {ancestor.label}\n </button>,\n );\n });\n\n const nodes: JSX.Element[] = [];\n crumbs.forEach((crumb, index) => {\n if (index > 0) nodes.push(<sula-icon key={`sep-${index}`} icon=\"ph ph-caret-right\" customClass=\"crumb-sep text-xs\"></sula-icon>);\n nodes.push(crumb);\n });\n\n return (\n <nav class=\"crumb-trail flex min-w-0 items-center\" aria-label=\"Caminho de navegação\">\n {nodes}\n </nav>\n );\n }\n\n private renderCrumbDropdown(ancestors: SulaWorkbenchMenuItem[]) {\n if (!this.crumbMenu.open || ancestors.length <= 2) return null;\n const hidden = ancestors.slice(0, -2);\n\n return (\n <div\n class=\"crumb-dropdown\"\n role=\"menu\"\n ref={el => (this.crumbDropdownEl = el)}\n style={{ left: `${this.crumbMenu.left}px`, top: `${this.crumbMenu.top}px` }}\n >\n {hidden.map(ancestor => (\n <button\n key={ancestor.id}\n type=\"button\"\n role=\"menuitem\"\n class=\"crumb-dropdown-item\"\n onClick={() => this.goToDepth(this.stack.indexOf(ancestor))}\n >\n <span class=\"item-icon flex flex-none items-center justify-center\">{this.renderItemIcon(ancestor, 'text-sm text-icon-primary', 'sm')}</span>\n <span class=\"min-w-0 truncate\">{ancestor.label}</span>\n </button>\n ))}\n </div>\n );\n }\n\n private renderDrillHeader(activeParent: SulaWorkbenchMenuItem) {\n const ancestors = this.stack.slice(0, -1);\n const backLabel = ancestors.length ? ancestors[ancestors.length - 1].label : this.menuTitle || 'Início';\n const backButton = (\n <button\n type=\"button\"\n class=\"back-btn\"\n title={`Voltar para ${backLabel}`}\n aria-label={`Voltar para ${backLabel}`}\n onClick={() => this.goToDepth(this.stack.length - 2)}\n >\n <sula-icon icon=\"ph ph-arrow-left\" customClass=\"text-xl text-icon-primary\"></sula-icon>\n </button>\n );\n\n return (\n <div\n key={this.stack.map(item => item.id).join('/')}\n class={{\n 'menu-header menu-header--drilldown flex flex-col': true,\n 'menu-header--back': this.direction === 'back',\n }}\n >\n <div class=\"drill-toolbar flex items-center justify-between\">\n {backButton}\n {this.renderCollapseButton()}\n </div>\n\n {ancestors.length > 0 && (\n <div class=\"breadcrumb-row\">\n {this.renderTrail(ancestors)}\n {this.renderCrumbDropdown(ancestors)}\n </div>\n )}\n\n <div class=\"context-row flex items-center min-w-0\">\n {this.hasIcon(activeParent) && (\n <span class=\"context-icon flex flex-none items-center justify-center\">\n {this.renderItemIcon(activeParent, 'text-xl text-brand-primary', 'md')}\n </span>\n )}\n <h1 part=\"title\" class=\"context-title text-text-primary\" title={activeParent.label}>\n {activeParent.label}\n </h1>\n </div>\n </div>\n );\n }\n\n private renderDrillRow(item: SulaWorkbenchMenuItem, reserve: boolean, index: number) {\n const branch = this.hasVisibleChildren(item);\n const active = this.isActive(item, branch);\n const faded = this.isFaded(item, active);\n\n return (\n <li class=\"list-none\" key={item.id} style={{ '--row-index': String(Math.min(index, 8)) }}>\n <div\n class={{\n 'menu-item flex items-center justify-between rounded-md px-8': true,\n 'cursor-pointer hover:bg-states-empty-bg-hover active:bg-states-empty-bg-pressed': !item.disabled && !active,\n 'cursor-pointer': !item.disabled && active,\n 'cursor-not-allowed': !!item.disabled,\n }}\n aria-disabled={!!item.disabled}\n onClick={() => this.handleRowClick(item)}\n >\n <span class=\"flex min-w-0 flex-1 items-center gap-8\">\n {this.renderIconSlot(item, this.getIconClass(active, faded, 'text-base'), faded, reserve)}\n <span\n part=\"item-label\"\n class={{\n 'menu-item-label truncate': this.labelOverflow !== SulaMenuLabelOverflow.Wrap,\n 'menu-item-label menu-item-label--wrap': this.labelOverflow === SulaMenuLabelOverflow.Wrap,\n 'font-bold text-text-primary': active,\n 'text-text-disabled': faded,\n 'text-text-secondary': !active && !faded,\n }}\n >\n {item.label}\n </span>\n </span>\n {branch && <sula-icon icon=\"ph ph-caret-right\" customClass={faded ? 'text-text-disabled text-xs' : 'text-text-secondary text-xs'}></sula-icon>}\n </div>\n </li>\n );\n }\n\n // Strips on the left edge suggest the levels already navigated; the prototype shows at most two.\n private renderDrillLayers() {\n const count = Math.min(this.stack.length, 2);\n return (\n <div class=\"drill-layers\" aria-hidden=\"true\">\n {Array.from({ length: count }, (_, index) => (\n <span key={index} class=\"drill-layer\" style={{ width: `${12 * (index + 1)}px`, zIndex: String(count - index) }}></span>\n ))}\n </div>\n );\n }\n\n private renderDrillPanel() {\n const activeParent = this.stack[this.stack.length - 1];\n const panelKey = this.stack.map(item => item.id).join('/');\n\n return (\n <ul\n key={panelKey}\n class={{\n 'menu-panel flex flex-col': true,\n 'menu-panel--forward': this.direction === 'forward',\n 'menu-panel--back': this.direction === 'back',\n }}\n >\n {this.getVisibleItems(activeParent.children).map((item, index) => this.renderDrillRow(item, this.siblingsHaveIcon(activeParent.children), index))}\n </ul>\n );\n }\n\n private getMainIconClass(active: boolean, faded: boolean) {\n if (faded) return 'text-icon-disabled text-base';\n if (active) return 'text-brand-primary text-base';\n return 'text-icon-primary text-base';\n }\n\n private getMainCaretClass(active: boolean, faded: boolean) {\n if (faded) return 'text-text-disabled text-xs';\n if (active) return 'text-text-primary text-xs';\n return 'text-text-secondary text-xs';\n }\n\n private getSubIconClass(faded: boolean, selected = false) {\n if (faded) return 'text-icon-disabled text-base';\n if (selected) return 'text-brand-primary text-base';\n return 'text-icon-primary text-base';\n }\n\n private getSubCaretClass(faded: boolean) {\n return faded ? 'text-icon-disabled text-xs' : 'text-icon-primary text-xs';\n }\n\n private siblingsHaveIcon(items: SulaWorkbenchMenuItem[]) {\n return this.getVisibleItems(items).some(sibling => this.hasIcon(sibling));\n }\n\n private renderIconSlot(item: SulaWorkbenchMenuItem, customClass: string, faded: boolean, reserve = true) {\n if (!reserve && !this.hasIcon(item)) return null;\n return <span class=\"item-icon flex flex-none items-center justify-center\">{this.renderItemIcon(item, customClass, 'lg', faded)}</span>;\n }\n\n private renderMainRow(item: SulaWorkbenchMenuItem, expandedView: boolean, branch: boolean, expanded: boolean, active: boolean, faded: boolean, drill: boolean, reserve: boolean) {\n const labelOverflowTruncate = this.labelOverflow === SulaMenuLabelOverflow.Truncate;\n return (\n <div\n class={{\n 'menu-item flex items-center rounded-md px-8': true,\n 'cursor-pointer hover:bg-states-empty-bg-hover active:bg-states-empty-bg-pressed': !item.disabled,\n 'cursor-not-allowed': !!item.disabled,\n 'justify-between': expandedView,\n 'justify-center': !expandedView,\n }}\n title={!expandedView ? item.label : undefined}\n aria-disabled={!!item.disabled}\n onClick={() => this.handleRowClick(item)}\n >\n <div class={{ 'flex items-center': true, 'flex-1 min-w-0 gap-8': expandedView, 'justify-center': !expandedView }}>\n {this.renderIconSlot(item, this.getMainIconClass(active, faded), faded, reserve)}\n <span\n part=\"main-item-label\"\n title={expandedView ? item.label : undefined}\n aria-hidden={!expandedView}\n class={{\n 'menu-item-label menu-copy': true,\n 'menu-item-label--truncate': labelOverflowTruncate,\n 'menu-item-label--wrap': !labelOverflowTruncate,\n 'menu-copy--visible': expandedView,\n 'menu-copy--hidden': !expandedView,\n 'font-bold text-text-primary': active,\n 'text-text-disabled': faded,\n 'text-text-secondary': !active && !faded,\n }}\n >\n {item.label}\n </span>\n </div>\n {branch && (\n <sula-icon\n aria-hidden={!expandedView}\n class={{\n 'menu-item-caret flex items-center justify-center': true,\n 'menu-item-caret--expanded': expanded,\n 'menu-item-caret--visible': expandedView,\n 'menu-item-caret--hidden': !expandedView,\n }}\n icon={drill ? 'ph ph-caret-right' : 'ph ph-caret-down'}\n customClass={this.getMainCaretClass(active, faded)}\n ></sula-icon>\n )}\n </div>\n );\n }\n\n private renderSubRow(item: SulaWorkbenchMenuItem, expandedView: boolean, branch: boolean, expanded: boolean, active: boolean, faded: boolean, drill: boolean, reserve: boolean) {\n const caretIcon = drill ? 'ph-bold ph-caret-right' : `ph-bold ph-caret-${expanded && expandedView ? 'up' : 'down'}`;\n const onClick = () => this.handleRowClick(item);\n const rowClass = {\n 'submenu-item flex min-w-0 items-center rounded-md py-8 pr-8 select-none': true,\n 'submenu-item--branch w-full': branch,\n 'cursor-pointer hover:bg-states-empty-bg-hover active:bg-states-empty-bg-pressed': !item.disabled,\n 'cursor-not-allowed': !!item.disabled,\n 'font-bold': active && branch,\n };\n const label = (\n <span\n class={{\n 'submenu-item-label min-w-0 flex-1': true,\n 'ml-8': reserve || this.hasIcon(item),\n 'menu-item-label--truncate': this.labelOverflow === SulaMenuLabelOverflow.Truncate,\n 'menu-item-label--wrap': this.labelOverflow !== SulaMenuLabelOverflow.Truncate,\n 'text-text-primary': !faded,\n 'text-text-disabled': faded,\n 'font-bold': active,\n }}\n >\n {item.label}\n </span>\n );\n\n if (!branch) {\n return (\n <a class={rowClass} style={{ paddingLeft: '8px' }} title={item.label} aria-disabled={!!item.disabled} onClick={onClick}>\n {this.renderIconSlot(item, this.getSubIconClass(faded, active && !branch), faded, reserve)}\n {label}\n </a>\n );\n }\n\n return (\n <a class={rowClass} style={{ paddingLeft: '8px' }} title={item.label} aria-disabled={!!item.disabled} onClick={onClick}>\n <div class=\"submenu-item-branch-content flex min-w-0 flex-1 items-center\">\n {this.renderIconSlot(item, this.getSubIconClass(faded, active && !branch), faded, reserve)}\n {label}\n </div>\n <div class=\"submenu-item-branch-caret flex flex-none items-center justify-end pl-8\">\n <sula-icon icon={caretIcon} customClass={this.getSubCaretClass(faded)}></sula-icon>\n </div>\n </a>\n );\n }\n\n private renderInlineList(items: SulaWorkbenchMenuItem[], depth: number, expandedView: boolean) {\n const reserve = this.siblingsHaveIcon(items);\n return this.getVisibleItems(items).map(item => {\n const branch = this.hasVisibleChildren(item);\n const drill = branch && this.drillMode;\n const inline = branch && !drill;\n const expanded = inline && !!item.expanded;\n const active = this.isActive(item, branch) || expanded;\n const faded = this.isFaded(item, active);\n\n const row =\n depth === 1\n ? this.renderMainRow(item, expandedView, branch, expanded, active, faded, drill, reserve)\n : this.renderSubRow(item, expandedView, branch, expanded, active, faded, drill, reserve);\n\n return (\n <li class={{ 'decoration-none list-none': true, 'menu-group': depth === 1, 'is-selected': depth > 1 && active && !branch }} key={item.id}>\n {row}\n {inline && (\n <ul\n aria-hidden={!expandedView || !expanded}\n class={{\n submenu: true,\n 'submenu--expanded': expandedView && expanded,\n 'ml-[8px] border-l border-line-general pl-12': depth === 1,\n 'submenu-branch ml-[20px]': depth > 1,\n }}\n >\n {this.renderInlineList(item.children, depth + 1, expandedView)}\n </ul>\n )}\n </li>\n );\n });\n }\n\n render() {\n const expandedView = !this.collapsed || this.previewExpanded;\n const drilled = expandedView && this.isDrilled();\n const activeParent = this.stack[this.stack.length - 1];\n\n return (\n <Host\n class={{\n 'menu-host--collapsed': this.collapsed,\n 'menu-host--preview': this.collapsed && this.previewExpanded,\n 'menu-host--density-compact': this.density === SulaMenuDensity.Compact,\n 'menu-host--density-comfortable': this.density === SulaMenuDensity.Comfortable,\n }}\n style={this.hostStyleVariables}\n onMouseEnter={() => this.handleMenuMouseEnter()}\n onMouseLeave={() => this.handleMenuMouseLeave()}\n >\n <aside\n part=\"shell\"\n ref={el => (this.shellEl = el)}\n class={{\n 'menu-shell flex h-full flex-col bg-surface-body shadow-md z-50': true,\n 'menu-shell--collapsed': this.collapsed && !this.previewExpanded,\n 'menu-shell--expanded': expandedView,\n 'menu-shell--preview': this.collapsed && this.previewExpanded,\n 'menu-shell--drilled': drilled,\n }}\n >\n {drilled && this.renderDrillLayers()}\n {drilled ? this.renderDrillHeader(activeParent) : this.renderRootHeader(expandedView)}\n\n <nav\n class={{\n 'menu-nav flex h-full flex-col overflow-y-auto overflow-x-hidden': true,\n 'px-12': !expandedView,\n }}\n >\n {drilled ? (\n this.renderDrillPanel()\n ) : (\n <ul class=\"flex flex-col\">{this.renderInlineList(this.items, 1, expandedView)}</ul>\n )}\n </nav>\n\n {this.user && (\n <div class=\"menu-footer pt-12\">\n {this.renderUserInfo(expandedView)}\n </div>\n )}\n </aside>\n\n {this.user && <span class=\"profile-origin\" aria-hidden=\"true\" ref={el => (this.profileOriginEl = el)}></span>}\n {this.user && this.renderProfilePopover(expandedView)}\n </Host>\n );\n }\n}\n"],"names":["SulaMenuDensity","SulaMenuLabelOverflow","h","index","Host"],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ var patchBrowser = () => {
|
|
|
18
18
|
|
|
19
19
|
patchBrowser().then(async (options) => {
|
|
20
20
|
await index.globalScripts();
|
|
21
|
-
return index.bootstrapLazy([["sula-avatar_32.cjs",[[1,"sula-icon-picker",{"label":[1025],"required":[1028],"disabled":[1028],"error":[1025],"value":[1025],"showSearch":[4,"show-search"],"searchPlaceholder":[1,"search-placeholder"],"icons":[1040],"maxVisibleIcons":[2,"max-visible-icons"],"menuMaxHeight":[2,"menu-max-height"],"selectedIcon":[32],"searchTerm":[32]},null,{"value":["handleValueChange"],"icons":["handleIconsChange"]}],[1,"sula-modal",{"opened":[1028],"blockBodyScroll":[1028,"block-body-scroll"],"closeOnClickOutside":[1028,"close-on-click-outside"],"type":[1],"headerIcon":[1,"header-icon"],"modalTitle":[1,"modal-title"],"promoImage":[1,"promo-image"],"subTitle":[1,"sub-title"],"primaryButtonText":[1,"primary-button-text"],"secondaryButtonText":[1,"secondary-button-text"],"slotOverflow":[1,"slot-overflow"],"modalWidth":[1,"modal-width"],"slotMaxHeight":[1,"slot-max-height"],"slotAutoHeight":[4,"slot-auto-height"],"primaryButtonDisabled":[4,"primary-button-disabled"],"secondaryButtonDisabled":[4,"secondary-button-disabled"],"isAnimating":[32],"shouldRender":[32]},null,{"opened":["handleOpenedChange"]}],[1,"sula-calendar",{"label":[1],"value":[1025],"placeholder":[1],"disabled":[4],"helpText":[1,"help-text"],"status":[1],"locale":[1],"minDate":[1,"min-date"],"maxDate":[1,"max-date"],"range":[4],"allowTyping":[4,"allow-typing"],"inline":[4],"compact":[4],"firstDayOfWeek":[2,"first-day-of-week"],"closeOnSelect":[4,"close-on-select"],"showCalendar":[32],"openUpward":[32],"viewMonth":[32],"viewYear":[32],"hoverDate":[32]},[[4,"click","handleDocumentClick"],[4,"keydown","handleDocumentKeydown"]],{"value":["handleValueChange"]}],[1,"sula-
|
|
21
|
+
return index.bootstrapLazy([["sula-avatar_32.cjs",[[1,"sula-icon-picker",{"label":[1025],"required":[1028],"disabled":[1028],"error":[1025],"value":[1025],"showSearch":[4,"show-search"],"searchPlaceholder":[1,"search-placeholder"],"icons":[1040],"maxVisibleIcons":[2,"max-visible-icons"],"menuMaxHeight":[2,"menu-max-height"],"selectedIcon":[32],"searchTerm":[32]},null,{"value":["handleValueChange"],"icons":["handleIconsChange"]}],[1,"sula-chip",{"text":[1025],"appearance":[1025],"disabled":[1028],"icon":[1],"items":[1040],"itemsPlacement":[1025,"items-placement"],"selected":[1028],"loading":[1028],"isFocused":[32],"showItems":[32]},[[4,"click","handleDocumentClick"]],{"loading":["handleLoadingChange"]}],[1,"sula-modal",{"opened":[1028],"blockBodyScroll":[1028,"block-body-scroll"],"closeOnClickOutside":[1028,"close-on-click-outside"],"type":[1],"headerIcon":[1,"header-icon"],"modalTitle":[1,"modal-title"],"promoImage":[1,"promo-image"],"subTitle":[1,"sub-title"],"primaryButtonText":[1,"primary-button-text"],"secondaryButtonText":[1,"secondary-button-text"],"slotOverflow":[1,"slot-overflow"],"modalWidth":[1,"modal-width"],"slotMaxHeight":[1,"slot-max-height"],"slotAutoHeight":[4,"slot-auto-height"],"primaryButtonDisabled":[4,"primary-button-disabled"],"secondaryButtonDisabled":[4,"secondary-button-disabled"],"isAnimating":[32],"shouldRender":[32]},null,{"opened":["handleOpenedChange"]}],[1,"sula-calendar",{"label":[1],"value":[1025],"placeholder":[1],"disabled":[4],"helpText":[1,"help-text"],"status":[1],"locale":[1],"minDate":[1,"min-date"],"maxDate":[1,"max-date"],"range":[4],"allowTyping":[4,"allow-typing"],"inline":[4],"compact":[4],"firstDayOfWeek":[2,"first-day-of-week"],"closeOnSelect":[4,"close-on-select"],"showCalendar":[32],"openUpward":[32],"viewMonth":[32],"viewYear":[32],"hoverDate":[32]},[[4,"click","handleDocumentClick"],[4,"keydown","handleDocumentKeydown"]],{"value":["handleValueChange"]}],[1,"sula-avatar",{"size":[1],"imageUrl":[1,"image-url"],"text":[1],"icon":[1]}],[1,"sula-badge",{"status":[1025],"size":[1025],"type":[1025],"text":[1025],"icon":[1025],"hasSlotContent":[32]}],[1,"sula-breadcrumb",{"items":[1040]}],[1,"sula-checkbox",{"type":[1025],"label":[1025],"subTitle":[1025,"sub-title"],"disabled":[1028],"checked":[1028],"isFocus":[32]}],[1,"sula-menu",{"menuTitle":[1,"menu-title"],"image":[1],"width":[1],"density":[1],"labelOverflow":[1,"label-overflow"],"items":[1040],"collapsed":[32],"previewExpanded":[32],"selectedItem":[32]},null,{"items":["syncSelectedItemFromItems"]}],[1,"sula-progress-bar",{"appearance":[1025],"state":[1025],"topLabel":[1025,"top-label"],"bottomLabel":[1025,"bottom-label"],"progress":[1026],"showProgress":[1028,"show-progress"]},null,{"progress":["validateProgress"]}],[1,"sula-segmented-control",{"items":[1040],"type":[1025],"size":[1025],"color":[1025]}],[1,"sula-tag",{"label":[1025],"icon":[1025],"iconStatus":[1025,"icon-status"],"size":[1025],"appearance":[1025],"fontWeight":[1025,"font-weight"]}],[1,"sula-tiles",{"type":[1],"size":[1],"ellipsis":[4],"icon":[1],"text":[1],"subText":[1,"sub-text"],"disabled":[4]}],[1,"sula-timeline-list",{"sulaTimelineList":[1040,"sula-timeline-list"]}],[1,"sula-toggle",{"selected":[1028],"buttonDisabled":[1028,"button-disabled"],"icon":[1]}],[1,"sula-tooltip",{"text":[1],"position":[1],"icon":[1],"iconClass":[1,"icon-class"],"focused":[4],"trigger":[1],"appendToBody":[4,"append-to-body"],"isVisible":[32]},null,{"text":["handleTextChange"]}],[1,"sula-radio-button",{"checked":[1028],"label":[1025],"disabled":[1028],"radioIsFocus":[32]}],[4,"sula-table",{"density":[1],"equalWidth":[4,"equal-width"],"fullWidth":[4,"full-width"]}],[4,"sula-table-body"],[4,"sula-table-cell"],[4,"sula-table-head-cell"],[4,"sula-table-header"],[4,"sula-table-row"],[1,"sula-textarea",{"value":[1025],"status":[1025],"label":[1],"placeholder":[1],"disabled":[1028],"helpText":[1,"help-text"],"maxLength":[2,"max-length"],"rows":[2],"isActive":[32],"textValue":[32],"textareaIsFocused":[32],"labelPadding":[32]},[[4,"click","handleClick"]],{"value":["watchValueHandler"]}],[1,"sula-button",{"text":[1025],"icon":[1025],"leftIcon":[1025,"left-icon"],"rightIcon":[1025,"right-icon"],"appearance":[1025],"type":[1025],"size":[1025],"status":[1025],"loading":[1028],"buttonDisabled":[1028,"button-disabled"],"fullWidth":[1028,"full-width"]}],[1,"sula-dropdown",{"label":[1025],"disabled":[1028],"hasError":[1540,"has-error"],"items":[1040],"value":[1040],"searchable":[516],"menuMaxHeight":[2,"menu-max-height"],"contentMaxHeight":[2,"content-max-height"],"customContent":[516,"custom-content"],"closeOnSelect":[4,"close-on-select"],"showContent":[1540,"show-content"],"selectedItem":[32],"isFocused":[32],"searchTerm":[32],"filteredItems":[32],"openUpward":[32]},[[4,"click","handleDocumentClick"],[9,"resize","handleWindowResize"]],{"value":["handleValueChange"],"showContent":["handleShowContentChange"]}],[1,"sula-search-bar",{"value":[1025],"searchBarStyle":[1025,"search-bar-style"],"placeholder":[1025],"leftIcon":[1025,"left-icon"],"rightIcon":[1025,"right-icon"],"isFocused":[32],"textValue":[32]}],[1,"sula-textfield",{"value":[1025],"type":[1],"status":[1025],"label":[1],"placeholder":[1],"disabled":[1028],"readOnly":[4,"read-only"],"helpText":[1,"help-text"],"maxLength":[2,"max-length"],"icon":[1],"maskPattern":[1,"mask-pattern"],"maskPatternSwitchMaxLength":[2,"mask-pattern-switch-max-length"],"inputIsOpen":[32],"textValue":[32],"showPassword":[32],"inputIsFocused":[32]},[[4,"click","handleClick"]],{"value":["watchValueHandler"],"maskPattern":["watchMaskPatternHandler"],"maskPatternSwitchMaxLength":["watchMaskPatternSwitchMaxLengthHandler"]}],[1,"sula-switch",{"type":[1025],"active":[1028],"disabled":[1028],"label":[1025],"subTitle":[1025,"sub-title"],"responsive":[4],"isFocus":[32]}],[1,"sula-menu-select-list",{"items":[1040],"fullWidth":[4,"full-width"],"maxHeight":[2,"max-height"],"selectedValue":[16,"selected-value"]}],[1,"sula-loader",{"size":[1],"animationInstance":[32]}],[0,"sula-icon",{"icon":[1],"customClass":[1,"custom-class"]}]]],["sula-profile-menu.cjs",[[1,"sula-profile-menu",{"user":[16],"items":[1040]}]]],["sula-workbench-menu.cjs",[[1,"sula-workbench-menu",{"menuTitle":[1,"menu-title"],"image":[1],"width":[1],"density":[1],"labelOverflow":[1,"label-overflow"],"drillPath":[16,"drill-path"],"items":[1040],"user":[16],"defaultIcon":[1,"default-icon"],"profileItems":[1040,"profile-items"],"collapsed":[32],"previewExpanded":[32],"drillMode":[32],"stack":[32],"direction":[32],"selectedPath":[32],"crumbMenu":[32],"profileOpen":[32]},[[4,"click","onDocumentClick"],[4,"keydown","onDocumentKeydown"],[9,"resize","onWindowResize"]],{"items":["syncWithItems"],"drillPath":["syncDrillPath"]}]]],["sula-toast.cjs",[[1,"sula-toast",{"toastTitle":[1,"toast-title"],"message":[1],"type":[1],"icon":[1],"actionText":[1,"action-text"],"closable":[4],"duration":[2],"paused":[4],"animated":[4],"announcement":[1],"closeLabel":[1,"close-label"],"announcedText":[32]},[[4,"visibilitychange","updateTimeout"]],{"toastTitle":["handleContentChange"],"message":["handleContentChange"],"actionText":["handleContentChange"],"duration":["handleContentChange"],"announcement":["updateAnnouncement"],"paused":["updateTimeout"]}]]],["sula-toast-stack.cjs",[[1,"sula-toast-stack",{"items":[16],"hovering":[32],"focused":[32],"noHover":[32],"retainingPointerExpansion":[32],"announcements":[32]},null,{"items":["handleItemsChange"]}]]]], options);
|
|
22
22
|
});
|
|
23
23
|
|
|
24
24
|
exports.setNonce = index.setNonce;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
*,:after,:before{--tw-ring-color:rgba(59,130,246,.5);--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: ;border:0 solid #e5e7eb;box-sizing:border-box}::backdrop{--tw-ring-color:rgba(59,130,246,.5);--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{font-family:Figtree;line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}.outline{outline-style:solid}:host,:host button,:host input,:host option,:host select,:host textarea{font-family:Figtree,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:host{display:block}.chip-focus{outline:2px solid var(--color-feedback-informational)!important;outline-offset:2px!important}.chip-opened{box-shadow:0 0 0 2px hsla(0,0%,8%,.102)}:root{--color-green-50:#f1f9f4;--color-green-100:#e6f4ed;--color-green-200:#cae7d8;--color-green-300:#a0d4b8;--color-green-400:#68bb8e;--color-green-500:#04843f;--color-green-600:#037236;--color-green-700:#03632f;--color-green-800:#035428;--color-green-900:#024521;--color-green-950:#012b15;--color-red-50:#fef6f6;--color-red-100:#fde8e8;--color-red-200:#fad1d1;--color-red-300:#f7abab;--color-red-400:#f17474;--color-red-500:#c80505;--color-red-600:#b30404;--color-red-700:#9f0404;--color-red-800:#860303;--color-red-900:#6d0303;--color-red-950:#330d00;--color-yellow-50:#fdf4e7;--color-yellow-100:#fcedd9;--color-yellow-200:#fae0bd;--color-yellow-300:#f6c788;--color-yellow-400:#f3b159;--color-yellow-500:#ef9928;--color-yellow-600:#e49226;--color-yellow-700:#d17e10;--color-yellow-800:#b46d0e;--color-yellow-900:#93590b;--color-yellow-950:#402705;--color-orange-50:#fef4f1;--color-orange-100:#fde8e2;--color-orange-200:#fbd2c6;--color-orange-300:#f8b4a0;--color-orange-400:#f58e70;--color-orange-500:#f05223;--color-orange-600:#ea4210;--color-orange-700:#d23b0e;--color-orange-800:#b5330c;--color-orange-900:#942a0a;--color-orange-950:#401204;--color-blue-50:#ecf0f9;--color-blue-100:#dde3f4;--color-blue-200:#b2c2e5;--color-blue-300:#7994d2;--color-blue-400:#4066bf;--color-blue-500:#001e64;--color-blue-600:#001c5c;--color-blue-700:#00174c;--color-blue-800:#00123d;--color-blue-900:#000f33;--color-blue-950:#000d2b;--color-ambar-50:#fff6eb;--color-ambar-100:#ffefdc;--color-ambar-200:#fedfb9;--color-ambar-300:#fdca8b;--color-ambar-400:#fdb359;--color-ambar-500:#fc9c26;--color-ambar-600:#ec8403;--color-ambar-700:#d87803;--color-ambar-800:#ba6803;--color-ambar-900:#975402;--color-ambar-950:#402301;--color-gray-50:#fff;--color-gray-100:#f3f4f4;--color-gray-200:#e5e6e6;--color-gray-300:#bfc0c0;--color-gray-400:#acaeae;--color-gray-500:#949595;--color-gray-600:#737575;--color-gray-700:#6c6e6e;--color-gray-800:#313333;--color-gray-900:#272929;--color-gray-950:#191d1d;--color-white-opacity-50:#ffffff0d;--color-white-opacity-100:#ffffff1a;--color-white-opacity-200:#ffffff26;--color-white-opacity-300:#ffffff45;--color-white-opacity-400:#ffffff5c;--color-white-opacity-500:#ffffff80;--color-white-opacity-600:#ffffff8c;--color-white-opacity-700:#ffffffa3;--color-white-opacity-800:#ffffffba;--color-white-opacity-900:#fffc;--color-white-opacity-950:#ffffffe8;--color-ciano-50:#f1f6fe;--color-ciano-100:#dfeafc;--color-ciano-200:#c3d9f9;--color-ciano-300:#90b9f4;--color-ciano-400:#5d98ee;--color-ciano-500:#1769e0;--color-ciano-600:#155fcb;--color-ciano-700:#1355b4;--color-ciano-800:#104899;--color-ciano-900:#0d3b7d;--color-ciano-950:#071e40;--color-extra-color-blue-light:#e7f0f4;--color-extra-color-blue-dark:#162931;--color-black-opacity-50:rgba(25,29,29,.02);--color-black-opacity-100:rgba(25,29,29,.05);--color-black-opacity-200:rgba(25,29,29,.11);--color-black-opacity-300:rgba(25,29,29,.28);--color-black-opacity-400:rgba(25,29,29,.36);--color-black-opacity-500:rgba(25,29,29,.44);--color-black-opacity-600:rgba(25,29,29,.62);--color-black-opacity-700:rgba(25,29,29,.64);--color-black-opacity-800:rgba(25,29,29,.72);--color-black-opacity-900:rgba(25,29,29,.8);--color-black-opacity-950:rgba(25,29,29,.96);--color-shadow-opacity-50:rgba(0,0,0,.04);--color-shadow-opacity-100:rgba(0,0,0,.06);--color-shadow-opacity-200:rgba(0,0,0,.12);--color-shadow-opacity-300:rgba(0,0,0,.2);--color-shadow-opacity-400:rgba(0,0,0,.32);--color-shadow-opacity-500:rgba(0,0,0,.5);--color-shadow-opacity-600:rgba(0,0,0,.55);--color-shadow-opacity-700:rgba(0,0,0,.64);--color-shadow-opacity-800:rgba(0,0,0,.73);--color-shadow-opacity-900:rgba(0,0,0,.8);--color-shadow-opacity-950:rgba(0,0,0,.91);--color-feedback-success:#04843f;--color-feedback-error:#c80505;--color-feedback-informational:#1355b4;--color-feedback-alert:#ef9928;--color-brand-primary:#f05223;--color-brand-secondary:#001c5c;--color-brand-tertiary-1:#1769e0;--color-brand-tertiary-2:#fc9c26;--color-surface-body:#fff;--color-surface-on-body:#f3f4f4;--color-surface-on-body-blue:#e7f0f4;--color-surface-on-body-brand:#fff6eb;--color-surface-on-body-feedback-success:#e6f4ed;--color-surface-on-body-feedback-error:#fde8e8;--color-surface-on-body-feedback-alert:#fdf4e7;--color-surface-on-body-feedback-info:#dfeafc;--color-text-brand:#f05223;--color-text-primary:#313333;--color-text-secondary:#6c6e6e;--color-text-disabled:#949595;--color-text-link:#1355b4;--color-states-empty-bg-hover:rgba(25,29,29,.05);--color-states-empty-bg-pressed:rgba(25,29,29,.11);--color-states-bg-disabled:rgba(25,29,29,.02);--color-states-bg-focus:#1355b4;--color-states-primary-hover:#ea4210;--color-states-primary-pressed:#d23b0e;--color-states-danger-hover:#b30404;--color-states-danger-pressed:#9f0404;--color-states-negative-hover:#e5e6e6;--color-states-negative-pressed:#bfc0c0;--color-icon-primary:#6c6e6e;--color-icon-secondary:#fff;--color-icon-tertiary:#b30404;--color-icon-disabled:#acaeae;--color-neutral-neutral-1:#fff;--color-neutral-neutral-2:#f3f4f4;--color-neutral-neutral-3:#acaeae;--color-neutral-neutral-4:#949595;--color-neutral-neutral-5:#737575;--color-neutral-neutral-6:#6c6e6e;--color-neutral-neutral-7:#313333;--color-neutral-neutral-8:#272929;--color-negative-negative-1:#fff;--color-negative-negative-2:#313333;--color-opacity-body:#fffc;--color-opacity-on-body:rgba(25,29,29,.02);--color-opacity-overlay:rgba(25,29,29,.62);--color-opacity-on-overlay:#ffffff1a;--color-opacity-toast:#ffffff45;--color-line-input:#949595;--color-line-general-strong:#bfc0c0;--color-line-general:#e5e6e6;--color-line-hair:rgba(25,29,29,.05);--color-box-shadow-body:#fff;--color-box-shadow-shadow-color-1:rgba(0,0,0,.04);--color-box-shadow-shadow-color-2:rgba(0,0,0,.06)}.static{position:static}.absolute{position:absolute}.relative{position:relative}.bottom-40{bottom:2.5rem}.left-0{left:0}.top-40{top:2.5rem}.z-50{z-index:50}.ml-8{margin-left:.5rem}.mr-8{margin-right:.5rem}.flex{display:flex}.min-h-40{min-height:2.5rem}.w-fit{width:fit-content}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-center{justify-content:center}.rounded-xxl{border-radius:18.75rem}.border{border-width:1px}.border-line-input{border-color:var(--color-line-input)}.bg-brand-primary{background-color:var(--color-brand-primary)}.bg-negative-negative-1{background-color:var(--color-negative-negative-1)}.bg-states-bg-disabled{background-color:var(--color-states-bg-disabled)}.bg-states-empty-bg-pressed{background-color:var(--color-states-empty-bg-pressed)}.bg-states-negative-pressed{background-color:var(--color-states-negative-pressed)}.bg-surface-on-body{background-color:var(--color-surface-on-body)}.px-16{padding-left:1rem;padding-right:1rem}.py-2{padding-bottom:.125rem;padding-top:.125rem}.text-base{font-size:1rem;line-height:1.5rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.leading-4{line-height:1rem}.text-negative-negative-1{color:var(--color-negative-negative-1)}.text-negative-negative-2{color:var(--color-negative-negative-2)}.text-text-disabled{color:var(--color-text-disabled)}.text-text-primary{color:var(--color-text-primary)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.hover\:bg-states-empty-bg-hover:hover{background-color:var(--color-states-empty-bg-hover)}.hover\:bg-states-negative-hover:hover{background-color:var(--color-states-negative-hover)}.active\:bg-states-empty-bg-pressed:active{background-color:var(--color-states-empty-bg-pressed)}.active\:bg-states-negative-pressed:active{background-color:var(--color-states-negative-pressed)}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:300;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Light.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:300;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-LightItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:400;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Regular.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:400;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Italic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:500;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Medium.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:500;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-MediumItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:600;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-SemiBold.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:600;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-SemiBoldItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:700;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Bold.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:700;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-BoldItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:800;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-ExtraBold.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:800;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-ExtraBoldItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:900;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Black.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:900;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-BlackItalic.ttf) format("truetype")}.w-full{width:100%}.gap-8{gap:.5rem}.overflow-auto{overflow:auto}.rounded-sm{border-radius:.75rem}.border-line-general{border-color:var(--color-line-general)}.bg-surface-body{background-color:var(--color-surface-body)}.px-24{padding-left:1.5rem;padding-right:1.5rem}.py-12{padding-bottom:.75rem;padding-top:.75rem}.py-16{padding-bottom:1rem;padding-top:1rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-text-brand{color:var(--color-text-brand)}
|
|
1
|
+
*,:after,:before{--tw-ring-color:rgba(59,130,246,.5);--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: ;border:0 solid #e5e7eb;box-sizing:border-box}::backdrop{--tw-ring-color:rgba(59,130,246,.5);--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{font-family:Figtree;line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}.outline{outline-style:solid}:host,:host button,:host input,:host option,:host select,:host textarea{font-family:Figtree,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:host{display:block}.chip-focus{outline:2px solid var(--color-feedback-informational)!important;outline-offset:2px!important}.chip-opened{box-shadow:0 0 0 2px hsla(0,0%,8%,.102)}:root{--color-green-50:#f1f9f4;--color-green-100:#e6f4ed;--color-green-200:#cae7d8;--color-green-300:#a0d4b8;--color-green-400:#68bb8e;--color-green-500:#04843f;--color-green-600:#037236;--color-green-700:#03632f;--color-green-800:#035428;--color-green-900:#024521;--color-green-950:#012b15;--color-red-50:#fef6f6;--color-red-100:#fde8e8;--color-red-200:#fad1d1;--color-red-300:#f7abab;--color-red-400:#f17474;--color-red-500:#c80505;--color-red-600:#b30404;--color-red-700:#9f0404;--color-red-800:#860303;--color-red-900:#6d0303;--color-red-950:#330d00;--color-yellow-50:#fdf4e7;--color-yellow-100:#fcedd9;--color-yellow-200:#fae0bd;--color-yellow-300:#f6c788;--color-yellow-400:#f3b159;--color-yellow-500:#ef9928;--color-yellow-600:#e49226;--color-yellow-700:#d17e10;--color-yellow-800:#b46d0e;--color-yellow-900:#93590b;--color-yellow-950:#402705;--color-orange-50:#fef4f1;--color-orange-100:#fde8e2;--color-orange-200:#fbd2c6;--color-orange-300:#f8b4a0;--color-orange-400:#f58e70;--color-orange-500:#f05223;--color-orange-600:#ea4210;--color-orange-700:#d23b0e;--color-orange-800:#b5330c;--color-orange-900:#942a0a;--color-orange-950:#401204;--color-blue-50:#ecf0f9;--color-blue-100:#dde3f4;--color-blue-200:#b2c2e5;--color-blue-300:#7994d2;--color-blue-400:#4066bf;--color-blue-500:#001e64;--color-blue-600:#001c5c;--color-blue-700:#00174c;--color-blue-800:#00123d;--color-blue-900:#000f33;--color-blue-950:#000d2b;--color-ambar-50:#fff6eb;--color-ambar-100:#ffefdc;--color-ambar-200:#fedfb9;--color-ambar-300:#fdca8b;--color-ambar-400:#fdb359;--color-ambar-500:#fc9c26;--color-ambar-600:#ec8403;--color-ambar-700:#d87803;--color-ambar-800:#ba6803;--color-ambar-900:#975402;--color-ambar-950:#402301;--color-gray-50:#fff;--color-gray-100:#f3f4f4;--color-gray-200:#e5e6e6;--color-gray-300:#bfc0c0;--color-gray-400:#acaeae;--color-gray-500:#949595;--color-gray-600:#737575;--color-gray-700:#6c6e6e;--color-gray-800:#313333;--color-gray-900:#272929;--color-gray-950:#191d1d;--color-white-opacity-50:#ffffff0d;--color-white-opacity-100:#ffffff1a;--color-white-opacity-200:#ffffff26;--color-white-opacity-300:#ffffff45;--color-white-opacity-400:#ffffff5c;--color-white-opacity-500:#ffffff80;--color-white-opacity-600:#ffffff8c;--color-white-opacity-700:#ffffffa3;--color-white-opacity-800:#ffffffba;--color-white-opacity-900:#fffc;--color-white-opacity-950:#ffffffe8;--color-ciano-50:#f1f6fe;--color-ciano-100:#dfeafc;--color-ciano-200:#c3d9f9;--color-ciano-300:#90b9f4;--color-ciano-400:#5d98ee;--color-ciano-500:#1769e0;--color-ciano-600:#155fcb;--color-ciano-700:#1355b4;--color-ciano-800:#104899;--color-ciano-900:#0d3b7d;--color-ciano-950:#071e40;--color-extra-color-blue-light:#e7f0f4;--color-extra-color-blue-dark:#162931;--color-black-opacity-50:rgba(25,29,29,.02);--color-black-opacity-100:rgba(25,29,29,.05);--color-black-opacity-200:rgba(25,29,29,.11);--color-black-opacity-300:rgba(25,29,29,.28);--color-black-opacity-400:rgba(25,29,29,.36);--color-black-opacity-500:rgba(25,29,29,.44);--color-black-opacity-600:rgba(25,29,29,.62);--color-black-opacity-700:rgba(25,29,29,.64);--color-black-opacity-800:rgba(25,29,29,.72);--color-black-opacity-900:rgba(25,29,29,.8);--color-black-opacity-950:rgba(25,29,29,.96);--color-shadow-opacity-50:rgba(0,0,0,.04);--color-shadow-opacity-100:rgba(0,0,0,.06);--color-shadow-opacity-200:rgba(0,0,0,.12);--color-shadow-opacity-300:rgba(0,0,0,.2);--color-shadow-opacity-400:rgba(0,0,0,.32);--color-shadow-opacity-500:rgba(0,0,0,.5);--color-shadow-opacity-600:rgba(0,0,0,.55);--color-shadow-opacity-700:rgba(0,0,0,.64);--color-shadow-opacity-800:rgba(0,0,0,.73);--color-shadow-opacity-900:rgba(0,0,0,.8);--color-shadow-opacity-950:rgba(0,0,0,.91);--color-feedback-success:#04843f;--color-feedback-error:#c80505;--color-feedback-informational:#1355b4;--color-feedback-alert:#ef9928;--color-brand-primary:#f05223;--color-brand-secondary:#001c5c;--color-brand-tertiary-1:#1769e0;--color-brand-tertiary-2:#fc9c26;--color-surface-body:#fff;--color-surface-on-body:#f3f4f4;--color-surface-on-body-blue:#e7f0f4;--color-surface-on-body-brand:#fff6eb;--color-surface-on-body-feedback-success:#e6f4ed;--color-surface-on-body-feedback-error:#fde8e8;--color-surface-on-body-feedback-alert:#fdf4e7;--color-surface-on-body-feedback-info:#dfeafc;--color-text-brand:#f05223;--color-text-primary:#313333;--color-text-secondary:#6c6e6e;--color-text-disabled:#949595;--color-text-link:#1355b4;--color-states-empty-bg-hover:rgba(25,29,29,.05);--color-states-empty-bg-pressed:rgba(25,29,29,.11);--color-states-bg-disabled:rgba(25,29,29,.02);--color-states-bg-focus:#1355b4;--color-states-primary-hover:#ea4210;--color-states-primary-pressed:#d23b0e;--color-states-danger-hover:#b30404;--color-states-danger-pressed:#9f0404;--color-states-negative-hover:#e5e6e6;--color-states-negative-pressed:#bfc0c0;--color-icon-primary:#6c6e6e;--color-icon-secondary:#fff;--color-icon-tertiary:#b30404;--color-icon-disabled:#acaeae;--color-neutral-neutral-1:#fff;--color-neutral-neutral-2:#f3f4f4;--color-neutral-neutral-3:#acaeae;--color-neutral-neutral-4:#949595;--color-neutral-neutral-5:#737575;--color-neutral-neutral-6:#6c6e6e;--color-neutral-neutral-7:#313333;--color-neutral-neutral-8:#272929;--color-negative-negative-1:#fff;--color-negative-negative-2:#313333;--color-opacity-body:#fffc;--color-opacity-on-body:rgba(25,29,29,.02);--color-opacity-overlay:rgba(25,29,29,.62);--color-opacity-on-overlay:#ffffff1a;--color-opacity-toast:#ffffff45;--color-line-input:#949595;--color-line-general-strong:#bfc0c0;--color-line-general:#e5e6e6;--color-line-hair:rgba(25,29,29,.05);--color-box-shadow-body:#fff;--color-box-shadow-shadow-color-1:rgba(0,0,0,.04);--color-box-shadow-shadow-color-2:rgba(0,0,0,.06)}.static{position:static}.absolute{position:absolute}.relative{position:relative}.bottom-40{bottom:2.5rem}.left-0{left:0}.top-40{top:2.5rem}.z-50{z-index:50}.ml-8{margin-left:.5rem}.mr-8{margin-right:.5rem}.flex{display:flex}.min-h-40{min-height:2.5rem}.w-fit{width:fit-content}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.items-center{align-items:center}.justify-center{justify-content:center}.rounded-xxl{border-radius:18.75rem}.border{border-width:1px}.border-line-input{border-color:var(--color-line-input)}.bg-brand-primary{background-color:var(--color-brand-primary)}.bg-negative-negative-1{background-color:var(--color-negative-negative-1)}.bg-states-bg-disabled{background-color:var(--color-states-bg-disabled)}.bg-states-empty-bg-pressed{background-color:var(--color-states-empty-bg-pressed)}.bg-states-negative-pressed{background-color:var(--color-states-negative-pressed)}.bg-surface-on-body{background-color:var(--color-surface-on-body)}.px-16{padding-left:1rem;padding-right:1rem}.py-2{padding-bottom:.125rem;padding-top:.125rem}.text-base{font-size:1rem;line-height:1.5rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.leading-4{line-height:1rem}.text-negative-negative-1{color:var(--color-negative-negative-1)}.text-negative-negative-2{color:var(--color-negative-negative-2)}.text-text-disabled{color:var(--color-text-disabled)}.text-text-primary{color:var(--color-text-primary)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.hover\:bg-states-empty-bg-hover:hover{background-color:var(--color-states-empty-bg-hover)}.hover\:bg-states-negative-hover:hover{background-color:var(--color-states-negative-hover)}.active\:bg-states-empty-bg-pressed:active{background-color:var(--color-states-empty-bg-pressed)}.active\:bg-states-negative-pressed:active{background-color:var(--color-states-negative-pressed)}.container{width:100%}@media (min-width:22.5rem){.container{max-width:22.5rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:300;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Light.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:300;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-LightItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:400;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Regular.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:400;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Italic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:500;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Medium.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:500;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-MediumItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:600;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-SemiBold.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:600;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-SemiBoldItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:700;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Bold.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:700;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-BoldItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:800;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-ExtraBold.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:800;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-ExtraBoldItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:900;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Black.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:900;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-BlackItalic.ttf) format("truetype")}.w-full{width:100%}.gap-8{gap:.5rem}.overflow-auto{overflow:auto}.rounded-sm{border-radius:.75rem}.border-line-general{border-color:var(--color-line-general)}.bg-surface-body{background-color:var(--color-surface-body)}.px-24{padding-left:1.5rem;padding-right:1.5rem}.py-12{padding-bottom:.75rem;padding-top:.75rem}.py-16{padding-bottom:1rem;padding-top:1rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-text-brand{color:var(--color-text-brand)}
|