@coffer-org/web 3.0.0 → 3.1.0

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 (70) hide show
  1. package/dist/assets/{ChatWidget-CnETJEZj.js → ChatWidget-C0FHyGQs.js} +1 -1
  2. package/dist/assets/{ExtendReasonInfo-DZyJKRHy.js → ExtendReasonInfo-B31k6BsF.js} +1 -1
  3. package/dist/assets/NewRecordView-mNprEZ0M.js +1 -0
  4. package/dist/assets/{PluginSettingsPage-BQm11aEY.js → PluginSettingsPage-BL5aCWl2.js} +1 -1
  5. package/dist/assets/{SettingsForm-xXNSptFG.js → SettingsForm-DTwZW55p.js} +1 -1
  6. package/dist/assets/Toolbar-CCy7c-VI.js +2 -0
  7. package/dist/assets/chrome-CAIO8mia.js +1 -0
  8. package/dist/assets/{data-size-B44emc58.js → data-size-D-gMRpFc.js} +1 -1
  9. package/dist/assets/{dispatch-B7QFSWwA.js → dispatch-Z_UJ7sOs.js} +1 -1
  10. package/dist/assets/{extend-CbEbk8Xz.js → extend-GfHImqfk.js} +1 -1
  11. package/dist/assets/{field-frame-lE36ax7A.js → field-frame-89mXkY0h.js} +1 -1
  12. package/dist/assets/{fields-BvFhu2Zp.js → fields-DA2uwuWg.js} +1 -1
  13. package/dist/assets/index-IYmIwBta.js +36 -0
  14. package/dist/assets/index-uwd-zQkM.css +2 -0
  15. package/dist/assets/shared-DyLDZh8A.js +1 -0
  16. package/dist/assets/shelf-CbIOYmgm.js +1 -0
  17. package/dist/assets/showcase-DpT_hVOy.js +1 -0
  18. package/dist/assets/src-1MSAycRt.js +1 -0
  19. package/dist/assets/{src-o6G2rx51.js → src-B8jSrOBs.js} +1 -1
  20. package/dist/assets/{src-DQEWf3tk.js → src-BR6hbGmU.js} +1 -1
  21. package/dist/assets/{src-CK5LF8mh.js → src-BZuEf2j7.js} +1 -1
  22. package/dist/assets/{src-DLuKxde5.js → src-BpgLWVlc.js} +1 -1
  23. package/dist/assets/{src-P-7khzwl.js → src-C4Lw6UC7.js} +1 -1
  24. package/dist/assets/src-CvbH8j2P.js +1 -0
  25. package/dist/assets/src-CyzuwYGO.js +4 -0
  26. package/dist/assets/src-DBOfP_Or.js +4 -0
  27. package/dist/assets/{src-D1jciqQr.js → src-DFYZEu1M.js} +1 -1
  28. package/dist/assets/src-DJtarzEL.js +1 -0
  29. package/dist/assets/src-DOEz01aN.js +2 -0
  30. package/dist/assets/{src-BbXav__j.js → src-DZhdHqwF.js} +1 -1
  31. package/dist/assets/src-DjzEQC_y.js +1 -0
  32. package/dist/assets/src-Dl65oXdT.js +1 -0
  33. package/dist/assets/{src-CzSQMFWS.js → src-DmKtZ8vC.js} +3 -3
  34. package/dist/assets/{src-D_zsiKPr.js → src-DwFrbaFj.js} +1 -1
  35. package/dist/assets/{src-DkjooOXs.js → src-DyJctdPe.js} +1 -1
  36. package/dist/assets/src-DzHYG-f3.js +1 -0
  37. package/dist/assets/src-DzN1nufP.js +6 -0
  38. package/dist/assets/{src-R3C69mft.js → src-HtNjG36u.js} +1 -1
  39. package/dist/assets/src-MUOjunVs.js +1 -0
  40. package/dist/assets/{src-D20-HqBF.js → src-RuMLw9Df.js} +1 -1
  41. package/dist/assets/src-_uT5vgXn.js +1 -0
  42. package/dist/assets/src-bmJr-fWH.js +1 -0
  43. package/dist/assets/{ui-DoEY93ZQ.js → ui-CGAe_N45.js} +2 -2
  44. package/dist/assets/{ui-QxKP_mxS.js → ui-CKp0RWbv.js} +1 -1
  45. package/dist/assets/ui-t8nphras.js +2 -0
  46. package/dist/index.html +13 -14
  47. package/dist-vendor/web-sdk.js +128 -118
  48. package/package.json +2 -2
  49. package/dist/assets/NewRecordView-BAe2dw2Y.js +0 -1
  50. package/dist/assets/Toolbar-_Bg6b3gy.js +0 -2
  51. package/dist/assets/chrome-BfURuVBW.js +0 -1
  52. package/dist/assets/index-B674c0cW.js +0 -36
  53. package/dist/assets/index-CvgeFYKg.css +0 -2
  54. package/dist/assets/json-CkyL3W27.js +0 -1
  55. package/dist/assets/shared-vjdjsgQc.js +0 -1
  56. package/dist/assets/shelf-D-ifpKTJ.js +0 -1
  57. package/dist/assets/src-BIligwLb.js +0 -1
  58. package/dist/assets/src-BbGADHi4.js +0 -1
  59. package/dist/assets/src-BngIhzHR.js +0 -1
  60. package/dist/assets/src-BqCV9wTP.js +0 -1
  61. package/dist/assets/src-CO_C8dwk.js +0 -1
  62. package/dist/assets/src-CTwytbLw.js +0 -1
  63. package/dist/assets/src-Ck3rvFAP.js +0 -2
  64. package/dist/assets/src-DD4urQ_Z.js +0 -4
  65. package/dist/assets/src-DdRHCjFX.js +0 -1
  66. package/dist/assets/src-DfExcdwX.js +0 -1
  67. package/dist/assets/src-JijGLvg4.js +0 -1
  68. package/dist/assets/src-m6T7MzTC.js +0 -4
  69. package/dist/assets/src-wGc7N6NH.js +0 -1
  70. package/dist/assets/ui-Vp773Nr2.js +0 -2
@@ -3667,7 +3667,8 @@ function Mo(e) {
3667
3667
  hints: {
3668
3668
  ext: r,
3669
3669
  maxBytes: i,
3670
- noEditControl: !0
3670
+ noEditControl: !0,
3671
+ ...t.key ? { fileName: t.key } : {}
3671
3672
  },
3672
3673
  zod: K(a, n)
3673
3674
  });
@@ -5022,7 +5023,15 @@ function Ts(e) {
5022
5023
  }, t.multiple ?? !1));
5023
5024
  }
