UNPKG

datajunction-ui

Version:
335 lines (329 loc) 6.73 kB
table { width: 100%; height: min-content; } /* Namespace nav (filter-over-list) */ .dj-ns-group-heading { display: flex; align-items: center; gap: 6px; width: 100%; background: none; border: none; border-top: 1px solid #eef2f6; cursor: pointer; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: #94a3b8; margin: 6px 0 2px; padding: 10px 2px 4px; } .dj-ns-group-heading:hover { color: #64748b; } .dj-ns-chevron { display: inline-flex; align-items: center; width: 14px; min-width: 14px; flex-shrink: 0; } .dj-ns-group-label { flex: 1; min-width: 0; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .dj-ns-group-count { margin-left: auto; padding-left: 6px; color: #cbd5e1; flex-shrink: 0; } .dj-ns-nav-item { display: flex; align-items: center; width: 100%; background: none; border: none; text-align: left; padding: 8px 8px 8px 20px; font-size: 15px; line-height: 1.4; color: #334155; cursor: pointer; border-radius: 4px; } .dj-ns-nav-item:hover { background: #f1f5f9; color: #0f172a; } .dj-ns-nav-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; } /* Namespace nav — the filter box doubles as the scope selector. When a namespace is selected it shows in the input; an inset pin (★) and clear (✕) sit on the right. */ .dj-ns-filter { position: relative; margin-bottom: 6px; } .dj-ns-filter-input { width: 100%; box-sizing: border-box; /* right padding leaves room for the inset pin + clear buttons */ padding: 9px 52px 9px 11px; font-size: 14px; border: 1px solid #cbd5e1; border-radius: 6px; } .dj-ns-filter-pin, .dj-ns-filter-clear { position: absolute; top: 50%; transform: translateY(-50%); background: none; border: none; padding: 0 4px; line-height: 1; cursor: pointer; } .dj-ns-filter-clear { right: 8px; font-size: 13px; color: #94a3b8; } .dj-ns-filter-clear:hover { color: #475569; } .dj-ns-filter-pin { right: 30px; font-size: 15px; color: #cbd5e1; } .dj-ns-filter-pin:hover { color: #94a3b8; } .dj-ns-filter-pin.pinned { color: #f59e0b; } /* Branch switcher: borderless — icon + branch name + caret read as plain text (no box, so it doesn't look like a second selector), with a transparent native <select> overlaid for the dropdown + accessibility. The row shrink-wraps its content. */ .dj-ns-scope-branch-row { position: relative; display: inline-flex; align-items: center; gap: 5px; max-width: 100%; margin: 2px 0 8px; padding: 2px 4px 2px 12px; cursor: pointer; } .dj-ns-branch-glyph { color: #94a3b8; flex-shrink: 0; } .dj-ns-branch-value { font-size: 14px; font-weight: 600; color: #1e293b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .dj-ns-branch-caret { color: #64748b; flex-shrink: 0; } .dj-ns-scope-branch-row:hover .dj-ns-branch-value { color: #2563eb; } .dj-ns-scope-branch-row:hover .dj-ns-branch-glyph, .dj-ns-scope-branch-row:hover .dj-ns-branch-caret { color: #2563eb; } /* The real <select>, made invisible and stretched over the row so a click anywhere opens the native dropdown; keeps keyboard + screen-reader behavior. */ .dj-ns-branch-native { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; border: none; opacity: 0; cursor: pointer; } /* Namespace nav — pin star */ .dj-ns-star { margin-left: 6px; padding: 0 2px; background: none; border: none; cursor: pointer; font-size: 15px; line-height: 1; color: #cbd5e1; opacity: 0; flex-shrink: 0; } .dj-ns-nav-item:hover .dj-ns-star { opacity: 1; } .dj-ns-star.pinned { opacity: 1; color: #f59e0b; } /* Namespace nav — contents-by-type summary (selected view) */ .dj-ns-type-summary { margin: 2px 0 4px; padding: 0 4px 8px; border-bottom: 1px solid #eef2f6; } .dj-ns-type-summary-heading { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: #94a3b8; margin: 2px 0 4px; } .dj-ns-type-row { display: flex; align-items: center; justify-content: space-between; /* left pad aligns node names with the namespace tree's text column */ padding: 6px 4px 6px 24px; border-radius: 4px; text-decoration: none; color: #334155; font-size: 14px; } .dj-ns-type-row:hover { background: #f1f5f9; } .dj-ns-type-name { text-transform: capitalize; } .dj-ns-type-count { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 8px; font-variant-numeric: tabular-nums; } .dj-ns-tree-heading { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: #94a3b8; margin: 8px 0 4px; padding: 0 4px; } /* Node search box in the namespace main panel */ .dj-node-search { width: 100%; box-sizing: border-box; height: 32px; padding: 0 10px 0 28px; /* left room for the search icon */ font-size: 12px; border: 1px solid #cccccc; border-radius: 4px; background-color: #ffffff; } .dj-node-search:focus { outline: none; border-color: #2684ff; box-shadow: 0 0 0 1px #2684ff; } .dj-node-search::placeholder { color: #94a3b8; } /* Namespace tree (Explorer) — row actions: persistent pin + kebab menu */ .dj-ns-row-actions { position: absolute; right: 4px; top: 0; bottom: 0; display: flex; align-items: center; gap: 2px; } .dj-ns-pin-indicator { color: #f59e0b; font-size: 13px; line-height: 1; } .dj-ns-kebab { padding: 2px 3px; border: none; background: transparent; cursor: pointer; color: #94a3b8; display: inline-flex; align-items: center; border-radius: 4px; transition: opacity 0.15s ease; } .dj-ns-kebab:hover { background: #e2e8f0; color: #475569; } .dj-ns-row-menu { position: absolute; top: 100%; right: 0; z-index: 30; background: #fff; border: 1px solid #e2e8f0; border-radius: 6px; box-shadow: 0 6px 16px rgba(15, 23, 42, 0.14); padding: 4px; min-width: 170px; } .dj-ns-row-menu-item { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; background: none; border: none; padding: 7px 10px; font-size: 13px; color: #334155; cursor: pointer; border-radius: 4px; white-space: nowrap; } .dj-ns-row-menu-item:hover { background: #f1f5f9; } .dj-ns-mi-icon { width: 16px; min-width: 16px; display: inline-flex; align-items: center; justify-content: center; color: #64748b; font-size: 14px; line-height: 1; flex-shrink: 0; } .dj-ns-mi-icon svg { width: 14px; height: 14px; fill: currentColor; } .dj-ns-mi-icon.pinned { color: #f59e0b; }