@multiplatform.one/frappe-ui 7.6.1 → 7.6.2

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 (114) hide show
  1. package/dist/cjs/FileBrowser/AttachLibrary.cjs +51 -49
  2. package/dist/cjs/FileBrowser/AttachLibrary.native.js +58 -49
  3. package/dist/cjs/FileBrowser/AttachLibrary.native.js.map +1 -1
  4. package/dist/cjs/FrappeConnectionIndicator.cjs +5 -3
  5. package/dist/cjs/FrappeConnectionIndicator.native.js +5 -3
  6. package/dist/cjs/FrappeConnectionIndicator.native.js.map +1 -1
  7. package/dist/cjs/FrappeForm.cjs +3 -1
  8. package/dist/cjs/FrappeForm.native.js +3 -1
  9. package/dist/cjs/FrappeForm.native.js.map +1 -1
  10. package/dist/cjs/FrappeReconnectIndicator.cjs +4 -2
  11. package/dist/cjs/FrappeReconnectIndicator.native.js +4 -2
  12. package/dist/cjs/FrappeReconnectIndicator.native.js.map +1 -1
  13. package/dist/cjs/index.cjs +2 -0
  14. package/dist/cjs/index.native.js +2 -0
  15. package/dist/cjs/index.native.js.map +1 -1
  16. package/dist/cjs/schemaForm/applyFieldOrder.cjs +63 -0
  17. package/dist/cjs/schemaForm/applyFieldOrder.native.js +116 -0
  18. package/dist/cjs/schemaForm/applyFieldOrder.native.js.map +1 -0
  19. package/dist/cjs/schemaForm/index.cjs +13 -7
  20. package/dist/cjs/schemaForm/index.native.js +15 -7
  21. package/dist/cjs/schemaForm/index.native.js.map +1 -1
  22. package/dist/esm/FileBrowser/AttachLibrary.mjs +51 -49
  23. package/dist/esm/FileBrowser/AttachLibrary.mjs.map +1 -1
  24. package/dist/esm/FileBrowser/AttachLibrary.native.js +58 -49
  25. package/dist/esm/FileBrowser/AttachLibrary.native.js.map +1 -1
  26. package/dist/esm/FrappeConnectionIndicator.mjs +5 -3
  27. package/dist/esm/FrappeConnectionIndicator.mjs.map +1 -1
  28. package/dist/esm/FrappeConnectionIndicator.native.js +5 -3
  29. package/dist/esm/FrappeConnectionIndicator.native.js.map +1 -1
  30. package/dist/esm/FrappeForm.mjs +3 -1
  31. package/dist/esm/FrappeForm.mjs.map +1 -1
  32. package/dist/esm/FrappeForm.native.js +3 -1
  33. package/dist/esm/FrappeForm.native.js.map +1 -1
  34. package/dist/esm/FrappeReconnectIndicator.mjs +4 -2
  35. package/dist/esm/FrappeReconnectIndicator.mjs.map +1 -1
  36. package/dist/esm/FrappeReconnectIndicator.native.js +4 -2
  37. package/dist/esm/FrappeReconnectIndicator.native.js.map +1 -1
  38. package/dist/esm/index.mjs +2 -2
  39. package/dist/esm/index.mjs.map +1 -1
  40. package/dist/esm/index.native.js +2 -2
  41. package/dist/esm/index.native.js.map +1 -1
  42. package/dist/esm/schemaForm/applyFieldOrder.mjs +37 -0
  43. package/dist/esm/schemaForm/applyFieldOrder.mjs.map +1 -0
  44. package/dist/esm/schemaForm/applyFieldOrder.native.js +87 -0
  45. package/dist/esm/schemaForm/applyFieldOrder.native.js.map +1 -0
  46. package/dist/esm/schemaForm/index.mjs +11 -7
  47. package/dist/esm/schemaForm/index.mjs.map +1 -1
  48. package/dist/esm/schemaForm/index.native.js +13 -7
  49. package/dist/esm/schemaForm/index.native.js.map +1 -1
  50. package/dist/jsx/FileBrowser/AttachLibrary.mjs +51 -49
  51. package/dist/jsx/FileBrowser/AttachLibrary.mjs.map +1 -1
  52. package/dist/jsx/FileBrowser/AttachLibrary.native.js +58 -49
  53. package/dist/jsx/FileBrowser/AttachLibrary.native.js.map +1 -1
  54. package/dist/jsx/FrappeConnectionIndicator.mjs +5 -3
  55. package/dist/jsx/FrappeConnectionIndicator.mjs.map +1 -1
  56. package/dist/jsx/FrappeConnectionIndicator.native.js +5 -3
  57. package/dist/jsx/FrappeConnectionIndicator.native.js.map +1 -1
  58. package/dist/jsx/FrappeForm.mjs +3 -1
  59. package/dist/jsx/FrappeForm.mjs.map +1 -1
  60. package/dist/jsx/FrappeForm.native.js +3 -1
  61. package/dist/jsx/FrappeForm.native.js.map +1 -1
  62. package/dist/jsx/FrappeReconnectIndicator.mjs +4 -2
  63. package/dist/jsx/FrappeReconnectIndicator.mjs.map +1 -1
  64. package/dist/jsx/FrappeReconnectIndicator.native.js +4 -2
  65. package/dist/jsx/FrappeReconnectIndicator.native.js.map +1 -1
  66. package/dist/jsx/index.js +2 -2
  67. package/dist/jsx/index.js.map +1 -1
  68. package/dist/jsx/index.mjs +2 -2
  69. package/dist/jsx/index.mjs.map +1 -1
  70. package/dist/jsx/index.native.js +2 -0
  71. package/dist/jsx/index.native.js.map +1 -1
  72. package/dist/jsx/schemaForm/applyFieldOrder.mjs +37 -0
  73. package/dist/jsx/schemaForm/applyFieldOrder.mjs.map +1 -0
  74. package/dist/jsx/schemaForm/applyFieldOrder.native.js +116 -0
  75. package/dist/jsx/schemaForm/applyFieldOrder.native.js.map +1 -0
  76. package/dist/jsx/schemaForm/index.mjs +11 -7
  77. package/dist/jsx/schemaForm/index.mjs.map +1 -1
  78. package/dist/jsx/schemaForm/index.native.js +15 -7
  79. package/dist/jsx/schemaForm/index.native.js.map +1 -1
  80. package/package.json +16 -16
  81. package/src/FileBrowser/AttachLibrary.spec.tsx +74 -0
  82. package/src/FileBrowser/AttachLibrary.stories.tsx +67 -0
  83. package/src/FileBrowser/AttachLibrary.tsx +56 -49
  84. package/src/FrappeConnectionIndicator.spec.tsx +51 -0
  85. package/src/FrappeConnectionIndicator.stories.tsx +55 -0
  86. package/src/FrappeConnectionIndicator.tsx +15 -4
  87. package/src/FrappeForm.tsx +13 -3
  88. package/src/FrappeReconnectIndicator.spec.tsx +52 -0
  89. package/src/FrappeReconnectIndicator.stories.tsx +55 -0
  90. package/src/FrappeReconnectIndicator.tsx +13 -3
  91. package/src/SyncErrorNotice.stories.tsx +50 -0
  92. package/src/desk/DeskFormSidebar.spec.tsx +90 -0
  93. package/src/desk/DeskFormSidebar.stories.tsx +133 -0
  94. package/src/fields/LinkTree.spec.tsx +109 -0
  95. package/src/fields/LinkTree.stories.tsx +187 -0
  96. package/src/index.ts +1 -1
  97. package/src/schemaForm/SchemaForm.spec.tsx +29 -0
  98. package/src/schemaForm/SchemaForm.stories.tsx +14 -1
  99. package/src/schemaForm/applyFieldOrder.spec.ts +75 -0
  100. package/src/schemaForm/applyFieldOrder.ts +71 -0
  101. package/src/schemaForm/index.tsx +17 -5
  102. package/types/FileBrowser/AttachLibrary.d.ts.map +1 -1
  103. package/types/FrappeConnectionIndicator.d.ts +8 -2
  104. package/types/FrappeConnectionIndicator.d.ts.map +1 -1
  105. package/types/FrappeForm.d.ts +7 -1
  106. package/types/FrappeForm.d.ts.map +1 -1
  107. package/types/FrappeReconnectIndicator.d.ts +7 -2
  108. package/types/FrappeReconnectIndicator.d.ts.map +1 -1
  109. package/types/index.d.ts +1 -1
  110. package/types/index.d.ts.map +1 -1
  111. package/types/schemaForm/applyFieldOrder.d.ts +28 -0
  112. package/types/schemaForm/applyFieldOrder.d.ts.map +1 -0
  113. package/types/schemaForm/index.d.ts +8 -1
  114. package/types/schemaForm/index.d.ts.map +1 -1
