@mosaic-media/sdui-react 0.1.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 (87) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +54 -0
  3. package/dist/components/controls.d.ts +34 -0
  4. package/dist/components/controls.d.ts.map +1 -0
  5. package/dist/components/controls.js +93 -0
  6. package/dist/components/controls.js.map +1 -0
  7. package/dist/components/definitions.d.ts +3 -0
  8. package/dist/components/definitions.d.ts.map +1 -0
  9. package/dist/components/definitions.js +494 -0
  10. package/dist/components/definitions.js.map +1 -0
  11. package/dist/components/definitions.layout.d.ts +3 -0
  12. package/dist/components/definitions.layout.d.ts.map +1 -0
  13. package/dist/components/definitions.layout.js +197 -0
  14. package/dist/components/definitions.layout.js.map +1 -0
  15. package/dist/components/feedback/Unknown.d.ts +4 -0
  16. package/dist/components/feedback/Unknown.d.ts.map +1 -0
  17. package/dist/components/feedback/Unknown.js +13 -0
  18. package/dist/components/feedback/Unknown.js.map +1 -0
  19. package/dist/components/feedback.d.ts +6 -0
  20. package/dist/components/feedback.d.ts.map +1 -0
  21. package/dist/components/feedback.js +10 -0
  22. package/dist/components/feedback.js.map +1 -0
  23. package/dist/components/host.d.ts +11 -0
  24. package/dist/components/host.d.ts.map +1 -0
  25. package/dist/components/host.js +15 -0
  26. package/dist/components/host.js.map +1 -0
  27. package/dist/components/index.d.ts +3 -0
  28. package/dist/components/index.d.ts.map +1 -0
  29. package/dist/components/index.js +60 -0
  30. package/dist/components/index.js.map +1 -0
  31. package/dist/components/layout.d.ts +9 -0
  32. package/dist/components/layout.d.ts.map +1 -0
  33. package/dist/components/layout.js +23 -0
  34. package/dist/components/layout.js.map +1 -0
  35. package/dist/components/media.d.ts +5 -0
  36. package/dist/components/media.d.ts.map +1 -0
  37. package/dist/components/media.js +15 -0
  38. package/dist/components/media.js.map +1 -0
  39. package/dist/components/primitives.d.ts +39 -0
  40. package/dist/components/primitives.d.ts.map +1 -0
  41. package/dist/components/primitives.js +75 -0
  42. package/dist/components/primitives.js.map +1 -0
  43. package/dist/components/shared.d.ts +13 -0
  44. package/dist/components/shared.d.ts.map +1 -0
  45. package/dist/components/shared.js +36 -0
  46. package/dist/components/shared.js.map +1 -0
  47. package/dist/index.d.ts +19 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +26 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/lib/platform.d.ts +12 -0
  52. package/dist/lib/platform.d.ts.map +1 -0
  53. package/dist/lib/platform.js +74 -0
  54. package/dist/lib/platform.js.map +1 -0
  55. package/dist/sdui/Renderer.d.ts +16 -0
  56. package/dist/sdui/Renderer.d.ts.map +1 -0
  57. package/dist/sdui/Renderer.js +40 -0
  58. package/dist/sdui/Renderer.js.map +1 -0
  59. package/dist/sdui/ShellProvider.d.ts +24 -0
  60. package/dist/sdui/ShellProvider.d.ts.map +1 -0
  61. package/dist/sdui/ShellProvider.js +110 -0
  62. package/dist/sdui/ShellProvider.js.map +1 -0
  63. package/dist/sdui/context.d.ts +17 -0
  64. package/dist/sdui/context.d.ts.map +1 -0
  65. package/dist/sdui/context.js +18 -0
  66. package/dist/sdui/context.js.map +1 -0
  67. package/dist/sdui/registry.d.ts +13 -0
  68. package/dist/sdui/registry.d.ts.map +1 -0
  69. package/dist/sdui/registry.js +26 -0
  70. package/dist/sdui/registry.js.map +1 -0
  71. package/dist/sdui/style.d.ts +81 -0
  72. package/dist/sdui/style.d.ts.map +1 -0
  73. package/dist/sdui/style.js +149 -0
  74. package/dist/sdui/style.js.map +1 -0
  75. package/dist/sdui/template.d.ts +19 -0
  76. package/dist/sdui/template.d.ts.map +1 -0
  77. package/dist/sdui/template.js +111 -0
  78. package/dist/sdui/template.js.map +1 -0
  79. package/dist/sdui/types.d.ts +96 -0
  80. package/dist/sdui/types.d.ts.map +1 -0
  81. package/dist/sdui/types.js +4 -0
  82. package/dist/sdui/types.js.map +1 -0
  83. package/dist/styles/components.css +772 -0
  84. package/dist/styles/global.css +80 -0
  85. package/dist/styles/index.css +5 -0
  86. package/dist/styles/tokens.css +150 -0
  87. package/package.json +37 -0
