@makeswift/runtime 0.28.9 → 0.28.10-canary.1
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/dist/cjs/api/graphql-api-client.js +1 -1
- package/dist/cjs/api/rest-api-client.js +1 -1
- package/dist/cjs/api-handler/handlers/manifest.js +1 -1
- package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +24 -2
- package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
- package/dist/cjs/react/server/index.js +45 -0
- package/dist/cjs/react/server/index.js.map +1 -0
- package/dist/cjs/runtimes/react/components/ElementData.js +41 -8
- package/dist/cjs/runtimes/react/components/ElementData.js.map +1 -1
- package/dist/cjs/runtimes/react/components/framework-context.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/editable-text.js +3 -1
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js +3 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/use-slate-reset.js +37 -0
- package/dist/cjs/runtimes/react/controls/use-slate-reset.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-editable-element-stylesheet-factory.js +58 -0
- package/dist/cjs/runtimes/react/hooks/use-editable-element-stylesheet-factory.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-element-data.js +35 -0
- package/dist/cjs/runtimes/react/hooks/use-element-data.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-element.js +40 -0
- package/dist/cjs/runtimes/react/hooks/use-element.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-resolved-props.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-server-element-refresh.js +90 -0
- package/dist/cjs/runtimes/react/hooks/use-server-element-refresh.js.map +1 -0
- package/dist/cjs/runtimes/react/react-runtime-core.js +22 -4
- package/dist/cjs/runtimes/react/react-runtime-core.js.map +1 -1
- package/dist/cjs/runtimes/react/resource-resolver.js.map +1 -1
- package/dist/cjs/runtimes/react/server/collect-server-elements.js +74 -0
- package/dist/cjs/runtimes/react/server/collect-server-elements.js.map +1 -0
- package/dist/cjs/runtimes/react/server/components/editable-server-element.js +173 -0
- package/dist/cjs/runtimes/react/server/components/editable-server-element.js.map +1 -0
- package/dist/cjs/runtimes/react/server/components/element-data.js +76 -0
- package/dist/cjs/runtimes/react/server/components/element-data.js.map +1 -0
- package/dist/cjs/runtimes/react/server/components/element.js +59 -0
- package/dist/cjs/runtimes/react/server/components/element.js.map +1 -0
- package/dist/cjs/runtimes/react/server/components/makeswift-component.js +32 -0
- package/dist/cjs/runtimes/react/server/components/makeswift-component.js.map +1 -0
- package/dist/cjs/runtimes/react/server/components/renderer.js +54 -0
- package/dist/cjs/runtimes/react/server/components/renderer.js.map +1 -0
- package/dist/cjs/runtimes/react/server/components/server-elements-cache.js +70 -0
- package/dist/cjs/runtimes/react/server/components/server-elements-cache.js.map +1 -0
- package/dist/cjs/runtimes/react/server/components/slot.js +33 -0
- package/dist/cjs/runtimes/react/server/components/slot.js.map +1 -0
- package/dist/cjs/runtimes/react/server/components/snapshot-renderer.js +50 -0
- package/dist/cjs/runtimes/react/server/components/snapshot-renderer.js.map +1 -0
- package/dist/cjs/runtimes/react/server/css/client-css.js +112 -0
- package/dist/cjs/runtimes/react/server/css/client-css.js.map +1 -0
- package/dist/cjs/runtimes/react/server/css/css-runtime.js +102 -0
- package/dist/cjs/runtimes/react/server/css/css-runtime.js.map +1 -0
- package/dist/cjs/runtimes/react/server/css/server-css.js +71 -0
- package/dist/cjs/runtimes/react/server/css/server-css.js.map +1 -0
- package/dist/cjs/runtimes/react/server/index.js +51 -0
- package/dist/cjs/runtimes/react/server/index.js.map +1 -0
- package/dist/cjs/runtimes/react/server/render-context.js +58 -0
- package/dist/cjs/runtimes/react/server/render-context.js.map +1 -0
- package/dist/cjs/runtimes/react/server/render-element-payload.js +45 -0
- package/dist/cjs/runtimes/react/server/render-element-payload.js.map +1 -0
- package/dist/cjs/runtimes/react/server/resolve-props.js +58 -0
- package/dist/cjs/runtimes/react/server/resolve-props.js.map +1 -0
- package/dist/cjs/runtimes/react/server/resource-resolver.js +40 -0
- package/dist/cjs/runtimes/react/server/resource-resolver.js.map +1 -0
- package/dist/cjs/runtimes/react/server/update-api-resource-cache.js +32 -0
- package/dist/cjs/runtimes/react/server/update-api-resource-cache.js.map +1 -0
- package/dist/cjs/runtimes/react/testing/react-runtime.js +19 -2
- package/dist/cjs/runtimes/react/testing/react-runtime.js.map +1 -1
- package/dist/cjs/state/modules/components-meta.js.map +1 -1
- package/dist/cjs/unstable-framework-support/index.js +3 -0
- package/dist/cjs/unstable-framework-support/index.js.map +1 -1
- package/dist/cjs/utils/prop-by-path.js +35 -0
- package/dist/cjs/utils/prop-by-path.js.map +1 -0
- package/dist/cjs/utils/set.js +32 -0
- package/dist/cjs/utils/set.js.map +1 -0
- package/dist/esm/api/graphql-api-client.js +1 -1
- package/dist/esm/api/rest-api-client.js +1 -1
- package/dist/esm/api-handler/handlers/manifest.js +1 -1
- package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +24 -2
- package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
- package/dist/esm/react/server/index.js +23 -0
- package/dist/esm/react/server/index.js.map +1 -0
- package/dist/esm/runtimes/react/components/ElementData.js +42 -9
- package/dist/esm/runtimes/react/components/ElementData.js.map +1 -1
- package/dist/esm/runtimes/react/components/framework-context.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/editable-text.js +3 -1
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js +3 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js.map +1 -1
- package/dist/esm/runtimes/react/controls/use-slate-reset.js +13 -0
- package/dist/esm/runtimes/react/controls/use-slate-reset.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-editable-element-stylesheet-factory.js +34 -0
- package/dist/esm/runtimes/react/hooks/use-editable-element-stylesheet-factory.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-element-data.js +11 -0
- package/dist/esm/runtimes/react/hooks/use-element-data.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-element.js +16 -0
- package/dist/esm/runtimes/react/hooks/use-element.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-resolved-props.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-server-element-refresh.js +66 -0
- package/dist/esm/runtimes/react/hooks/use-server-element-refresh.js.map +1 -0
- package/dist/esm/runtimes/react/react-runtime-core.js +22 -4
- package/dist/esm/runtimes/react/react-runtime-core.js.map +1 -1
- package/dist/esm/runtimes/react/resource-resolver.js.map +1 -1
- package/dist/esm/runtimes/react/server/collect-server-elements.js +50 -0
- package/dist/esm/runtimes/react/server/collect-server-elements.js.map +1 -0
- package/dist/esm/runtimes/react/server/components/editable-server-element.js +152 -0
- package/dist/esm/runtimes/react/server/components/editable-server-element.js.map +1 -0
- package/dist/esm/runtimes/react/server/components/element-data.js +60 -0
- package/dist/esm/runtimes/react/server/components/element-data.js.map +1 -0
- package/dist/esm/runtimes/react/server/components/element.js +38 -0
- package/dist/esm/runtimes/react/server/components/element.js.map +1 -0
- package/dist/esm/runtimes/react/server/components/makeswift-component.js +8 -0
- package/dist/esm/runtimes/react/server/components/makeswift-component.js.map +1 -0
- package/dist/esm/runtimes/react/server/components/renderer.js +29 -0
- package/dist/esm/runtimes/react/server/components/renderer.js.map +1 -0
- package/dist/esm/runtimes/react/server/components/server-elements-cache.js +45 -0
- package/dist/esm/runtimes/react/server/components/server-elements-cache.js.map +1 -0
- package/dist/esm/runtimes/react/server/components/slot.js +9 -0
- package/dist/esm/runtimes/react/server/components/slot.js.map +1 -0
- package/dist/esm/runtimes/react/server/components/snapshot-renderer.js +26 -0
- package/dist/esm/runtimes/react/server/components/snapshot-renderer.js.map +1 -0
- package/dist/esm/runtimes/react/server/css/client-css.js +87 -0
- package/dist/esm/runtimes/react/server/css/client-css.js.map +1 -0
- package/dist/esm/runtimes/react/server/css/css-runtime.js +77 -0
- package/dist/esm/runtimes/react/server/css/css-runtime.js.map +1 -0
- package/dist/esm/runtimes/react/server/css/server-css.js +45 -0
- package/dist/esm/runtimes/react/server/css/server-css.js.map +1 -0
- package/dist/esm/runtimes/react/server/index.js +23 -0
- package/dist/esm/runtimes/react/server/index.js.map +1 -0
- package/dist/esm/runtimes/react/server/render-context.js +31 -0
- package/dist/esm/runtimes/react/server/render-context.js.map +1 -0
- package/dist/esm/runtimes/react/server/render-element-payload.js +21 -0
- package/dist/esm/runtimes/react/server/render-element-payload.js.map +1 -0
- package/dist/esm/runtimes/react/server/resolve-props.js +34 -0
- package/dist/esm/runtimes/react/server/resolve-props.js.map +1 -0
- package/dist/esm/runtimes/react/server/resource-resolver.js +16 -0
- package/dist/esm/runtimes/react/server/resource-resolver.js.map +1 -0
- package/dist/esm/runtimes/react/server/update-api-resource-cache.js +8 -0
- package/dist/esm/runtimes/react/server/update-api-resource-cache.js.map +1 -0
- package/dist/esm/runtimes/react/testing/react-runtime.js +19 -2
- package/dist/esm/runtimes/react/testing/react-runtime.js.map +1 -1
- package/dist/esm/state/modules/components-meta.js.map +1 -1
- package/dist/esm/unstable-framework-support/index.js +2 -0
- package/dist/esm/unstable-framework-support/index.js.map +1 -1
- package/dist/esm/utils/prop-by-path.js +10 -0
- package/dist/esm/utils/prop-by-path.js.map +1 -0
- package/dist/esm/utils/set.js +7 -0
- package/dist/esm/utils/set.js.map +1 -0
- package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +2 -1
- package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
- package/dist/types/react/server/index.d.ts +2 -0
- package/dist/types/react/server/index.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/ElementData.d.ts +2 -2
- package/dist/types/runtimes/react/components/ElementData.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/framework-context.d.ts +6 -1
- package/dist/types/runtimes/react/components/framework-context.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/use-slate-reset.d.ts +35 -0
- package/dist/types/runtimes/react/controls/use-slate-reset.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/__tests__/use-server-element-refresh.test.d.ts +3 -0
- package/dist/types/runtimes/react/hooks/__tests__/use-server-element-refresh.test.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-editable-element-stylesheet-factory.d.ts +5 -0
- package/dist/types/runtimes/react/hooks/use-editable-element-stylesheet-factory.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-element-data.d.ts +5 -0
- package/dist/types/runtimes/react/hooks/use-element-data.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-element.d.ts +5 -0
- package/dist/types/runtimes/react/hooks/use-element.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-resolved-props.d.ts +3 -0
- package/dist/types/runtimes/react/hooks/use-resolved-props.d.ts.map +1 -1
- package/dist/types/runtimes/react/hooks/use-server-element-refresh.d.ts +14 -0
- package/dist/types/runtimes/react/hooks/use-server-element-refresh.d.ts.map +1 -0
- package/dist/types/runtimes/react/react-runtime-core.d.ts +3 -1
- package/dist/types/runtimes/react/react-runtime-core.d.ts.map +1 -1
- package/dist/types/runtimes/react/resource-resolver.d.ts +1 -0
- package/dist/types/runtimes/react/resource-resolver.d.ts.map +1 -1
- package/dist/types/runtimes/react/server/collect-server-elements.d.ts +19 -0
- package/dist/types/runtimes/react/server/collect-server-elements.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/components/__tests__/editable-server-element.test.d.ts +3 -0
- package/dist/types/runtimes/react/server/components/__tests__/editable-server-element.test.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/components/editable-server-element.d.ts +6 -0
- package/dist/types/runtimes/react/server/components/editable-server-element.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/components/element-data.d.ts +9 -0
- package/dist/types/runtimes/react/server/components/element-data.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/components/element.d.ts +9 -0
- package/dist/types/runtimes/react/server/components/element.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/components/makeswift-component.d.ts +8 -0
- package/dist/types/runtimes/react/server/components/makeswift-component.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/components/renderer.d.ts +23 -0
- package/dist/types/runtimes/react/server/components/renderer.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/components/server-elements-cache.d.ts +22 -0
- package/dist/types/runtimes/react/server/components/server-elements-cache.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/components/slot.d.ts +8 -0
- package/dist/types/runtimes/react/server/components/slot.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/components/snapshot-renderer.d.ts +10 -0
- package/dist/types/runtimes/react/server/components/snapshot-renderer.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/css/client-css.d.ts +10 -0
- package/dist/types/runtimes/react/server/css/client-css.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/css/css-runtime.d.ts +16 -0
- package/dist/types/runtimes/react/server/css/css-runtime.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/css/server-css.d.ts +14 -0
- package/dist/types/runtimes/react/server/css/server-css.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/index.d.ts +8 -0
- package/dist/types/runtimes/react/server/index.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/render-context.d.ts +28 -0
- package/dist/types/runtimes/react/server/render-context.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/render-element-payload.d.ts +215 -0
- package/dist/types/runtimes/react/server/render-element-payload.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/resolve-props.d.ts +7 -0
- package/dist/types/runtimes/react/server/resolve-props.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/resource-resolver.d.ts +6 -0
- package/dist/types/runtimes/react/server/resource-resolver.d.ts.map +1 -0
- package/dist/types/runtimes/react/server/update-api-resource-cache.d.ts +4 -0
- package/dist/types/runtimes/react/server/update-api-resource-cache.d.ts.map +1 -0
- package/dist/types/runtimes/react/testing/react-runtime.d.ts +12 -2
- package/dist/types/runtimes/react/testing/react-runtime.d.ts.map +1 -1
- package/dist/types/state/modules/components-meta.d.ts +1 -0
- package/dist/types/state/modules/components-meta.d.ts.map +1 -1
- package/dist/types/unstable-framework-support/index.d.ts +1 -0
- package/dist/types/unstable-framework-support/index.d.ts.map +1 -1
- package/dist/types/utils/__tests__/prop-by-path.test.d.ts +2 -0
- package/dist/types/utils/__tests__/prop-by-path.test.d.ts.map +1 -0
- package/dist/types/utils/prop-by-path.d.ts +3 -0
- package/dist/types/utils/prop-by-path.d.ts.map +1 -0
- package/dist/types/utils/set.d.ts +3 -0
- package/dist/types/utils/set.d.ts.map +1 -0
- package/package.json +8 -3
- package/react/server/package.json +5 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var element_exports = {};
|
|
20
|
+
__export(element_exports, {
|
|
21
|
+
ServerElement: () => ServerElement
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(element_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import_read_only_state = require("../../../../state/read-only-state");
|
|
26
|
+
var import_FallbackComponent = require("../../../../components/shared/FallbackComponent");
|
|
27
|
+
var import_Element = require("../../components/Element");
|
|
28
|
+
var import_render_context = require("../render-context");
|
|
29
|
+
var import_element_data = require("./element-data");
|
|
30
|
+
function ServerElement({
|
|
31
|
+
context,
|
|
32
|
+
element,
|
|
33
|
+
documentKey
|
|
34
|
+
}) {
|
|
35
|
+
if ((0, import_read_only_state.isElementReference)(element)) {
|
|
36
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_FallbackComponent.FallbackComponent, { text: "Element reference is not supported on server yet" });
|
|
37
|
+
}
|
|
38
|
+
const state = (0, import_render_context.getStore)(context).getState();
|
|
39
|
+
const elementMeta = (0, import_read_only_state.getComponentsMeta)(state).get(element.type);
|
|
40
|
+
if (elementMeta == null) {
|
|
41
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
42
|
+
import_FallbackComponent.FallbackComponent,
|
|
43
|
+
{
|
|
44
|
+
text: "Component not found",
|
|
45
|
+
details: `Missing component metadata for '${element.type}'`
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
const isRSC = elementMeta.server ?? false;
|
|
50
|
+
if (!isRSC) {
|
|
51
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Element.Element, { element }, element.key);
|
|
52
|
+
}
|
|
53
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_element_data.ServerElementData, { documentKey, context, elementData: element });
|
|
54
|
+
}
|
|
55
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
56
|
+
0 && (module.exports = {
|
|
57
|
+
ServerElement
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/runtimes/react/server/components/element.tsx"],"sourcesContent":["import { ReactNode } from 'react'\n\nimport {\n isElementReference,\n getComponentsMeta,\n type Element as ElementDataOrRef,\n} from '../../../../state/read-only-state'\n\nimport { FallbackComponent } from '../../../../components/shared/FallbackComponent'\n\nimport { Element as ClientElement } from '../../components/Element'\n\nimport { type ServerRenderContext, getStore } from '../render-context'\n\nimport { ServerElementData } from './element-data'\n\nexport function ServerElement({\n context,\n element,\n documentKey,\n}: {\n context: ServerRenderContext\n element: ElementDataOrRef\n documentKey: string\n}): ReactNode {\n // check for element references first to avoid looking them up as regular components\n if (isElementReference(element)) {\n return <FallbackComponent text=\"Element reference is not supported on server yet\" />\n }\n\n const state = getStore(context).getState()\n const elementMeta = getComponentsMeta(state).get(element.type)\n if (elementMeta == null) {\n return (\n <FallbackComponent\n text=\"Component not found\"\n details={`Missing component metadata for '${element.type}'`}\n />\n )\n }\n\n const isRSC = elementMeta.server ?? false\n if (!isRSC) {\n return <ClientElement key={element.key} element={element} />\n }\n\n return <ServerElementData documentKey={documentKey} context={context} elementData={element} />\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BW;AAzBX,6BAIO;AAEP,+BAAkC;AAElC,qBAAyC;AAEzC,4BAAmD;AAEnD,0BAAkC;AAE3B,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AACF,GAIc;AAEZ,UAAI,2CAAmB,OAAO,GAAG;AAC/B,WAAO,4CAAC,8CAAkB,MAAK,oDAAmD;AAAA,EACpF;AAEA,QAAM,YAAQ,gCAAS,OAAO,EAAE,SAAS;AACzC,QAAM,kBAAc,0CAAkB,KAAK,EAAE,IAAI,QAAQ,IAAI;AAC7D,MAAI,eAAe,MAAM;AACvB,WACE;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS,mCAAmC,QAAQ,IAAI;AAAA;AAAA,IAC1D;AAAA,EAEJ;AAEA,QAAM,QAAQ,YAAY,UAAU;AACpC,MAAI,CAAC,OAAO;AACV,WAAO,4CAAC,eAAAA,SAAA,EAAgC,WAAb,QAAQ,GAAuB;AAAA,EAC5D;AAEA,SAAO,4CAAC,yCAAkB,aAA0B,SAAkB,aAAa,SAAS;AAC9F;","names":["ClientElement"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var makeswift_component_exports = {};
|
|
20
|
+
__export(makeswift_component_exports, {
|
|
21
|
+
MakeswiftComponent: () => MakeswiftComponent
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(makeswift_component_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import_MakeswiftComponent = require("../../components/MakeswiftComponent");
|
|
26
|
+
var import_snapshot_renderer = require("./snapshot-renderer");
|
|
27
|
+
const MakeswiftComponent = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_snapshot_renderer.RSCSnapshotRenderer, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_MakeswiftComponent.MakeswiftComponent, { ...props }) });
|
|
28
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
29
|
+
0 && (module.exports = {
|
|
30
|
+
MakeswiftComponent
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=makeswift-component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/runtimes/react/server/components/makeswift-component.tsx"],"sourcesContent":["import { type ComponentProps } from 'react'\n\nimport { MakeswiftComponent as MakeswiftClientComponent } from '../../components/MakeswiftComponent'\n\nimport { RSCSnapshotRenderer } from './snapshot-renderer'\n\n/**\n * Renders Makeswift component snapshot with server-element support. RSC counterpart of\n * https://docs.makeswift.com/developer/docs/reference/components/makeswift-component#props\n */\nexport const MakeswiftComponent = (props: ComponentProps<typeof MakeswiftClientComponent>) => (\n <RSCSnapshotRenderer {...props}>\n <MakeswiftClientComponent {...props} />\n </RSCSnapshotRenderer>\n)\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAYI;AAVJ,gCAA+D;AAE/D,+BAAoC;AAM7B,MAAM,qBAAqB,CAAC,UACjC,4CAAC,gDAAqB,GAAG,OACvB,sDAAC,0BAAAA,oBAAA,EAA0B,GAAG,OAAO,GACvC;","names":["MakeswiftClientComponent"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var renderer_exports = {};
|
|
20
|
+
__export(renderer_exports, {
|
|
21
|
+
RSCElementRenderer: () => RSCElementRenderer,
|
|
22
|
+
RSCRenderer: () => RSCRenderer
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(renderer_exports);
|
|
25
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
26
|
+
var import_client_css = require("../css/client-css");
|
|
27
|
+
var import_render_context = require("../render-context");
|
|
28
|
+
var import_collect_server_elements = require("../collect-server-elements");
|
|
29
|
+
var import_update_api_resource_cache = require("../update-api-resource-cache");
|
|
30
|
+
var import_server_elements_cache = require("./server-elements-cache");
|
|
31
|
+
function RSCRenderer({
|
|
32
|
+
context,
|
|
33
|
+
document,
|
|
34
|
+
cacheData,
|
|
35
|
+
children
|
|
36
|
+
}) {
|
|
37
|
+
const serverElements = (0, import_collect_server_elements.collectServerElements)(context, document, cacheData);
|
|
38
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_server_elements_cache.ServerElementsCache, { value: serverElements, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_client_css.ClientCSSProvider, { children }) });
|
|
39
|
+
}
|
|
40
|
+
function RSCElementRenderer({
|
|
41
|
+
context,
|
|
42
|
+
cacheData,
|
|
43
|
+
children
|
|
44
|
+
}) {
|
|
45
|
+
const store = (0, import_render_context.getStore)(context);
|
|
46
|
+
(0, import_update_api_resource_cache.updateApiResourceCache)(store, cacheData);
|
|
47
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
|
|
48
|
+
}
|
|
49
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
50
|
+
0 && (module.exports = {
|
|
51
|
+
RSCElementRenderer,
|
|
52
|
+
RSCRenderer
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/runtimes/react/server/components/renderer.tsx"],"sourcesContent":["import { type PropsWithChildren } from 'react'\n\nimport { type CacheData } from '../../../../api/api-resources-client'\nimport { type Document } from '../../../../state/modules/read-only-documents'\n\nimport { ClientCSSProvider } from '../css/client-css'\n\nimport { type ServerRenderContext, getStore } from '../render-context'\nimport { collectServerElements } from '../collect-server-elements'\nimport { updateApiResourceCache } from '../update-api-resource-cache'\n\nimport { ServerElementsCache } from './server-elements-cache'\n\n/**\n * Helper for rendering a Makeswift document containing server elements. Makes\n * the server-rendered nodes available to the client renderer and enables\n * client-side style updates for editable server elements.\n */\nexport function RSCRenderer({\n context,\n document,\n cacheData,\n children,\n}: PropsWithChildren<{ context: ServerRenderContext; document: Document; cacheData: CacheData }>) {\n const serverElements = collectServerElements(context, document, cacheData)\n\n return (\n <ServerElementsCache value={serverElements}>\n <ClientCSSProvider>{children}</ClientCSSProvider>\n </ServerElementsCache>\n )\n}\n\n/**\n * Helper for (re-)rendering an isolated server element. Updates the server\n * state with the context's API resource cache.\n */\nexport function RSCElementRenderer({\n context,\n cacheData,\n children,\n}: PropsWithChildren<{ context: ServerRenderContext; cacheData: CacheData }>) {\n const store = getStore(context)\n\n updateApiResourceCache(store, cacheData)\n return <>{children}</>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4BM;AAvBN,wBAAkC;AAElC,4BAAmD;AACnD,qCAAsC;AACtC,uCAAuC;AAEvC,mCAAoC;AAO7B,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAkG;AAChG,QAAM,qBAAiB,sDAAsB,SAAS,UAAU,SAAS;AAEzE,SACE,4CAAC,oDAAoB,OAAO,gBAC1B,sDAAC,uCAAmB,UAAS,GAC/B;AAEJ;AAMO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACF,GAA8E;AAC5E,QAAM,YAAQ,gCAAS,OAAO;AAE9B,+DAAuB,OAAO,SAAS;AACvC,SAAO,2EAAG,UAAS;AACrB;","names":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var server_elements_cache_exports = {};
|
|
21
|
+
__export(server_elements_cache_exports, {
|
|
22
|
+
ServerElementsCache: () => ServerElementsCache,
|
|
23
|
+
useServerElementsCache: () => useServerElementsCache
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(server_elements_cache_exports);
|
|
26
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
27
|
+
var import_react = require("react");
|
|
28
|
+
const Context = (0, import_react.createContext)({
|
|
29
|
+
getElement: () => null,
|
|
30
|
+
updateElement: () => {
|
|
31
|
+
},
|
|
32
|
+
removeElement: () => {
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
const ServerElementsCache = ({
|
|
36
|
+
children,
|
|
37
|
+
value
|
|
38
|
+
}) => {
|
|
39
|
+
const [nodes, setNodes] = (0, import_react.useState)(value);
|
|
40
|
+
const [previousValue, setPreviousValue] = (0, import_react.useState)(value);
|
|
41
|
+
if (value !== previousValue) {
|
|
42
|
+
setPreviousValue(value);
|
|
43
|
+
setNodes(value);
|
|
44
|
+
}
|
|
45
|
+
const getElement = (0, import_react.useCallback)((elementKey) => nodes.get(elementKey), [nodes]);
|
|
46
|
+
const updateElement = (0, import_react.useCallback)(
|
|
47
|
+
(elementKey, node) => setNodes((prev) => new Map(prev).set(elementKey, node)),
|
|
48
|
+
[]
|
|
49
|
+
);
|
|
50
|
+
const removeElement = (0, import_react.useCallback)(
|
|
51
|
+
(elementKey) => setNodes((prev) => {
|
|
52
|
+
const next = new Map(prev);
|
|
53
|
+
next.delete(elementKey);
|
|
54
|
+
return next;
|
|
55
|
+
}),
|
|
56
|
+
[]
|
|
57
|
+
);
|
|
58
|
+
const cache = (0, import_react.useMemo)(
|
|
59
|
+
() => ({ getElement, updateElement, removeElement }),
|
|
60
|
+
[getElement, updateElement, removeElement]
|
|
61
|
+
);
|
|
62
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Context.Provider, { value: cache, children });
|
|
63
|
+
};
|
|
64
|
+
const useServerElementsCache = () => (0, import_react.useContext)(Context);
|
|
65
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
66
|
+
0 && (module.exports = {
|
|
67
|
+
ServerElementsCache,
|
|
68
|
+
useServerElementsCache
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=server-elements-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/runtimes/react/server/components/server-elements-cache.tsx"],"sourcesContent":["'use client'\n\nimport { createContext, ReactNode, useCallback, useContext, useState, useMemo } from 'react'\n\nimport { type ElementsMap } from '../collect-server-elements'\n\ntype ContextValue = {\n getElement: (elementKey: string) => ReactNode\n updateElement: (elementKey: string, node: ReactNode) => void\n removeElement: (elementKey: string) => void\n}\n\nconst Context = createContext<ContextValue>({\n getElement: () => null,\n updateElement: () => {},\n removeElement: () => {},\n})\n\n/**\n * Client-side \"cache\" of server-rendered elements; this is one of the key pieces in our RSC\n * implementation, with React doing the majority of the heavy lifting: when `ReactNode`s are\n * passed as props across a 'use client' boundary, React's flight serializer automatically\n * renders and encodes them in the RSC stream and then reconstructs them on the client. All\n * we need to do on the client is to make these React elements available for lookup/\n * manipulation when editing in the builder.\n */\nexport const ServerElementsCache = ({\n children,\n value,\n}: {\n children: ReactNode\n value: ElementsMap\n}) => {\n // An RSC re-render does not inherently remount client components; React can reconcile\n // the new server tree with the existing client tree, so we need to handle the `value`\n // prop updates\n const [nodes, setNodes] = useState(value)\n const [previousValue, setPreviousValue] = useState(value)\n\n // this is okay to do on render, see https://react.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n if (value !== previousValue) {\n setPreviousValue(value)\n setNodes(value)\n }\n\n const getElement = useCallback((elementKey: string): ReactNode => nodes.get(elementKey), [nodes])\n\n const updateElement = useCallback(\n (elementKey: string, node: ReactNode) => setNodes(prev => new Map(prev).set(elementKey, node)),\n [],\n )\n\n const removeElement = useCallback(\n (elementKey: string) =>\n setNodes(prev => {\n const next = new Map(prev)\n next.delete(elementKey)\n return next\n }),\n [],\n )\n\n const cache = useMemo(\n () => ({ getElement, updateElement, removeElement }),\n [getElement, updateElement, removeElement],\n )\n\n return <Context.Provider value={cache}>{children}</Context.Provider>\n}\n\nexport const useServerElementsCache = () => useContext(Context)\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmES;AAjET,mBAAqF;AAUrF,MAAM,cAAU,4BAA4B;AAAA,EAC1C,YAAY,MAAM;AAAA,EAClB,eAAe,MAAM;AAAA,EAAC;AAAA,EACtB,eAAe,MAAM;AAAA,EAAC;AACxB,CAAC;AAUM,MAAM,sBAAsB,CAAC;AAAA,EAClC;AAAA,EACA;AACF,MAGM;AAIJ,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAS,KAAK;AACxC,QAAM,CAAC,eAAe,gBAAgB,QAAI,uBAAS,KAAK;AAGxD,MAAI,UAAU,eAAe;AAC3B,qBAAiB,KAAK;AACtB,aAAS,KAAK;AAAA,EAChB;AAEA,QAAM,iBAAa,0BAAY,CAAC,eAAkC,MAAM,IAAI,UAAU,GAAG,CAAC,KAAK,CAAC;AAEhG,QAAM,oBAAgB;AAAA,IACpB,CAAC,YAAoB,SAAoB,SAAS,UAAQ,IAAI,IAAI,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC;AAAA,IAC7F,CAAC;AAAA,EACH;AAEA,QAAM,oBAAgB;AAAA,IACpB,CAAC,eACC,SAAS,UAAQ;AACf,YAAM,OAAO,IAAI,IAAI,IAAI;AACzB,WAAK,OAAO,UAAU;AACtB,aAAO;AAAA,IACT,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAEA,QAAM,YAAQ;AAAA,IACZ,OAAO,EAAE,YAAY,eAAe,cAAc;AAAA,IAClD,CAAC,YAAY,eAAe,aAAa;AAAA,EAC3C;AAEA,SAAO,4CAAC,QAAQ,UAAR,EAAiB,OAAO,OAAQ,UAAS;AACnD;AAEO,MAAM,yBAAyB,UAAM,yBAAW,OAAO;","names":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var slot_exports = {};
|
|
20
|
+
__export(slot_exports, {
|
|
21
|
+
Slot: () => Slot
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(slot_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import_constants = require("../../../../components/builtin/constants");
|
|
26
|
+
var import_Slot = require("../../components/Slot");
|
|
27
|
+
var import_snapshot_renderer = require("./snapshot-renderer");
|
|
28
|
+
const Slot = ({ label, snapshot, fallback }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_snapshot_renderer.RSCSnapshotRenderer, { snapshot, label, type: import_constants.MakeswiftComponentType.Slot, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Slot.Slot, { ...{ label, snapshot, fallback } }) });
|
|
29
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
30
|
+
0 && (module.exports = {
|
|
31
|
+
Slot
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=slot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/runtimes/react/server/components/slot.tsx"],"sourcesContent":["import { type ComponentProps } from 'react'\n\nimport { MakeswiftComponentType } from '../../../../components/builtin/constants'\n\nimport { Slot as ClientSlot } from '../../components/Slot'\n\nimport { RSCSnapshotRenderer } from './snapshot-renderer'\n\n/**\n * Renders Makeswift snapshot or its fallback with server-element support. RSC\n * counterpart of https://docs.makeswift.com/developer/docs/reference/components/slot\n */\nexport const Slot = ({ label, snapshot, fallback }: ComponentProps<typeof ClientSlot>) => (\n <RSCSnapshotRenderer snapshot={snapshot} label={label} type={MakeswiftComponentType.Slot}>\n <ClientSlot {...{ label, snapshot, fallback }} />\n </RSCSnapshotRenderer>\n)\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAcI;AAZJ,uBAAuC;AAEvC,kBAAmC;AAEnC,+BAAoC;AAM7B,MAAM,OAAO,CAAC,EAAE,OAAO,UAAU,SAAS,MAC/C,4CAAC,gDAAoB,UAAoB,OAAc,MAAM,wCAAuB,MAClF,sDAAC,YAAAA,MAAA,EAAY,GAAG,EAAE,OAAO,UAAU,SAAS,GAAG,GACjD;","names":["ClientSlot"]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var snapshot_renderer_exports = {};
|
|
20
|
+
__export(snapshot_renderer_exports, {
|
|
21
|
+
RSCSnapshotRenderer: () => RSCSnapshotRenderer
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(snapshot_renderer_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import_component_snapshot = require("../../../../client/component-snapshot");
|
|
26
|
+
var import_render_context = require("../render-context");
|
|
27
|
+
var import_renderer = require("./renderer");
|
|
28
|
+
const RSCSnapshotRenderer = ({
|
|
29
|
+
snapshot,
|
|
30
|
+
label,
|
|
31
|
+
type,
|
|
32
|
+
description,
|
|
33
|
+
children
|
|
34
|
+
}) => {
|
|
35
|
+
const rootDocument = (0, import_component_snapshot.componentDocumentToRootEmbeddedDocument)({
|
|
36
|
+
document: snapshot.document,
|
|
37
|
+
documentKey: snapshot.key,
|
|
38
|
+
name: label,
|
|
39
|
+
type,
|
|
40
|
+
description,
|
|
41
|
+
meta: snapshot.meta
|
|
42
|
+
});
|
|
43
|
+
const context = (0, import_render_context.getRenderContext)();
|
|
44
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer.RSCRenderer, { context, cacheData: snapshot.cacheData, document: rootDocument, children });
|
|
45
|
+
};
|
|
46
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
47
|
+
0 && (module.exports = {
|
|
48
|
+
RSCSnapshotRenderer
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=snapshot-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/runtimes/react/server/components/snapshot-renderer.tsx"],"sourcesContent":["import { type ComponentProps, type PropsWithChildren } from 'react'\n\nimport { componentDocumentToRootEmbeddedDocument } from '../../../../client/component-snapshot'\nimport { MakeswiftComponent } from '../../components/MakeswiftComponent'\n\nimport { getRenderContext } from '../render-context'\n\nimport { RSCRenderer } from './renderer'\n\n/**\n * High-level helper for rendering server versions of snapshot-backed components\n * (`MakeswiftComponent`, `Slot`). Creates a root document from the snapshot\n * and delegates to `RSCRenderer` to render the server elements and make them\n * editable on the client.\n */\nexport const RSCSnapshotRenderer = ({\n snapshot,\n label,\n type,\n description,\n children,\n}: PropsWithChildren<ComponentProps<typeof MakeswiftComponent>>) => {\n const rootDocument = componentDocumentToRootEmbeddedDocument({\n document: snapshot.document,\n documentKey: snapshot.key,\n name: label,\n type,\n description,\n meta: snapshot.meta,\n })\n\n const context = getRenderContext()\n\n return (\n <RSCRenderer context={context} cacheData={snapshot.cacheData} document={rootDocument}>\n {children}\n </RSCRenderer>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkCI;AAhCJ,gCAAwD;AAGxD,4BAAiC;AAEjC,sBAA4B;AAQrB,MAAM,sBAAsB,CAAC;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAoE;AAClE,QAAM,mBAAe,mEAAwC;AAAA,IAC3D,UAAU,SAAS;AAAA,IACnB,aAAa,SAAS;AAAA,IACtB,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA,MAAM,SAAS;AAAA,EACjB,CAAC;AAED,QAAM,cAAU,wCAAiB;AAEjC,SACE,4CAAC,+BAAY,SAAkB,WAAW,SAAS,WAAW,UAAU,cACrE,UACH;AAEJ;","names":[]}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var client_css_exports = {};
|
|
21
|
+
__export(client_css_exports, {
|
|
22
|
+
ClientCSSProvider: () => ClientCSSProvider,
|
|
23
|
+
useClientCSS: () => useClientCSS
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(client_css_exports);
|
|
26
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
27
|
+
var import_react = require("react");
|
|
28
|
+
var import_css_runtime = require("./css-runtime");
|
|
29
|
+
const ClientCSSContext = (0, import_react.createContext)({
|
|
30
|
+
updateStyle(elementKey, propName, cssString) {
|
|
31
|
+
console.error(
|
|
32
|
+
`Attempt to update client style for server component ${elementKey}'s '${propName}' prop outside of 'ClientCSSProvider'`,
|
|
33
|
+
cssString
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
function ClientCSSProvider({ children }) {
|
|
38
|
+
const styleElementsRef = (0, import_react.useRef)(/* @__PURE__ */ new Map());
|
|
39
|
+
const serverStylesRef = (0, import_react.useRef)(/* @__PURE__ */ new Map());
|
|
40
|
+
const dynamicStylesRef = (0, import_react.useRef)(/* @__PURE__ */ new Map());
|
|
41
|
+
const updateStyleElement = (0, import_react.useCallback)(
|
|
42
|
+
(elementKey, elementStyles) => {
|
|
43
|
+
const styleElement = styleElementsRef.current.get(elementKey);
|
|
44
|
+
if (styleElement == null)
|
|
45
|
+
return;
|
|
46
|
+
const serverCss = serverStylesRef.current.get(elementKey) ?? "";
|
|
47
|
+
const dynamicCss = Array.from(elementStyles.values()).join("\n");
|
|
48
|
+
const combinedStyles = dynamicCss === serverCss ? serverCss : [serverCss, dynamicCss].filter(Boolean).join("\n");
|
|
49
|
+
if (styleElement.textContent !== combinedStyles) {
|
|
50
|
+
styleElement.textContent = combinedStyles;
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
[]
|
|
54
|
+
);
|
|
55
|
+
const registerStyleElement = (0, import_react.useCallback)(
|
|
56
|
+
(styleElement) => {
|
|
57
|
+
const href = styleElement.dataset["href"];
|
|
58
|
+
if (href == null || !href.startsWith(import_css_runtime.MAKESWIFT_RSC_STYLE_TAG_ID_PREFIX))
|
|
59
|
+
return;
|
|
60
|
+
const elementKey = href.substring(import_css_runtime.MAKESWIFT_RSC_STYLE_TAG_ID_PREFIX.length);
|
|
61
|
+
if (elementKey == "") {
|
|
62
|
+
console.error("Ignoring style element with a missing element key", styleElement);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (styleElement === styleElementsRef.current.get(elementKey))
|
|
66
|
+
return;
|
|
67
|
+
styleElementsRef.current.set(elementKey, styleElement);
|
|
68
|
+
serverStylesRef.current.set(elementKey, styleElement.textContent);
|
|
69
|
+
const elementStyles = dynamicStylesRef.current.get(elementKey);
|
|
70
|
+
if (elementStyles != null) {
|
|
71
|
+
updateStyleElement(elementKey, elementStyles);
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
[updateStyleElement]
|
|
75
|
+
);
|
|
76
|
+
(0, import_react.useEffect)(() => {
|
|
77
|
+
document.head.querySelectorAll(
|
|
78
|
+
`style[data-href^="${import_css_runtime.MAKESWIFT_RSC_STYLE_TAG_ID_PREFIX}"]`
|
|
79
|
+
).forEach(registerStyleElement);
|
|
80
|
+
const observer = new MutationObserver((mutationList) => {
|
|
81
|
+
for (const mutation of mutationList) {
|
|
82
|
+
for (const node of mutation.addedNodes) {
|
|
83
|
+
if (node instanceof HTMLStyleElement)
|
|
84
|
+
registerStyleElement(node);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
observer.observe(document.head, { childList: true });
|
|
89
|
+
return () => {
|
|
90
|
+
observer.disconnect();
|
|
91
|
+
};
|
|
92
|
+
}, [registerStyleElement]);
|
|
93
|
+
const updateStyle = (0, import_react.useCallback)(
|
|
94
|
+
(elementKey, propName, cssString) => {
|
|
95
|
+
const elementStyles = dynamicStylesRef.current.get(elementKey) ?? /* @__PURE__ */ new Map();
|
|
96
|
+
elementStyles.set(propName, cssString);
|
|
97
|
+
dynamicStylesRef.current.set(elementKey, elementStyles);
|
|
98
|
+
updateStyleElement(elementKey, elementStyles);
|
|
99
|
+
},
|
|
100
|
+
[updateStyleElement]
|
|
101
|
+
);
|
|
102
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ClientCSSContext.Provider, { value: { updateStyle }, children });
|
|
103
|
+
}
|
|
104
|
+
function useClientCSS() {
|
|
105
|
+
return (0, import_react.useContext)(ClientCSSContext);
|
|
106
|
+
}
|
|
107
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
108
|
+
0 && (module.exports = {
|
|
109
|
+
ClientCSSProvider,
|
|
110
|
+
useClientCSS
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=client-css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/runtimes/react/server/css/client-css.tsx"],"sourcesContent":["'use client'\n\nimport { createContext, ReactNode, useContext, useEffect, useRef, useCallback } from 'react'\n\nimport { MAKESWIFT_RSC_STYLE_TAG_ID_PREFIX } from './css-runtime'\n\ntype ClientCSSContextValue = {\n updateStyle: (elementKey: string, propName: string, cssString: string) => void\n}\n\nconst ClientCSSContext = createContext<ClientCSSContextValue>({\n updateStyle(elementKey: string, propName: string, cssString: string) {\n console.error(\n `Attempt to update client style for server component ${elementKey}'s '${propName}' prop outside of 'ClientCSSProvider'`,\n cssString,\n )\n },\n})\n\nexport function ClientCSSProvider({ children }: { children: ReactNode }) {\n const styleElementsRef = useRef<Map<string, HTMLStyleElement>>(new Map())\n const serverStylesRef = useRef<Map<string, string>>(new Map())\n const dynamicStylesRef = useRef<Map<string, Map<string, string>>>(new Map())\n\n const updateStyleElement = useCallback(\n (elementKey: string, elementStyles: Map<string, string>) => {\n const styleElement = styleElementsRef.current.get(elementKey)\n if (styleElement == null) return\n\n const serverCss = serverStylesRef.current.get(elementKey) ?? ''\n const dynamicCss = Array.from(elementStyles.values()).join('\\n')\n const combinedStyles =\n dynamicCss === serverCss ? serverCss : [serverCss, dynamicCss].filter(Boolean).join('\\n')\n\n if (styleElement.textContent !== combinedStyles) {\n styleElement.textContent = combinedStyles\n }\n },\n [],\n )\n\n const registerStyleElement = useCallback(\n (styleElement: HTMLStyleElement) => {\n const href = styleElement.dataset['href']\n if (href == null || !href.startsWith(MAKESWIFT_RSC_STYLE_TAG_ID_PREFIX)) return\n\n const elementKey = href.substring(MAKESWIFT_RSC_STYLE_TAG_ID_PREFIX.length)\n if (elementKey == '') {\n console.error('Ignoring style element with a missing element key', styleElement)\n return\n }\n\n // don't recapture elements that we're already tracking\n if (styleElement === styleElementsRef.current.get(elementKey)) return\n\n styleElementsRef.current.set(elementKey, styleElement)\n serverStylesRef.current.set(elementKey, styleElement.textContent)\n\n const elementStyles = dynamicStylesRef.current.get(elementKey)\n if (elementStyles != null) {\n updateStyleElement(elementKey, elementStyles)\n }\n },\n [updateStyleElement],\n )\n\n useEffect(() => {\n // initialize style elements map and capture server styles for existing\n // RSC-rendered elements, if any\n document.head\n .querySelectorAll<HTMLStyleElement>(\n `style[data-href^=\"${MAKESWIFT_RSC_STYLE_TAG_ID_PREFIX}\"]`,\n )\n .forEach(registerStyleElement)\n\n // set up a `document.head` observer to capture dynamically added RSC `<style>` nodes\n const observer = new MutationObserver(mutationList => {\n for (const mutation of mutationList) {\n for (const node of mutation.addedNodes) {\n if (node instanceof HTMLStyleElement) registerStyleElement(node)\n }\n }\n })\n\n observer.observe(document.head, { childList: true })\n\n return () => {\n observer.disconnect()\n }\n }, [registerStyleElement])\n\n const updateStyle = useCallback(\n (elementKey: string, propName: string, cssString: string) => {\n const elementStyles = dynamicStylesRef.current.get(elementKey) ?? new Map()\n elementStyles.set(propName, cssString)\n dynamicStylesRef.current.set(elementKey, elementStyles)\n\n updateStyleElement(elementKey, elementStyles)\n },\n [updateStyleElement],\n )\n\n return <ClientCSSContext.Provider value={{ updateStyle }}>{children}</ClientCSSContext.Provider>\n}\n\nexport function useClientCSS(): ClientCSSContextValue {\n return useContext(ClientCSSContext)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsGS;AApGT,mBAAqF;AAErF,yBAAkD;AAMlD,MAAM,uBAAmB,4BAAqC;AAAA,EAC5D,YAAY,YAAoB,UAAkB,WAAmB;AACnE,YAAQ;AAAA,MACN,uDAAuD,UAAU,OAAO,QAAQ;AAAA,MAChF;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAEM,SAAS,kBAAkB,EAAE,SAAS,GAA4B;AACvE,QAAM,uBAAmB,qBAAsC,oBAAI,IAAI,CAAC;AACxE,QAAM,sBAAkB,qBAA4B,oBAAI,IAAI,CAAC;AAC7D,QAAM,uBAAmB,qBAAyC,oBAAI,IAAI,CAAC;AAE3E,QAAM,yBAAqB;AAAA,IACzB,CAAC,YAAoB,kBAAuC;AAC1D,YAAM,eAAe,iBAAiB,QAAQ,IAAI,UAAU;AAC5D,UAAI,gBAAgB;AAAM;AAE1B,YAAM,YAAY,gBAAgB,QAAQ,IAAI,UAAU,KAAK;AAC7D,YAAM,aAAa,MAAM,KAAK,cAAc,OAAO,CAAC,EAAE,KAAK,IAAI;AAC/D,YAAM,iBACJ,eAAe,YAAY,YAAY,CAAC,WAAW,UAAU,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI;AAE1F,UAAI,aAAa,gBAAgB,gBAAgB;AAC/C,qBAAa,cAAc;AAAA,MAC7B;AAAA,IACF;AAAA,IACA,CAAC;AAAA,EACH;AAEA,QAAM,2BAAuB;AAAA,IAC3B,CAAC,iBAAmC;AAClC,YAAM,OAAO,aAAa,QAAQ,MAAM;AACxC,UAAI,QAAQ,QAAQ,CAAC,KAAK,WAAW,oDAAiC;AAAG;AAEzE,YAAM,aAAa,KAAK,UAAU,qDAAkC,MAAM;AAC1E,UAAI,cAAc,IAAI;AACpB,gBAAQ,MAAM,qDAAqD,YAAY;AAC/E;AAAA,MACF;AAGA,UAAI,iBAAiB,iBAAiB,QAAQ,IAAI,UAAU;AAAG;AAE/D,uBAAiB,QAAQ,IAAI,YAAY,YAAY;AACrD,sBAAgB,QAAQ,IAAI,YAAY,aAAa,WAAW;AAEhE,YAAM,gBAAgB,iBAAiB,QAAQ,IAAI,UAAU;AAC7D,UAAI,iBAAiB,MAAM;AACzB,2BAAmB,YAAY,aAAa;AAAA,MAC9C;AAAA,IACF;AAAA,IACA,CAAC,kBAAkB;AAAA,EACrB;AAEA,8BAAU,MAAM;AAGd,aAAS,KACN;AAAA,MACC,qBAAqB,oDAAiC;AAAA,IACxD,EACC,QAAQ,oBAAoB;AAG/B,UAAM,WAAW,IAAI,iBAAiB,kBAAgB;AACpD,iBAAW,YAAY,cAAc;AACnC,mBAAW,QAAQ,SAAS,YAAY;AACtC,cAAI,gBAAgB;AAAkB,iCAAqB,IAAI;AAAA,QACjE;AAAA,MACF;AAAA,IACF,CAAC;AAED,aAAS,QAAQ,SAAS,MAAM,EAAE,WAAW,KAAK,CAAC;AAEnD,WAAO,MAAM;AACX,eAAS,WAAW;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,oBAAoB,CAAC;AAEzB,QAAM,kBAAc;AAAA,IAClB,CAAC,YAAoB,UAAkB,cAAsB;AAC3D,YAAM,gBAAgB,iBAAiB,QAAQ,IAAI,UAAU,KAAK,oBAAI,IAAI;AAC1E,oBAAc,IAAI,UAAU,SAAS;AACrC,uBAAiB,QAAQ,IAAI,YAAY,aAAa;AAEtD,yBAAmB,YAAY,aAAa;AAAA,IAC9C;AAAA,IACA,CAAC,kBAAkB;AAAA,EACrB;AAEA,SAAO,4CAAC,iBAAiB,UAAjB,EAA0B,OAAO,EAAE,YAAY,GAAI,UAAS;AACtE;AAEO,SAAS,eAAsC;AACpD,aAAO,yBAAW,gBAAgB;AACpC;","names":[]}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var css_runtime_exports = {};
|
|
20
|
+
__export(css_runtime_exports, {
|
|
21
|
+
MAKESWIFT_RSC_STYLE_TAG_ID_PREFIX: () => MAKESWIFT_RSC_STYLE_TAG_ID_PREFIX,
|
|
22
|
+
StylesheetEngine: () => StylesheetEngine
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(css_runtime_exports);
|
|
25
|
+
var import_resolved_style_to_css = require("../../lib/resolved-style-to-css");
|
|
26
|
+
const MAKESWIFT_RSC_STYLE_TAG_ID_PREFIX = "makeswift-rsc-";
|
|
27
|
+
function cssObjectToString(cssObject, className) {
|
|
28
|
+
const cssRules = [];
|
|
29
|
+
const mediaRules = [];
|
|
30
|
+
const baseStyles = {};
|
|
31
|
+
Object.entries(cssObject).forEach(([property, value]) => {
|
|
32
|
+
if (property.startsWith("@media")) {
|
|
33
|
+
const mediaQueryStyles = value;
|
|
34
|
+
const mediaCSS = Object.entries(mediaQueryStyles).map(([prop, val]) => formatCSSProperty(prop, val)).filter(Boolean).join(" ");
|
|
35
|
+
if (mediaCSS) {
|
|
36
|
+
mediaRules.push(`${property} { .${className} { ${mediaCSS} } }`);
|
|
37
|
+
}
|
|
38
|
+
} else {
|
|
39
|
+
baseStyles[property] = value;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
const baseCSS = Object.entries(baseStyles).map(([prop, val]) => formatCSSProperty(prop, val)).filter(Boolean).join(" ");
|
|
43
|
+
if (baseCSS) {
|
|
44
|
+
cssRules.push(`.${className} { ${baseCSS} }`);
|
|
45
|
+
}
|
|
46
|
+
cssRules.push(...mediaRules);
|
|
47
|
+
return cssRules.join("\n");
|
|
48
|
+
}
|
|
49
|
+
function formatCSSProperty(property, value) {
|
|
50
|
+
if (value == null || value === "")
|
|
51
|
+
return "";
|
|
52
|
+
if (Array.isArray(value)) {
|
|
53
|
+
return value.length > 0 ? `${kebabCase(property)}: ${value.join(" ")};` : "";
|
|
54
|
+
}
|
|
55
|
+
return `${kebabCase(property)}: ${value};`;
|
|
56
|
+
}
|
|
57
|
+
function kebabCase(str) {
|
|
58
|
+
return str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
|
|
59
|
+
}
|
|
60
|
+
function generateClassName(elementKey, propName, counter) {
|
|
61
|
+
const parts = ["makeswift-rsc"];
|
|
62
|
+
if (elementKey)
|
|
63
|
+
parts.push(elementKey);
|
|
64
|
+
if (propName)
|
|
65
|
+
parts.push(propName);
|
|
66
|
+
if (counter !== void 0)
|
|
67
|
+
parts.push(counter.toString());
|
|
68
|
+
return parts.join("-");
|
|
69
|
+
}
|
|
70
|
+
class StylesheetEngine {
|
|
71
|
+
constructor(breakpointsData, elementKey, basePropName, onStyleGenerated) {
|
|
72
|
+
this.breakpointsData = breakpointsData;
|
|
73
|
+
this.elementKey = elementKey;
|
|
74
|
+
this.basePropName = basePropName;
|
|
75
|
+
this.onStyleGenerated = onStyleGenerated;
|
|
76
|
+
}
|
|
77
|
+
styleCounter = 0;
|
|
78
|
+
breakpoints() {
|
|
79
|
+
return this.breakpointsData;
|
|
80
|
+
}
|
|
81
|
+
defineStyle(style) {
|
|
82
|
+
const className = generateClassName(this.elementKey, this.basePropName, ++this.styleCounter);
|
|
83
|
+
const cssObject = (0, import_resolved_style_to_css.resolvedStyleToCss)(this.breakpointsData, style);
|
|
84
|
+
const cssString = cssObjectToString(cssObject, className);
|
|
85
|
+
this.onStyleGenerated?.(className, cssString, this.elementKey, this.basePropName);
|
|
86
|
+
return className;
|
|
87
|
+
}
|
|
88
|
+
child(propName) {
|
|
89
|
+
return new StylesheetEngine(
|
|
90
|
+
this.breakpointsData,
|
|
91
|
+
this.elementKey,
|
|
92
|
+
[this.basePropName, propName].filter(Boolean).join("-"),
|
|
93
|
+
this.onStyleGenerated
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
98
|
+
0 && (module.exports = {
|
|
99
|
+
MAKESWIFT_RSC_STYLE_TAG_ID_PREFIX,
|
|
100
|
+
StylesheetEngine
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=css-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/runtimes/react/server/css/css-runtime.ts"],"sourcesContent":["import type { CSSInterpolation, CSSObject } from '@emotion/serialize'\nimport { type Breakpoints, type Stylesheet, type ResolvedStyle } from '@makeswift/controls'\nimport { resolvedStyleToCss } from '../../lib/resolved-style-to-css'\n\nexport const MAKESWIFT_RSC_STYLE_TAG_ID_PREFIX = 'makeswift-rsc-'\n\nfunction cssObjectToString(cssObject: CSSObject, className: string): string {\n const cssRules: string[] = []\n const mediaRules: string[] = []\n const baseStyles: Record<string, CSSInterpolation> = {}\n\n Object.entries(cssObject).forEach(([property, value]) => {\n if (property.startsWith('@media')) {\n const mediaQueryStyles = value as CSSObject\n const mediaCSS = Object.entries(mediaQueryStyles)\n .map(([prop, val]) => formatCSSProperty(prop, val))\n .filter(Boolean)\n .join(' ')\n\n if (mediaCSS) {\n mediaRules.push(`${property} { .${className} { ${mediaCSS} } }`)\n }\n } else {\n baseStyles[property] = value\n }\n })\n\n const baseCSS = Object.entries(baseStyles)\n .map(([prop, val]) => formatCSSProperty(prop, val))\n .filter(Boolean)\n .join(' ')\n\n if (baseCSS) {\n cssRules.push(`.${className} { ${baseCSS} }`)\n }\n\n cssRules.push(...mediaRules)\n return cssRules.join('\\n')\n}\n\nfunction formatCSSProperty(property: string, value: any): string {\n if (value == null || value === '') return ''\n\n if (Array.isArray(value)) {\n return value.length > 0 ? `${kebabCase(property)}: ${value.join(' ')};` : ''\n }\n\n return `${kebabCase(property)}: ${value};`\n}\n\nfunction kebabCase(str: string): string {\n return str.replace(/[A-Z]/g, letter => `-${letter.toLowerCase()}`)\n}\n\nfunction generateClassName(elementKey?: string, propName?: string, counter?: number): string {\n const parts = ['makeswift-rsc']\n if (elementKey) parts.push(elementKey)\n if (propName) parts.push(propName)\n if (counter !== undefined) parts.push(counter.toString())\n return parts.join('-')\n}\n\ntype OnStyleGenerated = (\n className: string,\n css: string,\n elementKey?: string,\n propName?: string,\n) => void\n\n// Unified stylesheet engine that handles both server and client modes\nexport class StylesheetEngine implements Stylesheet {\n private styleCounter = 0\n\n constructor(\n private breakpointsData: Breakpoints,\n private elementKey?: string,\n private basePropName?: string,\n private onStyleGenerated?: OnStyleGenerated,\n ) {}\n\n breakpoints(): Breakpoints {\n return this.breakpointsData\n }\n\n defineStyle(style: ResolvedStyle): string {\n const className = generateClassName(this.elementKey, this.basePropName, ++this.styleCounter)\n\n const cssObject = resolvedStyleToCss(this.breakpointsData, style)\n const cssString = cssObjectToString(cssObject, className)\n\n this.onStyleGenerated?.(className, cssString, this.elementKey, this.basePropName)\n\n return className\n }\n\n child(propName: string): Stylesheet {\n return new StylesheetEngine(\n this.breakpointsData,\n this.elementKey,\n [this.basePropName, propName].filter(Boolean).join('-'),\n this.onStyleGenerated,\n )\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mCAAmC;AAE5B,MAAM,oCAAoC;AAEjD,SAAS,kBAAkB,WAAsB,WAA2B;AAC1E,QAAM,WAAqB,CAAC;AAC5B,QAAM,aAAuB,CAAC;AAC9B,QAAM,aAA+C,CAAC;AAEtD,SAAO,QAAQ,SAAS,EAAE,QAAQ,CAAC,CAAC,UAAU,KAAK,MAAM;AACvD,QAAI,SAAS,WAAW,QAAQ,GAAG;AACjC,YAAM,mBAAmB;AACzB,YAAM,WAAW,OAAO,QAAQ,gBAAgB,EAC7C,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,kBAAkB,MAAM,GAAG,CAAC,EACjD,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,UAAI,UAAU;AACZ,mBAAW,KAAK,GAAG,QAAQ,OAAO,SAAS,MAAM,QAAQ,MAAM;AAAA,MACjE;AAAA,IACF,OAAO;AACL,iBAAW,QAAQ,IAAI;AAAA,IACzB;AAAA,EACF,CAAC;AAED,QAAM,UAAU,OAAO,QAAQ,UAAU,EACtC,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,kBAAkB,MAAM,GAAG,CAAC,EACjD,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,MAAI,SAAS;AACX,aAAS,KAAK,IAAI,SAAS,MAAM,OAAO,IAAI;AAAA,EAC9C;AAEA,WAAS,KAAK,GAAG,UAAU;AAC3B,SAAO,SAAS,KAAK,IAAI;AAC3B;AAEA,SAAS,kBAAkB,UAAkB,OAAoB;AAC/D,MAAI,SAAS,QAAQ,UAAU;AAAI,WAAO;AAE1C,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,SAAS,IAAI,GAAG,UAAU,QAAQ,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,MAAM;AAAA,EAC5E;AAEA,SAAO,GAAG,UAAU,QAAQ,CAAC,KAAK,KAAK;AACzC;AAEA,SAAS,UAAU,KAAqB;AACtC,SAAO,IAAI,QAAQ,UAAU,YAAU,IAAI,OAAO,YAAY,CAAC,EAAE;AACnE;AAEA,SAAS,kBAAkB,YAAqB,UAAmB,SAA0B;AAC3F,QAAM,QAAQ,CAAC,eAAe;AAC9B,MAAI;AAAY,UAAM,KAAK,UAAU;AACrC,MAAI;AAAU,UAAM,KAAK,QAAQ;AACjC,MAAI,YAAY;AAAW,UAAM,KAAK,QAAQ,SAAS,CAAC;AACxD,SAAO,MAAM,KAAK,GAAG;AACvB;AAUO,MAAM,iBAAuC;AAAA,EAGlD,YACU,iBACA,YACA,cACA,kBACR;AAJQ;AACA;AACA;AACA;AAAA,EACP;AAAA,EAPK,eAAe;AAAA,EASvB,cAA2B;AACzB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,YAAY,OAA8B;AACxC,UAAM,YAAY,kBAAkB,KAAK,YAAY,KAAK,cAAc,EAAE,KAAK,YAAY;AAE3F,UAAM,gBAAY,iDAAmB,KAAK,iBAAiB,KAAK;AAChE,UAAM,YAAY,kBAAkB,WAAW,SAAS;AAExD,SAAK,mBAAmB,WAAW,WAAW,KAAK,YAAY,KAAK,YAAY;AAEhF,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UAA8B;AAClC,WAAO,IAAI;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AAAA,MACL,CAAC,KAAK,cAAc,QAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MACtD,KAAK;AAAA,IACP;AAAA,EACF;AACF;","names":[]}
|