@ai-matrx/records-ui 0.105.1 → 0.106.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog — @ai-matrx/records-ui
2
2
 
3
+ ## 0.106.0
4
+
5
+ Duplicate property copies the values (Notion N5): the column menu's "Duplicate property" calls `client.fieldDuplicate` (records 0.79.0) and the copy lands right after the original with every value; the panel it used to open (an empty new column started from the original) is gone from the grid. `FieldEditor`'s `copyOf` prop stays for hosts that want the panel.
6
+
7
+ **Consumer action:** none; install records 0.79.0 with it.
8
+
3
9
  ## 0.105.1
4
10
 
5
11
  Automatic changed-only republish (docs/metadata drift since the last tag — see
package/dist/index.cjs CHANGED
@@ -15352,7 +15352,18 @@ function useMergedGridControls(args) {
15352
15352
  label: "Duplicate property",
15353
15353
  icon: "copy-plus",
15354
15354
  disabledReason: mayStructure ? void 0 : editable ? rights.why("structure") : "Editing is off here.",
15355
- onSelect: () => setDialog({ kind: "insert", anchor: columnId2, side: "right", copyOf: field2 })
15355
+ // DUPLICATE PROPERTY (Notion N5): one door declares the copy right after this column and copies
15356
+ // every record's value into it (`custom.field_duplicate`); nothing to fill in, as in Notion.
15357
+ onSelect: () => {
15358
+ void client.fieldDuplicate({ field_id: field2.id }).then((made) => {
15359
+ if (!made.ok) {
15360
+ notify?.error(`${fieldName(field2)} was not duplicated: ${refusalSentence(made.error)}`);
15361
+ return;
15362
+ }
15363
+ (0, import_react86.tableShapeChanged)(tableId);
15364
+ notify?.success(`${made.data.label} is added.`);
15365
+ });
15366
+ }
15356
15367
  });
15357
15368
  if (summaries) {
15358
15369
  out.push(summaryMenuItem(field2, columnId2 === firstKey, summaries.chosen[columnId2], summaries.operations, (op2) => summaries.choose(columnId2, op2)));
@@ -15699,7 +15710,7 @@ function useMergedGridControls(args) {
15699
15710
  },
15700
15711
  children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_design_system47.DialogContent, { className: "max-h-[85vh] overflow-y-auto sm:max-w-2xl", children: [
15701
15712
  /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_design_system47.DialogHeader, { children: [
15702
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_design_system47.DialogTitle, { children: columnDialog?.kind === "settings" ? `Column settings \xB7 ${fieldName(columnDialog.field)}` : columnDialog?.kind === "insert" && columnDialog.copyOf ? `Duplicate property \xB7 ${fieldName(columnDialog.copyOf)}` : columnDialog?.kind === "insert" && columnDialog.anchor ? `Add column ${columnDialog.side === "left" ? "left" : "right"} of ${fieldOf2(columnDialog.anchor) ? fieldName(fieldOf2(columnDialog.anchor)) : columnDialog.anchor}` : ADD_FIELD_OPEN_LABEL }),
15713
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_design_system47.DialogTitle, { children: columnDialog?.kind === "settings" ? `Column settings \xB7 ${fieldName(columnDialog.field)}` : columnDialog?.kind === "insert" && columnDialog.anchor ? `Add column ${columnDialog.side === "left" ? "left" : "right"} of ${fieldOf2(columnDialog.anchor) ? fieldName(fieldOf2(columnDialog.anchor)) : columnDialog.anchor}` : ADD_FIELD_OPEN_LABEL }),
15703
15714
  /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_design_system47.DialogDescription, { className: "sr-only", children: "Name, type and look" })
15704
15715
  ] }),
15705
15716
  columnDialog?.kind === "settings" ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
@@ -15723,7 +15734,6 @@ function useMergedGridControls(args) {
15723
15734
  FieldEditor,
15724
15735
  {
15725
15736
  tableId,
15726
- ...columnDialog.copyOf ? { copyOf: columnDialog.copyOf } : {},
15727
15737
  onCancel: () => {
15728
15738
  pendingInsert.current = null;
15729
15739
  close();