@seed-ship/mcp-ui-solid 6.23.0 → 6.24.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 (79) hide show
  1. package/CHANGELOG.md +125 -0
  2. package/README.md +107 -2
  3. package/dist/components/ChartJSRenderer.cjs +192 -66
  4. package/dist/components/ChartJSRenderer.cjs.map +1 -1
  5. package/dist/components/ChartJSRenderer.d.ts.map +1 -1
  6. package/dist/components/ChartJSRenderer.js +192 -66
  7. package/dist/components/ChartJSRenderer.js.map +1 -1
  8. package/dist/components/DegradedFallback.cjs +34 -2
  9. package/dist/components/DegradedFallback.cjs.map +1 -1
  10. package/dist/components/DegradedFallback.d.ts +7 -0
  11. package/dist/components/DegradedFallback.d.ts.map +1 -1
  12. package/dist/components/DegradedFallback.js +34 -2
  13. package/dist/components/DegradedFallback.js.map +1 -1
  14. package/dist/components/MissingValue.cjs +43 -0
  15. package/dist/components/MissingValue.cjs.map +1 -0
  16. package/dist/components/MissingValue.d.ts +27 -0
  17. package/dist/components/MissingValue.d.ts.map +1 -0
  18. package/dist/components/MissingValue.js +43 -0
  19. package/dist/components/MissingValue.js.map +1 -0
  20. package/dist/components/UIResourceRenderer.cjs +237 -199
  21. package/dist/components/UIResourceRenderer.cjs.map +1 -1
  22. package/dist/components/UIResourceRenderer.d.ts.map +1 -1
  23. package/dist/components/UIResourceRenderer.js +237 -199
  24. package/dist/components/UIResourceRenderer.js.map +1 -1
  25. package/dist/components/chart-data-table.cjs +30 -5
  26. package/dist/components/chart-data-table.cjs.map +1 -1
  27. package/dist/components/chart-data-table.d.ts +18 -1
  28. package/dist/components/chart-data-table.d.ts.map +1 -1
  29. package/dist/components/chart-data-table.js +30 -5
  30. package/dist/components/chart-data-table.js.map +1 -1
  31. package/dist/components/chart-missing-plugin.cjs +194 -0
  32. package/dist/components/chart-missing-plugin.cjs.map +1 -0
  33. package/dist/components/chart-missing-plugin.d.ts +127 -0
  34. package/dist/components/chart-missing-plugin.d.ts.map +1 -0
  35. package/dist/components/chart-missing-plugin.js +194 -0
  36. package/dist/components/chart-missing-plugin.js.map +1 -0
  37. package/dist/context/MCPUIStringsContext.cjs +12 -1
  38. package/dist/context/MCPUIStringsContext.cjs.map +1 -1
  39. package/dist/context/MCPUIStringsContext.d.ts +62 -0
  40. package/dist/context/MCPUIStringsContext.d.ts.map +1 -1
  41. package/dist/context/MCPUIStringsContext.js +12 -1
  42. package/dist/context/MCPUIStringsContext.js.map +1 -1
  43. package/dist/services/component-registry.cjs +9 -2
  44. package/dist/services/component-registry.cjs.map +1 -1
  45. package/dist/services/component-registry.d.ts.map +1 -1
  46. package/dist/services/component-registry.js +9 -2
  47. package/dist/services/component-registry.js.map +1 -1
  48. package/dist/services/validation.cjs +31 -8
  49. package/dist/services/validation.cjs.map +1 -1
  50. package/dist/services/validation.d.ts.map +1 -1
  51. package/dist/services/validation.js +31 -8
  52. package/dist/services/validation.js.map +1 -1
  53. package/dist/types/index.d.ts +14 -2
  54. package/dist/types/index.d.ts.map +1 -1
  55. package/dist/utils/degraded-projections.cjs +19 -3
  56. package/dist/utils/degraded-projections.cjs.map +1 -1
  57. package/dist/utils/degraded-projections.d.ts +22 -2
  58. package/dist/utils/degraded-projections.d.ts.map +1 -1
  59. package/dist/utils/degraded-projections.js +19 -3
  60. package/dist/utils/degraded-projections.js.map +1 -1
  61. package/dist/utils/missing-value.cjs +60 -0
  62. package/dist/utils/missing-value.cjs.map +1 -0
  63. package/dist/utils/missing-value.d.ts +79 -0
  64. package/dist/utils/missing-value.d.ts.map +1 -0
  65. package/dist/utils/missing-value.js +60 -0
  66. package/dist/utils/missing-value.js.map +1 -0
  67. package/package.json +3 -3
  68. package/src/components/ChartJSRenderer.tsx +159 -6
  69. package/src/components/DegradedFallback.tsx +24 -2
  70. package/src/components/MissingValue.tsx +61 -0
  71. package/src/components/UIResourceRenderer.tsx +42 -9
  72. package/src/components/chart-data-table.ts +50 -6
  73. package/src/components/chart-missing-plugin.ts +334 -0
  74. package/src/context/MCPUIStringsContext.tsx +76 -0
  75. package/src/services/component-registry.ts +10 -2
  76. package/src/services/validation.ts +44 -9
  77. package/src/types/index.ts +13 -1
  78. package/src/utils/degraded-projections.ts +44 -4
  79. package/src/utils/missing-value.ts +127 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MissingValue.cjs","sources":["../../src/components/MissingValue.tsx"],"sourcesContent":["/**\n * The visible and accessible marks of a missing value (v6.24.0).\n *\n * A table cell with no value has always shown `-`. On its own that glyph says\n * nothing to a screen reader (it is read as \"dash\", or skipped) and it is easy\n * to take for a zero or a minus sign. These two components give it a meaning:\n *\n * - {@link MissingValueMark} — the cell content: the `-` hidden from\n * assistive technology, followed by `strings.missingValue` hidden from\n * sight. Visually-hidden through an inline style rather than Tailwind's\n * `sr-only`, so the text cannot leak on a host whose Tailwind build does\n * not scan this package.\n * - {@link MissingValueLegend} — one line under a table or data view that\n * contains a missing value, so the convention never has to be guessed.\n *\n * Both are SSR-safe: no browser API, and the same markup on server and client.\n */\n\nimport type { Component, JSX } from 'solid-js'\nimport { formatMCPUIString, useMCPUIStrings } from '../context/MCPUIStringsContext'\nimport { MISSING_VALUE_MARKER } from '../utils/missing-value'\n\n/** The classic visually-hidden recipe: in the accessibility tree, out of sight. */\nexport const VISUALLY_HIDDEN_STYLE: JSX.CSSProperties = {\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: '0',\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n 'white-space': 'nowrap',\n border: '0',\n}\n\n/** Content of a cell whose value is missing. */\nexport const MissingValueMark: Component = () => {\n const strings = useMCPUIStrings()\n return (\n <span data-mcp-missing-value=\"\">\n <span aria-hidden=\"true\" class=\"text-gray-400 dark:text-gray-500\">\n {MISSING_VALUE_MARKER}\n </span>\n <span style={VISUALLY_HIDDEN_STYLE}>{strings.missingValue}</span>\n </span>\n )\n}\n\n/** The legend line explaining the missing-value glyph. */\nexport const MissingValueLegend: Component<{ class?: string }> = (props) => {\n const strings = useMCPUIStrings()\n return (\n <p\n data-mcp-missing-legend=\"\"\n role=\"note\"\n class={`text-xs text-gray-500 dark:text-gray-400 ${props.class ?? ''}`}\n >\n {formatMCPUIString(strings.missingValueLegend, { marker: MISSING_VALUE_MARKER })}\n </p>\n )\n}\n"],"names":["VISUALLY_HIDDEN_STYLE","position","width","height","padding","margin","overflow","clip","border","MissingValueMark","strings","useMCPUIStrings","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$insert","MISSING_VALUE_MARKER","missingValue","_$effect","_$p","_$style","MissingValueLegend","props","_el$4","_tmpl$2","formatMCPUIString","missingValueLegend","marker","_$className","class"],"mappings":";;;;;;;AAuBO,MAAMA,wBAA2C;AAAA,EACtDC,UAAU;AAAA,EACVC,OAAO;AAAA,EACPC,QAAQ;AAAA,EACRC,SAAS;AAAA,EACTC,QAAQ;AAAA,EACRC,UAAU;AAAA,EACVC,MAAM;AAAA,EACN,eAAe;AAAA,EACfC,QAAQ;AACV;AAGO,MAAMC,mBAA8BA,MAAM;AAC/C,QAAMC,UAAUC,oBAAAA,gBAAAA;AAChB,UAAA,MAAA;AAAA,QAAAC,OAAAC,mBAAAC,MAAA,GAAAC,QAAAH,KAAAI,YAAAC,QAAAF,MAAAG;AAAAC,QAAAA,OAAAJ,OAGOK,iCAAoB;AAAAD,QAAAA,OAAAF,OAAA,MAEcP,QAAQW,YAAY;AAAAC,QAAAA,OAAAC,CAAAA,QAAAC,IAAAA,MAAAP,OAA5CjB,uBAAqBuB,GAAA,CAAA;AAAA,WAAAX;AAAAA,EAAA,GAAA;AAGxC;AAGO,MAAMa,qBAAqDC,CAAAA,UAAU;AAC1E,QAAMhB,UAAUC,oBAAAA,gBAAAA;AAChB,UAAA,MAAA;AAAA,QAAAgB,QAAAd,IAAAA,eAAAe,OAAA;AAAAT,QAAAA,OAAAQ,OAAA,MAMKE,+BAAkBnB,QAAQoB,oBAAoB;AAAA,MAAEC,QAAQX,aAAAA;AAAAA,IAAAA,CAAsB,CAAC;AAAAE,eAAA,MAAAU,cAAAL,OAFzE,4CAA4CD,MAAMO,SAAS,EAAE,EAAE,CAAA;AAAA,WAAAN;AAAAA,EAAA,GAAA;AAK5E;;;;"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The visible and accessible marks of a missing value (v6.24.0).
3
+ *
4
+ * A table cell with no value has always shown `-`. On its own that glyph says
5
+ * nothing to a screen reader (it is read as "dash", or skipped) and it is easy
6
+ * to take for a zero or a minus sign. These two components give it a meaning:
7
+ *
8
+ * - {@link MissingValueMark} — the cell content: the `-` hidden from
9
+ * assistive technology, followed by `strings.missingValue` hidden from
10
+ * sight. Visually-hidden through an inline style rather than Tailwind's
11
+ * `sr-only`, so the text cannot leak on a host whose Tailwind build does
12
+ * not scan this package.
13
+ * - {@link MissingValueLegend} — one line under a table or data view that
14
+ * contains a missing value, so the convention never has to be guessed.
15
+ *
16
+ * Both are SSR-safe: no browser API, and the same markup on server and client.
17
+ */
18
+ import type { Component, JSX } from 'solid-js';
19
+ /** The classic visually-hidden recipe: in the accessibility tree, out of sight. */
20
+ export declare const VISUALLY_HIDDEN_STYLE: JSX.CSSProperties;
21
+ /** Content of a cell whose value is missing. */
22
+ export declare const MissingValueMark: Component;
23
+ /** The legend line explaining the missing-value glyph. */
24
+ export declare const MissingValueLegend: Component<{
25
+ class?: string;
26
+ }>;
27
+ //# sourceMappingURL=MissingValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MissingValue.d.ts","sourceRoot":"","sources":["../../src/components/MissingValue.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAI9C,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,EAAE,GAAG,CAAC,aAUvC,CAAA;AAED,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,EAAE,SAU9B,CAAA;AAED,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB,EAAE,SAAS,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAW5D,CAAA"}
@@ -0,0 +1,43 @@
1
+ import { getNextElement, insert, effect, style, className, template } from "solid-js/web";
2
+ import { useMCPUIStrings } from "../context/MCPUIStringsContext.js";
3
+ import { MISSING_VALUE_MARKER } from "../utils/missing-value.js";
4
+ import { formatMCPUIString } from "../utils/format-string.js";
5
+ var _tmpl$ = /* @__PURE__ */ template(`<span data-mcp-missing-value><span aria-hidden=true class="text-gray-400 dark:text-gray-500"></span><span>`), _tmpl$2 = /* @__PURE__ */ template(`<p data-mcp-missing-legend role=note>`);
6
+ const VISUALLY_HIDDEN_STYLE = {
7
+ position: "absolute",
8
+ width: "1px",
9
+ height: "1px",
10
+ padding: "0",
11
+ margin: "-1px",
12
+ overflow: "hidden",
13
+ clip: "rect(0, 0, 0, 0)",
14
+ "white-space": "nowrap",
15
+ border: "0"
16
+ };
17
+ const MissingValueMark = () => {
18
+ const strings = useMCPUIStrings();
19
+ return (() => {
20
+ var _el$ = getNextElement(_tmpl$), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
21
+ insert(_el$2, MISSING_VALUE_MARKER);
22
+ insert(_el$3, () => strings.missingValue);
23
+ effect((_$p) => style(_el$3, VISUALLY_HIDDEN_STYLE, _$p));
24
+ return _el$;
25
+ })();
26
+ };
27
+ const MissingValueLegend = (props) => {
28
+ const strings = useMCPUIStrings();
29
+ return (() => {
30
+ var _el$4 = getNextElement(_tmpl$2);
31
+ insert(_el$4, () => formatMCPUIString(strings.missingValueLegend, {
32
+ marker: MISSING_VALUE_MARKER
33
+ }));
34
+ effect(() => className(_el$4, `text-xs text-gray-500 dark:text-gray-400 ${props.class ?? ""}`));
35
+ return _el$4;
36
+ })();
37
+ };
38
+ export {
39
+ MissingValueLegend,
40
+ MissingValueMark,
41
+ VISUALLY_HIDDEN_STYLE
42
+ };
43
+ //# sourceMappingURL=MissingValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MissingValue.js","sources":["../../src/components/MissingValue.tsx"],"sourcesContent":["/**\n * The visible and accessible marks of a missing value (v6.24.0).\n *\n * A table cell with no value has always shown `-`. On its own that glyph says\n * nothing to a screen reader (it is read as \"dash\", or skipped) and it is easy\n * to take for a zero or a minus sign. These two components give it a meaning:\n *\n * - {@link MissingValueMark} — the cell content: the `-` hidden from\n * assistive technology, followed by `strings.missingValue` hidden from\n * sight. Visually-hidden through an inline style rather than Tailwind's\n * `sr-only`, so the text cannot leak on a host whose Tailwind build does\n * not scan this package.\n * - {@link MissingValueLegend} — one line under a table or data view that\n * contains a missing value, so the convention never has to be guessed.\n *\n * Both are SSR-safe: no browser API, and the same markup on server and client.\n */\n\nimport type { Component, JSX } from 'solid-js'\nimport { formatMCPUIString, useMCPUIStrings } from '../context/MCPUIStringsContext'\nimport { MISSING_VALUE_MARKER } from '../utils/missing-value'\n\n/** The classic visually-hidden recipe: in the accessibility tree, out of sight. */\nexport const VISUALLY_HIDDEN_STYLE: JSX.CSSProperties = {\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: '0',\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n 'white-space': 'nowrap',\n border: '0',\n}\n\n/** Content of a cell whose value is missing. */\nexport const MissingValueMark: Component = () => {\n const strings = useMCPUIStrings()\n return (\n <span data-mcp-missing-value=\"\">\n <span aria-hidden=\"true\" class=\"text-gray-400 dark:text-gray-500\">\n {MISSING_VALUE_MARKER}\n </span>\n <span style={VISUALLY_HIDDEN_STYLE}>{strings.missingValue}</span>\n </span>\n )\n}\n\n/** The legend line explaining the missing-value glyph. */\nexport const MissingValueLegend: Component<{ class?: string }> = (props) => {\n const strings = useMCPUIStrings()\n return (\n <p\n data-mcp-missing-legend=\"\"\n role=\"note\"\n class={`text-xs text-gray-500 dark:text-gray-400 ${props.class ?? ''}`}\n >\n {formatMCPUIString(strings.missingValueLegend, { marker: MISSING_VALUE_MARKER })}\n </p>\n )\n}\n"],"names":["VISUALLY_HIDDEN_STYLE","position","width","height","padding","margin","overflow","clip","border","MissingValueMark","strings","useMCPUIStrings","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$insert","MISSING_VALUE_MARKER","missingValue","_$effect","_$p","_$style","MissingValueLegend","props","_el$4","_tmpl$2","formatMCPUIString","missingValueLegend","marker","_$className","class"],"mappings":";;;;;AAuBO,MAAMA,wBAA2C;AAAA,EACtDC,UAAU;AAAA,EACVC,OAAO;AAAA,EACPC,QAAQ;AAAA,EACRC,SAAS;AAAA,EACTC,QAAQ;AAAA,EACRC,UAAU;AAAA,EACVC,MAAM;AAAA,EACN,eAAe;AAAA,EACfC,QAAQ;AACV;AAGO,MAAMC,mBAA8BA,MAAM;AAC/C,QAAMC,UAAUC,gBAAAA;AAChB,UAAA,MAAA;AAAA,QAAAC,OAAAC,eAAAC,MAAA,GAAAC,QAAAH,KAAAI,YAAAC,QAAAF,MAAAG;AAAAC,WAAAJ,OAGOK,oBAAoB;AAAAD,WAAAF,OAAA,MAEcP,QAAQW,YAAY;AAAAC,WAAAC,CAAAA,QAAAC,MAAAP,OAA5CjB,uBAAqBuB,GAAA,CAAA;AAAA,WAAAX;AAAAA,EAAA,GAAA;AAGxC;AAGO,MAAMa,qBAAqDC,CAAAA,UAAU;AAC1E,QAAMhB,UAAUC,gBAAAA;AAChB,UAAA,MAAA;AAAA,QAAAgB,QAAAd,eAAAe,OAAA;AAAAT,WAAAQ,OAAA,MAMKE,kBAAkBnB,QAAQoB,oBAAoB;AAAA,MAAEC,QAAQX;AAAAA,IAAAA,CAAsB,CAAC;AAAAE,WAAA,MAAAU,UAAAL,OAFzE,4CAA4CD,MAAMO,SAAS,EAAE,EAAE,CAAA;AAAA,WAAAN;AAAAA,EAAA,GAAA;AAK5E;"}