@axium/server 0.21.6 → 0.22.1

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.
Files changed (48) hide show
  1. package/build/client/_app/immutable/chunks/{DiVkvWoP.js → ClrcqI2e.js} +1 -1
  2. package/build/client/_app/immutable/chunks/ClrcqI2e.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/ClrcqI2e.js.gz +0 -0
  4. package/build/client/_app/immutable/entry/{app.BLY1SNJg.js → app.DjoW6Jii.js} +2 -2
  5. package/build/client/_app/immutable/entry/app.DjoW6Jii.js.br +0 -0
  6. package/build/client/_app/immutable/entry/app.DjoW6Jii.js.gz +0 -0
  7. package/build/client/_app/immutable/entry/start.DLYE3CWU.js +1 -0
  8. package/build/client/_app/immutable/entry/start.DLYE3CWU.js.br +2 -0
  9. package/build/client/_app/immutable/entry/start.DLYE3CWU.js.gz +0 -0
  10. package/build/client/_app/immutable/nodes/{1.BWoabb9u.js → 1.mYKxjyma.js} +1 -1
  11. package/build/client/_app/immutable/nodes/1.mYKxjyma.js.br +0 -0
  12. package/build/client/_app/immutable/nodes/1.mYKxjyma.js.gz +0 -0
  13. package/build/client/_app/immutable/nodes/{3.DQ6WRWZW.js → 3.CU3TxrCf.js} +1 -1
  14. package/build/client/_app/immutable/nodes/3.CU3TxrCf.js.br +0 -0
  15. package/build/client/_app/immutable/nodes/3.CU3TxrCf.js.gz +0 -0
  16. package/build/client/_app/version.json +1 -1
  17. package/build/client/_app/version.json.br +0 -0
  18. package/build/client/_app/version.json.gz +0 -0
  19. package/build/server/chunks/{1-Bijug02f.js → 1-DKL4tct1.js} +2 -2
  20. package/build/server/chunks/{1-Bijug02f.js.map → 1-DKL4tct1.js.map} +1 -1
  21. package/build/server/chunks/{3-BfZcxicd.js → 3-DrY93pNF.js} +2 -2
  22. package/build/server/chunks/{3-BfZcxicd.js.map → 3-DrY93pNF.js.map} +1 -1
  23. package/build/server/chunks/_page.svelte-DnC0rUFy.js.map +1 -1
  24. package/build/server/chunks/{hooks.server-Dor8OBIf.js → hooks.server-DhFUjybV.js} +15 -3
  25. package/build/server/chunks/hooks.server-DhFUjybV.js.map +1 -0
  26. package/build/server/index.js +2 -2
  27. package/build/server/index.js.map +1 -1
  28. package/build/server/manifest.js +3 -3
  29. package/build/server/manifest.js.map +1 -1
  30. package/dist/api/metadata.js +14 -0
  31. package/dist/apps.d.ts +3 -10
  32. package/dist/apps.js +4 -11
  33. package/dist/io.js +1 -1
  34. package/package.json +2 -2
  35. package/web/lib/AppMenu.svelte +56 -0
  36. package/web/lib/index.ts +3 -0
  37. package/build/client/_app/immutable/chunks/DiVkvWoP.js.br +0 -0
  38. package/build/client/_app/immutable/chunks/DiVkvWoP.js.gz +0 -0
  39. package/build/client/_app/immutable/entry/app.BLY1SNJg.js.br +0 -0
  40. package/build/client/_app/immutable/entry/app.BLY1SNJg.js.gz +0 -0
  41. package/build/client/_app/immutable/entry/start.CLAiA0bh.js +0 -1
  42. package/build/client/_app/immutable/entry/start.CLAiA0bh.js.br +0 -2
  43. package/build/client/_app/immutable/entry/start.CLAiA0bh.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/1.BWoabb9u.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/1.BWoabb9u.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/3.DQ6WRWZW.js.br +0 -0
  47. package/build/client/_app/immutable/nodes/3.DQ6WRWZW.js.gz +0 -0
  48. package/build/server/chunks/hooks.server-Dor8OBIf.js.map +0 -1
