@quazardous/qdadm 2.7.1 → 2.7.3

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/README.md CHANGED
@@ -98,6 +98,7 @@ Options: `transformRequest`, `transformResponse`, `responseFormat`, `clientSideP
98
98
  | [QDADM_CREDO](QDADM_CREDO.md) | Philosophy, patterns, concepts |
99
99
  | [Page compositions](../../docs/page-compositions.md) | **Start here** — which composition for which need |
100
100
  | [CRUD Pages](../../docs/crud.md) | List / form / show / child pages reference |
101
+ | [Navigation](../../docs/navigation.md) | Breadcrumb, sibling navlinks, View↔Edit toggle |
101
102
  | [Architecture](../../docs/architecture.md) | PAC pattern, layers |
102
103
  | [Extension](../../docs/extension.md) | Decorators, bundles, multi-storage |
103
104
  | [Hooks](../../docs/hooks.md) | Alter / invoke registry |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quazardous/qdadm",
3
- "version": "2.7.1",
3
+ "version": "2.7.3",
4
4
  "description": "Vue 3 framework for admin dashboards with PrimeVue",
5
5
  "author": "quazardous",
6
6
  "license": "MIT",
@@ -390,19 +390,10 @@ const shownModeToggle = computed(() =>
390
390
  </template>
391
391
  </Breadcrumb>
392
392
 
393
- <!-- View↔Edit mode toggle (#1332/#1341) — plain navigation; the form
394
- page's own route-leave guard covers unsaved changes on edit→show -->
395
- <RouterLink
396
- v-if="shownModeToggle"
397
- :to="shownModeToggle.to"
398
- class="breadcrumb-mode-toggle"
399
- >
400
- <i :class="shownModeToggle.target === 'edit' ? 'pi pi-pencil' : 'pi pi-eye'"></i>
401
- <span>{{ shownModeToggle.label }}</span>
402
- </RouterLink>
403
-
404
- <!-- Navlinks (provided by PageNav for child routes) -->
405
- <div v-if="navlinks.length > 0" class="layout-navlinks">
393
+ <!-- Navlinks (provided by PageNav for child routes) + View↔Edit mode
394
+ toggle (#1332/#1341) — plain navigation; the form page's own
395
+ route-leave guard covers unsaved changes on edit→show -->
396
+ <div v-if="navlinks.length > 0 || shownModeToggle" class="layout-navlinks">
406
397
  <template v-for="(link, index) in navlinks" :key="link.to?.name || index">
407
398
  <span v-if="index > 0" class="layout-navlinks-separator">|</span>
408
399
  <RouterLink
@@ -413,6 +404,15 @@ const shownModeToggle = computed(() =>
413
404
  {{ link.label }}
414
405
  </RouterLink>
415
406
  </template>
407
+ <template v-if="shownModeToggle">
408
+ <span v-if="navlinks.length > 0" class="layout-navlinks-separator">|</span>
409
+ <RouterLink
410
+ :to="shownModeToggle.to"
411
+ class="layout-navlink breadcrumb-mode-toggle"
412
+ >
413
+ {{ shownModeToggle.label }}
414
+ </RouterLink>
415
+ </template>
416
416
  </div>
417
417
  </div>
418
418
 
@@ -721,24 +721,6 @@ const shownModeToggle = computed(() =>
721
721
  padding-bottom: 0;
722
722
  }
723
723
 
724
- /* Mode toggle sits right after the crumbs; auto margin keeps navlinks pinned right */
725
- .breadcrumb-mode-toggle {
726
- display: inline-flex;
727
- align-items: center;
728
- gap: 0.35rem;
729
- margin-left: 0.75rem;
730
- margin-right: auto;
731
- font-size: 0.875rem;
732
- color: var(--p-primary-500, #3b82f6);
733
- text-decoration: none;
734
- transition: color var(--fad-transition-fast);
735
- }
736
-
737
- .breadcrumb-mode-toggle:hover {
738
- color: var(--p-primary-600, #2563eb);
739
- text-decoration: underline;
740
- }
741
-
742
724
  .layout-navlinks {
743
725
  display: flex;
744
726
  align-items: center;
@@ -64,19 +64,10 @@ const shownModeToggle = computed(() =>
64
64
  </template>
65
65
  </Breadcrumb>
66
66
 
67
- <!-- View↔Edit mode toggle (#1332) — plain navigation; the form page's
68
- own route-leave guard covers unsaved changes on edit→show -->
69
- <RouterLink
70
- v-if="shownModeToggle"
71
- :to="shownModeToggle.to"
72
- class="breadcrumb-mode-toggle"
73
- >
74
- <i :class="shownModeToggle.target === 'edit' ? 'pi pi-pencil' : 'pi pi-eye'"></i>
75
- <span>{{ shownModeToggle.label }}</span>
76
- </RouterLink>
77
-
78
- <!-- Navlinks (provided by PageNav for child routes) -->
79
- <div v-if="navlinks.length > 0" class="breadcrumb-navlinks">
67
+ <!-- Navlinks (provided by PageNav for child routes) + View↔Edit mode
68
+ toggle (#1332/#1341) — plain navigation; the form page's own
69
+ route-leave guard covers unsaved changes on edit→show -->
70
+ <div v-if="navlinks.length > 0 || shownModeToggle" class="breadcrumb-navlinks">
80
71
  <template v-for="(link, index) in navlinks" :key="link.to?.name || index">
81
72
  <span v-if="index > 0" class="navlinks-separator">|</span>
82
73
  <RouterLink
@@ -87,6 +78,15 @@ const shownModeToggle = computed(() =>
87
78
  {{ link.label }}
88
79
  </RouterLink>
89
80
  </template>
81
+ <template v-if="shownModeToggle">
82
+ <span v-if="navlinks.length > 0" class="navlinks-separator">|</span>
83
+ <RouterLink
84
+ :to="shownModeToggle.to"
85
+ class="navlink breadcrumb-mode-toggle"
86
+ >
87
+ {{ shownModeToggle.label }}
88
+ </RouterLink>
89
+ </template>
90
90
  </div>
91
91
  </div>
92
92
  </template>
@@ -111,24 +111,6 @@ const shownModeToggle = computed(() =>
111
111
  font-size: 0.875rem;
112
112
  }
113
113
 
114
- /* Mode toggle sits right after the crumbs; auto margin keeps navlinks pinned right */
115
- .breadcrumb-mode-toggle {
116
- display: inline-flex;
117
- align-items: center;
118
- gap: 0.35rem;
119
- margin-left: 0.75rem;
120
- margin-right: auto;
121
- font-size: 0.875rem;
122
- color: var(--p-primary-500, #3b82f6);
123
- text-decoration: none;
124
- transition: color 0.15s;
125
- }
126
-
127
- .breadcrumb-mode-toggle:hover {
128
- color: var(--p-primary-700, #1d4ed8);
129
- text-decoration: underline;
130
- }
131
-
132
114
  .navlinks-separator {
133
115
  color: var(--p-surface-400, #94a3b8);
134
116
  }
@@ -57,6 +57,16 @@ $sidebar-box-content-duration: 0.1s;
57
57
  background: var(--p-surface-700, #334155);
58
58
  }
59
59
 
60
+ // #1352 — every .sidebar-box is its own stacking context (z-index: 1), so an
61
+ // open select overlay (appendTo="self", z-index 1001) is TRAPPED inside its
62
+ // box's context and the NEXT sibling box (same z: 1, later in DOM) paints over
63
+ // it — the "transparent dropdown" symptom. An open overlay implies focus
64
+ // inside the box: raise the whole box above its siblings for that duration.
65
+ // (The z-index: 9999 on the overlays themselves can't help across siblings.)
66
+ .sidebar-box:focus-within {
67
+ z-index: 20;
68
+ }
69
+
60
70
  .sidebar-box-inner {
61
71
  display: flex;
62
72
  align-items: center;