@axium/server 0.22.7 → 0.22.8

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 (55) hide show
  1. package/build/client/_app/immutable/chunks/{B4jrgZ2v.js → Dv2cmqMg.js} +1 -1
  2. package/build/client/_app/immutable/chunks/Dv2cmqMg.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/Dv2cmqMg.js.gz +0 -0
  4. package/build/client/_app/immutable/entry/{app.CI36K0Ii.js → app.DBx5Wo_5.js} +2 -2
  5. package/build/client/_app/immutable/entry/app.DBx5Wo_5.js.br +0 -0
  6. package/build/client/_app/immutable/entry/app.DBx5Wo_5.js.gz +0 -0
  7. package/build/client/_app/immutable/entry/start.Bw8nbIFU.js +1 -0
  8. package/build/client/_app/immutable/entry/start.Bw8nbIFU.js.br +2 -0
  9. package/build/client/_app/immutable/entry/start.Bw8nbIFU.js.gz +0 -0
  10. package/build/client/_app/immutable/nodes/{1.C41FMzGJ.js → 1.DRBCZnVN.js} +1 -1
  11. package/build/client/_app/immutable/nodes/1.DRBCZnVN.js.br +0 -0
  12. package/build/client/_app/immutable/nodes/1.DRBCZnVN.js.gz +0 -0
  13. package/build/client/_app/version.json +1 -1
  14. package/build/client/_app/version.json.br +0 -0
  15. package/build/client/_app/version.json.gz +0 -0
  16. package/build/server/chunks/{1-DLB141jg.js → 1-BPFgHQsA.js} +2 -2
  17. package/build/server/chunks/{1-DLB141jg.js.map → 1-BPFgHQsA.js.map} +1 -1
  18. package/build/server/chunks/{hooks.server-DUHg5UuJ.js → hooks.server-C8DAZtT_.js} +2 -2
  19. package/build/server/chunks/{hooks.server-DUHg5UuJ.js.map → hooks.server-C8DAZtT_.js.map} +1 -1
  20. package/build/server/index.js +2 -2
  21. package/build/server/index.js.map +1 -1
  22. package/build/server/manifest.js +2 -2
  23. package/build/server/manifest.js.map +1 -1
  24. package/package.json +2 -4
  25. package/routes/account/+page.svelte +1 -1
  26. package/routes/login/+page.svelte +1 -1
  27. package/routes/logout/+page.svelte +1 -1
  28. package/routes/register/+page.svelte +1 -1
  29. package/svelte.config.js +0 -1
  30. package/build/client/_app/immutable/chunks/B4jrgZ2v.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/B4jrgZ2v.js.gz +0 -0
  32. package/build/client/_app/immutable/entry/app.CI36K0Ii.js.br +0 -0
  33. package/build/client/_app/immutable/entry/app.CI36K0Ii.js.gz +0 -0
  34. package/build/client/_app/immutable/entry/start.CChz4wnJ.js +0 -1
  35. package/build/client/_app/immutable/entry/start.CChz4wnJ.js.br +0 -0
  36. package/build/client/_app/immutable/entry/start.CChz4wnJ.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/1.C41FMzGJ.js.br +0 -0
  38. package/build/client/_app/immutable/nodes/1.C41FMzGJ.js.gz +0 -0
  39. package/web/lib/AccessControl.svelte +0 -37
  40. package/web/lib/AccessControlDialog.svelte +0 -12
  41. package/web/lib/AppMenu.svelte +0 -34
  42. package/web/lib/ClipboardCopy.svelte +0 -42
  43. package/web/lib/Dialog.svelte +0 -51
  44. package/web/lib/FormDialog.svelte +0 -96
  45. package/web/lib/Icon.svelte +0 -18
  46. package/web/lib/Login.svelte +0 -36
  47. package/web/lib/Logout.svelte +0 -24
  48. package/web/lib/NumberBar.svelte +0 -31
  49. package/web/lib/Popover.svelte +0 -46
  50. package/web/lib/Register.svelte +0 -32
  51. package/web/lib/Toast.svelte +0 -35
  52. package/web/lib/Upload.svelte +0 -60
  53. package/web/lib/UserCard.svelte +0 -48
  54. package/web/lib/WithContextMenu.svelte +0 -73
  55. package/web/lib/index.ts +0 -16
