@jskit-ai/workspaces-web 0.1.4 → 0.1.6

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.
@@ -1,7 +1,7 @@
1
1
  export default Object.freeze({
2
2
  packageVersion: 1,
3
3
  packageId: "@jskit-ai/workspaces-web",
4
- version: "0.1.4",
4
+ version: "0.1.6",
5
5
  kind: "runtime",
6
6
  description: "Workspace web module: workspace selector, tools widget, workspace surfaces, and members/settings UI.",
7
7
  dependsOn: [
@@ -57,13 +57,7 @@ export default Object.freeze({
57
57
  host: "admin-settings",
58
58
  position: "primary-menu",
59
59
  surfaces: ["admin"],
60
- source: "templates/src/pages/admin/workspace/settings/index.vue"
61
- },
62
- {
63
- host: "admin-settings",
64
- position: "forms",
65
- surfaces: ["admin"],
66
- source: "templates/src/pages/admin/workspace/settings/index.vue"
60
+ source: "templates/src/pages/admin/workspace/settings.vue"
67
61
  }
68
62
  ],
69
63
  contributions: [
@@ -115,13 +109,13 @@ export default Object.freeze({
115
109
  source: "mutations.text#users-web-placement-block"
116
110
  },
117
111
  {
118
- id: "users.workspace.settings.form",
112
+ id: "users.workspace.settings.general",
119
113
  host: "admin-settings",
120
- position: "forms",
114
+ position: "primary-menu",
121
115
  surfaces: ["admin"],
122
116
  order: 100,
123
- componentToken: "users.web.workspace-settings.element",
124
- source: "mutations.text#users-web-workspace-settings-form-placement"
117
+ componentToken: "users.web.shell.surface-aware-menu-link-item",
118
+ source: "mutations.text#users-web-workspace-settings-general-placement"
125
119
  }
126
120
  ]
127
121
  }
@@ -130,8 +124,8 @@ export default Object.freeze({
130
124
  mutations: {
131
125
  dependencies: {
132
126
  runtime: {
133
- "@jskit-ai/workspaces-core": "0.1.4",
134
- "@jskit-ai/users-web": "0.1.43"
127
+ "@jskit-ai/workspaces-core": "0.1.6",
128
+ "@jskit-ai/users-web": "0.1.45"
135
129
  },
136
130
  dev: {}
137
131
  },
@@ -234,11 +228,23 @@ export default Object.freeze({
234
228
  in: ["personal", "workspaces"]
235
229
  }
236
230
  },
231
+ {
232
+ from: "templates/src/pages/admin/workspace/settings.vue",
233
+ toSurface: "admin",
234
+ toSurfacePath: "workspace/settings.vue",
235
+ reason: "Install workspace settings shell route scaffold for workspaces-web workspace admin UI.",
236
+ category: "workspaces-web",
237
+ id: "users-web-page-admin-workspace-settings-shell",
238
+ when: {
239
+ config: "tenancyMode",
240
+ in: ["personal", "workspaces"]
241
+ }
242
+ },
237
243
  {
238
244
  from: "templates/src/pages/admin/workspace/settings/index.vue",
239
245
  toSurface: "admin",
240
246
  toSurfacePath: "workspace/settings/index.vue",
241
- reason: "Install workspace settings page scaffold for workspaces-web workspace admin UI.",
247
+ reason: "Install workspace settings landing page scaffold for workspaces-web workspace admin UI.",
242
248
  category: "workspaces-web",
243
249
  id: "users-web-page-admin-workspace-settings",
244
250
  when: {
@@ -287,12 +293,12 @@ export default Object.freeze({
287
293
  op: "append-text",
288
294
  file: "src/placement.js",
289
295
  position: "bottom",
290
- skipIfContains: "id: \"users.workspace.settings.form\"",
296
+ skipIfContains: "id: \"users.workspace.settings.general\"",
291
297
  value:
292
- "\naddPlacement({\n id: \"users.workspace.settings.form\",\n host: \"admin-settings\",\n position: \"forms\",\n surfaces: [\"admin\"],\n order: 100,\n componentToken: \"users.web.workspace-settings.element\"\n});\n",
293
- reason: "Append workspace settings form placement into app-owned placement registry.",
298
+ "\naddPlacement({\n id: \"users.workspace.settings.general\",\n host: \"admin-settings\",\n position: \"primary-menu\",\n surfaces: [\"admin\"],\n order: 100,\n componentToken: \"users.web.shell.surface-aware-menu-link-item\",\n props: {\n label: \"General\",\n surface: \"admin\",\n workspaceSuffix: \"/workspace/settings\",\n nonWorkspaceSuffix: \"/workspace/settings\"\n },\n when: ({ auth }) => Boolean(auth?.authenticated)\n});\n",
299
+ reason: "Append workspace settings general-page placement into app-owned placement registry.",
294
300
  category: "workspaces-web",
295
- id: "users-web-workspace-settings-form-placement",
301
+ id: "users-web-workspace-settings-general-placement",
296
302
  when: {
297
303
  config: "tenancyMode",
298
304
  in: ["personal", "workspaces"]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jskit-ai/workspaces-web",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "test": "node --test"
@@ -10,6 +10,6 @@
10
10
  "./client/providers/WorkspacesWebClientProvider": "./src/client/providers/WorkspacesWebClientProvider.js"
11
11
  },
12
12
  "dependencies": {
13
- "@jskit-ai/users-web": "0.1.43"
13
+ "@jskit-ai/users-web": "0.1.45"
14
14
  }
15
15
  }
@@ -1,17 +1,7 @@
1
- <template>
2
- <section class="settings-page">
3
- <ShellOutlet host="admin-settings" position="primary-menu" />
4
- <ShellOutlet host="admin-settings" position="forms" />
5
- </section>
6
- </template>
7
-
8
1
  <script setup>
9
- import ShellOutlet from "@jskit-ai/shell-web/client/components/ShellOutlet";
2
+ import WorkspaceSettingsClientElement from "@jskit-ai/users-web/client/components/WorkspaceSettingsClientElement";
10
3
  </script>
11
4
 
12
- <style scoped>
13
- .settings-page {
14
- display: grid;
15
- gap: 1rem;
16
- }
17
- </style>
5
+ <template>
6
+ <WorkspaceSettingsClientElement />
7
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup>
2
+ import ShellOutlet from "@jskit-ai/shell-web/client/components/ShellOutlet";
3
+ import { RouterView } from "vue-router";
4
+ </script>
5
+
6
+ <template>
7
+ <section class="settings-shell d-flex flex-column ga-4">
8
+ <v-card rounded="lg" elevation="1" border>
9
+ <v-card-item>
10
+ <v-card-title>Workspace settings</v-card-title>
11
+ <v-card-subtitle>Configure the current workspace and its members.</v-card-subtitle>
12
+ </v-card-item>
13
+ <v-divider />
14
+ <v-card-text class="pt-4">
15
+ <v-row no-gutters>
16
+ <v-col cols="12" md="3" lg="2" class="pr-md-4 mb-4 mb-md-0">
17
+ <v-list nav density="comfortable" rounded="lg" border>
18
+ <ShellOutlet host="admin-settings" position="primary-menu" />
19
+ </v-list>
20
+ </v-col>
21
+
22
+ <v-col cols="12" md="9" lg="10">
23
+ <RouterView />
24
+ </v-col>
25
+ </v-row>
26
+ </v-card-text>
27
+ </v-card>
28
+ </section>
29
+ </template>
@@ -24,15 +24,14 @@ function findContribution(id) {
24
24
 
25
25
  test("workspaces-web admin settings template exposes surface-derived settings outlets", async () => {
26
26
  const source = await readFile(
27
- path.join(PACKAGE_DIR, "templates", "src", "pages", "admin", "workspace", "settings", "index.vue"),
27
+ path.join(PACKAGE_DIR, "templates", "src", "pages", "admin", "workspace", "settings.vue"),
28
28
  "utf8"
29
29
  );
30
30
 
31
31
  assert.match(source, /<ShellOutlet host="admin-settings" position="primary-menu" \/>/);
32
- assert.match(source, /<ShellOutlet host="admin-settings" position="forms" \/>/);
33
32
  });
34
33
 
35
- test("workspaces-web descriptor metadata advertises admin settings outlets and form placement on the derived host", () => {
34
+ test("workspaces-web descriptor metadata advertises admin settings outlets and general-page placement on the derived host", () => {
36
35
  assert.deepEqual(
37
36
  readSettingsOutlets(),
38
37
  [
@@ -40,24 +39,18 @@ test("workspaces-web descriptor metadata advertises admin settings outlets and f
40
39
  host: "admin-settings",
41
40
  position: "primary-menu",
42
41
  surfaces: ["admin"],
43
- source: "templates/src/pages/admin/workspace/settings/index.vue"
44
- },
45
- {
46
- host: "admin-settings",
47
- position: "forms",
48
- surfaces: ["admin"],
49
- source: "templates/src/pages/admin/workspace/settings/index.vue"
42
+ source: "templates/src/pages/admin/workspace/settings.vue"
50
43
  }
51
44
  ]
52
45
  );
53
46
 
54
- assert.deepEqual(findContribution("users.workspace.settings.form"), {
55
- id: "users.workspace.settings.form",
47
+ assert.deepEqual(findContribution("users.workspace.settings.general"), {
48
+ id: "users.workspace.settings.general",
56
49
  host: "admin-settings",
57
- position: "forms",
50
+ position: "primary-menu",
58
51
  surfaces: ["admin"],
59
52
  order: 100,
60
- componentToken: "users.web.workspace-settings.element",
61
- source: "mutations.text#users-web-workspace-settings-form-placement"
53
+ componentToken: "users.web.shell.surface-aware-menu-link-item",
54
+ source: "mutations.text#users-web-workspace-settings-general-placement"
62
55
  });
63
56
  });