You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This supersedes #316's decision to retain a persistent Grid Tiles KPI edit frame.
Product behavior
KPI cards should look the same across Dashboard styles: the KPI cards or KPI state card are the only persistent visible framed surfaces.
The query tile still exists structurally and owns order, placement, accessibility, movement, deletion, and Grid Tiles resizing, but its outer frame is normally transparent.
Flow KPI movement
Flow KPI tiles render as .dash-kpi-member hosts inside a KPI band rather than the normal .dash-tile card.
Requirements:
wire Command/Ctrl-drag directly to each KPI band member;
no grip is shown;
plain drag inside KPI content selects text and never moves the tile;
include KPI members in flow destination hit testing;
give the member a real temporary box while floating because its normal wrapper may use display: contents;
preserve canonical dashboard.tiles[] ordering and normal KPI-band regrouping after commit;
dispatch one move-tile command on successful release;
cancelled gestures change nothing.
Frameless Grid Tiles edit mode
Keep .dash-gg-tile.is-kpi as the real CSS-grid item. Do not use display: contents.
The wrapper must continue to own:
grid span and height;
responsive placement and semantic order;
accessible query title;
Command/Ctrl-drag gesture;
delete action;
resize handle;
floating and placeholder behavior during movement.
In the normal edit state remove:
outer border, background, radius, and shadow;
persistent header row and reserved header height;
grip;
footer and footer separator;
outer body padding.
The KPI cards remain arranged by the existing equal-width responsive KPI layout from #316.
Transient editing chrome
Because the structural tile boundary is normally invisible, expose it transiently when the tile is being edited.
Show a non-layout-shifting overlay or outline on:
pointer hover;
keyboard focus within the tile;
Command/Ctrl modifier hover;
active move;
active resize.
The transient chrome should provide:
a thin outline around the complete query tile;
the query title in a compact overlay;
delete action at the upper edge;
Grid Tiles resize handle at the lower-right;
stronger feedback while moving or resizing.
Controls must be absolutely positioned or otherwise overlaid so appearing chrome does not move KPI content or change tile height.
A query may render multiple KPI cards. The transient boundary must surround the complete query tile, not each KPI card separately.
Unified movement rules
Across flow, Grid Tiles, and Full view:
plain pointer drag remains available for text selection;
Command on macOS or Ctrl on Windows/Linux starts movement after the existing threshold;
no KPI grip is shown;
movement may start from KPI content except interactive edit controls;
synthesized click after movement is suppressed;
Escape, pointer cancellation, blur, lost capture, rerender, or teardown cancels cleanly;
Summary
Unify KPI tile presentation and movement across every editable Dashboard style.
Report,2 columns,3 columns): KPI-band members move with Command/Ctrl-drag and have no grip.move-tilecommit.This supersedes #316's decision to retain a persistent Grid Tiles KPI edit frame.
Product behavior
KPI cards should look the same across Dashboard styles: the KPI cards or KPI state card are the only persistent visible framed surfaces.
The query tile still exists structurally and owns order, placement, accessibility, movement, deletion, and Grid Tiles resizing, but its outer frame is normally transparent.
Flow KPI movement
Flow KPI tiles render as
.dash-kpi-memberhosts inside a KPI band rather than the normal.dash-tilecard.Requirements:
display: contents;dashboard.tiles[]ordering and normal KPI-band regrouping after commit;move-tilecommand on successful release;Frameless Grid Tiles edit mode
Keep
.dash-gg-tile.is-kpias the real CSS-grid item. Do not usedisplay: contents.The wrapper must continue to own:
In the normal edit state remove:
The KPI cards remain arranged by the existing equal-width responsive KPI layout from #316.
Transient editing chrome
Because the structural tile boundary is normally invisible, expose it transiently when the tile is being edited.
Show a non-layout-shifting overlay or outline on:
The transient chrome should provide:
Controls must be absolutely positioned or otherwise overlaid so appearing chrome does not move KPI content or change tile height.
A query may render multiple KPI cards. The transient boundary must surround the complete query tile, not each KPI card separately.
Unified movement rules
Across flow, Grid Tiles, and Full view:
move-tilecommand;Floating state
When moving a KPI tile in either layout engine:
For flow KPI members, this temporary box creates the physical surface that does not exist in the normal
display: contentspresentation.For Grid Tiles, it visually exposes the otherwise transparent structural wrapper.
Resize and delete behavior
Grid Tiles and Full view retain existing resize semantics:
Requirements:
Flow layouts do not gain resize or delete controls beyond their existing capabilities; this issue only adds movement to KPI-band members.
Loading, error, unfilled, and zero-data states
Frameless behavior applies in every KPI state.
Accessibility
status; failures remainalert.Tests
Flow KPI movement
Grid Tiles presentation
Grid Tiles interaction
State and browser coverage
Verify loading, unfilled, error, zero-data, and refreshed states in:
Acceptance criteria
move-tile; cancellation commits none.Non-goals