package/README.md ADDED
@@ -0,0 +1,54 @@
1
+ # @mosaic-media/sdui-react
2
+
3
+ The **React runtime** for the [Mosaic](https://github.com/mosaic-media) Server-Driven-UI contract — the web binding that turns an SDUI payload into rendered UI. Consumed by the Shell ([`mosaic-shell`](https://github.com/mosaic-media/mosaic-shell)), the component storybook ([`mosaic-storybook`](https://github.com/mosaic-media/mosaic-storybook)), and any other web surface — all as peers.
4
+
5
+ It is a **client implementation**, not the contract. The technology-agnostic contract (schema, standard definitions, tokens) lives in [`@mosaic-media/sdui`](https://github.com/mosaic-media/mosaic-sdui); this is one specific way to render it, in React. That's why it's **AGPL-3.0-only** (first-party client code) while the contract is Apache-2.0.
6
+
7
+ ## What's in it
8
+
9
+ - **Primitives** — `Box`, `Text`, `Image`, `Icon`, `Pressable`, the form inputs, `Tabs`, `Menu`, … the irreducible, client-implemented vocabulary, styled from tokens.
10
+ - **Registry + renderer** — `register`/`resolve`, `RenderNode` (recursive tree walk), and the `Unknown` fallback for open-vocabulary forward-compat.
11
+ - **Definition expander** — `defineComponent` + the `$bind`/`$match`/`$each`/`$if`/`Outlet` template engine, so components delivered as data render like native ones.
12
+ - **Runtime** — `ShellProvider` (interprets `Action` envelopes, owns overlays + toasts), `useRuntime`, `OverlayHost`/`ToastHost`, and a GraphQL client.
13
+ - **The token-driven skin** — shipped as `@mosaic-media/sdui-react/styles.css`.
14
+
15
+ ## Use it
16
+
17
+ ```bash
18
+ npm install @mosaic-media/sdui-react react react-dom
19
+ ```
20
+
21
+ ```tsx
22
+ import {
23
+ ShellProvider, RenderNode, installComponents, defineComponents,
24
+ } from "@mosaic-media/sdui-react";
25
+ import "@mosaic-media/sdui-react/styles.css";
26
+
27
+ installComponents(); // register the built-in vocabulary
28
+ // defineComponents(moduleDefinitions) // + any definitions delivered as data
29
+
30
+ <ShellProvider screen="home" onNavigate={…} onBack={…} render={…}>
31
+ <RenderNode node={payload} />
32
+ </ShellProvider>
33
+ ```
34
+
35
+ For local cross-repo work (developing the runtime against a consumer), a
36
+ consumer can depend on it by path — `"@mosaic-media/sdui-react": "file:../mosaic-sdui-react"` — instead of the published version; the `prepare` script builds `dist` on install.
37
+
38
+ ## Build
39
+
40
+ ```bash
41
+ npm install # runs prepare → build
42
+ npm run build # tsc → dist + copy the CSS
43
+ npm run typecheck
44
+ ```
45
+
46
+ Pure `tsc` build (source ships nothing; consumers get `dist` JS + `.d.ts`). React is a peer dependency.
47
+
48
+ ## Releasing
49
+
50
+ `git tag v0.1.0 && git push origin v0.1.0` → `.github/workflows/release.yml` publishes to npm (needs an `NPM_TOKEN` secret for the `@mosaic-media` scope).
51
+
52
+ ## Licence
53
+
54
+ **AGPL-3.0-only** (see [`LICENSE`](LICENSE)). See [ADR 0022–0024](https://github.com/mosaic-media/mosaic-architecture/tree/main/docs/adr) for the first-party-client licensing rationale.
@@ -0,0 +1,34 @@
1
+ import type { UINode } from "../sdui/types";
2
+ /** TextInput — bare text field owning its value. */
3
+ export declare function TextInput({ node }: {
4
+ node: UINode;
5
+ }): import("react").JSX.Element;
6
+ /** Switch — bare on/off toggle owning its state; emits an Action on change. */
7
+ export declare function Switch({ node }: {
8
+ node: UINode;
9
+ }): import("react").JSX.Element;
10
+ /** SelectInput — bare dropdown owning its value. */
11
+ export declare function SelectInput({ node }: {
12
+ node: UINode;
13
+ }): import("react").JSX.Element;
14
+ /** Menu — a click-to-open list of actionable items. */
15
+ export declare function Menu({ node }: {
16
+ node: UINode;
17
+ }): import("react").JSX.Element;
18
+ /** SearchBar — the submit Action carries the live term, so it owns its input. */
19
+ export declare function SearchBar({ node }: {
20
+ node: UINode;
21
+ }): import("react").JSX.Element;
22
+ /** Slider — shows its own live value, so output couples to internal state. */
23
+ export declare function Slider({ node }: {
24
+ node: UINode;
25
+ }): import("react").JSX.Element;
26
+ /** RatingControl — clickable stars owning the selection. */
27
+ export declare function RatingControl({ node }: {
28
+ node: UINode;
29
+ }): import("react").JSX.Element;
30
+ /** ProgressBar — fill width computed from `value` (0..1). */
31
+ export declare function ProgressBar({ node }: {
32
+ node: UINode;
33
+ }): import("react").JSX.Element;
34
+ //# sourceMappingURL=controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../src/components/controls.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAKpD,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,+BAanD;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,+BAkBhD;AAED,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,+BAerD;AAED,uDAAuD;AACvD,wBAAgB,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,+BA8B9C;AAED,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,+BAwBnD;AAED,8EAA8E;AAC9E,wBAAgB,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,+BAgBhD;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,+BAsBvD;AAED,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,+BAQrD"}
@@ -0,0 +1,93 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ // SPDX-FileCopyrightText: 2026 the Mosaic authors
4
+ /*
5
+ * Interactive PRIMITIVES. Each stays native for one concrete reason a static
6
+ * data tree can't overcome:
7
+ * - TextInput/SelectInput/Switch — own their input value (local state)
8
+ * - Menu — owns open/closed state
9
+ * - SearchBar — the submit Action must carry the live
10
+ * input value (state → action payload)
11
+ * - Slider — displays its own live value beside itself
12
+ * (output couples to internal state)
13
+ * - RatingControl — owns selection state
14
+ * - ProgressBar — fill width is computed from `value`
15
+ *
16
+ * The LABELLED form controls (TextField/Toggle/Select) were compositions of a
17
+ * bare input + static chrome, so they moved to definitions (definitions.ts).
18
+ */
19
+ import { useState } from "react";
20
+ import { prop } from "../sdui/registry";
21
+ import { useRuntime } from "../sdui/context";
22
+ import { cx, Icon } from "./shared";
23
+ /** TextInput — bare text field owning its value. */
24
+ export function TextInput({ node }) {
25
+ const kind = prop(node, "inputType", "text");
26
+ const placeholder = prop(node, "placeholder", "");
27
+ const [value, setValue] = useState(prop(node, "value", ""));
28
+ return (_jsx("input", { className: "msc-field__input", type: kind, placeholder: placeholder, value: value, onChange: (e) => setValue(e.target.value) }));
29
+ }
30
+ /** Switch — bare on/off toggle owning its state; emits an Action on change. */
31
+ export function Switch({ node }) {
32
+ const { emit } = useRuntime();
33
+ const action = prop(node, "action", undefined);
34
+ const [on, setOn] = useState(prop(node, "value", false));
35
+ return (_jsx("button", { type: "button", role: "switch", "aria-checked": on, className: cx("msc-toggle__track", on && "is-on"), onClick: () => {
36
+ setOn((v) => !v);
37
+ emit(action);
38
+ }, children: _jsx("span", { className: "msc-toggle__thumb" }) }));
39
+ }
40
+ /** SelectInput — bare dropdown owning its value. */
41
+ export function SelectInput({ node }) {
42
+ const options = prop(node, "options", []);
43
+ const [value, setValue] = useState(prop(node, "value", options[0]?.value ?? ""));
44
+ return (_jsxs("div", { className: "msc-select", children: [_jsx("select", { className: "msc-select__el", value: value, onChange: (e) => setValue(e.target.value), children: options.map((o) => (_jsx("option", { value: o.value, children: o.label }, o.value))) }), _jsx(Icon, { name: "chevron-down", className: "msc-select__chevron" })] }));
45
+ }
46
+ /** Menu — a click-to-open list of actionable items. */
47
+ export function Menu({ node }) {
48
+ const { emit } = useRuntime();
49
+ const [open, setOpen] = useState(false);
50
+ const label = prop(node, "label", "Menu");
51
+ const items = prop(node, "items", []);
52
+ return (_jsxs("div", { className: cx("msc-menu", open && "is-open"), onMouseLeave: () => setOpen(false), children: [_jsx("button", { className: "msc-iconbtn msc-iconbtn--ghost", "aria-label": label, onClick: () => setOpen((o) => !o), children: _jsx(Icon, { name: "dots" }) }), open && (_jsx("div", { className: "msc-menu__list", role: "menu", children: items.map((it, i) => (_jsxs("button", { role: "menuitem", className: cx("msc-menu__item", it.tone === "danger" && "is-danger"), onClick: () => {
53
+ setOpen(false);
54
+ emit(it.action);
55
+ }, children: [it.icon && _jsx(Icon, { name: it.icon }), _jsx("span", { children: it.label })] }, i))) }))] }));
56
+ }
57
+ /** SearchBar — the submit Action carries the live term, so it owns its input. */
58
+ export function SearchBar({ node }) {
59
+ const { emit } = useRuntime();
60
+ const placeholder = prop(node, "placeholder", "Search your library…");
61
+ const screen = prop(node, "submitScreen", "search");
62
+ const [value, setValue] = useState(prop(node, "value", ""));
63
+ return (_jsxs("form", { className: "msc-search", role: "search", onSubmit: (e) => {
64
+ e.preventDefault();
65
+ emit({ kind: "navigate", screen, params: { q: value } });
66
+ }, children: [_jsx(Icon, { name: "search", className: "msc-search__icon" }), _jsx("input", { className: "msc-search__input", type: "search", value: value, placeholder: placeholder, onChange: (e) => setValue(e.target.value) })] }));
67
+ }
68
+ /** Slider — shows its own live value, so output couples to internal state. */
69
+ export function Slider({ node }) {
70
+ const label = prop(node, "label", undefined);
71
+ const min = prop(node, "min", 0);
72
+ const max = prop(node, "max", 100);
73
+ const [value, setValue] = useState(prop(node, "value", 50));
74
+ return (_jsxs("div", { className: "msc-field", children: [label && (_jsxs("div", { className: "msc-field__label msc-slider__label", children: [_jsx("span", { children: label }), _jsx("span", { className: "msc-slider__value", children: value })] })), _jsx("input", { className: "msc-slider", type: "range", min: min, max: max, value: value, onChange: (e) => setValue(Number(e.target.value)) })] }));
75
+ }
76
+ /** RatingControl — clickable stars owning the selection. */
77
+ export function RatingControl({ node }) {
78
+ const { emit } = useRuntime();
79
+ const max = prop(node, "max", 5);
80
+ const action = prop(node, "action", undefined);
81
+ const [value, setValue] = useState(prop(node, "value", 0));
82
+ return (_jsx("div", { className: "msc-rating", role: "slider", "aria-valuenow": value, "aria-valuemin": 0, "aria-valuemax": max, children: Array.from({ length: max }, (_, i) => i + 1).map((n) => (_jsx("button", { className: cx("msc-rating__star", n <= value && "is-filled"), "aria-label": `${n} of ${max}`, onClick: () => {
83
+ setValue(n);
84
+ emit(action);
85
+ }, children: _jsx(Icon, { name: "star" }) }, n))) }));
86
+ }
87
+ /** ProgressBar — fill width computed from `value` (0..1). */
88
+ export function ProgressBar({ node }) {
89
+ const value = Math.max(0, Math.min(1, prop(node, "value", 0)));
90
+ const tone = prop(node, "tone", "accent");
91
+ return (_jsx("div", { className: "msc-progress", role: "progressbar", "aria-valuenow": Math.round(value * 100), children: _jsx("div", { className: cx("msc-progress__fill", `msc-progress__fill--${tone}`), style: { width: `${value * 100}%` } }) }));
92
+ }
93
+ //# sourceMappingURL=controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls.js","sourceRoot":"","sources":["../../src/components/controls.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ComponentDefinition } from "../sdui/template";
2
+ export declare const PLATFORM_DEFINITIONS: ComponentDefinition[];
3
+ //# sourceMappingURL=definitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/components/definitions.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AA4e5D,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAkBrD,CAAC"}