@webskill/sdk 0.7.0 → 0.8.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.
Files changed (35) hide show
  1. package/dist/agent.d.ts +1 -1
  2. package/dist/agent.js +1 -1
  3. package/dist/browser.d.ts +151 -4
  4. package/dist/browser.js +250 -25
  5. package/dist/{catalogComponents-Dr5dFMAb-DKH_7VPI.js → catalogComponents-DfxxfUvn-D55Gbb2l.js} +3435 -437
  6. package/dist/{dist-8oQRa8Xz.js → dist-59XlqDuv.js} +93 -6
  7. package/dist/{dist-DnYG2-eY.js → dist-CJqQsIm9.js} +498 -118
  8. package/dist/{dist-D0qW6e40.js → dist-DmI5SBBF.js} +192 -17
  9. package/dist/{eventTypes-DjIQpt8Y-Bj3vghj4.js → eventTypes-g1BXL6x5-CibcOftR.js} +7 -2
  10. package/dist/governance.d.ts +16 -3
  11. package/dist/governance.js +24 -5
  12. package/dist/{index-DkbABR43.d.ts → index-K-eewlGL.d.ts} +138 -75
  13. package/dist/{index-BwsK9lGk.d.ts → index-P9J2LTfU.d.ts} +163 -6
  14. package/dist/{index-Ba3xFtfz.d.ts → index-fLskQfAS.d.ts} +2 -2
  15. package/dist/index.d.ts +3 -3
  16. package/dist/index.js +4 -4
  17. package/dist/mcp.d.ts +8 -2
  18. package/dist/mcp.js +12 -2
  19. package/dist/{memoryArtifactStore-52Zn9npI-BMPYwvoy.js → memoryArtifactStore-52Zn9npI-upv5OWYf.js} +1 -1
  20. package/dist/node.d.ts +3 -3
  21. package/dist/node.js +3 -3
  22. package/dist/{openUiLibrary-Bdrji9qK-D2LxmM-a.js → openUiLibrary-DURlAxjk-CU6AzfSW.js} +3 -3
  23. package/dist/{skillVersionStore-Bl-ElD45-CWPvGvoq.d.ts → skillVersionStore-Bl-ElD45-gRfSaAby.d.ts} +1 -1
  24. package/dist/{testing-CYTFqkDm.js → testing-BCUO5gZR.js} +2 -2
  25. package/dist/testing.d.ts +1 -1
  26. package/dist/testing.js +2 -2
  27. package/dist/{types-CcxRLdJG-DCXyw1US.d.ts → types-B3n0cMZu-BdcqQ35O.d.ts} +46 -6
  28. package/dist/ui-react.d.ts +13 -6
  29. package/dist/ui-react.js +153 -84
  30. package/dist/ui-vue.d.ts +1 -1
  31. package/dist/ui-vue.js +2 -2
  32. package/dist/ui.d.ts +4 -4
  33. package/dist/ui.js +3 -3
  34. package/dist/{webskillLitCatalog-_mugzRHx-B_54vxum.js → webskillLitCatalog-DwTwSBFt-DiXXpNZA.js} +22 -3
  35. package/package.json +2 -2
package/dist/ui-react.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll$1 } from "./rolldown-runtime-BOF7iYI8.js";
2
- import { m as WebSkillError } from "./dist-8oQRa8Xz.js";
3
- import { Et as validateUiSpecNode, Tt as validateUiSpecEvent } from "./dist-D0qW6e40.js";
4
- import { B as toOpenUiSpecLang, I as shapeInteractionValue, O as interactionToFormModel, P as renderMiniChart, Q as chartSpecFromProps, g as applySuggestion, k as interactionToUiSpec, nt as uiCatalog, tt as renderMiniMarkdown, x as collectValues, z as toJsonRenderSpec } from "./dist-DnYG2-eY.js";
5
- import { C as Markdown, S as Input, _ as DataTable, a as SpecProgress, b as DropdownMenuContent, c as SurfaceButton, d as catalogComponentImpls, f as str, g as Button, h as Badge, i as SpecGrid, l as SurfaceField, m as useSurfaceForm, n as CatalogSurfaceProvider, o as SpecTabs, p as useCatalogSurfaceForm, r as EChart, s as SpecTimeline, u as SurfaceFormButtons, v as DropdownMenu, w as Separator, x as DropdownMenuTrigger, y as DropdownMenuCheckboxItem } from "./catalogComponents-Dr5dFMAb-DKH_7VPI.js";
2
+ import { m as WebSkillError } from "./dist-59XlqDuv.js";
3
+ import { Ot as validateUiSpecEvent, kt as validateUiSpecNode } from "./dist-DmI5SBBF.js";
4
+ import { F as normalizeColumnWidths, M as interactionToUiSpec, R as renderMiniChart, U as toJsonRenderSpec, W as toOpenUiSpecLang, Z as DEFAULT_SURFACE_FORM_TEXTS, ct as renderMiniMarkdown, dt as shapeInteractionValue, ft as uiCatalog, it as chartSpecFromProps, ot as interactionToFormModel, w as collectValues, y as applySuggestion } from "./dist-CJqQsIm9.js";
5
+ import { C as DropdownMenuContent, D as Separator, E as Markdown, S as DropdownMenuCheckboxItem, T as Input, _ as useSurfaceFormTexts, a as SpecProgress, b as DataTable, c as SurfaceButton, d as SurfaceFormButtons, f as SurfaceFormTextsProvider, g as useSurfaceForm, h as useCatalogSurfaceForm, i as SpecGrid, l as SurfaceField, m as str, n as CatalogSurfaceProvider, o as SpecTabs, p as catalogComponentImpls, r as EChart, s as SpecTimeline, u as SurfaceFieldArray, v as Badge, w as DropdownMenuTrigger, x as DropdownMenu, y as Button } from "./catalogComponents-DfxxfUvn-D55Gbb2l.js";
6
6
  import { z } from "zod";
7
7
  import * as React$1 from "react";
8
8
  import React, { createContext, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
@@ -6819,7 +6819,7 @@ function InteractionForm({ bridge }) {
6819
6819
  id: `webskill-error-${control.name}`,
6820
6820
  role: "alert",
6821
6821
  className: "webskill-form__error",
6822
- children: "This field is required"
6822
+ children: DEFAULT_SURFACE_FORM_TEXTS.required
6823
6823
  }) : null
6824
6824
  ]
6825
6825
  }, control.name)),
@@ -6912,15 +6912,63 @@ function StreamingText({ bridge }) {
6912
6912
  });
6913
6913
  }
