@kozou/svelte-ui 1.3.0 → 1.4.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 (161) hide show
  1. package/build/client/_app/immutable/assets/0.BpzpdRYx.css +2 -0
  2. package/build/client/_app/immutable/assets/0.BpzpdRYx.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.BpzpdRYx.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/B18MYhkI.js +4 -0
  5. package/build/client/_app/immutable/chunks/B18MYhkI.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/B18MYhkI.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{DxikiVqj.js → BAfs2EwQ.js} +1 -1
  8. package/build/client/_app/immutable/chunks/BAfs2EwQ.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BAfs2EwQ.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/CdqGzY-s.js +1 -0
  11. package/build/client/_app/immutable/chunks/CdqGzY-s.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/CdqGzY-s.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{BgT5WiOF.js → ClT4djUO.js} +1 -1
  14. package/build/client/_app/immutable/chunks/ClT4djUO.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/{BgT5WiOF.js.gz → ClT4djUO.js.gz} +0 -0
  16. package/build/client/_app/immutable/chunks/D-3Io3Xp.js +214 -0
  17. package/build/client/_app/immutable/chunks/D-3Io3Xp.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/D-3Io3Xp.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/{BLwQsTD2.js → PpzXWueh.js} +1 -1
  20. package/build/client/_app/immutable/chunks/PpzXWueh.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/PpzXWueh.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/app.hTXrPHEe.js +2 -0
  23. package/build/client/_app/immutable/entry/app.hTXrPHEe.js.br +0 -0
  24. package/build/client/_app/immutable/entry/app.hTXrPHEe.js.gz +0 -0
  25. package/build/client/_app/immutable/entry/start.DRJ6mn95.js +1 -0
  26. package/build/client/_app/immutable/entry/start.DRJ6mn95.js.br +0 -0
  27. package/build/client/_app/immutable/entry/start.DRJ6mn95.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{0.BTi1ueXu.js → 0.ahUg4RPH.js} +1 -1
  29. package/build/client/_app/immutable/nodes/0.ahUg4RPH.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/0.ahUg4RPH.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{1.D09foNRb.js → 1.D-eXQsNF.js} +1 -1
  32. package/build/client/_app/immutable/nodes/1.D-eXQsNF.js.br +1 -0
  33. package/build/client/_app/immutable/nodes/1.D-eXQsNF.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/2.DXYbQoLe.js +1 -0
  35. package/build/client/_app/immutable/nodes/2.DXYbQoLe.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/2.DXYbQoLe.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/3.nVf6pSGl.js +1 -0
  38. package/build/client/_app/immutable/nodes/3.nVf6pSGl.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/3.nVf6pSGl.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{3.BfuWEZdX.js → 4.C486-zEy.js} +1 -1
  41. package/build/client/_app/immutable/nodes/4.C486-zEy.js.br +2 -0
  42. package/build/client/_app/immutable/nodes/4.C486-zEy.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{4.5H5WIc-o.js → 5.A-_8tbYC.js} +1 -1
  44. package/build/client/_app/immutable/nodes/5.A-_8tbYC.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/5.A-_8tbYC.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/6.CzngNnZ1.js +1 -0
  47. package/build/client/_app/immutable/nodes/6.CzngNnZ1.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/6.CzngNnZ1.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/7.M4F1VOf8.js +1 -0
  50. package/build/client/_app/immutable/nodes/7.M4F1VOf8.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/7.M4F1VOf8.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/{7.CjEmXoAF.js → 8.Cb70WGbk.js} +1 -1
  53. package/build/client/_app/immutable/nodes/8.Cb70WGbk.js.br +1 -0
  54. package/build/client/_app/immutable/nodes/8.Cb70WGbk.js.gz +0 -0
  55. package/build/client/_app/version.json +1 -1
  56. package/build/client/_app/version.json.br +0 -0
  57. package/build/client/_app/version.json.gz +0 -0
  58. package/build/server/chunks/{0-C4CgvBlc.js → 0-CTaiiMQp.js} +3 -3
  59. package/build/server/chunks/{0-C4CgvBlc.js.map → 0-CTaiiMQp.js.map} +1 -1
  60. package/build/server/chunks/{1-BvxsIwwy.js → 1-HvpuDSr9.js} +3 -3
  61. package/build/server/chunks/{1-BvxsIwwy.js.map → 1-HvpuDSr9.js.map} +1 -1
  62. package/build/server/chunks/{2-D9il_3ty.js → 2-DWDp9L0J.js} +19 -5
  63. package/build/server/chunks/2-DWDp9L0J.js.map +1 -0
  64. package/build/server/chunks/3-D3TOYjW7.js +144 -0
  65. package/build/server/chunks/3-D3TOYjW7.js.map +1 -0
  66. package/build/server/chunks/{3-DfrqlU53.js → 4-DfL_8ypg.js} +5 -5
  67. package/build/server/chunks/{3-DfrqlU53.js.map → 4-DfL_8ypg.js.map} +1 -1
  68. package/build/server/chunks/{4-1chJCfPL.js → 5-PdIKGOry.js} +6 -6
  69. package/build/server/chunks/{4-1chJCfPL.js.map → 5-PdIKGOry.js.map} +1 -1
  70. package/build/server/chunks/{5-DUCxshKE.js → 6-DTP2dgQ4.js} +11 -10
  71. package/build/server/chunks/6-DTP2dgQ4.js.map +1 -0
  72. package/build/server/chunks/{6-Dh7Tg-XB.js → 7-BO2wqZFZ.js} +11 -10
  73. package/build/server/chunks/7-BO2wqZFZ.js.map +1 -0
  74. package/build/server/chunks/{7-CKkRKfs8.js → 8-Q9JasCCv.js} +5 -5
  75. package/build/server/chunks/{7-CKkRKfs8.js.map → 8-Q9JasCCv.js.map} +1 -1
  76. package/build/server/chunks/{_page.svelte-DaJwoT9F.js → _page.svelte-BRJFxYD9.js} +3 -3
  77. package/build/server/chunks/{_page.svelte-DaJwoT9F.js.map → _page.svelte-BRJFxYD9.js.map} +1 -1
  78. package/build/server/chunks/{_page.svelte-DI_FY3zW.js → _page.svelte-ByJgj70z.js} +7 -6
  79. package/build/server/chunks/_page.svelte-ByJgj70z.js.map +1 -0
  80. package/build/server/chunks/{_page.svelte-BN1au56r.js → _page.svelte-Cup_HkLy.js} +19 -3
  81. package/build/server/chunks/_page.svelte-Cup_HkLy.js.map +1 -0
  82. package/build/server/chunks/_page.svelte-D5OPNrD6.js +143 -0
  83. package/build/server/chunks/_page.svelte-D5OPNrD6.js.map +1 -0
  84. package/build/server/chunks/{_page.svelte-CBUJNhG1.js → _page.svelte-DLZjvC2B.js} +7 -6
  85. package/build/server/chunks/_page.svelte-DLZjvC2B.js.map +1 -0
  86. package/build/server/chunks/{_server.ts-C-Wy675T.js → _server.ts-Bl2Id2sq.js} +4 -4
  87. package/build/server/chunks/{_server.ts-C-Wy675T.js.map → _server.ts-Bl2Id2sq.js.map} +1 -1
  88. package/build/server/chunks/{adapter-CXNsjV1V.js → adapter-D185EFin.js} +14 -2
  89. package/build/server/chunks/{adapter-CXNsjV1V.js.map → adapter-D185EFin.js.map} +1 -1
  90. package/build/server/chunks/{client-C004jkBy.js → client-DEXFQakh.js} +2 -2
  91. package/build/server/chunks/{client-C004jkBy.js.map → client-DEXFQakh.js.map} +1 -1
  92. package/build/server/chunks/{composite-form-_tg7iknp.js → composite-form-BXkkWWG1.js} +60 -21
  93. package/build/server/chunks/composite-form-BXkkWWG1.js.map +1 -0
  94. package/build/server/chunks/{error.svelte-u8Vsq8vF.js → error.svelte-5yVrLvBD.js} +3 -3
  95. package/build/server/chunks/{error.svelte-u8Vsq8vF.js.map → error.svelte-5yVrLvBD.js.map} +1 -1
  96. package/build/server/chunks/{hooks.server-DtCXcOVD.js → hooks.server-DSFHJrhe.js} +636 -12
  97. package/build/server/chunks/hooks.server-DSFHJrhe.js.map +1 -0
  98. package/build/server/chunks/{index-5kYmxIr9.js → index-CVekYGHP.js} +2 -2
  99. package/build/server/chunks/{index-5kYmxIr9.js.map → index-CVekYGHP.js.map} +1 -1
  100. package/build/server/chunks/{internal-fxcuSPWe.js → internal-B5RB0ss0.js} +3 -3
  101. package/build/server/chunks/{internal-fxcuSPWe.js.map → internal-B5RB0ss0.js.map} +1 -1
  102. package/build/server/chunks/privilege-readonly-CK4k2aYO.js +15 -0
  103. package/build/server/chunks/privilege-readonly-CK4k2aYO.js.map +1 -0
  104. package/build/server/chunks/{relation-options-Dzy9DaQG.js → relation-options-BQ3XnftO.js} +2 -2
  105. package/build/server/chunks/{relation-options-Dzy9DaQG.js.map → relation-options-BQ3XnftO.js.map} +1 -1
  106. package/build/server/chunks/relation-select-composite-field-DZuvCpmt.js +101 -0
  107. package/build/server/chunks/relation-select-composite-field-DZuvCpmt.js.map +1 -0
  108. package/build/server/chunks/{widget-registry-BcgMXjkA.js → widget-registry-6ku8orXa.js} +3 -98
  109. package/build/server/chunks/widget-registry-6ku8orXa.js.map +1 -0
  110. package/build/server/index.js +2 -2
  111. package/build/server/manifest.js +23 -15
  112. package/build/server/manifest.js.map +1 -1
  113. package/package.json +4 -4
  114. package/build/client/_app/immutable/assets/0._vgqT-Ja.css +0 -2
  115. package/build/client/_app/immutable/assets/0._vgqT-Ja.css.br +0 -0
  116. package/build/client/_app/immutable/assets/0._vgqT-Ja.css.gz +0 -0
  117. package/build/client/_app/immutable/chunks/BLwQsTD2.js.br +0 -0
  118. package/build/client/_app/immutable/chunks/BLwQsTD2.js.gz +0 -0
  119. package/build/client/_app/immutable/chunks/BgT5WiOF.js.br +0 -0
  120. package/build/client/_app/immutable/chunks/DY0oakY5.js +0 -214
  121. package/build/client/_app/immutable/chunks/DY0oakY5.js.br +0 -0
  122. package/build/client/_app/immutable/chunks/DY0oakY5.js.gz +0 -0
  123. package/build/client/_app/immutable/chunks/DxikiVqj.js.br +0 -0
  124. package/build/client/_app/immutable/chunks/DxikiVqj.js.gz +0 -0
  125. package/build/client/_app/immutable/chunks/rPPoD7Sp.js +0 -4
  126. package/build/client/_app/immutable/chunks/rPPoD7Sp.js.br +0 -0
  127. package/build/client/_app/immutable/chunks/rPPoD7Sp.js.gz +0 -0
  128. package/build/client/_app/immutable/entry/app.G2Y8IfhN.js +0 -2
  129. package/build/client/_app/immutable/entry/app.G2Y8IfhN.js.br +0 -0
  130. package/build/client/_app/immutable/entry/app.G2Y8IfhN.js.gz +0 -0
  131. package/build/client/_app/immutable/entry/start.sPBaDl_M.js +0 -1
  132. package/build/client/_app/immutable/entry/start.sPBaDl_M.js.br +0 -1
  133. package/build/client/_app/immutable/entry/start.sPBaDl_M.js.gz +0 -0
  134. package/build/client/_app/immutable/nodes/0.BTi1ueXu.js.br +0 -0
  135. package/build/client/_app/immutable/nodes/0.BTi1ueXu.js.gz +0 -0
  136. package/build/client/_app/immutable/nodes/1.D09foNRb.js.br +0 -2
  137. package/build/client/_app/immutable/nodes/1.D09foNRb.js.gz +0 -0
  138. package/build/client/_app/immutable/nodes/2.CWOXCYvQ.js +0 -1
  139. package/build/client/_app/immutable/nodes/2.CWOXCYvQ.js.br +0 -0
  140. package/build/client/_app/immutable/nodes/2.CWOXCYvQ.js.gz +0 -0
  141. package/build/client/_app/immutable/nodes/3.BfuWEZdX.js.br +0 -0
  142. package/build/client/_app/immutable/nodes/3.BfuWEZdX.js.gz +0 -0
  143. package/build/client/_app/immutable/nodes/4.5H5WIc-o.js.br +0 -0
  144. package/build/client/_app/immutable/nodes/4.5H5WIc-o.js.gz +0 -0
  145. package/build/client/_app/immutable/nodes/5.BR2iBXwV.js +0 -1
  146. package/build/client/_app/immutable/nodes/5.BR2iBXwV.js.br +0 -0
  147. package/build/client/_app/immutable/nodes/5.BR2iBXwV.js.gz +0 -0
  148. package/build/client/_app/immutable/nodes/6.ChubZePh.js +0 -1
  149. package/build/client/_app/immutable/nodes/6.ChubZePh.js.br +0 -0
  150. package/build/client/_app/immutable/nodes/6.ChubZePh.js.gz +0 -0
  151. package/build/client/_app/immutable/nodes/7.CjEmXoAF.js.br +0 -1
  152. package/build/client/_app/immutable/nodes/7.CjEmXoAF.js.gz +0 -0
  153. package/build/server/chunks/2-D9il_3ty.js.map +0 -1
  154. package/build/server/chunks/5-DUCxshKE.js.map +0 -1
  155. package/build/server/chunks/6-Dh7Tg-XB.js.map +0 -1
  156. package/build/server/chunks/_page.svelte-BN1au56r.js.map +0 -1
  157. package/build/server/chunks/_page.svelte-CBUJNhG1.js.map +0 -1
  158. package/build/server/chunks/_page.svelte-DI_FY3zW.js.map +0 -1
  159. package/build/server/chunks/composite-form-_tg7iknp.js.map +0 -1
  160. package/build/server/chunks/hooks.server-DtCXcOVD.js.map +0 -1
  161. package/build/server/chunks/widget-registry-BcgMXjkA.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { y as noop, G as parse, C as onDestroy, X as tick, S as stringify$1, c as __toESM, _ as __commonJSMin, a as __exportAll } from './internal-fxcuSPWe.js';
