You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2026/09/01 12:33:47 UTC

(causeway) 03/07: docs(openspec): archive collection cosmetic improvements

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch htmx
in repository https://gitbox.apache.org/repos/asf/causeway.git

commit 2fe5444f93ba0b087f3c559ae04cc08a475e3e26
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Sep 1 07:17:29 2026 +0200

    docs(openspec): archive collection cosmetic improvements
---
 .../.openspec.yaml                                 |  0
 .../design.md                                      |  0
 .../proposal.md                                    |  0
 .../specs/domain-web-components/spec.md            |  0
 .../generic-htmx-web-component-viewer/spec.md      |  0
 .../specs/vaadin-collection-grid-adapter/spec.md   |  0
 .../tasks.md                                       |  0
 openspec/specs/domain-web-components/spec.md       | 16 ++++++++++-----
 .../generic-htmx-web-component-viewer/spec.md      | 23 ++++++++++++++++++++++
 .../specs/vaadin-collection-grid-adapter/spec.md   | 12 ++++++++++-
 10 files changed, 45 insertions(+), 6 deletions(-)

diff --git a/openspec/changes/improve-collection-sizing-and-action-placement/.openspec.yaml b/openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/.openspec.yaml
similarity index 100%
rename from openspec/changes/improve-collection-sizing-and-action-placement/.openspec.yaml
rename to openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/.openspec.yaml
diff --git a/openspec/changes/improve-collection-sizing-and-action-placement/design.md b/openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/design.md
similarity index 100%
rename from openspec/changes/improve-collection-sizing-and-action-placement/design.md
rename to openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/design.md
diff --git a/openspec/changes/improve-collection-sizing-and-action-placement/proposal.md b/openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/proposal.md
similarity index 100%
rename from openspec/changes/improve-collection-sizing-and-action-placement/proposal.md
rename to openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/proposal.md
diff --git a/openspec/changes/improve-collection-sizing-and-action-placement/specs/domain-web-components/spec.md b/openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/specs/domain-web-components/spec.md
similarity index 100%
rename from openspec/changes/improve-collection-sizing-and-action-placement/specs/domain-web-components/spec.md
rename to openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/specs/domain-web-components/spec.md
diff --git a/openspec/changes/improve-collection-sizing-and-action-placement/specs/generic-htmx-web-component-viewer/spec.md b/openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/specs/generic-htmx-web-component-viewer/spec.md
similarity index 100%
rename from openspec/changes/improve-collection-sizing-and-action-placement/specs/generic-htmx-web-component-viewer/spec.md
rename to openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/specs/generic-htmx-web-component-viewer/spec.md
diff --git a/openspec/changes/improve-collection-sizing-and-action-placement/specs/vaadin-collection-grid-adapter/spec.md b/openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/specs/vaadin-collection-grid-adapter/spec.md
similarity index 100%
rename from openspec/changes/improve-collection-sizing-and-action-placement/specs/vaadin-collection-grid-adapter/spec.md
rename to openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/specs/vaadin-collection-grid-adapter/spec.md
diff --git a/openspec/changes/improve-collection-sizing-and-action-placement/tasks.md b/openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/tasks.md
similarity index 100%
rename from openspec/changes/improve-collection-sizing-and-action-placement/tasks.md
rename to openspec/changes/archive/2026-08-31-improve-collection-sizing-and-action-placement/tasks.md
diff --git a/openspec/specs/domain-web-components/spec.md b/openspec/specs/domain-web-components/spec.md
index 8e65a0af825..f91c15ab29e 100644
--- a/openspec/specs/domain-web-components/spec.md
+++ b/openspec/specs/domain-web-components/spec.md
@@ -879,7 +879,8 @@ Object composition SHALL present actions in responsive semantic groups with cons
 
 #### Scenario: Collection actions are rendered
 - **WHEN** one or more actions are nested beneath a collection reference in the effective grid
-- **THEN** the actions are rendered together immediately following that collection rather than in the top-level action group
+- **THEN** the actions are rendered together in declaration order immediately before that collection's primary surface
+- **AND** they remain distinct from the top-level action group
 
 ### Requirement: Optional semantic reference widget implementation
 The semantic editor registry SHALL use the qualified internal Vaadin implementation by default for eligible single-reference and multi-reference inputs without changing the public Causeway element, context, identity, validation, or event contracts.
@@ -1191,7 +1192,7 @@ Property and collection components SHALL preserve each declared associated actio
 
 #### Scenario: Collection presentation changes
 - **WHEN** a collection moves through inactive, loading, ready, empty, error, paging, and refreshed states
-- **THEN** its associated action elements remain connected after the collection's primary presentation
+- **THEN** its associated action elements remain connected before the collection's stable primary presentation
 - **AND** collection-column capture and row rendering neither consume nor duplicate them
 
 #### Scenario: Owner route is replaced