@@ -10,10 +10,10 @@ 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.CChz4wnJ.js",app:"_app/immutable/entry/app.CI36K0Ii.js",imports:["_app/immutable/entry/start.CChz4wnJ.js","_app/immutable/chunks/B4jrgZ2v.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.CI36K0Ii.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.Bw8nbIFU.js",app:"_app/immutable/entry/app.DBx5Wo_5.js",imports:["_app/immutable/entry/start.Bw8nbIFU.js","_app/immutable/chunks/Dv2cmqMg.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.DBx5Wo_5.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-DLB141jg.js')),
16
+ __memo(() => import('./chunks/1-BPFgHQsA.js')),
17
17
  __memo(() => import('./chunks/2-CVTt4PZM.js')),
18
18
  __memo(() => import('./chunks/3-BLvjl1b0.js')),
19
19
  __memo(() => import('./chunks/4-_Z3XM2ZU.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.CChz4wnJ.js\",app:\"_app/immutable/entry/app.CI36K0Ii.js\",imports:[\"_app/immutable/entry/start.CChz4wnJ.js\",\"_app/immutable/chunks/B4jrgZ2v.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.CI36K0Ii.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;;;;"}
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.Bw8nbIFU.js\",app:\"_app/immutable/entry/app.DBx5Wo_5.js\",imports:[\"_app/immutable/entry/start.Bw8nbIFU.js\",\"_app/immutable/chunks/Dv2cmqMg.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.DBx5Wo_5.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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axium/server",
3
- "version": "0.22.7",
3
+ "version": "0.22.8",
4
4
  "author": "James Prevett <axium@jamespre.dev> (https://jamespre.dev)",
5
5
  "funding": {
6
6
  "type": "individual",
@@ -21,8 +21,6 @@
21
21
  "exports": {
22
22
  ".": "./dist/index.js",
23
23
  "./*": "./dist/*.js",
24
- "./components": "./web/lib/index.js",
25
- "./components/*": "./web/lib/*.svelte",
26
24
  "./$hooks": "./web/hooks.server.ts",
27
25
  "./$routes": "./routes",
28
26
  "./$template": "./web/template.html",
@@ -46,7 +44,7 @@
46
44
  "clean": "rm -rf build .svelte-kit node_modules/{.vite,.vite-temp}"
47
45
  },
48
46
  "peerDependencies": {
49
- "@axium/client": ">=0.1.0",
47
+ "@axium/client": ">=0.2.0",
50
48
  "@axium/core": ">=0.5.4",
51
49
  "kysely": "^0.28.0",
52
50
  "utilium": "^2.3.8",
@@ -10,7 +10,7 @@
10
10
  updateUser,
11
11
  } from '@axium/client/user';
12
12
  import { getUserImage } from '@axium/core/user';
13
- import { ClipboardCopy, FormDialog, Icon, Logout } from '@axium/server/components';
13
+ import { ClipboardCopy, FormDialog, Icon, Logout } from '@axium/client/components';
14
14
  import type { PageProps } from './$types';
15
15
 
16
16
  const { data }: PageProps = $props();
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">
2
- import Login from '@axium/server/components/Login';
2
+ import Login from '@axium/client/components/Login';
3
3
  </script>
4
4
 
5
5
  <svelte:head>
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">
2
- import Logout from '@axium/server/components/Logout';
2
+ import Logout from '@axium/client/components/Logout';
3
3
  </script>
4
4
 
5
5
  <Logout fullPage />
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">
2
- import Register from '@axium/server/components/Register';
2
+ import Register from '@axium/client/components/Register';
3
3
  </script>
4
4
 
5
5
  <svelte:head>
package/svelte.config.js CHANGED
@@ -20,7 +20,6 @@ export default {
20
20
  adapter: node(),
21
21
  files: {
22
22
  routes: config.web.routes,
23
- lib: fixed('web/lib'),
24
23
  assets: fixed('assets'),
25
24
  appTemplate: fixed('web/template.html'),
26
25
  hooks: {
@@ -1 +0,0 @@
1
- import{l as o,a as r}from"../chunks/B4jrgZ2v.js";export{o as load_css,r as start};
@@ -1,37 +0,0 @@
1
- <script lang="ts">
2
- import UserCard from './UserCard.svelte';
3
- import type { Permission, AccessControl } from '@axium/core/access';
4
- import { permissionNames } from '@axium/core/access';
5
- import type { Entries } from 'utilium';
6
-
7
- const { control, editable }: { control: AccessControl; editable: boolean } = $props();
8
-
9
- const perm = $derived(permissionNames[control.permission as Permission]);
10
-
11
- const permEntries = Object.entries(permissionNames) as any as Entries<typeof permissionNames>;
12
- </script>
13
-
14
- <div class="AccessControl">
15
- {#if !control.user}<i>Unknown</i>
16
- {:else}
17
- <UserCard user={control.user} />
18
- {#if editable}
19
- <input type="hidden" name="userId" value={control.user.id} />
20
- <select name="permission">
21
- {#each permEntries as [key, name]}
22
- <option value={key} selected={key == control.permission}>{name}</option>
23
- {/each}
24
- </select>
25
- {:else}
26
- <span>{perm}</span>
27
- {/if}
28
- {/if}
29
- </div>
30
-
31
- <style>
32
- .AccessControl {
33
- display: flex;
34
- gap: 1em;
35
- padding: 1em 2em;
36
- }
37
- </style>
@@ -1,12 +0,0 @@
1
- <script lang="ts">
2
- import FormDialog from './FormDialog.svelte';
3
- import AccessControl from './AccessControl.svelte';
4
-
5
- let { item, editable } = $props();
6
- </script>
7
-
8
- <FormDialog submitText="Save">
9
- {#each item.acl as control}
10
- <AccessControl {control} {editable} />
11
- {/each}
12
- </FormDialog>
@@ -1,34 +0,0 @@
1
- <script lang="ts">
2
- import { fetchAPI } from '@axium/client/requests';
3
- import Icon from './Icon.svelte';
4
- import Popover from './Popover.svelte';
5
- </script>
6
-
7
- <Popover>
8
- {#snippet toggle()}
9
- <button style:display="contents">
10
- <Icon i="grid" --size="1.5em" />
11
- </button>
12
- {/snippet}
13
-
14
- {#await fetchAPI('GET', 'apps')}
15
- <i>Loading...</i>
16
- {:then apps}
17
- {#each apps as app}
18
- <a class="menu-item" href="/{app.id}">
19
- {#if app.image}
20
- <img src={app.image} alt={app.name} width="1em" height="1em" />
21
- {:else if app.icon}
22
- <Icon i={app.icon} --size="1.5em" />
23
- {:else}
24
- <Icon i="image-circle-xmark" --size="1.5em" />
25
- {/if}
26
- <span>{app.name}</span>
27
- </a>
28
- {:else}
29
- <i>No apps available.</i>
30
- {/each}
31
- {:catch}
32
- <i>Couldn't load apps.</i>
33
- {/await}
34
- </Popover>
@@ -1,42 +0,0 @@
1
- <script lang="ts">
2
- import { fade } from 'svelte/transition';
3
- import { wait } from 'utilium';
4
- import Icon from './Icon.svelte';
5
-
6
- const { value, type = 'text/plain' }: { value: BlobPart; type?: string } = $props();
7
-
8
- let success = $state(false);
9
-
10
- async function onclick() {
11
- const blob = new Blob([value], { type });
12
- const item = new ClipboardItem({ [type]: blob });
13
- await navigator.clipboard.write([item]);
14
- success = true;
15
- await wait(3000);
16
- success = false;
17
- }
18
- </script>
19
-
20
- <button {onclick}>
21
- {#if success}
22
- <span transition:fade><Icon i="check" /></span>
23
- {:else}
24
- <span transition:fade><Icon i="copy" /></span>
25
- {/if}
26
- </button>
27
-
28
- <style>
29
- button {
30
- position: relative;
31
- display: inline-block;
32
- width: 1em;
33
- height: 1em;
34
- border: none;
35
- background: transparent;
36
- }
37
-
38
- span {
39
- position: absolute;
40
- inset: 0;
41
- }
42
- </style>
@@ -1,51 +0,0 @@
1
- <script>
2
- let { children, dialog = $bindable(), ...rest } = $props();
3
- </script>
4
-
5
- <dialog bind:this={dialog} {...rest}>
6
- {@render children()}
7
- </dialog>
8
-
9
- <!-- svelte-ignore css_unused_selector -->
10
- <style>
11
- dialog {
12
- border-radius: 1em;
13
- background: #111;
14
- border: 1px solid #8888;
15
- padding: 1em;
16
-
17
- form {
18
- display: contents;
19
- }
20
- }
21
-
22
- dialog::backdrop {
23
- background: #0003;
24
- }
25
-
26
- dialog[open] {
27
- animation: zoom 0.25s cubic-bezier(0.35, 1.55, 0.65, 1);
28
- }
29
-
30
- @keyframes zoom {
31
- from {
32
- transform: scale(0.95);
33
- }
34
- to {
35
- transform: scale(1);
36
- }
37
- }
38
-
39
- dialog[open]::backdrop {
40
- animation: fade 0.25s ease-out;
41
- }
42
-
43
- @keyframes fade {
44
- from {
45
- opacity: 0;
46
- }
47
- to {
48
- opacity: 1;
49
- }
50
- }
51
- </style>
@@ -1,96 +0,0 @@
1
- <script lang="ts">
2
- import Dialog from './Dialog.svelte';
3
-
4
- function resolveRedirectAfter() {
5
- const url = new URL(location.href);
6
- const maybe = url.searchParams.get('after');
7
- if (!maybe || maybe == url.pathname) return '/';
8
- for (const prefix of ['/api/']) if (maybe.startsWith(prefix)) return '/';
9
- return maybe || '/';
10
- }
11
-
12
- let {
13
- children,
14
- dialog = $bindable(),
15
- submitText = 'Submit',
16
- cancel = () => {},
17
- submit = (data: object): Promise<any> => Promise.resolve(),
18
- pageMode = false,
19
- submitDanger = false,
20
- header,
21
- footer,
22
- ...rest
23
- }: {
24
- children(): any;
25
- dialog?: HTMLDialogElement;
26
- /** Change the text displayed for the submit button */
27
- submitText?: string;
28
- /** Basically a callback for when the dialog is canceled */
29
- cancel?(): unknown;
30
- /** Called on submission, this should do the actual submission */
31
- submit?(data: Record<string, FormDataEntryValue>): Promise<any>;
32
- /** Whether to display the dialog as a full-page form */
33
- pageMode?: boolean;
34
- submitDanger?: boolean;
35
- header?(): any;
36
- footer?(): any;
37
- } = $props();
38
-
39
- let error = $state<string>();
40
-
41
- $effect(() => {
42
- if (pageMode) dialog!.showModal();
43
- });
44
-
45
- function onclose(e: MouseEvent) {
46
- e.preventDefault();
47
- cancel();
48
- }
49
-
50
- function onsubmit(e: SubmitEvent & { currentTarget: HTMLFormElement }) {
51
- e.preventDefault();
52
- const data = Object.fromEntries(new FormData(e.currentTarget));
53
- submit(data)
54
- .then(result => {
55
- if (pageMode) window.location.href = resolveRedirectAfter();
56
- else dialog!.close();
57
- })
58
- .catch((e: any) => {
59
- if (!e) error = 'An unknown error occurred';
60
- else if (typeof e == 'object' && 'message' in e) error = e.message;
61
- else error = e;
62
- });
63
- }
64
- </script>
65
-
66
- {#snippet submitButton()}
67
- <button type="submit" class={['submit', submitDanger && 'danger']}>{submitText}</button>
68
- {/snippet}
69
-
70
- <Dialog bind:dialog {onclose} {...rest}>
71
- {@render header?.()}
72
- <form {onsubmit} class="main" method="dialog">
73
- {#if error}
74
- <div class="error">{error}</div>
75
- {/if}
76
- {@render children()}
77
- {#if pageMode}
78
- {@render submitButton()}
79
- {:else}
80
- <div class="actions">
81
- <button type="button" onclick={() => dialog!.close()}>Cancel</button>
82
- {@render submitButton()}
83
- </div>
84
- {/if}
85
- </form>
86
- {@render footer?.()}
87
- </Dialog>
88
-
89
- <style>
90
- .actions {
91
- display: flex;
92
- gap: 1em;
93
- flex-direction: row;
94
- justify-content: space-between;
95
- }
96
- </style>
@@ -1,18 +0,0 @@
1
- <script lang="ts">
2
- const { i, ...rest } = $props();
3
- const [style, id] = $derived(i.includes('/') ? i.split('/') : ['solid', i]);
4
- const href = $derived(`/icons/${style}.svg#${id}`);
5
- </script>
6
-
7
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="1em" height="1em" {...rest}>
8
- <use {href} />
9
- </svg>
10
-
11
- <style>
12
- svg {
13
- width: var(--size, 1em);
14
- height: var(--size, 1em);
15
- display: inline-block;
16
- fill: var(--fill, #bbb);
17
- }
18
- </style>
@@ -1,36 +0,0 @@
1
- <script lang="ts">
2
- import { loginByEmail } from '@axium/client/user';
3
- import FormDialog from './FormDialog.svelte';
4
-
5
- let { dialog = $bindable(), fullPage = false }: { dialog?: HTMLDialogElement; fullPage?: boolean } = $props();
6
-
7
- function submit(data: { email: string }) {
8
- if (typeof data.email != 'string') {
9
- throw 'Tried to upload a file for an email. Huh?!';
10
- }
11
-
12
- return loginByEmail(data.email);
13
- }
14
- </script>
15
-
16
- <FormDialog bind:dialog submitText="Login" {submit} pageMode={fullPage}>
17
- <div>
18
- <label for="email">Email</label>
19
- <input name="email" type="email" required />
20
- </div>
21
- {#snippet footer()}
22
- {#if fullPage}
23
- <div class="footer">
24
- <a href="/register">Register instead</a>
25
- </div>
26
- {/if}
27
- {/snippet}
28
- </FormDialog>
29
-
30
- <style>
31
- .footer {
32
- margin-bottom: 1em;
33
- text-align: center;
34
- background: none;
35
- }
36
- </style>
@@ -1,24 +0,0 @@
1
- <script lang="ts">
2
- import { logoutCurrentSession } from '@axium/client/user';
3
- import FormDialog from './FormDialog.svelte';
4
-
5
- let { dialog = $bindable(), fullPage = false }: { dialog?: HTMLDialogElement; fullPage?: boolean } = $props();
6
- </script>
7
-
8
- <FormDialog
9
- pageMode={fullPage}
10
- bind:dialog
11
- submitText="Log Out"
12
- submit={() => logoutCurrentSession().then(() => (window.location.href = '/'))}
13
- >
14
- <p>Are you sure you want to log out?</p>
15
- {#if fullPage}
16
- <button
17
- onclick={e => {
18
- e.preventDefault();
19
- dialog!.close();
20
- history.back();
21
- }}>Take me back</button
22
- >
23
- {/if}
24
- </FormDialog>
@@ -1,31 +0,0 @@
1
- <script lang="ts">
2
- const { min = 0, max, value, text } = $props();
3
- </script>
4
-
5
- <div class="Bar">
6
- <div class="fill" style="width: {((value - min) / (max - min)) * 100}%"></div>
7
- {#if text}<span class="text">{text}</span>{/if}
8
- </div>
9
-
10
- <style>
11
- .Bar {
12
- position: relative;
13
- border-radius: calc(var(--height, 2em) / 2);
14
- height: var(--height, 2em);
15
- background-color: #444;
16
- overflow: hidden;
17
- }
18
-
19
- .text {
20
- position: absolute;
21
- inset: calc(calc(var(--height, 2em) - 1em) / 2) 1em;
22
- width: fit-content;
23
- line-height: 1;
24
- }
25
-
26
- .fill {
27
- border-radius: calc(var(--height, 2em) / 2);
28
- height: 100%;
29
- background-color: var(--fill, #465);
30
- }
31
- </style>
@@ -1,46 +0,0 @@
1
- <script lang="ts">
2
- import Icon from './Icon.svelte';
3
- const { children, toggle }: { children(): any; toggle?(): any } = $props();
4
-
5
- let popover = $state<HTMLDivElement>();
6
-
7
- function onclick(e: MouseEvent) {
8
- e.stopPropagation();
9
- popover?.togglePopover();
10
- }
11
- </script>
12
-
13
- <div onclick={e => e.stopPropagation()}>
14
- <div style:display="contents" {onclick}>
15
- {#if toggle}
16
- {@render toggle()}
17
- {:else}
18
- <span class="popover-toggle">
19
- <Icon i="ellipsis" />
20
- </span>
21
- {/if}
22
- </div>
23
-
24
- <div popover bind:this={popover}>
25
- {@render children()}
26
- </div>
27
- </div>
28
-
29
- <style>
30
- .popover-toggle:hover {
31
- cursor: pointer;
32
- }
33
-
34
- [popover] :global(.menu-item) {
35
- display: inline-flex;
36
- align-items: center;
37
- padding: 0.5em 0.75em;
38
- gap: 1em;
39
- border-radius: 0.5em;
40
-
41
- &:hover {
42
- background-color: #223;
43
- cursor: pointer;
44
- }
45
- }
46
- </style>
@@ -1,32 +0,0 @@
1
- <script lang="ts">
2
- import { register } from '@axium/client/user';
3
- import FormDialog from './FormDialog.svelte';
4
-
5
- let { dialog = $bindable(), fullPage = false }: { dialog?: HTMLDialogElement; fullPage?: boolean } = $props();
6
- </script>
7
-
8
- <FormDialog bind:dialog submitText="Register" submit={register} pageMode={fullPage}>
9
- <div>
10
- <label for="name">Display Name</label>
11
- <input name="name" type="text" required />
12
- </div>
13
- <div>
14
- <label for="email">Email</label>
15
- <input name="email" type="email" required />
16
- </div>
17
- {#snippet footer()}
18
- {#if fullPage}
19
- <div class="footer">
20
- <a href="/login">Login instead</a>
21
- </div>
22
- {/if}
23
- {/snippet}
24
- </FormDialog>
25
-
26
- <style>
27
- .footer {
28
- margin-bottom: 1em;
29
- text-align: center;
30
- background: none;
31
- }
32
- </style>
@@ -1,35 +0,0 @@
1
- <script lang="ts">
2
- import { fade } from 'svelte/transition';
3
-
4
- const { enabled, children, delay = 5000, duration = 1000, ...rest } = $props();
5
-
6
- let hiding = $state(false);
7
-
8
- const show = $derived(enabled && !hiding);
9
- </script>
10
-
11
- {#if show}
12
- <div
13
- class="Toast"
14
- in:fade|global={{ duration }}
15
- onintroend={() => (hiding = true)}
16
- out:fade|global={{ delay, duration }}
17
- onoutroend={() => (hiding = false)}
18
- {...rest}
19
- >
20
- {@render children()}
21
- </div>
22
- {/if}
23
-
24
- <style>
25
- .Toast {
26
- position: fixed;
27
- bottom: 1em;
28
- left: calc(50% - 10em);
29
- right: calc(50% - 10em);
30
- width: 20em;
31
- padding: 0.5em 1em;
32
- border-radius: 1em;
33
- opacity: 0.5;
34
- }
35
- </style>