@kozou/svelte-ui 0.0.1 → 0.1.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 (119) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +107 -1
  3. package/build/client/_app/immutable/assets/0.CZsFVllx.css +2 -0
  4. package/build/client/_app/immutable/assets/0.CZsFVllx.css.br +0 -0
  5. package/build/client/_app/immutable/assets/0.CZsFVllx.css.gz +0 -0
  6. package/build/client/_app/immutable/chunks/BpIM_fT8.js +2 -0
  7. package/build/client/_app/immutable/chunks/BpIM_fT8.js.br +0 -0
  8. package/build/client/_app/immutable/chunks/BpIM_fT8.js.gz +0 -0
  9. package/build/client/_app/immutable/chunks/C4vVozd5.js +4 -0
  10. package/build/client/_app/immutable/chunks/C4vVozd5.js.br +0 -0
  11. package/build/client/_app/immutable/chunks/C4vVozd5.js.gz +0 -0
  12. package/build/client/_app/immutable/chunks/Cu9GwMht.js +214 -0
  13. package/build/client/_app/immutable/chunks/Cu9GwMht.js.br +0 -0
  14. package/build/client/_app/immutable/chunks/Cu9GwMht.js.gz +0 -0
  15. package/build/client/_app/immutable/chunks/DQLVkJ9E.js +1 -0
  16. package/build/client/_app/immutable/chunks/DQLVkJ9E.js.br +0 -0
  17. package/build/client/_app/immutable/chunks/DQLVkJ9E.js.gz +0 -0
  18. package/build/client/_app/immutable/chunks/kNaey6uv.js +1 -0
  19. package/build/client/_app/immutable/chunks/kNaey6uv.js.br +0 -0
  20. package/build/client/_app/immutable/chunks/kNaey6uv.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/xihTtKlq.js +1 -0
  22. package/build/client/_app/immutable/chunks/xihTtKlq.js.br +1 -0
  23. package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
  24. package/build/client/_app/immutable/entry/app.D4C-SzYE.js +2 -0
  25. package/build/client/_app/immutable/entry/app.D4C-SzYE.js.br +0 -0
  26. package/build/client/_app/immutable/entry/app.D4C-SzYE.js.gz +0 -0
  27. package/build/client/_app/immutable/entry/start.BgPykZWX.js +1 -0
  28. package/build/client/_app/immutable/entry/start.BgPykZWX.js.br +0 -0
  29. package/build/client/_app/immutable/entry/start.BgPykZWX.js.gz +0 -0
  30. package/build/client/_app/immutable/nodes/0.Ct90k1ZK.js +1 -0
  31. package/build/client/_app/immutable/nodes/0.Ct90k1ZK.js.br +0 -0
  32. package/build/client/_app/immutable/nodes/0.Ct90k1ZK.js.gz +0 -0
  33. package/build/client/_app/immutable/nodes/1.ByzpIkVa.js +1 -0
  34. package/build/client/_app/immutable/nodes/1.ByzpIkVa.js.br +0 -0
  35. package/build/client/_app/immutable/nodes/1.ByzpIkVa.js.gz +0 -0
  36. package/build/client/_app/immutable/nodes/2.DKSRkbg2.js +1 -0
  37. package/build/client/_app/immutable/nodes/2.DKSRkbg2.js.br +0 -0
  38. package/build/client/_app/immutable/nodes/2.DKSRkbg2.js.gz +0 -0
  39. package/build/client/_app/immutable/nodes/3.BRseKH3J.js +1 -0
  40. package/build/client/_app/immutable/nodes/3.BRseKH3J.js.br +0 -0
  41. package/build/client/_app/immutable/nodes/3.BRseKH3J.js.gz +0 -0
  42. package/build/client/_app/immutable/nodes/4.hHssvcSO.js +1 -0
  43. package/build/client/_app/immutable/nodes/4.hHssvcSO.js.br +0 -0
  44. package/build/client/_app/immutable/nodes/4.hHssvcSO.js.gz +0 -0
  45. package/build/client/_app/immutable/nodes/5.CfrPDIy5.js +1 -0
  46. package/build/client/_app/immutable/nodes/5.CfrPDIy5.js.br +0 -0
  47. package/build/client/_app/immutable/nodes/5.CfrPDIy5.js.gz +0 -0
  48. package/build/client/_app/immutable/nodes/6.nxvsG8yx.js +1 -0
  49. package/build/client/_app/immutable/nodes/6.nxvsG8yx.js.br +3 -0
  50. package/build/client/_app/immutable/nodes/6.nxvsG8yx.js.gz +0 -0
  51. package/build/client/_app/immutable/nodes/7.Bfhyc_gZ.js +1 -0
  52. package/build/client/_app/immutable/nodes/7.Bfhyc_gZ.js.br +0 -0
  53. package/build/client/_app/immutable/nodes/7.Bfhyc_gZ.js.gz +0 -0
  54. package/build/client/_app/version.json +1 -0
  55. package/build/client/_app/version.json.br +0 -0
  56. package/build/client/_app/version.json.gz +0 -0
  57. package/build/env.js +94 -0
  58. package/build/handler.js +1494 -0
  59. package/build/index.js +345 -0
  60. package/build/server/chunks/0-BFDPzvW-.js +24 -0
  61. package/build/server/chunks/0-BFDPzvW-.js.map +1 -0
  62. package/build/server/chunks/1-Dmzzx_Xf.js +9 -0
  63. package/build/server/chunks/1-Dmzzx_Xf.js.map +1 -0
  64. package/build/server/chunks/2-B1IcZygX.js +35 -0
  65. package/build/server/chunks/2-B1IcZygX.js.map +1 -0
  66. package/build/server/chunks/3-BVIqnkRy.js +70 -0
  67. package/build/server/chunks/3-BVIqnkRy.js.map +1 -0
  68. package/build/server/chunks/4-BeHrsGek.js +103 -0
  69. package/build/server/chunks/4-BeHrsGek.js.map +1 -0
  70. package/build/server/chunks/5-Cw01QEjm.js +69 -0
  71. package/build/server/chunks/5-Cw01QEjm.js.map +1 -0
  72. package/build/server/chunks/6-DdCU04G4.js +70 -0
  73. package/build/server/chunks/6-DdCU04G4.js.map +1 -0
  74. package/build/server/chunks/7-BJeosbkA.js +66 -0
  75. package/build/server/chunks/7-BJeosbkA.js.map +1 -0
  76. package/build/server/chunks/_layout.svelte-ClzaQTuQ.js +15 -0
  77. package/build/server/chunks/_layout.svelte-ClzaQTuQ.js.map +1 -0
  78. package/build/server/chunks/_page.svelte-B8Bnkzob.js +78 -0
  79. package/build/server/chunks/_page.svelte-B8Bnkzob.js.map +1 -0
  80. package/build/server/chunks/_page.svelte-BN1au56r.js +51 -0
  81. package/build/server/chunks/_page.svelte-BN1au56r.js.map +1 -0
  82. package/build/server/chunks/_page.svelte-Bu4SlGir.js +86 -0
  83. package/build/server/chunks/_page.svelte-Bu4SlGir.js.map +1 -0
  84. package/build/server/chunks/_page.svelte-DHhstcmi.js +70 -0
  85. package/build/server/chunks/_page.svelte-DHhstcmi.js.map +1 -0
  86. package/build/server/chunks/_page.svelte-DKhYDtNl.js +86 -0
  87. package/build/server/chunks/_page.svelte-DKhYDtNl.js.map +1 -0
  88. package/build/server/chunks/_page.svelte-DYlwwhHn.js +70 -0
  89. package/build/server/chunks/_page.svelte-DYlwwhHn.js.map +1 -0
  90. package/build/server/chunks/adapter-DSZ-_PM_.js +273 -0
  91. package/build/server/chunks/adapter-DSZ-_PM_.js.map +1 -0
  92. package/build/server/chunks/app-DST8OmzT.js +12 -0
  93. package/build/server/chunks/app-DST8OmzT.js.map +1 -0
  94. package/build/server/chunks/client-Bcpj9QFB.js +69 -0
  95. package/build/server/chunks/client-Bcpj9QFB.js.map +1 -0
  96. package/build/server/chunks/dev-yFiAtg5l.js +4498 -0
  97. package/build/server/chunks/dev-yFiAtg5l.js.map +1 -0
  98. package/build/server/chunks/error.svelte-1lnafu4q.js +68 -0
  99. package/build/server/chunks/error.svelte-1lnafu4q.js.map +1 -0
  100. package/build/server/chunks/hooks.server-BBW_dqIs.js +14060 -0
  101. package/build/server/chunks/hooks.server-BBW_dqIs.js.map +1 -0
  102. package/build/server/chunks/index-5kYmxIr9.js +191 -0
  103. package/build/server/chunks/index-5kYmxIr9.js.map +1 -0
  104. package/build/server/chunks/index-DBqjc0Yf.js +77 -0
  105. package/build/server/chunks/index-DBqjc0Yf.js.map +1 -0
  106. package/build/server/chunks/internal-BrzrGF6g.js +1757 -0
  107. package/build/server/chunks/internal-BrzrGF6g.js.map +1 -0
  108. package/build/server/chunks/list-params-DjWk7B1o.js +44 -0
  109. package/build/server/chunks/list-params-DjWk7B1o.js.map +1 -0
  110. package/build/server/chunks/widget-registry-CYJ6dCZP.js +242 -0
  111. package/build/server/chunks/widget-registry-CYJ6dCZP.js.map +1 -0
  112. package/build/server/chunks/zod-from-table-Cqu9YCfY.js +6923 -0
  113. package/build/server/chunks/zod-from-table-Cqu9YCfY.js.map +1 -0
  114. package/build/server/index.js +4447 -0
  115. package/build/server/index.js.map +1 -0
  116. package/build/server/manifest.js +86 -0
  117. package/build/server/manifest.js.map +1 -0
  118. package/build/shims.js +32 -0
  119. package/package.json +71 -4
