Skip to content

Commit 9eb527f

Browse files
authored
Merge pull request #138 from posit-dev/enh-tbl-explorer-empty-rows
enh: `tbl_explorer()` size conservation
2 parents 5e9c97b + 4439579 commit 9eb527f

6 files changed

Lines changed: 940 additions & 29 deletions

File tree

great_docs/_tbl_explorer.py

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,21 @@ def _render_explorer_css(uid: str) -> str:
205205
background: #eef3fb;
206206
border-radius: 3px;
207207
}}
208+
{s} .gd-tbl-filter-hint {{
209+
color: #b0b0b0;
210+
font-size: 12px;
211+
font-style: italic;
212+
display: inline-flex;
213+
align-items: center;
214+
gap: 4px;
215+
padding-left: 4px;
216+
user-select: none;
217+
pointer-events: none;
218+
}}
219+
{s} .gd-tbl-filter-hint svg {{
220+
flex-shrink: 0;
221+
stroke: #b0b0b0;
222+
}}
208223
/* ── Filter wizard dropdown ──────────────────────── */
209224
{s} .gd-tbl-filter-wizard {{
210225
position: absolute;
@@ -584,6 +599,16 @@ def _render_explorer_css(uid: str) -> str:
584599
:root[data-bs-theme="dark"] {s} .gd-tbl-filter-add:hover {{
585600
background: #353550;
586601
}}
602+
body.quarto-dark {s} .gd-tbl-filter-hint,
603+
html.quarto-dark {s} .gd-tbl-filter-hint,
604+
:root[data-bs-theme="dark"] {s} .gd-tbl-filter-hint {{
605+
color: #666;
606+
}}
607+
body.quarto-dark {s} .gd-tbl-filter-hint svg,
608+
html.quarto-dark {s} .gd-tbl-filter-hint svg,
609+
:root[data-bs-theme="dark"] {s} .gd-tbl-filter-hint svg {{
610+
stroke: #666;
611+
}}
587612
body.quarto-dark {s} .gd-tbl-filter-wizard,
588613
html.quarto-dark {s} .gd-tbl-filter-wizard,
589614
:root[data-bs-theme="dark"] {s} .gd-tbl-filter-wizard {{
@@ -706,6 +731,44 @@ def _render_explorer_css(uid: str) -> str:
706731
color: #4ade80;
707732
border-color: #4ade80;
708733
}}
734+
/* ── Placeholder rows (stable height) ────────────── */
735+
{s} .gd-tbl-placeholder-row td {{
736+
border-top: none !important;
737+
border-bottom: none !important;
738+
padding: 0 !important;
739+
height: 0;
740+
line-height: 0;
741+
overflow: hidden;
742+
position: relative;
743+
}}
744+
{s} .gd-tbl-placeholder-row td .gd-tbl-placeholder-dot {{
745+
position: absolute;
746+
top: 50%;
747+
left: 50%;
748+
transform: translate(-50%, -50%);
749+
width: 4px;
750+
height: 4px;
751+
border-radius: 50%;
752+
background: #d0d0d0;
753+
}}
754+
{s} .gd-tbl-empty-msg {{
755+
text-align: center;
756+
color: #999;
757+
font-size: 13px;
758+
font-style: italic;
759+
padding: 8px 0 4px 0;
760+
user-select: none;
761+
}}
762+
body.quarto-dark {s} .gd-tbl-placeholder-row td .gd-tbl-placeholder-dot,
763+
html.quarto-dark {s} .gd-tbl-placeholder-row td .gd-tbl-placeholder-dot,
764+
:root[data-bs-theme="dark"] {s} .gd-tbl-placeholder-row td .gd-tbl-placeholder-dot {{
765+
background: #555;
766+
}}
767+
body.quarto-dark {s} .gd-tbl-empty-msg,
768+
html.quarto-dark {s} .gd-tbl-empty-msg,
769+
:root[data-bs-theme="dark"] {s} .gd-tbl-empty-msg {{
770+
color: #777;
771+
}}
709772
</style>"""
710773

711774

@@ -757,7 +820,7 @@ def tbl_explorer(
757820
min_tbl_width: int = 500,
758821
caption: str | None = None,
759822
highlight_missing: bool = True,
760-
page_size: int = 20,
823+
page_size: int = 10,
761824
sortable: bool = True,
762825
filterable: bool = True,
763826
column_toggle: bool = True,

0 commit comments

Comments
 (0)