1
+ import { y as noop, G as parse, C as onDestroy, X as tick, S as stringify$1, c as __toESM, _ as __commonJSMin, a as __exportAll } from './internal-B5RB0ss0.js';
2
2
  import { u as get$1, ad as writable, n as derived$1, Y as readonly, x as getContext } from './dev-yFiAtg5l.js';
3
- import { i as invalidateAll, b as applyAction, a as afterNavigate } from './client-C004jkBy.js';
3
+ import { i as invalidateAll, b as applyAction, a as afterNavigate } from './client-DEXFQakh.js';
4
4
  import { a as app } from './app-MIcRQ3KA.js';
5
- import './index-5kYmxIr9.js';
5
+ import './index-CVekYGHP.js';
6
6
  import { toJSONSchema, config, safeParseAsync } from 'zod/v4/core';
7
7
  import { z } from 'zod';
8
8
 
@@ -2388,7 +2388,7 @@ async function superValidate(data, adapter, options) {
2388
2388
  }
2389
2389
  return output;
2390
2390
  }
2391
- //#endregion
2391
+
2392
2392
  //#region src/lib/form/relation-field-config.ts
2393
2393
  /**
2394
2394
  * Whether an option can round-trip through the picker contract. A key
@@ -2448,6 +2448,32 @@ function searchableLabel(target) {
2448
2448
  searchFields: [labelField]
2449
2449
  };
2450
2450
  }
2451
+ /**
2452
+ * Build the single-column relation-select config for an RPC function argument
2453
+ * carrying an `@arg: <name> relation(<schema.table.column>)` hint (issue #103).
2454
+ *
2455
+ * The picker can only round-trip when the hint targets the referenced table's
2456
+ * single-column primary key — `searchRelation` projects that key as each
2457
+ * option's id, which is exactly the value the argument receives — and the
2458
+ * target has a text-searchable label. Otherwise (a hint at a non-PK column, a
2459
+ * composite-key target, an absent table, or an unsearchable label) the argument
2460
+ * falls back to a scalar input the operator types, so this returns null. Mirrors
2461
+ * the per-relation acceptance in {@link relationFieldConfigs} for a single
2462
+ * foreign key.
2463
+ */
2464
+ function buildArgRelationConfig(argName, relation, schema) {
2465
+ const resource = `${relation.schema}.${relation.table}`;
2466
+ const target = schema.tables.find((t) => t.qualifiedName === resource);
2467
+ if (target === void 0) return null;
2468
+ if (target.primaryKey.length !== 1 || target.primaryKey[0] !== relation.column) return null;
2469
+ const label = searchableLabel(target);
2470
+ if (label === null) return null;
2471
+ return {
2472
+ field: argName,
2473
+ resource,
2474
+ ...label
2475
+ };
2476
+ }
2451
2477
  function relationFieldConfigs(table, schema) {
2452
2478
  const configs = [];
2453
2479
  for (const relation of table.relations) {
@@ -7108,19 +7134,6 @@ function buildMutationPayload(table, data, mode = "create") {
7108
7134
  return payload;
7109
7135
  }
7110
7136
  //#endregion
7111
- //#region src/lib/form/privilege-readonly.ts
7112
- function applyPrivilegeReadonly(table, mode) {
7113
- return {
7114
- ...table,
7115
- columns: table.columns.map((c) => {
7116
- return (mode === "create" ? c.insertable === false : c.updatable === false) && !c.readonly ? {
7117
- ...c,
7118
- readonly: true
7119
- } : c;
7120
- })
7121
- };
7122
- }
7123
- //#endregion
7124
7137
  //#region src/lib/form/zod-from-table.ts
7125
7138
  function zodFromTable(table) {
7126
7139
  const shape = {};
@@ -7129,6 +7142,33 @@ function zodFromTable(table) {
7129
7142
  }
7130
7143
  //#endregion
7131
7144
  //#region src/lib/server/composite-form.ts
7145
+ /** A native FormData submission converted to a plain object, with blank
7146
+ * fields omitted so the schema defaults apply (mirroring how superforms
7147
+ * parses blank FormData entries). */
7148
+ function formDataToObject(data) {
7149
+ const fields = {};
7150
+ for (const [key, value] of data.entries()) if (typeof value === "string" && value !== "") fields[key] = value;
7151
+ return fields;
7152
+ }
7153
+ /**
7154
+ * What the RPC action route should hand to `superValidate`. A defaulted
7155
+ * argument carries a `z.union([literal(''), <base>])` schema, and superforms
7156
+ * rejects unions when parsing FormData directly ("Unions are only supported
7157
+ * when the dataType option for superForm is set to 'json'"); parsing a plain
7158
+ * object has no such restriction. So a native (no-JS) submission is converted
7159
+ * to an object — unconditionally, since an action form can carry a defaulted
7160
+ * non-text argument with no relation pickers at all. The enhanced path's
7161
+ * superforms JSON envelope is passed through untouched (superValidate handles
7162
+ * it), as is a non-form (JSON) body. Single-column relation-select arguments
7163
+ * submit as plain fields, so no composite decoding is needed here.
7164
+ */
7165
+ async function readActionFormSubmission(request) {
7166
+ const contentType = request.headers.get("content-type") ?? "";
7167
+ if (!contentType.includes("application/x-www-form-urlencoded") && !contentType.includes("multipart/form-data")) return request;
7168
+ const data = await request.formData();
7169
+ if (data.has("__superform_json")) return data;
7170
+ return formDataToObject(data);
7171
+ }
7132
7172
  /**
7133
7173
  * Return what the route action should hand to `superValidate`: the request
7134
7174
  * itself when the table has no pickers, the raw FormData when it carries the
@@ -7146,8 +7186,7 @@ async function readFormWithCompositePicks(request, relations) {
7146
7186
  if (!contentType.includes("application/x-www-form-urlencoded") && !contentType.includes("multipart/form-data")) return request;
7147
7187
  const data = await request.formData();
7148
7188
  if (data.has("__superform_json")) return data;
7149
- const fields = {};
7150
- for (const [key, value] of data.entries()) if (typeof value === "string" && value !== "") fields[key] = value;
7189
+ const fields = formDataToObject(data);
7151
7190
  for (const config of relations) {
7152
7191
  const keyFields = config.keyFields ?? [config.field];
7153
7192
  if (keyFields.length < 2) continue;
@@ -7175,5 +7214,5 @@ async function readFormWithCompositePicks(request, relations) {
7175
7214
  return fields;
7176
7215
  }
7177
7216
 
7178
- export { COMPOSITE_CLEAR_VALUE as C, applyPrivilegeReadonly as a, buildMutationPayload as b, compositeParamName as c, dbCanSupplyColumn as d, demoteUnpickableRelations as e, relationFieldConfigs as f, superValidate as g, zodFromTable as h, isPickableOption as i, promoteCompositeMemberWidgets as p, readFormWithCompositePicks as r, superForm as s, zod as z };
7179
- //# sourceMappingURL=composite-form-_tg7iknp.js.map
7217
+ export { COMPOSITE_CLEAR_VALUE as C, buildMutationPayload as a, buildArgRelationConfig as b, compositeParamName as c, dbCanSupplyColumn as d, demoteUnpickableRelations as e, readFormWithCompositePicks as f, relationFieldConfigs as g, superForm as h, isPickableOption as i, superValidate as j, zodFromTable as k, promoteCompositeMemberWidgets as p, readActionFormSubmission as r, scalarWidgetForDataType as s, zod as z };
7218
+ //# sourceMappingURL=composite-form-BXkkWWG1.js.map