@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.
@@ -352,6 +352,7 @@
352
352
  }
353
353
  .matrx-alchemy-workspace [data-slot="dialog-footer"] {
354
354
  display: flex;
355
+ flex-direction: row;
355
356
  flex-wrap: wrap;
356
357
  justify-content: flex-end;
357
358
  gap: 0.5rem;
@@ -416,6 +417,10 @@
416
417
  white-space: nowrap;
417
418
  }
418
419
  @media (max-width: 767px) {
420
+ .matrx-alchemy-workspace [data-slot="dialog-footer"] > .matrx-alchemy-meta {
421
+ flex-basis: 100%;
422
+ text-align: right;
423
+ }
419
424
  .matrx-alchemy-workspace {
420
425
  inset: auto 0 0;
421
426
  width: 100%;
@@ -475,3 +480,6 @@
475
480
  .matrx-alchemy-feedback { position: fixed; z-index: 10002; bottom: max(1rem, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 0.75rem; width: max-content; max-width: calc(100vw - 2rem); padding: 0.5rem 0.75rem; border: 1px solid hsl(var(--border)); border-radius: 0.5rem; background: hsl(var(--background)); color: hsl(var(--foreground)); box-shadow: 0 4px 16px hsl(var(--foreground) / 0.12); font-size: 0.8125rem; }
476
481
  .matrx-alchemy-feedback button { flex-shrink: 0; width: 1.75rem; height: 1.75rem; border: 0; border-radius: 0.25rem; background: transparent; color: inherit; cursor: pointer; }
477
482
  .matrx-alchemy-feedback button:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: -2px; }
483
+
484
+ /* Dialogs show their own result; an earlier page notice must not cover their actions. */
485
+ body:has(.matrx-alchemy-workspace[data-state="open"]) > .matrx-alchemy-feedback { display: none; }
@@ -486,15 +486,18 @@ var structuredPayload = (value) => {
486
486
  );
487
487
  return {
488
488
  kind: "json",
489
- value: normalizeTransferJson({
490
- kind: value.kind,
491
- location: value.location,
492
- description: value.description,
493
- data: value.data,
494
- ...value.summary !== void 0 ? { summary: value.summary } : {},
495
- attributes: clean(value.attributes),
496
- context: clean(value.context)
497
- })
489
+ value: normalizeTransferJson(
490
+ {
491
+ kind: value.kind,
492
+ location: value.location,
493
+ description: value.description,
494
+ data: value.data,
495
+ ...value.summary !== void 0 ? { summary: value.summary } : {},
496
+ attributes: clean(value.attributes),
497
+ context: clean(value.context)
498
+ },
499
+ { omitUndefinedObjectProperties: true }
500
+ )
498
501
  };
499
502
  };
500
503
  var actionDone = (message) => ({
@@ -549,12 +552,16 @@ function MatrxCopyMenuSession(props) {
549
552
  })) : void 0;
550
553
  const json = aiVisible && props.json !== void 0 ? make("json", () => ({
551
554
  kind: "json",
552
- value: normalizeTransferJson(resolve(props.json))
555
+ value: normalizeTransferJson(resolve(props.json), {
556
+ omitUndefinedObjectProperties: true
557
+ })
553
558
  })) : void 0;
554
559
  const agent = aiVisible && props.agent !== void 0 ? make("agent", () => asPayload(resolve(props.agent))) : void 0;
555
560
  const structuredAgent = aiVisible && props.agent !== void 0 ? make("structured-agent", () => structuredPayload(resolve(props.agent))) : void 0;
556
561
  const table = (exportVisible || props.primarySource === "table") && props.export?.sheetRows ? make("rows", () => {
557
- const value = normalizeTransferJson(props.export.sheetRows());
562
+ const value = normalizeTransferJson(props.export.sheetRows(), {
563
+ omitUndefinedObjectProperties: true
564
+ });
558
565
  if (!Array.isArray(value) || value.some(
559
566
  (row) => row === null || typeof row !== "object" || Array.isArray(row)
560
567
  ))
@@ -1137,13 +1144,17 @@ function PaletteRows({ title, items, onRun, extra, ai = false, glyphKind, fallba
1137
1144
  if (!items.length && !extra) return null;
1138
1145
  return /* @__PURE__ */ jsxs4("section", { className: "matrx-alchemy-palette-section", children: [
1139
1146
  /* @__PURE__ */ jsx8("h3", { children: title }),
1140
- items.map((item) => /* @__PURE__ */ jsxs4("button", { type: "button", className: cn("matrx-alchemy-palette-row", ai && "matrx-alchemy-palette-row-ai"), "aria-label": item.ariaLabel, onClick: () => onRun?.(item), children: [
1141
- item.icon ? /* @__PURE__ */ jsx8(item.icon, { className: "matrx-alchemy-menu-icon" }) : /* @__PURE__ */ jsx8(PaletteGlyph, { ai, ...glyphKind ? { kind: glyphKind } : {} }),
1142
- /* @__PURE__ */ jsxs4("span", { children: [
1143
- item.copyLabel ?? item.label,
1144
- item.hint ?? fallbackHint ? /* @__PURE__ */ jsx8("small", { className: "matrx-alchemy-menu-hint", children: item.hint ?? fallbackHint }) : null
1145
- ] })
1146
- ] }, item.id)),
1147
+ items.map((item) => {
1148
+ const label = item.copyLabel ?? item.label;
1149
+ const hint = item.hint ?? fallbackHint;
1150
+ return /* @__PURE__ */ jsxs4("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: [
1151
+ item.icon ? /* @__PURE__ */ jsx8(item.icon, { className: "matrx-alchemy-menu-icon" }) : /* @__PURE__ */ jsx8(PaletteGlyph, { ai, ...glyphKind ? { kind: glyphKind } : {} }),
1152
+ /* @__PURE__ */ jsxs4("span", { children: [
1153
+ label,
1154
+ hint ? /* @__PURE__ */ jsx8("small", { className: "matrx-alchemy-menu-hint", children: hint }) : null
1155
+ ] })
1156
+ ] }, item.id);
1157
+ }),
1147
1158
  extra
1148
1159
  ] });
1149
1160
  }