6914
6914
  /**
6915
+ * 渲染前的逐节点降级(FR-23.3)。
6916
+ *
6917
+ * 三档过去都是「整树 validate,失败即整块换成一行红字」——一个节点的一个 prop 不合法
6918
+ * 就让整个 surface 消失。到了渲染层这份 spec 可能来自快照重放或更早的语法版本,
6919
+ * 此刻整块拒绝而 run 还在等它的响应,正是 AC-G11 要防的「整块消失」。
6920
+ */
6921
+ function useSanitizedSpec(spec) {
6922
+ return useMemo(() => uiCatalog.sanitize(spec), [spec]);
6923
+ }
6924
+ const isOutOfCatalog = (degradation) => degradation.kind === "unknown-component";
6925
+ /**
6926
+ * 越界组件名的响亮拒绝。
6927
+ *
6928
+ * 它是**对 spec 本身**的判定,与渲染器装没装无关,所以要渲染在可选依赖的门禁之前——
6929
+ * 放到门禁后面,未安装该档时这条越界信号就消失了。
6930
+ */
6931
+ function SurfaceRejectionAlert({ degradations }) {
6932
+ const rejected = degradations.filter(isOutOfCatalog);
6933
+ if (rejected.length === 0) return null;
6934
+ return /* @__PURE__ */ jsxs("div", {
6935
+ role: "alert",
6936
+ className: "webskill-surface--error text-sm text-destructive",
6937
+ children: ["Invalid UI spec: ", rejected.map((item) => `${item.path}: ${item.detail}`).join("; ")]
6938
+ });
6939
+ }
6940
+ /** 其余降级的中性说明(AC-23.8):不是错误,是「这个档 / 这份 spec 有一部分做不到」 */
6941
+ function SurfaceSimplifiedNote({ degradations }) {
6942
+ const simplified = degradations.filter((degradation) => !isOutOfCatalog(degradation));
6943
+ if (simplified.length === 0) return null;
6944
+ return /* @__PURE__ */ jsx("div", {
6945
+ role: "note",
6946
+ "data-webskill-degraded": simplified.length,
6947
+ className: "webskill-surface--unsupported text-xs text-muted",
6948
+ children: simplified.map((item) => `${item.path} (${item.kind})`).join("; ")
6949
+ });
6950
+ }
6951
+ /** 两级合并渲染;可选依赖有门禁的档要分开用上面两个 */
6952
+ function SurfaceDegradationNote({ degradations }) {
6953
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(SurfaceRejectionAlert, { degradations }), /* @__PURE__ */ jsx(SurfaceSimplifiedNote, { degradations })] });
6954
+ }
6955
+ /**
6915
6956
  * catalog `Table` 节点的渲染实现:排序 / 筛选 / 分页 / 列显隐 / 虚拟滚动。
6916
6957
  * 这些是宿主侧的呈现能力,不进 catalog props——模型只声明 columns 与 rows。
6917
6958
  * 它们都带 `data-webskill-host-control`,跨渲染器语义对括据此排除宿主控件。
6918
6959
  */
