UNPKG

@jupyterlab/filebrowser

Version:
523 lines (434 loc) 12 kB
/*----------------------------------------------------------------------------- | Copyright (c) Jupyter Development Team. | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ @import url('./pathnavigator.css'); /*----------------------------------------------------------------------------- | Variables |----------------------------------------------------------------------------*/ :root { --jp-private-filebrowser-button-height: 28px; --jp-private-filebrowser-button-width: 48px; } .jp-FileBrowser .jp-SidePanel-content { display: flex; flex-direction: column; overflow: hidden; } .jp-FileBrowser-toolbar.jp-Toolbar { border-bottom: none; height: auto; margin: 8px 12px 0; box-shadow: none; padding: 0; } .jp-FileBrowser-toolbar.jp-Toolbar::part(positioning-region) { row-gap: 12px; } .jp-FileBrowser-filterToolbar { display: flex; flex: 0 0 auto; flex-direction: column; } .jp-FileBrowser-filterToolbar.jp-Toolbar { border-bottom: none; height: auto; margin: 0 12px 6px; box-shadow: none; padding: 0; } .jp-FileBrowser-Panel { flex: 1 1 auto; display: flex; flex-direction: column; overflow: hidden; } .jp-BreadCrumbs { flex: 0 0 auto; margin: 8px 12px; cursor: text; } .jp-BreadCrumbs:hover:not(:has(.jp-BreadCrumbs-content:hover)) { background: var(--jp-layout-color2); } /* The container holds breadcrumb icons, separators, and items */ .jp-BreadCrumbs-container { min-width: 0; } .jp-BreadCrumbs-content { display: inline; } .jp-BreadCrumbs.jp-mod-editMode > .jp-BreadCrumbs-container { display: none; } .jp-BreadCrumbs-item { margin: 0 2px; padding: 2px; border-radius: var(--jp-border-radius); cursor: pointer; } .jp-BreadCrumbs-ellipsis { padding: 0; } .jp-BreadCrumbs-item:hover { background-color: var(--jp-layout-color2); } .jp-BreadCrumbs-home, .jp-BreadCrumbs-preferred { margin-right: 2px; } .jp-BreadCrumbs-item:focus-visible { outline-width: var(--jp-focus-outline-width); outline-style: solid; outline-color: var(--jp-focus-outline-color); } .jp-BreadCrumbs-item.jp-mod-dropTarget { background-color: var(--jp-brand-color2); opacity: 0.7; } .jp-BreadCrumbs-item, .jp-BreadCrumbs-separator { vertical-align: middle; } /*----------------------------------------------------------------------------- | Buttons |----------------------------------------------------------------------------*/ .jp-FileBrowser-toolbar > .jp-Toolbar-item, .jp-FileBrowser-filterToolbar > .jp-Toolbar-item { flex: 0 0 auto; padding-left: 0; align-items: center; height: unset; } .jp-FileBrowser-toolbar > .jp-Toolbar-item .jp-ToolbarButtonComponent { width: 28px; } /*----------------------------------------------------------------------------- | Other styles |----------------------------------------------------------------------------*/ .jp-FileDialog.jp-mod-conflict input { color: var(--jp-error-color1); } .jp-FileDialog .jp-new-name-title { margin-top: 12px; } .jp-FileBrowser-filterToolbar > .jp-FileBrowser-filterBox { width: 100%; } .jp-FileBrowser-filterBox > .jp-FilterBox { width: 100%; } .jp-Open-Dialog > .jp-FileBrowser { min-height: 200px; } .jp-Open-Dialog-label { overflow: visible; } /*----------------------------------------------------------------------------- | DirListing |----------------------------------------------------------------------------*/ .jp-DirListing { flex: 1 1 auto; display: flex; flex-direction: column; outline: 0; overflow: hidden; --jp-dirlisting-padding-width: 12px; } .jp-DirListing-header { flex: 0 0 auto; display: flex; flex-direction: row; align-items: center; overflow: hidden; border-top: var(--jp-border-width) solid var(--jp-border-color2); border-bottom: var(--jp-border-width) solid var(--jp-border-color1); box-shadow: var(--jp-toolbar-box-shadow); z-index: 2; user-select: none; } .jp-DirListing-headerItem { padding: 4px 12px 2px; font-weight: 500; overflow: hidden; white-space: nowrap; box-sizing: border-box; display: flex; } .jp-DirListing-headerItemText { flex-grow: 1; text-overflow: ellipsis; overflow: hidden; } .jp-DirListing-headerItem:hover { background: var(--jp-layout-color2); } .jp-DirListing-headerItem.jp-id-name:not([style*='width']) { /* default width before user resizes this column */ flex: 1 1 126px; } .jp-DirListing-headerItem.jp-id-modified:not([style*='width']) { /* default width before user resizes this column */ flex: 1 0 70px; } .jp-DirListing-headerItem.jp-id-created:not([style*='width']) { /* default width before user resizes this column */ flex: 1 0 70px; } .jp-DirListing-headerItem.jp-id-filesize:not([style*='width']) { /* default width before user resizes this column */ flex: 0 0 75px; } .jp-DirListing-headerItem.jp-id-modified, .jp-DirListing-headerItem.jp-id-created, .jp-DirListing-headerItem.jp-id-filesize { text-align: right; container-type: inline-size; } /** * Use container queries to display either a small or large header * for the date and file size columns. */ @container (max-width: 100px) { .jp-DirListing-headerItem.jp-id-modified > .jp-DirListing-headerItemText-small, .jp-DirListing-headerItem.jp-id-filesize > .jp-DirListing-headerItemText-small, .jp-DirListing-headerItem.jp-id-created > .jp-DirListing-headerItemText-small { display: inline; } .jp-DirListing-headerItem.jp-id-modified > .jp-DirListing-headerItemText-large, .jp-DirListing-headerItem.jp-id-filesize > .jp-DirListing-headerItemText-large, .jp-DirListing-headerItem.jp-id-created > .jp-DirListing-headerItemText-large { display: none; } } @container (min-width: 100px) { .jp-DirListing-headerItem.jp-id-modified > .jp-DirListing-headerItemText-small, .jp-DirListing-headerItem.jp-id-filesize > .jp-DirListing-headerItemText-small, .jp-DirListing-headerItem.jp-id-created > .jp-DirListing-headerItemText-small { display: none; } .jp-DirListing-headerItem.jp-id-modified > .jp-DirListing-headerItemText-large, .jp-DirListing-headerItem.jp-id-filesize > .jp-DirListing-headerItemText-large, .jp-DirListing-headerItem.jp-id-created > .jp-DirListing-headerItemText-large { display: inline; } } .jp-DirListing-headerItem.jp-mod-selected { font-weight: 600; } /* increase specificity to override bundled default */ .jp-DirListing-content { flex: 1 1 auto; margin: 0; padding: 0; list-style-type: none; overflow: auto; background-color: var(--jp-layout-color1); overflow-x: hidden; } .jp-DirListing-content mark { color: var(--jp-ui-font-color0); background-color: transparent; font-weight: bold; } .jp-DirListing-content .jp-DirListing-item.jp-mod-selected mark { color: var(--jp-ui-inverse-font-color0); } /* Style the directory listing content when a user drops a file to upload */ .jp-DirListing.jp-mod-native-drop .jp-DirListing-content { outline: 5px dashed rgba(128, 128, 128, 0.5); outline-offset: -10px; cursor: copy; } .jp-DirListing-item { align-items: center; padding: 4px var(--jp-dirlisting-padding-width); -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; display: inline-grid; grid-auto-columns: max-content; width: 100%; box-sizing: border-box; grid-auto-flow: column; } .jp-DirListing-checkboxWrapper { /* Increases hit area of checkbox. */ padding: 4px; } .jp-DirListing-content .jp-DirListing-checkboxWrapper { position: relative; left: -4px; margin: -4px 0 -4px -8px; } .jp-DirListing-checkboxWrapper.jp-mod-visible { visibility: visible; } /* For devices that support hovering, hide checkboxes until hovered, selected... */ @media (hover: hover) { .jp-DirListing-checkboxWrapper { visibility: hidden; } .jp-DirListing-item:hover .jp-DirListing-checkboxWrapper, .jp-DirListing-item.jp-mod-selected .jp-DirListing-checkboxWrapper { visibility: visible; } } .jp-DirListing-resizeHandle { min-width: var(--jp-border-width); background: var(--jp-border-color2); height: calc(100% - 4px); /* border increases the area where handle can be grabbed */ border: 2px solid var(--jp-layout-color1); } .jp-DirListing-resizeHandle.jp-mod-active { background: var(--jp-brand-color1); border-color: var(--jp-brand-color1); } .jp-DirListing-resizeHandle.jp-mod-active:hover { border-color: var(--jp-brand-color1); } .jp-DirListing-resizeHandle:hover { cursor: col-resize; border-color: var(--jp-border-color2); } .jp-DirListing-itemName { display: flex; } .jp-DirListing-item[data-is-dot] { opacity: 75%; } .jp-DirListing-item.jp-mod-selected { color: var(--jp-ui-inverse-font-color1); background: var(--jp-brand-color1); } .jp-DirListing-item.jp-mod-dropTarget { background: var(--jp-brand-color3); } .jp-DirListing-item:hover:not(.jp-mod-selected) { background: var(--jp-layout-color2); } .jp-DirListing-itemIcon { flex: 0 0 20px; margin-right: 4px; } .jp-DirListing-itemText, .jp-DirListing-itemModified, .jp-DirListing-itemFileSize, .jp-DirListing-itemCreated { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .jp-DirListing-itemName:not([style*='width']) > .jp-DirListing-itemText { flex: 1 1 106px; } .jp-DirListing-item:has(.jp-DirListing-itemText:focus-visible) { /* Targeting `.jp-DirListing-itemText` specifically to avoid an extra outline when it gets replaced with `jp-DirListing-editor` when editing the file name */ outline-width: var(--jp-focus-outline-width); outline-color: var(--jp-focus-outline-color); outline-style: solid; outline-offset: -4px; } .jp-DirListing-item.jp-mod-selected:focus-within { outline-color: var(--jp-layout-color1); } .jp-DirListing-item > .jp-DirListing-itemName > .jp-DirListing-itemText:focus { outline: 0; } .jp-DirListing-itemModified { text-align: right; } .jp-DirListing-itemFileSize { text-align: right; } .jp-DirListing-itemCreated { text-align: right; } .jp-DirListing-editor { flex: 1 0 64px; outline: none; border: none; font-size: var(--jp-ui-font-size1); font-family: var(--jp-ui-font-family); color: var(--jp-ui-font-color1); background-color: var(--jp-layout-color1); z-index: 0; } .jp-DirListing-item.jp-mod-running .jp-DirListing-itemIcon::before { color: var(--jp-success-color1); content: '\25CF'; font-size: calc(var(--jp-ui-font-size1) * 8 / 13); position: absolute; left: -8px; } .jp-DirListing-item.jp-mod-running.jp-mod-selected .jp-DirListing-itemIcon::before { color: var(--jp-ui-inverse-font-color1); } .jp-DirListing-item.lm-mod-drag-image, .jp-DirListing-item.jp-mod-selected.lm-mod-drag-image { font-size: var(--jp-ui-font-size1); padding-left: 4px; margin-left: 4px; width: 160px; background-color: var(--jp-ui-inverse-font-color2); box-shadow: var(--jp-elevation-z2); border-radius: 0; color: var(--jp-ui-font-color1); transform: translateX(-40%) translateY(-58%); } .jp-Document { min-width: 120px; min-height: 120px; outline: none; } /*----------------------------------------------------------------------------- | FileBrowser movable sections |----------------------------------------------------------------------------*/ .jp-FileBrowser-accordion { flex: 1 1 auto; position: relative; min-height: 0; } .jp-movable-section-dragHandle { display: inline-flex; align-items: center; flex-shrink: 0; padding: 0 4px; opacity: 0.5; cursor: grab; } .jp-movable-section-dragHandle::before { content: '⠿'; font-size: var(--jp-ui-font-size1); line-height: 1; color: var(--jp-ui-font-color1); } .jp-mod-dragging .jp-movable-section-dragHandle { cursor: grabbing; } .jp-movable-section-dropIndicator { position: absolute; left: 0; right: 0; height: 2px; background-color: var(--jp-brand-color1); pointer-events: none; z-index: 10; }