@@ -0,0 +1,69 @@
1
+ import { g as getAdapter } from './adapter-DSZ-_PM_.js';
2
+ import { a as superValidate, z as zod, c as zodFromTable, b as buildMutationPayload } from './zod-from-table-Cqu9YCfY.js';
3
+ import { e as error, f as fail, r as redirect } from './index-5kYmxIr9.js';
4
+ import './internal-BrzrGF6g.js';
5
+ import 'node:module';
6
+ import './dev-yFiAtg5l.js';
7
+ import 'clsx';
8
+ import './index-DBqjc0Yf.js';
9
+ import './client-Bcpj9QFB.js';
10
+ import './app-DST8OmzT.js';
11
+ import 'zod/v4/core';
12
+ import 'zod';
13
+
14
+ //#region src/routes/tables/[table]/[id]/edit/+page.server.ts
15
+ function findTable(tables, slug) {
16
+ return tables.find((t) => t.qualifiedName === slug) ?? null;
17
+ }
18
+ function tableViewModel(table) {
19
+ return {
20
+ qualifiedName: table.qualifiedName,
21
+ label: table.label,
22
+ primaryKey: table.primaryKey,
23
+ columns: table.columns.map((c) => ({
24
+ name: c.name,
25
+ label: c.label,
26
+ widget: c.widget,
27
+ enumValues: c.enumValues ?? [],
28
+ nullable: c.nullable,
29
+ readonly: c.readonly || c.isPrimaryKey,
30
+ isPrimaryKey: c.isPrimaryKey
31
+ }))
32
+ };
33
+ }
34
+ var load = async ({ params, locals }) => {
35
+ const table = findTable(locals.schema.tables, params.table);
36
+ if (!table) throw error(404, `Unknown table: ${params.table}`);
37
+ const form = await superValidate(await getAdapter().get(table.qualifiedName, params.id), zod(zodFromTable(table)));
38
+ return {
39
+ table: tableViewModel(table),
40
+ form,
41
+ id: params.id
42
+ };
43
+ };
44
+ var actions = { default: async ({ request, params, locals }) => {
45
+ const table = findTable(locals.schema.tables, params.table);
46
+ if (!table) throw error(404, `Unknown table: ${params.table}`);
47
+ const form = await superValidate(request, zod(zodFromTable(table)));
48
+ if (!form.valid) return fail(400, { form });
49
+ const payload = buildMutationPayload(table, form.data);
50
+ await getAdapter().update(table.qualifiedName, params.id, payload);
51
+ throw redirect(303, `/tables/${table.qualifiedName}/${params.id}`);
52
+ } };
53
+
54
+ var _page_server_ts = /*#__PURE__*/Object.freeze({
55
+ __proto__: null,
56
+ actions: actions,
57
+ load: load
58
+ });
59
+
60
+ const index = 5;
61
+ let component_cache;
62
+ const component = async () => component_cache ??= (await import('./_page.svelte-DHhstcmi.js')).default;
63
+ const server_id = "src/routes/tables/[table]/[id]/edit/+page.server.ts";
64
+ const imports = ["_app/immutable/nodes/5.CfrPDIy5.js","_app/immutable/chunks/BpIM_fT8.js","_app/immutable/chunks/Cu9GwMht.js","_app/immutable/chunks/C4vVozd5.js","_app/immutable/chunks/DQLVkJ9E.js","_app/immutable/chunks/xihTtKlq.js"];
65
+ const stylesheets = [];
66
+ const fonts = [];
67
+
68
+ export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
69
+ //# sourceMappingURL=5-Cw01QEjm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"5-Cw01QEjm.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/_id_/edit/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/5.js"],"sourcesContent":["import { t as getAdapter } from \"../../../../../../chunks/adapter.js\";\nimport { t as superValidate } from \"../../../../../../chunks/dist.js\";\nimport { n as buildMutationPayload, r as zod, t as zodFromTable } from \"../../../../../../chunks/zod-from-table.js\";\nimport { error, fail, redirect } from \"@sveltejs/kit\";\n//#region src/routes/tables/[table]/[id]/edit/+page.server.ts\nfunction findTable(tables, slug) {\n\treturn tables.find((t) => t.qualifiedName === slug) ?? null;\n}\nfunction tableViewModel(table) {\n\treturn {\n\t\tqualifiedName: table.qualifiedName,\n\t\tlabel: table.label,\n\t\tprimaryKey: table.primaryKey,\n\t\tcolumns: table.columns.map((c) => ({\n\t\t\tname: c.name,\n\t\t\tlabel: c.label,\n\t\t\twidget: c.widget,\n\t\t\tenumValues: c.enumValues ?? [],\n\t\t\tnullable: c.nullable,\n\t\t\treadonly: c.readonly || c.isPrimaryKey,\n\t\t\tisPrimaryKey: c.isPrimaryKey\n\t\t}))\n\t};\n}\nvar load = async ({ params, locals }) => {\n\tconst table = findTable(locals.schema.tables, params.table);\n\tif (!table) throw error(404, `Unknown table: ${params.table}`);\n\tconst form = await superValidate(await getAdapter().get(table.qualifiedName, params.id), zod(zodFromTable(table)));\n\treturn {\n\t\ttable: tableViewModel(table),\n\t\tform,\n\t\tid: params.id\n\t};\n};\nvar actions = { default: async ({ request, params, locals }) => {\n\tconst table = findTable(locals.schema.tables, params.table);\n\tif (!table) throw error(404, `Unknown table: ${params.table}`);\n\tconst form = await superValidate(request, zod(zodFromTable(table)));\n\tif (!form.valid) return fail(400, { form });\n\tconst payload = buildMutationPayload(table, form.data);\n\tawait getAdapter().update(table.qualifiedName, params.id, payload);\n\tthrow redirect(303, `/tables/${table.qualifiedName}/${params.id}`);\n} };\n//#endregion\nexport { actions, load };\n","import * as server from '../entries/pages/tables/_table_/_id_/edit/_page.server.ts.js';\n\nexport const index = 5;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/tables/_table_/_id_/edit/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/tables/[table]/[id]/edit/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/5.CfrPDIy5.js\",\"_app/immutable/chunks/BpIM_fT8.js\",\"_app/immutable/chunks/Cu9GwMht.js\",\"_app/immutable/chunks/C4vVozd5.js\",\"_app/immutable/chunks/DQLVkJ9E.js\",\"_app/immutable/chunks/xihTtKlq.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;;;;;AAIA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE;AACjC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,IAAI;AAC5D;AACA,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,CAAC,OAAO;AACR,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa;AACpC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK;AACpB,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU;AAC9B,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACrC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI;AACf,GAAG,KAAK,EAAE,CAAC,CAAC,KAAK;AACjB,GAAG,MAAM,EAAE,CAAC,CAAC,MAAM;AACnB,GAAG,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;AACjC,GAAG,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACvB,GAAG,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,YAAY;AACzC,GAAG,YAAY,EAAE,CAAC,CAAC;AACnB,GAAG,CAAC;AACJ,EAAE;AACF;AACA,IAAI,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AACzC,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;AAC5D,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,CAAC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACnH,CAAC,OAAO;AACR,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;AAC9B,EAAE,IAAI;AACN,EAAE,EAAE,EAAE,MAAM,CAAC;AACb,EAAE;AACF,CAAC;AACD,IAAI,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAChE,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;AAC5D,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,CAAC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;AAC5C,CAAC,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;AACvD,CAAC,MAAM,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;AACnE,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC,EAAE;;;;;;;;ACxCS,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA2D,CAAC,EAAE;AAEzH,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,70 @@
1
+ import { g as getAdapter } from './adapter-DSZ-_PM_.js';
2
+ import { a as superValidate, z as zod, c as zodFromTable, b as buildMutationPayload } from './zod-from-table-Cqu9YCfY.js';
3
+ import { e as error, f as fail, r as redirect } from './index-5kYmxIr9.js';
4
+ import './internal-BrzrGF6g.js';
5
+ import 'node:module';
6
+ import './dev-yFiAtg5l.js';
7
+ import 'clsx';
8
+ import './index-DBqjc0Yf.js';
9
+ import './client-Bcpj9QFB.js';
10
+ import './app-DST8OmzT.js';
11
+ import 'zod/v4/core';
12
+ import 'zod';
13
+
14
+ //#region src/routes/tables/[table]/new/+page.server.ts
15
+ function findTable(tables, slug) {
16
+ return tables.find((t) => t.qualifiedName === slug) ?? null;
17
+ }
18
+ function tableViewModel(table) {
19
+ return {
20
+ qualifiedName: table.qualifiedName,
21
+ label: table.label,
22
+ primaryKey: table.primaryKey,
23
+ columns: table.columns.map((c) => ({
24
+ name: c.name,
25
+ label: c.label,
26
+ widget: c.widget,
27
+ enumValues: c.enumValues ?? [],
28
+ nullable: c.nullable,
29
+ readonly: c.readonly || c.isPrimaryKey && c.defaultExpr !== null,
30
+ isPrimaryKey: c.isPrimaryKey
31
+ }))
32
+ };
33
+ }
34
+ var load = async ({ params, locals }) => {
35
+ const table = findTable(locals.schema.tables, params.table);
36
+ if (!table) throw error(404, `Unknown table: ${params.table}`);
37
+ const form = await superValidate(zod(zodFromTable(table)));
38
+ return {
39
+ table: tableViewModel(table),
40
+ form
41
+ };
42
+ };
43
+ var actions = { default: async ({ request, params, locals }) => {
44
+ const table = findTable(locals.schema.tables, params.table);
45
+ if (!table) throw error(404, `Unknown table: ${params.table}`);
46
+ const form = await superValidate(request, zod(zodFromTable(table)));
47
+ if (!form.valid) return fail(400, { form });
48
+ const payload = buildMutationPayload(table, form.data);
49
+ const created = await getAdapter().create(table.qualifiedName, payload);
50
+ const pkField = table.primaryKey[0];
51
+ const id = pkField !== void 0 && created[pkField] !== void 0 ? String(created[pkField]) : "";
52
+ throw redirect(303, id.length > 0 ? `/tables/${table.qualifiedName}/${id}` : `/tables/${table.qualifiedName}`);
53
+ } };
54
+
55
+ var _page_server_ts = /*#__PURE__*/Object.freeze({
56
+ __proto__: null,
57
+ actions: actions,
58
+ load: load
59
+ });
60
+
61
+ const index = 6;
62
+ let component_cache;
63
+ const component = async () => component_cache ??= (await import('./_page.svelte-DYlwwhHn.js')).default;
64
+ const server_id = "src/routes/tables/[table]/new/+page.server.ts";
65
+ const imports = ["_app/immutable/nodes/6.nxvsG8yx.js","_app/immutable/chunks/BpIM_fT8.js","_app/immutable/chunks/Cu9GwMht.js","_app/immutable/chunks/C4vVozd5.js","_app/immutable/chunks/DQLVkJ9E.js","_app/immutable/chunks/xihTtKlq.js"];
66
+ const stylesheets = [];
67
+ const fonts = [];
68
+
69
+ export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
70
+ //# sourceMappingURL=6-DdCU04G4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"6-DdCU04G4.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/new/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["import { t as getAdapter } from \"../../../../../chunks/adapter.js\";\nimport { t as superValidate } from \"../../../../../chunks/dist.js\";\nimport { n as buildMutationPayload, r as zod, t as zodFromTable } from \"../../../../../chunks/zod-from-table.js\";\nimport { error, fail, redirect } from \"@sveltejs/kit\";\n//#region src/routes/tables/[table]/new/+page.server.ts\nfunction findTable(tables, slug) {\n\treturn tables.find((t) => t.qualifiedName === slug) ?? null;\n}\nfunction tableViewModel(table) {\n\treturn {\n\t\tqualifiedName: table.qualifiedName,\n\t\tlabel: table.label,\n\t\tprimaryKey: table.primaryKey,\n\t\tcolumns: table.columns.map((c) => ({\n\t\t\tname: c.name,\n\t\t\tlabel: c.label,\n\t\t\twidget: c.widget,\n\t\t\tenumValues: c.enumValues ?? [],\n\t\t\tnullable: c.nullable,\n\t\t\treadonly: c.readonly || c.isPrimaryKey && c.defaultExpr !== null,\n\t\t\tisPrimaryKey: c.isPrimaryKey\n\t\t}))\n\t};\n}\nvar load = async ({ params, locals }) => {\n\tconst table = findTable(locals.schema.tables, params.table);\n\tif (!table) throw error(404, `Unknown table: ${params.table}`);\n\tconst form = await superValidate(zod(zodFromTable(table)));\n\treturn {\n\t\ttable: tableViewModel(table),\n\t\tform\n\t};\n};\nvar actions = { default: async ({ request, params, locals }) => {\n\tconst table = findTable(locals.schema.tables, params.table);\n\tif (!table) throw error(404, `Unknown table: ${params.table}`);\n\tconst form = await superValidate(request, zod(zodFromTable(table)));\n\tif (!form.valid) return fail(400, { form });\n\tconst payload = buildMutationPayload(table, form.data);\n\tconst created = await getAdapter().create(table.qualifiedName, payload);\n\tconst pkField = table.primaryKey[0];\n\tconst id = pkField !== void 0 && created[pkField] !== void 0 ? String(created[pkField]) : \"\";\n\tthrow redirect(303, id.length > 0 ? `/tables/${table.qualifiedName}/${id}` : `/tables/${table.qualifiedName}`);\n} };\n//#endregion\nexport { actions, load };\n","import * as server from '../entries/pages/tables/_table_/new/_page.server.ts.js';\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/tables/_table_/new/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/tables/[table]/new/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/6.nxvsG8yx.js\",\"_app/immutable/chunks/BpIM_fT8.js\",\"_app/immutable/chunks/Cu9GwMht.js\",\"_app/immutable/chunks/C4vVozd5.js\",\"_app/immutable/chunks/DQLVkJ9E.js\",\"_app/immutable/chunks/xihTtKlq.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { g as getAdapter } from './adapter-DSZ-_PM_.js';
2
+ import { p as parseListParamsFromUrl } from './list-params-DjWk7B1o.js';
3
+ import { e as error } from './index-5kYmxIr9.js';
4
+ import './index-DBqjc0Yf.js';
5
+
6
+ //#region src/lib/view/columns.ts
7
+ var DISPLAY_COLUMN_LIMIT = 5;
8
+ var TEXT_LIKE_TYPE_PREFIXES = [
9
+ "text",
10
+ "character",
11
+ "varchar",
12
+ "citext",
13
+ "name",
14
+ "uuid"
15
+ ];
16
+ function pickViewDisplayColumns(view) {
17
+ return view.columns.slice(0, DISPLAY_COLUMN_LIMIT);
18
+ }
19
+ function pickViewSearchFields(view) {
20
+ return view.columns.filter((c) => TEXT_LIKE_TYPE_PREFIXES.some((prefix) => c.dataType.toLowerCase().startsWith(prefix))).map((c) => c.name);
21
+ }
22
+ //#endregion
23
+ //#region src/routes/views/[view]/+page.server.ts
24
+ var load = async ({ params, locals, url }) => {
25
+ const view = locals.schema.views.find((v) => v.qualifiedName === params.view);
26
+ if (!view) throw error(404, `Unknown view: ${params.view}`);
27
+ const displayColumns = pickViewDisplayColumns(view);
28
+ const listParams = parseListParamsFromUrl({
29
+ url,
30
+ searchFields: pickViewSearchFields(view)
31
+ });
32
+ const result = await getAdapter().list(view.qualifiedName, listParams);
33
+ return {
34
+ view: {
35
+ qualifiedName: view.qualifiedName,
36
+ label: view.label,
37
+ columns: displayColumns.map((c) => ({
38
+ name: c.name,
39
+ label: c.label
40
+ }))
41
+ },
42
+ list: result,
43
+ listParams: {
44
+ search: listParams.search,
45
+ sort: listParams.sort,
46
+ page: listParams.page,
47
+ pageSize: listParams.pageSize
48
+ }
49
+ };
50
+ };
51
+
52
+ var _page_server_ts = /*#__PURE__*/Object.freeze({
53
+ __proto__: null,
54
+ load: load
55
+ });
56
+
57
+ const index = 7;
58
+ let component_cache;
59
+ const component = async () => component_cache ??= (await import('./_page.svelte-B8Bnkzob.js')).default;
60
+ const server_id = "src/routes/views/[view]/+page.server.ts";
61
+ const imports = ["_app/immutable/nodes/7.Bfhyc_gZ.js","_app/immutable/chunks/BpIM_fT8.js","_app/immutable/chunks/xihTtKlq.js"];
62
+ const stylesheets = [];
63
+ const fonts = [];
64
+
65
+ export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
66
+ //# sourceMappingURL=7-BJeosbkA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"7-BJeosbkA.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/views/_view_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["import { t as getAdapter } from \"../../../../chunks/adapter.js\";\nimport { t as parseListParamsFromUrl } from \"../../../../chunks/list-params.js\";\nimport { error } from \"@sveltejs/kit\";\n//#region src/lib/view/columns.ts\nvar DISPLAY_COLUMN_LIMIT = 5;\nvar TEXT_LIKE_TYPE_PREFIXES = [\n\t\"text\",\n\t\"character\",\n\t\"varchar\",\n\t\"citext\",\n\t\"name\",\n\t\"uuid\"\n];\nfunction pickViewDisplayColumns(view) {\n\treturn view.columns.slice(0, DISPLAY_COLUMN_LIMIT);\n}\nfunction pickViewSearchFields(view) {\n\treturn view.columns.filter((c) => TEXT_LIKE_TYPE_PREFIXES.some((prefix) => c.dataType.toLowerCase().startsWith(prefix))).map((c) => c.name);\n}\n//#endregion\n//#region src/routes/views/[view]/+page.server.ts\nvar load = async ({ params, locals, url }) => {\n\tconst view = locals.schema.views.find((v) => v.qualifiedName === params.view);\n\tif (!view) throw error(404, `Unknown view: ${params.view}`);\n\tconst displayColumns = pickViewDisplayColumns(view);\n\tconst listParams = parseListParamsFromUrl({\n\t\turl,\n\t\tsearchFields: pickViewSearchFields(view)\n\t});\n\tconst result = await getAdapter().list(view.qualifiedName, listParams);\n\treturn {\n\t\tview: {\n\t\t\tqualifiedName: view.qualifiedName,\n\t\t\tlabel: view.label,\n\t\t\tcolumns: displayColumns.map((c) => ({\n\t\t\t\tname: c.name,\n\t\t\t\tlabel: c.label\n\t\t\t}))\n\t\t},\n\t\tlist: result,\n\t\tlistParams: {\n\t\t\tsearch: listParams.search,\n\t\t\tsort: listParams.sort,\n\t\t\tpage: listParams.page,\n\t\t\tpageSize: listParams.pageSize\n\t\t}\n\t};\n};\n//#endregion\nexport { load };\n","import * as server from '../entries/pages/views/_view_/_page.server.ts.js';\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/views/_view_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/views/[view]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/7.Bfhyc_gZ.js\",\"_app/immutable/chunks/BpIM_fT8.js\",\"_app/immutable/chunks/xihTtKlq.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;AAGA;AACA,IAAI,oBAAoB,GAAG,CAAC;AAC5B,IAAI,uBAAuB,GAAG;AAC9B,CAAC,MAAM;AACP,CAAC,WAAW;AACZ,CAAC,SAAS;AACV,CAAC,QAAQ;AACT,CAAC,MAAM;AACP,CAAC;AACD,CAAC;AACD,SAAS,sBAAsB,CAAC,IAAI,EAAE;AACtC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC;AACnD;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AAC5I;AACA;AACA;AACA,IAAI,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AAC9C,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,IAAI,CAAC;AAC9E,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC;AACpD,CAAC,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAC3C,EAAE,GAAG;AACL,EAAE,YAAY,EAAE,oBAAoB,CAAC,IAAI;AACzC,EAAE,CAAC;AACH,CAAC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;AACvE,CAAC,OAAO;AACR,EAAE,IAAI,EAAE;AACR,GAAG,aAAa,EAAE,IAAI,CAAC,aAAa;AACpC,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK;AACpB,GAAG,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACvC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI;AAChB,IAAI,KAAK,EAAE,CAAC,CAAC;AACb,IAAI,CAAC;AACL,GAAG;AACH,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,UAAU,CAAC,MAAM;AAC5B,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI;AACxB,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI;AACxB,GAAG,QAAQ,EAAE,UAAU,CAAC;AACxB;AACA,EAAE;AACF,CAAC;;;;;;;AC7CW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA+C,CAAC,EAAE;AAE7G,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC;AACxH,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,15 @@
1
+ import { q as escape_html } from './dev-yFiAtg5l.js';
2
+ import 'clsx';
3
+
4
+ //#region src/routes/+layout.svelte
5
+ function _layout($$renderer, $$props) {
6
+ $$renderer.component(($$renderer) => {
7
+ let { data, children } = $$props;
8
+ $$renderer.push(`<div class="min-h-screen bg-background text-foreground"><header class="border-b border-border"><div class="mx-auto flex max-w-5xl items-center justify-between px-6 py-4"><a href="/" class="text-lg font-semibold">${escape_html(data.appName)}</a> <nav class="flex items-center gap-4 text-sm text-muted-foreground"><span>${escape_html(data.tableCount)} tables</span> <span aria-hidden="true">/</span> <span>${escape_html(data.viewCount)} views</span></nav></div></header> <main class="mx-auto max-w-5xl px-6 py-8">`);
9
+ children($$renderer);
10
+ $$renderer.push(`<!----></main></div>`);
11
+ });
12
+ }
13
+
14
+ export { _layout as default };
15
+ //# sourceMappingURL=_layout.svelte-ClzaQTuQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_layout.svelte-ClzaQTuQ.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.svelte.js"],"sourcesContent":["import { H as escape_html } from \"../../chunks/dev.js\";\n//#region src/routes/+layout.svelte\nfunction _layout($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data, children } = $$props;\n\t\t$$renderer.push(`<div class=\"min-h-screen bg-background text-foreground\"><header class=\"border-b border-border\"><div class=\"mx-auto flex max-w-5xl items-center justify-between px-6 py-4\"><a href=\"/\" class=\"text-lg font-semibold\">${escape_html(data.appName)}</a> <nav class=\"flex items-center gap-4 text-sm text-muted-foreground\"><span>${escape_html(data.tableCount)} tables</span> <span aria-hidden=\"true\">/</span> <span>${escape_html(data.viewCount)} views</span></nav></div></header> <main class=\"mx-auto max-w-5xl px-6 py-8\">`);\n\t\tchildren($$renderer);\n\t\t$$renderer.push(`<!----></main></div>`);\n\t});\n}\n//#endregion\nexport { _layout as default };\n"],"names":[],"mappings":";;;AACA;AACA,SAAS,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE;AACtC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO;AAClC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,oNAAoN,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,8EAA8E,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,uDAAuD,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,6EAA6E,CAAC,CAAC;AACphB,EAAE,QAAQ,CAAC,UAAU,CAAC;AACtB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -0,0 +1,78 @@
1
+ import { q as escape_html, d as attr, o as ensure_array_like, m as derived } from './dev-yFiAtg5l.js';
2
+ import 'clsx';
3
+
4
+ //#region src/routes/views/[view]/+page.svelte
5
+ function _page($$renderer, $$props) {
6
+ $$renderer.component(($$renderer) => {
7
+ let { data } = $$props;
8
+ const sortLookup = derived(() => new Map(data.listParams.sort.map((s) => [s.field, s.order])));
9
+ const totalPages = derived(() => Math.max(1, Math.ceil(data.list.total / data.list.pageSize)));
10
+ function buildHref(overrides) {
11
+ const params = new URLSearchParams();
12
+ if (data.listParams.search.length > 0) params.set("q", data.listParams.search);
13
+ if (data.listParams.sort.length > 0) params.set("sort", data.listParams.sort.map((s) => `${s.field}:${s.order}`).join(","));
14
+ if (data.listParams.page > 1) params.set("page", String(data.listParams.page));
15
+ if (data.listParams.pageSize !== 50) params.set("pageSize", String(data.listParams.pageSize));
16
+ for (const [key, value] of Object.entries(overrides)) if (value === null) params.delete(key);
17
+ else params.set(key, value);
18
+ const query = params.toString();
19
+ return query.length > 0 ? `?${query}` : ".";
20
+ }
21
+ function buildSortHref(field) {
22
+ return buildHref({
23
+ sort: `${field}:${sortLookup().get(field) === "asc" ? "desc" : "asc"}`,
24
+ page: null
25
+ });
26
+ }
27
+ function formatCell(value) {
28
+ if (value === null || value === void 0) return "";
29
+ if (typeof value === "object") return JSON.stringify(value);
30
+ return String(value);
31
+ }
32
+ $$renderer.push(`<h1 class="mb-1 text-2xl font-semibold">${escape_html(data.view.label)}</h1> <p class="mb-6 text-sm text-muted-foreground">${escape_html(data.view.qualifiedName)}</p> <form method="GET" class="mb-4 flex flex-wrap items-center gap-2"><input type="text" name="q"${attr("value", data.listParams.search)} placeholder="Search…" class="min-w-0 flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm"/> <button type="submit" class="rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground">Search</button></form> <div class="overflow-x-auto rounded-md border border-border"><table class="min-w-full text-sm"><thead class="bg-muted"><tr><!--[-->`);
33
+ const each_array = ensure_array_like(data.view.columns);
34
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
35
+ let col = each_array[$$index];
36
+ $$renderer.push(`<th class="px-3 py-2 text-left font-medium"><a${attr("href", buildSortHref(col.name))} class="hover:underline">${escape_html(col.label)} `);
37
+ if (sortLookup().has(col.name)) {
38
+ $$renderer.push("<!--[0-->");
39
+ $$renderer.push(`<span aria-hidden="true">${escape_html(sortLookup().get(col.name) === "asc" ? "↑" : "↓")}</span>`);
40
+ } else $$renderer.push("<!--[-1-->");
41
+ $$renderer.push(`<!--]--></a></th>`);
42
+ }
43
+ $$renderer.push(`<!--]--></tr></thead><tbody>`);
44
+ if (data.list.rows.length === 0) {
45
+ $$renderer.push("<!--[0-->");
46
+ $$renderer.push(`<tr><td${attr("colspan", data.view.columns.length)} class="px-3 py-6 text-center text-muted-foreground">No rows.</td></tr>`);
47
+ } else {
48
+ $$renderer.push("<!--[-1-->");
49
+ $$renderer.push(`<!--[-->`);
50
+ const each_array_1 = ensure_array_like(data.list.rows);
51
+ for (let idx = 0, $$length = each_array_1.length; idx < $$length; idx++) {
52
+ let row = each_array_1[idx];
53
+ $$renderer.push(`<tr class="border-t border-border"><!--[-->`);
54
+ const each_array_2 = ensure_array_like(data.view.columns);
55
+ for (let $$index_1 = 0, $$length = each_array_2.length; $$index_1 < $$length; $$index_1++) {
56
+ let col = each_array_2[$$index_1];
57
+ $$renderer.push(`<td class="px-3 py-2">${escape_html(formatCell(row[col.name]))}</td>`);
58
+ }
59
+ $$renderer.push(`<!--]--></tr>`);
60
+ }
61
+ $$renderer.push(`<!--]-->`);
62
+ }
63
+ $$renderer.push(`<!--]--></tbody></table></div> <nav class="mt-4 flex items-center justify-between text-sm"><span class="text-muted-foreground">Page ${escape_html(data.listParams.page)} of ${escape_html(totalPages())} (${escape_html(data.list.total)} total)</span> <div class="flex gap-2">`);
64
+ if (data.listParams.page > 1) {
65
+ $$renderer.push("<!--[0-->");
66
+ $$renderer.push(`<a${attr("href", buildHref({ page: String(data.listParams.page - 1) }))} class="rounded-md border border-border px-3 py-1">← Prev</a>`);
67
+ } else $$renderer.push("<!--[-1-->");
68
+ $$renderer.push(`<!--]--> `);
69
+ if (data.listParams.page < totalPages()) {
70
+ $$renderer.push("<!--[0-->");
71
+ $$renderer.push(`<a${attr("href", buildHref({ page: String(data.listParams.page + 1) }))} class="rounded-md border border-border px-3 py-1">Next →</a>`);
72
+ } else $$renderer.push("<!--[-1-->");
73
+ $$renderer.push(`<!--]--></div></nav>`);
74
+ });
75
+ }
76
+
77
+ export { _page as default };
78
+ //# sourceMappingURL=_page.svelte-B8Bnkzob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-B8Bnkzob.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/views/_view_/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, i as ensure_array_like, r as derived } from \"../../../../chunks/dev.js\";\n//#region src/routes/views/[view]/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\tconst sortLookup = derived(() => new Map(data.listParams.sort.map((s) => [s.field, s.order])));\n\t\tconst totalPages = derived(() => Math.max(1, Math.ceil(data.list.total / data.list.pageSize)));\n\t\tfunction buildHref(overrides) {\n\t\t\tconst params = new URLSearchParams();\n\t\t\tif (data.listParams.search.length > 0) params.set(\"q\", data.listParams.search);\n\t\t\tif (data.listParams.sort.length > 0) params.set(\"sort\", data.listParams.sort.map((s) => `${s.field}:${s.order}`).join(\",\"));\n\t\t\tif (data.listParams.page > 1) params.set(\"page\", String(data.listParams.page));\n\t\t\tif (data.listParams.pageSize !== 50) params.set(\"pageSize\", String(data.listParams.pageSize));\n\t\t\tfor (const [key, value] of Object.entries(overrides)) if (value === null) params.delete(key);\n\t\t\telse params.set(key, value);\n\t\t\tconst query = params.toString();\n\t\t\treturn query.length > 0 ? `?${query}` : \".\";\n\t\t}\n\t\tfunction buildSortHref(field) {\n\t\t\treturn buildHref({\n\t\t\t\tsort: `${field}:${sortLookup().get(field) === \"asc\" ? \"desc\" : \"asc\"}`,\n\t\t\t\tpage: null\n\t\t\t});\n\t\t}\n\t\tfunction formatCell(value) {\n\t\t\tif (value === null || value === void 0) return \"\";\n\t\t\tif (typeof value === \"object\") return JSON.stringify(value);\n\t\t\treturn String(value);\n\t\t}\n\t\t$$renderer.push(`<h1 class=\"mb-1 text-2xl font-semibold\">${escape_html(data.view.label)}</h1> <p class=\"mb-6 text-sm text-muted-foreground\">${escape_html(data.view.qualifiedName)}</p> <form method=\"GET\" class=\"mb-4 flex flex-wrap items-center gap-2\"><input type=\"text\" name=\"q\"${attr(\"value\", data.listParams.search)} placeholder=\"Search…\" class=\"min-w-0 flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm\"/> <button type=\"submit\" class=\"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground\">Search</button></form> <div class=\"overflow-x-auto rounded-md border border-border\"><table class=\"min-w-full text-sm\"><thead class=\"bg-muted\"><tr><!--[-->`);\n\t\tconst each_array = ensure_array_like(data.view.columns);\n\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\tlet col = each_array[$$index];\n\t\t\t$$renderer.push(`<th class=\"px-3 py-2 text-left font-medium\"><a${attr(\"href\", buildSortHref(col.name))} class=\"hover:underline\">${escape_html(col.label)} `);\n\t\t\tif (sortLookup().has(col.name)) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span aria-hidden=\"true\">${escape_html(sortLookup().get(col.name) === \"asc\" ? \"↑\" : \"↓\")}</span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></a></th>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></tr></thead><tbody>`);\n\t\tif (data.list.rows.length === 0) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<tr><td${attr(\"colspan\", data.view.columns.length)} class=\"px-3 py-6 text-center text-muted-foreground\">No rows.</td></tr>`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--[-->`);\n\t\t\tconst each_array_1 = ensure_array_like(data.list.rows);\n\t\t\tfor (let idx = 0, $$length = each_array_1.length; idx < $$length; idx++) {\n\t\t\t\tlet row = each_array_1[idx];\n\t\t\t\t$$renderer.push(`<tr class=\"border-t border-border\"><!--[-->`);\n\t\t\t\tconst each_array_2 = ensure_array_like(data.view.columns);\n\t\t\t\tfor (let $$index_1 = 0, $$length = each_array_2.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\t\tlet col = each_array_2[$$index_1];\n\t\t\t\t\t$$renderer.push(`<td class=\"px-3 py-2\">${escape_html(formatCell(row[col.name]))}</td>`);\n\t\t\t\t}\n\t\t\t\t$$renderer.push(`<!--]--></tr>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]-->`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></tbody></table></div> <nav class=\"mt-4 flex items-center justify-between text-sm\"><span class=\"text-muted-foreground\">Page ${escape_html(data.listParams.page)} of ${escape_html(totalPages())} (${escape_html(data.list.total)} total)</span> <div class=\"flex gap-2\">`);\n\t\tif (data.listParams.page > 1) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<a${attr(\"href\", buildHref({ page: String(data.listParams.page - 1) }))} class=\"rounded-md border border-border px-3 py-1\">← Prev</a>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> `);\n\t\tif (data.listParams.page < totalPages()) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<a${attr(\"href\", buildHref({ page: String(data.listParams.page + 1) }))} class=\"rounded-md border border-border px-3 py-1\">Next →</a>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div></nav>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { o as ensure_array_like, d as attr, q as escape_html } from './dev-yFiAtg5l.js';
2
+ import 'clsx';
3
+
4
+ //#region src/routes/+page.svelte
5
+ function _page($$renderer, $$props) {
6
+ $$renderer.component(($$renderer) => {
7
+ let { data } = $$props;
8
+ $$renderer.push(`<h1 class="mb-6 text-2xl font-semibold">Dashboard</h1> <section class="mb-10"><h2 class="mb-3 text-lg font-semibold">Tables</h2> `);
9
+ if (data.dashboard.tables.length === 0) {
10
+ $$renderer.push("<!--[0-->");
11
+ $$renderer.push(`<p class="text-sm text-muted-foreground">No tables in the current schema.</p>`);
12
+ } else {
13
+ $$renderer.push("<!--[-1-->");
14
+ $$renderer.push(`<ul class="space-y-2"><!--[-->`);
15
+ const each_array = ensure_array_like(data.dashboard.tables);
16
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
17
+ let table = each_array[$$index];
18
+ $$renderer.push(`<li><a${attr("href", `/tables/${table.qualifiedName}`)} class="block rounded-md border border-border p-3 transition hover:bg-muted"><div class="font-medium">${escape_html(table.label)}</div> `);
19
+ if (table.description) {
20
+ $$renderer.push("<!--[0-->");
21
+ $$renderer.push(`<div class="text-sm text-muted-foreground">${escape_html(table.description)}</div>`);
22
+ } else $$renderer.push("<!--[-1-->");
23
+ $$renderer.push(`<!--]--></a></li>`);
24
+ }
25
+ $$renderer.push(`<!--]--></ul>`);
26
+ }
27
+ $$renderer.push(`<!--]--></section> <section><h2 class="mb-3 text-lg font-semibold">Views</h2> `);
28
+ if (data.dashboard.views.length === 0) {
29
+ $$renderer.push("<!--[0-->");
30
+ $$renderer.push(`<p class="text-sm text-muted-foreground">No views in the current schema.</p>`);
31
+ } else {
32
+ $$renderer.push("<!--[-1-->");
33
+ $$renderer.push(`<ul class="space-y-2"><!--[-->`);
34
+ const each_array_1 = ensure_array_like(data.dashboard.views);
35
+ for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
36
+ let view = each_array_1[$$index_1];
37
+ $$renderer.push(`<li><a${attr("href", `/views/${view.qualifiedName}`)} class="block rounded-md border border-border p-3 transition hover:bg-muted"><div class="font-medium">${escape_html(view.label)}</div> `);
38
+ if (view.description) {
39
+ $$renderer.push("<!--[0-->");
40
+ $$renderer.push(`<div class="text-sm text-muted-foreground">${escape_html(view.description)}</div>`);
41
+ } else $$renderer.push("<!--[-1-->");
42
+ $$renderer.push(`<!--]--></a></li>`);
43
+ }
44
+ $$renderer.push(`<!--]--></ul>`);
45
+ }
46
+ $$renderer.push(`<!--]--></section>`);
47
+ });
48
+ }
49
+
50
+ export { _page as default };
51
+ //# sourceMappingURL=_page.svelte-BN1au56r.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-BN1au56r.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, i as ensure_array_like } from \"../../chunks/dev.js\";\n//#region src/routes/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\t$$renderer.push(`<h1 class=\"mb-6 text-2xl font-semibold\">Dashboard</h1> <section class=\"mb-10\"><h2 class=\"mb-3 text-lg font-semibold\">Tables</h2> `);\n\t\tif (data.dashboard.tables.length === 0) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<p class=\"text-sm text-muted-foreground\">No tables in the current schema.</p>`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<ul class=\"space-y-2\"><!--[-->`);\n\t\t\tconst each_array = ensure_array_like(data.dashboard.tables);\n\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\tlet table = each_array[$$index];\n\t\t\t\t$$renderer.push(`<li><a${attr(\"href\", `/tables/${table.qualifiedName}`)} class=\"block rounded-md border border-border p-3 transition hover:bg-muted\"><div class=\"font-medium\">${escape_html(table.label)}</div> `);\n\t\t\t\tif (table.description) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<div class=\"text-sm text-muted-foreground\">${escape_html(table.description)}</div>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--></a></li>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></ul>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></section> <section><h2 class=\"mb-3 text-lg font-semibold\">Views</h2> `);\n\t\tif (data.dashboard.views.length === 0) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<p class=\"text-sm text-muted-foreground\">No views in the current schema.</p>`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<ul class=\"space-y-2\"><!--[-->`);\n\t\t\tconst each_array_1 = ensure_array_like(data.dashboard.views);\n\t\t\tfor (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\tlet view = each_array_1[$$index_1];\n\t\t\t\t$$renderer.push(`<li><a${attr(\"href\", `/views/${view.qualifiedName}`)} class=\"block rounded-md border border-border p-3 transition hover:bg-muted\"><div class=\"font-medium\">${escape_html(view.label)}</div> `);\n\t\t\t\tif (view.description) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<div class=\"text-sm text-muted-foreground\">${escape_html(view.description)}</div>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--></a></li>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></ul>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></section>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { q as escape_html, d as attr, o as ensure_array_like, m as derived } from './dev-yFiAtg5l.js';
2
+ import 'clsx';
3
+
4
+ //#region src/routes/tables/[table]/+page.svelte
5
+ function _page($$renderer, $$props) {
6
+ $$renderer.component(($$renderer) => {
7
+ let { data } = $$props;
8
+ const sortLookup = derived(() => new Map(data.listParams.sort.map((s) => [s.field, s.order])));
9
+ const totalPages = derived(() => Math.max(1, Math.ceil(data.list.total / data.list.pageSize)));
10
+ function buildHref(overrides) {
11
+ const params = new URLSearchParams();
12
+ if (data.listParams.search.length > 0) params.set("q", data.listParams.search);
13
+ if (data.listParams.sort.length > 0) params.set("sort", data.listParams.sort.map((s) => `${s.field}:${s.order}`).join(","));
14
+ if (data.listParams.page > 1) params.set("page", String(data.listParams.page));
15
+ if (data.listParams.pageSize !== 50) params.set("pageSize", String(data.listParams.pageSize));
16
+ for (const [key, value] of Object.entries(overrides)) if (value === null) params.delete(key);
17
+ else params.set(key, value);
18
+ const query = params.toString();
19
+ return query.length > 0 ? `?${query}` : ".";
20
+ }
21
+ function buildSortHref(field) {
22
+ return buildHref({
23
+ sort: `${field}:${sortLookup().get(field) === "asc" ? "desc" : "asc"}`,
24
+ page: null
25
+ });
26
+ }
27
+ function formatCell(value) {
28
+ if (value === null || value === void 0) return "";
29
+ if (typeof value === "object") return JSON.stringify(value);
30
+ return String(value);
31
+ }
32
+ function rowKey(row, idx) {
33
+ const pkField = data.table.primaryKey[0];
34
+ if (pkField !== void 0) {
35
+ const pkValue = row[pkField];
36
+ if (pkValue !== void 0 && pkValue !== null) return String(pkValue);
37
+ }
38
+ return String(idx);
39
+ }
40
+ $$renderer.push(`<h1 class="mb-1 text-2xl font-semibold">${escape_html(data.table.label)}</h1> <p class="mb-6 text-sm text-muted-foreground">${escape_html(data.table.qualifiedName)}</p> <form method="GET" class="mb-4 flex flex-wrap items-center gap-2"><input type="text" name="q"${attr("value", data.listParams.search)} placeholder="Search…" class="min-w-0 flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm"/> <button type="submit" class="rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground">Search</button> <a${attr("href", `/tables/${data.table.qualifiedName}/new`)} class="rounded-md border border-border px-4 py-2 text-sm font-medium">+ New</a></form> <div class="overflow-x-auto rounded-md border border-border"><table class="min-w-full text-sm"><thead class="bg-muted"><tr><!--[-->`);
41
+ const each_array = ensure_array_like(data.table.columns);
42
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
43
+ let col = each_array[$$index];
44
+ $$renderer.push(`<th class="px-3 py-2 text-left font-medium"><a${attr("href", buildSortHref(col.name))} class="hover:underline">${escape_html(col.label)} `);
45
+ if (sortLookup().has(col.name)) {
46
+ $$renderer.push("<!--[0-->");
47
+ $$renderer.push(`<span aria-hidden="true">${escape_html(sortLookup().get(col.name) === "asc" ? "↑" : "↓")}</span>`);
48
+ } else $$renderer.push("<!--[-1-->");
49
+ $$renderer.push(`<!--]--></a></th>`);
50
+ }
51
+ $$renderer.push(`<!--]--><th class="px-3 py-2 text-left font-medium">Actions</th></tr></thead><tbody>`);
52
+ if (data.list.rows.length === 0) {
53
+ $$renderer.push("<!--[0-->");
54
+ $$renderer.push(`<tr><td${attr("colspan", data.table.columns.length + 1)} class="px-3 py-6 text-center text-muted-foreground">No rows.</td></tr>`);
55
+ } else {
56
+ $$renderer.push("<!--[-1-->");
57
+ $$renderer.push(`<!--[-->`);
58
+ const each_array_1 = ensure_array_like(data.list.rows);
59
+ for (let idx = 0, $$length = each_array_1.length; idx < $$length; idx++) {
60
+ let row = each_array_1[idx];
61
+ $$renderer.push(`<tr class="border-t border-border"><!--[-->`);
62
+ const each_array_2 = ensure_array_like(data.table.columns);
63
+ for (let $$index_1 = 0, $$length = each_array_2.length; $$index_1 < $$length; $$index_1++) {
64
+ let col = each_array_2[$$index_1];
65
+ $$renderer.push(`<td class="px-3 py-2">${escape_html(formatCell(row[col.name]))}</td>`);
66
+ }
67
+ $$renderer.push(`<!--]--><td class="px-3 py-2"><a${attr("href", `/tables/${data.table.qualifiedName}/${rowKey(row, idx)}`)} class="text-primary underline">View</a></td></tr>`);
68
+ }
69
+ $$renderer.push(`<!--]-->`);
70
+ }
71
+ $$renderer.push(`<!--]--></tbody></table></div> <nav class="mt-4 flex items-center justify-between text-sm"><span class="text-muted-foreground">Page ${escape_html(data.listParams.page)} of ${escape_html(totalPages())} (${escape_html(data.list.total)} total)</span> <div class="flex gap-2">`);
72
+ if (data.listParams.page > 1) {
73
+ $$renderer.push("<!--[0-->");
74
+ $$renderer.push(`<a${attr("href", buildHref({ page: String(data.listParams.page - 1) }))} class="rounded-md border border-border px-3 py-1">← Prev</a>`);
75
+ } else $$renderer.push("<!--[-1-->");
76
+ $$renderer.push(`<!--]--> `);
77
+ if (data.listParams.page < totalPages()) {
78
+ $$renderer.push("<!--[0-->");
79
+ $$renderer.push(`<a${attr("href", buildHref({ page: String(data.listParams.page + 1) }))} class="rounded-md border border-border px-3 py-1">Next →</a>`);
80
+ } else $$renderer.push("<!--[-1-->");
81
+ $$renderer.push(`<!--]--></div></nav>`);
82
+ });
83
+ }
84
+
85
+ export { _page as default };
86
+ //# sourceMappingURL=_page.svelte-Bu4SlGir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-Bu4SlGir.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, i as ensure_array_like, r as derived } from \"../../../../chunks/dev.js\";\n//#region src/routes/tables/[table]/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\tconst sortLookup = derived(() => new Map(data.listParams.sort.map((s) => [s.field, s.order])));\n\t\tconst totalPages = derived(() => Math.max(1, Math.ceil(data.list.total / data.list.pageSize)));\n\t\tfunction buildHref(overrides) {\n\t\t\tconst params = new URLSearchParams();\n\t\t\tif (data.listParams.search.length > 0) params.set(\"q\", data.listParams.search);\n\t\t\tif (data.listParams.sort.length > 0) params.set(\"sort\", data.listParams.sort.map((s) => `${s.field}:${s.order}`).join(\",\"));\n\t\t\tif (data.listParams.page > 1) params.set(\"page\", String(data.listParams.page));\n\t\t\tif (data.listParams.pageSize !== 50) params.set(\"pageSize\", String(data.listParams.pageSize));\n\t\t\tfor (const [key, value] of Object.entries(overrides)) if (value === null) params.delete(key);\n\t\t\telse params.set(key, value);\n\t\t\tconst query = params.toString();\n\t\t\treturn query.length > 0 ? `?${query}` : \".\";\n\t\t}\n\t\tfunction buildSortHref(field) {\n\t\t\treturn buildHref({\n\t\t\t\tsort: `${field}:${sortLookup().get(field) === \"asc\" ? \"desc\" : \"asc\"}`,\n\t\t\t\tpage: null\n\t\t\t});\n\t\t}\n\t\tfunction formatCell(value) {\n\t\t\tif (value === null || value === void 0) return \"\";\n\t\t\tif (typeof value === \"object\") return JSON.stringify(value);\n\t\t\treturn String(value);\n\t\t}\n\t\tfunction rowKey(row, idx) {\n\t\t\tconst pkField = data.table.primaryKey[0];\n\t\t\tif (pkField !== void 0) {\n\t\t\t\tconst pkValue = row[pkField];\n\t\t\t\tif (pkValue !== void 0 && pkValue !== null) return String(pkValue);\n\t\t\t}\n\t\t\treturn String(idx);\n\t\t}\n\t\t$$renderer.push(`<h1 class=\"mb-1 text-2xl font-semibold\">${escape_html(data.table.label)}</h1> <p class=\"mb-6 text-sm text-muted-foreground\">${escape_html(data.table.qualifiedName)}</p> <form method=\"GET\" class=\"mb-4 flex flex-wrap items-center gap-2\"><input type=\"text\" name=\"q\"${attr(\"value\", data.listParams.search)} placeholder=\"Search…\" class=\"min-w-0 flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm\"/> <button type=\"submit\" class=\"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground\">Search</button> <a${attr(\"href\", `/tables/${data.table.qualifiedName}/new`)} class=\"rounded-md border border-border px-4 py-2 text-sm font-medium\">+ New</a></form> <div class=\"overflow-x-auto rounded-md border border-border\"><table class=\"min-w-full text-sm\"><thead class=\"bg-muted\"><tr><!--[-->`);\n\t\tconst each_array = ensure_array_like(data.table.columns);\n\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\tlet col = each_array[$$index];\n\t\t\t$$renderer.push(`<th class=\"px-3 py-2 text-left font-medium\"><a${attr(\"href\", buildSortHref(col.name))} class=\"hover:underline\">${escape_html(col.label)} `);\n\t\t\tif (sortLookup().has(col.name)) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span aria-hidden=\"true\">${escape_html(sortLookup().get(col.name) === \"asc\" ? \"↑\" : \"↓\")}</span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></a></th>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--><th class=\"px-3 py-2 text-left font-medium\">Actions</th></tr></thead><tbody>`);\n\t\tif (data.list.rows.length === 0) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<tr><td${attr(\"colspan\", data.table.columns.length + 1)} class=\"px-3 py-6 text-center text-muted-foreground\">No rows.</td></tr>`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--[-->`);\n\t\t\tconst each_array_1 = ensure_array_like(data.list.rows);\n\t\t\tfor (let idx = 0, $$length = each_array_1.length; idx < $$length; idx++) {\n\t\t\t\tlet row = each_array_1[idx];\n\t\t\t\t$$renderer.push(`<tr class=\"border-t border-border\"><!--[-->`);\n\t\t\t\tconst each_array_2 = ensure_array_like(data.table.columns);\n\t\t\t\tfor (let $$index_1 = 0, $$length = each_array_2.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\t\tlet col = each_array_2[$$index_1];\n\t\t\t\t\t$$renderer.push(`<td class=\"px-3 py-2\">${escape_html(formatCell(row[col.name]))}</td>`);\n\t\t\t\t}\n\t\t\t\t$$renderer.push(`<!--]--><td class=\"px-3 py-2\"><a${attr(\"href\", `/tables/${data.table.qualifiedName}/${rowKey(row, idx)}`)} class=\"text-primary underline\">View</a></td></tr>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]-->`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></tbody></table></div> <nav class=\"mt-4 flex items-center justify-between text-sm\"><span class=\"text-muted-foreground\">Page ${escape_html(data.listParams.page)} of ${escape_html(totalPages())} (${escape_html(data.list.total)} total)</span> <div class=\"flex gap-2\">`);\n\t\tif (data.listParams.page > 1) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<a${attr(\"href\", buildHref({ page: String(data.listParams.page - 1) }))} class=\"rounded-md border border-border px-3 py-1\">← Prev</a>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> `);\n\t\tif (data.listParams.page < totalPages()) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<a${attr(\"href\", buildHref({ page: String(data.listParams.page + 1) }))} class=\"rounded-md border border-border px-3 py-1\">Next →</a>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div></nav>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}