@jskit-ai/agent-docs 0.1.118 → 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,13 +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
- uses one `navigationItemSpacing` value for the icon-to-label gap and the space
685
- between the widest label and the drawer edge. It defaults to 12 CSS pixels and
686
- can be set from 8–24px. The shell remeasures when placements, localization,
687
- fonts, spacing, the active surface, or the window layout change, and clamps
688
- unusually long labels to a safe range. The
689
- closed desktop rail remains 80 CSS pixels wide by default, with every icon and
690
- its Material selected-state indicator centred in the rail. Rail tooltips use
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
691
699
  one explicit opaque theme color pair and open on pointer hover or keyboard
692
700
  focus.
693
701
 
@@ -720,6 +728,21 @@ unsafe share of the viewport or shrink below its touch targets. The app-owned
720
728
  `navigation-item-spacing`, so an application does not need to copy or restyle
721
729
  the drawer implementation.
722
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.
745
+
723
746
  `useShellErrorPresentationStore()` exposes the current banner, snackbar, and dialog presentation state behind `ShellErrorHost`.
724
747
 
725
748
  The simplest direct store usage looks like this:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jskit-ai/agent-docs",
3
- "version": "0.1.118",
3
+ "version": "0.1.119",
4
4
  "description": "Distributed JSKIT agent references, prompts, guides, and generated reference maps.",
5
5
  "type": "module",
6
6
  "files": [
@@ -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` uses one `navigationItemSpacing` value (12px by default) for the icon-to-label gap and the widest label's logical-end gap. It remeasures its content-aware width after placement, locale, font, surface, spacing, and layout changes. 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. Use `railWidth` to configure that width, or `desktopDrawerClosedMode="hidden"` only when another discoverable navigation surface exists.
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:
@@ -41,17 +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
- Wider layouts default to `desktopDrawerClosedMode="rail"`, retaining primary
46
- navigation as a rail. Use `desktopDrawerClosedMode="hidden"` only when another
47
- discoverable navigation affordance exists. Do not create a second drawer/menu
48
- registry or imitate the rail with CSS.
49
-
50
- The drawer uses `navigationItemSpacing` (12px) for icon/label and widest-label/
51
- edge gaps. Its 80px rail centres complete 48px targets and theme-owned
52
- tooltips. Set `railWidth` (for example, `64`) for another density, or
53
- `drawerWidth` for a fixed open width. The app wrapper forwards all three; never
54
- override `.v-navigation-drawer` in an app.
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.
55
56
 
56
57
  ## Browser verification
57
58