@jskit-ai/agent-docs 0.1.117 → 0.1.119
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.
|
@@ -681,11 +681,21 @@ navigation.
|
|
|
681
681
|
|
|
682
682
|
The open drawer is content-aware by default. After the visible semantic
|
|
683
683
|
placements and fonts settle, `ShellLayout` measures the rendered labels and
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
684
|
+
uses Material's 12px outer item inset and one `navigationItemSpacing` value for
|
|
685
|
+
the icon-to-label gap and the space between the widest label and the drawer
|
|
686
|
+
edge. The spacing defaults to 12 CSS pixels and can be set from 8–24px. The
|
|
687
|
+
shell remeasures when placements, localization, fonts, spacing, the active
|
|
688
|
+
surface, or the window layout change, and clamps unusually long labels to a safe range. The
|
|
689
|
+
surface label appears once in the top app bar; the drawer starts with its
|
|
690
|
+
destinations instead of repeating that label as an uppercase subheader.
|
|
691
|
+
|
|
692
|
+
The closed desktop rail remains 80 CSS pixels wide by default, with every icon
|
|
693
|
+
and its Material selected-state indicator centred in the rail. The expanded
|
|
694
|
+
drawer uses the same icon centreline, so toggling the drawer reveals or hides
|
|
695
|
+
labels without making the icons jump sideways. The empty space around a 24px
|
|
696
|
+
icon in the default rail is intentional Material touch/indicator space, not a
|
|
697
|
+
second drawer padding. Products that deliberately need a denser rail can set
|
|
698
|
+
`railWidth`; the shell still enforces a 48px minimum target. Rail tooltips use
|
|
689
699
|
one explicit opaque theme color pair and open on pointer hover or keyboard
|
|
690
700
|
focus.
|
|
691
701
|
|
|
@@ -701,11 +711,11 @@ product has another discoverable navigation affordance:
|
|
|
701
711
|
The default is `desktop-drawer-closed-mode="rail"`. Prefer that Material 3
|
|
702
712
|
pattern; do not imitate a rail with custom CSS or a second menu registry.
|
|
703
713
|
|
|
704
|
-
Applications that need
|
|
705
|
-
|
|
714
|
+
Applications that need product-specific dimensions or spacing can use the
|
|
715
|
+
public props instead of overriding Vuetify drawer CSS:
|
|
706
716
|
|
|
707
717
|
```vue
|
|
708
|
-
<ShellLayout :drawer-width="280" :rail-width="
|
|
718
|
+
<ShellLayout :drawer-width="280" :rail-width="64" :navigation-item-spacing="12">
|
|
709
719
|
<RouterView />
|
|
710
720
|
</ShellLayout>
|
|
711
721
|
```
|
|
@@ -714,9 +724,24 @@ Omit `drawer-width` to retain content-aware sizing. Omit `rail-width` to retain
|
|
|
714
724
|
the 80px Material navigation-rail default. Drawer overrides are clamped to
|
|
715
725
|
120–360px and rail overrides to 48–160px so shell navigation cannot consume an
|
|
716
726
|
unsafe share of the viewport or shrink below its touch targets. The app-owned
|
|
717
|
-
`src/components/ShellLayout.vue` wrapper forwards
|
|
718
|
-
|
|
719
|
-
drawer implementation.
|
|
727
|
+
`src/components/ShellLayout.vue` wrapper also forwards
|
|
728
|
+
`navigation-item-spacing`, so an application does not need to copy or restyle
|
|
729
|
+
the drawer implementation.
|
|
730
|
+
|
|
731
|
+
### Updating an existing shell app
|
|
732
|
+
|
|
733
|
+
Commit the app's work and run:
|
|
734
|
+
|
|
735
|
+
```bash
|
|
736
|
+
npm run jskit:update
|
|
737
|
+
```
|
|
738
|
+
|
|
739
|
+
Keep the generated/app-owned `src/components/ShellLayout.vue` wrapper and let
|
|
740
|
+
it continue forwarding attributes to the package component. No copied drawer,
|
|
741
|
+
`.v-navigation-drawer` CSS, duplicate surface heading, or replacement smoke
|
|
742
|
+
test is required. If the product intentionally wants a denser desktop rail,
|
|
743
|
+
set the supported prop in that wrapper, for example `:rail-width="64"`; omit it
|
|
744
|
+
to keep the Material 3 80px default.
|
|
720
745
|
|
|
721
746
|
`useShellErrorPresentationStore()` exposes the current banner, snackbar, and dialog presentation state behind `ShellErrorHost`.
|
|
722
747
|
|
package/package.json
CHANGED
package/patterns/placements.md
CHANGED
|
@@ -58,8 +58,8 @@ Runtime behavior:
|
|
|
58
58
|
- Runtime resolves the component token as `entry.componentToken || variant.renderers[entry.kind]`.
|
|
59
59
|
- Entries without a resolvable component token do not render.
|
|
60
60
|
- `when()` receives placement context including `app`, `surface`, `target`, `layoutClass`, runtime context, local outlet context, and context contributors.
|
|
61
|
-
- The standard `ShellLayout`
|
|
62
|
-
- On medium and expanded layouts, closing the standard drawer produces an 80px navigation rail by default. Use `railWidth` to configure
|
|
61
|
+
- The standard `ShellLayout` uses Material's 12px outer item inset and one `navigationItemSpacing` value (12px by default) for the icon-to-label gap and widest label's logical-end gap. It remeasures its content-aware width after placement, locale, font, surface, spacing, and layout changes. The surface label belongs once in the top app bar; do not add or restore a duplicate drawer subheader. Use `drawerWidth` only when a product needs a fixed width; do not add consumer `.v-navigation-drawer` overrides.
|
|
62
|
+
- On medium and expanded layouts, closing the standard drawer produces an 80px Material navigation rail by default. Expanded and collapsed icons share one centreline. Use `railWidth` to configure an intentionally denser rail, or `desktopDrawerClosedMode="hidden"` only when another discoverable navigation surface exists.
|
|
63
63
|
- The shell link renderers own rail centring, selected-state treatment, and opaque theme-aware tooltips. Applications should keep supplying the same semantic placement records rather than creating rail-only links or tooltip CSS.
|
|
64
64
|
|
|
65
65
|
CLI and generators:
|
|
@@ -430,13 +430,14 @@ Exports
|
|
|
430
430
|
### `src/client/support/drawerWidth.js`
|
|
431
431
|
Exports
|
|
432
432
|
- `DEFAULT_SHELL_DRAWER_WIDTH`
|
|
433
|
+
- `DEFAULT_SHELL_NAVIGATION_ITEM_SPACING`
|
|
433
434
|
- `DEFAULT_SHELL_RAIL_WIDTH`
|
|
434
435
|
- `MAXIMUM_SHELL_DRAWER_WIDTH`
|
|
435
436
|
- `MINIMUM_SHELL_DRAWER_WIDTH`
|
|
436
|
-
- `SHELL_DRAWER_LABEL_END_GAP`
|
|
437
437
|
- `normalizeShellDrawerWidth(value, fallback = DEFAULT_SHELL_DRAWER_WIDTH)`
|
|
438
|
+
- `normalizeShellNavigationItemSpacing(value, fallback = DEFAULT_SHELL_NAVIGATION_ITEM_SPACING)`
|
|
438
439
|
- `normalizeShellRailWidth(value, fallback = DEFAULT_SHELL_RAIL_WIDTH)`
|
|
439
|
-
- `resolveContentAwareDrawerWidth(measurements = [], { endGap =
|
|
440
|
+
- `resolveContentAwareDrawerWidth(measurements = [], { endGap = DEFAULT_SHELL_NAVIGATION_ITEM_SPACING, minimum = MINIMUM_SHELL_DRAWER_WIDTH, maximum = MAXIMUM_SHELL_DRAWER_WIDTH, fallback = DEFAULT_SHELL_DRAWER_WIDTH } = {})`
|
|
440
441
|
Local functions
|
|
441
442
|
- `clampNumber(value, minimum, maximum)`
|
|
442
443
|
|
|
@@ -41,16 +41,18 @@ Doctor must continue to report a missing managed test.
|
|
|
41
41
|
|
|
42
42
|
## Adaptive shell drawer
|
|
43
43
|
|
|
44
|
-
Use Vuetify Material navigation. Compact close dismisses the temporary drawer
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
44
|
+
Use Vuetify Material navigation. Compact close dismisses the temporary drawer;
|
|
45
|
+
wide layouts default to `desktopDrawerClosedMode="rail"`. Use `hidden` only
|
|
46
|
+
with another navigation affordance.
|
|
47
|
+
|
|
48
|
+
The drawer omits the app bar's surface label. Open and rail icons share a
|
|
49
|
+
centreline. It uses a 12px outer item inset; `navigationItemSpacing` (12px)
|
|
50
|
+
controls icon/label and label/end gaps. The 80px rail centres 48px targets; set
|
|
51
|
+
`railWidth` (for example, `64`) for a denser rail or `drawerWidth` for a fixed
|
|
52
|
+
drawer. The wrapper forwards these props; never override its CSS.
|
|
53
|
+
|
|
54
|
+
Existing apps: commit work and run `npm run jskit:update`. Keep and adapt
|
|
55
|
+
the app-owned shell wrapper and smoke test; do not copy or delete them.
|
|
54
56
|
|
|
55
57
|
## Browser verification
|
|
56
58
|
|