@abgov/nx-adsp 13.28.0 → 13.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abgov/nx-adsp",
3
- "version": "13.28.0",
3
+ "version": "13.28.1",
4
4
  "license": "Apache-2.0",
5
5
  "main": "src/index.js",
6
6
  "description": "Government of Alberta - Nx plugin for ADSP apps.",
@@ -86,10 +86,26 @@ const emit = defineEmits<{ itemClick: [item: AppSideMenuItem] }>();
86
86
 
87
87
  <style scoped>
88
88
  .app-side-menu {
89
- min-height: 100vh;
89
+ /* Bounded height, so .app-side-menu-content's overflow-y below actually
90
+ engages. With min-height the flex container grows past the viewport, the
91
+ content pane never overflows within it, and the DOCUMENT scrolls instead --
92
+ carrying the side menu off the top, which is the one thing a persistent
93
+ nav must not do. The overflow-y rule below was always intended to be the
94
+ scroll container; it was simply inert.
95
+ dvh tracks mobile browser chrome; vh is the fallback for older engines. */
96
+ height: 100vh;
97
+ height: 100dvh;
98
+ overflow: hidden;
90
99
  display: flex;
91
100
  }
92
101
 
102
+ .app-side-menu > goa-work-side-menu {
103
+ /* A nav longer than the viewport scrolls within its own column rather than
104
+ being clipped by the container's overflow: hidden. */
105
+ overflow-y: auto;
106
+ flex: 0 0 auto;
107
+ }
108
+
93
109
  .app-side-menu-content {
94
110
  flex: 1;
95
111
  min-width: 0;
@@ -93,6 +93,16 @@ describe('Vue Components Generator', () => {
93
93
  const formattersSrc = host
94
94
  .read('libs/vue-components/src/lib/formatters.ts')
95
95
  .toString();
96
+ // The staff shell must scroll its content, not the document -- otherwise
97
+ // the persistent side menu scrolls off the top. Verified in a real browser;
98
+ // this pins the rule so it can't regress to min-height.
99
+ const sideMenu = host
100
+ .read('libs/vue-components/src/lib/patterns/AppSideMenu.vue')
101
+ .toString();
102
+ expect(sideMenu).toContain('height: 100dvh');
103
+ expect(sideMenu).toContain('overflow: hidden');
104
+ expect(sideMenu).not.toContain('min-height: 100vh');
105
+
96
106
  // goa-form-stepper's `step` prop drives the progress bar; without it every
97
107
  // page of a wizard renders step one as current.
98
108
  const stepper = host