@axium/server 0.22.8 → 0.22.10

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 (165) hide show
  1. package/build/client/_app/immutable/chunks/{sfKJ2mhH.js → BMQhMafy.js} +1 -1
  2. package/build/client/_app/immutable/chunks/BMQhMafy.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/BMQhMafy.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{CyaTInFC.js → BgEiIyym.js} +1 -1
  5. package/build/client/_app/immutable/chunks/BgEiIyym.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/BgEiIyym.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{BZOe2Jko.js → ButWEHh0.js} +1 -1
  8. package/build/client/_app/immutable/chunks/ButWEHh0.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/ButWEHh0.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/C8C04JmV.js +1 -0
  11. package/build/client/_app/immutable/chunks/C8C04JmV.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/C8C04JmV.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{DGhIdZ_j.js → Cj9PL7OG.js} +1 -1
  14. package/build/client/_app/immutable/chunks/Cj9PL7OG.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/Cj9PL7OG.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{BB26zgjv.js → DOf8Vlkp.js} +13 -13
  17. package/build/client/_app/immutable/chunks/DOf8Vlkp.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/DOf8Vlkp.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/rezgYUOp.js +3 -0
  20. package/build/client/_app/immutable/chunks/rezgYUOp.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/rezgYUOp.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/x4Pz-wH_.js +1 -0
  23. package/build/client/_app/immutable/chunks/x4Pz-wH_.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/x4Pz-wH_.js.gz +0 -0
  25. package/build/client/_app/immutable/entry/{app.DBx5Wo_5.js → app.BMd3k5iZ.js} +2 -2
  26. package/build/client/_app/immutable/entry/app.BMd3k5iZ.js.br +0 -0
  27. package/build/client/_app/immutable/entry/app.BMd3k5iZ.js.gz +0 -0
  28. package/build/client/_app/immutable/entry/start.wMNSiQfV.js +1 -0
  29. package/build/client/_app/immutable/entry/start.wMNSiQfV.js.br +0 -0
  30. package/build/client/_app/immutable/entry/start.wMNSiQfV.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{0.DuvLHQ5N.js → 0.CE0uBbp0.js} +1 -1
  32. package/build/client/_app/immutable/nodes/0.CE0uBbp0.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/0.CE0uBbp0.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{1.DRBCZnVN.js → 1.BbCjX8CT.js} +1 -1
  35. package/build/client/_app/immutable/nodes/1.BbCjX8CT.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/1.BbCjX8CT.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{2.CiWhhaCq.js → 2.B3qXd01D.js} +1 -1
  38. package/build/client/_app/immutable/nodes/2.B3qXd01D.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/2.B3qXd01D.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/3.DAVpu8yO.js +7 -0
  41. package/build/client/_app/immutable/nodes/3.DAVpu8yO.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/3.DAVpu8yO.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{4.Bv7tqhIp.js → 4.-otZzHZ7.js} +1 -1
  44. package/build/client/_app/immutable/nodes/4.-otZzHZ7.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/4.-otZzHZ7.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/5.Bfq-tL5b.js +1 -0
  47. package/build/client/_app/immutable/nodes/5.Bfq-tL5b.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/5.Bfq-tL5b.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/{6.BJG5gZTX.js → 6.BYvIaid9.js} +1 -1
  50. package/build/client/_app/immutable/nodes/6.BYvIaid9.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/6.BYvIaid9.js.gz +0 -0
  52. package/build/client/_app/version.json +1 -1
  53. package/build/client/_app/version.json.br +0 -0
  54. package/build/client/_app/version.json.gz +0 -0
  55. package/build/client/styles.css +45 -24
  56. package/build/client/styles.css.br +0 -0
  57. package/build/client/styles.css.gz +0 -0
  58. package/build/client/theme.css +42 -0
  59. package/build/client/theme.css.br +0 -0
  60. package/build/client/theme.css.gz +0 -0
  61. package/build/server/chunks/{0-B8fDicB8.js → 0-DJKsK7F_.js} +2 -2
  62. package/build/server/chunks/{0-B8fDicB8.js.map → 0-DJKsK7F_.js.map} +1 -1
  63. package/build/server/chunks/1-CQfOCLrv.js +9 -0
  64. package/build/server/chunks/{1-BPFgHQsA.js.map → 1-CQfOCLrv.js.map} +1 -1
  65. package/build/server/chunks/{2-CVTt4PZM.js → 2-fj0aW1I0.js} +2 -2
  66. package/build/server/chunks/{2-CVTt4PZM.js.map → 2-fj0aW1I0.js.map} +1 -1
  67. package/build/server/chunks/3-Bd45up_8.js +13 -0
  68. package/build/server/chunks/{3-BLvjl1b0.js.map → 3-Bd45up_8.js.map} +1 -1
  69. package/build/server/chunks/4-DaCX_NDZ.js +9 -0
  70. package/build/server/chunks/{4-_Z3XM2ZU.js.map → 4-DaCX_NDZ.js.map} +1 -1
  71. package/build/server/chunks/5-CVkFzkFo.js +9 -0
  72. package/build/server/chunks/{5-CGj2cpNi.js.map → 5-CVkFzkFo.js.map} +1 -1
  73. package/build/server/chunks/6-CTMhcbKj.js +9 -0
  74. package/build/server/chunks/{6-DxwYDhel.js.map → 6-CTMhcbKj.js.map} +1 -1
  75. package/build/server/chunks/FormDialog-CUzCwBFr.js +907 -0
  76. package/build/server/chunks/FormDialog-CUzCwBFr.js.map +1 -0
  77. package/build/server/chunks/{Logout-BuFlzVUY.js → Logout-48MBrG2s.js} +3 -3
  78. package/build/server/chunks/{Logout-BuFlzVUY.js.map → Logout-48MBrG2s.js.map} +1 -1
  79. package/build/server/chunks/_page.svelte-BHwIILw0.js +11 -0
  80. package/build/server/chunks/{_page.svelte-pr5d_b15.js.map → _page.svelte-BHwIILw0.js.map} +1 -1
  81. package/build/server/chunks/_page.svelte-B_j_iDFj.js +643 -0
  82. package/build/server/chunks/_page.svelte-B_j_iDFj.js.map +1 -0
  83. package/build/server/chunks/{_page.svelte-Diva26gb.js → _page.svelte-DSnarRUI.js} +4 -4
  84. package/build/server/chunks/{_page.svelte-Diva26gb.js.map → _page.svelte-DSnarRUI.js.map} +1 -1
  85. package/build/server/chunks/{_page.svelte-tm2MwH-6.js → _page.svelte-Yesd_T6C.js} +4 -4
  86. package/build/server/chunks/{_page.svelte-tm2MwH-6.js.map → _page.svelte-Yesd_T6C.js.map} +1 -1
  87. package/build/server/chunks/{error.svelte-CZg-BdYa.js → error.svelte-DtpUafMU.js} +2 -2
  88. package/build/server/chunks/{error.svelte-CZg-BdYa.js.map → error.svelte-DtpUafMU.js.map} +1 -1
  89. package/build/server/chunks/{hooks.server-C8DAZtT_.js → hooks.server-DUwDq1Hw.js} +35 -55
  90. package/build/server/chunks/hooks.server-DUwDq1Hw.js.map +1 -0
  91. package/build/server/chunks/{index-CNBqpMEu.js → index-apo9QTc6.js} +10 -2
  92. package/build/server/chunks/index-apo9QTc6.js.map +1 -0
  93. package/build/server/chunks/{schemas-CQyMtwlx.js → index-iqDDeMM6.js} +1171 -1
  94. package/build/server/chunks/index-iqDDeMM6.js.map +1 -0
  95. package/build/server/chunks/{string-SLyGnEy-.js → string-DCbyDSv6.js} +59 -2
  96. package/build/server/chunks/string-DCbyDSv6.js.map +1 -0
  97. package/build/server/index.js +4 -4
  98. package/build/server/index.js.map +1 -1
  99. package/build/server/manifest.js +9 -9
  100. package/build/server/manifest.js.map +1 -1
  101. package/dist/api/users.js +3 -0
  102. package/dist/config.d.ts +6 -6
  103. package/package.json +3 -3
  104. package/routes/account/+page.svelte +6 -1
  105. package/svelte.config.js +2 -1
  106. package/web/template.html +1 -0
  107. package/assets/icons/brands.svg +0 -1493
  108. package/assets/icons/light.svg +0 -9977
  109. package/assets/icons/regular.svg +0 -9977
  110. package/assets/icons/solid.svg +0 -9977
  111. package/assets/styles.css +0 -119
  112. package/build/client/_app/immutable/chunks/BB26zgjv.js.br +0 -0
  113. package/build/client/_app/immutable/chunks/BB26zgjv.js.gz +0 -0
  114. package/build/client/_app/immutable/chunks/BK1-xGGj.js +0 -1
  115. package/build/client/_app/immutable/chunks/BK1-xGGj.js.br +0 -0
  116. package/build/client/_app/immutable/chunks/BK1-xGGj.js.gz +0 -0
  117. package/build/client/_app/immutable/chunks/BZOe2Jko.js.br +0 -0
  118. package/build/client/_app/immutable/chunks/BZOe2Jko.js.gz +0 -0
  119. package/build/client/_app/immutable/chunks/CyaTInFC.js.br +0 -0
  120. package/build/client/_app/immutable/chunks/CyaTInFC.js.gz +0 -0
  121. package/build/client/_app/immutable/chunks/DGhIdZ_j.js.br +0 -0
  122. package/build/client/_app/immutable/chunks/DGhIdZ_j.js.gz +0 -0
  123. package/build/client/_app/immutable/chunks/Dv2cmqMg.js +0 -3
  124. package/build/client/_app/immutable/chunks/Dv2cmqMg.js.br +0 -0
  125. package/build/client/_app/immutable/chunks/Dv2cmqMg.js.gz +0 -0
  126. package/build/client/_app/immutable/chunks/sfKJ2mhH.js.br +0 -0
  127. package/build/client/_app/immutable/chunks/sfKJ2mhH.js.gz +0 -0
  128. package/build/client/_app/immutable/chunks/uU8Mt6Mg.js +0 -1
  129. package/build/client/_app/immutable/chunks/uU8Mt6Mg.js.br +0 -0
  130. package/build/client/_app/immutable/chunks/uU8Mt6Mg.js.gz +0 -0
  131. package/build/client/_app/immutable/entry/app.DBx5Wo_5.js.br +0 -0
  132. package/build/client/_app/immutable/entry/app.DBx5Wo_5.js.gz +0 -0
  133. package/build/client/_app/immutable/entry/start.Bw8nbIFU.js +0 -1
  134. package/build/client/_app/immutable/entry/start.Bw8nbIFU.js.br +0 -2
  135. package/build/client/_app/immutable/entry/start.Bw8nbIFU.js.gz +0 -0
  136. package/build/client/_app/immutable/nodes/0.DuvLHQ5N.js.br +0 -0
  137. package/build/client/_app/immutable/nodes/0.DuvLHQ5N.js.gz +0 -0
  138. package/build/client/_app/immutable/nodes/1.DRBCZnVN.js.br +0 -0
  139. package/build/client/_app/immutable/nodes/1.DRBCZnVN.js.gz +0 -0
  140. package/build/client/_app/immutable/nodes/2.CiWhhaCq.js.br +0 -0
  141. package/build/client/_app/immutable/nodes/2.CiWhhaCq.js.gz +0 -0
  142. package/build/client/_app/immutable/nodes/3.Bx9a_cbp.js +0 -7
  143. package/build/client/_app/immutable/nodes/3.Bx9a_cbp.js.br +0 -0
  144. package/build/client/_app/immutable/nodes/3.Bx9a_cbp.js.gz +0 -0
  145. package/build/client/_app/immutable/nodes/4.Bv7tqhIp.js.br +0 -0
  146. package/build/client/_app/immutable/nodes/4.Bv7tqhIp.js.gz +0 -0
  147. package/build/client/_app/immutable/nodes/5._SsovuZL.js +0 -1
  148. package/build/client/_app/immutable/nodes/5._SsovuZL.js.br +0 -0
  149. package/build/client/_app/immutable/nodes/5._SsovuZL.js.gz +0 -0
  150. package/build/client/_app/immutable/nodes/6.BJG5gZTX.js.br +0 -0
  151. package/build/client/_app/immutable/nodes/6.BJG5gZTX.js.gz +0 -0
  152. package/build/server/chunks/1-BPFgHQsA.js +0 -9
  153. package/build/server/chunks/3-BLvjl1b0.js +0 -13
  154. package/build/server/chunks/4-_Z3XM2ZU.js +0 -9
  155. package/build/server/chunks/5-CGj2cpNi.js +0 -9
  156. package/build/server/chunks/6-DxwYDhel.js +0 -9
  157. package/build/server/chunks/FormDialog-CieDuaGR.js +0 -2065
  158. package/build/server/chunks/FormDialog-CieDuaGR.js.map +0 -1
  159. package/build/server/chunks/_page.svelte-C0BGwZCw.js +0 -314
  160. package/build/server/chunks/_page.svelte-C0BGwZCw.js.map +0 -1
  161. package/build/server/chunks/_page.svelte-pr5d_b15.js +0 -11
  162. package/build/server/chunks/hooks.server-C8DAZtT_.js.map +0 -1
  163. package/build/server/chunks/index-CNBqpMEu.js.map +0 -1
  164. package/build/server/chunks/schemas-CQyMtwlx.js.map +0 -1
  165. package/build/server/chunks/string-SLyGnEy-.js.map +0 -1