@@ -10,12 +10,12 @@ return {
10
10
  assets: new Set(["icons/brands.svg","icons/light.svg","icons/regular.svg","icons/solid.svg","styles.css"]),
11
11
  mimeTypes: {".svg":"image/svg+xml",".css":"text/css"},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.CLAiA0bh.js",app:"_app/immutable/entry/app.BLY1SNJg.js",imports:["_app/immutable/entry/start.CLAiA0bh.js","_app/immutable/chunks/DiVkvWoP.js","_app/immutable/chunks/BZOe2Jko.js","_app/immutable/chunks/uU8Mt6Mg.js","_app/immutable/chunks/BK1-xGGj.js","_app/immutable/chunks/sfKJ2mhH.js","_app/immutable/entry/app.BLY1SNJg.js","_app/immutable/chunks/uU8Mt6Mg.js","_app/immutable/chunks/BK1-xGGj.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BZOe2Jko.js","_app/immutable/chunks/sfKJ2mhH.js","_app/immutable/chunks/DGhIdZ_j.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
13
+ client: {start:"_app/immutable/entry/start.DLYE3CWU.js",app:"_app/immutable/entry/app.DjoW6Jii.js",imports:["_app/immutable/entry/start.DLYE3CWU.js","_app/immutable/chunks/ClrcqI2e.js","_app/immutable/chunks/BZOe2Jko.js","_app/immutable/chunks/uU8Mt6Mg.js","_app/immutable/chunks/BK1-xGGj.js","_app/immutable/chunks/sfKJ2mhH.js","_app/immutable/entry/app.DjoW6Jii.js","_app/immutable/chunks/uU8Mt6Mg.js","_app/immutable/chunks/BK1-xGGj.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BZOe2Jko.js","_app/immutable/chunks/sfKJ2mhH.js","_app/immutable/chunks/DGhIdZ_j.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
15
  __memo(() => import('./chunks/0-B8fDicB8.js')),
16
- __memo(() => import('./chunks/1-Bijug02f.js')),
16
+ __memo(() => import('./chunks/1-DKL4tct1.js')),
17
17
  __memo(() => import('./chunks/2-CVTt4PZM.js')),
18
- __memo(() => import('./chunks/3-BfZcxicd.js')),
18
+ __memo(() => import('./chunks/3-DrY93pNF.js')),
19
19
  __memo(() => import('./chunks/4-3AO_VRm0.js')),
20
20
  __memo(() => import('./chunks/5-sUeA0D7s.js')),
21
21
  __memo(() => import('./chunks/6-BqCt3ZcB.js'))
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"icons/brands.svg\",\"icons/light.svg\",\"icons/regular.svg\",\"icons/solid.svg\",\"styles.css\"]),\n\tmimeTypes: {\".svg\":\"image/svg+xml\",\".css\":\"text/css\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.CLAiA0bh.js\",app:\"_app/immutable/entry/app.BLY1SNJg.js\",imports:[\"_app/immutable/entry/start.CLAiA0bh.js\",\"_app/immutable/chunks/DiVkvWoP.js\",\"_app/immutable/chunks/BZOe2Jko.js\",\"_app/immutable/chunks/uU8Mt6Mg.js\",\"_app/immutable/chunks/BK1-xGGj.js\",\"_app/immutable/chunks/sfKJ2mhH.js\",\"_app/immutable/entry/app.BLY1SNJg.js\",\"_app/immutable/chunks/uU8Mt6Mg.js\",\"_app/immutable/chunks/BK1-xGGj.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BZOe2Jko.js\",\"_app/immutable/chunks/sfKJ2mhH.js\",\"_app/immutable/chunks/DGhIdZ_j.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/_axium/default\",\n\t\t\t\tpattern: /^\\/_axium\\/default\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/account\",\n\t\t\t\tpattern: /^\\/account\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/login\",\n\t\t\t\tpattern: /^\\/login\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/logout\",\n\t\t\t\tpattern: /^\\/logout\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/register\",\n\t\t\t\tpattern: /^\\/register\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"icons/brands.svg\",\"icons/light.svg\",\"icons/regular.svg\",\"icons/solid.svg\",\"styles.css\"]),\n\tmimeTypes: {\".svg\":\"image/svg+xml\",\".css\":\"text/css\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.DLYE3CWU.js\",app:\"_app/immutable/entry/app.DjoW6Jii.js\",imports:[\"_app/immutable/entry/start.DLYE3CWU.js\",\"_app/immutable/chunks/ClrcqI2e.js\",\"_app/immutable/chunks/BZOe2Jko.js\",\"_app/immutable/chunks/uU8Mt6Mg.js\",\"_app/immutable/chunks/BK1-xGGj.js\",\"_app/immutable/chunks/sfKJ2mhH.js\",\"_app/immutable/entry/app.DjoW6Jii.js\",\"_app/immutable/chunks/uU8Mt6Mg.js\",\"_app/immutable/chunks/BK1-xGGj.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BZOe2Jko.js\",\"_app/immutable/chunks/sfKJ2mhH.js\",\"_app/immutable/chunks/DGhIdZ_j.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/_axium/default\",\n\t\t\t\tpattern: /^\\/_axium\\/default\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/account\",\n\t\t\t\tpattern: /^\\/account\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/login\",\n\t\t\t\tpattern: /^\\/login\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/logout\",\n\t\t\t\tpattern: /^\\/logout\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/register\",\n\t\t\t\tpattern: /^\\/register\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"AAAY,MAAC,QAAQ,GAAG,CAAC,MAAM;AAC/B,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,CAAC,IAAI,KAAK;AACV,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACtC;;AAEA,OAAO;AACP,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;AAC3G,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC;AACtD,CAAC,CAAC,EAAE;AACJ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,sCAAsC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACjoB,EAAE,KAAK,EAAE;AACT,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC;AACtC,GAAG;AACH,EAAE,OAAO,EAAE;AACX;AACA,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG;AACH,IAAI,EAAE,EAAE,iBAAiB;AACzB,IAAI,OAAO,EAAE,wBAAwB;AACrC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,UAAU;AAClB,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,QAAQ;AAChB,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,SAAS;AACjB,IAAI,OAAO,EAAE,eAAe;AAC5B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,WAAW;AACnB,IAAI,OAAO,EAAE,iBAAiB;AAC9B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd;AACA,GAAG;AACH,EAAE,kBAAkB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACjC,EAAE,QAAQ,EAAE,YAAY;AACxB;AACA,GAAG,OAAO,IAAI;AACd,EAAE,CAAC;AACH,EAAE,aAAa,EAAE;AACjB;AACA;AACA,CAAC;;AAEW,MAAC,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE;;AAEzB,MAAC,IAAI,GAAG;;;;"}
@@ -5,6 +5,8 @@ import { plugins } from '../plugins.js';
5
5
  import { error, getToken } from '../requests.js';
6
6
  import { addRoute, routes } from '../routes.js';
7
7
  import { getSessionAndUser } from '../auth.js';
8
+ import { apps } from '../apps.js';
9
+ import { pick } from 'utilium';
8
10
  addRoute({
9
11
  path: '/api/metadata',
10
12
  async GET(event) {
@@ -36,3 +38,15 @@ addRoute({
36
38
  };
37
39
  },
38
40
  });
41
+ addRoute({
42
+ path: '/api/apps',
43
+ async GET(event) {
44
+ const result = [];
45
+ for (const app of apps.values()) {
46
+ if (config.apps.disabled.includes(app.id))
47
+ continue;
48
+ result.push(pick(app, ['id', 'name', 'version', 'image', 'icon']));
49
+ }
50
+ return result;
51
+ },
52
+ });
package/dist/apps.d.ts CHANGED
@@ -1,15 +1,8 @@
1
- export interface AppInit {
2
- id: string;
3
- name?: string;
4
- version?: string;
1
+ import type { AppMetadata } from '@axium/core';
2
+ export interface App extends AppMetadata {
5
3
  }
6
4
  export declare const apps: Map<string, App>;
7
- export declare class App {
8
- readonly id: string;
9
- name?: string;
10
- version?: string;
11
- constructor(opt: AppInit);
12
- }
5
+ export declare function addApp(init: AppMetadata): void;
13
6
  export declare const appDisabledContent: {
14
7
  head: string;
15
8
  body: string;
package/dist/apps.js CHANGED
@@ -1,16 +1,9 @@
1
- import { pick } from 'utilium';
2
1
  import { _unique } from './state.js';
3
2
  export const apps = _unique('apps', new Map());
4
- export class App {
5
- id;
6
- name;
7
- version;
8
- constructor(opt) {
9
- if (apps.has(opt.id))
10
- throw new ReferenceError(`App with ID "${opt.id}" already exists.`);
11
- Object.assign(this, pick(opt, 'id', 'name'));
12
- apps.set(this.id, this);
13
- }
3
+ export function addApp(init) {
4
+ if (apps.has(init.id))
5
+ throw new ReferenceError(`App with ID "${init.id}" already exists.`);
6
+ apps.set(init.id, init);
14
7
  }
15
8
  export const appDisabledContent = {
16
9
  head: '<title>App Disabled</title>',
package/dist/io.js CHANGED
@@ -226,5 +226,5 @@ const _2 = (v) => v.toString().padStart(2, '0');
226
226
  * Get a human-readable string for a date that also fits into CLIs well (fixed-width)
227
227
  */
228
228
  export function prettyDate(date) {
229
- return `${date.getFullYear()} ${months[date.getMonth()]} ${_2(date.getDate())} ${_2(date.getHours())}:${_2(date.getMinutes())}:${_2(date.getSeconds())}.${date.getMilliseconds().toString().padStart(3)}`;
229
+ return `${date.getFullYear()} ${months[date.getMonth()]} ${_2(date.getDate())} ${_2(date.getHours())}:${_2(date.getMinutes())}:${_2(date.getSeconds())}.${date.getMilliseconds().toString().padStart(3, '0')}`;
230
230
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axium/server",
3
- "version": "0.21.6",
3
+ "version": "0.22.1",
4
4
  "author": "James Prevett <axium@jamespre.dev> (https://jamespre.dev)",
5
5
  "funding": {
6
6
  "type": "individual",
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "peerDependencies": {
49
49
  "@axium/client": ">=0.1.0",
50
- "@axium/core": ">=0.4.0",
50
+ "@axium/core": ">=0.5.4",
51
51
  "kysely": "^0.28.0",
52
52
  "utilium": "^2.3.8",
53
53
  "zod": "^4.0.5"
@@ -0,0 +1,56 @@
1
+ <script lang="ts">
2
+ import type { AppMetadata } from '@axium/core';
3
+ import Icon from './Icon.svelte';
4
+ import Popover from './Popover.svelte';
5
+
6
+ const { apps }: { apps: AppMetadata[] } = $props();
7
+ </script>
8
+
9
+ <Popover>
10
+ {#snippet toggle()}
11
+ <Icon i="grid" --size="2em" />
12
+ {/snippet}
13
+
14
+ <div class="app-menu">
15
+ {#each apps as app}
16
+ <a class="app-menu-item" href="/{app.id}">
17
+ {#if app.image}
18
+ <img src={app.image} alt={app.name} width="1em" height="1em" />
19
+ {:else if app.icon}
20
+ <Icon i={app.icon} --size="1em" />
21
+ {:else}
22
+ <Icon i="image-circle-xmark" --size="1em" />
23
+ {/if}
24
+ <span>{app.name}</span>
25
+ </a>
26
+ {:else}
27
+ <i>No apps available.</i>
28
+ {/each}
29
+ </div>
30
+ </Popover>
31
+
32
+ <style>
33
+ .app-menu {
34
+ display: flex;
35
+ flex-direction: column;
36
+ gap: 0.1em;
37
+ background-color: #111;
38
+ border: 1px solid #112;
39
+ border-radius: 0.5em;
40
+ }
41
+
42
+ .app-menu-item {
43
+ display: grid;
44
+ grid-template-columns: 2em 1fr;
45
+ gap: 1em;
46
+ padding: 0.5em 1em;
47
+ }
48
+
49
+ .app-menu-item:hover {
50
+ background-color: #223;
51
+ }
52
+
53
+ .app-menu-item:not(:last-child) {
54
+ border-bottom: 1px solid #222;
55
+ }
56
+ </style>
package/web/lib/index.ts CHANGED
@@ -1,3 +1,6 @@
1
+ export { default as AccessControl } from './AccessControl.svelte';
2
+ export { default as AccessControlDialog } from './AccessControlDialog.svelte';
3
+ export { default as AppMenu } from './AppMenu.svelte';
1
4
  export { default as ClipboardCopy } from './ClipboardCopy.svelte';
2
5
  export { default as Dialog } from './Dialog.svelte';
3
6
  export { default as FormDialog } from './FormDialog.svelte';
@@ -1 +0,0 @@
1
- import{l as o,a as r}from"../chunks/DiVkvWoP.js";export{o as load_css,r as start};
@@ -1,2 +0,0 @@
1
- )�import{l as o,a as r}from"../chunks/DiVkvWoP.js";export{o as load_css,r as start};
2
-