@@ -0,0 +1,75 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { readFileSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import type { FieldSchema } from "../fieldRegistry";
6
+ import type { FormSchema } from "./index";
7
+ import { applyFieldOrder, applyOrderToSchema } from "./applyFieldOrder";
8
+
9
+ const named = (...names: string[]): FieldSchema[] =>
10
+ names.map((name) => ({ type: "Data", name, label: name }));
11
+
12
+ describe("applyFieldOrder (R2 / MPO-22)", () => {
13
+ it("is identity when order is missing or empty", () => {
14
+ const fields = named("a", "b", "c");
15
+ expect(applyFieldOrder(fields).map((f) => f.name)).toEqual(["a", "b", "c"]);
16
+ expect(applyFieldOrder(fields, []).map((f) => f.name)).toEqual(["a", "b", "c"]);
17
+ });
18
+
19
+ it("reorders listed fields in place; unlisted keep their meta positions", () => {
20
+ // meta [a, b, c, d, e], order [c, a] → listed occupy slots 0 and 2
21
+ // unlisted b/d/e stay; listed fill those slots as c then a.
22
+ expect(applyFieldOrder(named("a", "b", "c", "d", "e"), ["c", "a"]).map((f) => f.name)).toEqual([
23
+ "c",
24
+ "b",
25
+ "a",
26
+ "d",
27
+ "e",
28
+ ]);
29
+ });
30
+
31
+ it("ignores unknown names and duplicate order entries", () => {
32
+ expect(
33
+ applyFieldOrder(named("a", "b", "c"), ["c", "nope", "c", "a"]).map((f) => f.name),
34
+ ).toEqual(["c", "b", "a"]);
35
+ });
36
+
37
+ it("does not invent fields that are not in the meta list", () => {
38
+ expect(applyFieldOrder(named("a", "b"), ["b", "a", "ghost"]).map((f) => f.name)).toEqual([
39
+ "b",
40
+ "a",
41
+ ]);
42
+ });
43
+ });
44
+
45
+ describe("applyOrderToSchema", () => {
46
+ it("permutes listed fields across sections without changing the tree shape", () => {
47
+ const a = named("a")[0];
48
+ const b = named("b")[0];
49
+ const c = named("c")[0];
50
+ const d = named("d")[0];
51
+ const schema: FormSchema = {
52
+ fields: [a, b, c, d],
53
+ sections: [
54
+ { label: "One", columns: [{ fields: [a, b] }] },
55
+ { label: "Two", columns: [{ fields: [c, d] }] },
56
+ ],
57
+ };
58
+ const next = applyOrderToSchema(schema, ["d", "a"]);
59
+ expect(next.sections).toHaveLength(2);
60
+ expect(next.sections[0]?.columns[0]?.fields.map((f) => f.name)).toEqual(["d", "b"]);
61
+ expect(next.sections[1]?.columns[0]?.fields.map((f) => f.name)).toEqual(["c", "a"]);
62
+ expect(next.sections[0]?.label).toBe("One");
63
+ expect(next.sections[1]?.label).toBe("Two");
64
+ });
65
+ });
66
+
67
+ describe("FrappeForm R2 wiring", () => {
68
+ it("forwards order onto SchemaForm (cheap R2, not a sections tree)", () => {
69
+ const src = readFileSync(join(dirname(fileURLToPath(import.meta.url)), "../FrappeForm.tsx"), {
70
+ encoding: "utf8",
71
+ });
72
+ expect(src).toMatch(/order\?: string\[\]/);
73
+ expect(src).toMatch(/order=\{order\}/);
74
+ });
75
+ });
@@ -0,0 +1,71 @@
1
+ import type { FieldSchema } from "../fieldRegistry";
2
+
3
+ // Structural minimum this module needs. Deliberately NO `[key: string]:
4
+ // unknown` catch-all: FormSchema's sections are an `interface`, and TypeScript
5
+ // gives interfaces no implicit index signature, so an index signature here
6
+ // makes the real FormSchema unassignable (TS2345 at the SchemaForm call site).
7
+ // Extra section keys (label, collapsible, hideBorder, ...) still survive at
8
+ // runtime because applyOrderToSchema spreads `...section`.
9
+ type SchemaLike = {
10
+ fields: FieldSchema[];
11
+ sections: Array<{
12
+ columns: Array<{ fields: FieldSchema[] }>;
13
+ }>;
14
+ };
15
+
16
+ /**
17
+ * R2: reorder listed fields among the slots they already occupy.
18
+ * Unlisted fields keep their meta positions. Unknown / duplicate names
19
+ * in `order` are ignored. Empty or missing `order` is identity.
20
+ *
21
+ * Doctrine (`08` §2.3 / §4.2, `00` L4 test 1): reordering three fields
22
+ * must not cost a whole `sections` tree.
23
+ */
24
+ export function applyFieldOrder<T extends { name: string }>(
25
+ fields: readonly T[],
26
+ order?: readonly string[],
27
+ ): T[] {
28
+ if (!order?.length) return fields.slice();
29
+ const byName = new Map<string, T>();
30
+ for (const field of fields) {
31
+ if (!byName.has(field.name)) byName.set(field.name, field);
32
+ }
33
+ const listed: string[] = [];
34
+ const listedSet = new Set<string>();
35
+ for (const name of order) {
36
+ if (!byName.has(name) || listedSet.has(name)) continue;
37
+ listed.push(name);
38
+ listedSet.add(name);
39
+ }
40
+ if (listed.length === 0) return fields.slice();
41
+ let i = 0;
42
+ return fields.map((field) =>
43
+ listedSet.has(field.name) ? byName.get(listed[i++] as string)! : field,
44
+ );
45
+ }
46
+
47
+ /**
48
+ * Apply `order` inside the existing section/column tree. Listed fields may
49
+ * move across sections; the tree shape (section count, column counts) does
50
+ * not change.
51
+ */
52
+ export function applyOrderToSchema<T extends SchemaLike>(schema: T, order?: readonly string[]): T {
53
+ if (!order?.length) return schema;
54
+ const flat: FieldSchema[] = schema.sections.flatMap((section) =>
55
+ section.columns.flatMap((column) => column.fields),
56
+ );
57
+ const reordered = applyFieldOrder(flat, order);
58
+ let i = 0;
59
+ const sections = schema.sections.map((section) => ({
60
+ ...section,
61
+ columns: section.columns.map((column) => ({
62
+ ...column,
63
+ fields: column.fields.map(() => reordered[i++]),
64
+ })),
65
+ }));
66
+ return {
67
+ ...schema,
68
+ sections,
69
+ fields: applyFieldOrder(schema.fields, order),
70
+ };
71
+ }
@@ -25,6 +25,9 @@ import { compileDependsOn } from "../dependsOn";
25
25
  import { Heading, type HeadingLevel } from "../fields/Heading";
26
26
  import { useFieldResolver } from "../fieldOverrides";
27
27
  import type { FieldRenderProps, FieldSchema } from "../fieldRegistry";
28
+ import { applyOrderToSchema } from "./applyFieldOrder";
29
+
30
+ export { applyFieldOrder, applyOrderToSchema } from "./applyFieldOrder";
28
31
 
29
32
  // ---------------------------------------------------------------------------
30
33
  // Types
@@ -102,6 +105,12 @@ export interface SchemaFormProps {
102
105
  * (layout breaks, hidden, failing depends_on) never reach the wrapper.
103
106
  */
104
107
  renderFieldWrapper?: (rendered: React.ReactNode, field: FieldSchema) => React.ReactNode;
108
+ /**
109
+ * R2: reorder fields inside the existing layout. Listed names permute
110
+ * among the slots they already occupy; unlisted fields keep their meta
111
+ * positions. Unknown names are ignored. Cheaper than replacing `sections`.
112
+ */
113
+ order?: string[];
105
114
  }
106
115
 
107
116
  // ---------------------------------------------------------------------------
@@ -147,6 +156,7 @@ export function SchemaForm({
147
156
  requiredMarking = "auto",
148
157
  sectionHeadingLevel = 2,
149
158
  renderFieldWrapper,
159
+ order,
150
160
  }: SchemaFormProps) {
151
161
  const { t } = useTranslation();
152
162
  const { knobProps } = useResolvedKnobs();
@@ -154,29 +164,31 @@ export function SchemaForm({
154
164
  // (GL-4: two providers with different overrides must not interfere).
155
165
  const resolveFieldComponent = useFieldResolver();
156
166
 
167
+ const orderedSchema = useMemo(() => applyOrderToSchema(schema, order), [schema, order]);
168
+
157
169
  // Pre-compile depends_on evaluators for all fields (safe recursive-descent
158
170
  // parser — no string eval, works under Hermes/GJS/CSP; unparseable
159
171
  // expressions fall back to visible).
160
172
  const dependsOnMap = useMemo(() => {
161
173
  const map = new Map<string, (doc: Record<string, unknown>) => boolean>();
162
- for (const field of schema.fields) {
174
+ for (const field of orderedSchema.fields) {
163
175
  if (field.depends_on) {
164
176
  const evaluator = compileDependsOn(field.depends_on, true);
165
177
  if (evaluator) map.set(field.name, evaluator);
166
178
  }
167
179
  }
168
180
  return map;
169
- }, [schema.fields]);
181
+ }, [orderedSchema.fields]);
170
182
 
171
183
  const hiddenSet = useMemo(() => new Set(hideFields), [hideFields]);
172
184
  const readOnlySet = useMemo(() => new Set(readOnlyFields), [readOnlyFields]);
173
185
 
174
186
  const requiredMarkMode = useMemo(() => {
175
- const flags = schema.fields
187
+ const flags = orderedSchema.fields
176
188
  .filter((f) => !layoutFieldTypes.has(f.type) && !f.hidden && !hiddenSet.has(f.name))
177
189
  .map((f) => !!f.required);
178
190
  return computeRequiredMarkMode(flags, requiredMarking);
179
- }, [schema.fields, requiredMarking, hiddenSet]);
191
+ }, [orderedSchema.fields, requiredMarking, hiddenSet]);
180
192
 
181
193
  function renderField(field: FieldSchema) {
182
194
  // Skip layout break fields — structural, not rendered as inputs
@@ -294,7 +306,7 @@ export function SchemaForm({
294
306
  return (
295
307
  <RequiredMarkingContext.Provider value={{ mode: requiredMarkMode }}>
296
308
  <YStack {...knobProps.gapLg}>
297
- {schema.sections.map((section, sectionIndex) => {
309
+ {orderedSchema.sections.map((section, sectionIndex) => {
298
310
  const sectionKey = section.label ? `section-${section.label}` : `section-${sectionIndex}`;
299
311
  return (
300
312
  <SchemaFormSectionCard
@@ -1 +1 @@
1
- {"version":3,"file":"AttachLibrary.d.ts","sourceRoot":"","sources":["../../src/FileBrowser/AttachLibrary.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACnC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,aAAa,EACb,MAAM,GACP,EAAE,kBAAkB,2CA4DpB"}
1
+ {"version":3,"file":"AttachLibrary.d.ts","sourceRoot":"","sources":["../../src/FileBrowser/AttachLibrary.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACnC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,aAAa,EACb,MAAM,GACP,EAAE,kBAAkB,2CAmEpB"}
@@ -1,7 +1,13 @@
1
- import { type UseFrappeCollectionConfig } from "@multiplatform.one/frappe";
1
+ import { type FrappeConnectionState, type UseFrappeCollectionConfig } from "@multiplatform.one/frappe";
2
2
  export interface FrappeConnectionIndicatorProps {
3
3
  /** The same connection config the sibling collection hooks use. */
4
4
  config: UseFrappeCollectionConfig | undefined;
5
+ /**
6
+ * Story and spec injection. Production callers omit this; the live socket
7
+ * from `useFrappeConnection(config)` wins. Fixture configs always report
8
+ * never-connected, so boards that need the reconnecting pill pass a snapshot.
9
+ */
10
+ connection?: FrappeConnectionState;
5
11
  }
6
12
  /**
7
13
  * Compact "Reconnecting" status pill for live Frappe views.
@@ -12,5 +18,5 @@ export interface FrappeConnectionIndicatorProps {
12
18
  * connected, in fixture mode, or during SSR (realtime never up), so
13
19
  * fixture-backed stories stay clean.
14
20
  */
15
- export declare function FrappeConnectionIndicator({ config }: FrappeConnectionIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
21
+ export declare function FrappeConnectionIndicator({ config, connection }: FrappeConnectionIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
16
22
  //# sourceMappingURL=FrappeConnectionIndicator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FrappeConnectionIndicator.d.ts","sourceRoot":"","sources":["../src/FrappeConnectionIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAMhG,MAAM,WAAW,8BAA8B;IAC7C,mEAAmE;IACnE,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC;CAC/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,MAAM,EAAE,EAAE,8BAA8B,kDA+BnF"}
1
+ {"version":3,"file":"FrappeConnectionIndicator.d.ts","sourceRoot":"","sources":["../src/FrappeConnectionIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC/B,MAAM,2BAA2B,CAAC;AAMnC,MAAM,WAAW,8BAA8B;IAC7C,mEAAmE;IACnE,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC9C;;;;OAIG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,8BAA8B,kDAgC/F"}
@@ -36,6 +36,12 @@ export interface FrappeFormProps<TDoc extends {
36
36
  readOnlyFields?: string[];
37
37
  /** Completely replace the auto-generated layout. */
38
38
  sections?: FormSection[];
39
+ /**
40
+ * R2: reorder fields in the meta-derived layout. Listed names permute
41
+ * among their slots; unlisted fields keep their meta positions. Unknown
42
+ * names are ignored. Cheaper than replacing `sections`.
43
+ */
44
+ order?: string[];
39
45
  onSave?: (doc: Partial<TDoc>) => void;
40
46
  onCancel?: () => void;
41
47
  onDelete?: (doc: Partial<TDoc>) => void;
@@ -102,5 +108,5 @@ export declare function mapDocToSidebarMetadata(doc: Record<string, unknown>, t:
102
108
  export declare function FrappeForm<TDoc extends {
103
109
  name: string;
104
110
  doctype: string;
105
- }>({ baseURL, auth, syncOptions, doctype, name, fields, children, overrides, hideFields, readOnlyFields, sections, onSave, onCancel, onDelete, showToolbar, showSidebar, showTimeline, disabled, sectionHeadingLevel, }: FrappeFormProps<TDoc>): import("react/jsx-runtime").JSX.Element;
111
+ }>({ baseURL, auth, syncOptions, doctype, name, fields, children, overrides, hideFields, readOnlyFields, sections, order, onSave, onCancel, onDelete, showToolbar, showSidebar, showTimeline, disabled, sectionHeadingLevel, }: FrappeFormProps<TDoc>): import("react/jsx-runtime").JSX.Element;
106
112
  //# sourceMappingURL=FrappeForm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FrappeForm.d.ts","sourceRoot":"","sources":["../src/FrappeForm.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FrappeForm.d.ts","sourceRoot":"","sources":["../src/FrappeForm.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,12 @@
1
- import { type UseFrappeCollectionConfig } from "@multiplatform.one/frappe";
1
+ import { type FrappeConnectionState, type UseFrappeCollectionConfig } from "@multiplatform.one/frappe";
2
2
  export interface FrappeReconnectIndicatorProps {
3
3
  /** The connection config the component's live queries sync through. */
4
4
  config: UseFrappeCollectionConfig | undefined;
5
+ /**
6
+ * Story and spec injection. Production callers omit this; the live socket
7
+ * from `useFrappeConnection(config)` wins.
8
+ */
9
+ connection?: FrappeConnectionState;
5
10
  }
6
11
  /**
7
12
  * Honest realtime-state chip for live Frappe components.
@@ -13,5 +18,5 @@ export interface FrappeReconnectIndicatorProps {
13
18
  * gap is owned by the client's reconnect backfill; this chip only tells the
14
19
  * user that in-place updates are paused right now.
15
20
  */
16
- export declare function FrappeReconnectIndicator({ config }: FrappeReconnectIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
21
+ export declare function FrappeReconnectIndicator({ config, connection }: FrappeReconnectIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
17
22
  //# sourceMappingURL=FrappeReconnectIndicator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FrappeReconnectIndicator.d.ts","sourceRoot":"","sources":["../src/FrappeReconnectIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAMhG,MAAM,WAAW,6BAA6B;IAC5C,uEAAuE;IACvE,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC;CAC/C;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,MAAM,EAAE,EAAE,6BAA6B,kDAwBjF"}
1
+ {"version":3,"file":"FrappeReconnectIndicator.d.ts","sourceRoot":"","sources":["../src/FrappeReconnectIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC/B,MAAM,2BAA2B,CAAC;AAMnC,MAAM,WAAW,6BAA6B;IAC5C,uEAAuE;IACvE,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC9C;;;OAGG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,6BAA6B,kDAyB7F"}
package/types/index.d.ts CHANGED
@@ -37,7 +37,7 @@ export { AttachLibrary, type AttachLibraryProps } from "./FileBrowser/AttachLibr
37
37
  export { FrappeConnectionIndicator, type FrappeConnectionIndicatorProps, } from "./FrappeConnectionIndicator";
38
38
  export { SyncErrorNotice, type SyncErrorNoticeProps } from "./SyncErrorNotice";
39
39
  export { compileDependsOn, evaluateDependsOn, type DependsDoc, type DependsEvaluator, } from "./dependsOn";
40
- export { SchemaForm } from "./schemaForm";
40
+ export { SchemaForm, applyFieldOrder, applyOrderToSchema } from "./schemaForm";
41
41
  export type { SchemaFormProps, FormSchema, FormSection, FormColumn, FieldOverride, } from "./schemaForm";
42
42
  export { SchemaWizard, schemaToWizardSteps } from "./schemaForm/SchemaWizard";
43
43
  export type { SchemaWizardProps } from "./schemaForm/SchemaWizard";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { FieldSchema } from "../fieldRegistry";
2
+ type SchemaLike = {
3
+ fields: FieldSchema[];
4
+ sections: Array<{
5
+ columns: Array<{
6
+ fields: FieldSchema[];
7
+ }>;
8
+ }>;
9
+ };
10
+ /**
11
+ * R2: reorder listed fields among the slots they already occupy.
12
+ * Unlisted fields keep their meta positions. Unknown / duplicate names
13
+ * in `order` are ignored. Empty or missing `order` is identity.
14
+ *
15
+ * Doctrine (`08` §2.3 / §4.2, `00` L4 test 1): reordering three fields
16
+ * must not cost a whole `sections` tree.
17
+ */
18
+ export declare function applyFieldOrder<T extends {
19
+ name: string;
20
+ }>(fields: readonly T[], order?: readonly string[]): T[];
21
+ /**
22
+ * Apply `order` inside the existing section/column tree. Listed fields may
23
+ * move across sections; the tree shape (section count, column counts) does
24
+ * not change.
25
+ */
26
+ export declare function applyOrderToSchema<T extends SchemaLike>(schema: T, order?: readonly string[]): T;
27
+ export {};
28
+ //# sourceMappingURL=applyFieldOrder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyFieldOrder.d.ts","sourceRoot":"","sources":["../../src/schemaForm/applyFieldOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQpD,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC;QACd,OAAO,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,WAAW,EAAE,CAAA;SAAE,CAAC,CAAC;KAC3C,CAAC,CAAC;CACJ,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACxD,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GACxB,CAAC,EAAE,CAkBL;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,CAAC,CAmBhG"}
@@ -14,6 +14,7 @@ import { type RequiredMarkStrategy } from "@multiplatform.one/forms";
14
14
  import React from "react";
15
15
  import { type HeadingLevel } from "../fields/Heading";
16
16
  import type { FieldRenderProps, FieldSchema } from "../fieldRegistry";
17
+ export { applyFieldOrder, applyOrderToSchema } from "./applyFieldOrder";
17
18
  /** A column within a form section — contains an array of fields. */
18
19
  export interface FormColumn {
19
20
  fields: FieldSchema[];
@@ -83,6 +84,12 @@ export interface SchemaFormProps {
83
84
  * (layout breaks, hidden, failing depends_on) never reach the wrapper.
84
85
  */
85
86
  renderFieldWrapper?: (rendered: React.ReactNode, field: FieldSchema) => React.ReactNode;
87
+ /**
88
+ * R2: reorder fields inside the existing layout. Listed names permute
89
+ * among the slots they already occupy; unlisted fields keep their meta
90
+ * positions. Unknown names are ignored. Cheaper than replacing `sections`.
91
+ */
92
+ order?: string[];
86
93
  }
87
- export declare function SchemaForm({ schema, doc, setValue, errors, disabled, overrides, hideFields, readOnlyFields, requiredMarking, sectionHeadingLevel, renderFieldWrapper, }: SchemaFormProps): import("react/jsx-runtime").JSX.Element;
94
+ export declare function SchemaForm({ schema, doc, setValue, errors, disabled, overrides, hideFields, readOnlyFields, requiredMarking, sectionHeadingLevel, renderFieldWrapper, order, }: SchemaFormProps): import("react/jsx-runtime").JSX.Element;
88
95
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemaForm/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAMtE,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gEAAgE;IAChE,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,wDAAwD;AACxD,MAAM,MAAM,aAAa,GACrB,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,GAC9C;IAAE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAA;CAAE,GACpD;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CAAC;AAEnC,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,MAAM,EAAE,UAAU,CAAC;IACnB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzB,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;CACzF;AAiCD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,GAAG,EACH,QAAQ,EACR,MAAW,EACX,QAAgB,EAChB,SAAc,EACd,UAAe,EACf,cAAmB,EACnB,eAAwB,EACxB,mBAAuB,EACvB,kBAAkB,GACnB,EAAE,eAAe,2CAiKjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemaForm/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAMxE,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gEAAgE;IAChE,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,wDAAwD;AACxD,MAAM,MAAM,aAAa,GACrB,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,GAC9C;IAAE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAA;CAAE,GACpD;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CAAC;AAEnC,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,MAAM,EAAE,UAAU,CAAC;IACnB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzB,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;IACxF;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAiCD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,GAAG,EACH,QAAQ,EACR,MAAW,EACX,QAAgB,EAChB,SAAc,EACd,UAAe,EACf,cAAmB,EACnB,eAAwB,EACxB,mBAAuB,EACvB,kBAAkB,EAClB,KAAK,GACN,EAAE,eAAe,2CAmKjB"}