6919
- function SpecTable({ columns, rows, label }) {
6960
+ function SpecTable({ columns, rows, label, columnWidths, onDegraded }) {
6920
6961
  const [sorting, setSorting] = useState([]);
6921
6962
  const [globalFilter, setGlobalFilter] = useState("");
6922
6963
  const [columnVisibility, setColumnVisibility] = useState({});
6923
6964
  const scrollRef = useRef(null);
6965
+ const normalized = normalizeColumnWidths(columnWidths, columns.length);
6966
+ const weightTotal = normalized.weights.reduce((sum, weight) => sum + weight, 0);
6967
+ const widthPercents = normalized.weights.map((weight) => weightTotal > 0 ? weight / weightTotal * 100 : 0);
6968
+ const rejected = normalized.rejected;
6969
+ useEffect(() => {
6970
+ if (rejected !== void 0) onDegraded?.(rejected);
6971
+ }, [rejected, onDegraded]);
6924
6972
  const table = useReactTable({
6925
6973
  data: rows,
6926
6974
  columns: columns.map((header, index) => ({
@@ -6983,30 +7031,34 @@ function SpecTable({ columns, rows, label }) {
6983
7031
  /* @__PURE__ */ jsxs(DataTable, {
6984
7032
  "aria-label": label,
6985
7033
  containerClassName: "webskill-surface__table-scroll",
6986
- children: [/* @__PURE__ */ jsx("thead", {
6987
- className: "webskill-surface__table-header",
6988
- children: /* @__PURE__ */ jsx("tr", { children: table.getFlatHeaders().map((header) => /* @__PURE__ */ jsx("th", {
6989
- scope: "col",
6990
- ...header.column.id === "selection" ? { "data-webskill-host-control": "" } : {},
6991
- "aria-sort": header.column.getIsSorted() === "asc" ? "ascending" : header.column.getIsSorted() === "desc" ? "descending" : "none",
6992
- children: header.column.getCanSort() ? /* @__PURE__ */ jsx("button", {
6993
- type: "button",
6994
- "data-webskill-host-control": "",
6995
- onClick: header.column.getToggleSortingHandler(),
6996
- children: flexRender(header.column.columnDef.header, header.getContext())
6997
- }) : flexRender(header.column.columnDef.header, header.getContext())
6998
- }, header.id)) })
6999
- }), /* @__PURE__ */ jsx("tbody", {
7000
- ref: scrollRef,
7001
- className: "webskill-surface__table-body",
7002
- children: renderedRows.map((virtualRow) => {
7003
- const row = modelRows[virtualRow.index];
7004
- return /* @__PURE__ */ jsx("tr", { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx("td", {
7005
- ...cell.column.id === "selection" ? { "data-webskill-host-control": "" } : {},
7006
- children: flexRender(cell.column.columnDef.cell, cell.getContext())
7007
- }, cell.id)) }, row.id);
7034
+ children: [
7035
+ /* @__PURE__ */ jsx("colgroup", { children: widthPercents.map((percent, index) => /* @__PURE__ */ jsx("col", { style: { width: `${percent}%` } }, index)) }),
7036
+ /* @__PURE__ */ jsx("thead", {
7037
+ className: "webskill-surface__table-header",
7038
+ children: /* @__PURE__ */ jsx("tr", { children: table.getFlatHeaders().map((header) => /* @__PURE__ */ jsx("th", {
7039
+ scope: "col",
7040
+ ...header.column.id === "selection" ? { "data-webskill-host-control": "" } : {},
7041
+ "aria-sort": header.column.getIsSorted() === "asc" ? "ascending" : header.column.getIsSorted() === "desc" ? "descending" : "none",
7042
+ children: header.column.getCanSort() ? /* @__PURE__ */ jsx("button", {
7043
+ type: "button",
7044
+ "data-webskill-host-control": "",
7045
+ onClick: header.column.getToggleSortingHandler(),
7046
+ children: flexRender(header.column.columnDef.header, header.getContext())
7047
+ }) : flexRender(header.column.columnDef.header, header.getContext())
7048
+ }, header.id)) })
7049
+ }),
7050
+ /* @__PURE__ */ jsx("tbody", {
7051
+ ref: scrollRef,
7052
+ className: "webskill-surface__table-body",
7053
+ children: renderedRows.map((virtualRow) => {
7054
+ const row = modelRows[virtualRow.index];
7055
+ return /* @__PURE__ */ jsx("tr", { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx("td", {
7056
+ ...cell.column.id === "selection" ? { "data-webskill-host-control": "" } : {},
7057
+ children: flexRender(cell.column.columnDef.cell, cell.getContext())
7058
+ }, cell.id)) }, row.id);
7059
+ })
7008
7060
  })
7009
- })]
7061
+ ]
7010
7062
  }),
7011
7063
  /* @__PURE__ */ jsxs("div", {
7012
7064
  className: "webskill-surface__table-pagination",
@@ -7096,11 +7148,17 @@ function renderNode(node, context, key, scope) {
7096
7148
  }) : null
7097
7149
  ]
7098
7150
  }, key);
7099
- case "Table": return /* @__PURE__ */ jsx(SpecTable, {
7100
- columns: Array.isArray(props["columns"]) ? props["columns"] : [],
7101
- rows: Array.isArray(props["rows"]) ? props["rows"] : [],
7102
- label: str(props, "title", "Data")
7103
- }, key);
7151
+ case "Table": {
7152
+ const columns = Array.isArray(props["columns"]) ? props["columns"] : [];
7153
+ const rows = Array.isArray(props["rows"]) ? props["rows"] : [];
7154
+ const columnWidths = Array.isArray(props["columnWidths"]) ? props["columnWidths"] : void 0;
7155
+ return /* @__PURE__ */ jsx(SpecTable, {
7156
+ columns,
7157
+ rows,
7158
+ label: str(props, "title", "Data"),
7159
+ ...columnWidths ? { columnWidths } : {}
7160
+ }, key);
7161
+ }
7104
7162
  case "Chart": return /* @__PURE__ */ jsx(EChart, { chart: chartSpecFromProps(props) }, key);
7105
7163
  case "Tabs": return /* @__PURE__ */ jsx(SpecTabs, {
7106
7164
  props,
@@ -7117,7 +7175,7 @@ function renderNode(node, context, key, scope) {
7117
7175
  children: [/* @__PURE__ */ jsx("span", {
7118
7176
  className: "text-ink",
7119
7177
  children: str(props, "label", str(props, "path"))
7120
- }), /* @__PURE__ */ jsx(Button, {
7178
+ }), context.readOnly ? null : /* @__PURE__ */ jsx(Button, {
7121
7179
  size: "sm",
7122
7180
  variant: "secondary",
7123
7181
  "data-webskill-surface-action": context.resolveActionId("download", node.id),
@@ -7150,6 +7208,11 @@ function renderNode(node, context, key, scope) {
7150
7208
  props,
7151
7209
  scope
7152
7210
  }, key);
7211
+ case "FieldArray": return /* @__PURE__ */ jsx(SurfaceFieldArray, {
7212
+ form: context,
7213
+ props,
7214
+ scope
7215
+ }, key);
7153
7216
  case "Button": return /* @__PURE__ */ jsx(SurfaceButton, {
7154
7217
  form: context,
7155
7218
  props,
@@ -7204,29 +7267,35 @@ function renderNode(node, context, key, scope) {
7204
7267
  * 节点树取代六类 surface 后,这里是 native 档唯一的渲染实现。
7205
7268
  */
7206
7269
  function NativeSpecSurface({ surfaceId, spec, actions, registry, runId, draft, onAction, onDraftChange, shell = "card" }) {
7270
+ const sanitized = useSanitizedSpec(spec);
7271
+ const form = useSurfaceForm({
7272
+ surfaceId,
7273
+ spec: sanitized.node ?? spec,
7274
+ actions,
7275
+ runId,
7276
+ draft,
7277
+ onAction,
7278
+ onDraftChange
7279
+ });
7207
7280
  const context = {
7208
- ...useSurfaceForm({
7209
- surfaceId,
7210
- spec,
7211
- actions,
7212
- runId,
7213
- draft,
7214
- onAction,
7215
- onDraftChange
7216
- }),
7281
+ ...form,
7217
7282
  registry,
7218
7283
  onAction
7219
7284
  };
7220
- const validation = uiCatalog.validate(spec);
7221
- if (!validation.ok) return /* @__PURE__ */ jsxs("div", {
7222
- role: "alert",
7223
- className: "webskill-surface--error text-sm text-destructive",
7224
- children: ["Invalid UI spec: ", validation.issues.map((issue) => `${issue.path}: ${issue.message}`).join("; ")]
7225
- });
7226
- return /* @__PURE__ */ jsx("div", {
7285
+ const texts = useSurfaceFormTexts();
7286
+ const { node, degradations } = sanitized;
7287
+ return /* @__PURE__ */ jsxs("div", {
7227
7288
  className: shell === "none" ? "webskill-surface--spec" : "webskill-surface webskill-surface--spec",
7228
7289
  "data-testid": "native-spec-surface",
7229
- children: renderNode(spec, context, "root")
7290
+ children: [
7291
+ node ? renderNode(node, context, "root") : null,
7292
+ form.readOnly && actions.length > 0 ? /* @__PURE__ */ jsx("p", {
7293
+ "data-testid": "surface-readonly-note",
7294
+ className: "mt-2 text-xs text-muted",
7295
+ children: texts.readOnlySnapshot
7296
+ }) : null,
7297
+ /* @__PURE__ */ jsx(SurfaceDegradationNote, { degradations })
7298
+ ]
7230
7299
  });
7231
7300
  }
7232
7301
  function Surface({ snapshot, registry, onAction, drafts, onDraftChange }) {
@@ -7324,27 +7393,27 @@ function JsonRenderSpecSurface({ spec, surfaceId, actions, onAction }) {
7324
7393
  cancelled = true;
7325
7394
  };
7326
7395
  }, []);
7327
- const validation = uiCatalog.validate(spec);
7328
- if (!validation.ok) return /* @__PURE__ */ jsxs("div", {
7329
- role: "alert",
7330
- className: "webskill-surface--error text-sm text-destructive",
7331
- children: ["Invalid UI spec: ", validation.issues.map((issue) => `${issue.path}: ${issue.message}`).join("; ")]
7332
- });
7333
- if (unavailable) return /* @__PURE__ */ jsx("div", {
7396
+ const sanitized = useSanitizedSpec(spec);
7397
+ const rejection = /* @__PURE__ */ jsx(SurfaceRejectionAlert, { degradations: sanitized.degradations });
7398
+ if (unavailable) return /* @__PURE__ */ jsxs(Fragment$1, { children: [rejection, /* @__PURE__ */ jsx("div", {
7334
7399
  role: "alert",
7335
7400
  className: "webskill-surface--unsupported text-sm text-muted",
7336
7401
  children: "The json-render renderer is not installed: add @json-render/core and @json-render/react to this host."
7337
- });
7338
- if (!module) return null;
7339
- return /* @__PURE__ */ jsx(CatalogSurfaceProvider, {
7402
+ })] });
7403
+ if (!module) return rejection;
7404
+ return /* @__PURE__ */ jsxs(CatalogSurfaceProvider, {
7340
7405
  surfaceId,
7341
- spec,
7406
+ spec: sanitized.node ?? spec,
7342
7407
  actions: actions ?? [],
7343
7408
  ...onAction ? { onAction } : {},
7344
- children: /* @__PURE__ */ jsx(JsonRenderBody, {
7345
- spec,
7346
- module
7347
- })
7409
+ children: [
7410
+ rejection,
7411
+ sanitized.node ? /* @__PURE__ */ jsx(JsonRenderBody, {
7412
+ spec: sanitized.node,
7413
+ module
7414
+ }) : null,
7415
+ /* @__PURE__ */ jsx(SurfaceSimplifiedNote, { degradations: sanitized.degradations })
7416
+ ]
7348
7417
  });
7349
7418
  }
7350
7419
  /** registry 的 action 出口绑定到本 surface:json-render 派发的动作与组件内点击回传同一份载荷 */
@@ -7518,7 +7587,7 @@ function OpenUiSpecSurface({ spec, surfaceId, actions, onAction }) {
7518
7587
  const [unavailable, setUnavailable] = useState(false);
7519
7588
  useEffect(() => {
7520
7589
  let cancelled = false;
7521
- import("./openUiLibrary-Bdrji9qK-D2LxmM-a.js").then((loaded) => {
7590
+ import("./openUiLibrary-DURlAxjk-CU6AzfSW.js").then((loaded) => {
7522
7591
  if (!cancelled) setModule(loaded);
7523
7592
  }).catch(() => {
7524
7593
  if (!cancelled) setUnavailable(true);
@@ -7527,34 +7596,34 @@ function OpenUiSpecSurface({ spec, surfaceId, actions, onAction }) {
7527
7596
  cancelled = true;
7528
7597
  };
7529
7598
  }, []);
7530
- const validation = uiCatalog.validate(spec);
7531
- if (!validation.ok) return /* @__PURE__ */ jsxs("div", {
7532
- role: "alert",
7533
- className: "webskill-surface--error text-sm text-destructive",
7534
- children: ["Invalid UI spec: ", validation.issues.map((issue) => `${issue.path}: ${issue.message}`).join("; ")]
7535
- });
7536
- if (unavailable) return /* @__PURE__ */ jsx("div", {
7599
+ const sanitized = useSanitizedSpec(spec);
7600
+ const rejection = /* @__PURE__ */ jsx(SurfaceRejectionAlert, { degradations: sanitized.degradations });
7601
+ if (unavailable) return /* @__PURE__ */ jsxs(Fragment$1, { children: [rejection, /* @__PURE__ */ jsx("div", {
7537
7602
  role: "alert",
7538
7603
  className: "webskill-surface--unsupported text-sm text-muted",
7539
7604
  children: "The OpenUI renderer is not installed: add @openuidev/react-lang to this host."
7540
- });
7541
- if (!module) return null;
7605
+ })] });
7606
+ if (!module) return rejection;
7542
7607
  const { Renderer, webskillOpenUiLibrary } = module;
7543
7608
  return /* @__PURE__ */ jsx(CatalogSurfaceProvider, {
7544
7609
  surfaceId,
7545
- spec,
7610
+ spec: sanitized.node ?? spec,
7546
7611
  actions: actions ?? [],
7547
7612
  ...onAction ? { onAction } : {},
7548
- children: /* @__PURE__ */ jsx("div", {
7613
+ children: /* @__PURE__ */ jsxs("div", {
7549
7614
  className: "webskill-surface webskill-surface--spec",
7550
7615
  "data-testid": "openui-spec-surface",
7551
- children: /* @__PURE__ */ jsx(Renderer, {
7552
- response: toOpenUiSpecLang(spec),
7553
- library: webskillOpenUiLibrary
7554
- })
7616
+ children: [
7617
+ sanitized.node ? /* @__PURE__ */ jsx(Renderer, {
7618
+ response: toOpenUiSpecLang(sanitized.node),
7619
+ library: webskillOpenUiLibrary
7620
+ }) : null,
7621
+ rejection,
7622
+ /* @__PURE__ */ jsx(SurfaceSimplifiedNote, { degradations: sanitized.degradations })
7623
+ ]
7555
7624
  })
7556
7625
  });
7557
7626
  }
7558
7627
 
7559
7628
  //#endregion
7560
- export { InteractionForm, JsonRenderSpecSurface, NATIVE_SPEC_COMPONENTS, NativeSpecSurface, OpenUiSpecSurface, ReactBridgeState, ResultBlocks, SpecInteractionChannel, StreamingText, SurfaceRegistry, UiSurfaceList, UiSurfaceSnapshotList, UiSurfaceStore, catalogComponentImpls, createJsonRenderRegistry, probeJsonRenderAvailability };
7629
+ export { InteractionForm, JsonRenderSpecSurface, NATIVE_SPEC_COMPONENTS, NativeSpecSurface, OpenUiSpecSurface, ReactBridgeState, ResultBlocks, SpecInteractionChannel, StreamingText, SurfaceFormTextsProvider, SurfaceRegistry, UiSurfaceList, UiSurfaceSnapshotList, UiSurfaceStore, catalogComponentImpls, createJsonRenderRegistry, probeJsonRenderAvailability, useSurfaceFormTexts };
package/dist/ui-vue.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { c as InteractionResponse, s as InteractionRequest, x as UiBridge, y as RenderResultRequest } from "./types-CcxRLdJG-DCXyw1US.js";
1
+ import { c as InteractionResponse, s as InteractionRequest, x as UiBridge, y as RenderResultRequest } from "./types-B3n0cMZu-BdcqQ35O.js";
2
2
  import { PropType } from "vue";
3
3
  //#region ../ui-vue/dist/index.d.ts
4
4
  //#region src/bridgeState.d.ts
package/dist/ui-vue.js CHANGED
@@ -1,4 +1,4 @@
1
- import { I as shapeInteractionValue, O as interactionToFormModel, P as renderMiniChart, g as applySuggestion, tt as renderMiniMarkdown, x as collectValues } from "./dist-DnYG2-eY.js";
1
+ import { R as renderMiniChart, Z as DEFAULT_SURFACE_FORM_TEXTS, ct as renderMiniMarkdown, dt as shapeInteractionValue, ot as interactionToFormModel, w as collectValues, y as applySuggestion } from "./dist-CJqQsIm9.js";
2
2
  import { defineComponent, h, reactive, ref } from "vue";
3
3
 
4
4
  //#region ../ui-vue/dist/index.js
@@ -164,7 +164,7 @@ const InteractionForm = defineComponent({
164
164
  id: `webskill-error-${control.name}`,
165
165
  role: "alert",
166
166
  class: "webskill-form__error"
167
- }, "This field is required") : null
167
+ }, DEFAULT_SURFACE_FORM_TEXTS.required) : null
168
168
  ])),
169
169
  h("div", { class: "webskill-form__actions" }, [h("button", {
170
170
  type: "submit",
package/dist/ui.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { gt as UiSpecNode } from "./types-CcxRLdJG-DCXyw1US.js";
2
- import { mn as buildRenderResult } from "./index-DkbABR43.js";
3
- import { $ as buildA2uiCatalogDefinition, A as UiActionDef, At as uiCatalog, B as UiSpecValidation, C as OpenUiRendererProps, Ct as shapeInteractionValue, D as UI_CATALOG_PROMPT_BUDGET_BYTES, Dt as toOpenUiSpecLang, E as UI_CATALOG_GROUPS, Et as toJsonRenderSpec, F as UiComponentDef, G as WEBSKILL_A2UI_CATALOG_ID, H as VERCEL_INTERACTION_TOOL_NAME, I as UiFormScope, J as WebFormBridge, K as WEBSKILL_STYLES_CSS, L as UiPreset, M as UiCatalogInput, N as UiCatalogPromptOptions, O as UI_PRESETS, Ot as toUiSurfaceActionDispatch, P as UiCatalogToolSourceOptions, Q as applySuggestion, R as UiPresetName, S as LoadedOpenUiPeers, St as renderRenderResult, T as RENDER_UI_TOOL, Tt as toA2uiSurfaceAction, U as VercelToolInvocation, V as UiSurfaceActionDispatch, W as VercelUiBridge, X as a2uiComponentSchema, Y as ZodRuntime, Z as a2uiComponentShapes, _ as DESCRIBE_UI_PRESET_TOOL, _t as mountEchart, a as A2UI_SURFACE_ACTION, at as collectValues, b as InteractionSpecLabels, bt as renderMiniChart, c as A2uiCatalogDefinition, ct as ensureStyles, d as A2uiMessage, dt as fromUiSurfaceActionDispatch, et as chartSpecFromProps, f as A2uiSpecActionEvent, ft as fromVercelToolResult, g as ControlModel, gt as loadWebSkillLitCatalog, h as CollectedValues, ht as loadOpenUiPeers, i as A2UI_SPEC_FORM_PATH, it as collectSpecActions, j as UiCatalog, jt as uiPreset, k as UI_PRESET_NAMES, kt as toVercelToolInvocation, l as A2uiCatalogHandle, lt as fromA2uiSpecAction, m as CHART_PALETTE, mt as interactionToUiSpec, n as A2UI_COMMON_TYPES, nt as collectFormScopes, o as A2UI_VERSION, ot as createUiCatalogToolSource, p as A2uiSpecMessageOptions, pt as interactionToFormModel, q as WEBSKILL_SURFACE_ACTION, r as A2UI_SPEC_ACTION, rt as collectScopedValues, s as A2uiCatalogComponent, st as defineUiCatalog, t as A2UI_BASIC_CATALOG_ID, tt as chartToTable, u as A2uiComponentShape, ut as fromA2uiSurfaceAction, v as EchartHandle, vt as qualifyFieldName, w as OpenUiRuntime, wt as toA2uiSpecMessages, x as JsonRenderSpec, xt as renderMiniMarkdown, y as FormModel, yt as renderBlocks, z as UiSpecIssue } from "./index-BwsK9lGk.js";
4
- export { A2UI_BASIC_CATALOG_ID, A2UI_COMMON_TYPES, A2UI_SPEC_ACTION, A2UI_SPEC_FORM_PATH, A2UI_SURFACE_ACTION, A2UI_VERSION, type A2uiCatalogComponent, type A2uiCatalogDefinition, type A2uiCatalogHandle, type A2uiComponentShape, type A2uiMessage, type A2uiSpecActionEvent, type A2uiSpecMessageOptions, CHART_PALETTE, type CollectedValues, type ControlModel, DESCRIBE_UI_PRESET_TOOL, type EchartHandle, type FormModel, type InteractionSpecLabels, type JsonRenderSpec, type LoadedOpenUiPeers, type OpenUiRendererProps, type OpenUiRuntime, RENDER_UI_TOOL, UI_CATALOG_GROUPS, UI_CATALOG_PROMPT_BUDGET_BYTES, UI_PRESETS, UI_PRESET_NAMES, type UiActionDef, type UiCatalog, type UiCatalogInput, type UiCatalogPromptOptions, type UiCatalogToolSourceOptions, type UiComponentDef, type UiFormScope, type UiPreset, type UiPresetName, type UiSpecIssue, type UiSpecNode, type UiSpecValidation, type UiSurfaceActionDispatch, VERCEL_INTERACTION_TOOL_NAME, type VercelToolInvocation, VercelUiBridge, WEBSKILL_A2UI_CATALOG_ID, WEBSKILL_STYLES_CSS, WEBSKILL_SURFACE_ACTION, WebFormBridge, type ZodRuntime, a2uiComponentSchema, a2uiComponentShapes, applySuggestion, buildA2uiCatalogDefinition, buildRenderResult, chartSpecFromProps, chartToTable, collectFormScopes, collectScopedValues, collectSpecActions, collectValues, createUiCatalogToolSource, defineUiCatalog, ensureStyles, fromA2uiSpecAction, fromA2uiSurfaceAction, fromUiSurfaceActionDispatch, fromVercelToolResult, interactionToFormModel, interactionToUiSpec, loadOpenUiPeers, loadWebSkillLitCatalog, mountEchart, qualifyFieldName, renderBlocks, renderMiniChart, renderMiniMarkdown, renderRenderResult, shapeInteractionValue, toA2uiSpecMessages, toA2uiSurfaceAction, toJsonRenderSpec, toOpenUiSpecLang, toUiSurfaceActionDispatch, toVercelToolInvocation, uiCatalog, uiPreset };
1
+ import { vt as UiSpecNode } from "./types-B3n0cMZu-BdcqQ35O.js";
2
+ import { vn as buildRenderResult } from "./index-K-eewlGL.js";
3
+ import { $ as UiSpecIssue, A as MAX_CONDITION_DEPTH, At as interactionToUiSpec, B as UI_CATALOG_PROMPT_BUDGET_BYTES, Bt as resolveColumnWidths, C as FieldCondition, Ct as ensureStyles, D as InteractionTexts, Dt as fromUiSurfaceActionDispatch, E as InteractionSpecLabels, Et as fromA2uiSurfaceAction, F as SPEC_TABLE_MIN_COLUMN_VAR, Ft as qualifyFieldName, G as UiCatalogInput, Gt as toA2uiSurfaceAction, H as UI_PRESET_NAMES, Ht as resolveSurfaceFormTexts, I as SPEC_TABLE_MIN_COLUMN_WIDTH, It as renderBlocks, J as UiComponentDef, Jt as toUiSurfaceActionDispatch, K as UiCatalogPromptOptions, Kt as toJsonRenderSpec, L as SpecColumnMeta, Lt as renderMiniChart, M as OpenUiRendererProps, Mt as loadWebSkillLitCatalog, N as OpenUiRuntime, Nt as mountEchart, O as JsonRenderSpec, Ot as fromVercelToolResult, P as RENDER_UI_TOOL, Pt as normalizeColumnWidths, Q as UiSpecDegradation, R as SurfaceFormTexts, Rt as renderMiniMarkdown, S as EvaluateFieldConditionOptions, St as defineUiCatalog, T as FormModel, Tt as fromA2uiSpecAction, U as UiActionDef, Ut as shapeInteractionValue, V as UI_PRESETS, Vt as resolveInteractionTexts, W as UiCatalog, Wt as toA2uiSpecMessages, X as UiPreset, Xt as uiCatalog, Y as UiFormScope, Yt as toVercelToolInvocation, Z as UiPresetName, Zt as uiPreset, _ as ControlModel, _t as collectFormScopes, a as A2UI_SURFACE_ACTION, at as VercelUiBridge, b as DESCRIBE_UI_PRESET_TOOL, bt as collectValues, c as A2uiCatalogDefinition, ct as WEBSKILL_SURFACE_ACTION, d as A2uiMessage, dt as a2uiComponentSchema, et as UiSpecSanitization, f as A2uiSpecActionEvent, ft as a2uiComponentShapes, g as ColumnWidthsRejection, gt as chartToTable, h as CollectedValues, ht as chartSpecFromProps, i as A2UI_SPEC_FORM_PATH, it as VercelToolInvocation, j as NormalizedColumnWidths, jt as loadOpenUiPeers, k as LoadedOpenUiPeers, kt as interactionToFormModel, l as A2uiCatalogHandle, lt as WebFormBridge, m as CHART_PALETTE, mt as buildA2uiCatalogDefinition, n as A2UI_COMMON_TYPES, nt as UiSurfaceActionDispatch, o as A2UI_VERSION, ot as WEBSKILL_A2UI_CATALOG_ID, p as A2uiSpecMessageOptions, pt as applySuggestion, q as UiCatalogToolSourceOptions, qt as toOpenUiSpecLang, r as A2UI_SPEC_ACTION, rt as VERCEL_INTERACTION_TOOL_NAME, s as A2uiCatalogComponent, st as WEBSKILL_STYLES_CSS, t as A2UI_BASIC_CATALOG_ID, tt as UiSpecValidation, u as A2uiComponentShape, ut as ZodRuntime, v as DEFAULT_INTERACTION_TEXTS, vt as collectScopedValues, w as FieldConditionResult, wt as evaluateFieldCondition, x as EchartHandle, xt as createUiCatalogToolSource, y as DEFAULT_SURFACE_FORM_TEXTS, yt as collectSpecActions, z as UI_CATALOG_GROUPS, zt as renderRenderResult } from "./index-P9J2LTfU.js";
4
+ export { A2UI_BASIC_CATALOG_ID, A2UI_COMMON_TYPES, A2UI_SPEC_ACTION, A2UI_SPEC_FORM_PATH, A2UI_SURFACE_ACTION, A2UI_VERSION, type A2uiCatalogComponent, type A2uiCatalogDefinition, type A2uiCatalogHandle, type A2uiComponentShape, type A2uiMessage, type A2uiSpecActionEvent, type A2uiSpecMessageOptions, CHART_PALETTE, type CollectedValues, type ColumnWidthsRejection, type ControlModel, DEFAULT_INTERACTION_TEXTS, DEFAULT_SURFACE_FORM_TEXTS, DESCRIBE_UI_PRESET_TOOL, type EchartHandle, type EvaluateFieldConditionOptions, type FieldCondition, type FieldConditionResult, type FormModel, type InteractionSpecLabels, type InteractionTexts, type JsonRenderSpec, type LoadedOpenUiPeers, MAX_CONDITION_DEPTH, type NormalizedColumnWidths, type OpenUiRendererProps, type OpenUiRuntime, RENDER_UI_TOOL, SPEC_TABLE_MIN_COLUMN_VAR, SPEC_TABLE_MIN_COLUMN_WIDTH, type SpecColumnMeta, type SurfaceFormTexts, UI_CATALOG_GROUPS, UI_CATALOG_PROMPT_BUDGET_BYTES, UI_PRESETS, UI_PRESET_NAMES, type UiActionDef, type UiCatalog, type UiCatalogInput, type UiCatalogPromptOptions, type UiCatalogToolSourceOptions, type UiComponentDef, type UiFormScope, type UiPreset, type UiPresetName, type UiSpecDegradation, type UiSpecIssue, type UiSpecNode, type UiSpecSanitization, type UiSpecValidation, type UiSurfaceActionDispatch, VERCEL_INTERACTION_TOOL_NAME, type VercelToolInvocation, VercelUiBridge, WEBSKILL_A2UI_CATALOG_ID, WEBSKILL_STYLES_CSS, WEBSKILL_SURFACE_ACTION, WebFormBridge, type ZodRuntime, a2uiComponentSchema, a2uiComponentShapes, applySuggestion, buildA2uiCatalogDefinition, buildRenderResult, chartSpecFromProps, chartToTable, collectFormScopes, collectScopedValues, collectSpecActions, collectValues, createUiCatalogToolSource, defineUiCatalog, ensureStyles, evaluateFieldCondition, fromA2uiSpecAction, fromA2uiSurfaceAction, fromUiSurfaceActionDispatch, fromVercelToolResult, interactionToFormModel, interactionToUiSpec, loadOpenUiPeers, loadWebSkillLitCatalog, mountEchart, normalizeColumnWidths, qualifyFieldName, renderBlocks, renderMiniChart, renderMiniMarkdown, renderRenderResult, resolveColumnWidths, resolveInteractionTexts, resolveSurfaceFormTexts, shapeInteractionValue, toA2uiSpecMessages, toA2uiSurfaceAction, toJsonRenderSpec, toOpenUiSpecLang, toUiSurfaceActionDispatch, toVercelToolInvocation, uiCatalog, uiPreset };
package/dist/ui.js CHANGED
@@ -1,4 +1,4 @@
1
- import { V as buildRenderResult } from "./dist-D0qW6e40.js";
2
- import { $ as defineUiCatalog, A as loadOpenUiPeers, B as toOpenUiSpecLang, C as ensureStyles, D as fromVercelToolResult, E as fromUiSurfaceActionDispatch, F as renderRenderResult, G as A2UI_COMMON_TYPES, H as toVercelToolInvocation, I as shapeInteractionValue, J as WEBSKILL_A2UI_CATALOG_ID, K as UI_CATALOG_GROUPS, L as toA2uiSpecMessages, M as qualifyFieldName, N as renderBlocks, O as interactionToFormModel, P as renderMiniChart, Q as chartSpecFromProps, R as toA2uiSurfaceAction, S as createUiCatalogToolSource, T as fromA2uiSurfaceAction, U as uiPreset, V as toUiSurfaceActionDispatch, X as a2uiComponentShapes, Y as a2uiComponentSchema, Z as buildA2uiCatalogDefinition, _ as chartToTable, a as A2UI_VERSION, b as collectSpecActions, c as RENDER_UI_TOOL, d as VERCEL_INTERACTION_TOOL_NAME, et as mountEchart, f as VercelUiBridge, g as applySuggestion, h as WebFormBridge, i as A2UI_SURFACE_ACTION, j as loadWebSkillLitCatalog, k as interactionToUiSpec, l as UI_PRESETS, m as WEBSKILL_SURFACE_ACTION, n as A2UI_SPEC_ACTION, nt as uiCatalog, o as CHART_PALETTE, p as WEBSKILL_STYLES_CSS, q as UI_CATALOG_PROMPT_BUDGET_BYTES, r as A2UI_SPEC_FORM_PATH, s as DESCRIBE_UI_PRESET_TOOL, t as A2UI_BASIC_CATALOG_ID, tt as renderMiniMarkdown, u as UI_PRESET_NAMES, v as collectFormScopes, w as fromA2uiSpecAction, x as collectValues, y as collectScopedValues, z as toJsonRenderSpec } from "./dist-DnYG2-eY.js";
1
+ import { V as buildRenderResult } from "./dist-DmI5SBBF.js";
2
+ import { $ as UI_CATALOG_PROMPT_BUDGET_BYTES, A as fromUiSurfaceActionDispatch, B as resolveColumnWidths, C as collectSpecActions, D as evaluateFieldCondition, E as ensureStyles, F as normalizeColumnWidths, G as toUiSurfaceActionDispatch, H as toA2uiSurfaceAction, I as qualifyFieldName, K as toVercelToolInvocation, L as renderBlocks, M as interactionToUiSpec, N as loadOpenUiPeers, O as fromA2uiSpecAction, P as loadWebSkillLitCatalog, Q as UI_CATALOG_GROUPS, R as renderMiniChart, S as collectScopedValues, T as createUiCatalogToolSource, U as toJsonRenderSpec, V as toA2uiSpecMessages, W as toOpenUiSpecLang, X as DEFAULT_INTERACTION_TEXTS, Y as A2UI_COMMON_TYPES, Z as DEFAULT_SURFACE_FORM_TEXTS, _ as WEBSKILL_SURFACE_ACTION, a as A2UI_VERSION, at as defineUiCatalog, b as chartToTable, c as MAX_CONDITION_DEPTH, ct as renderMiniMarkdown, d as SPEC_TABLE_MIN_COLUMN_WIDTH, dt as shapeInteractionValue, et as WEBSKILL_A2UI_CATALOG_ID, f as UI_PRESETS, ft as uiCatalog, g as WEBSKILL_STYLES_CSS, h as VercelUiBridge, i as A2UI_SURFACE_ACTION, it as chartSpecFromProps, j as fromVercelToolResult, k as fromA2uiSurfaceAction, l as RENDER_UI_TOOL, lt as resolveInteractionTexts, m as VERCEL_INTERACTION_TOOL_NAME, n as A2UI_SPEC_ACTION, nt as a2uiComponentShapes, o as CHART_PALETTE, ot as interactionToFormModel, p as UI_PRESET_NAMES, q as uiPreset, r as A2UI_SPEC_FORM_PATH, rt as buildA2uiCatalogDefinition, s as DESCRIBE_UI_PRESET_TOOL, st as mountEchart, t as A2UI_BASIC_CATALOG_ID, tt as a2uiComponentSchema, u as SPEC_TABLE_MIN_COLUMN_VAR, ut as resolveSurfaceFormTexts, v as WebFormBridge, w as collectValues, x as collectFormScopes, y as applySuggestion, z as renderRenderResult } from "./dist-CJqQsIm9.js";
3
3
 
4
- export { A2UI_BASIC_CATALOG_ID, A2UI_COMMON_TYPES, A2UI_SPEC_ACTION, A2UI_SPEC_FORM_PATH, A2UI_SURFACE_ACTION, A2UI_VERSION, CHART_PALETTE, DESCRIBE_UI_PRESET_TOOL, RENDER_UI_TOOL, UI_CATALOG_GROUPS, UI_CATALOG_PROMPT_BUDGET_BYTES, UI_PRESETS, UI_PRESET_NAMES, VERCEL_INTERACTION_TOOL_NAME, VercelUiBridge, WEBSKILL_A2UI_CATALOG_ID, WEBSKILL_STYLES_CSS, WEBSKILL_SURFACE_ACTION, WebFormBridge, a2uiComponentSchema, a2uiComponentShapes, applySuggestion, buildA2uiCatalogDefinition, buildRenderResult, chartSpecFromProps, chartToTable, collectFormScopes, collectScopedValues, collectSpecActions, collectValues, createUiCatalogToolSource, defineUiCatalog, ensureStyles, fromA2uiSpecAction, fromA2uiSurfaceAction, fromUiSurfaceActionDispatch, fromVercelToolResult, interactionToFormModel, interactionToUiSpec, loadOpenUiPeers, loadWebSkillLitCatalog, mountEchart, qualifyFieldName, renderBlocks, renderMiniChart, renderMiniMarkdown, renderRenderResult, shapeInteractionValue, toA2uiSpecMessages, toA2uiSurfaceAction, toJsonRenderSpec, toOpenUiSpecLang, toUiSurfaceActionDispatch, toVercelToolInvocation, uiCatalog, uiPreset };
4
+ export { A2UI_BASIC_CATALOG_ID, A2UI_COMMON_TYPES, A2UI_SPEC_ACTION, A2UI_SPEC_FORM_PATH, A2UI_SURFACE_ACTION, A2UI_VERSION, CHART_PALETTE, DEFAULT_INTERACTION_TEXTS, DEFAULT_SURFACE_FORM_TEXTS, DESCRIBE_UI_PRESET_TOOL, MAX_CONDITION_DEPTH, RENDER_UI_TOOL, SPEC_TABLE_MIN_COLUMN_VAR, SPEC_TABLE_MIN_COLUMN_WIDTH, UI_CATALOG_GROUPS, UI_CATALOG_PROMPT_BUDGET_BYTES, UI_PRESETS, UI_PRESET_NAMES, VERCEL_INTERACTION_TOOL_NAME, VercelUiBridge, WEBSKILL_A2UI_CATALOG_ID, WEBSKILL_STYLES_CSS, WEBSKILL_SURFACE_ACTION, WebFormBridge, a2uiComponentSchema, a2uiComponentShapes, applySuggestion, buildA2uiCatalogDefinition, buildRenderResult, chartSpecFromProps, chartToTable, collectFormScopes, collectScopedValues, collectSpecActions, collectValues, createUiCatalogToolSource, defineUiCatalog, ensureStyles, evaluateFieldCondition, fromA2uiSpecAction, fromA2uiSurfaceAction, fromUiSurfaceActionDispatch, fromVercelToolResult, interactionToFormModel, interactionToUiSpec, loadOpenUiPeers, loadWebSkillLitCatalog, mountEchart, normalizeColumnWidths, qualifyFieldName, renderBlocks, renderMiniChart, renderMiniMarkdown, renderRenderResult, resolveColumnWidths, resolveInteractionTexts, resolveSurfaceFormTexts, shapeInteractionValue, toA2uiSpecMessages, toA2uiSurfaceAction, toJsonRenderSpec, toOpenUiSpecLang, toUiSurfaceActionDispatch, toVercelToolInvocation, uiCatalog, uiPreset };
@@ -1,4 +1,4 @@
1
- import { J as WEBSKILL_A2UI_CATALOG_ID, Q as chartSpecFromProps, W as A2UI_CHILDREN_PROP, X as a2uiComponentShapes, et as mountEchart, nt as uiCatalog, tt as renderMiniMarkdown } from "./dist-DnYG2-eY.js";
1
+ import { J as A2UI_CHILDREN_PROP, Z as DEFAULT_SURFACE_FORM_TEXTS, ct as renderMiniMarkdown, et as WEBSKILL_A2UI_CATALOG_ID, ft as uiCatalog, it as chartSpecFromProps, nt as a2uiComponentShapes, st as mountEchart } from "./dist-CJqQsIm9.js";
2
2
  import { A2uiController, A2uiLitElement } from "@a2ui/lit/v0_9";
3
3
  import { Catalog } from "@a2ui/web_core/v0_9";
4
4
  import { z } from "zod/v3";
@@ -1419,7 +1419,7 @@ var f = class extends i {
1419
1419
  };
1420
1420
 
1421
1421
  //#endregion
1422
- //#region ../ui/dist/webskillLitCatalog-_mugzRHx.js
1422
+ //#region ../ui/dist/webskillLitCatalog-DwTwSBFt.js
1423
1423
  /**
1424
1424
  * Lit 元素上的 echarts 挂载指令。
1425
1425
  * A2UI 档的 catalog `Chart` 渲染在 shadow root 里,实例必须随元素断开而 dispose,
@@ -1539,6 +1539,16 @@ const sharedStyles = i$4`
1539
1539
  overflow: auto;
1540
1540
  border: 1px solid var(--border);
1541
1541
  border-radius: var(--radius);
1542
+ container-type: inline-size;
1543
+ container-name: webskill-table;
1544
+ }
1545
+ /* 窄档降到 SPEC_TABLE_MIN_COLUMN_WIDTH.mobile。native 档的同名规则在 surfaces.css,
1546
+ 那边的选择器进不了 shadow root,所以两侧各写一遍——变量名与取值必须同步(T-25-F) */
1547
+ @container webskill-table (width < 30rem) {
1548
+ th,
1549
+ td {
1550
+ --webskill-table-min-col: 5rem;
1551
+ }
1542
1552
  }
1543
1553
  table {
1544
1554
  width: max-content;
@@ -1548,7 +1558,7 @@ const sharedStyles = i$4`
1548
1558
  }
1549
1559
  th,
1550
1560
  td {
1551
- min-width: 8rem;
1561
+ min-width: var(--webskill-table-min-col, 8rem);
1552
1562
  border-bottom: 1px solid var(--border);
1553
1563
  padding: 0.375rem 0.5rem;
1554
1564
  text-align: left;
@@ -1738,6 +1748,15 @@ const renderers = {
1738
1748
  <form @submit=${(event) => event.preventDefault()}>
1739
1749
  ${props["title"] ? T`<h3>${str(props, "title")}</h3>` : A} ${children(props, host)}
1740
1750
  </form>
1751
+ `,
1752
+ FieldArray: (props, host) => T`
1753
+ <fieldset data-webskill-surface-array=${str(props, "name")}>
1754
+ <legend>${str(props, "label", str(props, "name"))}</legend>
1755
+ ${children(props, host)}
1756
+ <p role="note" data-webskill-degraded="field-array">
1757
+ ${str(props, "degradedNote", DEFAULT_SURFACE_FORM_TEXTS.arrayFirstItemOnly)}
1758
+ </p>
1759
+ </fieldset>
1741
1760
  `,
1742
1761
  Field: (props) => {
1743
1762
  const name = str(props, "name");
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@webskill/sdk",
3
- "version": "0.7.0",
4
- "description": "WebSkill \u2014 browser/Node agent skill runtime (skills, tools, MCP, governance, UI)",
3
+ "version": "0.8.0",
4
+ "description": "WebSkill browser/Node agent skill runtime (skills, tools, MCP, governance, UI)",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "engines": {