@ai-matrx/records-ui 0.113.32 → 0.113.34

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,30 @@
1
1
  # Changelog — @ai-matrx/records-ui
2
2
 
3
+ ## 0.113.34
4
+
5
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
6
+ `git diff npm/records-ui/v0.113.33..npm/records-ui/v0.113.34 -- apps/shared/records-ui`).
7
+ No source changes intended and no consumer action required.
8
+
9
+ ## 0.113.33
10
+ ### the first page and a person's look come from records
11
+
12
+ `./first-page` (`firstPage.ts`, `firstPageEntity.ts`), `entityQuery.ts`, `groupReads.ts`, the sort halves of
13
+ `gridPage.ts` (`holdsNumbers`, `sortAsFor`, `pageSortFor`), `gridLook.ts`'s `defaultSortOf` and `viewLook.ts`'s look
14
+ doors are re-exports of `@ai-matrx/records/first-page` and `@ai-matrx/records/views`; `firstGridPageRequest`,
15
+ `askTablePageSeed` and every view/look door that reads the presentation are records' one definition with this
16
+ package's grid look bound (`bindFirstPageCodec`, `bindViewCodec`) — no same-name second body remains.
17
+ `MEASURE_LABEL` is checked against the store's summary operations.
18
+
19
+ **Consumer action:** none; same names, same signatures (`DefaultSort` is records' `ColumnSort`).
20
+
21
+ ### HeldChangeDecision names what approving does next
22
+
23
+ New optional prop `approveLabel` (default "Approve"): a host whose approval also moves something on says so —
24
+ Workflow Studio's paused run passes "Approve and continue".
25
+
26
+ **Consumer action:** none (optional prop).
27
+
3
28
  ## 0.113.32
4
29
  ### saved questions come from records/questions
5
30
 
package/dist/index.cjs CHANGED
@@ -1551,6 +1551,7 @@ function fieldTypeLabel(field2) {
1551
1551
  // src/gridPage.ts
1552
1552
  var import_first_page = require("@ai-matrx/records/first-page");
1553
1553
  var import_first_page2 = require("@ai-matrx/records/first-page");
1554
+ var import_data = require("@ai-matrx/records/data");
1554
1555
  function sortRefusal(f) {
1555
1556
  if (!computedOnRead(f)) return null;
1556
1557
  return `${fieldName(f)} is worked out each time it is read, so the store keeps no value to sort the whole table by. Sort by a column it is worked out from.`;
@@ -1563,9 +1564,6 @@ function computedOnRead(f) {
1563
1564
  const kind = String(editorKindFor(f));
1564
1565
  return (f.type === "formula" || kind === "formula" || kind === "lookup" || kind === "rollup") && String(f.compute_on ?? "read") === "read";
1565
1566
  }
1566
- function containsPattern(text) {
1567
- return `(?i)${text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}`;
1568
- }
1569
1567
  var BLANK_VALUE = "__empty__";
1570
1568
  var field = (f) => ({ field: f.id });
1571
1569
  var constant = (value) => ({ const: value });
@@ -1587,7 +1585,7 @@ function clauseFor(f, value, now = /* @__PURE__ */ new Date()) {
1587
1585
  if (kind === "number" || kind === "currency" || kind === "percent" || kind === "checkbox") {
1588
1586
  return `${name} holds numbers, so it is filtered by a range, not by words.`;
1589
1587
  }
1590
- const matches2 = op("matches", field(f), constant(containsPattern(text)));
1588
+ const matches2 = op("matches", field(f), constant((0, import_data.containsPattern)(text)));
1591
1589
  return { rule: value.negated ? not(matches2) : matches2 };
1592
1590
  }
1593
1591
  case "select": {
@@ -50928,10 +50926,14 @@ var import_react295 = require("react");
50928
50926
  var import_react296 = require("@ai-matrx/records/react");
50929
50927
  var import_design_system150 = require("@ai-matrx/design-system");
50930
50928
  var import_jsx_runtime168 = require("react/jsx-runtime");
50931
- function HeldChangeDecision({ dataSource, userId, organizationId, approvalId, onDecided }) {
50932
- return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(import_react296.RecordsProvider, { config: { dataSource, actor: personActor(userId), organizationId }, children: /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(Decision, { approvalId, onDecided }) });
50929
+ function HeldChangeDecision({ dataSource, userId, organizationId, approvalId, onDecided, approveLabel }) {
50930
+ return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(import_react296.RecordsProvider, { config: { dataSource, actor: personActor(userId), organizationId }, children: /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(Decision, { approvalId, onDecided, approveLabel: approveLabel ?? "Approve" }) });
50933
50931
  }
50934
- function Decision({ approvalId, onDecided }) {
50932
+ function Decision({
50933
+ approvalId,
50934
+ onDecided,
50935
+ approveLabel
50936
+ }) {
50935
50937
  const client = (0, import_react296.useRecordsClient)();
50936
50938
  const [may, setMay] = (0, import_react295.useState)(null);
50937
50939
  const [busy, setBusy] = (0, import_react295.useState)(null);
@@ -50961,7 +50963,7 @@ function Decision({ approvalId, onDecided }) {
50961
50963
  if (may === null) return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("p", { className: "text-xs text-muted-foreground", children: "Checking who can decide\u2026" });
50962
50964
  return /* @__PURE__ */ (0, import_jsx_runtime168.jsxs)("div", { className: "flex flex-col gap-1.5", children: [
50963
50965
  may ? /* @__PURE__ */ (0, import_jsx_runtime168.jsxs)("div", { className: "flex gap-2", children: [
50964
- /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(import_design_system150.Button, { type: "button", size: "sm", disabled: busy !== null, onClick: () => void decide(true), children: busy === "approve" ? "Approving\u2026" : "Approve" }),
50966
+ /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(import_design_system150.Button, { type: "button", size: "sm", disabled: busy !== null, onClick: () => void decide(true), children: busy === "approve" ? "Approving\u2026" : approveLabel }),
50965
50967
  /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(import_design_system150.Button, { type: "button", size: "sm", variant: "outline", disabled: busy !== null, onClick: () => void decide(false), children: busy === "refuse" ? "Refusing\u2026" : "Refuse" })
50966
50968
  ] }) : !error && /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("p", { className: "text-xs text-muted-foreground", children: "An owner or admin of this organization decides this." }),
50967
50969
  error ? /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(RefusalLine, { error }) : null