@dxos/react-ui-form 0.8.3-main.672df60 → 0.8.3-staging.0fa589b
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.
- package/dist/lib/browser/index.mjs +190 -173
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +150 -133
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +190 -173
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/components/ControlSection/ControlSection.d.ts +1 -1
- package/dist/types/src/components/ControlSection/ControlSection.d.ts.map +1 -1
- package/dist/types/src/components/ControlSection/ControlSection.stories.d.ts.map +1 -1
- package/dist/types/src/components/FieldEditor/FieldEditor.d.ts +3 -2
- package/dist/types/src/components/FieldEditor/FieldEditor.d.ts.map +1 -1
- package/dist/types/src/components/FieldEditor/FieldEditor.stories.d.ts +5 -0
- package/dist/types/src/components/FieldEditor/FieldEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/Form/Defaults.d.ts.map +1 -1
- package/dist/types/src/components/Form/Form.d.ts +6 -14
- package/dist/types/src/components/Form/Form.d.ts.map +1 -1
- package/dist/types/src/components/Form/Form.stories.d.ts +2 -2
- package/dist/types/src/components/Form/Form.stories.d.ts.map +1 -1
- package/dist/types/src/components/Form/FormActions.d.ts +3 -1
- package/dist/types/src/components/Form/FormActions.d.ts.map +1 -1
- package/dist/types/src/components/Form/FormContent.d.ts +30 -3
- package/dist/types/src/components/Form/FormContent.d.ts.map +1 -1
- package/dist/types/src/components/Form/Input.d.ts +6 -4
- package/dist/types/src/components/Form/Input.d.ts.map +1 -1
- package/dist/types/src/components/Form/RefField.d.ts.map +1 -1
- package/dist/types/src/components/Form/custom/GeoPointInput.d.ts.map +1 -1
- package/dist/types/src/components/Form/custom/SelectOptionsInput.d.ts.map +1 -1
- package/dist/types/src/components/Form/custom/SelectOptionsInput.stories.d.ts.map +1 -1
- package/dist/types/src/components/Form/custom/TupleInput.d.ts.map +1 -1
- package/dist/types/src/components/ViewEditor/ViewEditor.d.ts +3 -2
- package/dist/types/src/components/ViewEditor/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/components/ViewEditor/ViewEditor.stories.d.ts +7 -0
- package/dist/types/src/components/ViewEditor/ViewEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +3 -1
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/package.json +28 -26
- package/src/components/ControlSection/ControlSection.stories.tsx +15 -3
- package/src/components/ControlSection/ControlSection.tsx +11 -9
- package/src/components/FieldEditor/FieldEditor.stories.tsx +25 -5
- package/src/components/FieldEditor/FieldEditor.test.tsx +21 -13
- package/src/components/FieldEditor/FieldEditor.tsx +11 -2
- package/src/components/Form/ArrayField.tsx +1 -1
- package/src/components/Form/Defaults.tsx +5 -25
- package/src/components/Form/Form.stories.tsx +5 -5
- package/src/components/Form/Form.tsx +44 -49
- package/src/components/Form/FormActions.tsx +17 -2
- package/src/components/Form/FormContent.tsx +46 -46
- package/src/components/Form/Input.tsx +13 -8
- package/src/components/Form/RefField.tsx +1 -5
- package/src/components/Form/custom/GeoPointInput.tsx +1 -3
- package/src/components/Form/custom/SelectOptionsInput.stories.tsx +7 -5
- package/src/components/Form/custom/SelectOptionsInput.tsx +1 -3
- package/src/components/Form/custom/TupleInput.tsx +1 -3
- package/src/components/ViewEditor/ViewEditor.stories.tsx +25 -9
- package/src/components/ViewEditor/ViewEditor.test.tsx +80 -42
- package/src/components/ViewEditor/ViewEditor.tsx +66 -66
- package/src/components/testing.tsx +12 -7
- package/src/translations.ts +4 -1
package/dist/lib/node/index.cjs
CHANGED
|
@@ -91,6 +91,7 @@ var import_util = require("@dxos/util");
|
|
|
91
91
|
var import_tracking5 = require("@preact-signals/safe-react/tracking");
|
|
92
92
|
var import_react5 = __toESM(require("react"));
|
|
93
93
|
var import_react_ui5 = require("@dxos/react-ui");
|
|
94
|
+
var import_react_ui_stack = require("@dxos/react-ui-stack");
|
|
94
95
|
var import_react_ui_theme3 = require("@dxos/react-ui-theme");
|
|
95
96
|
var import_tracking6 = require("@preact-signals/safe-react/tracking");
|
|
96
97
|
var import_react6 = __toESM(require("react"));
|
|
@@ -109,10 +110,12 @@ var import_react8 = __toESM(require("react"));
|
|
|
109
110
|
var import_react_ui8 = require("@dxos/react-ui");
|
|
110
111
|
var import_tracking9 = require("@preact-signals/safe-react/tracking");
|
|
111
112
|
var import_react9 = __toESM(require("react"));
|
|
112
|
-
var
|
|
113
|
+
var import_react_ui_stack2 = require("@dxos/react-ui-stack");
|
|
113
114
|
var import_tracking10 = require("@preact-signals/safe-react/tracking");
|
|
114
115
|
var import_react10 = __toESM(require("react"));
|
|
115
116
|
var import_react_ui9 = require("@dxos/react-ui");
|
|
117
|
+
var import_react_ui_stack3 = require("@dxos/react-ui-stack");
|
|
118
|
+
var import_react_ui_theme6 = require("@dxos/react-ui-theme");
|
|
116
119
|
var import_tracking11 = require("@preact-signals/safe-react/tracking");
|
|
117
120
|
var import_react11 = __toESM(require("react"));
|
|
118
121
|
var import_debug = require("@dxos/debug");
|
|
@@ -172,6 +175,7 @@ var import_echo_schema11 = require("@dxos/echo-schema");
|
|
|
172
175
|
var import_invariant3 = require("@dxos/invariant");
|
|
173
176
|
var import_react_ui12 = require("@dxos/react-ui");
|
|
174
177
|
var import_react_ui_list2 = require("@dxos/react-ui-list");
|
|
178
|
+
var import_react_ui_stack4 = require("@dxos/react-ui-stack");
|
|
175
179
|
var import_react_ui_theme9 = require("@dxos/react-ui-theme");
|
|
176
180
|
var import_schema5 = require("@dxos/schema");
|
|
177
181
|
var translationKey = "react-ui-form";
|
|
@@ -203,6 +207,7 @@ var translations_default = [
|
|
|
203
207
|
"format date-time": "DateTime",
|
|
204
208
|
"format did": "DID",
|
|
205
209
|
"format duration": "Duration",
|
|
210
|
+
"format dxn": "DXN",
|
|
206
211
|
"format email": "Email",
|
|
207
212
|
"format formula": "Formula",
|
|
208
213
|
"format hostname": "Hostname",
|
|
@@ -215,12 +220,14 @@ var translations_default = [
|
|
|
215
220
|
"format regex": "RegExp",
|
|
216
221
|
"format string": "String",
|
|
217
222
|
"format single-select": "Select",
|
|
223
|
+
"format multi-select": "Multi-select",
|
|
218
224
|
"format text": "Long text",
|
|
219
225
|
"format time": "Time",
|
|
220
226
|
"format timestamp": "Timestamp",
|
|
221
227
|
"format user": "User",
|
|
222
228
|
"format number": "Number",
|
|
223
229
|
"format uri": "URI",
|
|
230
|
+
"format url": "URL",
|
|
224
231
|
"format uuid": "UUID",
|
|
225
232
|
// Placeholders.
|
|
226
233
|
"placeholder latitude": "Latitude",
|
|
@@ -233,7 +240,7 @@ var translations_default = [
|
|
|
233
240
|
"select option add": "Add option",
|
|
234
241
|
// System schema message.
|
|
235
242
|
"system schema title": "System Schema",
|
|
236
|
-
"system schema description": "This
|
|
243
|
+
"system schema description": "This is a system schema and cannot be modified."
|
|
237
244
|
}
|
|
238
245
|
}
|
|
239
246
|
}
|
|
@@ -289,7 +296,7 @@ var ControlPage = ({ children, classNames, ...props }) => {
|
|
|
289
296
|
try {
|
|
290
297
|
return /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
291
298
|
role: "none",
|
|
292
|
-
className: (0, import_react_ui_theme2.mx)("pli-
|
|
299
|
+
className: (0, import_react_ui_theme2.mx)("pli-cardSpacingInline", classNames),
|
|
293
300
|
...props
|
|
294
301
|
}, children);
|
|
295
302
|
} finally {
|
|
@@ -312,9 +319,9 @@ var ControlSectionHeading = ({ title, description }) => {
|
|
|
312
319
|
try {
|
|
313
320
|
const { t } = (0, import_react_ui2.useTranslation)(translationKey);
|
|
314
321
|
return /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement("h2", {
|
|
315
|
-
className: "pli-
|
|
322
|
+
className: "pli-trimMd container-max-width text-xl mbs-trimLg mbe-trimMd"
|
|
316
323
|
}, (0, import_react_ui2.toLocalizedString)(title, t)), description && /* @__PURE__ */ import_react2.default.createElement("p", {
|
|
317
|
-
className: "pli-
|
|
324
|
+
className: "pli-trimMd mlb-trimMd container-max-width text-description"
|
|
318
325
|
}, (0, import_react_ui2.toLocalizedString)(description, t)));
|
|
319
326
|
} finally {
|
|
320
327
|
_effect.f();
|
|
@@ -339,7 +346,7 @@ var ControlGroup = ({ children, classNames }) => {
|
|
|
339
346
|
try {
|
|
340
347
|
return /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
341
348
|
role: "none",
|
|
342
|
-
className: (0, import_react_ui_theme2.mx)("group container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content] gap-
|
|
349
|
+
className: (0, import_react_ui_theme2.mx)("group container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content] gap-trimMd", classNames)
|
|
343
350
|
}, children);
|
|
344
351
|
} finally {
|
|
345
352
|
_effect.f();
|
|
@@ -350,15 +357,15 @@ var ControlFrame = ({ children }) => {
|
|
|
350
357
|
try {
|
|
351
358
|
return /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
352
359
|
role: "none",
|
|
353
|
-
className: "p-
|
|
360
|
+
className: "p-trimMd container-max-width grid grid-cols-1 md:grid-cols-[1fr_1fr] gap-trimSm md:gap-trimMd border border-separator rounded-md"
|
|
354
361
|
}, children);
|
|
355
362
|
} finally {
|
|
356
363
|
_effect.f();
|
|
357
364
|
}
|
|
358
365
|
};
|
|
359
|
-
var controlItemClasses = "
|
|
366
|
+
var controlItemClasses = "pli-trimMd plb-trimMd container-max-width grid md:col-span-2 grid-cols-subgrid items-center gap-trimSm border border-separator rounded-md *:first:!mbs-0 *:last:!mbe-0";
|
|
360
367
|
var controlItemTitleClasses = "text-lg font-normal";
|
|
361
|
-
var controlItemDescriptionClasses = "text-base mlb-
|
|
368
|
+
var controlItemDescriptionClasses = "text-base mlb-trimSm md:mbe-0 text-description";
|
|
362
369
|
var ControlItem = ({ title, description, children }) => {
|
|
363
370
|
var _effect = (0, import_tracking2.useSignals)();
|
|
364
371
|
try {
|
|
@@ -403,19 +410,23 @@ var ControlFrameItem = ({ title, description, children }) => {
|
|
|
403
410
|
}, /* @__PURE__ */ import_react2.default.createElement("h3", {
|
|
404
411
|
className: "text-lg mbe-2"
|
|
405
412
|
}, (0, import_react_ui2.toLocalizedString)(title, t)), description && /* @__PURE__ */ import_react2.default.createElement("p", {
|
|
406
|
-
className: "mlb-
|
|
413
|
+
className: "mlb-trimSm md:mbe-0 text-description"
|
|
407
414
|
}, (0, import_react_ui2.toLocalizedString)(description, t)), children);
|
|
408
415
|
} finally {
|
|
409
416
|
_effect.f();
|
|
410
417
|
}
|
|
411
418
|
};
|
|
412
|
-
var InputHeader = ({
|
|
419
|
+
var InputHeader = ({ error, label, readonly }) => {
|
|
413
420
|
var _effect = (0, import_tracking5.useSignals)();
|
|
414
421
|
try {
|
|
422
|
+
const Label = readonly ? "span" : import_react_ui5.Input.Label;
|
|
423
|
+
const labelProps = readonly ? {} : {
|
|
424
|
+
classNames: "!mlb-0"
|
|
425
|
+
};
|
|
415
426
|
return /* @__PURE__ */ import_react5.default.createElement("div", {
|
|
416
427
|
role: "none",
|
|
417
|
-
className: "flex justify-between items-center
|
|
418
|
-
},
|
|
428
|
+
className: (0, import_react_ui_theme3.mx)("flex justify-between items-center", import_react_ui_stack.labelSpacing)
|
|
429
|
+
}, /* @__PURE__ */ import_react5.default.createElement(Label, labelProps, label), error && /* @__PURE__ */ import_react5.default.createElement(import_react_ui5.Tooltip.Trigger, {
|
|
419
430
|
asChild: true,
|
|
420
431
|
content: error,
|
|
421
432
|
side: "bottom"
|
|
@@ -477,8 +488,9 @@ var GeoPointInput = ({ type, label, disabled, getStatus, getValue: getValue3, on
|
|
|
477
488
|
return /* @__PURE__ */ import_react4.default.createElement(import_react_ui4.Input.Root, {
|
|
478
489
|
validationValence: status
|
|
479
490
|
}, /* @__PURE__ */ import_react4.default.createElement(InputHeader, {
|
|
480
|
-
error
|
|
481
|
-
|
|
491
|
+
error,
|
|
492
|
+
label
|
|
493
|
+
}), /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
482
494
|
role: "none",
|
|
483
495
|
className: "grid grid-cols-2 gap-2"
|
|
484
496
|
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui4.Input.TextInput, {
|
|
@@ -614,8 +626,9 @@ var SelectOptionInput = ({ type, label, disabled, getStatus, getValue: getValue3
|
|
|
614
626
|
return /* @__PURE__ */ import_react6.default.createElement(import_react_ui6.Input.Root, {
|
|
615
627
|
validationValence: status
|
|
616
628
|
}, /* @__PURE__ */ import_react6.default.createElement(InputHeader, {
|
|
617
|
-
error
|
|
618
|
-
|
|
629
|
+
error,
|
|
630
|
+
label
|
|
631
|
+
}), /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
619
632
|
role: "none"
|
|
620
633
|
}, options && /* @__PURE__ */ import_react6.default.createElement(import_react_ui_list.List.Root, {
|
|
621
634
|
items: options,
|
|
@@ -697,8 +710,9 @@ var TupleInput = ({ binding, type, label, disabled, getStatus, getValue: getValu
|
|
|
697
710
|
return /* @__PURE__ */ import_react7.default.createElement(import_react_ui7.Input.Root, {
|
|
698
711
|
validationValence: status
|
|
699
712
|
}, /* @__PURE__ */ import_react7.default.createElement(InputHeader, {
|
|
700
|
-
error
|
|
701
|
-
|
|
713
|
+
error,
|
|
714
|
+
label
|
|
715
|
+
}), /* @__PURE__ */ import_react7.default.createElement("div", {
|
|
702
716
|
className: (0, import_react_ui_theme5.mx)("grid gap-2", gridCols[binding.length - 1])
|
|
703
717
|
}, binding.map((prop) => /* @__PURE__ */ import_react7.default.createElement(import_react_ui7.Input.TextInput, {
|
|
704
718
|
key: prop,
|
|
@@ -722,8 +736,9 @@ var TextInput = ({ type, label, inputOnly, disabled, placeholder, getStatus, get
|
|
|
722
736
|
return disabled && !getValue3() ? null : disabled && inputOnly ? /* @__PURE__ */ import_react8.default.createElement("p", null, getValue3() ?? "") : /* @__PURE__ */ import_react8.default.createElement(import_react_ui8.Input.Root, {
|
|
723
737
|
validationValence: status
|
|
724
738
|
}, !inputOnly && /* @__PURE__ */ import_react8.default.createElement(InputHeader, {
|
|
725
|
-
error
|
|
726
|
-
|
|
739
|
+
error,
|
|
740
|
+
label
|
|
741
|
+
}), disabled ? /* @__PURE__ */ import_react8.default.createElement("p", null, getValue3() ?? "") : /* @__PURE__ */ import_react8.default.createElement(import_react_ui8.Input.TextInput, {
|
|
727
742
|
disabled,
|
|
728
743
|
placeholder,
|
|
729
744
|
value: getValue3() ?? "",
|
|
@@ -741,8 +756,9 @@ var NumberInput = ({ type, label, inputOnly, disabled, placeholder, getStatus, g
|
|
|
741
756
|
return disabled && !getValue3() ? null : disabled && inputOnly ? /* @__PURE__ */ import_react8.default.createElement("p", null, getValue3() ?? "") : /* @__PURE__ */ import_react8.default.createElement(import_react_ui8.Input.Root, {
|
|
742
757
|
validationValence: status
|
|
743
758
|
}, !inputOnly && /* @__PURE__ */ import_react8.default.createElement(InputHeader, {
|
|
744
|
-
error
|
|
745
|
-
|
|
759
|
+
error,
|
|
760
|
+
label
|
|
761
|
+
}), disabled ? /* @__PURE__ */ import_react8.default.createElement("p", null, getValue3() ?? "") : /* @__PURE__ */ import_react8.default.createElement(import_react_ui8.Input.TextInput, {
|
|
746
762
|
type: "number",
|
|
747
763
|
disabled,
|
|
748
764
|
placeholder,
|
|
@@ -763,8 +779,9 @@ var BooleanInput = ({ type, label, inputOnly, getStatus, getValue: getValue3, on
|
|
|
763
779
|
return /* @__PURE__ */ import_react8.default.createElement(import_react_ui8.Input.Root, {
|
|
764
780
|
validationValence: status
|
|
765
781
|
}, !inputOnly && /* @__PURE__ */ import_react8.default.createElement(InputHeader, {
|
|
766
|
-
error
|
|
767
|
-
|
|
782
|
+
error,
|
|
783
|
+
label
|
|
784
|
+
}), disabled ? /* @__PURE__ */ import_react8.default.createElement("p", null, t(checked ? "boolean input true value" : "boolean input false value")) : /* @__PURE__ */ import_react8.default.createElement(import_react_ui8.Input.Switch, {
|
|
768
785
|
checked,
|
|
769
786
|
onCheckedChange: (value) => onValueChange(type, value)
|
|
770
787
|
}), inputOnly && /* @__PURE__ */ import_react8.default.createElement(import_react_ui8.Input.DescriptionAndValidation, null, error));
|
|
@@ -784,8 +801,9 @@ var SelectInput = ({ type, label, inputOnly, disabled, placeholder, options, get
|
|
|
784
801
|
return disabled && !value ? null : /* @__PURE__ */ import_react8.default.createElement(import_react_ui8.Input.Root, {
|
|
785
802
|
validationValence: status
|
|
786
803
|
}, !inputOnly && /* @__PURE__ */ import_react8.default.createElement(InputHeader, {
|
|
787
|
-
error
|
|
788
|
-
|
|
804
|
+
error,
|
|
805
|
+
label
|
|
806
|
+
}), disabled ? /* @__PURE__ */ import_react8.default.createElement("p", null, options?.find(({ value: optionValue }) => optionValue === value)?.label ?? String(value)) : /* @__PURE__ */ import_react8.default.createElement(import_react_ui8.Select.Root, {
|
|
789
807
|
value,
|
|
790
808
|
onValueChange: handleValueChange
|
|
791
809
|
}, /* @__PURE__ */ import_react8.default.createElement(import_react_ui8.Select.TriggerButton, {
|
|
@@ -829,8 +847,9 @@ var MarkdownInput = ({ type, label, inputOnly, disabled, placeholder, getStatus,
|
|
|
829
847
|
return /* @__PURE__ */ import_react8.default.createElement(import_react_ui8.Input.Root, {
|
|
830
848
|
validationValence: status
|
|
831
849
|
}, !inputOnly && /* @__PURE__ */ import_react8.default.createElement(InputHeader, {
|
|
832
|
-
error
|
|
833
|
-
|
|
850
|
+
error,
|
|
851
|
+
label
|
|
852
|
+
}), disabled ? /* @__PURE__ */ import_react8.default.createElement("p", null, getValue3() ?? "") : /* @__PURE__ */ import_react8.default.createElement(import_react_ui8.Input.TextArea, {
|
|
834
853
|
ref: textareaRef,
|
|
835
854
|
disabled,
|
|
836
855
|
placeholder,
|
|
@@ -1182,14 +1201,14 @@ var FormProvider = ({ children, formRef, autoSave, ...formOptions }) => {
|
|
|
1182
1201
|
_effect.f();
|
|
1183
1202
|
}
|
|
1184
1203
|
};
|
|
1185
|
-
var FormActions = ({ readonly, onCancel }) => {
|
|
1204
|
+
var FormActions = ({ readonly, onCancel, outerSpacing = true }) => {
|
|
1186
1205
|
var _effect = (0, import_tracking10.useSignals)();
|
|
1187
1206
|
try {
|
|
1188
1207
|
const { t } = (0, import_react_ui9.useTranslation)(translationKey);
|
|
1189
1208
|
const { canSave, handleSave } = useFormContext();
|
|
1190
1209
|
return /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
1191
1210
|
role: "none",
|
|
1192
|
-
className: "flex [&_button]:grow gap-1
|
|
1211
|
+
className: (0, import_react_ui_theme6.mx)(outerSpacing === "scroll-fields" ? "pli-cardSpacingInline mbe-cardSpacingBlock" : outerSpacing ? import_react_ui_stack3.cardSpacing : "mbs-cardSpacingBlock", "flex [&_button]:grow gap-1 first:mbs-0")
|
|
1193
1212
|
}, onCancel && !readonly && /* @__PURE__ */ import_react10.default.createElement(import_react_ui9.IconButton, {
|
|
1194
1213
|
"data-testid": "cancel-button",
|
|
1195
1214
|
icon: "ph--x--regular",
|
|
@@ -1549,7 +1568,10 @@ var ArrayField = ({ property, readonly, path, inputProps, Custom, lookupComponen
|
|
|
1549
1568
|
if (!elementType) {
|
|
1550
1569
|
return null;
|
|
1551
1570
|
}
|
|
1552
|
-
return readonly && values.length < 1 ? null : /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(InputHeader,
|
|
1571
|
+
return readonly && values.length < 1 ? null : /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(InputHeader, {
|
|
1572
|
+
readonly: true,
|
|
1573
|
+
label
|
|
1574
|
+
}), /* @__PURE__ */ import_react16.default.createElement("div", {
|
|
1553
1575
|
role: "none",
|
|
1554
1576
|
className: readonly ? "flex flex-wrap gap-1 mlb-1" : values.length > 0 ? "grid gap-1 grid-cols-[1fr_min-content] mlb-1" : "hidden"
|
|
1555
1577
|
}, values.map((_value, index) => {
|
|
@@ -1681,8 +1703,9 @@ var RefField = ({ type, label, disabled, placeholder, inputOnly, array, ast, get
|
|
|
1681
1703
|
return disabled && items.length < 1 ? null : /* @__PURE__ */ import_react17.default.createElement(import_react_ui11.Input.Root, {
|
|
1682
1704
|
validationValence: status
|
|
1683
1705
|
}, !inputOnly && /* @__PURE__ */ import_react17.default.createElement(InputHeader, {
|
|
1684
|
-
error
|
|
1685
|
-
|
|
1706
|
+
error,
|
|
1707
|
+
label
|
|
1708
|
+
}), /* @__PURE__ */ import_react17.default.createElement("div", {
|
|
1686
1709
|
"data-no-submit": true
|
|
1687
1710
|
}, disabled ? items.length < 1 ? /* @__PURE__ */ import_react17.default.createElement("p", {
|
|
1688
1711
|
className: (0, import_react_ui_theme8.mx)(import_react_ui_theme8.descriptionText, "mbe-2")
|
|
@@ -1762,8 +1785,8 @@ var getInputComponent = (type, format) => {
|
|
|
1762
1785
|
var FormField = ({ property, path, readonly, inline, onQueryRefOptions, lookupComponent, Custom }) => {
|
|
1763
1786
|
var _effect = (0, import_tracking12.useSignals)();
|
|
1764
1787
|
try {
|
|
1765
|
-
const inputProps = useInputProps(path);
|
|
1766
1788
|
const { ast, name, type, format, title, description, options, examples, array } = property;
|
|
1789
|
+
const inputProps = useInputProps(path);
|
|
1767
1790
|
const label = (0, import_react15.useMemo)(() => title ?? (0, import_effect4.pipe)(name, import_String.capitalize), [
|
|
1768
1791
|
title,
|
|
1769
1792
|
name
|
|
@@ -1856,7 +1879,7 @@ var FormField = ({ property, path, readonly, inline, onQueryRefOptions, lookupCo
|
|
|
1856
1879
|
const typeLiteral = baseNode ? (0, import_effect5.getDiscriminatedType)(baseNode, inputProps.getValue()) : (0, import_effect5.findNode)(ast, import_effect4.SchemaAST.isTypeLiteral);
|
|
1857
1880
|
if (typeLiteral) {
|
|
1858
1881
|
return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, !inline && /* @__PURE__ */ import_react15.default.createElement("h3", {
|
|
1859
|
-
className: "text-lg
|
|
1882
|
+
className: (0, import_react_ui_theme7.mx)("text-lg mlb-inputSpacingBlock first:mbs-0")
|
|
1860
1883
|
}, label), /* @__PURE__ */ import_react15.default.createElement(FormFields, {
|
|
1861
1884
|
schema: import_effect4.Schema.make(typeLiteral),
|
|
1862
1885
|
path,
|
|
@@ -1872,7 +1895,7 @@ var FormField = ({ property, path, readonly, inline, onQueryRefOptions, lookupCo
|
|
|
1872
1895
|
_effect.f();
|
|
1873
1896
|
}
|
|
1874
1897
|
};
|
|
1875
|
-
var FormFields = ({ classNames,
|
|
1898
|
+
var FormFields = /* @__PURE__ */ (0, import_react15.forwardRef)(({ classNames, testId, schema, path, filter, sort, readonly, lookupComponent, Custom, onQueryRefOptions }, forwardRef2) => {
|
|
1876
1899
|
var _effect = (0, import_tracking12.useSignals)();
|
|
1877
1900
|
try {
|
|
1878
1901
|
const values = useFormValues(path);
|
|
@@ -1886,35 +1909,33 @@ var FormFields = ({ classNames, Custom, schema, path, filter, sort, readonly, lo
|
|
|
1886
1909
|
filter,
|
|
1887
1910
|
sort
|
|
1888
1911
|
]);
|
|
1889
|
-
return (
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
path
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
}).filter(import_util4.isNotFalsy))
|
|
1908
|
-
);
|
|
1912
|
+
return /* @__PURE__ */ import_react15.default.createElement("div", {
|
|
1913
|
+
role: "form",
|
|
1914
|
+
className: (0, import_react_ui_theme7.mx)("is-full", classNames),
|
|
1915
|
+
ref: forwardRef2
|
|
1916
|
+
}, properties.map((property) => {
|
|
1917
|
+
return /* @__PURE__ */ import_react15.default.createElement(FormField, {
|
|
1918
|
+
key: property.name,
|
|
1919
|
+
property,
|
|
1920
|
+
path: [
|
|
1921
|
+
...path ?? [],
|
|
1922
|
+
property.name
|
|
1923
|
+
],
|
|
1924
|
+
readonly,
|
|
1925
|
+
onQueryRefOptions,
|
|
1926
|
+
lookupComponent,
|
|
1927
|
+
Custom
|
|
1928
|
+
});
|
|
1929
|
+
}).filter(import_util4.isNotFalsy));
|
|
1909
1930
|
} finally {
|
|
1910
1931
|
_effect.f();
|
|
1911
1932
|
}
|
|
1912
|
-
};
|
|
1913
|
-
var Form = ({ classNames,
|
|
1933
|
+
});
|
|
1934
|
+
var Form = ({ classNames, testId, values: initialValues, autoFocus, readonly, autoSave, outerSpacing = true, onCancel, schema, onValuesChanged, onValidate, onSave, ...props }) => {
|
|
1914
1935
|
var _effect = (0, import_tracking9.useSignals)();
|
|
1915
1936
|
try {
|
|
1916
1937
|
const formRef = (0, import_react9.useRef)(null);
|
|
1917
|
-
const
|
|
1938
|
+
const handleValid = (0, import_react9.useMemo)(() => autoSave ? onSave : void 0, [
|
|
1918
1939
|
autoSave,
|
|
1919
1940
|
onSave
|
|
1920
1941
|
]);
|
|
@@ -1935,32 +1956,33 @@ var Form = ({ classNames, schema, values: initialValues, path = [], autoFocus, r
|
|
|
1935
1956
|
initialValues,
|
|
1936
1957
|
onValuesChanged,
|
|
1937
1958
|
onValidate,
|
|
1938
|
-
onValid,
|
|
1959
|
+
onValid: handleValid,
|
|
1939
1960
|
onSave
|
|
1940
1961
|
}, /* @__PURE__ */ import_react9.default.createElement("div", {
|
|
1941
|
-
ref: formRef,
|
|
1942
1962
|
role: "none",
|
|
1943
|
-
className:
|
|
1963
|
+
className: "contents",
|
|
1944
1964
|
"data-testid": testId
|
|
1945
1965
|
}, /* @__PURE__ */ import_react9.default.createElement(FormFields, {
|
|
1946
|
-
|
|
1947
|
-
|
|
1966
|
+
...props,
|
|
1967
|
+
ref: formRef,
|
|
1968
|
+
classNames: [
|
|
1969
|
+
outerSpacing === "blockStart-0" ? "pli-cardSpacingInline mbe-cardSpacingBlock [&>.mbs-inputSpacingBlock:first-child]:!mbs-0" : outerSpacing === "scroll-fields" ? "pli-cardSpacingInline pbe-cardSpacingBlock" : outerSpacing ? import_react_ui_stack2.cardSpacing : false,
|
|
1970
|
+
outerSpacing === "scroll-fields" && import_react_ui_stack2.cardDialogOverflow,
|
|
1971
|
+
classNames
|
|
1972
|
+
],
|
|
1948
1973
|
readonly,
|
|
1949
|
-
|
|
1950
|
-
sort,
|
|
1951
|
-
onQueryRefOptions,
|
|
1952
|
-
lookupComponent,
|
|
1953
|
-
Custom
|
|
1974
|
+
schema
|
|
1954
1975
|
}), (onCancel || onSave) && !autoSave && /* @__PURE__ */ import_react9.default.createElement(FormActions, {
|
|
1976
|
+
readonly,
|
|
1955
1977
|
onCancel,
|
|
1956
|
-
|
|
1978
|
+
outerSpacing
|
|
1957
1979
|
})));
|
|
1958
1980
|
} finally {
|
|
1959
1981
|
_effect.f();
|
|
1960
1982
|
}
|
|
1961
1983
|
};
|
|
1962
1984
|
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-form/src/components/FieldEditor/FieldEditor.tsx";
|
|
1963
|
-
var FieldEditor = ({ view, projection, field, registry, onSave, onCancel }) => {
|
|
1985
|
+
var FieldEditor = ({ view, projection, field, registry, onSave, onCancel, outerSpacing }) => {
|
|
1964
1986
|
var _effect = (0, import_tracking3.useSignals)();
|
|
1965
1987
|
try {
|
|
1966
1988
|
const { t } = (0, import_react_ui3.useTranslation)(translationKey);
|
|
@@ -2095,7 +2117,7 @@ var FieldEditor = ({ view, projection, field, registry, onSave, onCancel }) => {
|
|
|
2095
2117
|
props
|
|
2096
2118
|
}, {
|
|
2097
2119
|
F: __dxlog_file4,
|
|
2098
|
-
L:
|
|
2120
|
+
L: 183,
|
|
2099
2121
|
S: void 0,
|
|
2100
2122
|
C: (f, a) => f(...a)
|
|
2101
2123
|
});
|
|
@@ -2115,14 +2137,15 @@ var FieldEditor = ({ view, projection, field, registry, onSave, onCancel }) => {
|
|
|
2115
2137
|
onValidate: handleValidate,
|
|
2116
2138
|
onSave: handleSave,
|
|
2117
2139
|
onCancel: handleCancel,
|
|
2118
|
-
Custom: custom
|
|
2140
|
+
Custom: custom,
|
|
2141
|
+
outerSpacing
|
|
2119
2142
|
});
|
|
2120
2143
|
} finally {
|
|
2121
2144
|
_effect.f();
|
|
2122
2145
|
}
|
|
2123
2146
|
};
|
|
2124
2147
|
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-form/src/components/ViewEditor/ViewEditor.tsx";
|
|
2125
|
-
var grid = "grid grid-cols-[
|
|
2148
|
+
var grid = "grid grid-cols-[32px_1fr_32px_32px] min-bs-[2.5rem]";
|
|
2126
2149
|
var ViewMetaSchema = import_effect12.Schema.Struct({
|
|
2127
2150
|
name: import_effect12.Schema.String.annotations({
|
|
2128
2151
|
title: "View"
|
|
@@ -2131,7 +2154,7 @@ var ViewMetaSchema = import_effect12.Schema.Struct({
|
|
|
2131
2154
|
title: "Typename"
|
|
2132
2155
|
})
|
|
2133
2156
|
}).pipe(import_effect12.Schema.mutable);
|
|
2134
|
-
var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading = false, onTypenameChanged, onDelete }) => {
|
|
2157
|
+
var ViewEditor = ({ classNames, schema, view, registry, readonly: _readonly, showHeading = false, onTypenameChanged, onDelete, outerSpacing = true }) => {
|
|
2135
2158
|
var _effect = (0, import_tracking15.useSignals)();
|
|
2136
2159
|
try {
|
|
2137
2160
|
const { t } = (0, import_react_ui12.useTranslation)(translationKey);
|
|
@@ -2143,7 +2166,7 @@ var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading =
|
|
|
2143
2166
|
view
|
|
2144
2167
|
]);
|
|
2145
2168
|
const [field, setField] = (0, import_react19.useState)();
|
|
2146
|
-
const
|
|
2169
|
+
const readonly = _readonly || !(0, import_echo_schema11.isMutable)(schema);
|
|
2147
2170
|
const viewValues = (0, import_react19.useMemo)(() => {
|
|
2148
2171
|
return {
|
|
2149
2172
|
name: view.name,
|
|
@@ -2155,20 +2178,20 @@ var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading =
|
|
|
2155
2178
|
view
|
|
2156
2179
|
]);
|
|
2157
2180
|
const handleSelect = (0, import_react19.useCallback)((field2) => {
|
|
2158
|
-
if (
|
|
2181
|
+
if (readonly) {
|
|
2159
2182
|
return;
|
|
2160
2183
|
}
|
|
2161
2184
|
setField((f) => f === field2 ? void 0 : field2);
|
|
2162
2185
|
}, [
|
|
2163
|
-
|
|
2186
|
+
readonly
|
|
2164
2187
|
]);
|
|
2165
2188
|
const handleAdd = (0, import_react19.useCallback)(() => {
|
|
2166
|
-
(0, import_invariant3.invariant)(!
|
|
2189
|
+
(0, import_invariant3.invariant)(!readonly, void 0, {
|
|
2167
2190
|
F: __dxlog_file5,
|
|
2168
|
-
L:
|
|
2191
|
+
L: 92,
|
|
2169
2192
|
S: void 0,
|
|
2170
2193
|
A: [
|
|
2171
|
-
"!
|
|
2194
|
+
"!readonly",
|
|
2172
2195
|
""
|
|
2173
2196
|
]
|
|
2174
2197
|
});
|
|
@@ -2176,15 +2199,16 @@ var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading =
|
|
|
2176
2199
|
setField(field2);
|
|
2177
2200
|
}, [
|
|
2178
2201
|
schema,
|
|
2179
|
-
view
|
|
2202
|
+
view,
|
|
2203
|
+
readonly
|
|
2180
2204
|
]);
|
|
2181
2205
|
const handleUpdate = (0, import_react19.useCallback)(({ name, typename }) => {
|
|
2182
|
-
(0, import_invariant3.invariant)(!
|
|
2206
|
+
(0, import_invariant3.invariant)(!readonly, void 0, {
|
|
2183
2207
|
F: __dxlog_file5,
|
|
2184
|
-
L:
|
|
2208
|
+
L: 99,
|
|
2185
2209
|
S: void 0,
|
|
2186
2210
|
A: [
|
|
2187
|
-
"!
|
|
2211
|
+
"!readonly",
|
|
2188
2212
|
""
|
|
2189
2213
|
]
|
|
2190
2214
|
});
|
|
@@ -2192,7 +2216,7 @@ var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading =
|
|
|
2192
2216
|
if (view.name !== name) {
|
|
2193
2217
|
view.name = name;
|
|
2194
2218
|
}
|
|
2195
|
-
if (view.query.typename !== typename && !
|
|
2219
|
+
if (view.query.typename !== typename && !readonly) {
|
|
2196
2220
|
onTypenameChanged?.(typename);
|
|
2197
2221
|
}
|
|
2198
2222
|
});
|
|
@@ -2200,15 +2224,15 @@ var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading =
|
|
|
2200
2224
|
schema,
|
|
2201
2225
|
view,
|
|
2202
2226
|
onTypenameChanged,
|
|
2203
|
-
|
|
2227
|
+
readonly
|
|
2204
2228
|
]);
|
|
2205
2229
|
const handleDelete = (0, import_react19.useCallback)((fieldId) => {
|
|
2206
|
-
(0, import_invariant3.invariant)(!
|
|
2230
|
+
(0, import_invariant3.invariant)(!readonly, void 0, {
|
|
2207
2231
|
F: __dxlog_file5,
|
|
2208
|
-
L:
|
|
2232
|
+
L: 115,
|
|
2209
2233
|
S: void 0,
|
|
2210
2234
|
A: [
|
|
2211
|
-
"!
|
|
2235
|
+
"!readonly",
|
|
2212
2236
|
""
|
|
2213
2237
|
]
|
|
2214
2238
|
});
|
|
@@ -2219,15 +2243,16 @@ var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading =
|
|
|
2219
2243
|
}, [
|
|
2220
2244
|
schema,
|
|
2221
2245
|
field,
|
|
2222
|
-
onDelete
|
|
2246
|
+
onDelete,
|
|
2247
|
+
readonly
|
|
2223
2248
|
]);
|
|
2224
2249
|
const handleMove = (0, import_react19.useCallback)((fromIndex, toIndex) => {
|
|
2225
|
-
(0, import_invariant3.invariant)(!
|
|
2250
|
+
(0, import_invariant3.invariant)(!readonly, void 0, {
|
|
2226
2251
|
F: __dxlog_file5,
|
|
2227
|
-
L:
|
|
2252
|
+
L: 127,
|
|
2228
2253
|
S: void 0,
|
|
2229
2254
|
A: [
|
|
2230
|
-
"!
|
|
2255
|
+
"!readonly",
|
|
2231
2256
|
""
|
|
2232
2257
|
]
|
|
2233
2258
|
});
|
|
@@ -2239,7 +2264,8 @@ var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading =
|
|
|
2239
2264
|
view.fields = fields;
|
|
2240
2265
|
}, [
|
|
2241
2266
|
schema,
|
|
2242
|
-
view.fields
|
|
2267
|
+
view.fields,
|
|
2268
|
+
readonly
|
|
2243
2269
|
]);
|
|
2244
2270
|
const handleClose = (0, import_react19.useCallback)(() => setField(void 0), []);
|
|
2245
2271
|
const hiddenProperties = projection.getHiddenProperties();
|
|
@@ -2257,36 +2283,30 @@ var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading =
|
|
|
2257
2283
|
]);
|
|
2258
2284
|
return /* @__PURE__ */ import_react19.default.createElement("div", {
|
|
2259
2285
|
role: "none",
|
|
2260
|
-
className: (0, import_react_ui_theme9.mx)(
|
|
2261
|
-
},
|
|
2286
|
+
className: (0, import_react_ui_theme9.mx)(classNames)
|
|
2287
|
+
}, readonly && /* @__PURE__ */ import_react19.default.createElement("div", {
|
|
2262
2288
|
role: "none",
|
|
2263
|
-
className: "
|
|
2264
|
-
}, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.
|
|
2265
|
-
valence: "
|
|
2266
|
-
|
|
2267
|
-
}, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.Message.Title, null, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.Icon, {
|
|
2268
|
-
icon: "ph--info--regular",
|
|
2269
|
-
size: 5,
|
|
2270
|
-
classNames: "inline"
|
|
2271
|
-
}), " ", t("system schema title")), /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.Message.Body, null, t("system schema description")))), /* @__PURE__ */ import_react19.default.createElement(Form, {
|
|
2289
|
+
className: (0, import_react_ui_theme9.mx)("is-full", outerSpacing && "plb-cardSpacingBlock pli-cardSpacingInline")
|
|
2290
|
+
}, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.Callout.Root, {
|
|
2291
|
+
valence: "info"
|
|
2292
|
+
}, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.Callout.Title, null, t("system schema description")))), /* @__PURE__ */ import_react19.default.createElement(Form, {
|
|
2272
2293
|
autoSave: true,
|
|
2273
2294
|
schema: ViewMetaSchema,
|
|
2274
2295
|
values: viewValues,
|
|
2296
|
+
readonly,
|
|
2275
2297
|
onSave: handleUpdate,
|
|
2276
|
-
|
|
2298
|
+
outerSpacing
|
|
2277
2299
|
}), /* @__PURE__ */ import_react19.default.createElement("div", {
|
|
2278
2300
|
role: "none",
|
|
2279
|
-
className: "
|
|
2280
|
-
}, /* @__PURE__ */ import_react19.default.createElement("div", {
|
|
2281
|
-
role: "none",
|
|
2282
|
-
className: "p-2"
|
|
2301
|
+
className: outerSpacing ? import_react_ui_stack4.cardSpacing : "mlb-cardSpacingBlock"
|
|
2283
2302
|
}, /* @__PURE__ */ import_react19.default.createElement("label", {
|
|
2284
2303
|
className: (0, import_react_ui_theme9.mx)(import_react_ui_theme9.inputTextLabel)
|
|
2285
|
-
}, t("fields label"))
|
|
2304
|
+
}, t("fields label")), /* @__PURE__ */ import_react19.default.createElement(import_react_ui_list2.List.Root, {
|
|
2286
2305
|
items: view.fields,
|
|
2287
2306
|
isItem: import_effect12.Schema.is(import_schema5.FieldSchema),
|
|
2288
2307
|
getId: (field2) => field2.id,
|
|
2289
|
-
|
|
2308
|
+
readonly,
|
|
2309
|
+
onMove: readonly ? void 0 : handleMove
|
|
2290
2310
|
}, ({ items: fields }) => /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, showHeading && /* @__PURE__ */ import_react19.default.createElement("div", {
|
|
2291
2311
|
role: "heading",
|
|
2292
2312
|
className: grid
|
|
@@ -2294,41 +2314,38 @@ var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading =
|
|
|
2294
2314
|
className: "flex items-center text-sm"
|
|
2295
2315
|
}, t("field path label"))), /* @__PURE__ */ import_react19.default.createElement("div", {
|
|
2296
2316
|
role: "list",
|
|
2297
|
-
className: "flex flex-col
|
|
2317
|
+
className: "flex flex-col is-full"
|
|
2298
2318
|
}, fields?.map((field2) => /* @__PURE__ */ import_react19.default.createElement(import_react_ui_list2.List.Item, {
|
|
2299
2319
|
key: field2.id,
|
|
2300
2320
|
item: field2,
|
|
2301
|
-
classNames: (0, import_react_ui_theme9.mx)(grid, import_react_ui_theme9.ghostHover, !
|
|
2321
|
+
classNames: (0, import_react_ui_theme9.mx)(grid, import_react_ui_theme9.ghostHover, "overflow-hidden", !readonly && "cursor-pointer")
|
|
2302
2322
|
}, /* @__PURE__ */ import_react19.default.createElement(import_react_ui_list2.List.ItemDragHandle, null), /* @__PURE__ */ import_react19.default.createElement(import_react_ui_list2.List.ItemTitle, {
|
|
2303
2323
|
onClick: () => handleSelect(field2)
|
|
2304
|
-
}, field2.path), /* @__PURE__ */ import_react19.default.createElement(
|
|
2305
|
-
|
|
2306
|
-
}, /* @__PURE__ */ import_react19.default.createElement(import_react_ui_list2.List.ItemButton, {
|
|
2324
|
+
}, field2.path), /* @__PURE__ */ import_react19.default.createElement(import_react_ui_list2.List.ItemButton, {
|
|
2325
|
+
"data-testid": "hide-field-button",
|
|
2307
2326
|
icon: "ph--eye-slash--regular",
|
|
2327
|
+
// TDOO(burdon): Is this the correct test?
|
|
2308
2328
|
disabled: view.fields.length <= 1,
|
|
2309
|
-
onClick: () => handleHide(field2.id)
|
|
2310
|
-
|
|
2311
|
-
}), !immutable && /* @__PURE__ */ import_react19.default.createElement(import_react_ui_list2.List.ItemDeleteButton, {
|
|
2312
|
-
icon: "ph--trash--regular",
|
|
2329
|
+
onClick: () => handleHide(field2.id)
|
|
2330
|
+
}), !readonly && /* @__PURE__ */ import_react19.default.createElement(import_react_ui_list2.List.ItemDeleteButton, {
|
|
2313
2331
|
disabled: view.fields.length <= 1,
|
|
2314
2332
|
onClick: () => handleDelete(field2.id)
|
|
2315
|
-
}))))))
|
|
2316
|
-
role: "none",
|
|
2317
|
-
className: "p-2"
|
|
2318
|
-
}, /* @__PURE__ */ import_react19.default.createElement("label", {
|
|
2333
|
+
})))))), hiddenProperties.length > 0 && /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement("label", {
|
|
2319
2334
|
className: (0, import_react_ui_theme9.mx)(import_react_ui_theme9.inputTextLabel)
|
|
2320
|
-
}, t("hidden fields label"))
|
|
2335
|
+
}, t("hidden fields label")), /* @__PURE__ */ import_react19.default.createElement(import_react_ui_list2.List.Root, {
|
|
2321
2336
|
items: hiddenProperties,
|
|
2322
2337
|
isItem: (item) => typeof item === "string",
|
|
2323
2338
|
getId: (property) => property
|
|
2324
2339
|
}, ({ items: properties }) => /* @__PURE__ */ import_react19.default.createElement("div", {
|
|
2325
2340
|
role: "list",
|
|
2326
|
-
className: "flex flex-col
|
|
2341
|
+
className: "flex flex-col is-full"
|
|
2327
2342
|
}, properties?.map((property) => /* @__PURE__ */ import_react19.default.createElement(import_react_ui_list2.List.Item, {
|
|
2328
2343
|
key: property,
|
|
2329
2344
|
item: property,
|
|
2330
|
-
classNames: (0, import_react_ui_theme9.mx)(grid, import_react_ui_theme9.ghostHover, !
|
|
2331
|
-
}, /* @__PURE__ */ import_react19.default.createElement(
|
|
2345
|
+
classNames: (0, import_react_ui_theme9.mx)(grid, import_react_ui_theme9.ghostHover, !readonly && "cursor-pointer")
|
|
2346
|
+
}, /* @__PURE__ */ import_react19.default.createElement(import_react_ui_list2.List.ItemDragHandle, {
|
|
2347
|
+
disabled: true
|
|
2348
|
+
}), /* @__PURE__ */ import_react19.default.createElement(import_react_ui_list2.List.ItemTitle, null, property), /* @__PURE__ */ import_react19.default.createElement(import_react_ui_list2.List.ItemButton, {
|
|
2332
2349
|
icon: "ph--eye--regular",
|
|
2333
2350
|
onClick: () => handleShow(property),
|
|
2334
2351
|
"data-testid": "show-field-button"
|
|
@@ -2341,11 +2358,11 @@ var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading =
|
|
|
2341
2358
|
onSave: handleClose
|
|
2342
2359
|
}), !readonly && !field && /* @__PURE__ */ import_react19.default.createElement("div", {
|
|
2343
2360
|
role: "none",
|
|
2344
|
-
className: "
|
|
2361
|
+
className: outerSpacing ? import_react_ui_stack4.cardSpacing : "mlb-cardSpacingBlock"
|
|
2345
2362
|
}, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.IconButton, {
|
|
2346
2363
|
icon: "ph--plus--regular",
|
|
2347
2364
|
label: t("button add property"),
|
|
2348
|
-
onClick:
|
|
2365
|
+
onClick: readonly ? void 0 : handleAdd,
|
|
2349
2366
|
// TODO(burdon): Show field limit in ux (not tooltip).
|
|
2350
2367
|
disabled: view.fields.length >= import_schema5.VIEW_FIELD_LIMIT,
|
|
2351
2368
|
classNames: "flex is-full"
|