@jskit-ai/shell-web 0.1.182 → 0.1.184

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": "@jskit-ai/shell-web",
3
- "version": "0.1.182",
3
+ "version": "0.1.184",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "test": "node --test"
@@ -31,7 +31,7 @@
31
31
  "@mdi/js": "^7.4.47"
32
32
  },
33
33
  "peerDependencies": {
34
- "@jskit-ai/kernel": "0.1.178",
34
+ "@jskit-ai/kernel": "0.1.180",
35
35
  "pinia": "^3.0.4",
36
36
  "vue": "^3.5.13",
37
37
  "vue-router": "^5.0.4",
@@ -32,6 +32,7 @@ placement registry, topology, and adaptive smoke helper exported by
32
32
  ## Invariants
33
33
 
34
34
  - `App.vue`, the shell layout, placements, topology, and route pages agree.
35
+ - Route pages do not add a page header or standalone heading by default.
35
36
  - Navigation uses semantic placements rather than direct component injection.
36
37
  - Compact controls have accessible names and at least 48 CSS-pixel targets.
37
38
  - Cached route/resource state hydrates writable UI state synchronously or with
@@ -1,15 +1,6 @@
1
1
  <template>
2
2
  <section class="home-start-screen d-flex flex-column ga-4">
3
- <header>
4
- <p class="text-overline text-medium-emphasis mb-1">Home</p>
5
- <h1 class="home-start-screen__title">Home base</h1>
6
- <p class="text-body-2 text-medium-emphasis mb-0">
7
- The app runtime is online and ready for the first real workflow.
8
- </p>
9
- </header>
10
-
11
3
  <v-sheet rounded="lg" border class="home-start-screen__panel">
12
- <h2 class="text-h6 mb-2">No activity yet</h2>
13
4
  <p class="text-body-2 text-medium-emphasis mb-0">
14
5
  Recent work, saved records, and next actions will appear here once this app has data.
15
6
  </p>
@@ -19,30 +10,12 @@
19
10
 
20
11
  <style scoped>
21
12
  .home-start-screen {
22
- --home-start-title-size: 2rem;
23
13
  --home-start-panel-padding: 1rem;
24
- }
25
-
26
- .home-start-screen {
27
14
  margin-inline: auto;
28
15
  max-width: 48rem;
29
16
  }
30
17
 
31
- .home-start-screen__title {
32
- font-size: var(--home-start-title-size);
33
- font-weight: 700;
34
- letter-spacing: 0;
35
- line-height: 1.08;
36
- margin: 0 0 0.45rem;
37
- }
38
-
39
18
  .home-start-screen__panel {
40
19
  padding: var(--home-start-panel-padding);
41
20
  }
42
-
43
- @media (max-width: 640px) {
44
- .home-start-screen {
45
- --home-start-title-size: 1.5rem;
46
- }
47
- }
48
21
  </style>
@@ -29,16 +29,9 @@ const health = computed(() => {
29
29
 
30
30
  <template>
31
31
  <section class="home-surface-screen d-flex flex-column ga-4">
32
- <header class="home-surface-screen__header">
33
- <div>
34
- <p class="text-overline text-medium-emphasis mb-1">Home</p>
35
- <h1 class="home-surface-screen__title">Ready</h1>
36
- <p class="text-body-2 text-medium-emphasis mb-0">
37
- Core services are available.
38
- </p>
39
- </div>
32
+ <div class="home-surface-screen__actions">
40
33
  <v-btn color="primary" variant="flat" to="/home/settings/general">Settings</v-btn>
41
- </header>
34
+ </div>
42
35
 
43
36
  <v-sheet rounded="lg" border class="home-surface-screen__panel">
44
37
  <div class="home-surface-screen__status">
@@ -56,23 +49,12 @@ const health = computed(() => {
56
49
 
57
50
  <style scoped>
58
51
  .home-surface-screen {
59
- --home-surface-title-size: 2rem;
60
52
  --home-surface-panel-padding: 1rem;
61
53
  }
62
54
 
63
- .home-surface-screen__header {
64
- align-items: flex-start;
55
+ .home-surface-screen__actions {
65
56
  display: flex;
66
- gap: 1rem;
67
- justify-content: space-between;
68
- }
69
-
70
- .home-surface-screen__title {
71
- font-size: var(--home-surface-title-size);
72
- font-weight: 700;
73
- letter-spacing: 0;
74
- line-height: 1.1;
75
- margin: 0 0 0.4rem;
57
+ justify-content: flex-end;
76
58
  }
77
59
 
78
60
  .home-surface-screen__panel {
@@ -90,15 +72,7 @@ const health = computed(() => {
90
72
  }
91
73
 
92
74
  @media (max-width: 640px) {
93
- .home-surface-screen {
94
- --home-surface-title-size: 1.5rem;
95
- }
96
-
97
- .home-surface-screen__header {
98
- flex-direction: column;
99
- }
100
-
101
- .home-surface-screen__header :deep(.v-btn) {
75
+ .home-surface-screen__actions :deep(.v-btn) {
102
76
  min-height: 48px;
103
77
  width: 100%;
104
78
  }
@@ -16,12 +16,9 @@ const drawerDefaultOpenModel = computed({
16
16
 
17
17
  <template>
18
18
  <section class="settings-general-screen d-flex flex-column ga-4">
19
- <div>
20
- <h2 class="text-h6 mb-2">Navigation</h2>
21
- <p class="text-body-2 text-medium-emphasis mb-0">
22
- On wider screens, collapsed navigation remains available as a rail. Phone layouts close the drawer and keep primary navigation in the bottom bar.
23
- </p>
24
- </div>
19
+ <p class="text-body-2 text-medium-emphasis mb-0">
20
+ On wider screens, collapsed navigation remains available as a rail. Phone layouts close the drawer and keep primary navigation in the bottom bar.
21
+ </p>
25
22
 
26
23
  <v-switch
27
24
  v-model="drawerDefaultOpenModel"
@@ -5,12 +5,6 @@ import { RouterView } from "vue-router";
5
5
 
6
6
  <template>
7
7
  <section class="settings-shell d-flex flex-column ga-4">
8
- <header>
9
- <p class="text-overline text-medium-emphasis mb-1">Settings</p>
10
- <h1 class="settings-shell__title">Home settings</h1>
11
- <p class="text-body-2 text-medium-emphasis mb-0">Configure shell behavior for this surface.</p>
12
- </header>
13
-
14
8
  <v-sheet rounded="lg" border class="settings-shell__panel">
15
9
  <div class="settings-shell__body">
16
10
  <nav class="settings-shell__nav" aria-label="Home settings sections">
@@ -29,18 +23,9 @@ import { RouterView } from "vue-router";
29
23
 
30
24
  <style scoped>
31
25
  .settings-shell {
32
- --settings-shell-title-size: 1.85rem;
33
26
  --settings-shell-panel-padding: 1rem;
34
27
  }
35
28
 
36
- .settings-shell__title {
37
- font-size: var(--settings-shell-title-size);
38
- font-weight: 650;
39
- letter-spacing: 0;
40
- line-height: 1.15;
41
- margin: 0 0 0.35rem;
42
- }
43
-
44
29
  .settings-shell__panel {
45
30
  overflow: hidden;
46
31
  }
@@ -81,10 +66,6 @@ import { RouterView } from "vue-router";
81
66
  }
82
67
 
83
68
  @media (max-width: 960px) {
84
- .settings-shell {
85
- --settings-shell-title-size: 1.35rem;
86
- }
87
-
88
69
  .settings-shell__body {
89
70
  grid-template-columns: 1fr;
90
71
  }
@@ -30,6 +30,7 @@ a filename alone.
30
30
  ## Invariants
31
31
 
32
32
  - File routes and placement destinations agree.
33
+ - Route pages do not add a page header or standalone heading by default.
33
34
  - Placement ids describe product ownership, not the authoring mechanism.
34
35
  - Child links share an explicit section owner.
35
36
  - Topology maps each semantic placement to concrete responsive outlets.
@@ -1,6 +1,5 @@
1
1
  <template>
2
- <section aria-labelledby="reports-activity-title">
3
- <h2 id="reports-activity-title" class="text-h5 mb-2">Activity</h2>
2
+ <section>
4
3
  <p class="text-body-1 text-medium-emphasis mb-0">
5
4
  Recent catalogue changes appear here.
6
5
  </p>
@@ -1,6 +1,5 @@
1
1
  <template>
2
- <section aria-labelledby="reports-overview-title">
3
- <h2 id="reports-overview-title" class="text-h5 mb-2">Overview</h2>
2
+ <section>
4
3
  <p class="text-body-1 text-medium-emphasis mb-0">
5
4
  Your reading and catalogue summary appears here.
6
5
  </p>
@@ -5,14 +5,6 @@ import { RouterView } from "vue-router";
5
5
 
6
6
  <template>
7
7
  <section class="reports-section d-flex flex-column ga-4">
8
- <header>
9
- <p class="text-overline text-medium-emphasis mb-1">Insights</p>
10
- <h1 class="text-h4 font-weight-medium mb-1">Reports</h1>
11
- <p class="text-body-2 text-medium-emphasis mb-0">
12
- Review catalogue activity and completion trends.
13
- </p>
14
- </header>
15
-
16
8
  <nav aria-label="Report sections">
17
9
  <v-tabs density="comfortable">
18
10
  <ShellOutlet target="reports:section-nav" />
@@ -54,7 +54,7 @@ test("shell-web application pattern exposes surface-derived settings outlets", a
54
54
 
55
55
  assert.match(source, /target="home-settings:primary-menu"/);
56
56
  assert.match(source, /class="settings-shell d-flex flex-column ga-4"/);
57
- assert.match(source, /--settings-shell-title-size/);
57
+ assert.match(source, /--settings-shell-panel-padding/);
58
58
  assert.doesNotMatch(source, /generated-ui/u);
59
59
  assert.doesNotMatch(source, /default-link-component-token/);
60
60
  assert.match(source, /<RouterView \/>/);
@@ -538,9 +538,9 @@ test("shell-web pattern home page relies on adaptive navigation instead of dead
538
538
  );
539
539
 
540
540
  assert.match(source, /class="home-surface-screen d-flex flex-column ga-4"/);
541
- assert.match(source, /--home-surface-title-size/);
541
+ assert.match(source, /--home-surface-panel-padding/);
542
542
  assert.doesNotMatch(source, /generated-ui/u);
543
- assert.match(source, /Core services are available\./);
543
+ assert.match(source, /Service health/);
544
544
  assert.match(source, /to="\/home\/settings\/general"/);
545
545
  assert.doesNotMatch(source, /Use bottom navigation|Replace this content|Main public surface/);
546
546
  assert.doesNotMatch(source, /\/console/);