@measured/puck 0.14.0-canary.70cf177 → 0.14.0-canary.83be956
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +8 -0
- package/dist/{Config-29dc2731.d.ts → Config-09628f3c.d.ts} +17 -24
- package/dist/index.css +192 -160
- package/dist/index.d.ts +58 -48
- package/dist/index.js +427 -330
- package/dist/rsc.d.ts +2 -2
- package/dist/rsc.js +4 -1
- package/package.json +3 -3
package/README.md
CHANGED
@@ -15,6 +15,9 @@ The visual editor for React.
|
|
15
15
|
<a aria-label="Join the community on Discord" href="https://discord.gg/D9e4E3MQVZ">
|
16
16
|
<img alt="" src="https://img.shields.io/badge/Join%20the%20Discord-blueviolet.svg?style=for-the-badge&logo=Discord&labelColor=000000&logoWidth=20">
|
17
17
|
</a>
|
18
|
+
<a aria-label="Browse the awesome-puck community repo" href="https://github.com/measuredco/awesome-puck">
|
19
|
+
<img alt="" src="https://img.shields.io/badge/repo-awesome--puck-fc60a8.svg?style=for-the-badge&labelColor=000000&logoWidth=20">
|
20
|
+
</a>
|
18
21
|
</p>
|
19
22
|
|
20
23
|
## Demo
|
@@ -96,6 +99,11 @@ Available recipes include:
|
|
96
99
|
- [**next**](https://github.com/measuredco/puck/tree/main/recipes/next): Next.js 13 app example, using App Router and static page generation
|
97
100
|
- [**remix**](https://github.com/measuredco/puck/tree/main/recipes/remix): Remix Run v2 app example, using dynamic routes at root-level
|
98
101
|
|
102
|
+
## Community
|
103
|
+
|
104
|
+
- [Discord server](https://discord.gg/D9e4E3MQVZ) for discussions
|
105
|
+
- [awesome-puck](https://github.com/measuredco/awesome-puck) community repo for plugins, custom fields & more
|
106
|
+
|
99
107
|
## Hire the Puck team
|
100
108
|
|
101
109
|
Puck is developed and maintained by **Measured**, a small group of industry veterans with decades of experience helping companies solve hard UI problems. We offer consultancy and development services for scale-ups, SMEs and enterprises.
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { CSSProperties, ReactNode, ReactElement } from 'react';
|
2
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
3
2
|
|
4
3
|
type ItemSelector = {
|
5
4
|
index: number;
|
@@ -12,7 +11,6 @@ type DropZoneProps = {
|
|
12
11
|
disallow?: string[];
|
13
12
|
style?: CSSProperties;
|
14
13
|
};
|
15
|
-
declare function DropZone(props: DropZoneProps): react_jsx_runtime.JSX.Element;
|
16
14
|
|
17
15
|
type iconTypes = "Smartphone" | "Monitor" | "Tablet";
|
18
16
|
type Viewport = {
|
@@ -106,7 +104,7 @@ type ExternalField<Props extends {
|
|
106
104
|
}) => Promise<any[] | null>;
|
107
105
|
mapProp?: (value: any) => Props;
|
108
106
|
mapRow?: (value: any) => Record<string, string | number>;
|
109
|
-
getItemSummary
|
107
|
+
getItemSummary?: (item: Props, index?: number) => string;
|
110
108
|
showSearch?: boolean;
|
111
109
|
initialQuery?: string;
|
112
110
|
filterFields?: Record<string, Field>;
|
@@ -147,20 +145,26 @@ type Content<Props extends {
|
|
147
145
|
} = {
|
148
146
|
[key: string]: any;
|
149
147
|
}> = ComponentData<Props>[];
|
150
|
-
type PuckComponent<Props
|
148
|
+
type PuckComponent<Props> = (props: WithPuckProps<Props & {
|
151
149
|
puck: PuckContext;
|
152
150
|
}>) => JSX.Element;
|
153
151
|
type PuckContext = {
|
154
|
-
renderDropZone:
|
152
|
+
renderDropZone: React.FC<DropZoneProps>;
|
155
153
|
};
|
156
|
-
type ComponentConfig<ComponentProps extends DefaultComponentProps = DefaultComponentProps, DefaultProps = ComponentProps, DataShape = ComponentData<ComponentProps>> = {
|
154
|
+
type ComponentConfig<ComponentProps extends DefaultComponentProps = DefaultComponentProps, DefaultProps = ComponentProps, DataShape = Omit<ComponentData<ComponentProps>, "type">> = {
|
157
155
|
render: PuckComponent<ComponentProps>;
|
158
156
|
label?: string;
|
159
157
|
defaultProps?: DefaultProps;
|
160
158
|
fields?: Fields<ComponentProps>;
|
161
159
|
resolveData?: (data: DataShape, params: {
|
162
160
|
changed: Partial<Record<keyof ComponentProps, boolean>>;
|
163
|
-
}) => Promise<
|
161
|
+
}) => Promise<{
|
162
|
+
props?: Partial<ComponentProps>;
|
163
|
+
readOnly?: Partial<Record<keyof ComponentProps, boolean>>;
|
164
|
+
}> | {
|
165
|
+
props?: Partial<ComponentProps>;
|
166
|
+
readOnly?: Partial<Record<keyof ComponentProps, boolean>>;
|
167
|
+
};
|
164
168
|
};
|
165
169
|
type Category<ComponentName> = {
|
166
170
|
components?: ComponentName[];
|
@@ -168,22 +172,18 @@ type Category<ComponentName> = {
|
|
168
172
|
visible?: boolean;
|
169
173
|
defaultExpanded?: boolean;
|
170
174
|
};
|
171
|
-
type Config<Props extends {
|
172
|
-
[key: string]: any;
|
173
|
-
} = {
|
174
|
-
[key: string]: any;
|
175
|
-
}, RootProps extends DefaultRootProps = DefaultRootProps, CategoryName extends string = any> = {
|
175
|
+
type Config<Props extends Record<string, any> = Record<string, any>, RootProps extends DefaultRootProps = DefaultRootProps, CategoryName extends string = string> = {
|
176
176
|
categories?: Record<CategoryName, Category<keyof Props>> & {
|
177
|
-
other?: Category<Props>;
|
177
|
+
other?: Category<keyof Props>;
|
178
178
|
};
|
179
179
|
components: {
|
180
180
|
[ComponentName in keyof Props]: Omit<ComponentConfig<Props[ComponentName], Props[ComponentName]>, "type">;
|
181
181
|
};
|
182
182
|
root?: Partial<ComponentConfig<RootProps & {
|
183
|
-
children
|
183
|
+
children?: ReactNode;
|
184
184
|
}, Partial<RootProps & {
|
185
|
-
children
|
186
|
-
}>, RootDataWithProps
|
185
|
+
children?: ReactNode;
|
186
|
+
}>, RootDataWithProps>>;
|
187
187
|
};
|
188
188
|
type BaseData<Props extends {
|
189
189
|
[key: string]: any;
|
@@ -201,13 +201,6 @@ type RootDataWithProps<Props extends DefaultRootProps = DefaultRootProps> = {
|
|
201
201
|
};
|
202
202
|
type RootDataWithoutProps<Props extends DefaultRootProps = DefaultRootProps> = Props;
|
203
203
|
type RootData<Props extends DefaultRootProps = DefaultRootProps> = BaseData<Props> & Partial<RootDataWithProps<Props>> & Partial<RootDataWithoutProps<Props>>;
|
204
|
-
type ComponentDataWithOptionalProps<Props extends {
|
205
|
-
[key: string]: any;
|
206
|
-
} = {
|
207
|
-
[key: string]: any;
|
208
|
-
}> = Omit<ComponentData, "props"> & {
|
209
|
-
props: Partial<WithPuckProps<Props>>;
|
210
|
-
};
|
211
204
|
type MappedItem = ComponentData;
|
212
205
|
type Data<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultRootProps = DefaultRootProps> = {
|
213
206
|
root: RootData<RootProps>;
|
@@ -248,4 +241,4 @@ type AppState = {
|
|
248
241
|
ui: UiState;
|
249
242
|
};
|
250
243
|
|
251
|
-
export { AppState as A, BaseField as B, Config as C, Data as D, ExternalFieldWithAdaptor as E, Field as F, ItemSelector as I, MappedItem as M, NumberField as N, ObjectField as O, PuckComponent as P, RootDataWithProps as R, SelectField as S, TextField as T, UiState as U, Viewports as V,
|
244
|
+
export { AppState as A, BaseField as B, Config as C, Data as D, ExternalFieldWithAdaptor as E, Field as F, ItemSelector as I, MappedItem as M, NumberField as N, ObjectField as O, PuckComponent as P, RootDataWithProps as R, SelectField as S, TextField as T, UiState as U, Viewports as V, DefaultRootProps as a, DropZoneProps as b, DefaultComponentProps as c, RootData as d, ComponentData as e, TextareaField as f, RadioField as g, ArrayField as h, Adaptor as i, ExternalField as j, CustomField as k, Fields as l, Content as m, PuckContext as n, ComponentConfig as o, BaseData as p, RootDataWithoutProps as q, ItemWithId as r, ArrayState as s };
|