@@ -0,0 +1,643 @@
1
+ import { v as push, F as copy_payload, G as assign_payload, x as pop, J as ensure_array_like, K as head, N as attr, y as escape_html, O as stringify, P as css_props, Q as attr_style, T as spread_attributes, V as props_id, W as bind_props, X as maybe_selected } from './index-apo9QTc6.js';
2
+ import { g as getUserImage, F as FormDialog, p as preferenceSchemas, a as preferenceLabels, z as zIs, b as preferenceDefaults, d as deleteUser, u as updatePasskey, c as deletePasskey, l as logout, e as logoutAll, f as updateUser } from './FormDialog-CUzCwBFr.js';
3
+ import './index-iqDDeMM6.js';
4
+ import { g as getByString, p as pick } from './string-DCbyDSv6.js';
5
+ import { L as Logout } from './Logout-48MBrG2s.js';
6
+
7
+ const $$css$4 = {
8
+ hash: "svelte-1l501sr",
9
+ code: "svg.svelte-1l501sr {width:var(--size, 1em);height:var(--size, 1em);display:inline-block;fill:var(--fill, hsl(var(--hue) 0 var(--fg-light)));}"
10
+ };
11
+ function Icon($$payload, $$props) {
12
+ $$payload.css.add($$css$4);
13
+ push();
14
+ const { i, $$slots, $$events, ...rest } = $$props;
15
+ const [style, id] = i.includes("/") ? i.split("/") : ["solid", i];
16
+ const href = `/icons/${style}.svg#${id}`;
17
+ $$payload.out.push(`<svg${spread_attributes(
18
+ {
19
+ xmlns: "http://www.w3.org/2000/svg",
20
+ viewBox: "0 0 512 512",
21
+ width: "1em",
22
+ height: "1em",
23
+ ...rest
24
+ },
25
+ "svelte-1l501sr",
26
+ void 0,
27
+ void 0,
28
+ 3
29
+ )}><use${attr("href", href)}></use></svg>`);
30
+ pop();
31
+ }
32
+ const $$css$3 = {
33
+ hash: "svelte-g409dh",
34
+ code: "button.svelte-g409dh {position:relative;display:inline-block;width:1em;height:1em;border:none;background:transparent;}span.svelte-g409dh {position:absolute;inset:0;}"
35
+ };
36
+ function ClipboardCopy($$payload, $$props) {
37
+ $$payload.css.add($$css$3);
38
+ push();
39
+ $$payload.out.push(`<button class="svelte-g409dh">`);
40
+ {
41
+ $$payload.out.push("<!--[!-->");
42
+ $$payload.out.push(`<span class="svelte-g409dh">`);
43
+ Icon($$payload, { i: "copy" });
44
+ $$payload.out.push(`<!----></span>`);
45
+ }
46
+ $$payload.out.push(`<!--]--></button>`);
47
+ pop();
48
+ }
49
+ const $$css$2 = {
50
+ hash: "svelte-23hpnn",
51
+ code: "input[type='checkbox'].svelte-23hpnn {display:none;}label.checkbox.svelte-23hpnn {cursor:pointer;width:1.5em;height:1.5em;border:1px solid var(--border-accent);border-radius:0.5em;display:inline-flex;justify-content:center;align-items:center;}"
52
+ };
53
+ function Preference_1($$payload, $$props) {
54
+ $$payload.css.add($$css$2);
55
+ push();
56
+ const id = props_id($$payload);
57
+ let { preferences = void 0, userId, path, schema, optional = false } = $$props;
58
+ let checked = schema.def.type == "boolean" && getByString(preferences, path);
59
+ function dateAttr(date, format) {
60
+ if (!date) return null;
61
+ const pad = (n) => String(n).padStart(2, "0");
62
+ const yyyy = date.getFullYear();
63
+ const mm = pad(date.getMonth() + 1);
64
+ const dd = pad(date.getDate());
65
+ const dateStr = `${yyyy}-${mm}-${dd}`;
66
+ const HH = pad(date.getHours());
67
+ const MM = pad(date.getMinutes());
68
+ const timeStr = `${HH}:${MM}`;
69
+ switch (format) {
70
+ case "date":
71
+ return dateStr;
72
+ case "time":
73
+ return timeStr;
74
+ case "time+sec":
75
+ return `${timeStr}:${pad(date.getSeconds())}`;
76
+ case "datetime":
77
+ default:
78
+ return `${dateStr}T${timeStr}`;
79
+ }
80
+ }
81
+ function _in($$payload2, rest) {
82
+ $$payload2.out.push(`<input${spread_attributes(
83
+ {
84
+ id,
85
+ ...rest,
86
+ value: getByString(preferences, path) ?? getByString(preferenceDefaults, path),
87
+ required: !optional
88
+ },
89
+ "svelte-23hpnn"
90
+ )}/>`);
91
+ }
92
+ let $$settled = true;
93
+ let $$inner_payload;
94
+ function $$render_inner($$payload2) {
95
+ if (zIs(schema, "string")) {
96
+ $$payload2.out.push("<!--[-->");
97
+ _in($$payload2, {
98
+ type: schema.format == "email" ? "email" : "text",
99
+ ...pick(schema, "minLength", "maxLength")
100
+ });
101
+ } else {
102
+ $$payload2.out.push("<!--[!-->");
103
+ if (zIs(schema, "number")) {
104
+ $$payload2.out.push("<!--[-->");
105
+ _in($$payload2, {
106
+ type: "number",
107
+ min: schema.minValue,
108
+ max: schema.maxValue,
109
+ step: schema.format?.includes("int") ? 1 : 0.1
110
+ });
111
+ } else {
112
+ $$payload2.out.push("<!--[!-->");
113
+ if (zIs(schema, "bigint")) {
114
+ $$payload2.out.push("<!--[-->");
115
+ _in($$payload2, {
116
+ type: "number",
117
+ min: Number(schema.minValue),
118
+ max: Number(schema.maxValue),
119
+ step: 1
120
+ });
121
+ } else {
122
+ $$payload2.out.push("<!--[!-->");
123
+ if (zIs(schema, "boolean")) {
124
+ $$payload2.out.push("<!--[-->");
125
+ $$payload2.out.push(`<input${attr("checked", checked, true)}${attr("id", id)} type="checkbox"${attr("required", !optional, true)} class="svelte-23hpnn"/> <label${attr("for", id)} class="checkbox svelte-23hpnn">`);
126
+ if (checked) {
127
+ $$payload2.out.push("<!--[-->");
128
+ css_props($$payload2, true, { "--size": "1.3em" }, () => {
129
+ Icon($$payload2, { i: "check" });
130
+ });
131
+ } else {
132
+ $$payload2.out.push("<!--[!-->");
133
+ }
134
+ $$payload2.out.push(`<!--]--></label>`);
135
+ } else {
136
+ $$payload2.out.push("<!--[!-->");
137
+ if (zIs(schema, "date")) {
138
+ $$payload2.out.push("<!--[-->");
139
+ _in($$payload2, {
140
+ type: "date",
141
+ min: dateAttr(schema.minDate, "date"),
142
+ max: dateAttr(schema.maxDate, "date")
143
+ });
144
+ } else {
145
+ $$payload2.out.push("<!--[!-->");
146
+ if (zIs(schema, "file")) {
147
+ $$payload2.out.push("<!--[-->");
148
+ } else {
149
+ $$payload2.out.push("<!--[!-->");
150
+ if (zIs(schema, "literal")) {
151
+ $$payload2.out.push("<!--[-->");
152
+ const each_array = ensure_array_like(schema.values);
153
+ $$payload2.out.push(`<select${attr("id", id)}${attr("required", !optional, true)}><!--[-->`);
154
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
155
+ let value = each_array[$$index];
156
+ $$payload2.out.push(`<option${attr("value", value)}${maybe_selected($$payload2, value)}>${escape_html(value)}</option>`);
157
+ }
158
+ $$payload2.out.push(`<!--]--></select>`);
159
+ } else {
160
+ $$payload2.out.push("<!--[!-->");
161
+ if (zIs(schema, "template_literal")) {
162
+ $$payload2.out.push("<!--[-->");
163
+ } else {
164
+ $$payload2.out.push("<!--[!-->");
165
+ if (zIs(schema, "nullable") || zIs(schema, "optional")) {
166
+ $$payload2.out.push("<!--[-->");
167
+ Preference_1($$payload2, {
168
+ userId,
169
+ path,
170
+ schema: schema.def.innerType,
171
+ optional: true,
172
+ get preferences() {
173
+ return preferences;
174
+ },
175
+ set preferences($$value) {
176
+ preferences = $$value;
177
+ $$settled = false;
178
+ }
179
+ });
180
+ } else {
181
+ $$payload2.out.push("<!--[!-->");
182
+ if (zIs(schema, "array")) {
183
+ $$payload2.out.push("<!--[-->");
184
+ const each_array_1 = ensure_array_like(getByString(preferences, path));
185
+ $$payload2.out.push(`<div class="pref-sub"><!--[-->`);
186
+ for (let i = 0, $$length = each_array_1.length; i < $$length; i++) {
187
+ $$payload2.out.push(`<div class="pref-record-entry">`);
188
+ Preference_1($$payload2, {
189
+ userId,
190
+ path: `${stringify(path)}.${stringify(i)}`,
191
+ schema: schema.element,
192
+ get preferences() {
193
+ return preferences;
194
+ },
195
+ set preferences($$value) {
196
+ preferences = $$value;
197
+ $$settled = false;
198
+ }
199
+ });
200
+ $$payload2.out.push(`<!----></div>`);
201
+ }
202
+ $$payload2.out.push(`<!--]--></div>`);
203
+ } else {
204
+ $$payload2.out.push("<!--[!-->");
205
+ if (zIs(schema, "record")) {
206
+ $$payload2.out.push("<!--[-->");
207
+ const each_array_2 = ensure_array_like(Object.keys(getByString(preferences, path)));
208
+ $$payload2.out.push(`<div class="pref-sub"><!--[-->`);
209
+ for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {
210
+ let key = each_array_2[$$index_2];
211
+ $$payload2.out.push(`<div class="pref-record-entry"><label${attr("for", id)}>${escape_html(key)}</label> `);
212
+ Preference_1($$payload2, {
213
+ userId,
214
+ path: `${stringify(path)}.${stringify(key)}`,
215
+ schema: schema.valueType,
216
+ get preferences() {
217
+ return preferences;
218
+ },
219
+ set preferences($$value) {
220
+ preferences = $$value;
221
+ $$settled = false;
222
+ }
223
+ });
224
+ $$payload2.out.push(`<!----></div>`);
225
+ }
226
+ $$payload2.out.push(`<!--]--></div>`);
227
+ } else {
228
+ $$payload2.out.push("<!--[!-->");
229
+ if (zIs(schema, "object")) {
230
+ $$payload2.out.push("<!--[-->");
231
+ const each_array_3 = ensure_array_like(Object.entries(schema.shape));
232
+ $$payload2.out.push(`<!--[-->`);
233
+ for (let $$index_3 = 0, $$length = each_array_3.length; $$index_3 < $$length; $$index_3++) {
234
+ let [key, value] = each_array_3[$$index_3];
235
+ $$payload2.out.push(`<div class="pref-sub"><label${attr("for", id)}>${escape_html(key)}</label> `);
236
+ Preference_1($$payload2, {
237
+ userId,
238
+ path: `${stringify(path)}.${stringify(key)}`,
239
+ schema: value,
240
+ get preferences() {
241
+ return preferences;
242
+ },
243
+ set preferences($$value) {
244
+ preferences = $$value;
245
+ $$settled = false;
246
+ }
247
+ });
248
+ $$payload2.out.push(`<!----></div>`);
249
+ }
250
+ $$payload2.out.push(`<!--]-->`);
251
+ } else {
252
+ $$payload2.out.push("<!--[!-->");
253
+ if (zIs(schema, "tuple")) {
254
+ $$payload2.out.push("<!--[-->");
255
+ const each_array_4 = ensure_array_like(schema.def.items);
256
+ $$payload2.out.push(`<div class="pref-sub"${attr("data-rest", schema.def.rest)}><!--[-->`);
257
+ for (let i = 0, $$length = each_array_4.length; i < $$length; i++) {
258
+ let item = each_array_4[i];
259
+ Preference_1($$payload2, {
260
+ userId,
261
+ path: `${stringify(path)}.${stringify(i)}`,
262
+ schema: item,
263
+ get preferences() {
264
+ return preferences;
265
+ },
266
+ set preferences($$value) {
267
+ preferences = $$value;
268
+ $$settled = false;
269
+ }
270
+ });
271
+ }
272
+ $$payload2.out.push(`<!--]--></div>`);
273
+ } else {
274
+ $$payload2.out.push("<!--[!-->");
275
+ if (zIs(schema, "enum")) {
276
+ $$payload2.out.push("<!--[-->");
277
+ const each_array_5 = ensure_array_like(Object.entries(schema.enum));
278
+ $$payload2.out.push(`<select${attr("id", id)}${attr("required", !optional, true)}><!--[-->`);
279
+ for (let $$index_5 = 0, $$length = each_array_5.length; $$index_5 < $$length; $$index_5++) {
280
+ let [key, val] = each_array_5[$$index_5];
281
+ $$payload2.out.push(`<option${attr("value", val)}${maybe_selected($$payload2, val)}>${escape_html(key)}</option>`);
282
+ }
283
+ $$payload2.out.push(`<!--]--></select>`);
284
+ } else {
285
+ $$payload2.out.push("<!--[!-->");
286
+ $$payload2.out.push(`<i class="error-text">Invalid preference type: ${escape_html(JSON.stringify(schema?.def?.type))}</i>`);
287
+ }
288
+ $$payload2.out.push(`<!--]-->`);
289
+ }
290
+ $$payload2.out.push(`<!--]-->`);
291
+ }
292
+ $$payload2.out.push(`<!--]-->`);
293
+ }
294
+ $$payload2.out.push(`<!--]-->`);
295
+ }
296
+ $$payload2.out.push(`<!--]-->`);
297
+ }
298
+ $$payload2.out.push(`<!--]-->`);
299
+ }
300
+ $$payload2.out.push(`<!--]-->`);
301
+ }
302
+ $$payload2.out.push(`<!--]-->`);
303
+ }
304
+ $$payload2.out.push(`<!--]-->`);
305
+ }
306
+ $$payload2.out.push(`<!--]-->`);
307
+ }
308
+ $$payload2.out.push(`<!--]-->`);
309
+ }
310
+ $$payload2.out.push(`<!--]-->`);
311
+ }
312
+ $$payload2.out.push(`<!--]-->`);
313
+ }
314
+ $$payload2.out.push(`<!--]-->`);
315
+ }
316
+ do {
317
+ $$settled = true;
318
+ $$inner_payload = copy_payload($$payload);
319
+ $$render_inner($$inner_payload);
320
+ } while (!$$settled);
321
+ assign_payload($$payload, $$inner_payload);
322
+ bind_props($$props, { preferences });
323
+ pop();
324
+ }
325
+ const $$css$1 = {
326
+ hash: "svelte-b9ddyh",
327
+ code: ".pref.svelte-b9ddyh {display:grid;grid-template-columns:1fr 1fr;gap:1em;}"
328
+ };
329
+ function Preferences($$payload, $$props) {
330
+ $$payload.css.add($$css$1);
331
+ push();
332
+ const id = props_id($$payload);
333
+ let { preferences = void 0, userId } = $$props;
334
+ let $$settled = true;
335
+ let $$inner_payload;
336
+ function $$render_inner($$payload2) {
337
+ const each_array = ensure_array_like(Object.keys(preferenceSchemas));
338
+ $$payload2.out.push(`<!--[-->`);
339
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
340
+ let path = each_array[$$index];
341
+ $$payload2.out.push(`<div class="pref svelte-b9ddyh"><label${attr("for", id)}>${escape_html(preferenceLabels[path])}</label> `);
342
+ Preference_1($$payload2, {
343
+ userId,
344
+ path,
345
+ schema: preferenceSchemas[path],
346
+ get preferences() {
347
+ return preferences;
348
+ },
349
+ set preferences($$value) {
350
+ preferences = $$value;
351
+ $$settled = false;
352
+ }
353
+ });
354
+ $$payload2.out.push(`<!----></div>`);
355
+ }
356
+ $$payload2.out.push(`<!--]-->`);
357
+ }
358
+ do {
359
+ $$settled = true;
360
+ $$inner_payload = copy_payload($$payload);
361
+ $$render_inner($$inner_payload);
362
+ } while (!$$settled);
363
+ assign_payload($$payload, $$inner_payload);
364
+ bind_props($$props, { preferences });
365
+ pop();
366
+ }
367
+ const $$css = {
368
+ hash: "svelte-c74k6c",
369
+ code: "#pfp-container.svelte-c74k6c {width:100px;height:100px;margin-top:3em;.MenuToggle {float:right;position:relative;top:-24px;}}#pfp.svelte-c74k6c {width:100px;height:100px;border-radius:50%;border:1px solid #8888;}.greeting.svelte-c74k6c {font-size:2em;}.signout.svelte-c74k6c {margin-top:2em;}.section.svelte-c74k6c {width:50%;padding-top:4em;\n\n /* This is causing duplicate separators when removing sessions/passkeys\n > div:has(+ div) {\n border-bottom: 1px solid #8888;\n }\n */}.section.svelte-c74k6c .item:where(.svelte-c74k6c) {display:grid;align-items:center;width:100%;gap:1em;text-wrap:nowrap;border-top:1px solid #8888;padding-bottom:1em;}.info.svelte-c74k6c {grid-template-columns:10em 1fr 2em;> :where(.svelte-c74k6c):first-child {margin-left:1em;}> :where(.svelte-c74k6c):nth-child(2) {text-overflow:ellipsis;overflow:hidden;}}.passkey.svelte-c74k6c {grid-template-columns:1em 1em 1fr 1fr 1em 1em;dfn:where(.svelte-c74k6c):not(.disabled) {cursor:help;}}.session.svelte-c74k6c {grid-template-columns:1fr 1fr 1fr 1em;.current:where(.svelte-c74k6c) {border-radius:2em;padding:0 0.5em;background-color:#337;}.elevated:where(.svelte-c74k6c) {border-radius:2em;padding:0 0.5em;background-color:#733;}}"
370
+ };
371
+ function _page($$payload, $$props) {
372
+ $$payload.css.add($$css);
373
+ push();
374
+ const { data } = $$props;
375
+ const { canVerify } = data;
376
+ const dialogs = {};
377
+ let currentSession = data.currentSession;
378
+ let user = data.user;
379
+ let passkeys = data.passkeys;
380
+ let sessions = data.sessions;
381
+ async function _editUser(data2) {
382
+ const result = await updateUser(user.id, data2);
383
+ user = result;
384
+ }
385
+ function action($$payload2, name, i = "pen") {
386
+ $$payload2.out.push(`<button class="svelte-c74k6c"${attr_style("", { display: "contents" })}>`);
387
+ css_props($$payload2, true, { "--size": "16px" }, () => {
388
+ Icon($$payload2, { i });
389
+ });
390
+ $$payload2.out.push(`</button>`);
391
+ }
392
+ let $$settled = true;
393
+ let $$inner_payload;
394
+ function $$render_inner($$payload2) {
395
+ const each_array = ensure_array_like(passkeys);
396
+ const each_array_1 = ensure_array_like(sessions);
397
+ head($$payload2, ($$payload3) => {
398
+ $$payload3.title = `<title>Account</title>`;
399
+ });
400
+ $$payload2.out.push(`<div class="Account flex-content"><div id="pfp-container" class="svelte-c74k6c"><img id="pfp"${attr("src", getUserImage(user))} alt="User profile" width="100px" height="100px" class="svelte-c74k6c"/></div> <p class="greeting svelte-c74k6c">Welcome, ${escape_html(user.name)}</p> <div class="section main svelte-c74k6c"><h3>Personal Information</h3> <div class="item info svelte-c74k6c"><p class="subtle svelte-c74k6c">Name</p> <p class="svelte-c74k6c">${escape_html(user.name)}</p> `);
401
+ action($$payload2);
402
+ $$payload2.out.push(`<!----></div> `);
403
+ FormDialog($$payload2, {
404
+ submit: _editUser,
405
+ submitText: "Change",
406
+ get dialog() {
407
+ return dialogs.edit_name;
408
+ },
409
+ set dialog($$value) {
410
+ dialogs.edit_name = $$value;
411
+ $$settled = false;
412
+ },
413
+ children: ($$payload3) => {
414
+ $$payload3.out.push(`<div><label for="name">What do you want to be called?</label> <input name="name" type="text"${attr("value", user.name || "")} required/></div>`);
415
+ },
416
+ $$slots: { default: true }
417
+ });
418
+ $$payload2.out.push(`<!----> <div class="item info svelte-c74k6c"><p class="subtle svelte-c74k6c">Email</p> <p class="svelte-c74k6c">${escape_html(user.email)} `);
419
+ if (user.emailVerified) {
420
+ $$payload2.out.push("<!--[-->");
421
+ $$payload2.out.push(`<dfn${attr("title", `Email verified on ${stringify(user.emailVerified.toLocaleDateString())}`)}>`);
422
+ Icon($$payload2, { i: "regular/circle-check" });
423
+ $$payload2.out.push(`<!----></dfn>`);
424
+ } else {
425
+ $$payload2.out.push("<!--[!-->");
426
+ if (canVerify) {
427
+ $$payload2.out.push("<!--[-->");
428
+ $$payload2.out.push(`<button>${escape_html("Verify")}</button>`);
429
+ } else {
430
+ $$payload2.out.push("<!--[!-->");
431
+ }
432
+ $$payload2.out.push(`<!--]-->`);
433
+ }
434
+ $$payload2.out.push(`<!--]--></p> `);
435
+ action($$payload2);
436
+ $$payload2.out.push(`<!----></div> `);
437
+ FormDialog($$payload2, {
438
+ submit: _editUser,
439
+ submitText: "Change",
440
+ get dialog() {
441
+ return dialogs.edit_email;
442
+ },
443
+ set dialog($$value) {
444
+ dialogs.edit_email = $$value;
445
+ $$settled = false;
446
+ },
447
+ children: ($$payload3) => {
448
+ $$payload3.out.push(`<div><label for="email">Email Address</label> <input name="email" type="email"${attr("value", user.email || "")} required/></div>`);
449
+ },
450
+ $$slots: { default: true }
451
+ });
452
+ $$payload2.out.push(`<!----> <div class="item info svelte-c74k6c"><p class="subtle svelte-c74k6c">User ID <dfn title="This is your UUID. It can't be changed.">`);
453
+ Icon($$payload2, { i: "regular/circle-info" });
454
+ $$payload2.out.push(`<!----></dfn></p> <p class="svelte-c74k6c">${escape_html(user.id)}</p> `);
455
+ css_props($$payload2, true, { "--size": "16px" }, () => {
456
+ ClipboardCopy($$payload2, { value: user.id });
457
+ });
458
+ $$payload2.out.push(`</div> <span><button class="signout svelte-c74k6c">Sign Out</button> <button class="danger"${attr_style("", { cursor: "pointer" })}>Delete Account</button> `);
459
+ Logout($$payload2, {
460
+ get dialog() {
461
+ return dialogs.logout;
462
+ },
463
+ set dialog($$value) {
464
+ dialogs.logout = $$value;
465
+ $$settled = false;
466
+ }
467
+ });
468
+ $$payload2.out.push(`<!----> `);
469
+ FormDialog($$payload2, {
470
+ submit: () => deleteUser(user.id).then(() => window.location.href = "/"),
471
+ submitText: "Delete Account",
472
+ submitDanger: true,
473
+ get dialog() {
474
+ return dialogs.delete;
475
+ },
476
+ set dialog($$value) {
477
+ dialogs.delete = $$value;
478
+ $$settled = false;
479
+ },
480
+ children: ($$payload3) => {
481
+ $$payload3.out.push(`<p>Are you sure you want to delete your account?<br/>This action can't be undone.</p>`);
482
+ },
483
+ $$slots: { default: true }
484
+ });
485
+ $$payload2.out.push(`<!----></span></div> <div class="section main svelte-c74k6c"><h3>Passkeys</h3> <!--[-->`);
486
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
487
+ let passkey = each_array[$$index];
488
+ $$payload2.out.push(`<div class="item passkey svelte-c74k6c"><dfn${attr("title", passkey.deviceType == "multiDevice" ? "Multiple devices" : "Single device")} class="svelte-c74k6c">`);
489
+ css_props($$payload2, true, { "--size": "16px" }, () => {
490
+ Icon($$payload2, {
491
+ i: passkey.deviceType == "multiDevice" ? "laptop-mobile" : "mobile"
492
+ });
493
+ });
494
+ $$payload2.out.push(`</dfn> <dfn${attr("title", `This passkey is ${stringify(passkey.backedUp ? "" : "not ")}backed up`)} class="svelte-c74k6c">`);
495
+ css_props($$payload2, true, { "--size": "16px" }, () => {
496
+ Icon($$payload2, { i: passkey.backedUp ? "circle-check" : "circle-xmark" });
497
+ });
498
+ $$payload2.out.push(`</dfn> `);
499
+ if (passkey.name) {
500
+ $$payload2.out.push("<!--[-->");
501
+ $$payload2.out.push(`<p>${escape_html(passkey.name)}</p>`);
502
+ } else {
503
+ $$payload2.out.push("<!--[!-->");
504
+ $$payload2.out.push(`<p class="subtle"><i>Unnamed</i></p>`);
505
+ }
506
+ $$payload2.out.push(`<!--]--> <p>Created ${escape_html(passkey.createdAt.toLocaleString())}</p> `);
507
+ action($$payload2, "edit_passkey#" + passkey.id);
508
+ $$payload2.out.push(`<!----> `);
509
+ if (passkeys.length > 1) {
510
+ $$payload2.out.push("<!--[-->");
511
+ action($$payload2, "delete_passkey#" + passkey.id, "trash");
512
+ } else {
513
+ $$payload2.out.push("<!--[!-->");
514
+ $$payload2.out.push(`<dfn title="You must have at least one passkey" class="disabled svelte-c74k6c">`);
515
+ css_props($$payload2, true, { "--fill": "#888", "--size": "16px" }, () => {
516
+ Icon($$payload2, { i: "trash-slash" });
517
+ });
518
+ $$payload2.out.push(`</dfn>`);
519
+ }
520
+ $$payload2.out.push(`<!--]--></div> `);
521
+ FormDialog($$payload2, {
522
+ submit: (data2) => {
523
+ if (typeof data2.name != "string") throw "Passkey name must be a string";
524
+ passkey.name = data2.name;
525
+ return updatePasskey(passkey.id, data2);
526
+ },
527
+ submitText: "Change",
528
+ get dialog() {
529
+ return dialogs["edit_passkey#" + passkey.id];
530
+ },
531
+ set dialog($$value) {
532
+ dialogs["edit_passkey#" + passkey.id] = $$value;
533
+ $$settled = false;
534
+ },
535
+ children: ($$payload3) => {
536
+ $$payload3.out.push(`<div><label for="name">Passkey Name</label> <input name="name" type="text"${attr("value", passkey.name || "")}/></div>`);
537
+ },
538
+ $$slots: { default: true }
539
+ });
540
+ $$payload2.out.push(`<!----> `);
541
+ FormDialog($$payload2, {
542
+ submit: () => deletePasskey(passkey.id).then(() => passkeys.splice(passkeys.indexOf(passkey), 1)),
543
+ submitText: "Delete",
544
+ submitDanger: true,
545
+ get dialog() {
546
+ return dialogs["delete_passkey#" + passkey.id];
547
+ },
548
+ set dialog($$value) {
549
+ dialogs["delete_passkey#" + passkey.id] = $$value;
550
+ $$settled = false;
551
+ },
552
+ children: ($$payload3) => {
553
+ $$payload3.out.push(`<p>Are you sure you want to delete this passkey?<br/>This action can't be undone.</p>`);
554
+ },
555
+ $$slots: { default: true }
556
+ });
557
+ $$payload2.out.push(`<!---->`);
558
+ }
559
+ $$payload2.out.push(`<!--]--> <span><button class="icon-text">`);
560
+ Icon($$payload2, { i: "plus" });
561
+ $$payload2.out.push(`<!----> Create</button></span></div> <div class="section main svelte-c74k6c"><h3>Sessions</h3> <!--[-->`);
562
+ for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
563
+ let session = each_array_1[$$index_1];
564
+ $$payload2.out.push(`<div class="item session svelte-c74k6c"><p>${escape_html(session.id.slice(0, 4))}...${escape_html(session.id.slice(-4))} `);
565
+ if (session.id == currentSession.id) {
566
+ $$payload2.out.push("<!--[-->");
567
+ $$payload2.out.push(`<span class="current svelte-c74k6c">Current</span>`);
568
+ } else {
569
+ $$payload2.out.push("<!--[!-->");
570
+ }
571
+ $$payload2.out.push(`<!--]--> `);
572
+ if (session.elevated) {
573
+ $$payload2.out.push("<!--[-->");
574
+ $$payload2.out.push(`<span class="elevated svelte-c74k6c">Elevated</span>`);
575
+ } else {
576
+ $$payload2.out.push("<!--[!-->");
577
+ }
578
+ $$payload2.out.push(`<!--]--></p> <p>Created ${escape_html(session.created.toLocaleString())}</p> <p>Expires ${escape_html(session.expires.toLocaleString())}</p> `);
579
+ action($$payload2, "logout#" + session.id, "right-from-bracket");
580
+ $$payload2.out.push(`<!----></div> `);
581
+ FormDialog($$payload2, {
582
+ submit: async () => {
583
+ await logout(user.id, session.id);
584
+ dialogs["logout#" + session.id].remove();
585
+ sessions.splice(sessions.indexOf(session), 1);
586
+ if (session.id == currentSession.id) window.location.href = "/";
587
+ },
588
+ submitText: "Logout",
589
+ get dialog() {
590
+ return dialogs["logout#" + session.id];
591
+ },
592
+ set dialog($$value) {
593
+ dialogs["logout#" + session.id] = $$value;
594
+ $$settled = false;
595
+ },
596
+ children: ($$payload3) => {
597
+ $$payload3.out.push(`<p>Are you sure you want to log out this session?</p>`);
598
+ },
599
+ $$slots: { default: true }
600
+ });
601
+ $$payload2.out.push(`<!---->`);
602
+ }
603
+ $$payload2.out.push(`<!--]--> <span><button class="danger">Logout All</button></span> `);
604
+ FormDialog($$payload2, {
605
+ submit: () => logoutAll(user.id).then(() => window.location.href = "/"),
606
+ submitText: "Logout All Sessions",
607
+ submitDanger: true,
608
+ get dialog() {
609
+ return dialogs["logout_all"];
610
+ },
611
+ set dialog($$value) {
612
+ dialogs["logout_all"] = $$value;
613
+ $$settled = false;
614
+ },
615
+ children: ($$payload3) => {
616
+ $$payload3.out.push(`<p>Are you sure you want to log out all sessions?</p>`);
617
+ },
618
+ $$slots: { default: true }
619
+ });
620
+ $$payload2.out.push(`<!----></div> <div class="section main svelte-c74k6c"><h3>Preferences</h3> `);
621
+ Preferences($$payload2, {
622
+ userId: user.id,
623
+ get preferences() {
624
+ return user.preferences;
625
+ },
626
+ set preferences($$value) {
627
+ user.preferences = $$value;
628
+ $$settled = false;
629
+ }
630
+ });
631
+ $$payload2.out.push(`<!----></div></div>`);
632
+ }
633
+ do {
634
+ $$settled = true;
635
+ $$inner_payload = copy_payload($$payload);
636
+ $$render_inner($$inner_payload);
637
+ } while (!$$settled);
638
+ assign_payload($$payload, $$inner_payload);
639
+ pop();
640
+ }
641
+
642
+ export { _page as default };
643
+ //# sourceMappingURL=_page.svelte-B_j_iDFj.js.map