5024
5025
  function Es(e) {
5025
- let t = q(e), n = t.required ?? !1, r = t.multiple ?? !1, i;
5026
+ for (let [t, n] of Object.entries(e)) {
5027
+ if (t.startsWith("$")) throw Error(`[relation] filter key '${t}' is an operator — only flat equality is allowed here`);
5028
+ if (n === void 0 || typeof n == "object" && n) throw Error(`[relation] filter key '${t}' has a non-scalar value — only flat equality is allowed here`);
5029
+ }
5030
+ }
5031
+ function Ds(e) {
5032
+ let t = q(e), n = t.required ?? !1, r = t.multiple ?? !1;
5033
+ e.options.filter && Es(e.options.filter);
5034
+ let i;
5026
5035
  return i = r ? R().superRefine((e, t) => {
5027
5036
  let n = G(e);
5028
5037
  (!Array.isArray(n) || !n.every((e) => Number.isInteger(e) && e > 0)) && t.addIssue({
@@ -5041,13 +5050,14 @@ function Es(e) {
5041
5050
  },
5042
5051
  relation: {
5043
5052
  library: e.options.library,
5044
- shelf: e.options.shelf
5053
+ shelf: e.options.shelf,
5054
+ ...e.options.filter && { filter: e.options.filter }
5045
5055
  },
5046
5056
  ...r && { json: !0 },
5047
5057
  zod: K(i, n)
5048
5058
  });
5049
5059
  }
5050
- function Ds(e) {
5060
+ function Os(e) {
5051
5061
  let t = q(e), n = t.required ?? !1, r = R().superRefine((e, t) => {
5052
5062
  if (typeof e == "string") try {
5053
5063
  JSON.parse(e);
@@ -5069,7 +5079,7 @@ function Ds(e) {
5069
5079
  zod: K(r, n)
5070
5080
  });
5071
5081
  }
5072
- function Os(e) {
5082
+ function ks(e) {
5073
5083
  let t = q(e), n = t.required ?? !1, r = t.multiple ?? !1, i = t.slots && t.slots.length > 0 ? t.slots : [""], a = t.fields?.length ? t.fields : [Z({
5074
5084
  key: "text",
5075
5085
  label: "core.fields.text"
@@ -5124,14 +5134,14 @@ function Os(e) {
5124
5134
  slots: i,
5125
5135
  fields: a.map((e) => ({
5126
5136
  key: e.key,
5127
- ...ac(e.type)
5137
+ ...oc(e.type)
5128
5138
  }))
5129
5139
  },
5130
5140
  columns: l,
5131
5141
  zod: K(d, n)
5132
5142
  });
5133
5143
  }
5134
- function ks(e) {
5144
+ function As(e) {
5135
5145
  let t = q(e), n = t.required ?? !1, r = t.config ?? {}, i = ao((t.options, t.options)), a = L().finite();
5136
5146
  r.step === 1 && (a = a.int({ message: H("int") })), r.min != null && (a = a.min(r.min)), r.max != null && (a = a.max(r.max));
5137
5147
  let o = z({
@@ -5180,7 +5190,7 @@ function ks(e) {
5180
5190
  zod: K(s, n)
5181
5191
  });
5182
5192
  }
5183
- function As(e) {
5193
+ function js(e) {
5184
5194
  let t = q(e), n = t.required ?? !1, r = ao(t.options), i = F(U()).refine((e) => r.some((t) => t.value === e), { message: H("measured_unit") });
5185
5195
  return Y(t, {
5186
5196
  kind: "unit",
@@ -5196,7 +5206,7 @@ function As(e) {
5196
5206
  zod: K(i, n)
5197
5207
  });
5198
5208
  }
5199
- function js(e) {
5209
+ function Ms(e) {
5200
5210
  let t = q(e), n = t.required ?? !1, r = t.config ?? {}, i = V(W());
5201
5211
  return r.min != null && (i = i.min(r.min, { message: H("min", { min: r.min }) })), r.max != null && (i = i.max(r.max, { message: H("max", { max: r.max }) })), Y(t, {
5202
5212
  kind: "amount",
@@ -5213,7 +5223,7 @@ function js(e) {
5213
5223
  zod: K(i, n)
5214
5224
  });
5215
5225
  }
5216
- function Ms(e) {
5226
+ function Ns(e) {
5217
5227
  let t = q(e), n = t.required ?? !1, r = t.config ?? {}, i = L().finite();
5218
5228
  r.min != null && (i = i.min(r.min)), r.max != null && (i = i.max(r.max));
5219
5229
  let a = z({
@@ -5251,7 +5261,7 @@ function Ms(e) {
5251
5261
  zod: K(o, n)
5252
5262
  });
5253
5263
  }
5254
- function Ns(e) {
5264
+ function Ps(e) {
5255
5265
  let t = q(e), n = t.required ?? !1, r = t.config ?? {}, i = z({
5256
5266
  code: F(),
5257
5267
  lang: F()
@@ -5283,7 +5293,7 @@ function Ns(e) {
5283
5293
  zod: K(a, n)
5284
5294
  });
5285
5295
  }
5286
- function Ps(e) {
5296
+ function Fs(e) {
5287
5297
  let t = q(e), n = t.required ?? !1, r = z({
5288
5298
  lat: L().min(-90).max(90),
5289
5299
  lng: L().min(-180).max(180),
@@ -5324,7 +5334,7 @@ function Ps(e) {
5324
5334
  zod: K(i, n)
5325
5335
  });
5326
5336
  }
5327
- function Fs(e) {
5337
+ function Is(e) {
5328
5338
  return {
5329
5339
  ...ns({
5330
5340
  key: e.key,
@@ -5344,7 +5354,7 @@ function Fs(e) {
5344
5354
  kind: "per-weekday"
5345
5355
  };
5346
5356
  }
5347
- function Is(e) {
5357
+ function Ls(e) {
5348
5358
  let t = q(e);
5349
5359
  return Y(t, {
5350
5360
  kind: "lookup",
@@ -5361,7 +5371,7 @@ function Is(e) {
5361
5371
  zod: ga().optional()
5362
5372
  });
5363
5373
  }
5364
- function Ls(e) {
5374
+ function Rs(e) {
5365
5375
  let t = q(e), n = t.config?.granularity ?? "day", r = t.required ?? !1, i = t.multiple ?? !1, a = (e, t) => n === "datetime" ? xs({
5366
5376
  key: e,
5367
5377
  label: t
@@ -5402,10 +5412,10 @@ function Ls(e) {
5402
5412
  });
5403
5413
  let d = n === "datetime" ? "datetime" : n === "day" ? "date" : "text", f = [{
5404
5414
  key: "from",
5405
- ...ac(o.type)
5415
+ ...oc(o.type)
5406
5416
  }, {
5407
5417
  key: "until",
5408
- ...ac(s.type)
5418
+ ...oc(s.type)
5409
5419
  }];
5410
5420
  return Y(t, {
5411
5421
  kind: "period",
@@ -5426,25 +5436,25 @@ function Ls(e) {
5426
5436
  zod: K(u, r)
5427
5437
  });
5428
5438
  }
5429
- var Rs = /* @__PURE__ */ new Set([
5439
+ var zs = /* @__PURE__ */ new Set([
5430
5440
  "name",
5431
5441
  "mime",
5432
5442
  "size"
5433
- ]), zs = [
5443
+ ]), Bs = [
5434
5444
  "url",
5435
5445
  "src",
5436
5446
  "href",
5437
5447
  "link"
5438
5448
  ];
5439
- function Bs(e) {
5449
+ function Vs(e) {
5440
5450
  if (typeof e != "object" || !e || Array.isArray(e)) return "file_structure";
5441
5451
  let t = e;
5442
- if (zs.some((e) => e in t)) return "file_remote_url";
5452
+ if (Bs.some((e) => e in t)) return "file_remote_url";
5443
5453
  let n = t.name;
5444
5454
  if (typeof n != "string" || n === "") return "file_structure";
5445
5455
  if (n.includes("://") || n.startsWith("//")) return "file_remote_url";
5446
5456
  if (/[\\/]/.test(n) || n.includes("..")) return "file_name";
5447
- for (let e of Object.keys(t)) if (!Rs.has(e)) return "file_unknown_key";
5457
+ for (let e of Object.keys(t)) if (!zs.has(e)) return "file_unknown_key";
5448
5458
  return t.mime !== void 0 && typeof t.mime != "string" || t.size !== void 0 && typeof t.size != "number" ? "file_structure" : null;
5449
5459
  }
5450
5460
  function $(e, t) {
@@ -5460,7 +5470,7 @@ function $(e, t) {
5460
5470
  }
5461
5471
  let n = G(e), r = Array.isArray(n) ? n : [n];
5462
5472
  for (let e of r) {
5463
- let n = Bs(e);
5473
+ let n = Vs(e);
5464
5474
  if (n) {
5465
5475
  t.addIssue({
5466
5476
  code: B.custom,
@@ -5481,34 +5491,34 @@ function $(e, t) {
5481
5491
  zod: K(a, r)
5482
5492
  });
5483
5493
  }
5484
- function Vs(e) {
5494
+ function Hs(e) {
5485
5495
  return $("file", e);
5486
5496
  }
5487
- function Hs(e) {
5497
+ function Us(e) {
5488
5498
  return $("document", e);
5489
5499
  }
5490
- function Us(e) {
5500
+ function Ws(e) {
5491
5501
  return $("audio", e);
5492
5502
  }
5493
- function Ws(e) {
5503
+ function Gs(e) {
5494
5504
  return $("video", e);
5495
5505
  }
5496
- function Gs(e) {
5506
+ function Ks(e) {
5497
5507
  return $("image", e);
5498
5508
  }
5499
- function Ks(e) {
5509
+ function qs(e) {
5500
5510
  return $("media", e);
5501
5511
  }
5502
- function qs(e) {
5512
+ function Js(e) {
5503
5513
  return $("avatar", e);
5504
5514
  }
5505
- function Js(e) {
5515
+ function Ys(e) {
5506
5516
  return $("cover", e);
5507
5517
  }
5508
- function Ys(e) {
5518
+ function Xs(e) {
5509
5519
  return $("poster", e);
5510
5520
  }
5511
- function Xs(e) {
5521
+ function Zs(e) {
5512
5522
  let t = q(e), n = {
5513
5523
  ...t.option ?? Z({ label: "" }),
5514
5524
  label: t.valueLabel ?? ""
@@ -5528,7 +5538,7 @@ function Xs(e) {
5528
5538
  required: t.required
5529
5539
  });
5530
5540
  }
5531
- function Zs(e, t, n) {
5541
+ function Qs(e, t, n) {
5532
5542
  let r = q(n), i = r.required ?? !1, a = r.config ?? {}, o = L().finite();
5533
5543
  t && (o = o.int({ message: H("int") })), a.min != null && (o = o.min(a.min)), a.max != null && (o = o.max(a.max));
5534
5544
  let s = z({
@@ -5578,13 +5588,13 @@ function Zs(e, t, n) {
5578
5588
  zod: K(c, i)
5579
5589
  });
5580
5590
  }
5581
- function Qs(e) {
5582
- return Zs("numberRange", !0, e);
5583
- }
5584
5591
  function $s(e) {
5585
- return Zs("realRange", !1, e);
5592
+ return Qs("numberRange", !0, e);
5586
5593
  }
5587
5594
  function ec(e) {
5595
+ return Qs("realRange", !1, e);
5596
+ }
5597
+ function tc(e) {
5588
5598
  let t = q(e), n = t.required ?? !1, r = t.multiple ?? !1, i = z({
5589
5599
  url: F().min(1),
5590
5600
  title: F().optional(),
@@ -5612,7 +5622,7 @@ function ec(e) {
5612
5622
  zod: K(a, n)
5613
5623
  });
5614
5624
  }
5615
- var tc = {
5625
+ var nc = {
5616
5626
  string: Z,
5617
5627
  text: Q,
5618
5628
  i18n: hs,
@@ -5627,31 +5637,31 @@ var tc = {
5627
5637
  boolean: Ss,
5628
5638
  triState: Cs,
5629
5639
  select: Ts,
5630
- relation: Es,
5631
- json: Ds,
5632
- check: Os,
5633
- measured: ks,
5634
- unit: As,
5635
- amount: js,
5636
- money: Ms,
5637
- code: Ns,
5638
- geo: Ps,
5639
- lookup: Is,
5640
- perWeekday: Fs,
5641
- period: Ls,
5642
- file: Vs,
5643
- document: Hs,
5644
- audio: Us,
5645
- video: Ws,
5646
- image: Gs,
5647
- media: Ks,
5648
- avatar: qs,
5649
- cover: Js,
5650
- poster: Ys,
5651
- embed: ec,
5652
- keyValue: Xs,
5653
- numberRange: Qs,
5654
- realRange: $s,
5640
+ relation: Ds,
5641
+ json: Os,
5642
+ check: ks,
5643
+ measured: As,
5644
+ unit: js,
5645
+ amount: Ms,
5646
+ money: Ns,
5647
+ code: Ps,
5648
+ geo: Fs,
5649
+ lookup: Ls,
5650
+ perWeekday: Is,
5651
+ period: Rs,
5652
+ file: Hs,
5653
+ document: Us,
5654
+ audio: Ws,
5655
+ video: Gs,
5656
+ image: Ks,
5657
+ media: qs,
5658
+ avatar: Js,
5659
+ cover: Ys,
5660
+ poster: Xs,
5661
+ embed: tc,
5662
+ keyValue: Zs,
5663
+ numberRange: $s,
5664
+ realRange: ec,
5655
5665
  group: J,
5656
5666
  row: Qo,
5657
5667
  table: $o,
@@ -5663,19 +5673,19 @@ var tc = {
5663
5673
  info: ss,
5664
5674
  button: cs
5665
5675
  };
5666
- function nc(e) {
5667
- for (let t of Object.keys(e)) if (t in tc) throw Error(`[f] preset '${t}' overrides a primitive`);
5676
+ function rc(e) {
5677
+ for (let t of Object.keys(e)) if (t in nc) throw Error(`[f] preset '${t}' overrides a primitive`);
5668
5678
  return {
5669
- ...tc,
5679
+ ...nc,
5670
5680
  ...e
5671
5681
  };
5672
5682
  }
5673
- var rc, ic = () => rc ??= nc(Uo);
5683
+ var ic, ac = () => ic ??= rc(Uo);
5674
5684
  new Proxy({}, {
5675
- get: (e, t) => ic()[t],
5676
- has: (e, t) => t in ic()
5685
+ get: (e, t) => ac()[t],
5686
+ has: (e, t) => t in ac()
5677
5687
  });
5678
- function ac(e) {
5688
+ function oc(e) {
5679
5689
  let { kind: t, label: n, required: r, prim: i, hints: a, options: o, relation: s, virtual: c, json: l, hidden: u, derived: d } = e;
5680
5690
  return {
5681
5691
  kind: t,
@@ -5693,8 +5703,8 @@ function ac(e) {
5693
5703
  }
5694
5704
  //#endregion
5695
5705
  //#region ../web-sdk/src/registry.ts
5696
- var oc = {};
5697
- function sc(e) {
5706
+ var sc = {};
5707
+ function cc(e) {
5698
5708
  if (!e.kinds.length) throw Error("[render] renderer without kinds");
5699
5709
  let t = {
5700
5710
  kinds: e.kinds,
@@ -5705,14 +5715,14 @@ function sc(e) {
5705
5715
  keys: e.keys
5706
5716
  };
5707
5717
  for (let n of e.kinds) {
5708
- if (oc[n]) throw Error(`[render] kind '${n}' already registered`);
5709
- oc[n] = t;
5718
+ if (sc[n]) throw Error(`[render] kind '${n}' already registered`);
5719
+ sc[n] = t;
5710
5720
  }
5711
5721
  }
5712
- function cc(e) {
5713
- return oc[e.kind];
5714
- }
5715
5722
  function lc(e) {
5723
+ return sc[e.kind];
5724
+ }
5725
+ function uc(e) {
5716
5726
  if (Ko(e) || qo(e)) return e.type.kind;
5717
5727
  if (Jo(e)) return e.kind ?? (rs(e) ? "collection" : is(e) ? "embedded" : "group");
5718
5728
  if (Zo(e)) return "button";
@@ -5720,75 +5730,75 @@ function lc(e) {
5720
5730
  if (Xo(e)) return "info";
5721
5731
  throw Error("[render] unknown layout element");
5722
5732
  }
5723
- function uc(e) {
5724
- let t = cc(e)?.layout;
5733
+ function dc(e) {
5734
+ let t = lc(e)?.layout;
5725
5735
  return typeof t == "function" ? t(e) : t ?? "scalar";
5726
5736
  }
5727
- var dc = (e) => e.hints.multi === !0 || e.hints.multiple === !0 ? "block" : "scalar", fc = {};
5728
- function pc(e, t) {
5729
- if (fc[e]) throw Error(`[template] '${e}' already registered`);
5730
- fc[e] = t;
5737
+ var fc = (e) => e.hints.multi === !0 || e.hints.multiple === !0 ? "block" : "scalar", pc = {};
5738
+ function mc(e, t) {
5739
+ if (pc[e]) throw Error(`[template] '${e}' already registered`);
5740
+ pc[e] = t;
5731
5741
  }
5732
- function mc(e) {
5733
- return fc[e];
5742
+ function hc(e) {
5743
+ return pc[e];
5734
5744
  }
5735
5745
  //#endregion
5736
5746
  //#region ../web-sdk/src/list-view.ts
5737
- var hc = {};
5738
- function gc(e) {
5747
+ var gc = {};
5748
+ function _c(e) {
5739
5749
  if (!e.kind) throw Error("[list-view] view without kind");
5740
- if (hc[e.kind]) throw Error(`[list-view] kind '${e.kind}' already registered`);
5741
- hc[e.kind] = e;
5750
+ if (gc[e.kind]) throw Error(`[list-view] kind '${e.kind}' already registered`);
5751
+ gc[e.kind] = e;
5742
5752
  }
5743
- function _c(e) {
5744
- return hc[e];
5753
+ function vc(e) {
5754
+ return gc[e];
5745
5755
  }
5746
5756
  //#endregion
5747
5757
  //#region ../web-sdk/src/plugin-ui.ts
5748
- function vc(e) {
5758
+ function yc(e) {
5749
5759
  return e;
5750
5760
  }
5751
- var yc = /* @__PURE__ */ new Map(), bc = /* @__PURE__ */ new Map(), xc = /* @__PURE__ */ new Map();
5752
- function Sc(e) {
5761
+ var bc = /* @__PURE__ */ new Map(), xc = /* @__PURE__ */ new Map(), Sc = /* @__PURE__ */ new Map();
5762
+ function Cc(e) {
5753
5763
  for (let t of e.slots ?? []) {
5754
- let e = yc.get(t.slot);
5755
- e || (e = /* @__PURE__ */ new Map(), yc.set(t.slot, e)), e.set(t.id, t);
5764
+ let e = bc.get(t.slot);
5765
+ e || (e = /* @__PURE__ */ new Map(), bc.set(t.slot, e)), e.set(t.id, t);
5756
5766
  }
5757
- for (let t of e.routes ?? []) bc.set(t.path, t);
5758
- for (let t of e.nav ?? []) xc.set(t.to, t);
5759
- }
5760
- function Cc(e) {
5761
- return (t, n) => (t.order ?? 0) - (n.order ?? 0) || e(t).localeCompare(e(n));
5767
+ for (let t of e.routes ?? []) xc.set(t.path, t);
5768
+ for (let t of e.nav ?? []) Sc.set(t.to, t);
5762
5769
  }
5763
5770
  function wc(e) {
5764
- return [...yc.get(e)?.values() ?? []].sort(Cc((e) => e.id));
5771
+ return (t, n) => (t.order ?? 0) - (n.order ?? 0) || e(t).localeCompare(e(n));
5765
5772
  }
5766
- function Tc() {
5767
- return [...bc.values()];
5773
+ function Tc(e) {
5774
+ return [...bc.get(e)?.values() ?? []].sort(wc((e) => e.id));
5768
5775
  }
5769
5776
  function Ec() {
5770
- return [...xc.values()].sort(Cc((e) => e.to));
5777
+ return [...xc.values()];
5771
5778
  }
5772
5779
  function Dc() {
5773
- yc.clear(), bc.clear(), xc.clear();
5780
+ return [...Sc.values()].sort(wc((e) => e.to));
5781
+ }
5782
+ function Oc() {
5783
+ bc.clear(), xc.clear(), Sc.clear();
5774
5784
  }
5775
5785
  //#endregion
5776
5786
  //#region ../web-sdk/src/site-links.ts
5777
- var Oc = [], kc = [];
5778
- function Ac(e) {
5779
- Oc = [...e];
5780
- }
5781
- function jc() {
5782
- return [...Oc];
5783
- }
5784
- function Mc(e) {
5787
+ var kc = [], Ac = [];
5788
+ function jc(e) {
5785
5789
  kc = [...e];
5786
5790
  }
5787
- function Nc() {
5791
+ function Mc() {
5788
5792
  return [...kc];
5789
5793
  }
5794
+ function Nc(e) {
5795
+ Ac = [...e];
5796
+ }
5790
5797
  function Pc() {
5791
- Oc = [], kc = [];
5798
+ return [...Ac];
5799
+ }
5800
+ function Fc() {
5801
+ kc = [], Ac = [];
5792
5802
  }
5793
5803
  //#endregion
5794
- export { Sc as applyAppUI, vc as definePluginUI, lc as elementKind, uc as fieldLayout, Ec as getPluginNav, Tc as getPluginRoutes, jc as getSiteLinks, Nc as getSiteShelves, wc as getSlotEntries, hc as listViewRegistry, dc as multiBlock, gc as registerListView, sc as registerRenderer, Ac as registerSiteLinks, Mc as registerSiteShelves, pc as registerTemplate, oc as rendererRegistry, Dc as resetAppUI, Pc as resetSiteLinks, _c as resolveListView, cc as resolveRenderer, mc as resolveTemplate };
5804
+ export { Cc as applyAppUI, yc as definePluginUI, uc as elementKind, dc as fieldLayout, Dc as getPluginNav, Ec as getPluginRoutes, Mc as getSiteLinks, Pc as getSiteShelves, Tc as getSlotEntries, gc as listViewRegistry, fc as multiBlock, _c as registerListView, cc as registerRenderer, jc as registerSiteLinks, Nc as registerSiteShelves, mc as registerTemplate, sc as rendererRegistry, Oc as resetAppUI, Fc as resetSiteLinks, vc as resolveListView, lc as resolveRenderer, hc as resolveTemplate };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coffer-org/web",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=24"
@@ -19,7 +19,7 @@
19
19
  "prepack": "npm run build"
20
20
  },
21
21
  "dependencies": {
22
- "@coffer-org/core": "3.0.0",
22
+ "@coffer-org/core": "3.1.0",
23
23
  "dompurify": "^3.2.5",
24
24
  "marked": "^15.0.0",
25
25
  "micromark": "^4.0.2",
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{a as r,l as i,t as a,u as o}from"./react-vendor-BskHO5hY.js";import{n as s,t as c}from"./ExtendReasonInfo-DZyJKRHy.js";import{t as l}from"./Icon-Dydn049Z.js";import{b as u,f as d,l as f,m as p,n as m,o as h,r as g,s as _,t as v,u as y}from"./Toolbar-_Bg6b3gy.js";import{S as b,f as x,g as S,m as C}from"./fields-BvFhu2Zp.js";import{_ as w,n as T,o as E,s as D,t as O,v as k}from"./shelf-D-ifpKTJ.js";import{t as A}from"./button-DaYjtbcx.js";import{t as j}from"./json-CkyL3W27.js";import{j as M,s as N}from"./api-DsJ6cAbe.js";import{n as P}from"./dispatch-B7QFSWwA.js";var F=e(t(),1),I=a(),L=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/fields-form.tsx`;function R({shelf:e,record:t,onSubmit:r,onCancel:i,submitLabel:a,busy:o,children:s,hiddenFields:c,onValuesChange:l,errorSink:u,extraValidate:d}){let{t:p}=n(),h=f(p),v=!!t,y=(0,F.useMemo)(()=>D(e.fields),[e]),{values:x,errors:S,setErrors:C,setTouched:w,bridge:E}=m({fm:y,mode:v?`edit`:`create`,recordCtx:{library:e.library,shelf:e.shelf,recordId:t?String(t.id):null},initial:()=>B(e,t),hiddenFields:c}),[k,j]=(0,F.useState)(),[M,N]=(0,F.useState)(!1);(0,F.useEffect)(()=>{l?.(x)},[x,l]),(0,F.useEffect)(()=>{u?.({setErrors:C,setTouched:w})},[u,C,w]);async function P(t){t.preventDefault(),j(void 0);let n=Object.keys(y),i={};for(let e of n)e in x&&(i[e]=x[e]);let a=V(i),o=(v?T(e):O(e)).safeParse(a),s={};if(!o.success)for(let e of o.error.issues){let t=String(e.path[0]??``);if(!n.includes(t)||s[t])continue;let{code:r,params:i}=b(e.message);s[t]=h(r,i)}if(Object.assign(s,d?.(x)??{}),Object.keys(s).length){C(s),w(new Set(Object.keys(s)));return}N(!0);let c=await r(a);N(!1),c&&j(c)}return(0,I.jsxDEV)(`form`,{onSubmit:P,noValidate:!0,className:`flex flex-col gap-5 min-w-0`,children:[(0,I.jsxDEV)(_.Provider,{value:e=>S[e.join(`.`)],children:(0,I.jsxDEV)(g,{items:e.fields,ctx:{bridge:E}},void 0,!1,{fileName:L,lineNumber:117,columnNumber:9},this)},void 0,!1,{fileName:L,lineNumber:116,columnNumber:7},this),s,k&&(0,I.jsxDEV)(`p`,{className:`text-sm text-danger`,children:k},void 0,!1,{fileName:L,lineNumber:120,columnNumber:21},this),(0,I.jsxDEV)(`div`,{className:`flex gap-3 pt-2 border-t border-border`,children:[(0,I.jsxDEV)(A,{type:`submit`,disabled:o||M,size:`lg`,className:`flex-1`,children:a??p(`actions.save`)},void 0,!1,{fileName:L,lineNumber:122,columnNumber:9},this),i&&(0,I.jsxDEV)(A,{type:`button`,variant:`secondary`,size:`lg`,onClick:i,className:`flex-1`,children:p(`actions.cancel`)},void 0,!1,{fileName:L,lineNumber:126,columnNumber:11},this)]},void 0,!0,{fileName:L,lineNumber:121,columnNumber:7},this)]},void 0,!0,{fileName:L,lineNumber:115,columnNumber:5},this)}var z=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/form.tsx`;function B(e,t){let n={};n.name=t?.name==null?``:String(t.name);for(let[r,i]of E(e.fields))if(!i.virtual)if(t){let e=t[r];e==null?n[r]=i.prim!==`checkbox`&&``:i.prim===`checkbox`?n[r]=e===1||e===!0||e===`1`:C(i)?n[r]=e===``?``:j(e,i.hints.multiple===!0?[]:{}):n[r]=e}else n[r]=i.prim===`checkbox`?!1:C(i)&&i.hints.multiple===!0?[]:``;for(let r of e.fields){if(!x(r)||!S(r))continue;let e=r.key;t?n[e]=t[e]??(r.multiple?[]:{}):n[e]=r.multiple?[]:{}}return n}function V(e){let t={};for(let[n,r]of Object.entries(e))r===``||r===void 0||Array.isArray(r)&&r.length===0||typeof r==`object`&&r&&!Array.isArray(r)&&Object.keys(r).length===0||(t[n]=r);return t}function H({ext:e,values:t,onChange:r,recordId:i,fieldLabel:a}){let{t:o}=n();return(0,I.jsxDEV)(`fieldset`,{className:`border border-accent/30 rounded-xl p-4 pt-2 flex flex-col min-w-0 gap-4`,children:[(0,I.jsxDEV)(`legend`,{className:`px-2 inline-flex items-center gap-1.5 text-sm font-semibold text-accent`,children:[(0,I.jsxDEV)(l,{name:e.icon,size:14,className:`shrink-0`},void 0,!1,{fileName:z,lineNumber:115,columnNumber:9},this),` `,o(e.label),(0,I.jsxDEV)(c,{ext:e,fieldLabel:a},void 0,!1,{fileName:z,lineNumber:116,columnNumber:9},this)]},void 0,!0,{fileName:z,lineNumber:114,columnNumber:7},this),(0,I.jsxDEV)(g,{items:e.fields,ctx:{renderField:(n,a)=>k(a.hidden,t)?null:(0,I.jsxDEV)(P,{mode:`create`,field:a,label:a.label?o(a.label):void 0,required:k(a.required,t),value:t[n]??``,recordCtx:{library:``,shelf:e.id,recordId:i},onChange:t=>r(e.id,n,t)},void 0,!1,{fileName:z,lineNumber:101,columnNumber:9},this)}},void 0,!1,{fileName:z,lineNumber:118,columnNumber:7},this)]},void 0,!0,{fileName:z,lineNumber:113,columnNumber:5},this)}function U(e,t,n){let[r]=(0,F.useState)(()=>{let n={};for(let r of e){let e=t?._extends?.[r.id];n[r.id]={};for(let[t,i]of E(r.fields)){let a=e?.[t];a==null?n[r.id][t]=i.prim===`checkbox`?!1:C(i)&&i.hints.multiple===!0?[]:``:i.prim===`checkbox`?n[r.id][t]=a===1||a===!0||a===`1`:C(i)?n[r.id][t]=a===``?``:j(a,i.hints.multiple===!0?[]:{}):n[r.id][t]=a}}return n}),[i,a]=(0,F.useState)(r),o=(0,F.useMemo)(()=>e.filter(e=>w(e.showWhen,n)),[e,n]);function s(e,t,n){a(r=>({...r,[e]:{...r[e],[t]:n}}))}function c(e){let t={};for(let n of o){let a=i[n.id]??{};if(e){let e=r[n.id]??{},i=Object.fromEntries(Object.entries(a).filter(([t,n])=>n!==e[t]));Object.keys(i).length>0&&(t[`_extend_${n.id}`]=i)}else{let e=Object.fromEntries(Object.entries(a).filter(([,e])=>e!==``&&e!==!1));t[`_extend_${n.id}`]=e}}return t}return{extValues:i,setExtValue:s,activeExts:o,buildExtendPatch:c}}function W({shelf:e,record:t,defaults:r,hiddenFields:i,onSuccess:a,onCancel:o}){let{t:s}=n(),c=f(s),l=!!t,u=(0,F.useMemo)(()=>D(e.fields),[e]),[p,m]=(0,F.useState)([]),[h,g]=(0,F.useState)(!1),[_,v]=(0,F.useState)(()=>B(e,t)),b=(0,F.useRef)(null),{extValues:x,setExtValue:S,activeExts:C,buildExtendPatch:w}=U((0,F.useMemo)(()=>d().filter(t=>t.attachTo.some(t=>t.library===e.library&&(!t.shelf||t.shelf===e.shelf))),[e]),t,_);function T(e){return l||String(e.name??``).trim()?{}:{name:s(`validation.required`)}}async function E(n){m([]),g(!0);let r={...n,...w()},i=String(t?.id??``),o=l?await M(e.library,e.shelf,i,r):await N(e.library,e.shelf,r);if(g(!1),o.ok){a(o.row);return}let s=o.issues??[],d={},f=[];for(let e of s)e.field&&u[e.field]?d[e.field]=c(e.code,e.params):f.push(e);let p=y(s,c);(Object.keys(d).length||Object.keys(p).length)&&(b.current?.setErrors(e=>({...e,...d,...p})),b.current?.setTouched(e=>new Set([...e,...Object.keys(d)]))),m(f)}return(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(R,{shelf:e,record:t,onSubmit:E,onCancel:o,submitLabel:s(h?`common.saving`:l?`actions.save`:`actions.create`),busy:h,hiddenFields:i,onValuesChange:v,errorSink:e=>{b.current=e},extraValidate:T,children:[C.map(e=>(0,I.jsxDEV)(H,{ext:e,values:x[e.id]??{},onChange:S,recordId:t?String(t.id):null,fieldLabel:e=>u[e]?.label?s(u[e].label):e},e.id,!1,{fileName:z,lineNumber:319,columnNumber:11},this)),p.length>0&&(0,I.jsxDEV)(`div`,{className:`bg-danger/10 border border-danger/30 rounded-xl p-3.5 text-sm`,children:[(0,I.jsxDEV)(`p`,{className:`font-semibold text-danger mb-2`,children:s(`form.serverRejected`)},void 0,!1,{fileName:z,lineNumber:331,columnNumber:13},this),(0,I.jsxDEV)(`ul`,{className:`space-y-1 text-text/80`,children:p.map((e,t)=>{let n=u[e.field],r=n?s(n.label):e.field,i=e.code===`pattern`&&e.params?.messageKey?s(String(e.params.messageKey)):s(`validation.${e.code}`,e.params);return(0,I.jsxDEV)(`li`,{className:`flex gap-1.5`,children:[r&&(0,I.jsxDEV)(`span`,{className:`text-muted font-medium`,children:[r,`:`]},void 0,!0,{fileName:z,lineNumber:342,columnNumber:31},this),i]},t,!0,{fileName:z,lineNumber:341,columnNumber:19},this)})},void 0,!1,{fileName:z,lineNumber:332,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:330,columnNumber:11},this)]},`${e.library}/${e.shelf}/${t?t.id:`new`}`,!0,{fileName:z,lineNumber:302,columnNumber:7},this)},void 0,!1,{fileName:z,lineNumber:294,columnNumber:5},this)}var G=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/record/NewRecordView.tsx`;function K(){let{t:e}=n(),{library:t,shelf:a}=o(),c=i(),l=p().flatMap(e=>e.shelves).find(e=>e.library===t&&e.shelf===a);return!l||l.standalone===!1?(0,I.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:G,lineNumber:20,columnNumber:44},this):l.single?(0,I.jsxDEV)(r,{to:`/${t}/${a}`,replace:!0},void 0,!1,{fileName:G,lineNumber:25,columnNumber:24},this):(0,I.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,I.jsxDEV)(v,{children:(0,I.jsxDEV)(A,{variant:`ghost`,size:`sm`,className:`px-2`,onClick:()=>c(`/${t}/${a}`),children:[(0,I.jsxDEV)(u,{size:18},void 0,!1,{fileName:G,lineNumber:31,columnNumber:11},this),(0,I.jsxDEV)(`span`,{className:`text-sm`,children:e(l.label)},void 0,!1,{fileName:G,lineNumber:32,columnNumber:11},this)]},void 0,!0,{fileName:G,lineNumber:30,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:29,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,I.jsxDEV)(`div`,{className:`max-w-2xl mx-auto px-6 py-6`,children:(0,I.jsxDEV)(h,{library:l.library,shelf:l.shelf,children:(0,I.jsxDEV)(W,{shelf:l,onSuccess:e=>{s(`${l.library}/${l.shelf}`),e?.id?c(`/${t}/${a}/${e.id}`):c(`/${t}/${a}`)},onCancel:()=>c(`/${t}/${a}`)},void 0,!1,{fileName:G,lineNumber:38,columnNumber:13},this)},void 0,!1,{fileName:G,lineNumber:37,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:36,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:35,columnNumber:7},this)]},void 0,!0,{fileName:G,lineNumber:28,columnNumber:5},this)}export{K as NewRecordView};
@@ -1,2 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{t as r}from"./react-vendor-BskHO5hY.js";import{r as i}from"./x-CzSVfh-E.js";import{c as a,d as o,p as s,u as c}from"./chrome-BfURuVBW.js";import{T as l,d as u,f as d,g as f,h as p,l as m,n as h,o as g,p as _,s as v}from"./fields-BvFhu2Zp.js";import{o as y,v as b}from"./shelf-D-ifpKTJ.js";import{n as x,o as S,t as C}from"./src-R3C69mft.js";import{i as ee,n as te,r as ne}from"./field-frame-lE36ax7A.js";import{n as re}from"./extend-CbEbk8Xz.js";import{t as ie}from"./plugin-q1oOYqt7.js";import{f as w}from"./api-DsJ6cAbe.js";import{r as ae,t as T}from"./development-olQNibq5.js";import{_ as E,a as oe,b as D,g as se,h as ce,i as le,l as O,m as ue,n as de,p as fe,r as pe,t as me,v as k,y as A}from"./micromark-extension-gfm-BUw6_ZLT.js";var he=i(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),j=e(t(),1);function ge(e,t={}){let n=t.disabled??new Set,r=e.filter(e=>!n.has(e.id)),i=new Map;for(let e of r){for(let t of e.libraries??[])for(let n of t.shelves)i.set(`${n.library}/${n.shelf}`,e.id);for(let t of e.libraryShelves??[])i.set(`${t.library}/${t.shelf}`,e.id)}let a=(e,t)=>i.get(`${e}/${t}`);for(let e of r)for(let t of e.dependsOn)if(n.has(t))throw Error(`[plugin] '${e.id}' is enabled, but its dependency '${t}' is disabled`);let{order:o,libraries:s,shelves:c,extends_:l}=ie(r),u=new Map;for(let e of r)for(let t of e.fieldContribs??[]){let e=`${t.library}/${t.shelf}/${t.field}`,n=u.get(e)??{options:[],suggestions:[]};t.options&&n.options.push(...t.options),t.suggestions&&n.suggestions.push(...t.suggestions),u.set(e,n)}let d=(e,t)=>{if(t.options.length){let n=new Set((e.options??[]).map(e=>e.value));e.options=[...e.options??[],...t.options.filter(e=>!n.has(e.value))]}if(t.suggestions.length){let n=e.hints.suggestions??[],r=new Set(n);e.hints.suggestions=[...n,...t.suggestions.filter(e=>!r.has(e))]}},f=new Map;for(let e of r)for(let t of e.optionLists??[])f.set(t.name,t.options);let p=e=>f.get(e)??[];for(let e of c)for(let[t,n]of y(e.fields)){let r=u.get(`${e.library}/${e.shelf}/${t}`);r&&d(n,r)}for(let e of r)for(let[t,n]of e.settings?y(e.settings.fields):[]){let r=u.get(`_settings/${e.id}/${t}`);r&&(d(n,r),n.prim===`select`&&n.options?.length&&h(n,n.options.map(e=>e.value)))}let m=new Map;for(let e of c)for(let[t,n]of y(e.fields)){let r=n.hints.source,i=n.options??[],a=r?f.get(r)??[]:[],o=new Set(i.map(e=>e.value)),s=[...i,...a.filter(e=>!o.has(e.value))];n.prim===`select`&&s.length&&h(n,s.map(e=>e.value)),s.length&&(n.options=s,m.set(`${e.library}/${e.shelf}/${t}`,s))}return{order:o,libraries:s,shelves:c,extends_:l,getShelf:(e,t)=>c.find(n=>n.library===e&&n.shelf===t),getLibrary:e=>s.find(t=>t.meta.id===e),getExtendsFor:(e,t)=>l.filter(n=>re(n,e,t)),getFieldOptions:(e,t,n)=>m.get(`${e}/${t}/${n}`)??[],getOptionList:p,getShelfOwner:a}}var M=null;function _e(e){M=ge(e)}function N(){if(!M)throw Error(`[registry] not initialized — call initRegistry() in the boot loader`);return M}var ve=(e,t)=>N().getShelf(e,t),ye=(e,t)=>N().getExtendsFor(e,t),be=e=>N().getOptionList(e),xe=(e,t)=>N().getShelfOwner(e,t),Se=()=>N().libraries,Ce=()=>N().shelves,we=()=>N().extends_,P=()=>N().order,F=r(),I=(0,j.createContext)(()=>void 0),Te=()=>(0,j.useContext)(I),Ee=e=>e.join(`.`);function L(e){return(t,n)=>t===`pattern`&&n?.messageKey?e(String(n.messageKey)):e(`validation.${t}`,n)}function De(e,t){let n={};for(let r of e){let e=Ee(r.path?.length?r.path:[r.field]);n[e]||(n[e]=t(r.code,r.params))}return n}function Oe(e,t){let n={};for(let[r,i]of Object.entries(e))r===t||r.startsWith(t+`.`)||(n[r]=i);return n}var ke=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/computed-ctx.tsx`,Ae={settings:{},global:{}},R=(0,j.createContext)(Ae),je=()=>(0,j.useContext)(R);function Me(e,t){return{record:e.values??{},settings:t.settings,global:t.global,meta:{library:e.recordCtx.library,shelf:e.recordCtx.shelf}}}async function z(e){return P().find(t=>t.id===e)?.settings?.fields.length?w(`/api/plugins/${e}/settings`).catch(()=>({})):{}}function B({library:e,shelf:t,children:n}){let[r,i]=(0,j.useState)(Ae),a=xe(e,t);return(0,j.useEffect)(()=>{let e=!0;return Promise.all([a?z(a):Promise.resolve({}),z(`core`)]).then(([t,n])=>{e&&i({settings:t,global:n})}),()=>{e=!1}},[a]),(0,F.jsxDEV)(R.Provider,{value:r,children:n},void 0,!1,{fileName:ke,lineNumber:66,columnNumber:10},this)}var Ne={}.hasOwnProperty,Pe=/^(https?|ircs?|mailto|xmpp)$/i,Fe=/^https?$/i;function Ie(e){let t=e||{},n=!0,r={},i=[[]],a=[],o=[],s=se([{enter:{blockQuote:oe,codeFenced:me,codeFencedFenceInfo:h,codeFencedFenceMeta:h,codeIndented:ge,codeText:G,content:Oe,definition:F,definitionDestinationString:Te,definitionLabelString:h,definitionTitleString:h,emphasis:ze,htmlFlow:Re,htmlText:U,image:_e,label:h,link:N,listItemMarker:ne,listItemValue:te,listOrdered:C,listUnordered:ee,paragraph:de,reference:h,resource:xe,resourceDestinationString:Se,resourceTitleString:h,setextHeading:Ae,strong:W},exit:{atxHeading:je,atxHeadingSequence:ke,autolinkEmail:Be,autolinkProtocol:Q,blockQuote:le,characterEscapeValue:B,characterReferenceMarkerHexadecimal:X,characterReferenceMarkerNumeric:X,characterReferenceValue:Z,codeFenced:M,codeFencedFence:j,codeFencedFenceInfo:he,codeFencedFenceMeta:S,codeFlowValue:Le,codeIndented:M,codeText:K,codeTextData:B,data:B,definition:De,definitionDestinationString:Ee,definitionLabelString:I,definitionTitleString:L,emphasis:q,hardBreakEscape:V,hardBreakTrailing:V,htmlFlow:H,htmlFlowData:B,htmlText:H,htmlTextData:B,image:P,label:ye,labelText:ve,lineEnding:Ie,link:P,listOrdered:re,listUnordered:ie,paragraph:pe,reference:S,referenceString:be,resource:S,resourceDestinationString:Ce,resourceTitleString:we,setextHeading:z,setextHeadingLineSequence:Me,setextHeadingText:R,strong:J,thematicBreak:Y}},...t.htmlExtensions||[]]),c={definitions:r,tightStack:o},l={buffer:h,encode:x,getData:m,lineEndingIfNeeded:b,options:t,raw:v,resume:g,setData:p,tag:_},u=t.defaultLineEnding;return d;function d(e){let t=-1,n=0,r=[],a=[],o=[];for(;++t<e.length;)!u&&(e[t][1].type===k.lineEnding||e[t][1].type===k.lineEndingBlank)&&(u=e[t][2].sliceSerialize(e[t][1])),(e[t][1].type===k.listOrdered||e[t][1].type===k.listUnordered)&&(e[t][0]===`enter`?r.push(t):f(e.slice(r.pop(),t))),e[t][1].type===k.definition&&(e[t][0]===`enter`?(o=E(o,e.slice(n,t)),n=t):(a=E(a,e.slice(n,t+1)),n=t+1));a=E(a,o),a=E(a,e.slice(n)),t=-1;let c=a;for(s.enter.null&&s.enter.null.call(l);++t<e.length;){let e=s[c[t][0]],n=c[t][1].type,r=e[n];Ne.call(e,n)&&r&&r.call({sliceSerialize:c[t][2].sliceSerialize,...l},c[t][1])}return s.exit.null&&s.exit.null.call(l),i[0].join(``)}function f(e){let t=e.length,n=0,r=0,i=!1,a;for(;++n<t;){let t=e[n];if(t[1]._container)a=void 0,t[0]===`enter`?r++:r--;else switch(t[1].type){case k.listItemPrefix:t[0]===`exit`&&(a=!0);break;case k.linePrefix:break;case k.lineEndingBlank:t[0]===`enter`&&!r&&(a?a=void 0:i=!0);break;default:a=void 0}}e[0][1]._loose=i}function p(e,t){c[e]=t}function m(e){return c[e]}function h(){i.push([])}function g(){let e=i.pop();return T(e!==void 0,`Cannot resume w/o buffer`),e.join(``)}function _(e){n&&(p(`lastWasTag`,!0),i[i.length-1].push(e))}function v(e){p(`lastWasTag`),i[i.length-1].push(e)}function y(){v(u||`
2
- `)}function b(){let e=i[i.length-1],t=e[e.length-1],n=t?t.charCodeAt(t.length-1):D.eof;n===D.lf||n===D.cr||n===D.eof||y()}function x(e){return m(`ignoreEncode`)?e:ue(e)}function S(){g()}function C(e){o.push(!e._loose),b(),_(`<ol`),p(`expectFirstItem`,!0)}function ee(e){o.push(!e._loose),b(),_(`<ul`),p(`expectFirstItem`,!0)}function te(e){if(m(`expectFirstItem`)){let t=Number.parseInt(this.sliceSerialize(e),A.numericBaseDecimal);t!==1&&_(` start="`+x(String(t))+`"`)}}function ne(){m(`expectFirstItem`)?_(`>`):w(),b(),_(`<li>`),p(`expectFirstItem`),p(`lastWasTag`)}function re(){w(),o.pop(),y(),_(`</ol>`)}function ie(){w(),o.pop(),y(),_(`</ul>`)}function w(){m(`lastWasTag`)&&!m(`slurpAllLineEndings`)&&b(),_(`</li>`),p(`slurpAllLineEndings`)}function oe(){o.push(!1),b(),_(`<blockquote>`)}function le(){o.pop(),b(),_(`</blockquote>`),p(`slurpAllLineEndings`)}function de(){o[o.length-1]||(b(),_(`<p>`)),p(`slurpAllLineEndings`)}function pe(){o[o.length-1]?p(`slurpAllLineEndings`,!0):_(`</p>`)}function me(){b(),_(`<pre><code`),p(`fencesCount`,0)}function he(){_(` class="language-`+g()+`"`)}function j(){let e=m(`fencesCount`)||0;e||(_(`>`),p(`slurpOneLineEnding`,!0)),p(`fencesCount`,e+1)}function ge(){b(),_(`<pre><code>`)}function M(){let e=m(`fencesCount`);e!==void 0&&e<2&&c.tightStack.length>0&&!m(`lastWasTag`)&&y(),m(`flowCodeSeenData`)&&b(),_(`</code></pre>`),e!==void 0&&e<2&&b(),p(`flowCodeSeenData`),p(`fencesCount`),p(`slurpOneLineEnding`)}function _e(){a.push({image:!0}),n=void 0}function N(){a.push({})}function ve(e){a[a.length-1].labelId=this.sliceSerialize(e)}function ye(){a[a.length-1].label=g()}function be(e){a[a.length-1].referenceId=this.sliceSerialize(e)}function xe(){h(),a[a.length-1].destination=``}function Se(){h(),p(`ignoreEncode`,!0)}function Ce(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function we(){a[a.length-1].title=g()}function P(){let e=a.length-1,i=a[e],o=i.referenceId||i.labelId;T(o!==void 0,"media should have `referenceId` or `labelId`"),T(i.label!==void 0,"media should have `label`");let s=i.destination===void 0?r[fe(o)]:i;for(n=!0;e--;)if(a[e].image){n=void 0;break}i.image?(_(`<img src="`+O(s.destination,t.allowDangerousProtocol?void 0:Fe)+`" alt="`),v(i.label),_(`"`)):_(`<a href="`+O(s.destination,t.allowDangerousProtocol?void 0:Pe)+`"`),_(s.title?` title="`+s.title+`"`:``),i.image?_(` />`):(_(`>`),v(i.label),_(`</a>`)),a.pop()}function F(){h(),a.push({})}function I(e){g(),a[a.length-1].labelId=this.sliceSerialize(e)}function Te(){h(),p(`ignoreEncode`,!0)}function Ee(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function L(){a[a.length-1].title=g()}function De(){let e=a[a.length-1];T(e.labelId!==void 0,"media should have `labelId`");let t=fe(e.labelId);g(),Ne.call(r,t)||(r[t]=a[a.length-1]),a.pop()}function Oe(){p(`slurpAllLineEndings`,!0)}function ke(e){m(`headingRank`)||(p(`headingRank`,this.sliceSerialize(e).length),b(),_(`<h`+m(`headingRank`)+`>`))}function Ae(){h(),p(`slurpAllLineEndings`)}function R(){p(`slurpAllLineEndings`,!0)}function je(){_(`</h`+m(`headingRank`)+`>`),p(`headingRank`)}function Me(e){p(`headingRank`,this.sliceSerialize(e).charCodeAt(0)===D.equalsTo?1:2)}function z(){let e=g();b(),_(`<h`+m(`headingRank`)+`>`),v(e),_(`</h`+m(`headingRank`)+`>`),p(`slurpAllLineEndings`),p(`headingRank`)}function B(e){v(x(this.sliceSerialize(e)))}function Ie(e){if(!m(`slurpAllLineEndings`)){if(m(`slurpOneLineEnding`)){p(`slurpOneLineEnding`);return}if(m(`inCodeText`)){v(` `);return}v(x(this.sliceSerialize(e)))}}function Le(e){v(x(this.sliceSerialize(e))),p(`flowCodeSeenData`,!0)}function V(){_(`<br />`)}function Re(){b(),U()}function H(){p(`ignoreEncode`)}function U(){t.allowDangerousHtml&&p(`ignoreEncode`,!0)}function ze(){_(`<em>`)}function W(){_(`<strong>`)}function G(){p(`inCodeText`,!0),_(`<code>`)}function K(){p(`inCodeText`),_(`</code>`)}function q(){_(`</em>`)}function J(){_(`</strong>`)}function Y(){b(),_(`<hr />`)}function X(e){p(`characterReferenceType`,e.type)}function Z(e){let t=this.sliceSerialize(e);v(x(m(`characterReferenceType`)?ce(t,m(`characterReferenceType`)===k.characterReferenceMarkerNumeric?A.numericBaseDecimal:A.numericBaseHexadecimal):ae(t))),p(`characterReferenceType`)}function Q(e){let n=this.sliceSerialize(e);_(`<a href="`+O(n,t.allowDangerousProtocol?void 0:Pe)+`">`),v(x(n)),_(`</a>`)}function Be(e){let t=this.sliceSerialize(e);_(`<a href="`+O(`mailto:`+t)+`">`),v(x(t)),_(`</a>`)}}function Le(e,t,n){return typeof t!=`string`&&(n=t,t=void 0),Ie(n)(le(oe(n).document().write(pe()(e,t,!0))))}var V=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/Markdown.tsx`;function Re(e){return Le(e,{allowDangerousHtml:!0,extensions:[me()],htmlExtensions:[de()]})}function H({value:e}){return(0,F.jsxDEV)(`div`,{className:`md-static`,dangerouslySetInnerHTML:{__html:Re(e)}},void 0,!1,{fileName:V,lineNumber:19,columnNumber:10},this)}var U=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/layout.tsx`;function ze({text:e}){return(0,F.jsxDEV)(H,{value:e},void 0,!1,{fileName:U,lineNumber:38,columnNumber:10},this)}function W(e,{bridge:t,t:n,computed:r}){if(u(e)){let r=e.key;if(t.isHidden(r))return null;let i=S({kind:C(e)});if(!i)return console.warn(`[LayoutRenderer] no renderer for kind '${C(e)}'`),null;let a=e.type,o=String(a.hints.unitFrom??``);if(o&&!o.includes(`:`)){let e=(t.values??{})[o];e!=null&&e!==``&&(a={...a,hints:{...a.hints,unitValue:String(e)}})}let s=a.derive,c=t.getValue(r);if(s)try{c=s.fn({record:t.values??{}})}catch(e){console.warn(`[derived] fn threw`,e),c=void 0}return{node:(0,F.jsxDEV)(`div`,{onBlur:e=>{te(e.relatedTarget)||t.touch(r)},children:(0,F.jsxDEV)(i.Page,{el:e,field:a,fieldKey:r,value:c,onChange:s?()=>{}:e=>t.setValue(r,e),error:t.error(r),mode:s?`view`:t.mode,label:a.label?n(a.label):void 0,required:t.requiredOf(r),recordCtx:t.recordCtx},void 0,!1,{fileName:U,lineNumber:117,columnNumber:9},this)},void 0,!1,{fileName:U,lineNumber:112,columnNumber:7},this),layout:x(a)}}if(p(e)){let i=S({kind:C(e)});if(!i)return console.warn(`[LayoutRenderer] no renderer for static kind '${C(e)}'`),null;let a=e.type,o=e.value;if(typeof e.value==`function`)try{o=e.value(Me(t,r))}catch(e){console.warn(`[computed] value function threw`,e),o=void 0}return{node:(0,F.jsxDEV)(i.Page,{el:e,field:a,value:o,mode:`view`,label:a.label?n(a.label):void 0,recordCtx:t.recordCtx},void 0,!1,{fileName:U,lineNumber:151,columnNumber:7},this),layout:x(a)}}if(m(e)||_(e))return null;if(v(e)){let n=S({kind:`button`});return n?{node:(0,F.jsxDEV)(n.Page,{el:e,value:void 0,mode:t.mode,recordCtx:t.recordCtx},void 0,!1,{fileName:U,lineNumber:174,columnNumber:18},this),layout:`scalar`}:null}return null}function G(e,t,n,r=`wrap`){let i=[],a=[],o=0,s=()=>{a.length&&(i.push({kind:`flow`,items:a,scroll:r===`scroll`}),a=[])};for(let r of e){if(n){if(m(r)){s(),i.push({kind:`divider`});continue}if(_(r)){s(),i.push({kind:`block`,node:(0,F.jsxDEV)(K,{textKey:r.text},void 0,!1,{fileName:U,lineNumber:208,columnNumber:41},this)});continue}if(g(r)){s();continue}if(u(r)||p(r)||v(r)){let e=W(r,n);if(e==null)continue;if(e.layout===`block`)s(),i.push({kind:`block`,node:e.node});else{let t=u(r)?r.key:`static-${o++}`;a.push({key:t,node:(0,F.jsxDEV)(j.Fragment,{children:e.node},t,!1,{fileName:U,lineNumber:225,columnNumber:19},this)})}continue}continue}if(u(r)){let e=t.renderField(r.key,r.type);if(e==null)continue;x(r.type)===`block`?(s(),i.push({kind:`block`,node:e})):a.push({key:r.key,node:(0,F.jsxDEV)(j.Fragment,{children:e},r.key,!1,{fileName:U,lineNumber:241,columnNumber:47},this)})}else m(r)?(s(),i.push({kind:`divider`})):_(r)?(s(),i.push({kind:`block`,node:(0,F.jsxDEV)(K,{textKey:r.text},void 0,!1,{fileName:U,lineNumber:247,columnNumber:39},this)})):g(r)&&s()}return s(),i}function K({textKey:e}){let{t}=n();return(0,F.jsxDEV)(ze,{text:t(e)},void 0,!1,{fileName:U,lineNumber:259,columnNumber:10},this)}function q(e){let t=[];for(let n of e)n.kind===`divider`&&(!t.length||t[t.length-1].kind===`divider`)||t.push(n);for(;t.length&&t[t.length-1].kind===`divider`;)t.pop();return t}function J({label:e,icon:t,labelAfter:n,children:r,rail:i=!0,tone:s=`group`}){let l=(0,F.jsxDEV)(`div`,{className:`flex flex-col min-w-0 ${o}`,children:r},void 0,!1,{fileName:U,lineNumber:311,columnNumber:16},this);return(0,F.jsxDEV)(`section`,{className:`flex flex-col min-w-0 ${o}`,children:[e&&(0,F.jsxDEV)(a,{label:e,icon:t,actions:n,tone:s},void 0,!1,{fileName:U,lineNumber:316,columnNumber:17},this),i&&e?(0,F.jsxDEV)(c,{children:l},void 0,!1,{fileName:U,lineNumber:317,columnNumber:24},this):l]},void 0,!0,{fileName:U,lineNumber:313,columnNumber:5},this)}function Y({group:e,children:t}){let{t:r}=n();return(0,F.jsxDEV)(J,{label:e.label?r(e.label):void 0,icon:s(e),children:t},void 0,!1,{fileName:U,lineNumber:330,columnNumber:5},this)}function X({group:e,children:t}){let{t:r}=n();return(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1 min-w-0`,children:[e.label&&(0,F.jsxDEV)(`span`,{className:`text-xs text-muted`,children:r(e.label)},void 0,!1,{fileName:U,lineNumber:341,columnNumber:23},this),t]},void 0,!0,{fileName:U,lineNumber:340,columnNumber:5},this)}function Z({group:e,renderCell:t}){let{t:r}=n(),i=[[]];for(let t of e.fields)g(t)?i.push([]):i[i.length-1].push(t);let a=Math.max(1,...i.map(e=>e.length)),o=!1,c=[];return i.forEach((e,n)=>{for(let r=0;r<a;r++){let i=e[r],a=i?t(i):null;a&&(o=!0),c.push((0,F.jsxDEV)(`div`,{className:`min-w-0`,children:a},`${n}-${r}`,!1,{fileName:U,lineNumber:377,columnNumber:9},this))}}),o?(0,F.jsxDEV)(ne.Provider,{value:!0,children:(0,F.jsxDEV)(J,{label:e.label?r(e.label):void 0,icon:s(e),children:(0,F.jsxDEV)(`div`,{className:`overflow-x-auto`,children:(0,F.jsxDEV)(`div`,{className:`grid gap-x-4 gap-y-2 items-start`,style:{gridTemplateColumns:`repeat(${a}, max-content)`},children:c},void 0,!1,{fileName:U,lineNumber:388,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:387,columnNumber:9},this)},void 0,!1,{fileName:U,lineNumber:386,columnNumber:7},this)},void 0,!1,{fileName:U,lineNumber:385,columnNumber:5},this):null}function Q(e,t){return e.filter(e=>e.kind!==`divider`).length?e.map((e,n)=>{let r=`${t}-${n}`;switch(e.kind){case`flow`:return(0,F.jsxDEV)(ee,{items:e.items,scroll:e.scroll},r,!1,{fileName:U,lineNumber:408,columnNumber:16},this);case`block`:return(0,F.jsxDEV)(j.Fragment,{children:e.node},r,!1,{fileName:U,lineNumber:410,columnNumber:16},this);case`group`:return(0,F.jsxDEV)(j.Fragment,{children:e.node},r,!1,{fileName:U,lineNumber:412,columnNumber:16},this);case`divider`:return(0,F.jsxDEV)(`hr`,{className:`border-border`},r,!1,{fileName:U,lineNumber:414,columnNumber:16},this)}}):null}function Be({items:e,ctx:t}){let{t:r}=n(),i=je(),a=t.bridge?{bridge:t.bridge,t:r,computed:i}:void 0,s=[],c=[],l=()=>{c.length&&(s.push(...G(c,t,a)),c=[])};for(let n of e)if(d(n))if(l(),a)if(f(n)){let e=n.key,t=a.bridge.getValue(e);if(!a.bridge.isHidden(e)){let r=S({kind:C(n)});if(r){let i=(0,F.jsxDEV)(r.Page,{el:n,value:t,onChange:t=>a.bridge.setValue(e,t),error:a.bridge.error(e),mode:a.bridge.mode,recordCtx:a.bridge.recordCtx},void 0,!1,{fileName:U,lineNumber:453,columnNumber:17},this);s.push({kind:`group`,node:i})}else console.warn(`[LayoutRenderer] no renderer for storage group kind '${C(n)}'`)}}else if(n.display===`sheet`)s.push({kind:`group`,node:(0,F.jsxDEV)(Z,{group:n,renderCell:e=>d(e)?null:W(e,a)?.node??null},void 0,!1,{fileName:U,lineNumber:472,columnNumber:15},this)});else{let e=Q(q(G(n.fields,t,a,n.display===`scroll`?`scroll`:`wrap`)),`g`);if(e)if(n.display===`scroll`)s.push({kind:`group`,node:(0,F.jsxDEV)(X,{group:n,children:e},void 0,!1,{fileName:U,lineNumber:490,columnNumber:49},this)});else{let t=S({kind:`group`});t?s.push({kind:`group`,node:(0,F.jsxDEV)(t.Page,{el:n,value:void 0,mode:a.bridge.mode,recordCtx:a.bridge.recordCtx,children:e},void 0,!1,{fileName:U,lineNumber:497,columnNumber:21},this)}):s.push({kind:`group`,node:(0,F.jsxDEV)(Y,{group:n,children:e},void 0,!1,{fileName:U,lineNumber:508,columnNumber:51},this)})}}else if(f(n)){let e=t.renderGroup?.(n.key,n);e&&s.push({kind:`group`,node:e})}else if(n.display===`sheet`)s.push({kind:`group`,node:(0,F.jsxDEV)(Z,{group:n,renderCell:e=>u(e)?t.renderField(e.key,e.type):null},void 0,!1,{fileName:U,lineNumber:523,columnNumber:13},this)});else{let e=Q(q(G(n.fields,t,void 0,n.display===`scroll`?`scroll`:`wrap`)),`g`);e&&s.push({kind:`group`,node:n.display===`scroll`?(0,F.jsxDEV)(X,{group:n,children:e},void 0,!1,{fileName:U,lineNumber:541,columnNumber:17},this):(0,F.jsxDEV)(Y,{group:n,children:e},void 0,!1,{fileName:U,lineNumber:543,columnNumber:17},this)})}else c.push(n);l();let p=Q(q(s),`l`);return p==null?null:(0,F.jsxDEV)(`div`,{className:`@container flex flex-col min-w-0 ${o}`,children:p},void 0,!1,{fileName:U,lineNumber:557,columnNumber:10},this)}function Ve(e){let{fm:t,mode:r,recordCtx:i}=e,{t:a}=n(),o=L(a),[s]=(0,j.useState)(e.initial),[c,u]=(0,j.useState)(s),[d,f]=(0,j.useState)({}),[p,m]=(0,j.useState)(()=>new Set),h=(0,j.useMemo)(()=>new Set(e.hiddenFields??[]),[e.hiddenFields]);return{values:c,setValues:u,initial:s,errors:d,setErrors:f,touched:p,setTouched:m,bridge:(0,j.useMemo)(()=>({mode:r,recordCtx:i,values:c,getValue:e=>c[e],setValue:(e,n)=>{if(u(t=>({...t,[e]:n})),p.has(e)){let r=t[e],i=r?l(r,n):null;f(t=>{let n={...t};return i?n[e]=o(i.code,i.params):delete n[e],n})}},touch:e=>{m(t=>t.has(e)?t:new Set(t).add(e));let n=t[e],r=n?l(n,c[e]):null;f(t=>{let n={...t};return r?n[e]=o(r.code,r.params):delete n[e],n})},isHidden:e=>{let n=t[e];return!!n?.virtual||h.has(e)||b(n?.hidden,c)},requiredOf:e=>b(t[e]?.required,c),error:e=>d[e]}),[c,d,p,h,t,r,i,o])}}var $=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/Toolbar.tsx`;function He({children:e,actions:t}){return(0,F.jsxDEV)(`div`,{"data-toolbar":!0,className:`eink-solid sticky top-0 z-20 flex h-[52px] items-center justify-between gap-3 bg-bg/85 px-4 backdrop-blur md:px-6 border-b border-border2 shrink-0`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5 min-w-0`,children:e},void 0,!1,{fileName:$,lineNumber:13,columnNumber:7},this),t&&(0,F.jsxDEV)(`div`,{"data-toolbar-actions":!0,className:`flex items-center gap-2 shrink-0`,children:t},void 0,!1,{fileName:$,lineNumber:15,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:9,columnNumber:5},this)}export{ve as _,H as a,he as b,Oe as c,Te as d,we as f,P as g,be as h,J as i,L as l,Se as m,Ve as n,B as o,ye as p,Be as r,I as s,He as t,De as u,Ce as v,_e as y};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{t as r}from"./react-vendor-BskHO5hY.js";import{n as i,r as a,t as o}from"./x-CzSVfh-E.js";import{t as s}from"./Icon-Dydn049Z.js";import{n as c,o as l}from"./src-R3C69mft.js";import{t as u}from"./button-DaYjtbcx.js";var d=a(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),f=e(t(),1);function p(e,t){return l(e)?.box||(c(e)===`block`?`none`:t)}function m(e){switch(e){case`title`:return`flex items-center self-start w-full rounded-lg border border-transparent px-3 py-1 text-[28px] font-bold leading-tight`;case`textarea`:return`flex self-start min-h-20 w-full rounded-lg border border-transparent px-3 py-2 text-sm whitespace-pre-wrap`;case`none`:return``;default:return`flex w-full min-w-0 items-center self-start min-h-9 rounded-lg border border-transparent px-2 text-sm`}}var h=r(),g=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/chrome.tsx`,_=`gap-2`,v=`gap-6`;function y({children:e}){return(0,h.jsxDEV)(`div`,{className:`border-l-2 border-border pl-3 py-1`,children:e},void 0,!1,{fileName:g,lineNumber:41,columnNumber:10},this)}function b({label:e,required:t,actions:n,reserveAction:r}){return(0,h.jsxDEV)(`div`,{className:`flex items-center gap-2 mb-0.5 min-h-8 ${r?`pr-24`:``}`,children:[(0,h.jsxDEV)(`span`,{className:`min-w-0 text-[11px] font-medium text-muted`,children:[e,t&&(0,h.jsxDEV)(`span`,{className:`text-danger ml-0.5`,children:`*`},void 0,!1,{fileName:g,lineNumber:64,columnNumber:22},this)]},void 0,!0,{fileName:g,lineNumber:62,columnNumber:7},this),n&&(0,h.jsxDEV)(`div`,{className:`ml-auto flex shrink-0 items-center gap-1.5`,children:n},void 0,!1,{fileName:g,lineNumber:66,columnNumber:19},this)]},void 0,!0,{fileName:g,lineNumber:61,columnNumber:5},this)}var x=`flex items-center gap-2 font-semibold`;`${x}`;var S=`lucide:puzzle`;function C(e){return e.icon??(e.key!=null&&e.multiple===!0?`lucide:list`:`lucide:folder`)}function w({label:e,icon:t,actions:n,as:r=`h3`,tone:i=`group`}){let a=r,o=D(),c=i===`section`;return(0,h.jsxDEV)(a,{className:`${x} ${c?`text-[15px]`:`text-[13px]`} ${c||o===0?`text-accent`:`text-muted`}${r===`legend`?` px-1 w-full`:``}`,children:[t&&(c?(0,h.jsxDEV)(`span`,{className:`flex size-6 shrink-0 items-center justify-center rounded-md bg-accent/10 text-accent`,children:(0,h.jsxDEV)(s,{name:t,size:14},void 0,!1,{fileName:g,lineNumber:131,columnNumber:13},this)},void 0,!1,{fileName:g,lineNumber:130,columnNumber:11},this):(0,h.jsxDEV)(s,{name:t,size:14,className:`shrink-0`},void 0,!1,{fileName:g,lineNumber:135,columnNumber:11},this)),e,n&&(0,h.jsxDEV)(`span`,{className:`ml-auto flex shrink-0 items-center gap-1.5`,children:n},void 0,!1,{fileName:g,lineNumber:138,columnNumber:19},this)]},void 0,!0,{fileName:g,lineNumber:127,columnNumber:5},this)}var T=`opacity-0 transition-opacity group-hover/field:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100`,E=(0,f.createContext)(0),D=()=>(0,f.useContext)(E);function O({depth:e,children:t}){return(0,h.jsxDEV)(E.Provider,{value:e,children:t},void 0,!1,{fileName:g,lineNumber:167,columnNumber:10},this)}function k(e){switch(e&3){case 0:return`group/group`;case 1:return`group/group2`;case 2:return`group/group3`;default:return`group/group4`}}var A=[`opacity-0 transition-opacity group-hover/group:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100`,`opacity-0 transition-opacity group-hover/group2:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100`,`opacity-0 transition-opacity group-hover/group3:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100`,`opacity-0 transition-opacity group-hover/group4:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100`];function j(e){return A[e&3]??A[0]}var M=`h-7 w-7 rounded-md border border-border bg-surface/80 text-muted hover:border-accent/60 hover:text-accent`,N=`h-7 w-7 rounded-md border border-accent/40 bg-accent/10 text-accent hover:border-accent hover:bg-accent/20 hover:text-accent`;function P({onEdit:e,variant:t=`inline`,scope:r=`field`}){let{t:i}=n(),a=D(),o=r===`group`?j(a):T;return(0,h.jsxDEV)(u,{type:`button`,variant:`outline`,size:`iconXs`,className:`${t===`overlay`?`absolute right-1 top-0 z-10`:``} ${M} ${o}`,onClick:e,title:i(`actions.edit`),children:(0,h.jsxDEV)(d,{size:13},void 0,!1,{fileName:g,lineNumber:233,columnNumber:7},this)},void 0,!1,{fileName:g,lineNumber:225,columnNumber:5},this)}function F({size:e,busy:t,disabled:r,onSave:a,onCancel:s}){let{t:c}=n(),l=e===`xs`?`iconXs`:`iconSm`,d=e===`xs`?13:14;return(0,h.jsxDEV)(h.Fragment,{children:[(0,h.jsxDEV)(u,{type:`button`,variant:`outline`,size:l,disabled:t||r,onClick:a,className:N,title:c(`actions.save`),children:(0,h.jsxDEV)(i,{size:d},void 0,!1,{fileName:g,lineNumber:271,columnNumber:9},this)},void 0,!1,{fileName:g,lineNumber:262,columnNumber:7},this),(0,h.jsxDEV)(u,{type:`button`,variant:`outline`,size:l,onClick:s,className:`h-7 w-7 rounded-md border border-border bg-surface/80 text-muted hover:border-danger hover:text-danger`,title:c(`actions.cancel`),children:(0,h.jsxDEV)(o,{size:d},void 0,!1,{fileName:g,lineNumber:281,columnNumber:9},this)},void 0,!1,{fileName:g,lineNumber:273,columnNumber:7},this)]},void 0,!0,{fileName:g,lineNumber:261,columnNumber:5},this)}var I=`min-h-9 px-2 border border-transparent`;function L({geom:e,field:t,children:n}){let r=p(t,e);return r===`none`?(0,h.jsxDEV)(h.Fragment,{children:n},void 0,!1,{fileName:g,lineNumber:299,columnNumber:30},this):(0,h.jsxDEV)(`div`,{className:m(r),children:n},void 0,!1,{fileName:g,lineNumber:300,columnNumber:10},this)}function R({error:e}){return e?(0,h.jsxDEV)(`p`,{className:`text-xs text-danger flex items-center gap-1 mt-0.5`,children:[(0,h.jsxDEV)(s,{name:`lucide:alert-triangle`,size:12,className:`shrink-0`},void 0,!1,{fileName:g,lineNumber:308,columnNumber:7},this),` `,e]},void 0,!0,{fileName:g,lineNumber:307,columnNumber:5},this):null}export{R as a,w as c,_ as d,F as f,d as g,D as h,L as i,v as l,k as m,I as n,b as o,C as p,P as r,O as s,S as t,y as u};