<style include="cr-shared-style shared-style cr-nav-menu-item-style">
:host {
display: block;
--cr-vertical-tab-height: 33px;
}
.cr-nav-menu-item {
color: var(--folder-inactive-color);
/* Add enough space at the end for the focus outline to not be cropped. */
margin-inline-end: 3px;
padding: 0;
}
#inner-container {
align-items: center;
cursor: pointer;
display: grid;
flex: 1;
grid-template-areas: 'arrow folder label';
grid-template-columns: 40px 24px auto;
min-height: 0;
min-width: fit-content;
overflow: hidden;
padding-inline-start: calc(var(--node-depth, 0) * 15px + 4px);
}
#arrow {
--cr-icon-button-size: 40px;
grid-area: arrow;
justify-self: center;
margin: 0;
}
#arrow:not([is-open]) {
transform: rotate(-90deg);
transition: transform 150ms;
}
.folder-icon {
grid-area: folder;
justify-self: center;
}
.menu-label {
font-weight: 500;
grid-area: label;
padding: 0 6px;
white-space: nowrap;
}
@media (prefers-color-scheme: dark) {
.cr-nav-menu-item.drag-on {
color: var(--google-grey-700);
}
}
:host-context([dir='rtl']) #arrow:not([is-open]) {
transform: rotate(90deg);
}
#arrow[is-open] {
transform: initial;
}
.cr-vertical-tab::before {
display: none;
}
#container {
min-width: fit-content;
padding-inline-end: 10px;
}
@media (prefers-color-scheme: dark) {
.cr-nav-menu-item[selected] #arrow,
.cr-nav-menu-item.drag-on #arrow {
--cr-icon-button-fill-color: black;
}
.cr-nav-menu-item.drag-on {
--iron-icon-fill-color: black;
background: var(--google-blue-300);
color: var(--google-grey-900);
}
}
</style>
<div id="container"
class$="cr-vertical-tab cr-nav-menu-item [[getContainerClass_(isSelectedFolder_)]]"
hidden="[[isRootFolder_(depth)]]"
role="treeitem"
aria-owns="descendants"
tabindex$="[[getTabIndex_(selectedFolder_, itemId)]]"
on-click="selectFolder_"
on-dblclick="toggleFolder_"
on-contextmenu="onContextMenu_"
selected$="[[isSelectedFolder_]]">
<div id="inner-container">
<template is="dom-if" if="[[hasChildFolder_]]">
<cr-icon-button id="arrow" iron-icon="cr:arrow-drop-down"
on-click="toggleFolder_" on-mousedown="preventDefault_"
tabindex="-1" is-open$="[[isOpen]]" noink aria-hidden="true">
</cr-icon-button>
</template>
<div class="folder-icon icon-folder-open"
open$="[[isSelectedFolder_]]"
no-children$="[[!hasChildFolder_]]">
</div>
<div class="menu-label" title="[[item_.title]]">
[[item_.title]]
</div>
<cr-ripple></cr-ripple>
</div>
</div>
<div id="descendants" role="group">
<template is="dom-if" if="[[isOpen]]">
<template is="dom-repeat"
items="[[item_.children]]"
as="child"
filter="isFolder_">
<bookmarks-folder-node item-id="[[child]]"
draggable="true"
depth="[[getChildDepth_(depth)]]">
</bookmarks-folder-node>
</template>
</template>
</div>