@middag-io/react 0.4.2 → 0.5.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 (62) hide show
  1. package/dist-lib/ConditionTreeBlock-Brab4Yig.js +83 -0
  2. package/dist-lib/FlowEditorBlock-BKwzEVAe.js +7770 -0
  3. package/dist-lib/FormBuilderBlock-Dsg3PFQL.js +2735 -0
  4. package/dist-lib/{MarkdownContent-B-Gd9918.js → MarkdownContent-CEXn51dl.js} +33 -32
  5. package/dist-lib/SentenceBuilderBlock-C7pY8tTB.js +92 -0
  6. package/dist-lib/app/ContractPage.d.ts +6 -7
  7. package/dist-lib/app/ContractPage.d.ts.map +1 -1
  8. package/dist-lib/app/bootstrap.d.ts +1 -1
  9. package/dist-lib/app/register-defaults.d.ts +6 -1
  10. package/dist-lib/app/register-defaults.d.ts.map +1 -1
  11. package/dist-lib/app/registries.d.ts +1 -1
  12. package/dist-lib/assets/lottie/index.d.ts +1 -1
  13. package/dist-lib/base/blocks/ActionGridBlock.d.ts +2 -2
  14. package/dist-lib/base/blocks/ActivityTimelineBlock.d.ts +2 -2
  15. package/dist-lib/base/blocks/CardGridBlock.d.ts +2 -2
  16. package/dist-lib/base/blocks/ConditionTreeBlock.d.ts +2 -2
  17. package/dist-lib/base/blocks/DenseTableBlock.d.ts +2 -2
  18. package/dist-lib/base/blocks/DenseTableBlock.d.ts.map +1 -1
  19. package/dist-lib/base/blocks/DetailPanelBlock.d.ts +2 -2
  20. package/dist-lib/base/blocks/EmptyStateBlock.d.ts +2 -2
  21. package/dist-lib/base/blocks/FlowEditorBlock.d.ts +2 -2
  22. package/dist-lib/base/blocks/FormBuilderBlock.d.ts +2 -2
  23. package/dist-lib/base/blocks/FormPanelBlock.d.ts +2 -2
  24. package/dist-lib/base/blocks/LinkListBlock.d.ts +2 -2
  25. package/dist-lib/base/blocks/MarkdownPanelBlock.d.ts +2 -2
  26. package/dist-lib/base/blocks/MetricCardBlock.d.ts +2 -2
  27. package/dist-lib/base/blocks/SentenceBuilderBlock.d.ts +2 -2
  28. package/dist-lib/base/blocks/StatusStripBlock.d.ts +2 -2
  29. package/dist-lib/base/blocks/TabbedPanelBlock.d.ts +2 -2
  30. package/dist-lib/base/layout/DashboardLayout.d.ts +1 -1
  31. package/dist-lib/base/layout/MasterDetailLayout.d.ts +1 -1
  32. package/dist-lib/base/layout/SplitLayout.d.ts +1 -1
  33. package/dist-lib/base/layout/StackLayout.d.ts +1 -1
  34. package/dist-lib/base/layout/WizardLayout.d.ts +1 -1
  35. package/dist-lib/base/partials/DataTable/types.d.ts +3 -3
  36. package/dist-lib/base/shell/AdminShell.d.ts +1 -1
  37. package/dist-lib/base/shell/ProductShell.d.ts +1 -1
  38. package/dist-lib/base/shell/partials/HelpContext.d.ts +1 -1
  39. package/dist-lib/base/shell/partials/InspectorContext.d.ts +1 -1
  40. package/dist-lib/base/shell/partials/PageActionButton.d.ts +1 -1
  41. package/dist-lib/base/shell/partials/PageFilterTabs.d.ts +1 -1
  42. package/dist-lib/base/shell/partials/PageHeader.d.ts +1 -1
  43. package/dist-lib/base/theme/useHostTheme.d.ts +1 -1
  44. package/dist-lib/base/utils/conditions.d.ts +1 -1
  45. package/dist-lib/chunk-DeC0fbbY.js +22 -0
  46. package/dist-lib/components/reui/alert-dialog.d.ts +1 -1
  47. package/dist-lib/components/reui/sidebar.d.ts +4 -4
  48. package/dist-lib/contracts/block-data.d.ts +2 -2
  49. package/dist-lib/contracts/page-contract-schema.d.ts +72 -0
  50. package/dist-lib/contracts/page-contract-schema.d.ts.map +1 -0
  51. package/dist-lib/contracts/page-contract.d.ts +3 -3
  52. package/dist-lib/contracts/page-contract.d.ts.map +1 -1
  53. package/dist-lib/contracts/shared-props.d.ts +2 -1
  54. package/dist-lib/contracts/shared-props.d.ts.map +1 -1
  55. package/dist-lib/hooks/use-copy-to-clipboard.d.ts +1 -1
  56. package/dist-lib/hooks/use-file-upload.d.ts +1 -1
  57. package/dist-lib/index.d.ts +13 -11
  58. package/dist-lib/index.d.ts.map +1 -1
  59. package/dist-lib/{index.min-CS28Xi5j.js → index.min-BVLV21vp.js} +483 -504
  60. package/dist-lib/middag-react.css +1 -1
  61. package/dist-lib/middag-react.js +16591 -24295
  62. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