@@ -1230,11 +1231,16 @@ Association SHALL affect presentation placement only, while every associated act
 ### Requirement: Accessible responsive association presentation
 Directly authored and grid-generated member associations SHALL expose equivalent ordered, keyboard-operable, responsive presentation through documented Causeway hooks and design variables.
 
-#### Scenario: Associated actions render at a wide viewport
-- **WHEN** one owner has multiple visible associated actions
-- **THEN** the owner presentation appears before one ordered action region
+#### Scenario: Property-associated actions render at a wide viewport
+- **WHEN** one property has one or more visible associated actions
+- **THEN** the property presentation appears before its ordered action region
 - **AND** controls retain visible labels, focus indicators, and semantic button behavior
 
+#### Scenario: Collection-associated actions render at a wide viewport
+- **WHEN** one collection has one or more visible associated actions
+- **THEN** one right-aligned ordered action toolbar appears before the collection's primary surface in both visual and sequential keyboard order
+- **AND** the toolbar does not overlap the collection heading, description, search, rows, Grid, or paging controls
+
 #### Scenario: Associated actions render at a narrow viewport
 - **WHEN** the available inline size cannot contain every associated action on one row
 - **THEN** the action region wraps without horizontal page overflow, clipping, overlap, or reordered keyboard focus
diff --git a/openspec/specs/generic-htmx-web-component-viewer/spec.md b/openspec/specs/generic-htmx-web-component-viewer/spec.md
index 5efb8266ac9..600c95b17e0 100644
--- a/openspec/specs/generic-htmx-web-component-viewer/spec.md
+++ b/openspec/specs/generic-htmx-web-component-viewer/spec.md
@@ -964,3 +964,26 @@ The Petclinic browser profile SHALL verify user-visible keyboard time selection,
 #### Scenario: Corrected journeys remain clean
 - **WHEN** the editor and collection journeys complete or cancel
 - **THEN** no unexpected mutation, invocation, focus loss, console error, page error, CSP violation, external request, overlay leak, or horizontal overflow occurs
+
+### Requirement: Petclinic compact collection and top-action qualification
+The Petclinic browser profile SHALL verify compact authoritative small-Grid sizing and responsive collection-associated action placement through the public HTMX viewer.
+
+#### Scenario: Owner has one companion animal
+- **WHEN** the wide owner page renders an unpaged Pets Grid whose authoritative total fits its projected rows
+- **THEN** the Grid height fits its header and data rows without a large empty scrolling viewport
+- **AND** sorting, filtering, links, columns, and collection metadata remain operable
+
+#### Scenario: Owner pet actions render
+- **WHEN** the Pets collection exposes Register a pet and Remove Pet as associated actions
+- **THEN** the actions appear in declaration order in a right-aligned toolbar before the collection surface
+- **AND** keyboard traversal reaches those actions before collection search, sort, row-link, and paging controls
+
+#### Scenario: Collection action toolbar becomes narrow
+- **WHEN** the owner page is resized below its responsive collection breakpoint
+- **THEN** the action toolbar wraps without overlap, clipping, reordered keyboard focus, or horizontal document overflow
+- **AND** native responsive collection presentation remains usable
+
+#### Scenario: Petclinic collection journey remains clean
+- **WHEN** browser acceptance operates the collection actions and collection controls
+- **THEN** prompts, cancellation, invocation, refresh, navigation, focus restoration, and authoritative GraphQL results remain unchanged
+- **AND** no console error, page error, CSP violation, external request, stale control, or overlay leak occurs
diff --git a/openspec/specs/vaadin-collection-grid-adapter/spec.md b/openspec/specs/vaadin-collection-grid-adapter/spec.md
index 5a4e38ea365..bd792327dc3 100644
--- a/openspec/specs/vaadin-collection-grid-adapter/spec.md
+++ b/openspec/specs/vaadin-collection-grid-adapter/spec.md
@@ -272,7 +272,17 @@ Vaadin Grid MUST NOT create an independent paging state machine.
 #### Scenario: Bounded Grid fits its current page
 - **WHEN** the adapter renders a bounded page as Grid
 - **THEN** Grid height fits the current bounded rows without retaining its default empty viewport
-- **AND** virtual Grid retains its bounded scrolling viewport
+- **AND** paging controls remain outside Grid and metadata-driven
+
+#### Scenario: Complete virtual window is small
+- **WHEN** an unpaged virtual Grid has a valid authoritative total no greater than its currently projected row count
+- **THEN** Grid height fits those rows without retaining an empty scrolling viewport
+- **AND** the collection retains its virtual range contract and can requalify after refresh
+
+#### Scenario: Virtual collection exceeds its projected rows
+- **WHEN** an unpaged virtual Grid has an authoritative total greater than its currently projected row count
+- **THEN** Grid retains its bounded scrolling viewport and range provider
+- **AND** it does not expand to the complete collection or infer completeness from sparse rows
 
 #### Scenario: Unpaged collection has a safe total
 - **WHEN** a qualified collection has no page-size override and reports a stable total