@frontlit/page-builder 0.1.0-alpha.2 → 0.1.0-alpha.4
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/README.md +32 -0
- package/dist/blocks/index.d.ts +33 -21
- package/dist/blocks/index.js +3 -3
- package/dist/builder/index.d.ts +7 -8
- package/dist/builder/index.js +6 -5
- package/dist/{button-Bzt1GDO-.d.ts → button-OLKN3wPf.d.ts} +2 -2
- package/dist/{chunk-H4P5MFJI.js → chunk-36QHCIPM.js} +205 -251
- package/dist/chunk-36QHCIPM.js.map +1 -0
- package/dist/chunk-BBI7UHOA.js +56 -0
- package/dist/chunk-BBI7UHOA.js.map +1 -0
- package/dist/{chunk-KQKSLI3L.js → chunk-GIKTOAQS.js} +335 -122
- package/dist/chunk-GIKTOAQS.js.map +1 -0
- package/dist/chunk-HWOVSHIW.js +4 -0
- package/dist/{chunk-RUYOL7JZ.js.map → chunk-HWOVSHIW.js.map} +1 -1
- package/dist/{chunk-HDINUNI2.js → chunk-IU4KATI2.js} +69 -96
- package/dist/chunk-IU4KATI2.js.map +1 -0
- package/dist/{chunk-SGNRWWG3.js → chunk-J7Z4UW45.js} +530 -135
- package/dist/chunk-J7Z4UW45.js.map +1 -0
- package/dist/{chunk-UO7XGBGM.js → chunk-K4WCLHMS.js} +1182 -1033
- package/dist/chunk-K4WCLHMS.js.map +1 -0
- package/dist/components/index.d.ts +33 -8
- package/dist/components/index.js +42 -2
- package/dist/components/index.js.map +1 -1
- package/dist/data-slots.d.ts +3 -3
- package/dist/fonts/archivo/archivo-latin-variable.woff2 +0 -0
- package/dist/fonts/hanken-grotesk/hanken-grotesk-latin-variable.woff2 +0 -0
- package/dist/fonts/jetbrains-mono/jetbrains-mono-latin-variable.woff2 +0 -0
- package/dist/fonts/spline-sans-mono/spline-sans-mono-latin-variable.woff2 +0 -0
- package/dist/heading-DQCxQt38.d.ts +20 -0
- package/dist/image-Bk8kPXwP.d.ts +52 -0
- package/dist/index.d.ts +17 -10
- package/dist/index.js +7 -6
- package/dist/models/index.d.ts +5 -5
- package/dist/models/index.js +1 -1
- package/dist/{page-W3hQga4w.d.ts → page-B5Gmm-Ys.d.ts} +1 -1
- package/dist/primitives/index.d.ts +44 -9
- package/dist/primitives/index.js +1 -1
- package/dist/renderer/index.d.ts +12 -8
- package/dist/renderer/index.js +5 -4
- package/dist/{section-background-MsdE40Rk.d.ts → section-background-6V_LCi5e.d.ts} +1 -1
- package/dist/server/index.d.ts +103 -0
- package/dist/server/index.js +2649 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/islands/code-snippet.d.ts +17 -0
- package/dist/server/islands/code-snippet.js +72 -0
- package/dist/server/islands/code-snippet.js.map +1 -0
- package/dist/server/islands/email-form.d.ts +50 -0
- package/dist/server/islands/email-form.js +406 -0
- package/dist/server/islands/email-form.js.map +1 -0
- package/dist/server/islands/header-mobile-menu.d.ts +22 -0
- package/dist/server/islands/header-mobile-menu.js +422 -0
- package/dist/server/islands/header-mobile-menu.js.map +1 -0
- package/dist/server/islands/inline-embed.d.ts +28 -0
- package/dist/server/islands/inline-embed.js +84 -0
- package/dist/server/islands/inline-embed.js.map +1 -0
- package/dist/server/islands/marquee-track.d.ts +18 -0
- package/dist/server/islands/marquee-track.js +67 -0
- package/dist/server/islands/marquee-track.js.map +1 -0
- package/dist/server/islands/nav-link.d.ts +37 -0
- package/dist/server/islands/nav-link.js +67 -0
- package/dist/server/islands/nav-link.js.map +1 -0
- package/dist/server/islands/support-form.d.ts +17 -0
- package/dist/server/islands/support-form.js +469 -0
- package/dist/server/islands/support-form.js.map +1 -0
- package/dist/server/islands/theme-mode-switcher.d.ts +38 -0
- package/dist/server/islands/theme-mode-switcher.js +169 -0
- package/dist/server/islands/theme-mode-switcher.js.map +1 -0
- package/dist/server/islands/video-with-preview.d.ts +13 -0
- package/dist/server/islands/video-with-preview.js +269 -0
- package/dist/server/islands/video-with-preview.js.map +1 -0
- package/dist/server/primitives.d.ts +200 -0
- package/dist/server/primitives.js +888 -0
- package/dist/server/primitives.js.map +1 -0
- package/dist/server/schema.d.ts +11308 -0
- package/dist/server/schema.js +6179 -0
- package/dist/server/schema.js.map +1 -0
- package/dist/server/theme-CF3fIKvw.d.ts +9 -0
- package/dist/server/theme-style-5_AGy-4V.d.ts +183 -0
- package/dist/server/theme-style-BPaMwk88.d.ts +183 -0
- package/dist/server/theme.d.ts +28 -0
- package/dist/server/theme.js +1671 -0
- package/dist/server/theme.js.map +1 -0
- package/dist/server/widget-YH9BrOwY.d.ts +77 -0
- package/dist/styles.css +121 -15
- package/dist/{theme-style-Cbl7NM-T.d.ts → theme-style-BVd5tOsc.d.ts} +20 -0
- package/dist/theme.css +12 -0
- package/dist/{widget-B_RoG6se.d.ts → widget-CpE2HdgU.d.ts} +17 -14
- package/package.json +60 -12
- package/schema/page.v1.json +3855 -0
- package/schema/site.v1.json +3811 -0
- package/dist/alignment-dZDzN96G.d.ts +0 -5
- package/dist/chunk-H4P5MFJI.js.map +0 -1
- package/dist/chunk-HDINUNI2.js.map +0 -1
- package/dist/chunk-KQKSLI3L.js.map +0 -1
- package/dist/chunk-RUYOL7JZ.js +0 -4
- package/dist/chunk-SGNRWWG3.js.map +0 -1
- package/dist/chunk-UO7XGBGM.js.map +0 -1
- package/dist/image-DAWVx1zQ.d.ts +0 -31
package/dist/theme.css
CHANGED
|
@@ -160,6 +160,18 @@
|
|
|
160
160
|
--font-inter:
|
|
161
161
|
var(--font-inter, Inter), ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
|
|
162
162
|
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
163
|
+
--font-archivo:
|
|
164
|
+
var(--font-archivo, Archivo), ui-sans-serif, system-ui, sans-serif,
|
|
165
|
+
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
166
|
+
--font-jetbrains-mono:
|
|
167
|
+
var(--font-jetbrains-mono, "JetBrains Mono"), ui-monospace, SFMono-Regular, Menlo,
|
|
168
|
+
Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
169
|
+
--font-hanken-grotesk:
|
|
170
|
+
var(--font-hanken-grotesk, "Hanken Grotesk"), ui-sans-serif, system-ui, sans-serif,
|
|
171
|
+
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
172
|
+
--font-spline-sans-mono:
|
|
173
|
+
var(--font-spline-sans-mono, "Spline Sans Mono"), ui-monospace, SFMono-Regular,
|
|
174
|
+
Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
163
175
|
--font-alegreya:
|
|
164
176
|
var(--font-alegreya, Alegreya), ui-serif, Georgia, Cambria, "Times New Roman",
|
|
165
177
|
Times, serif;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ComponentType, ReactNode } from 'react';
|
|
2
|
-
import { S as SectionBackground, T as Theme } from './section-background-
|
|
3
|
-
import { T as ThemeStyle } from './theme-style-
|
|
2
|
+
import { S as SectionBackground, T as Theme } from './section-background-6V_LCi5e.js';
|
|
3
|
+
import { T as ThemeStyle } from './theme-style-BVd5tOsc.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* The kind of page a widget/block can be placed on. Kept intentionally
|
|
@@ -51,11 +51,13 @@ interface WidgetDefaultSettings {
|
|
|
51
51
|
}
|
|
52
52
|
interface PageData extends Record<string, unknown> {
|
|
53
53
|
pageType?: string;
|
|
54
|
-
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
/** Branding from site settings. Required so a host can't silently drop
|
|
55
|
+
* it; pass `null` for an unset one. Hosts build these with
|
|
56
|
+
* `toSiteBranding` from `@frontlit/api-contract`. */
|
|
57
|
+
siteTitle: string | null;
|
|
58
|
+
siteSubtitle: string | null;
|
|
59
|
+
siteLogoUrl: string | null;
|
|
60
|
+
siteLogoAlt: string | null;
|
|
59
61
|
/** The page's team (public id) and slug, plus the base URL of FrontLit's
|
|
60
62
|
* public API — threaded through so blocks that make unauthenticated
|
|
61
63
|
* public calls (e.g. the email-form block's lead capture, architecture.md
|
|
@@ -75,13 +77,12 @@ interface WidgetProps<T extends WidgetDefaultSettings = WidgetDefaultSettings> {
|
|
|
75
77
|
/** Host-resolved data rendered by a generic `data-slot` block. */
|
|
76
78
|
data?: ReactNode;
|
|
77
79
|
editing?: boolean;
|
|
78
|
-
/**
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
toggleTheme?: () => void;
|
|
80
|
+
/**
|
|
81
|
+
* Host-wired light/dark control shown by the footer. A ready element
|
|
82
|
+
* (rather than callbacks) so server-rendered pages can supply a client
|
|
83
|
+
* component that owns the colour-mode state.
|
|
84
|
+
*/
|
|
85
|
+
themeSwitcher?: ReactNode;
|
|
85
86
|
}
|
|
86
87
|
interface WidgetEditorProps<T extends WidgetDefaultSettings = WidgetDefaultSettings> {
|
|
87
88
|
settings: T;
|
|
@@ -98,6 +99,8 @@ interface Widget<T extends WidgetDefaultSettings = WidgetDefaultSettings> {
|
|
|
98
99
|
*/
|
|
99
100
|
designEditor?: ComponentType<WidgetEditorProps<T>>;
|
|
100
101
|
getDefaultSettings?: () => Partial<T>;
|
|
102
|
+
/** Offer per-device title sizes (`settings.titleSize`) on the Design tab. */
|
|
103
|
+
titleSize?: boolean;
|
|
101
104
|
/**
|
|
102
105
|
* Alternate layouts this block can render its data in, selectable from
|
|
103
106
|
* the Design tab. The widget reads `settings.layout` while rendering
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frontlit/page-builder",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.4",
|
|
4
4
|
"description": "Block-based WYSIWYG page builder and renderer for React",
|
|
5
5
|
"author": "FrontLit",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"files": [
|
|
12
12
|
"dist",
|
|
13
|
+
"schema",
|
|
13
14
|
"README.md",
|
|
14
15
|
"LICENSE"
|
|
15
16
|
],
|
|
@@ -49,6 +50,32 @@
|
|
|
49
50
|
"import": "./dist/builder/index.js",
|
|
50
51
|
"default": "./dist/builder/index.js"
|
|
51
52
|
},
|
|
53
|
+
"./server": {
|
|
54
|
+
"types": "./dist/server/index.d.ts",
|
|
55
|
+
"import": "./dist/server/index.js",
|
|
56
|
+
"default": "./dist/server/index.js"
|
|
57
|
+
},
|
|
58
|
+
"./primitives/server": {
|
|
59
|
+
"types": "./dist/server/primitives.d.ts",
|
|
60
|
+
"import": "./dist/server/primitives.js",
|
|
61
|
+
"default": "./dist/server/primitives.js"
|
|
62
|
+
},
|
|
63
|
+
"./islands/*": {
|
|
64
|
+
"types": "./dist/server/islands/*.d.ts",
|
|
65
|
+
"import": "./dist/server/islands/*.js",
|
|
66
|
+
"default": "./dist/server/islands/*.js"
|
|
67
|
+
},
|
|
68
|
+
"./theme": {
|
|
69
|
+
"types": "./dist/server/theme.d.ts",
|
|
70
|
+
"import": "./dist/server/theme.js",
|
|
71
|
+
"default": "./dist/server/theme.js"
|
|
72
|
+
},
|
|
73
|
+
"./schema": {
|
|
74
|
+
"types": "./dist/server/schema.d.ts",
|
|
75
|
+
"import": "./dist/server/schema.js",
|
|
76
|
+
"default": "./dist/server/schema.js"
|
|
77
|
+
},
|
|
78
|
+
"./schema/*.json": "./schema/*.json",
|
|
52
79
|
"./data-slots": {
|
|
53
80
|
"types": "./dist/data-slots.d.ts",
|
|
54
81
|
"import": "./dist/data-slots.js",
|
|
@@ -77,6 +104,21 @@
|
|
|
77
104
|
"builder": [
|
|
78
105
|
"dist/builder/index.d.ts"
|
|
79
106
|
],
|
|
107
|
+
"server": [
|
|
108
|
+
"dist/server/index.d.ts"
|
|
109
|
+
],
|
|
110
|
+
"theme": [
|
|
111
|
+
"dist/server/theme.d.ts"
|
|
112
|
+
],
|
|
113
|
+
"primitives/server": [
|
|
114
|
+
"dist/server/primitives.d.ts"
|
|
115
|
+
],
|
|
116
|
+
"islands/*": [
|
|
117
|
+
"dist/server/islands/*.d.ts"
|
|
118
|
+
],
|
|
119
|
+
"schema": [
|
|
120
|
+
"dist/server/schema.d.ts"
|
|
121
|
+
],
|
|
80
122
|
"data-slots": [
|
|
81
123
|
"dist/data-slots.d.ts"
|
|
82
124
|
]
|
|
@@ -106,19 +148,21 @@
|
|
|
106
148
|
"frontlit"
|
|
107
149
|
],
|
|
108
150
|
"scripts": {
|
|
109
|
-
"build": "tsup && node scripts/add-use-client.mjs && tailwindcss -i src/styles.css -o dist/styles.css && cp src/theme.css dist/theme.css && rm -rf dist/fonts && cp -a fonts dist/fonts && node scripts/rewrite-font-urls.mjs",
|
|
110
|
-
"
|
|
111
|
-
"dev": "tsup --watch",
|
|
151
|
+
"build": "tsup && tsup --config tsup.islands.config.ts && tsup --config tsup.server.config.ts && tsup --config tsup.schema.config.ts && node scripts/add-use-client.mjs && tailwindcss -i src/styles.css -o dist/styles.css && cp src/theme.css dist/theme.css && rm -rf dist/fonts && cp -a fonts dist/fonts && node scripts/rewrite-font-urls.mjs",
|
|
152
|
+
"dev": "tsup --watch & tsup --watch --config tsup.islands.config.ts & tsup --watch --config tsup.server.config.ts & wait",
|
|
112
153
|
"clean": "rimraf dist",
|
|
113
|
-
"check-types": "tsc --noEmit"
|
|
154
|
+
"check-types": "tsc --noEmit",
|
|
155
|
+
"schema:generate": "bun scripts/generate-json-schemas.ts",
|
|
156
|
+
"build:schema": "tsup --config tsup.schema.config.ts",
|
|
157
|
+
"test": "vitest run"
|
|
114
158
|
},
|
|
115
159
|
"peerDependencies": {
|
|
116
160
|
"react": "^18.0.0 || ^19.0.0",
|
|
117
161
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
118
162
|
},
|
|
119
163
|
"dependencies": {
|
|
120
|
-
"@frontlit/media-uploader": "0.1.0-alpha.
|
|
121
|
-
"@frontlit/text-editor": "0.1.0-alpha.
|
|
164
|
+
"@frontlit/media-uploader": "0.1.0-alpha.1",
|
|
165
|
+
"@frontlit/text-editor": "0.1.0-alpha.3",
|
|
122
166
|
"@radix-ui/react-alert-dialog": "^1.1.23",
|
|
123
167
|
"@radix-ui/react-avatar": "^1.2.6",
|
|
124
168
|
"@radix-ui/react-checkbox": "^1.3.11",
|
|
@@ -127,27 +171,31 @@
|
|
|
127
171
|
"@radix-ui/react-label": "^2.1.8",
|
|
128
172
|
"@radix-ui/react-popover": "^1.1.23",
|
|
129
173
|
"@radix-ui/react-radio-group": "^1.4.7",
|
|
130
|
-
"@radix-ui/react-slot": "^1.2.4",
|
|
131
|
-
"@radix-ui/react-switch": "^1.2.6",
|
|
132
174
|
"@radix-ui/react-select": "^2.3.7",
|
|
133
175
|
"@radix-ui/react-separator": "^1.1.15",
|
|
176
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
177
|
+
"@radix-ui/react-switch": "^1.2.6",
|
|
134
178
|
"@radix-ui/react-tooltip": "^1.2.16",
|
|
135
179
|
"class-variance-authority": "^0.7.1",
|
|
136
180
|
"clsx": "^2.1.1",
|
|
137
181
|
"color-convert": "^3.1.0",
|
|
182
|
+
"jsonc-parser": "^3.3.1",
|
|
138
183
|
"lucide-react": "^0.553.0",
|
|
139
184
|
"tailwind-merge": "^3.4.0",
|
|
140
|
-
"tw-animate-css": "^1.4.0"
|
|
185
|
+
"tw-animate-css": "^1.4.0",
|
|
186
|
+
"zod": "^3.25.76"
|
|
141
187
|
},
|
|
142
188
|
"devDependencies": {
|
|
189
|
+
"@tailwindcss/cli": "^4.1.0",
|
|
143
190
|
"@types/color-convert": "^2.0.4",
|
|
144
191
|
"@types/node": "^20.0.0",
|
|
145
192
|
"@types/react": "^19.0.0",
|
|
146
193
|
"@types/react-dom": "^19.0.0",
|
|
147
|
-
"@tailwindcss/cli": "^4.1.0",
|
|
148
194
|
"rimraf": "^5.0.0",
|
|
149
195
|
"tailwindcss": "^4.1.0",
|
|
150
196
|
"tsup": "^8.3.0",
|
|
151
|
-
"typescript": "^5.6.2"
|
|
197
|
+
"typescript": "^5.6.2",
|
|
198
|
+
"vitest": "^3.2.4",
|
|
199
|
+
"zod-to-json-schema": "^3.25.2"
|
|
152
200
|
}
|
|
153
201
|
}
|