- import { dt as e, gt as t, ht as n, j as r, mt as i, vt as a, xt as o, yt as s } from "./index.min-CS28Xi5j.js";
1
+ import { i as e, n as t, t as n } from "./chunk-DeC0fbbY.js";
2
+ import { dt as r, gt as i, ht as a, j as o, mt as s } from "./index.min-BVLV21vp.js";
2
3
  import { useCallback as c, useState as l } from "react";
3
4
  import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
4
5
  import { router as p } from "@inertiajs/react";
@@ -53,7 +54,7 @@ var T = class {
53
54
  T.prototype.attribute = "", T.prototype.booleanish = !1, T.prototype.boolean = !1, T.prototype.commaOrSpaceSeparated = !1, T.prototype.commaSeparated = !1, T.prototype.defined = !1, T.prototype.mustUseProperty = !1, T.prototype.number = !1, T.prototype.overloadedBoolean = !1, T.prototype.property = "", T.prototype.spaceSeparated = !1, T.prototype.space = void 0;
54
55
  //#endregion
55
56
  //#region node_modules/property-information/lib/util/types.js
56
- var E = /* @__PURE__ */ s({
57
+ var E = /* @__PURE__ */ t({
57
58
  boolean: () => O,
58
59
  booleanish: () => k,
59
60
  commaOrSpaceSeparated: () => P,
@@ -1121,7 +1122,7 @@ function _e(e) {
1121
1122
  }
1122
1123
  //#endregion
1123
1124
  //#region node_modules/inline-style-parser/cjs/index.js
1124
- var ve = /* @__PURE__ */ a(((e, t) => {
1125
+ var ve = /* @__PURE__ */ n(((e, t) => {
1125
1126
  var n = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g, r = /\n/g, i = /^\s*/, a = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/, o = /^:\s*/, s = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/, c = /^[;\s]*/, l = /^\s+|\s+$/g, u = "\n", d = "/", f = "*", p = "", m = "comment", h = "declaration";
1126
1127
  function g(e, t) {
1127
1128
  if (typeof e != "string") throw TypeError("First argument must be a string");
@@ -1205,7 +1206,7 @@ var ve = /* @__PURE__ */ a(((e, t) => {
1205
1206
  return e ? e.replace(l, p) : p;
1206
1207
  }
1207
1208
  t.exports = g;
1208
- })), ye = /* @__PURE__ */ a(((e) => {
1209
+ })), ye = /* @__PURE__ */ n(((e) => {
1209
1210
  var t = e && e.__importDefault || function(e) {
1210
1211
  return e && e.__esModule ? e : { default: e };
1211
1212
  };
@@ -1221,7 +1222,7 @@ var ve = /* @__PURE__ */ a(((e, t) => {
1221
1222
  a ? t(n, i, e) : i && (r ||= {}, r[n] = i);
1222
1223
  }), r;
1223
1224
  }
1224
- })), be = /* @__PURE__ */ a(((e) => {
1225
+ })), be = /* @__PURE__ */ n(((e) => {
1225
1226
  Object.defineProperty(e, "__esModule", { value: !0 }), e.camelCase = void 0;
1226
1227
  var t = /^--[a-zA-Z0-9_-]+$/, n = /-([a-z])/g, r = /^[^-]+$/, i = /^-(webkit|moz|ms|o|khtml)-/, a = /^-(ms)-/, o = function(e) {
1227
1228
  return !e || r.test(e) || t.test(e);
@@ -1233,7 +1234,7 @@ var ve = /* @__PURE__ */ a(((e, t) => {
1233
1234
  e.camelCase = function(e, t) {
1234
1235
  return t === void 0 && (t = {}), o(e) ? e : (e = e.toLowerCase(), e = t.reactCompat ? e.replace(a, c) : e.replace(i, c), e.replace(n, s));
1235
1236
  };
1236
- })), xe = /* @__PURE__ */ a(((e, t) => {
1237
+ })), xe = /* @__PURE__ */ n(((e, t) => {
1237
1238
  var n = (e && e.__importDefault || function(e) {
1238
1239
  return e && e.__esModule ? e : { default: e };
1239
1240
  })(ye()), r = be();
@@ -1301,7 +1302,7 @@ var B = class extends Error {
1301
1302
  B.prototype.file = "", B.prototype.name = "", B.prototype.reason = "", B.prototype.message = "", B.prototype.stack = "", B.prototype.column = void 0, B.prototype.line = void 0, B.prototype.ancestors = void 0, B.prototype.cause = void 0, B.prototype.fatal = void 0, B.prototype.place = void 0, B.prototype.ruleId = void 0, B.prototype.source = void 0;
1302
1303
  //#endregion
1303
1304
  //#region node_modules/hast-util-to-jsx-runtime/lib/index.js
1304
- var Ae = /* @__PURE__ */ o(xe(), 1), je = {}.hasOwnProperty, Me = /* @__PURE__ */ new Map(), Ne = /[A-Z]/g, Pe = new Set([
1305
+ var Ae = /* @__PURE__ */ e(xe(), 1), je = {}.hasOwnProperty, Me = /* @__PURE__ */ new Map(), Ne = /[A-Z]/g, Pe = new Set([
1305
1306
  "table",
1306
1307
  "tbody",
1307
1308
  "thead",
@@ -3284,7 +3285,7 @@ function Tr(e, t) {
3284
3285
  }
3285
3286
  //#endregion
3286
3287
  //#region node_modules/micromark/lib/constructs.js
3287
- var Er = /* @__PURE__ */ s({
3288
+ var Er = /* @__PURE__ */ t({
3288
3289
  attentionMarkers: () => Pr,
3289
3290
  contentInitial: () => Or,
3290
3291
  disable: () => Fr,
@@ -5076,7 +5077,7 @@ function ma(e) {
5076
5077
  }
5077
5078
  //#endregion
5078
5079
  //#region node_modules/extend/index.js
5079
- var ha = /* @__PURE__ */ a(((e, t) => {
5080
+ var ha = /* @__PURE__ */ n(((e, t) => {
5080
5081
  var n = Object.prototype.hasOwnProperty, r = Object.prototype.toString, i = Object.defineProperty, a = Object.getOwnPropertyDescriptor, o = function(e) {
5081
5082
  return typeof Array.isArray == "function" ? Array.isArray(e) : r.call(e) === "[object Array]";
5082
5083
  }, s = function(e) {
@@ -5395,7 +5396,7 @@ var La = (function(e) {
5395
5396
  return n.apply(r, arguments);
5396
5397
  };
5397
5398
  return Object.setPrototypeOf(r, t), r;
5398
- }), Ra = /* @__PURE__ */ o(ha(), 1), za = {}.hasOwnProperty, Ba = new class e extends La {
5399
+ }), Ra = /* @__PURE__ */ e(ha(), 1), za = {}.hasOwnProperty, Ba = new class e extends La {
5399
5400
  constructor() {
5400
5401
  super("copy"), this.Compiler = void 0, this.Parser = void 0, this.attachers = [], this.compiler = void 0, this.freezeIndex = -1, this.frozen = void 0, this.namespace = {}, this.parser = void 0, this.transformers = _a();
5401
5402
  }
@@ -12057,7 +12058,7 @@ var Mc = {
12057
12058
  wasm: kc,
12058
12059
  xml: Ac,
12059
12060
  yaml: jc
12060
- }, Nc = (/* @__PURE__ */ o((/* @__PURE__ */ a(((e, t) => {
12061
+ }, Nc = (/* @__PURE__ */ e((/* @__PURE__ */ n(((e, t) => {
12061
12062
  function n(e) {
12062
12063
  return e instanceof Map ? e.clear = e.delete = e.set = function() {
12063
12064
  throw Error("map is read-only");
@@ -13325,19 +13326,19 @@ var sl = {
13325
13326
  span: [...Hc.attributes?.span ?? [], "className"]
13326
13327
  }
13327
13328
  };
13328
- function cl({ code: n }) {
13329
- let [a, o] = l(!1);
13329
+ function cl({ code: e }) {
13330
+ let [t, n] = l(!1);
13330
13331
  return /* @__PURE__ */ d("button", {
13331
13332
  type: "button",
13332
13333
  onClick: c(async () => {
13333
- await ol(n) && (o(!0), setTimeout(() => o(!1), 2e3));
13334
- }, [n]),
13334
+ await ol(e) && (n(!0), setTimeout(() => n(!1), 2e3));
13335
+ }, [e]),
13335
13336
  className: "bg-background/80 absolute top-2 right-2 rounded p-1 opacity-0 transition-opacity group-hover/codeblock:opacity-100 focus:opacity-100",
13336
13337
  "aria-label": "Copiar código",
13337
- children: /* @__PURE__ */ d(i, {
13338
- icon: a ? e : r,
13338
+ children: /* @__PURE__ */ d(s, {
13339
+ icon: t ? r : o,
13339
13340
  size: 14,
13340
- className: t("transition-colors", a ? "text-success" : "text-muted-foreground hover:text-foreground")
13341
+ className: i("transition-colors", t ? "text-success" : "text-muted-foreground hover:text-foreground")
13341
13342
  })
13342
13343
  });
13343
13344
  }
@@ -13431,14 +13432,14 @@ var dl = {
13431
13432
  }), /* @__PURE__ */ d(cl, { code: n })]
13432
13433
  });
13433
13434
  },
13434
- code: ({ className: e, children: n, ...r }) => e ? /* @__PURE__ */ d("code", {
13435
- className: t("font-mono text-sm", e),
13436
- ...r,
13437
- children: n
13435
+ code: ({ className: e, children: t, ...n }) => e ? /* @__PURE__ */ d("code", {
13436
+ className: i("font-mono text-sm", e),
13437
+ ...n,
13438
+ children: t
13438
13439
  }) : /* @__PURE__ */ d("code", {
13439
13440
  className: "bg-muted rounded px-1.5 py-0.5 font-mono text-sm",
13440
- ...r,
13441
- children: n
13441
+ ...n,
13442
+ children: t
13442
13443
  }),
13443
13444
  table: ({ children: e, ...t }) => /* @__PURE__ */ d("div", {
13444
13445
  className: "mb-4 overflow-x-auto",
@@ -13475,23 +13476,23 @@ function fl() {
13475
13476
  return /* @__PURE__ */ f("div", {
13476
13477
  className: "max-w-[720px] space-y-3",
13477
13478
  children: [
13478
- /* @__PURE__ */ d(n, { className: "h-4 w-full" }),
13479
- /* @__PURE__ */ d(n, { className: "h-4 w-5/6" }),
13480
- /* @__PURE__ */ d(n, { className: "h-4 w-4/6" }),
13481
- /* @__PURE__ */ d(n, { className: "h-4 w-3/4" })
13479
+ /* @__PURE__ */ d(a, { className: "h-4 w-full" }),
13480
+ /* @__PURE__ */ d(a, { className: "h-4 w-5/6" }),
13481
+ /* @__PURE__ */ d(a, { className: "h-4 w-4/6" }),
13482
+ /* @__PURE__ */ d(a, { className: "h-4 w-3/4" })
13482
13483
  ]
13483
13484
  });
13484
13485
  }
13485
- function pl({ content: e, maxHeight: n, isLoading: r }) {
13486
- return r ? /* @__PURE__ */ d(fl, {}) : !e || e.trim().length === 0 ? /* @__PURE__ */ d("div", {
13486
+ function pl({ content: e, maxHeight: t, isLoading: n }) {
13487
+ return n ? /* @__PURE__ */ d(fl, {}) : !e || e.trim().length === 0 ? /* @__PURE__ */ d("div", {
13487
13488
  className: "max-w-[720px]",
13488
13489
  children: /* @__PURE__ */ d("p", {
13489
13490
  className: "text-muted-foreground text-sm italic",
13490
13491
  children: "Nenhum conteúdo disponível."
13491
13492
  })
13492
13493
  }) : /* @__PURE__ */ d("div", {
13493
- className: t("prose-reset max-w-[720px]", n && "overflow-y-auto"),
13494
- style: n ? { maxHeight: `${n}px` } : void 0,
13494
+ className: i("prose-reset max-w-[720px]", t && "overflow-y-auto"),
13495
+ style: t ? { maxHeight: `${t}px` } : void 0,
13495
13496
  children: /* @__PURE__ */ d(eo, {
13496
13497
  rehypePlugins: [zc, [al, sl]],
13497
13498
  components: dl,
@@ -0,0 +1,92 @@
1
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
+ //#region src/base/blocks/SentenceBuilderBlock.tsx
3
+ var n = {
4
+ equals: "é igual a",
5
+ not_equals: "não é igual a",
6
+ contains: "contém",
7
+ not_contains: "não contém",
8
+ greater_than: "é maior que",
9
+ less_than: "é menor que",
10
+ in: "está em",
11
+ not_in: "não está em"
12
+ };
13
+ function r(e) {
14
+ return n[e] ?? e;
15
+ }
16
+ function i({ block: n }) {
17
+ let { data: i } = n;
18
+ return /* @__PURE__ */ t("div", {
19
+ className: "space-y-6",
20
+ children: [
21
+ /* @__PURE__ */ e("div", {
22
+ className: "space-y-4",
23
+ children: i.groups.map((n, i) => /* @__PURE__ */ t("div", { children: [i > 0 && /* @__PURE__ */ t("div", {
24
+ className: "flex items-center gap-3 py-2",
25
+ children: [
26
+ /* @__PURE__ */ e("div", { className: "bg-border h-px flex-1" }),
27
+ /* @__PURE__ */ e("span", {
28
+ className: "text-warning text-sm font-bold uppercase",
29
+ children: "OU"
30
+ }),
31
+ /* @__PURE__ */ e("div", { className: "bg-border h-px flex-1" })
32
+ ]
33
+ }), /* @__PURE__ */ e("div", {
34
+ className: "bg-muted/30 rounded-lg border p-4",
35
+ children: /* @__PURE__ */ t("p", {
36
+ className: "text-foreground text-sm leading-relaxed",
37
+ children: [/* @__PURE__ */ e("span", {
38
+ className: "text-muted-foreground",
39
+ children: "Usuários onde"
40
+ }), n.rules.map((n, i) => /* @__PURE__ */ t("span", { children: [
41
+ i > 0 && /* @__PURE__ */ e("span", {
42
+ className: "text-primary mx-1 text-sm font-bold uppercase",
43
+ children: "E"
44
+ }),
45
+ /* @__PURE__ */ e("span", {
46
+ className: "bg-accent-subtle text-accent mx-1 inline-flex items-center rounded-full px-3 py-1 text-sm font-medium",
47
+ children: n.field
48
+ }),
49
+ /* @__PURE__ */ e("span", {
50
+ className: "text-muted-foreground text-sm",
51
+ children: r(n.operator)
52
+ }),
53
+ /* @__PURE__ */ e("span", {
54
+ className: "bg-background text-foreground mx-1 inline-flex items-center rounded border px-3 py-1 text-sm",
55
+ children: n.value
56
+ })
57
+ ] }, n.id))]
58
+ })
59
+ })] }, n.id))
60
+ }),
61
+ /* @__PURE__ */ e("button", {
62
+ type: "button",
63
+ className: "text-accent border-accent hover:bg-accent-subtle w-full rounded-lg border border-dashed px-4 py-3 text-sm font-medium transition-colors",
64
+ children: "+ Adicionar regra"
65
+ }),
66
+ i.audienceEstimate && /* @__PURE__ */ t("div", {
67
+ className: "bg-muted/50 flex items-center justify-between rounded-lg px-4 py-3",
68
+ children: [/* @__PURE__ */ e("span", {
69
+ className: "text-muted-foreground text-sm",
70
+ children: "Estimativa de audiência"
71
+ }), /* @__PURE__ */ t("span", {
72
+ className: "text-foreground text-sm font-semibold",
73
+ children: [
74
+ i.audienceEstimate.matched.toLocaleString("pt-BR"),
75
+ " usuários",
76
+ " ",
77
+ /* @__PURE__ */ t("span", {
78
+ className: "text-muted-foreground font-normal",
79
+ children: [
80
+ "de ",
81
+ i.audienceEstimate.total.toLocaleString("pt-BR"),
82
+ " total"
83
+ ]
84
+ })
85
+ ]
86
+ })]
87
+ })
88
+ ]
89
+ });
90
+ }
91
+ //#endregion
92
+ export { i as SentenceBuilderBlock };
@@ -4,14 +4,13 @@
4
4
  * Resolves shell → layout → blocks through registries (ADR-807).
5
5
  * Feature pages compose their contract in the backend; the runtime
6
6
  * handles rendering deterministically.
7
+ *
8
+ * Validation (D4): Zod validates the contract shape on entry. Invalid
9
+ * contracts render a diagnostic panel in dev, preventing white screens.
10
+ *
11
+ * Fallbacks (D5): Unknown layout falls back to "stack" with console.warn.
7
12
  */
8
13
  import { type ReactElement } from "react";
9
- import type { HelpData, InspectorData, PageContract } from "@/contracts/page-contract";
10
- export interface ContractPageProps {
11
- contract: PageContract;
12
- overlay?: boolean;
13
- help?: HelpData;
14
- inspector?: InspectorData;
15
- }
14
+ import type { ContractPageProps } from "../contracts/page-contract";
16
15
  export declare function ContractPage({ contract, overlay, inspector, }: ContractPageProps): ReactElement;
17
16
  //# sourceMappingURL=ContractPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContractPage.d.ts","sourceRoot":"","sources":["../../src/app/ContractPage.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,EAEV,QAAQ,EACR,aAAa,EACb,YAAY,EACb,MAAM,2BAA2B,CAAC;AAMnC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAKD,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,OAAO,EACP,SAAS,GACV,EAAE,iBAAiB,GAAG,YAAY,CA6DlC"}
1
+ {"version":3,"file":"ContractPage.d.ts","sourceRoot":"","sources":["../../src/app/ContractPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAkC,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAUnC,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,OAAO,EACP,SAAS,GACV,EAAE,iBAAiB,GAAG,YAAY,CAqGlC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * bootstrap — mounts a PageContract-driven React app at a DOM target.
3
3
  */
4
- import type { PageContract } from "@/contracts/page-contract";
4
+ import type { PageContract } from "../contracts/page-contract";
5
5
  export declare function mountContract(target: HTMLElement, contract: PageContract): void;
6
6
  //# sourceMappingURL=bootstrap.d.ts.map
@@ -1,6 +1,11 @@
1
1
  /**
2
2
  * register-defaults — populates the registries with core shells,
3
- * layouts and block types available out-of-the-box.
3
+ * layouts and all 16 block types available out-of-the-box.
4
+ *
5
+ * Heavy blocks (flow_editor, form_builder, sentence_builder, condition_tree)
6
+ * are lazy-loaded via React.lazy to avoid bundling @xyflow, @dnd-kit, etc.
7
+ * into the main chunk. They load on first render with a Suspense boundary
8
+ * provided by ContractPage's renderBlock.
4
9
  */
5
10
  export declare function registerDefaults(): void;
6
11
  //# sourceMappingURL=register-defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-defaults.d.ts","sourceRoot":"","sources":["../../src/app/register-defaults.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6BH,wBAAgB,gBAAgB,IAAI,IAAI,CAiCvC"}
1
+ {"version":3,"file":"register-defaults.d.ts","sourceRoot":"","sources":["../../src/app/register-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgDH,wBAAgB,gBAAgB,IAAI,IAAI,CAiCvC"}
@@ -10,7 +10,7 @@
10
10
  * in these registries. Never import vendor components directly from pages.
11
11
  */
12
12
  import type { ComponentType, ReactElement, ReactNode } from "react";
13
- import type { BlockDescriptor, LayoutDescriptor, Shell } from "@/contracts/page-contract";
13
+ import type { BlockDescriptor, LayoutDescriptor, Shell } from "../contracts/page-contract";
14
14
  export type ShellProps = {
15
15
  children: ReactNode;
16
16
  };
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @example
8
8
  * import { DotLottieReact } from '@lottiefiles/dotlottie-react';
9
- * import { lottie } from '@/assets/lottie';
9
+ * import { lottie } from '../../assets/lottie';
10
10
  *
11
11
  * <DotLottieReact src={lottie.loading[0]} loop autoplay />
12
12
  */
@@ -8,7 +8,7 @@
8
8
  * @see ADR-807
9
9
  */
10
10
  import { type ReactElement } from "react";
11
- import type { BlockProps } from "@/app/registries";
12
- import type { ActionGridBlockData } from "@/contracts/block-data";
11
+ import type { BlockProps } from "../../app/registries";
12
+ import type { ActionGridBlockData } from "../../contracts/block-data";
13
13
  export declare function ActionGridBlock({ block, }: BlockProps<ActionGridBlockData>): ReactElement;
14
14
  //# sourceMappingURL=ActionGridBlock.d.ts.map
@@ -7,7 +7,7 @@
7
7
  * @see NV-05-ux-blocks.md §6
8
8
  */
9
9
  import { type ReactElement } from "react";
10
- import type { BlockProps } from "@/app/registries";
11
- import type { ActivityTimelineBlockData } from "@/contracts/block-data";
10
+ import type { BlockProps } from "../../app/registries";
11
+ import type { ActivityTimelineBlockData } from "../../contracts/block-data";
12
12
  export declare function ActivityTimelineBlock({ block, }: BlockProps<ActivityTimelineBlockData>): ReactElement;
13
13
  //# sourceMappingURL=ActivityTimelineBlock.d.ts.map
@@ -12,7 +12,7 @@
12
12
  * @see ADR-807
13
13
  */
14
14
  import { type ReactElement } from "react";
15
- import type { BlockProps } from "@/app/registries";
16
- import type { CardGridBlockData } from "@/contracts/block-data";
15
+ import type { BlockProps } from "../../app/registries";
16
+ import type { CardGridBlockData } from "../../contracts/block-data";
17
17
  export declare function CardGridBlock({ block, }: BlockProps<CardGridBlockData>): ReactElement;
18
18
  //# sourceMappingURL=CardGridBlock.d.ts.map
@@ -7,7 +7,7 @@
7
7
  * @see DESIGN.md P6
8
8
  */
9
9
  import type { ReactElement } from "react";
10
- import type { BlockProps } from "@/app/registries";
11
- import type { ConditionTreeBlockData } from "@/contracts/block-data";
10
+ import type { BlockProps } from "../../app/registries";
11
+ import type { ConditionTreeBlockData } from "../../contracts/block-data";
12
12
  export declare function ConditionTreeBlock({ block, }: BlockProps<ConditionTreeBlockData>): ReactElement;
13
13
  //# sourceMappingURL=ConditionTreeBlock.d.ts.map
@@ -7,7 +7,7 @@
7
7
  * @see NV-05-ux-blocks.md §1
8
8
  */
9
9
  import { type ReactElement } from "react";
10
- import type { BlockProps } from "@/app/registries";
11
- import type { DenseTableBlockData } from "@/contracts/block-data";
10
+ import type { BlockProps } from "../../app/registries";
11
+ import type { DenseTableBlockData } from "../../contracts/block-data";
12
12
  export declare function DenseTableBlock({ block, }: BlockProps<DenseTableBlockData>): ReactElement;
13
13
  //# sourceMappingURL=DenseTableBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DenseTableBlock.d.ts","sourceRoot":"","sources":["../../../src/base/blocks/DenseTableBlock.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAQlE,wBAAgB,eAAe,CAAC,EAC9B,KAAK,GACN,EAAE,UAAU,CAAC,mBAAmB,CAAC,GAAG,YAAY,CAwRhD"}
1
+ {"version":3,"file":"DenseTableBlock.d.ts","sourceRoot":"","sources":["../../../src/base/blocks/DenseTableBlock.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAQlE,wBAAgB,eAAe,CAAC,EAC9B,KAAK,GACN,EAAE,UAAU,CAAC,mBAAmB,CAAC,GAAG,YAAY,CA4RhD"}
@@ -7,7 +7,7 @@
7
7
  * @see NV-05-ux-blocks.md §4
8
8
  */
9
9
  import { type ReactElement } from "react";
10
- import type { BlockProps } from "@/app/registries";
11
- import type { DetailPanelBlockData } from "@/contracts/block-data";
10
+ import type { BlockProps } from "../../app/registries";
11
+ import type { DetailPanelBlockData } from "../../contracts/block-data";
12
12
  export declare function DetailPanelBlock({ block, }: BlockProps<DetailPanelBlockData>): ReactElement;
13
13
  //# sourceMappingURL=DetailPanelBlock.d.ts.map
@@ -6,7 +6,7 @@
6
6
  * @see NV-05-ux-blocks.md §7
7
7
  */
8
8
  import type { ReactElement } from "react";
9
- import type { BlockProps } from "@/app/registries";
10
- import type { EmptyStateBlockData } from "@/contracts/block-data";
9
+ import type { BlockProps } from "../../app/registries";
10
+ import type { EmptyStateBlockData } from "../../contracts/block-data";
11
11
  export declare function EmptyStateBlock({ block, }: BlockProps<EmptyStateBlockData>): ReactElement;
12
12
  //# sourceMappingURL=EmptyStateBlock.d.ts.map
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import { type ReactElement } from "react";
11
11
  import "@xyflow/react/dist/style.css";
12
- import type { BlockProps } from "@/app/registries";
13
- import type { FlowEditorBlockData } from "@/contracts/block-data";
12
+ import type { BlockProps } from "../../app/registries";
13
+ import type { FlowEditorBlockData } from "../../contracts/block-data";
14
14
  export declare function FlowEditorBlock({ block, }: BlockProps<FlowEditorBlockData>): ReactElement;
15
15
  //# sourceMappingURL=FlowEditorBlock.d.ts.map
@@ -11,7 +11,7 @@
11
11
  * @see DESIGN.md P6 — Form Builder (Customform)
12
12
  */
13
13
  import type { ReactElement } from "react";
14
- import type { BlockProps } from "@/app/registries";
15
- import type { FormBuilderBlockData } from "@/contracts/block-data";
14
+ import type { BlockProps } from "../../app/registries";
15
+ import type { FormBuilderBlockData } from "../../contracts/block-data";
16
16
  export declare function FormBuilderBlock({ block, }: BlockProps<FormBuilderBlockData>): ReactElement;
17
17
  //# sourceMappingURL=FormBuilderBlock.d.ts.map
@@ -7,7 +7,7 @@
7
7
  * @see NV-05-ux-blocks.md §2.1–2.10
8
8
  */
9
9
  import { type ReactElement } from "react";
10
- import type { BlockProps } from "@/app/registries";
11
- import type { FormPanelBlockData } from "@/contracts/block-data";
10
+ import type { BlockProps } from "../../app/registries";
11
+ import type { FormPanelBlockData } from "../../contracts/block-data";
12
12
  export declare function FormPanelBlock({ block, }: BlockProps<FormPanelBlockData>): ReactElement;
13
13
  //# sourceMappingURL=FormPanelBlock.d.ts.map
@@ -6,7 +6,7 @@
6
6
  * @see ADR-807 block catalog
7
7
  */
8
8
  import type { ReactElement } from "react";
9
- import type { BlockProps } from "@/app/registries";
10
- import type { LinkListBlockData } from "@/contracts/block-data";
9
+ import type { BlockProps } from "../../app/registries";
10
+ import type { LinkListBlockData } from "../../contracts/block-data";
11
11
  export declare function LinkListBlock({ block, }: BlockProps<LinkListBlockData>): ReactElement;
12
12
  //# sourceMappingURL=LinkListBlock.d.ts.map
@@ -7,7 +7,7 @@
7
7
  * @see NV-05-ux-blocks.md §8
8
8
  */
9
9
  import { type ReactElement } from "react";
10
- import type { BlockProps } from "@/app/registries";
11
- import type { MarkdownPanelBlockData } from "@/contracts/block-data";
10
+ import type { BlockProps } from "../../app/registries";
11
+ import type { MarkdownPanelBlockData } from "../../contracts/block-data";
12
12
  export declare function MarkdownPanelBlock({ block, }: BlockProps<MarkdownPanelBlockData>): ReactElement;
13
13
  //# sourceMappingURL=MarkdownPanelBlock.d.ts.map
@@ -4,7 +4,7 @@
4
4
  * @see NV-05-ux-blocks.md §3.1–3.7
5
5
  */
6
6
  import type { ReactElement } from "react";
7
- import type { BlockProps } from "@/app/registries";
8
- import type { MetricCardBlockData } from "@/contracts/block-data";
7
+ import type { BlockProps } from "../../app/registries";
8
+ import type { MetricCardBlockData } from "../../contracts/block-data";
9
9
  export declare function MetricCardBlock({ block, }: BlockProps<MetricCardBlockData>): ReactElement;
10
10
  //# sourceMappingURL=MetricCardBlock.d.ts.map
@@ -9,7 +9,7 @@
9
9
  * @see DESIGN.md P6 — Sentence Builder (Segments)
10
10
  */
11
11
  import type { ReactElement } from "react";
12
- import type { BlockProps } from "@/app/registries";
13
- import type { SentenceBuilderBlockData } from "@/contracts/block-data";
12
+ import type { BlockProps } from "../../app/registries";
13
+ import type { SentenceBuilderBlockData } from "../../contracts/block-data";
14
14
  export declare function SentenceBuilderBlock({ block, }: BlockProps<SentenceBuilderBlockData>): ReactElement;
15
15
  //# sourceMappingURL=SentenceBuilderBlock.d.ts.map
@@ -6,7 +6,7 @@
6
6
  * @see NV-05-ux-blocks.md §5
7
7
  */
8
8
  import type { ReactElement } from "react";
9
- import type { BlockProps } from "@/app/registries";
10
- import type { StatusStripBlockData } from "@/contracts/block-data";
9
+ import type { BlockProps } from "../../app/registries";
10
+ import type { StatusStripBlockData } from "../../contracts/block-data";
11
11
  export declare function StatusStripBlock({ block, }: BlockProps<StatusStripBlockData>): ReactElement | null;
12
12
  //# sourceMappingURL=StatusStripBlock.d.ts.map
@@ -9,7 +9,7 @@
9
9
  * @see ADR-807 ref/page-contract-v1 §5
10
10
  */
11
11
  import type { ReactElement } from "react";
12
- import type { BlockProps } from "@/app/registries";
13
- import type { TabbedPanelBlockData } from "@/contracts/block-data";
12
+ import type { BlockProps } from "../../app/registries";
13
+ import type { TabbedPanelBlockData } from "../../contracts/block-data";
14
14
  export declare function TabbedPanelBlock({ block, }: BlockProps<TabbedPanelBlockData>): ReactElement;
15
15
  //# sourceMappingURL=TabbedPanelBlock.d.ts.map
@@ -6,6 +6,6 @@
6
6
  * @see NV-05-ux-screens-core.md T-01
7
7
  */
8
8
  import type { ReactElement } from "react";
9
- import type { LayoutProps } from "@/app/registries";
9
+ import type { LayoutProps } from "../../app/registries";
10
10
  export declare function DashboardLayout({ layout, renderBlock, }: LayoutProps): ReactElement;
11
11
  //# sourceMappingURL=DashboardLayout.d.ts.map
@@ -3,6 +3,6 @@
3
3
  * Regions: header, content, detail.
4
4
  */
5
5
  import type { ReactElement } from "react";
6
- import type { LayoutProps } from "@/app/registries";
6
+ import type { LayoutProps } from "../../app/registries";
7
7
  export declare function MasterDetailLayout({ layout, renderBlock, }: LayoutProps): ReactElement;
8
8
  //# sourceMappingURL=MasterDetailLayout.d.ts.map
@@ -3,6 +3,6 @@
3
3
  * Regions: header, main, aside.
4
4
  */
5
5
  import type { ReactElement } from "react";
6
- import type { LayoutProps } from "@/app/registries";
6
+ import type { LayoutProps } from "../../app/registries";
7
7
  export declare function SplitLayout({ layout, renderBlock, }: LayoutProps): ReactElement;
8
8
  //# sourceMappingURL=SplitLayout.d.ts.map
@@ -7,6 +7,6 @@
7
7
  * descriptor to remove padding (dense_table pages that need edge-to-edge).
8
8
  */
9
9
  import type { ReactElement } from "react";
10
- import type { LayoutProps } from "@/app/registries";
10
+ import type { LayoutProps } from "../../app/registries";
11
11
  export declare function StackLayout({ layout, renderBlock, }: LayoutProps): ReactElement;
12
12
  //# sourceMappingURL=StackLayout.d.ts.map
@@ -7,6 +7,6 @@
7
7
  * @see UI Layer Completion spec §1
8
8
  */
9
9
  import type { ReactElement } from "react";
10
- import type { LayoutProps } from "@/app/registries";
10
+ import type { LayoutProps } from "../../app/registries";
11
11
  export declare function WizardLayout({ layout, renderBlock, }: LayoutProps): ReactElement;
12
12
  //# sourceMappingURL=WizardLayout.d.ts.map
@@ -4,9 +4,9 @@
4
4
  * @see NV-05-ux-blocks.md
5
5
  */
6
6
  import type { ReactNode } from "react";
7
- import type { EmptyPlaceholderCTA } from "@/base/partials/EmptyPlaceholder";
8
- import type { FilterDef, AppliedFilters } from "@/base/partials/FilterBar";
9
- import type { BulkAction } from "@/base/partials/ActionBar";
7
+ import type { EmptyPlaceholderCTA } from "../../../base/partials/EmptyPlaceholder";
8
+ import type { FilterDef, AppliedFilters } from "../../../base/partials/FilterBar";
9
+ import type { BulkAction } from "../../../base/partials/ActionBar";
10
10
  export type DataTableCellType = "text" | "status" | "boolean" | "timestamp" | "custom" | "rich_status" | "html" | "link_group";
11
11
  export interface DataTableColumn<TData> {
12
12
  /** Unique column key, must match a property of TData (or use `render` for computed). */
@@ -7,6 +7,6 @@
7
7
  * @see ADR-807 ref/shell-and-navigation §1-2
8
8
  */
9
9
  import { type ReactElement } from "react";
10
- import type { ShellProps } from "@/app/registries";
10
+ import type { ShellProps } from "../../app/registries";
11
11
  export declare function AdminShell({ children }: ShellProps): ReactElement;
12
12
  //# sourceMappingURL=AdminShell.d.ts.map
@@ -8,7 +8,7 @@
8
8
  * @see NV-05-ux-shell-sidebar.md §2
9
9
  */
10
10
  import { type ReactElement } from "react";
11
- import type { ShellProps } from "@/app/registries";
11
+ import type { ShellProps } from "../../app/registries";
12
12
  /**
13
13
  * ProductShell wraps content in SidebarProvider which manages:
14
14
  * - expanded/collapsed state (Cmd+B shortcut built into sidebar primitive)
@@ -1,5 +1,5 @@
1
1
  import { type ReactElement, type ReactNode } from "react";
2
- import type { HelpData } from "@/contracts/page-contract";
2
+ import type { HelpData } from "../../../contracts/page-contract";
3
3
  interface HelpContextValue {
4
4
  help: HelpData | null;
5
5
  isOpen: boolean;
@@ -1,5 +1,5 @@
1
1
  import { type ReactNode } from "react";
2
- import type { InspectorData } from "@/contracts/page-contract";
2
+ import type { InspectorData } from "../../../contracts/page-contract";
3
3
  export interface InspectorAction {
4
4
  id: string;
5
5
  label: string;