@meetelise/studio-components 0.0.10 → 0.0.12
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/componentSchema.json +1147 -0
- package/dist/components/ThemeProvider.d.ts +13 -0
- package/dist/components/ThemeProvider.d.ts.map +1 -1
- package/dist/components/ThemeProvider.js +143 -21
- package/dist/components/ThemeProvider.js.map +1 -1
- package/dist/index.d.ts +16 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -1
- package/dist/index.js.map +1 -1
- package/dist/schema/componentSchema.d.ts +45 -0
- package/dist/schema/componentSchema.d.ts.map +1 -0
- package/dist/schema/componentSchema.js +497 -0
- package/dist/schema/componentSchema.js.map +1 -0
- package/dist/types.d.ts +10 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/resolveConfig.d.ts +8 -0
- package/dist/utils/resolveConfig.d.ts.map +1 -1
- package/dist/utils/resolveConfig.js +68 -6
- package/dist/utils/resolveConfig.js.map +1 -1
- package/package.json +17 -3
|
@@ -4,5 +4,18 @@ interface ThemeProviderProps {
|
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
}
|
|
6
6
|
export declare function ThemeProvider({ theme, children }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
interface ThemeScopeProps {
|
|
8
|
+
/** Theme carrying `modes` (e.g. from the resolved SiteConfig). */
|
|
9
|
+
theme?: SiteTheme;
|
|
10
|
+
/** Mode key to apply, e.g. "building:123". */
|
|
11
|
+
modeKey?: string;
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Subtree mode overlay: re-declares only the vars in `theme.modes[modeKey]` on a
|
|
16
|
+
* nested div (rest inherit via cascade); no font reload, no ThemeProvider re-mount.
|
|
17
|
+
* Real consumer is the per-building Repeat (P4a).
|
|
18
|
+
*/
|
|
19
|
+
export declare function ThemeScope({ theme, modeKey, children }: ThemeScopeProps): import("react/jsx-runtime").JSX.Element;
|
|
7
20
|
export {};
|
|
8
21
|
//# sourceMappingURL=ThemeProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/components/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/components/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,UAAU,CAAC;AAsM3D,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CA8CpE;AAMD,UAAU,eAAe;IACvB,kEAAkE;IAClE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAgBvE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
// ---------------------------------------------------------------------------
|
|
3
3
|
// Font presets
|
|
4
4
|
// ---------------------------------------------------------------------------
|
|
@@ -73,30 +73,152 @@ function loadGoogleFont(family) {
|
|
|
73
73
|
link.href = `https://fonts.googleapis.com/css2?family=${encodeURIComponent(family)}:wght@300;400;500;600;700;800;900&display=swap`;
|
|
74
74
|
document.head.appendChild(link);
|
|
75
75
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
// Token model
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
// Dotted token name → CSS var. Default is dots→dashes; these cases are renamed:
|
|
80
|
+
// color.bg→--color-background, color.fg→--color-foreground, .base dropped.
|
|
81
|
+
function tokenToCssVar(name) {
|
|
82
|
+
switch (name) {
|
|
83
|
+
case "color.bg":
|
|
84
|
+
return "--color-background";
|
|
85
|
+
case "color.fg":
|
|
86
|
+
return "--color-foreground";
|
|
87
|
+
case "radius.base":
|
|
88
|
+
return "--radius";
|
|
89
|
+
case "shadow.base":
|
|
90
|
+
return "--shadow";
|
|
91
|
+
default:
|
|
92
|
+
return `--${name.replace(/\./g, "-")}`;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// CSS var/value entries for one token, applying the same value transforms as
|
|
96
|
+
// styleFromTokens (radius/shadow map through their tables; fonts quoted + loaded;
|
|
97
|
+
// color.* and custom tokens pass through raw). Used by ThemeScope mode overlays.
|
|
98
|
+
function tokenCssEntries(name, value) {
|
|
99
|
+
switch (name) {
|
|
100
|
+
case "radius.base":
|
|
101
|
+
return [["--radius", RADIUS_VALUES[value] ?? RADIUS_VALUES.lg]];
|
|
102
|
+
case "shadow.base": {
|
|
103
|
+
const s = SHADOW_VALUES[value] ?? SHADOW_VALUES.soft;
|
|
104
|
+
return [
|
|
105
|
+
["--shadow", s.base],
|
|
106
|
+
["--shadow-hover", s.hover],
|
|
107
|
+
];
|
|
108
|
+
}
|
|
109
|
+
case "font.heading":
|
|
110
|
+
case "font.body":
|
|
111
|
+
loadGoogleFont(value);
|
|
112
|
+
return [[tokenToCssVar(name), `'${value}', sans-serif`]];
|
|
113
|
+
default:
|
|
114
|
+
return [[tokenToCssVar(name), value]];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Resolve {$token} aliases to strings; visited-set cycle guard, missing/cyclic → "".
|
|
118
|
+
function resolveTokenAliases(tokens) {
|
|
119
|
+
const resolve = (name, visited) => {
|
|
120
|
+
const val = tokens[name];
|
|
121
|
+
if (typeof val === "string")
|
|
122
|
+
return val;
|
|
123
|
+
if (val && typeof val === "object" && "$token" in val) {
|
|
124
|
+
const ref = val.$token;
|
|
125
|
+
if (typeof ref !== "string" || visited.has(name))
|
|
126
|
+
return "";
|
|
127
|
+
visited.add(name);
|
|
128
|
+
return resolve(ref, visited);
|
|
129
|
+
}
|
|
130
|
+
return "";
|
|
131
|
+
};
|
|
132
|
+
const out = {};
|
|
133
|
+
for (const name of Object.keys(tokens)) {
|
|
134
|
+
out[name] = resolve(name, new Set());
|
|
135
|
+
}
|
|
136
|
+
return out;
|
|
137
|
+
}
|
|
138
|
+
// Token map → CSS-var style object; guarantees all 11 legacy var names so the
|
|
139
|
+
// className cascade contract holds.
|
|
140
|
+
function styleFromTokens(tokens) {
|
|
141
|
+
const resolved = resolveTokenAliases(tokens);
|
|
87
142
|
const style = {};
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
style[`--color-${key}`] = value;
|
|
143
|
+
for (const [name, value] of Object.entries(resolved)) {
|
|
144
|
+
style[tokenToCssVar(name)] = value;
|
|
91
145
|
}
|
|
92
|
-
//
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
style["--
|
|
97
|
-
|
|
146
|
+
// Backfill every legacy var (even absent tokens) to guarantee the cascade
|
|
147
|
+
// contract. Canonical THEME_TOKEN_NAMES only — a non-canonical alias (e.g.
|
|
148
|
+
// color.background vs color.bg) is overwritten by the canonical lookup below.
|
|
149
|
+
const color = (name, fallback) => resolved[name] || fallback;
|
|
150
|
+
style["--color-background"] = color("color.bg", defaultTheme.colors.background);
|
|
151
|
+
style["--color-foreground"] = color("color.fg", defaultTheme.colors.foreground);
|
|
152
|
+
style["--color-primary"] = color("color.primary", defaultTheme.colors.primary);
|
|
153
|
+
style["--color-secondary"] = color("color.secondary", defaultTheme.colors.secondary);
|
|
154
|
+
style["--color-accent"] = color("color.accent", defaultTheme.colors.accent);
|
|
155
|
+
style["--color-muted"] = color("color.muted", defaultTheme.colors.muted);
|
|
156
|
+
const headingFont = resolved["font.heading"] || FONT_PRESETS.modern.heading;
|
|
157
|
+
const bodyFont = resolved["font.body"] || FONT_PRESETS.modern.body;
|
|
158
|
+
loadGoogleFont(headingFont);
|
|
159
|
+
if (bodyFont !== headingFont)
|
|
160
|
+
loadGoogleFont(bodyFont);
|
|
161
|
+
style["--font-heading"] = `'${headingFont}', sans-serif`;
|
|
162
|
+
style["--font-body"] = `'${bodyFont}', sans-serif`;
|
|
163
|
+
const radiusKey = resolved["radius.base"] || "lg";
|
|
164
|
+
style["--radius"] = RADIUS_VALUES[radiusKey] ?? RADIUS_VALUES.lg;
|
|
165
|
+
const shadowKey = resolved["shadow.base"] || "soft";
|
|
166
|
+
const shadowValues = SHADOW_VALUES[shadowKey] ?? SHADOW_VALUES.soft;
|
|
98
167
|
style["--shadow"] = shadowValues.base;
|
|
99
168
|
style["--shadow-hover"] = shadowValues.hover;
|
|
169
|
+
return style;
|
|
170
|
+
}
|
|
171
|
+
export function ThemeProvider({ theme, children }) {
|
|
172
|
+
let style;
|
|
173
|
+
if (theme?.tokens) {
|
|
174
|
+
style = styleFromTokens(theme.tokens);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
// Legacy flat shape, unchanged so legacy sites render byte-identically.
|
|
178
|
+
const mergedColors = { ...defaultTheme.colors, ...theme?.colors };
|
|
179
|
+
const fonts = resolveFonts(theme?.fonts ?? defaultTheme.fonts);
|
|
180
|
+
const radius = theme?.radius ?? defaultTheme.radius ?? "lg";
|
|
181
|
+
const shadow = theme?.shadow ?? defaultTheme.shadow ?? "soft";
|
|
182
|
+
// Load Google Fonts
|
|
183
|
+
loadGoogleFont(fonts.heading);
|
|
184
|
+
if (fonts.body !== fonts.heading)
|
|
185
|
+
loadGoogleFont(fonts.body);
|
|
186
|
+
const radiusValue = RADIUS_VALUES[radius] ?? RADIUS_VALUES.lg;
|
|
187
|
+
const shadowValues = SHADOW_VALUES[shadow] ?? SHADOW_VALUES.soft;
|
|
188
|
+
style = {};
|
|
189
|
+
// Colors
|
|
190
|
+
for (const [key, value] of Object.entries(mergedColors)) {
|
|
191
|
+
style[`--color-${key}`] = value;
|
|
192
|
+
}
|
|
193
|
+
// Fonts
|
|
194
|
+
style["--font-heading"] = `'${fonts.heading}', sans-serif`;
|
|
195
|
+
style["--font-body"] = `'${fonts.body}', sans-serif`;
|
|
196
|
+
// Radius
|
|
197
|
+
style["--radius"] = radiusValue;
|
|
198
|
+
// Shadows
|
|
199
|
+
style["--shadow"] = shadowValues.base;
|
|
200
|
+
style["--shadow-hover"] = shadowValues.hover;
|
|
201
|
+
}
|
|
100
202
|
return (_jsx("div", { style: style, className: "min-h-screen bg-[var(--color-background)] text-[var(--color-foreground)] font-[family-name:var(--font-body)]", children: children }));
|
|
101
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Subtree mode overlay: re-declares only the vars in `theme.modes[modeKey]` on a
|
|
206
|
+
* nested div (rest inherit via cascade); no font reload, no ThemeProvider re-mount.
|
|
207
|
+
* Real consumer is the per-building Repeat (P4a).
|
|
208
|
+
*/
|
|
209
|
+
export function ThemeScope({ theme, modeKey, children }) {
|
|
210
|
+
const overrides = modeKey ? theme?.modes?.[modeKey] : undefined;
|
|
211
|
+
if (!overrides || Object.keys(overrides).length === 0) {
|
|
212
|
+
return _jsx(_Fragment, { children: children });
|
|
213
|
+
}
|
|
214
|
+
// assembleTheme strips `modes` from the resolved theme, so the consumer must
|
|
215
|
+
// feed ThemeScope the unstripped modes via a separate channel (P4a seam).
|
|
216
|
+
const style = {};
|
|
217
|
+
for (const [name, value] of Object.entries(overrides)) {
|
|
218
|
+
for (const [cssVar, cssValue] of tokenCssEntries(name, value)) {
|
|
219
|
+
style[cssVar] = cssValue;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return _jsx("div", { style: style, children: children });
|
|
223
|
+
}
|
|
102
224
|
//# sourceMappingURL=ThemeProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["../../src/components/ThemeProvider.tsx"],"names":[],"mappings":";AAEA,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,YAAY,GAAsD;IACtE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3C,SAAS,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE;IACjE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IAC9C,IAAI,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE;CACxD,CAAC;AAEF,SAAS,YAAY,CACnB,KAA0B;IAE1B,IAAI,CAAC,KAAK;QAAE,OAAO,YAAY,CAAC,MAAM,CAAC;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC;IACjF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,2CAA2C;AAC3C,8EAA8E;AAE9E,MAAM,aAAa,GAA2B;IAC5C,IAAI,EAAE,KAAK;IACX,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,QAAQ;CACf,CAAC;AAEF,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,aAAa,GAAoD;IACrE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IACrC,KAAK,EAAE;QACL,IAAI,EAAE,4BAA4B;QAClC,KAAK,EAAE,4BAA4B;KACpC;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,yDAAyD;QAC/D,KAAK,EAAE,0DAA0D;KAClE;IACD,KAAK,EAAE;QACL,IAAI,EAAE,wDAAwD;QAC9D,KAAK,EAAE,0DAA0D;KAClE;CACF,CAAC;AAEF,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,MAAM,YAAY,GAAc;IAC9B,MAAM,EAAE;QACN,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,SAAS;KACjB;IACD,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,MAAM;CACf,CAAC;AAEF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;AAEtC,SAAS,cAAc,CAAC,MAAc;IACpC,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO;IACpC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAExB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;IACxB,IAAI,CAAC,IAAI,GAAG,4CAA4C,kBAAkB,CAAC,MAAM,CAAC,gDAAgD,CAAC;IACnI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAWD,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAsB;IACnE,MAAM,YAAY,GAAG,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["../../src/components/ThemeProvider.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
export { renderNode, SiteRenderer } from "./renderer";
|
|
2
2
|
export { componentRegistry } from "./components/registry";
|
|
3
|
-
export { ThemeProvider } from "./components/ThemeProvider";
|
|
3
|
+
export { ThemeProvider, ThemeScope } from "./components/ThemeProvider";
|
|
4
4
|
export { SiteConfigProvider, useSiteConfig } from "./hooks/useSiteConfig";
|
|
5
5
|
export { AuthProvider, useAuth } from "./hooks/useAuth";
|
|
6
6
|
export { ModalProvider, useModal } from "./hooks/useModal";
|
|
7
7
|
export { Router, Router as BrowserRouter, usePathname, usePathname as useLocation, useNavigate, useParams } from "./router";
|
|
8
|
-
export type { SiteNode, SitePage, SiteLayout, SiteMeta, PageMeta, SiteTheme, SiteProperty, SiteConfig, AnalyticsConfig, NavLink, FooterColumn, } from "./types";
|
|
8
|
+
export type { SiteNode, SitePage, SiteLayout, SiteMeta, PageMeta, SiteTheme, ThemeTokenValue, SiteProperty, SiteConfig, AnalyticsConfig, NavLink, FooterColumn, } from "./types";
|
|
9
|
+
export declare const THEME_TOKEN_NAMES: {
|
|
10
|
+
readonly bg: "color.bg";
|
|
11
|
+
readonly fg: "color.fg";
|
|
12
|
+
readonly primary: "color.primary";
|
|
13
|
+
readonly secondary: "color.secondary";
|
|
14
|
+
readonly accent: "color.accent";
|
|
15
|
+
readonly muted: "color.muted";
|
|
16
|
+
readonly fontHeading: "font.heading";
|
|
17
|
+
readonly fontBody: "font.body";
|
|
18
|
+
readonly radius: "radius.base";
|
|
19
|
+
readonly shadow: "shadow.base";
|
|
20
|
+
};
|
|
9
21
|
export type { PublicUnit, PublicFloorplan, PublicFee, PublicSpecial, PublicPriceMatrixEntry, UnitsPageResponse, FloorplansPageResponse, FeesResponse, SpecialsResponse, UnitFilterValues, } from "./components/units/types";
|
|
10
22
|
export { useProperty } from "./hooks/useProperty";
|
|
11
23
|
export { useFloorplans } from "./hooks/useFloorplans";
|
|
@@ -15,4 +27,6 @@ export { imageUrl } from "./utils/imageUrl";
|
|
|
15
27
|
export { useAnalytics } from "./hooks/useAnalytics";
|
|
16
28
|
export { resolveConfig } from "./utils/resolveConfig";
|
|
17
29
|
export type { ResolveOptions, RawSiteConfig, ContentValue as ResolverContentValue, AssetValue as ResolverAssetValue } from "./utils/resolveConfig";
|
|
30
|
+
export { componentSchema, SCHEMA_VERSION } from "./schema/componentSchema";
|
|
31
|
+
export type { PropSpec, PropKind, ComponentSpec } from "./schema/componentSchema";
|
|
18
32
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,aAAa,EAAE,WAAW,EAAE,WAAW,IAAI,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE5H,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,EACf,YAAY,EACZ,UAAU,EACV,eAAe,EACf,OAAO,EACP,YAAY,GACb,MAAM,SAAS,CAAC;AAIjB,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAWpB,CAAC;AAEX,YAAY,EACV,UAAU,EACV,eAAe,EACf,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,IAAI,oBAAoB,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACnJ,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC3E,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
export { renderNode, SiteRenderer } from "./renderer";
|
|
2
2
|
export { componentRegistry } from "./components/registry";
|
|
3
|
-
export { ThemeProvider } from "./components/ThemeProvider";
|
|
3
|
+
export { ThemeProvider, ThemeScope } from "./components/ThemeProvider";
|
|
4
4
|
export { SiteConfigProvider, useSiteConfig } from "./hooks/useSiteConfig";
|
|
5
5
|
export { AuthProvider, useAuth } from "./hooks/useAuth";
|
|
6
6
|
export { ModalProvider, useModal } from "./hooks/useModal";
|
|
7
7
|
export { Router, Router as BrowserRouter, usePathname, usePathname as useLocation, useNavigate, useParams } from "./router";
|
|
8
|
+
// Canonical token names; the frontend ThemeTab imports these so authored keys
|
|
9
|
+
// stay in lockstep with the resolver/provider.
|
|
10
|
+
export const THEME_TOKEN_NAMES = {
|
|
11
|
+
bg: "color.bg",
|
|
12
|
+
fg: "color.fg",
|
|
13
|
+
primary: "color.primary",
|
|
14
|
+
secondary: "color.secondary",
|
|
15
|
+
accent: "color.accent",
|
|
16
|
+
muted: "color.muted",
|
|
17
|
+
fontHeading: "font.heading",
|
|
18
|
+
fontBody: "font.body",
|
|
19
|
+
radius: "radius.base",
|
|
20
|
+
shadow: "shadow.base",
|
|
21
|
+
};
|
|
8
22
|
export { useProperty } from "./hooks/useProperty";
|
|
9
23
|
export { useFloorplans } from "./hooks/useFloorplans";
|
|
10
24
|
export { useFees } from "./hooks/useFees";
|
|
@@ -12,4 +26,5 @@ export { useSpecials } from "./hooks/useSpecials";
|
|
|
12
26
|
export { imageUrl } from "./utils/imageUrl";
|
|
13
27
|
export { useAnalytics } from "./hooks/useAnalytics";
|
|
14
28
|
export { resolveConfig } from "./utils/resolveConfig";
|
|
29
|
+
export { componentSchema, SCHEMA_VERSION } from "./schema/componentSchema";
|
|
15
30
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,aAAa,EAAE,WAAW,EAAE,WAAW,IAAI,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAiB5H,8EAA8E;AAC9E,+CAA+C;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,UAAU;IACd,OAAO,EAAE,eAAe;IACxB,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,cAAc;IACtB,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,cAAc;IAC3B,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,aAAa;CACb,CAAC;AAeX,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Machine-readable prop schema for every registry component — the single source of
|
|
3
|
+
* truth consumed by the CRM editor and, via the generated `dist/componentSchema.json`,
|
|
4
|
+
* the compiler's publish-time validation. Supersedes `componentMeta.ts` for prop
|
|
5
|
+
* schemas (componentMeta stays for the dev ComponentBrowser + presets). `isDirective`
|
|
6
|
+
* specs (Symbol/Repeat/Slot/BuildingSlice) are legal in the raw tree but resolved away
|
|
7
|
+
* before render, so they map to no render component.
|
|
8
|
+
*/
|
|
9
|
+
/** Bump when the schema shape changes. */
|
|
10
|
+
export declare const SCHEMA_VERSION = 1;
|
|
11
|
+
export type PropKind = "string" | "text" | "richtext" | "number" | "boolean" | "enum" | "color" | "token" | "url" | "image" | "asset" | "object" | "array" | "node";
|
|
12
|
+
export interface PropSpec {
|
|
13
|
+
kind: PropKind;
|
|
14
|
+
label?: string;
|
|
15
|
+
default?: unknown;
|
|
16
|
+
required?: boolean;
|
|
17
|
+
/** May take a `{$content}` / `{$data}` binding instead of a literal. */
|
|
18
|
+
bindable?: boolean;
|
|
19
|
+
/** enum */
|
|
20
|
+
options?: (string | number)[];
|
|
21
|
+
/** number / string */
|
|
22
|
+
min?: number;
|
|
23
|
+
max?: number;
|
|
24
|
+
placeholder?: string;
|
|
25
|
+
/** object: nested field schema */
|
|
26
|
+
subFields?: Record<string, PropSpec>;
|
|
27
|
+
/** array: element schema */
|
|
28
|
+
item?: PropSpec;
|
|
29
|
+
/** node / slot: insertion constraint */
|
|
30
|
+
allowedComponents?: string[];
|
|
31
|
+
}
|
|
32
|
+
export interface ComponentSpec {
|
|
33
|
+
category: string;
|
|
34
|
+
description: string;
|
|
35
|
+
props: Record<string, PropSpec>;
|
|
36
|
+
acceptsChildren: boolean | {
|
|
37
|
+
allowedComponents?: string[];
|
|
38
|
+
};
|
|
39
|
+
/** Consumes live property data (needs a propertyId). */
|
|
40
|
+
needsApi?: boolean;
|
|
41
|
+
/** Resolver-handled authoring directive — must not survive to the rendered tree. */
|
|
42
|
+
isDirective?: boolean;
|
|
43
|
+
}
|
|
44
|
+
export declare const componentSchema: Record<string, ComponentSpec>;
|
|
45
|
+
//# sourceMappingURL=componentSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"componentSchema.d.ts","sourceRoot":"","sources":["../../src/schema/componentSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,0CAA0C;AAC1C,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,MAAM,MAAM,QAAQ,GAChB,QAAQ,GACR,MAAM,GACN,UAAU,GACV,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,GACP,KAAK,GACL,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW;IACX,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC9B,sBAAsB;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,4BAA4B;IAC5B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,eAAe,EAAE,OAAO,GAAG;QAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5D,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oFAAoF;IACpF,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAcD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAqezD,CAAC"}
|