Let a blank tree label take the click as well as draw the caret
The class fix rendered the `+` but the node still would not open, and the
caret did not light on hover. `tbody th:empty { pointer-events: none }`
makes the padding cells left of a tree label inert, and a label cell whose
group key is null or "" is `:empty` too — its caret is a `::before`, which
does not count as content — so the cell received no pointer events at all.
Exclude the tree classes from that rule. `row-hover.css` reads `:empty` the
same way in six border selectors; those are a hover tint, left alone.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a95d663076
commit
41e76978f4
6
ui/package-lock.json
generated
6
ui/package-lock.json
generated
@ -578,7 +578,7 @@
|
|||||||
"node_modules/@perspective-dev/client": {
|
"node_modules/@perspective-dev/client": {
|
||||||
"version": "5.4.0",
|
"version": "5.4.0",
|
||||||
"resolved": "file:vendor/perspective-dev-client-5.4.0.tgz",
|
"resolved": "file:vendor/perspective-dev-client-5.4.0.tgz",
|
||||||
"integrity": "sha512-e1rkiCyIlEwSFcEmw/KuNOnrX0k6UiMfnvQB8nwQfkKtoW5d1hkveQ8lAGsj8UZskJuuHrxpWpnKnFm2bwBV7A==",
|
"integrity": "sha512-d6TKVh6DFKuGpiLYN2PmA8U9GbkMtgiCy9iUrLx7STMABT2kYwUE4tVQLqm/sRlwcRiVJ4+K2d1l6J8cgX+6Aw==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@perspective-dev/server": "^5.4.0",
|
"@perspective-dev/server": "^5.4.0",
|
||||||
@ -596,7 +596,7 @@
|
|||||||
"node_modules/@perspective-dev/viewer": {
|
"node_modules/@perspective-dev/viewer": {
|
||||||
"version": "5.4.0",
|
"version": "5.4.0",
|
||||||
"resolved": "file:vendor/perspective-dev-viewer-5.4.0.tgz",
|
"resolved": "file:vendor/perspective-dev-viewer-5.4.0.tgz",
|
||||||
"integrity": "sha512-dioznGFDoR2fx+0JBdg4SP/WWUxcCeZ9XrKuUiYOgJaXYadegESS0yr1rhMbMNJlG9IQzBCi/WFOvKKzcxkJJA==",
|
"integrity": "sha512-AkQwfacQFSJ0fZ7Ja142pa0HGLssxFK9/FM4jhrMvrXp31Rp74qRNIyueG8wiqGTPXmORaRDA+ePtW+Wfg5UpA==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@perspective-dev/client": "^5.4.0",
|
"@perspective-dev/client": "^5.4.0",
|
||||||
@ -607,7 +607,7 @@
|
|||||||
"node_modules/@perspective-dev/viewer-datagrid": {
|
"node_modules/@perspective-dev/viewer-datagrid": {
|
||||||
"version": "5.4.0",
|
"version": "5.4.0",
|
||||||
"resolved": "file:vendor/perspective-dev-viewer-datagrid-5.4.0.tgz",
|
"resolved": "file:vendor/perspective-dev-viewer-datagrid-5.4.0.tgz",
|
||||||
"integrity": "sha512-J5UL8GNqi5rrmeiOpyGanosSTxRi2bwHNxEHode/DMRP55FEMt+gMVqkC/LfuINi1b0TKVtJQCP+UN8MlnGgpw==",
|
"integrity": "sha512-7wqr7T8cp6SI1ZZy69qy0Y6sZ5UJCpQjHPnDL6Fjs3ATJtmhmVEz/dpcMcjCgqwGrs5Sqd7xyKNQ+RuwcBsMEQ==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@perspective-dev/client": "^5.4.0",
|
"@perspective-dev/client": "^5.4.0",
|
||||||
|
|||||||
4
ui/vendor/PROVENANCE.txt
vendored
4
ui/vendor/PROVENANCE.txt
vendored
@ -1,8 +1,8 @@
|
|||||||
Built from https://github.com/fleetside72/perspective
|
Built from https://github.com/fleetside72/perspective
|
||||||
branch expand-blank-tree-nodes
|
branch expand-blank-tree-nodes
|
||||||
commit 40266dc6ec4d83895483124386f0c79938d639ca
|
commit 751dcfe136c6455e3cd02a7b75a6df79cbe8e064
|
||||||
based on unknown
|
based on unknown
|
||||||
built 2026-09-22T04:06:28Z on usmidsap02
|
built 2026-09-22T04:18:51Z on usmidsap02
|
||||||
dirty 0 uncommitted file(s) in the source tree at build time
|
dirty 0 uncommitted file(s) in the source tree at build time
|
||||||
|
|
||||||
Regenerate with ui/vendor/rebuild-perspective.sh
|
Regenerate with ui/vendor/rebuild-perspective.sh
|
||||||
|
|||||||
11
ui/vendor/README.md
vendored
11
ui/vendor/README.md
vendored
@ -102,6 +102,17 @@ following row. Flat rollup (`group_rollup_mode: 'flat'`) writes each level into
|
|||||||
its own cell with no padding, so there is nothing structural to test there and
|
its own cell with no padding, so there is nothing structural to test there and
|
||||||
it keeps the text test.
|
it keeps the text test.
|
||||||
|
|
||||||
|
The class was only half of it. `tbody th:empty { pointer-events: none }` in
|
||||||
|
`regular_table.css` makes the padding cells inert, and a blank label cell is
|
||||||
|
`:empty` as well — a `::before` caret is not content — so the fixed node drew
|
||||||
|
its `+`, then ignored the click and would not even take the hover. The rule now
|
||||||
|
excludes the tree classes, which is the distinction it was reaching for: a
|
||||||
|
padding cell never carries one.
|
||||||
|
|
||||||
|
`row-hover.css` uses `:empty` the same way in six border selectors. Those are a
|
||||||
|
hover tint and are left alone; a row whose first level is blank loses a border
|
||||||
|
highlight, and nothing else.
|
||||||
|
|
||||||
Separate from the data question: null and `''` group as two distinct rows that
|
Separate from the data question: null and `''` group as two distinct rows that
|
||||||
look identical, so a `COALESCE(NULLIF(col,''), '(none)')` at load time is still
|
look identical, so a `COALESCE(NULLIF(col,''), '(none)')` at load time is still
|
||||||
worth doing on its own merits.
|
worth doing on its own merits.
|
||||||
|
|||||||
BIN
ui/vendor/perspective-dev-client-5.4.0.tgz
vendored
BIN
ui/vendor/perspective-dev-client-5.4.0.tgz
vendored
Binary file not shown.
BIN
ui/vendor/perspective-dev-viewer-5.4.0.tgz
vendored
BIN
ui/vendor/perspective-dev-viewer-5.4.0.tgz
vendored
Binary file not shown.
BIN
ui/vendor/perspective-dev-viewer-datagrid-5.4.0.tgz
vendored
BIN
ui/vendor/perspective-dev-viewer-datagrid-5.4.0.tgz
vendored
Binary file not shown.
Loading…
Reference in New Issue
Block a user