@measured/puck-plugin-heading-analyzer 0.20.0-canary.93d525c5 → 0.20.0-canary.aee5fc96

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/index.css CHANGED
@@ -1,162 +1,18 @@
1
1
  /* css-module:/home/runner/work/puck/puck/packages/plugin-heading-analyzer/src/HeadingAnalyzer.module.css/#css-module-data */
2
- ._HeadingAnalyzer_116v6_1 {
2
+ ._HeadingAnalyzer_yg0s7_1 {
3
3
  display: block;
4
+ padding: 16px;
4
5
  }
5
- ._HeadingAnalyzer-cssWarning_116v6_5 {
6
+ ._HeadingAnalyzer-cssWarning_yg0s7_6 {
6
7
  display: none !important;
7
8
  }
8
- ._HeadingAnalyzerItem_116v6_9 {
9
+ ._HeadingAnalyzerItem_yg0s7_10 {
9
10
  display: inline;
10
11
  }
11
- ._HeadingAnalyzerItem--missing_116v6_13 {
12
+ ._HeadingAnalyzerItem--missing_yg0s7_14 {
12
13
  color: var(--puck-color-red-04);
13
14
  }
14
15
 
15
- /* css-module:/home/runner/work/puck/puck/packages/core/components/SidebarSection/styles.module.css/#css-module-data */
16
- ._SidebarSection_8boj8_1 {
17
- display: flex;
18
- position: relative;
19
- flex-direction: column;
20
- color: var(--puck-color-black);
21
- }
22
- ._SidebarSection_8boj8_1:last-of-type {
23
- flex-grow: 1;
24
- }
25
- ._SidebarSection-title_8boj8_12 {
26
- background: var(--puck-color-white);
27
- padding: 16px;
28
- border-bottom: 1px solid var(--puck-color-grey-09);
29
- border-top: 1px solid var(--puck-color-grey-09);
30
- overflow-x: auto;
31
- }
32
- ._SidebarSection--noBorderTop_8boj8_20 > ._SidebarSection-title_8boj8_12 {
33
- border-top: 0px;
34
- }
35
- ._SidebarSection-content_8boj8_24 {
36
- padding: 16px;
37
- }
38
- ._SidebarSection--noPadding_8boj8_28 > ._SidebarSection-content_8boj8_24 {
39
- padding: 0px;
40
- }
41
- ._SidebarSection--noPadding_8boj8_28 > ._SidebarSection-content_8boj8_24:last-child {
42
- padding-bottom: 4px;
43
- }
44
- ._SidebarSection_8boj8_1:last-of-type ._SidebarSection-content_8boj8_24 {
45
- border-bottom: none;
46
- flex-grow: 1;
47
- }
48
- ._SidebarSection-breadcrumbLabel_8boj8_41 {
49
- background: none;
50
- border: 0;
51
- border-radius: 2px;
52
- color: var(--puck-color-azure-04);
53
- cursor: pointer;
54
- font: inherit;
55
- flex-shrink: 0;
56
- padding: 0;
57
- transition: color 50ms ease-in;
58
- }
59
- ._SidebarSection-breadcrumbLabel_8boj8_41:focus-visible {
60
- outline: 2px solid var(--puck-color-azure-05);
61
- outline-offset: 2px;
62
- }
63
- @media (hover: hover) and (pointer: fine) {
64
- ._SidebarSection-breadcrumbLabel_8boj8_41:hover {
65
- color: var(--puck-color-azure-03);
66
- transition: none;
67
- }
68
- }
69
- ._SidebarSection-breadcrumbLabel_8boj8_41:active {
70
- color: var(--puck-color-azure-02);
71
- transition: none;
72
- }
73
- ._SidebarSection-breadcrumbs_8boj8_70 {
74
- align-items: center;
75
- display: flex;
76
- gap: 4px;
77
- }
78
- ._SidebarSection-breadcrumb_8boj8_41 {
79
- align-items: center;
80
- display: flex;
81
- gap: 4px;
82
- }
83
- ._SidebarSection-heading_8boj8_82 {
84
- padding-inline-end: 16px;
85
- }
86
- ._SidebarSection-loadingOverlay_8boj8_86 {
87
- background: var(--puck-color-white);
88
- display: flex;
89
- justify-content: center;
90
- align-items: center;
91
- height: 100%;
92
- width: 100%;
93
- top: 0;
94
- position: absolute;
95
- z-index: 1;
96
- pointer-events: all;
97
- box-sizing: border-box;
98
- opacity: 0.8;
99
- }
100
-
101
- /* css-module:/home/runner/work/puck/puck/packages/core/components/Heading/styles.module.css/#css-module-data */
102
- ._Heading_qxrry_1 {
103
- display: block;
104
- color: var(--puck-color-black);
105
- font-weight: 700;
106
- margin: 0;
107
- }
108
- ._Heading_qxrry_1 b {
109
- font-weight: 700;
110
- }
111
- ._Heading--xxxxl_qxrry_12 {
112
- font-size: var(--puck-font-size-xxxxl);
113
- letter-spacing: 0.08ch;
114
- font-weight: 800;
115
- }
116
- ._Heading--xxxl_qxrry_18 {
117
- font-size: var(--puck-font-size-xxxl);
118
- }
119
- ._Heading--xxl_qxrry_22 {
120
- font-size: var(--puck-font-size-xxl);
121
- }
122
- ._Heading--xl_qxrry_26 {
123
- font-size: var(--puck-font-size-xl);
124
- }
125
- ._Heading--l_qxrry_30 {
126
- font-size: var(--puck-font-size-l);
127
- }
128
- ._Heading--m_qxrry_34 {
129
- font-size: var(--puck-font-size-m);
130
- }
131
- ._Heading--s_qxrry_38 {
132
- font-size: var(--puck-font-size-s);
133
- }
134
- ._Heading--xs_qxrry_42 {
135
- font-size: var(--puck-font-size-xs);
136
- }
137
-
138
- /* css-module:/home/runner/work/puck/puck/packages/core/components/Loader/styles.module.css/#css-module-data */
139
- @keyframes _loader-animation_nacdm_1 {
140
- 0% {
141
- transform: rotate(0deg) scale(1);
142
- }
143
- 50% {
144
- transform: rotate(180deg) scale(0.8);
145
- }
146
- 100% {
147
- transform: rotate(360deg) scale(1);
148
- }
149
- }
150
- ._Loader_nacdm_13 {
151
- background: transparent;
152
- border-radius: 100%;
153
- border: 2px solid currentColor;
154
- border-bottom-color: transparent;
155
- display: inline-block;
156
- animation: _loader-animation_nacdm_1 1s 0s infinite linear;
157
- animation-fill-mode: both;
158
- }
159
-
160
16
  /* css-module:/home/runner/work/puck/puck/packages/core/components/OutlineList/styles.module.css/#css-module-data */
161
17
  ._OutlineList_w4lzv_1 {
162
18
  color: var(--puck-color-grey-03);
package/dist/index.d.mts CHANGED
@@ -7,7 +7,7 @@ type ItemSelector = {
7
7
 
8
8
  type FieldOption = {
9
9
  label: string;
10
- value: string | number | boolean;
10
+ value: string | number | boolean | undefined | null | object;
11
11
  };
12
12
  type FieldOptions = Array<FieldOption> | ReadonlyArray<FieldOption>;
13
13
  type BaseField = {
@@ -19,6 +19,7 @@ type BaseField = {
19
19
  type TextField = BaseField & {
20
20
  type: "text";
21
21
  placeholder?: string;
22
+ contentEditable?: boolean;
22
23
  };
23
24
  type NumberField = BaseField & {
24
25
  type: "number";
@@ -30,6 +31,7 @@ type NumberField = BaseField & {
30
31
  type TextareaField = BaseField & {
31
32
  type: "textarea";
32
33
  placeholder?: string;
34
+ contentEditable?: boolean;
33
35
  };
34
36
  type SelectField = BaseField & {
35
37
  type: "select";
@@ -107,6 +109,7 @@ type CustomFieldRender<Value extends any> = (props: {
107
109
  type CustomField<Value extends any> = BaseField & {
108
110
  type: "custom";
109
111
  render: CustomFieldRender<Value>;
112
+ contentEditable?: boolean;
110
113
  };
111
114
  type SlotField = BaseField & {
112
115
  type: "slot";
@@ -122,6 +125,10 @@ type FieldProps<F = Field<any>, ValueType = any> = {
122
125
  readOnly?: boolean;
123
126
  };
124
127
 
128
+ type ExtractField<T extends Field["type"]> = Extract<Field, {
129
+ type: T;
130
+ }>;
131
+
125
132
  type Metadata = {
126
133
  [key: string]: any;
127
134
  };
@@ -129,6 +136,7 @@ type Metadata = {
129
136
  type ItemWithId = {
130
137
  _arrayId: string;
131
138
  _originalIndex: number;
139
+ _currentIndex: number;
132
140
  };
133
141
  type ArrayState = {
134
142
  items: ItemWithId[];
@@ -137,6 +145,8 @@ type ArrayState = {
137
145
  type UiState = {
138
146
  leftSideBarVisible: boolean;
139
147
  rightSideBarVisible: boolean;
148
+ leftSideBarWidth?: number | null;
149
+ rightSideBarWidth?: number | null;
140
150
  itemSelector: ItemSelector | null;
141
151
  arrayState: Record<string, ArrayState | undefined>;
142
152
  previewMode: "interactive" | "edit";
@@ -158,6 +168,9 @@ type UiState = {
158
168
  field: {
159
169
  focus?: string | null;
160
170
  };
171
+ plugin: {
172
+ current: string | null;
173
+ };
161
174
  };
162
175
 
163
176
  type RenderFunc<Props extends {
@@ -165,7 +178,25 @@ type RenderFunc<Props extends {
165
178
  } = {
166
179
  children: ReactNode;
167
180
  }> = (props: Props) => ReactElement;
168
- declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "components", "componentItem", "outline", "puck", "preview"];
181
+
182
+ type MapFnParams<ThisField = Field> = {
183
+ value: any;
184
+ parentId: string;
185
+ propName: string;
186
+ field: ThisField;
187
+ propPath: string;
188
+ };
189
+
190
+ type FieldTransformFnParams<T> = Omit<MapFnParams<T>, "parentId"> & {
191
+ isReadOnly: boolean;
192
+ componentId: string;
193
+ };
194
+ type FieldTransformFn<T = any> = (params: FieldTransformFnParams<T>) => any;
195
+ type FieldTransforms = Partial<{
196
+ [FieldType in Field["type"]]: FieldTransformFn<ExtractField<FieldType>>;
197
+ }>;
198
+
199
+ declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
169
200
  type OverrideKey = (typeof overrideKeys)[number];
170
201
  type OverridesGeneric<Shape extends {
171
202
  [key in OverrideKey]: any;
@@ -203,11 +234,23 @@ type Overrides = OverridesGeneric<{
203
234
  children: ReactNode;
204
235
  name: string;
205
236
  }>;
237
+ drawer: RenderFunc;
238
+ drawerItem: RenderFunc<{
239
+ children: ReactNode;
240
+ name: string;
241
+ }>;
206
242
  iframe: RenderFunc<{
207
243
  children: ReactNode;
208
244
  document?: Document;
209
245
  }>;
210
246
  outline: RenderFunc;
247
+ componentOverlay: RenderFunc<{
248
+ children: ReactNode;
249
+ hover: boolean;
250
+ isSelected: boolean;
251
+ componentId: string;
252
+ componentType: string;
253
+ }>;
211
254
  puck: RenderFunc;
212
255
  }>;
213
256
  type FieldRenderFunctions = Omit<{
@@ -233,7 +276,12 @@ type Viewport = {
233
276
  };
234
277
 
235
278
  type Plugin = {
236
- overrides: Partial<Overrides>;
279
+ name?: string;
280
+ label?: string;
281
+ icon?: ReactNode;
282
+ render?: () => ReactElement;
283
+ overrides?: Partial<Overrides>;
284
+ fieldTransforms?: FieldTransforms;
237
285
  };
238
286
 
239
287
  declare const headingAnalyzer: Plugin;
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ type ItemSelector = {
7
7
 
8
8
  type FieldOption = {
9
9
  label: string;
10
- value: string | number | boolean;
10
+ value: string | number | boolean | undefined | null | object;
11
11
  };
12
12
  type FieldOptions = Array<FieldOption> | ReadonlyArray<FieldOption>;
13
13
  type BaseField = {
@@ -19,6 +19,7 @@ type BaseField = {
19
19
  type TextField = BaseField & {
20
20
  type: "text";
21
21
  placeholder?: string;
22
+ contentEditable?: boolean;
22
23
  };
23
24
  type NumberField = BaseField & {
24
25
  type: "number";
@@ -30,6 +31,7 @@ type NumberField = BaseField & {
30
31
  type TextareaField = BaseField & {
31
32
  type: "textarea";
32
33
  placeholder?: string;
34
+ contentEditable?: boolean;
33
35
  };
34
36
  type SelectField = BaseField & {
35
37
  type: "select";
@@ -107,6 +109,7 @@ type CustomFieldRender<Value extends any> = (props: {
107
109
  type CustomField<Value extends any> = BaseField & {
108
110
  type: "custom";
109
111
  render: CustomFieldRender<Value>;
112
+ contentEditable?: boolean;
110
113
  };
111
114
  type SlotField = BaseField & {
112
115
  type: "slot";
@@ -122,6 +125,10 @@ type FieldProps<F = Field<any>, ValueType = any> = {
122
125
  readOnly?: boolean;
123
126
  };
124
127
 
128
+ type ExtractField<T extends Field["type"]> = Extract<Field, {
129
+ type: T;
130
+ }>;
131
+
125
132
  type Metadata = {
126
133
  [key: string]: any;
127
134
  };
@@ -129,6 +136,7 @@ type Metadata = {
129
136
  type ItemWithId = {
130
137
  _arrayId: string;
131
138
  _originalIndex: number;
139
+ _currentIndex: number;
132
140
  };
133
141
  type ArrayState = {
134
142
  items: ItemWithId[];
@@ -137,6 +145,8 @@ type ArrayState = {
137
145
  type UiState = {
138
146
  leftSideBarVisible: boolean;
139
147
  rightSideBarVisible: boolean;
148
+ leftSideBarWidth?: number | null;
149
+ rightSideBarWidth?: number | null;
140
150
  itemSelector: ItemSelector | null;
141
151
  arrayState: Record<string, ArrayState | undefined>;
142
152
  previewMode: "interactive" | "edit";
@@ -158,6 +168,9 @@ type UiState = {
158
168
  field: {
159
169
  focus?: string | null;
160
170
  };
171
+ plugin: {
172
+ current: string | null;
173
+ };
161
174
  };
162
175
 
163
176
  type RenderFunc<Props extends {
@@ -165,7 +178,25 @@ type RenderFunc<Props extends {
165
178
  } = {
166
179
  children: ReactNode;
167
180
  }> = (props: Props) => ReactElement;
168
- declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "components", "componentItem", "outline", "puck", "preview"];
181
+
182
+ type MapFnParams<ThisField = Field> = {
183
+ value: any;
184
+ parentId: string;
185
+ propName: string;
186
+ field: ThisField;
187
+ propPath: string;
188
+ };
189
+
190
+ type FieldTransformFnParams<T> = Omit<MapFnParams<T>, "parentId"> & {
191
+ isReadOnly: boolean;
192
+ componentId: string;
193
+ };
194
+ type FieldTransformFn<T = any> = (params: FieldTransformFnParams<T>) => any;
195
+ type FieldTransforms = Partial<{
196
+ [FieldType in Field["type"]]: FieldTransformFn<ExtractField<FieldType>>;
197
+ }>;
198
+
199
+ declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
169
200
  type OverrideKey = (typeof overrideKeys)[number];
170
201
  type OverridesGeneric<Shape extends {
171
202
  [key in OverrideKey]: any;
@@ -203,11 +234,23 @@ type Overrides = OverridesGeneric<{
203
234
  children: ReactNode;
204
235
  name: string;
205
236
  }>;
237
+ drawer: RenderFunc;
238
+ drawerItem: RenderFunc<{
239
+ children: ReactNode;
240
+ name: string;
241
+ }>;
206
242
  iframe: RenderFunc<{
207
243
  children: ReactNode;
208
244
  document?: Document;
209
245
  }>;
210
246
  outline: RenderFunc;
247
+ componentOverlay: RenderFunc<{
248
+ children: ReactNode;
249
+ hover: boolean;
250
+ isSelected: boolean;
251
+ componentId: string;
252
+ componentType: string;
253
+ }>;
211
254
  puck: RenderFunc;
212
255
  }>;
213
256
  type FieldRenderFunctions = Omit<{
@@ -233,7 +276,12 @@ type Viewport = {
233
276
  };
234
277
 
235
278
  type Plugin = {
236
- overrides: Partial<Overrides>;
279
+ name?: string;
280
+ label?: string;
281
+ icon?: ReactNode;
282
+ render?: () => ReactElement;
283
+ overrides?: Partial<Overrides>;
284
+ fieldTransforms?: FieldTransforms;
237
285
  };
238
286
 
239
287
  declare const headingAnalyzer: Plugin;