@ai-matrx/design-system 0.18.14 → 0.18.16

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,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.18.16 — 2026-09-13
4
+
5
+ Sortable table headers now toggle directly between ascending and descending.
6
+ Clearing a sort remains available in the column menu. This fixes the misleading
7
+ first click on a table whose default sort is descending: it now visibly changes
8
+ the row order instead of clearing the sort and leaving already-descending input
9
+ unchanged.
10
+
11
+ ### Consumer action
12
+
13
+ Update to 0.18.16. No host configuration changes are required.
14
+
15
+ ## 0.18.15
16
+
17
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
18
+ `git diff npm/design-system/v0.18.14..npm/design-system/v0.18.15 -- apps/shared/design-system`).
19
+ No source changes intended and no consumer action required.
20
+
3
21
  ## 0.18.14
4
22
 
5
23
  Automatic changed-only republish (docs/metadata drift since the last tag — see
@@ -505,15 +505,18 @@ var structuredPayload = (value) => {
505
505
  );
506
506
  return {
507
507
  kind: "json",
508
- value: (0, import_content_transfer.normalizeTransferJson)({
509
- kind: value.kind,
510
- location: value.location,
511
- description: value.description,
512
- data: value.data,
513
- ...value.summary !== void 0 ? { summary: value.summary } : {},
514
- attributes: clean(value.attributes),
515
- context: clean(value.context)
516
- })
508
+ value: (0, import_content_transfer.normalizeTransferJson)(
509
+ {
510
+ kind: value.kind,
511
+ location: value.location,
512
+ description: value.description,
513
+ data: value.data,
514
+ ...value.summary !== void 0 ? { summary: value.summary } : {},
515
+ attributes: clean(value.attributes),
516
+ context: clean(value.context)
517
+ },
518
+ { omitUndefinedObjectProperties: true }
519
+ )
517
520
  };
518
521
  };
519
522
  var actionDone = (message) => ({
@@ -568,12 +571,16 @@ function MatrxCopyMenuSession(props) {
568
571
  })) : void 0;
569
572
  const json = aiVisible && props.json !== void 0 ? make("json", () => ({
570
573
  kind: "json",
571
- value: (0, import_content_transfer.normalizeTransferJson)(resolve(props.json))
574
+ value: (0, import_content_transfer.normalizeTransferJson)(resolve(props.json), {
575
+ omitUndefinedObjectProperties: true
576
+ })
572
577
  })) : void 0;
573
578
  const agent = aiVisible && props.agent !== void 0 ? make("agent", () => asPayload(resolve(props.agent))) : void 0;
574
579
  const structuredAgent = aiVisible && props.agent !== void 0 ? make("structured-agent", () => structuredPayload(resolve(props.agent))) : void 0;
575
580
  const table = (exportVisible || props.primarySource === "table") && props.export?.sheetRows ? make("rows", () => {
576
- const value = (0, import_content_transfer.normalizeTransferJson)(props.export.sheetRows());
581
+ const value = (0, import_content_transfer.normalizeTransferJson)(props.export.sheetRows(), {
582
+ omitUndefinedObjectProperties: true
583
+ });
577
584
  if (!Array.isArray(value) || value.some(
578
585
  (row) => row === null || typeof row !== "object" || Array.isArray(row)
579
586
  ))
@@ -1156,13 +1163,17 @@ function PaletteRows({ title, items, onRun, extra, ai = false, glyphKind, fallba
1156
1163
  if (!items.length && !extra) return null;
1157
1164
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("section", { className: "matrx-alchemy-palette-section", children: [
1158
1165
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h3", { children: title }),
1159
- items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("button", { type: "button", className: cn("matrx-alchemy-palette-row", ai && "matrx-alchemy-palette-row-ai"), "aria-label": item.ariaLabel, onClick: () => onRun?.(item), children: [
1160
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(item.icon, { className: "matrx-alchemy-menu-icon" }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(PaletteGlyph, { ai, ...glyphKind ? { kind: glyphKind } : {} }),
1161
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { children: [
1162
- item.copyLabel ?? item.label,
1163
- item.hint ?? fallbackHint ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("small", { className: "matrx-alchemy-menu-hint", children: item.hint ?? fallbackHint }) : null
1164
- ] })
1165
- ] }, item.id)),
1166
+ items.map((item) => {
1167
+ const label = item.copyLabel ?? item.label;
1168
+ const hint = item.hint ?? fallbackHint;
1169
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("button", { type: "button", className: cn("matrx-alchemy-palette-row", ai && "matrx-alchemy-palette-row-ai"), "aria-label": item.ariaLabel ?? `${label}${hint ? ` ${hint}` : ""}`, onClick: () => onRun?.(item), children: [
1170
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(item.icon, { className: "matrx-alchemy-menu-icon" }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(PaletteGlyph, { ai, ...glyphKind ? { kind: glyphKind } : {} }),
1171
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { children: [
1172
+ label,
1173
+ hint ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("small", { className: "matrx-alchemy-menu-hint", children: hint }) : null
1174
+ ] })
1175
+ ] }, item.id);
1176
+ }),
1166
1177
  extra
1167
1178
  ] });
1168
1179
  }