@ai-matrx/design-system 0.19.15 → 0.19.17

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,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.19.17
4
+
5
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
6
+ `git diff npm/design-system/v0.19.16..npm/design-system/v0.19.17 -- apps/shared/design-system`).
7
+ No source changes intended and no consumer action required.
8
+
9
+ ## 0.19.16 — 2026-09-14
10
+
11
+ Adopts `formatCount` from `@ai-matrx/kit/format` for the four rendered counts
12
+ that were spelling `toLocaleString()` by hand (the content-transfer limit line
13
+ and character/token preview, and the data table's selection and loaded-rows
14
+ counters). Same strings, one home: the count lane of `check:package-twins`
15
+ (2026-09-14) is what found them.
16
+
3
17
  ## 0.19.12 — 2026-09-14
4
18
 
5
19
  Alchemy matches the Matrx sidebar: 18px artwork, normal 24-unit viewBox, 1.75 stroke, shell icon colors, compact 32px desktop target and neutral glass treatment. Coarse pointers retain a 44px target. This supersedes the oversized Portal B trial.
@@ -51,6 +51,7 @@ module.exports = __toCommonJS(content_transfer_exports);
51
51
  var React9 = __toESM(require("react"), 1);
52
52
  var import_react_dom = require("react-dom");
53
53
  var import_content_transfer2 = require("@ai-matrx/kit/content-transfer");
54
+ var import_format2 = require("@ai-matrx/kit/format");
54
55
 
55
56
  // src/button.tsx
56
57
  var import_react_slot = require("@radix-ui/react-slot");
@@ -1009,6 +1010,7 @@ var ALCHEMY_COPY_TRANSFORM_SVG = svg(ALCHEMY_GLYPH_PATHS["copy-transform"], ALCH
1009
1010
  // src/content-transfer/matrx-copy.tsx
1010
1011
  var React8 = __toESM(require("react"), 1);
1011
1012
  var import_content_transfer = require("@ai-matrx/kit/content-transfer");
1013
+ var import_format = require("@ai-matrx/kit/format");
1012
1014
  var import_jsx_runtime9 = require("react/jsx-runtime");
1013
1015
  var resolve = (value) => typeof value === "function" ? value() : value;
1014
1016
  var asPayload = (value) => ({
@@ -1502,10 +1504,10 @@ function SourceConfiguration({
1502
1504
  ] }) : null
1503
1505
  ] }),
1504
1506
  /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("p", { children: [
1505
- text.length.toLocaleString(),
1507
+ (0, import_format.formatCount)(text.length),
1506
1508
  " characters \xB7 approximately",
1507
1509
  " ",
1508
- Math.ceil(text.length / 4).toLocaleString(),
1510
+ (0, import_format.formatCount)(Math.ceil(text.length / 4)),
1509
1511
  " tokens"
1510
1512
  ] }),
1511
1513
  error || buildError ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { role: "alert", children: error ?? buildError }) : null
@@ -2124,7 +2126,7 @@ function ContentTransferMenuSession({ source, surface, label, projection, sectio
2124
2126
  void preflight();
2125
2127
  }
2126
2128
  }, children: [
2127
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PopoverTrigger, { asChild: true, children: triggerVariant === "glass" ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(TapTargetButton, { ref: triggerRef, icon: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(AlchemyGlyph, { icon }), tooltip: false, ariaLabel: `Copy, transform or export ${sourceLabel}`, "data-alchemy-trigger": "glass" }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(TapTargetButtonTransparent, { ref: triggerRef, icon: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(AlchemyGlyph, { icon }), tooltip: false, ariaLabel: `Copy, transform or export ${sourceLabel}`, "data-alchemy-trigger": "transparent" }) }),
2129
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PopoverTrigger, { asChild: true, children: triggerVariant === "glass" ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(TapTargetButton, { ref: triggerRef, icon: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(AlchemyGlyph, { icon }), tooltip: false, ariaLabel: `Copy, transform or export ${sourceLabel}`, "data-alchemy-trigger": "glass", disabled }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(TapTargetButtonTransparent, { ref: triggerRef, icon: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(AlchemyGlyph, { icon }), tooltip: false, ariaLabel: `Copy, transform or export ${sourceLabel}`, "data-alchemy-trigger": "transparent", disabled }) }),
2128
2130
  /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(PopoverContent, { align: "end", className: "matrx-alchemy-menu matrx-alchemy-palette", "aria-label": "Alchemy output options", onCloseAutoFocus: () => triggerRef.current?.focus(), children: [
2129
2131
  menuStatus === "loading" ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "matrx-alchemy-palette-status", children: "Inspecting content\u2026" }) : menuStatus !== "idle" ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "matrx-alchemy-error", children: menuStatus }) : null,
2130
2132
  copyAvailable || downloadAvailable ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("section", { className: "matrx-alchemy-output", children: [
@@ -2483,7 +2485,7 @@ function PreparationWorkspace({ restoreFocus, open, state, scopes, onClose, onCh
2483
2485
  const formats = COPIES.filter((f) => supportsBuiltIn(f, state.draft.payload));
2484
2486
  const workspaceAdapters = adapters.filter((adapter) => adapter.supports(state.draft.payload));
2485
2487
  const displayedOmissions = preparedArtifact?.omissions ?? state.draft.omissions;
2486
- const limitText = Object.entries(state.preferences.limits).filter(([, value]) => value != null).map(([key, value]) => `${key.replace(/^max/, "max ")} ${Number(value).toLocaleString()}`).join(" \xB7 ");
2488
+ const limitText = Object.entries(state.preferences.limits).filter(([, value]) => value != null).map(([key, value]) => `${key.replace(/^max/, "max ")} ${(0, import_format2.formatCount)(Number(value))}`).join(" \xB7 ");
2487
2489
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Dialog, { open, onOpenChange: (next) => {
2488
2490
  if (!next) close();
2489
2491
  }, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(DialogContent, { onCloseAutoFocus: (event) => {