@measured/puck-plugin-heading-analyzer 0.21.0-canary.16a3eee1 → 0.21.0-canary.2e1b5267
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 +5 -149
- package/dist/index.d.mts +17 -7
- package/dist/index.d.ts +17 -7
- package/dist/index.js +88 -241
- package/dist/index.mjs +85 -238
- package/package.json +2 -2
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
|
-
.
|
2
|
+
._HeadingAnalyzer_yg0s7_1 {
|
3
3
|
display: block;
|
4
|
+
padding: 16px;
|
4
5
|
}
|
5
|
-
._HeadingAnalyzer-
|
6
|
+
._HeadingAnalyzer-cssWarning_yg0s7_6 {
|
6
7
|
display: none !important;
|
7
8
|
}
|
8
|
-
.
|
9
|
+
._HeadingAnalyzerItem_yg0s7_10 {
|
9
10
|
display: inline;
|
10
11
|
}
|
11
|
-
._HeadingAnalyzerItem--
|
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
@@ -302,6 +302,7 @@ type Metadata = {
|
|
302
302
|
type ItemWithId = {
|
303
303
|
_arrayId: string;
|
304
304
|
_originalIndex: number;
|
305
|
+
_currentIndex: number;
|
305
306
|
};
|
306
307
|
type ArrayState = {
|
307
308
|
items: ItemWithId[];
|
@@ -312,6 +313,7 @@ type UiState = {
|
|
312
313
|
rightSideBarVisible: boolean;
|
313
314
|
leftSideBarWidth?: number | null;
|
314
315
|
rightSideBarWidth?: number | null;
|
316
|
+
mobilePanelExpanded?: boolean;
|
315
317
|
itemSelector: ItemSelector | null;
|
316
318
|
arrayState: Record<string, ArrayState | undefined>;
|
317
319
|
previewMode: "interactive" | "edit";
|
@@ -324,7 +326,7 @@ type UiState = {
|
|
324
326
|
isDragging: boolean;
|
325
327
|
viewports: {
|
326
328
|
current: {
|
327
|
-
width: number;
|
329
|
+
width: number | "100%";
|
328
330
|
height: number | "auto";
|
329
331
|
};
|
330
332
|
controlsVisible: boolean;
|
@@ -333,6 +335,9 @@ type UiState = {
|
|
333
335
|
field: {
|
334
336
|
focus?: string | null;
|
335
337
|
};
|
338
|
+
plugin: {
|
339
|
+
current: string | null;
|
340
|
+
};
|
336
341
|
};
|
337
342
|
type AppState<UserData extends Data = Data> = {
|
338
343
|
data: UserData;
|
@@ -382,6 +387,11 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
|
|
382
387
|
type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
|
383
388
|
never
|
384
389
|
] ? False : True;
|
390
|
+
type RenderFunc<Props extends {
|
391
|
+
[key: string]: any;
|
392
|
+
} = {
|
393
|
+
children: ReactNode;
|
394
|
+
}> = (props: Props) => ReactElement;
|
385
395
|
|
386
396
|
type MapFnParams<ThisField = Field> = {
|
387
397
|
value: any;
|
@@ -405,11 +415,6 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
|
|
405
415
|
[Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
|
406
416
|
}>;
|
407
417
|
|
408
|
-
type RenderFunc<Props extends {
|
409
|
-
[key: string]: any;
|
410
|
-
} = {
|
411
|
-
children: ReactNode;
|
412
|
-
}> = (props: Props) => ReactElement;
|
413
418
|
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
414
419
|
type OverrideKey = (typeof overrideKeys)[number];
|
415
420
|
type OverridesGeneric<Shape extends {
|
@@ -480,7 +485,7 @@ type DragAxis = "dynamic" | "y" | "x";
|
|
480
485
|
|
481
486
|
type iconTypes = "Smartphone" | "Monitor" | "Tablet";
|
482
487
|
type Viewport = {
|
483
|
-
width: number;
|
488
|
+
width: number | "100%";
|
484
489
|
height?: number | "auto";
|
485
490
|
label?: string;
|
486
491
|
icon?: iconTypes | ReactNode;
|
@@ -494,8 +499,13 @@ type Permissions = {
|
|
494
499
|
insert: boolean;
|
495
500
|
} & Record<string, boolean>;
|
496
501
|
type Plugin<UserConfig extends Config = Config> = {
|
502
|
+
name?: string;
|
503
|
+
label?: string;
|
504
|
+
icon?: ReactNode;
|
505
|
+
render?: () => ReactElement;
|
497
506
|
overrides?: Partial<Overrides<UserConfig>>;
|
498
507
|
fieldTransforms?: FieldTransforms<UserConfig>;
|
508
|
+
mobilePanelHeight?: "toggle" | "min-content";
|
499
509
|
};
|
500
510
|
type Slot<Props extends {
|
501
511
|
[key: string]: DefaultComponentProps;
|
package/dist/index.d.ts
CHANGED
@@ -302,6 +302,7 @@ type Metadata = {
|
|
302
302
|
type ItemWithId = {
|
303
303
|
_arrayId: string;
|
304
304
|
_originalIndex: number;
|
305
|
+
_currentIndex: number;
|
305
306
|
};
|
306
307
|
type ArrayState = {
|
307
308
|
items: ItemWithId[];
|
@@ -312,6 +313,7 @@ type UiState = {
|
|
312
313
|
rightSideBarVisible: boolean;
|
313
314
|
leftSideBarWidth?: number | null;
|
314
315
|
rightSideBarWidth?: number | null;
|
316
|
+
mobilePanelExpanded?: boolean;
|
315
317
|
itemSelector: ItemSelector | null;
|
316
318
|
arrayState: Record<string, ArrayState | undefined>;
|
317
319
|
previewMode: "interactive" | "edit";
|
@@ -324,7 +326,7 @@ type UiState = {
|
|
324
326
|
isDragging: boolean;
|
325
327
|
viewports: {
|
326
328
|
current: {
|
327
|
-
width: number;
|
329
|
+
width: number | "100%";
|
328
330
|
height: number | "auto";
|
329
331
|
};
|
330
332
|
controlsVisible: boolean;
|
@@ -333,6 +335,9 @@ type UiState = {
|
|
333
335
|
field: {
|
334
336
|
focus?: string | null;
|
335
337
|
};
|
338
|
+
plugin: {
|
339
|
+
current: string | null;
|
340
|
+
};
|
336
341
|
};
|
337
342
|
type AppState<UserData extends Data = Data> = {
|
338
343
|
data: UserData;
|
@@ -382,6 +387,11 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
|
|
382
387
|
type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
|
383
388
|
never
|
384
389
|
] ? False : True;
|
390
|
+
type RenderFunc<Props extends {
|
391
|
+
[key: string]: any;
|
392
|
+
} = {
|
393
|
+
children: ReactNode;
|
394
|
+
}> = (props: Props) => ReactElement;
|
385
395
|
|
386
396
|
type MapFnParams<ThisField = Field> = {
|
387
397
|
value: any;
|
@@ -405,11 +415,6 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
|
|
405
415
|
[Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
|
406
416
|
}>;
|
407
417
|
|
408
|
-
type RenderFunc<Props extends {
|
409
|
-
[key: string]: any;
|
410
|
-
} = {
|
411
|
-
children: ReactNode;
|
412
|
-
}> = (props: Props) => ReactElement;
|
413
418
|
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
414
419
|
type OverrideKey = (typeof overrideKeys)[number];
|
415
420
|
type OverridesGeneric<Shape extends {
|
@@ -480,7 +485,7 @@ type DragAxis = "dynamic" | "y" | "x";
|
|
480
485
|
|
481
486
|
type iconTypes = "Smartphone" | "Monitor" | "Tablet";
|
482
487
|
type Viewport = {
|
483
|
-
width: number;
|
488
|
+
width: number | "100%";
|
484
489
|
height?: number | "auto";
|
485
490
|
label?: string;
|
486
491
|
icon?: iconTypes | ReactNode;
|
@@ -494,8 +499,13 @@ type Permissions = {
|
|
494
499
|
insert: boolean;
|
495
500
|
} & Record<string, boolean>;
|
496
501
|
type Plugin<UserConfig extends Config = Config> = {
|
502
|
+
name?: string;
|
503
|
+
label?: string;
|
504
|
+
icon?: ReactNode;
|
505
|
+
render?: () => ReactElement;
|
497
506
|
overrides?: Partial<Overrides<UserConfig>>;
|
498
507
|
fieldTransforms?: FieldTransforms<UserConfig>;
|
508
|
+
mobilePanelHeight?: "toggle" | "min-content";
|
499
509
|
};
|
500
510
|
type Slot<Props extends {
|
501
511
|
[key: string]: DefaultComponentProps;
|
package/dist/index.js
CHANGED
@@ -277,21 +277,21 @@ init_react_import();
|
|
277
277
|
|
278
278
|
// src/HeadingAnalyzer.tsx
|
279
279
|
init_react_import();
|
280
|
-
var
|
280
|
+
var import_react10 = require("react");
|
281
281
|
|
282
282
|
// css-module:/home/runner/work/puck/puck/packages/plugin-heading-analyzer/src/HeadingAnalyzer.module.css#css-module
|
283
283
|
init_react_import();
|
284
|
-
var HeadingAnalyzer_module_default = { "HeadingAnalyzer": "
|
284
|
+
var HeadingAnalyzer_module_default = { "HeadingAnalyzer": "_HeadingAnalyzer_yg0s7_1", "HeadingAnalyzer-cssWarning": "_HeadingAnalyzer-cssWarning_yg0s7_6", "HeadingAnalyzerItem": "_HeadingAnalyzerItem_yg0s7_10", "HeadingAnalyzerItem--missing": "_HeadingAnalyzerItem--missing_yg0s7_14" };
|
285
285
|
|
286
286
|
// src/HeadingAnalyzer.tsx
|
287
287
|
var import_puck = require("@measured/puck");
|
288
288
|
|
289
|
-
// ../core/components/
|
289
|
+
// ../core/components/OutlineList/index.tsx
|
290
290
|
init_react_import();
|
291
291
|
|
292
|
-
// css-module:/home/runner/work/puck/puck/packages/core/components/
|
292
|
+
// css-module:/home/runner/work/puck/puck/packages/core/components/OutlineList/styles.module.css#css-module
|
293
293
|
init_react_import();
|
294
|
-
var styles_module_default = { "
|
294
|
+
var styles_module_default = { "OutlineList": "_OutlineList_w4lzv_1", "OutlineListItem": "_OutlineListItem_w4lzv_25", "OutlineListItem--clickable": "_OutlineListItem--clickable_w4lzv_45" };
|
295
295
|
|
296
296
|
// ../core/lib/get-class-name-factory.ts
|
297
297
|
init_react_import();
|
@@ -320,29 +320,50 @@ var getClassNameFactory = (rootClass, styles, config = { baseClass: "" }) => (op
|
|
320
320
|
};
|
321
321
|
var get_class_name_factory_default = getClassNameFactory;
|
322
322
|
|
323
|
-
// ../core/components/
|
324
|
-
init_react_import();
|
325
|
-
|
326
|
-
// css-module:/home/runner/work/puck/puck/packages/core/components/Heading/styles.module.css#css-module
|
327
|
-
init_react_import();
|
328
|
-
var styles_module_default2 = { "Heading": "_Heading_qxrry_1", "Heading--xxxxl": "_Heading--xxxxl_qxrry_12", "Heading--xxxl": "_Heading--xxxl_qxrry_18", "Heading--xxl": "_Heading--xxl_qxrry_22", "Heading--xl": "_Heading--xl_qxrry_26", "Heading--l": "_Heading--l_qxrry_30", "Heading--m": "_Heading--m_qxrry_34", "Heading--s": "_Heading--s_qxrry_38", "Heading--xs": "_Heading--xs_qxrry_42" };
|
329
|
-
|
330
|
-
// ../core/components/Heading/index.tsx
|
323
|
+
// ../core/components/OutlineList/index.tsx
|
331
324
|
var import_jsx_runtime = require("react/jsx-runtime");
|
332
|
-
var getClassName = get_class_name_factory_default("
|
333
|
-
var
|
334
|
-
|
325
|
+
var getClassName = get_class_name_factory_default("OutlineList", styles_module_default);
|
326
|
+
var getClassNameItem = get_class_name_factory_default("OutlineListItem", styles_module_default);
|
327
|
+
var OutlineList = ({ children }) => {
|
328
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", { className: getClassName(), children });
|
329
|
+
};
|
330
|
+
OutlineList.Clickable = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: getClassNameItem({ clickable: true }), children });
|
331
|
+
OutlineList.Item = ({
|
332
|
+
children,
|
333
|
+
onClick
|
334
|
+
}) => {
|
335
335
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
336
|
-
|
336
|
+
"li",
|
337
337
|
{
|
338
|
-
className:
|
339
|
-
|
340
|
-
}),
|
338
|
+
className: getClassNameItem({ clickable: !!onClick }),
|
339
|
+
onClick,
|
341
340
|
children
|
342
341
|
}
|
343
342
|
);
|
344
343
|
};
|
345
344
|
|
345
|
+
// ../core/lib/scroll-into-view.ts
|
346
|
+
init_react_import();
|
347
|
+
var scrollIntoView = (el) => {
|
348
|
+
const oldStyle = __spreadValues({}, el.style);
|
349
|
+
el.style.scrollMargin = "256px";
|
350
|
+
if (el) {
|
351
|
+
el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
|
352
|
+
el.style.scrollMargin = oldStyle.scrollMargin || "";
|
353
|
+
}
|
354
|
+
};
|
355
|
+
|
356
|
+
// ../core/lib/get-frame.ts
|
357
|
+
init_react_import();
|
358
|
+
var getFrame = () => {
|
359
|
+
if (typeof window === "undefined") return;
|
360
|
+
let frameEl = document.querySelector("#preview-frame");
|
361
|
+
if ((frameEl == null ? void 0 : frameEl.tagName) === "IFRAME") {
|
362
|
+
return frameEl.contentDocument || document;
|
363
|
+
}
|
364
|
+
return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
|
365
|
+
};
|
366
|
+
|
346
367
|
// ../../node_modules/lucide-react/dist/esm/lucide-react.js
|
347
368
|
init_react_import();
|
348
369
|
|
@@ -430,15 +451,29 @@ var createLucideIcon = (iconName, iconNode) => {
|
|
430
451
|
return Component;
|
431
452
|
};
|
432
453
|
|
433
|
-
// ../../node_modules/lucide-react/dist/esm/icons/
|
454
|
+
// ../../node_modules/lucide-react/dist/esm/icons/heading-1.js
|
434
455
|
init_react_import();
|
435
|
-
var
|
436
|
-
["path", { d: "
|
456
|
+
var Heading1 = createLucideIcon("Heading1", [
|
457
|
+
["path", { d: "M4 12h8", key: "17cfdx" }],
|
458
|
+
["path", { d: "M4 18V6", key: "1rz3zl" }],
|
459
|
+
["path", { d: "M12 18V6", key: "zqpxq5" }],
|
460
|
+
["path", { d: "m17 12 3-2v8", key: "1hhhft" }]
|
437
461
|
]);
|
438
462
|
|
439
|
-
// ../core/lib/
|
463
|
+
// ../core/lib/index.ts
|
464
|
+
init_react_import();
|
465
|
+
|
466
|
+
// ../core/lib/filter.ts
|
467
|
+
init_react_import();
|
468
|
+
|
469
|
+
// ../core/lib/data/reorder.ts
|
470
|
+
init_react_import();
|
471
|
+
|
472
|
+
// ../core/lib/data/replace.ts
|
473
|
+
init_react_import();
|
474
|
+
|
475
|
+
// ../core/lib/use-reset-auto-zoom.ts
|
440
476
|
init_react_import();
|
441
|
-
var import_react10 = require("react");
|
442
477
|
|
443
478
|
// ../core/store/index.ts
|
444
479
|
init_react_import();
|
@@ -1408,7 +1443,8 @@ init_react_import();
|
|
1408
1443
|
var defaultViewports = [
|
1409
1444
|
{ width: 360, height: "auto", icon: "Smartphone", label: "Small" },
|
1410
1445
|
{ width: 768, height: "auto", icon: "Tablet", label: "Medium" },
|
1411
|
-
{ width: 1280, height: "auto", icon: "Monitor", label: "Large" }
|
1446
|
+
{ width: 1280, height: "auto", icon: "Monitor", label: "Large" },
|
1447
|
+
{ width: "100%", height: "auto", icon: "FullWidth", label: "Full-width" }
|
1412
1448
|
];
|
1413
1449
|
|
1414
1450
|
// ../../node_modules/zustand/esm/vanilla.mjs
|
@@ -2304,7 +2340,8 @@ var defaultAppState = {
|
|
2304
2340
|
options: [],
|
2305
2341
|
controlsVisible: true
|
2306
2342
|
},
|
2307
|
-
field: { focus: null }
|
2343
|
+
field: { focus: null },
|
2344
|
+
plugin: { current: null }
|
2308
2345
|
},
|
2309
2346
|
indexes: {
|
2310
2347
|
nodes: {},
|
@@ -2320,6 +2357,7 @@ var createAppStore = (initialAppStore) => create()(
|
|
2320
2357
|
subscribeWithSelector((set, get) => {
|
2321
2358
|
var _a, _b;
|
2322
2359
|
return __spreadProps(__spreadValues({
|
2360
|
+
instanceId: generateId(),
|
2323
2361
|
state: defaultAppState,
|
2324
2362
|
config: { components: {} },
|
2325
2363
|
componentState: {},
|
@@ -2490,203 +2528,14 @@ var createAppStore = (initialAppStore) => create()(
|
|
2490
2528
|
})
|
2491
2529
|
);
|
2492
2530
|
var appStoreContext = (0, import_react9.createContext)(createAppStore());
|
2493
|
-
function useAppStore(selector) {
|
2494
|
-
const context = (0, import_react9.useContext)(appStoreContext);
|
2495
|
-
return useStore(context, selector);
|
2496
|
-
}
|
2497
|
-
function useAppStoreApi() {
|
2498
|
-
return (0, import_react9.useContext)(appStoreContext);
|
2499
|
-
}
|
2500
|
-
|
2501
|
-
// ../core/lib/use-breadcrumbs.ts
|
2502
|
-
var useBreadcrumbs = (renderCount) => {
|
2503
|
-
const selectedId = useAppStore((s) => {
|
2504
|
-
var _a;
|
2505
|
-
return (_a = s.selectedItem) == null ? void 0 : _a.props.id;
|
2506
|
-
});
|
2507
|
-
const config = useAppStore((s) => s.config);
|
2508
|
-
const path = useAppStore((s) => {
|
2509
|
-
var _a;
|
2510
|
-
return (_a = s.state.indexes.nodes[selectedId]) == null ? void 0 : _a.path;
|
2511
|
-
});
|
2512
|
-
const appStore = useAppStoreApi();
|
2513
|
-
return (0, import_react10.useMemo)(() => {
|
2514
|
-
const breadcrumbs = (path == null ? void 0 : path.map((zoneCompound) => {
|
2515
|
-
var _a, _b, _c;
|
2516
|
-
const [componentId] = zoneCompound.split(":");
|
2517
|
-
if (componentId === "root") {
|
2518
|
-
return {
|
2519
|
-
label: "Page",
|
2520
|
-
selector: null
|
2521
|
-
};
|
2522
|
-
}
|
2523
|
-
const node = appStore.getState().state.indexes.nodes[componentId];
|
2524
|
-
const parentId = node.path[node.path.length - 1];
|
2525
|
-
const contentIds = ((_a = appStore.getState().state.indexes.zones[parentId]) == null ? void 0 : _a.contentIds) || [];
|
2526
|
-
const index = contentIds.indexOf(componentId);
|
2527
|
-
const label = node ? (_c = (_b = config.components[node.data.type]) == null ? void 0 : _b.label) != null ? _c : node.data.type : "Component";
|
2528
|
-
return {
|
2529
|
-
label,
|
2530
|
-
selector: node ? {
|
2531
|
-
index,
|
2532
|
-
zone: node.path[node.path.length - 1]
|
2533
|
-
} : null
|
2534
|
-
};
|
2535
|
-
})) || [];
|
2536
|
-
if (renderCount) {
|
2537
|
-
return breadcrumbs.slice(breadcrumbs.length - renderCount);
|
2538
|
-
}
|
2539
|
-
return breadcrumbs;
|
2540
|
-
}, [path, renderCount]);
|
2541
|
-
};
|
2542
|
-
|
2543
|
-
// ../core/components/Loader/index.tsx
|
2544
|
-
init_react_import();
|
2545
|
-
|
2546
|
-
// ../core/lib/index.ts
|
2547
|
-
init_react_import();
|
2548
|
-
|
2549
|
-
// ../core/lib/filter.ts
|
2550
|
-
init_react_import();
|
2551
|
-
|
2552
|
-
// ../core/lib/data/reorder.ts
|
2553
|
-
init_react_import();
|
2554
|
-
|
2555
|
-
// ../core/lib/data/replace.ts
|
2556
|
-
init_react_import();
|
2557
|
-
|
2558
|
-
// ../core/lib/use-reset-auto-zoom.ts
|
2559
|
-
init_react_import();
|
2560
2531
|
|
2561
2532
|
// ../core/lib/get-zoom-config.ts
|
2562
2533
|
init_react_import();
|
2563
2534
|
|
2564
|
-
// css-module:/home/runner/work/puck/puck/packages/core/components/Loader/styles.module.css#css-module
|
2565
|
-
init_react_import();
|
2566
|
-
var styles_module_default3 = { "Loader": "_Loader_nacdm_13", "loader-animation": "_loader-animation_nacdm_1" };
|
2567
|
-
|
2568
|
-
// ../core/components/Loader/index.tsx
|
2569
|
-
var import_jsx_runtime2 = require("react/jsx-runtime");
|
2570
|
-
var getClassName2 = get_class_name_factory_default("Loader", styles_module_default3);
|
2571
|
-
var Loader = (_a) => {
|
2572
|
-
var _b = _a, {
|
2573
|
-
color,
|
2574
|
-
size = 16
|
2575
|
-
} = _b, props = __objRest(_b, [
|
2576
|
-
"color",
|
2577
|
-
"size"
|
2578
|
-
]);
|
2579
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
2580
|
-
"span",
|
2581
|
-
__spreadValues({
|
2582
|
-
className: getClassName2(),
|
2583
|
-
style: {
|
2584
|
-
width: size,
|
2585
|
-
height: size,
|
2586
|
-
color
|
2587
|
-
},
|
2588
|
-
"aria-label": "loading"
|
2589
|
-
}, props)
|
2590
|
-
);
|
2591
|
-
};
|
2592
|
-
|
2593
|
-
// ../core/components/SidebarSection/index.tsx
|
2594
|
-
var import_jsx_runtime3 = require("react/jsx-runtime");
|
2595
|
-
var getClassName3 = get_class_name_factory_default("SidebarSection", styles_module_default);
|
2596
|
-
var SidebarSection = ({
|
2597
|
-
children,
|
2598
|
-
title,
|
2599
|
-
background,
|
2600
|
-
showBreadcrumbs,
|
2601
|
-
noBorderTop,
|
2602
|
-
noPadding,
|
2603
|
-
isLoading
|
2604
|
-
}) => {
|
2605
|
-
const setUi = useAppStore((s) => s.setUi);
|
2606
|
-
const breadcrumbs = useBreadcrumbs(1);
|
2607
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
2608
|
-
"div",
|
2609
|
-
{
|
2610
|
-
className: getClassName3({ noBorderTop, noPadding }),
|
2611
|
-
style: { background },
|
2612
|
-
children: [
|
2613
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName3("title"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: getClassName3("breadcrumbs"), children: [
|
2614
|
-
showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: getClassName3("breadcrumb"), children: [
|
2615
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
2616
|
-
"button",
|
2617
|
-
{
|
2618
|
-
type: "button",
|
2619
|
-
className: getClassName3("breadcrumbLabel"),
|
2620
|
-
onClick: () => setUi({ itemSelector: breadcrumb.selector }),
|
2621
|
-
children: breadcrumb.label
|
2622
|
-
}
|
2623
|
-
),
|
2624
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ChevronRight, { size: 16 })
|
2625
|
-
] }, i)) : null,
|
2626
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName3("heading"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Heading, { rank: "2", size: "xs", children: title }) })
|
2627
|
-
] }) }),
|
2628
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName3("content"), children }),
|
2629
|
-
isLoading && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName3("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Loader, { size: 32 }) })
|
2630
|
-
]
|
2631
|
-
}
|
2632
|
-
);
|
2633
|
-
};
|
2634
|
-
|
2635
|
-
// ../core/components/OutlineList/index.tsx
|
2636
|
-
init_react_import();
|
2637
|
-
|
2638
|
-
// css-module:/home/runner/work/puck/puck/packages/core/components/OutlineList/styles.module.css#css-module
|
2639
|
-
init_react_import();
|
2640
|
-
var styles_module_default4 = { "OutlineList": "_OutlineList_w4lzv_1", "OutlineListItem": "_OutlineListItem_w4lzv_25", "OutlineListItem--clickable": "_OutlineListItem--clickable_w4lzv_45" };
|
2641
|
-
|
2642
|
-
// ../core/components/OutlineList/index.tsx
|
2643
|
-
var import_jsx_runtime4 = require("react/jsx-runtime");
|
2644
|
-
var getClassName4 = get_class_name_factory_default("OutlineList", styles_module_default4);
|
2645
|
-
var getClassNameItem = get_class_name_factory_default("OutlineListItem", styles_module_default4);
|
2646
|
-
var OutlineList = ({ children }) => {
|
2647
|
-
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("ul", { className: getClassName4(), children });
|
2648
|
-
};
|
2649
|
-
OutlineList.Clickable = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: getClassNameItem({ clickable: true }), children });
|
2650
|
-
OutlineList.Item = ({
|
2651
|
-
children,
|
2652
|
-
onClick
|
2653
|
-
}) => {
|
2654
|
-
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
2655
|
-
"li",
|
2656
|
-
{
|
2657
|
-
className: getClassNameItem({ clickable: !!onClick }),
|
2658
|
-
onClick,
|
2659
|
-
children
|
2660
|
-
}
|
2661
|
-
);
|
2662
|
-
};
|
2663
|
-
|
2664
|
-
// ../core/lib/scroll-into-view.ts
|
2665
|
-
init_react_import();
|
2666
|
-
var scrollIntoView = (el) => {
|
2667
|
-
const oldStyle = __spreadValues({}, el.style);
|
2668
|
-
el.style.scrollMargin = "256px";
|
2669
|
-
if (el) {
|
2670
|
-
el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
|
2671
|
-
el.style.scrollMargin = oldStyle.scrollMargin || "";
|
2672
|
-
}
|
2673
|
-
};
|
2674
|
-
|
2675
|
-
// ../core/lib/get-frame.ts
|
2676
|
-
init_react_import();
|
2677
|
-
var getFrame = () => {
|
2678
|
-
if (typeof window === "undefined") return;
|
2679
|
-
let frameEl = document.querySelector("#preview-frame");
|
2680
|
-
if ((frameEl == null ? void 0 : frameEl.tagName) === "IFRAME") {
|
2681
|
-
return frameEl.contentDocument || document;
|
2682
|
-
}
|
2683
|
-
return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
|
2684
|
-
};
|
2685
|
-
|
2686
2535
|
// src/HeadingAnalyzer.tsx
|
2687
2536
|
var import_react_from_json = __toESM(require("react-from-json"));
|
2688
|
-
var
|
2689
|
-
var
|
2537
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
2538
|
+
var getClassName2 = get_class_name_factory_default("HeadingAnalyzer", HeadingAnalyzer_module_default);
|
2690
2539
|
var getClassNameItem2 = get_class_name_factory_default("HeadingAnalyzerItem", HeadingAnalyzer_module_default);
|
2691
2540
|
var ReactFromJSON = import_react_from_json.default.default || import_react_from_json.default;
|
2692
2541
|
var getOutline = ({ frame } = {}) => {
|
@@ -2741,8 +2590,8 @@ function buildHierarchy(frame) {
|
|
2741
2590
|
var usePuck = (0, import_puck.createUsePuck)();
|
2742
2591
|
var HeadingAnalyzer = () => {
|
2743
2592
|
const data = usePuck((s) => s.appState.data);
|
2744
|
-
const [hierarchy, setHierarchy] = (0,
|
2745
|
-
(0,
|
2593
|
+
const [hierarchy, setHierarchy] = (0, import_react10.useState)([]);
|
2594
|
+
(0, import_react10.useEffect)(() => {
|
2746
2595
|
const frame = getFrame();
|
2747
2596
|
let entry = frame == null ? void 0 : frame.querySelector(`[data-puck-entry]`);
|
2748
2597
|
const createHierarchy = () => {
|
@@ -2777,11 +2626,11 @@ var HeadingAnalyzer = () => {
|
|
2777
2626
|
frameObserver.disconnect();
|
2778
2627
|
};
|
2779
2628
|
}, [data]);
|
2780
|
-
return /* @__PURE__ */ (0,
|
2781
|
-
/* @__PURE__ */ (0,
|
2629
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: getClassName2(), children: [
|
2630
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
2782
2631
|
"small",
|
2783
2632
|
{
|
2784
|
-
className:
|
2633
|
+
className: getClassName2("cssWarning"),
|
2785
2634
|
style: {
|
2786
2635
|
color: "var(--puck-color-red-04)",
|
2787
2636
|
display: "block",
|
@@ -2790,19 +2639,19 @@ var HeadingAnalyzer = () => {
|
|
2790
2639
|
children: [
|
2791
2640
|
"Heading analyzer styles not loaded. Please review the",
|
2792
2641
|
" ",
|
2793
|
-
/* @__PURE__ */ (0,
|
2642
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("a", { href: "https://github.com/measuredco/puck/blob/main/packages/plugin-heading-analyzer/README.md", children: "README" }),
|
2794
2643
|
"."
|
2795
2644
|
]
|
2796
2645
|
}
|
2797
2646
|
),
|
2798
|
-
hierarchy.length === 0 && /* @__PURE__ */ (0,
|
2799
|
-
/* @__PURE__ */ (0,
|
2647
|
+
hierarchy.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { children: "No headings." }),
|
2648
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(OutlineList, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
2800
2649
|
ReactFromJSON,
|
2801
2650
|
{
|
2802
2651
|
mapping: {
|
2803
|
-
Root: (props) => /* @__PURE__ */ (0,
|
2804
|
-
OutlineListItem: (props) => /* @__PURE__ */ (0,
|
2805
|
-
/* @__PURE__ */ (0,
|
2652
|
+
Root: (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: props.children }),
|
2653
|
+
OutlineListItem: (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(OutlineList.Item, { children: [
|
2654
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(OutlineList.Clickable, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
2806
2655
|
"small",
|
2807
2656
|
{
|
2808
2657
|
className: getClassNameItem2({ missing: props.missing }),
|
@@ -2820,14 +2669,14 @@ var HeadingAnalyzer = () => {
|
|
2820
2669
|
}, 2e3);
|
2821
2670
|
}
|
2822
2671
|
},
|
2823
|
-
children: props.missing ? /* @__PURE__ */ (0,
|
2824
|
-
/* @__PURE__ */ (0,
|
2672
|
+
children: props.missing ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
|
2673
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("b", { children: [
|
2825
2674
|
"H",
|
2826
2675
|
props.rank
|
2827
2676
|
] }),
|
2828
2677
|
": Missing"
|
2829
|
-
] }) : /* @__PURE__ */ (0,
|
2830
|
-
/* @__PURE__ */ (0,
|
2678
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
|
2679
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("b", { children: [
|
2831
2680
|
"H",
|
2832
2681
|
props.rank
|
2833
2682
|
] }),
|
@@ -2836,7 +2685,7 @@ var HeadingAnalyzer = () => {
|
|
2836
2685
|
] })
|
2837
2686
|
}
|
2838
2687
|
) }),
|
2839
|
-
/* @__PURE__ */ (0,
|
2688
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(OutlineList, { children: props.children })
|
2840
2689
|
] })
|
2841
2690
|
},
|
2842
2691
|
entry: {
|
@@ -2857,12 +2706,10 @@ var HeadingAnalyzer = () => {
|
|
2857
2706
|
] });
|
2858
2707
|
};
|
2859
2708
|
var headingAnalyzer = {
|
2860
|
-
|
2861
|
-
|
2862
|
-
|
2863
|
-
|
2864
|
-
] })
|
2865
|
-
}
|
2709
|
+
name: "heading-analyzer",
|
2710
|
+
label: "Audit",
|
2711
|
+
render: HeadingAnalyzer,
|
2712
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Heading1, {})
|
2866
2713
|
};
|
2867
2714
|
var HeadingAnalyzer_default = headingAnalyzer;
|
2868
2715
|
/*! Bundled license information:
|
@@ -2906,7 +2753,7 @@ lucide-react/dist/esm/createLucideIcon.js:
|
|
2906
2753
|
* See the LICENSE file in the root directory of this source tree.
|
2907
2754
|
*)
|
2908
2755
|
|
2909
|
-
lucide-react/dist/esm/icons/
|
2756
|
+
lucide-react/dist/esm/icons/heading-1.js:
|
2910
2757
|
(**
|
2911
2758
|
* @license lucide-react v0.468.0 - ISC
|
2912
2759
|
*
|
package/dist/index.mjs
CHANGED
@@ -269,17 +269,17 @@ import { useEffect as useEffect5, useState } from "react";
|
|
269
269
|
|
270
270
|
// css-module:/home/runner/work/puck/puck/packages/plugin-heading-analyzer/src/HeadingAnalyzer.module.css#css-module
|
271
271
|
init_react_import();
|
272
|
-
var HeadingAnalyzer_module_default = { "HeadingAnalyzer": "
|
272
|
+
var HeadingAnalyzer_module_default = { "HeadingAnalyzer": "_HeadingAnalyzer_yg0s7_1", "HeadingAnalyzer-cssWarning": "_HeadingAnalyzer-cssWarning_yg0s7_6", "HeadingAnalyzerItem": "_HeadingAnalyzerItem_yg0s7_10", "HeadingAnalyzerItem--missing": "_HeadingAnalyzerItem--missing_yg0s7_14" };
|
273
273
|
|
274
274
|
// src/HeadingAnalyzer.tsx
|
275
275
|
import { createUsePuck } from "@measured/puck";
|
276
276
|
|
277
|
-
// ../core/components/
|
277
|
+
// ../core/components/OutlineList/index.tsx
|
278
278
|
init_react_import();
|
279
279
|
|
280
|
-
// css-module:/home/runner/work/puck/puck/packages/core/components/
|
280
|
+
// css-module:/home/runner/work/puck/puck/packages/core/components/OutlineList/styles.module.css#css-module
|
281
281
|
init_react_import();
|
282
|
-
var styles_module_default = { "
|
282
|
+
var styles_module_default = { "OutlineList": "_OutlineList_w4lzv_1", "OutlineListItem": "_OutlineListItem_w4lzv_25", "OutlineListItem--clickable": "_OutlineListItem--clickable_w4lzv_45" };
|
283
283
|
|
284
284
|
// ../core/lib/get-class-name-factory.ts
|
285
285
|
init_react_import();
|
@@ -308,29 +308,50 @@ var getClassNameFactory = (rootClass, styles, config = { baseClass: "" }) => (op
|
|
308
308
|
};
|
309
309
|
var get_class_name_factory_default = getClassNameFactory;
|
310
310
|
|
311
|
-
// ../core/components/
|
312
|
-
init_react_import();
|
313
|
-
|
314
|
-
// css-module:/home/runner/work/puck/puck/packages/core/components/Heading/styles.module.css#css-module
|
315
|
-
init_react_import();
|
316
|
-
var styles_module_default2 = { "Heading": "_Heading_qxrry_1", "Heading--xxxxl": "_Heading--xxxxl_qxrry_12", "Heading--xxxl": "_Heading--xxxl_qxrry_18", "Heading--xxl": "_Heading--xxl_qxrry_22", "Heading--xl": "_Heading--xl_qxrry_26", "Heading--l": "_Heading--l_qxrry_30", "Heading--m": "_Heading--m_qxrry_34", "Heading--s": "_Heading--s_qxrry_38", "Heading--xs": "_Heading--xs_qxrry_42" };
|
317
|
-
|
318
|
-
// ../core/components/Heading/index.tsx
|
311
|
+
// ../core/components/OutlineList/index.tsx
|
319
312
|
import { jsx } from "react/jsx-runtime";
|
320
|
-
var getClassName = get_class_name_factory_default("
|
321
|
-
var
|
322
|
-
|
313
|
+
var getClassName = get_class_name_factory_default("OutlineList", styles_module_default);
|
314
|
+
var getClassNameItem = get_class_name_factory_default("OutlineListItem", styles_module_default);
|
315
|
+
var OutlineList = ({ children }) => {
|
316
|
+
return /* @__PURE__ */ jsx("ul", { className: getClassName(), children });
|
317
|
+
};
|
318
|
+
OutlineList.Clickable = ({ children }) => /* @__PURE__ */ jsx("div", { className: getClassNameItem({ clickable: true }), children });
|
319
|
+
OutlineList.Item = ({
|
320
|
+
children,
|
321
|
+
onClick
|
322
|
+
}) => {
|
323
323
|
return /* @__PURE__ */ jsx(
|
324
|
-
|
324
|
+
"li",
|
325
325
|
{
|
326
|
-
className:
|
327
|
-
|
328
|
-
}),
|
326
|
+
className: getClassNameItem({ clickable: !!onClick }),
|
327
|
+
onClick,
|
329
328
|
children
|
330
329
|
}
|
331
330
|
);
|
332
331
|
};
|
333
332
|
|
333
|
+
// ../core/lib/scroll-into-view.ts
|
334
|
+
init_react_import();
|
335
|
+
var scrollIntoView = (el) => {
|
336
|
+
const oldStyle = __spreadValues({}, el.style);
|
337
|
+
el.style.scrollMargin = "256px";
|
338
|
+
if (el) {
|
339
|
+
el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
|
340
|
+
el.style.scrollMargin = oldStyle.scrollMargin || "";
|
341
|
+
}
|
342
|
+
};
|
343
|
+
|
344
|
+
// ../core/lib/get-frame.ts
|
345
|
+
init_react_import();
|
346
|
+
var getFrame = () => {
|
347
|
+
if (typeof window === "undefined") return;
|
348
|
+
let frameEl = document.querySelector("#preview-frame");
|
349
|
+
if ((frameEl == null ? void 0 : frameEl.tagName) === "IFRAME") {
|
350
|
+
return frameEl.contentDocument || document;
|
351
|
+
}
|
352
|
+
return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
|
353
|
+
};
|
354
|
+
|
334
355
|
// ../../node_modules/lucide-react/dist/esm/lucide-react.js
|
335
356
|
init_react_import();
|
336
357
|
|
@@ -418,15 +439,29 @@ var createLucideIcon = (iconName, iconNode) => {
|
|
418
439
|
return Component;
|
419
440
|
};
|
420
441
|
|
421
|
-
// ../../node_modules/lucide-react/dist/esm/icons/
|
442
|
+
// ../../node_modules/lucide-react/dist/esm/icons/heading-1.js
|
422
443
|
init_react_import();
|
423
|
-
var
|
424
|
-
["path", { d: "
|
444
|
+
var Heading1 = createLucideIcon("Heading1", [
|
445
|
+
["path", { d: "M4 12h8", key: "17cfdx" }],
|
446
|
+
["path", { d: "M4 18V6", key: "1rz3zl" }],
|
447
|
+
["path", { d: "M12 18V6", key: "zqpxq5" }],
|
448
|
+
["path", { d: "m17 12 3-2v8", key: "1hhhft" }]
|
425
449
|
]);
|
426
450
|
|
427
|
-
// ../core/lib/
|
451
|
+
// ../core/lib/index.ts
|
452
|
+
init_react_import();
|
453
|
+
|
454
|
+
// ../core/lib/filter.ts
|
455
|
+
init_react_import();
|
456
|
+
|
457
|
+
// ../core/lib/data/reorder.ts
|
458
|
+
init_react_import();
|
459
|
+
|
460
|
+
// ../core/lib/data/replace.ts
|
461
|
+
init_react_import();
|
462
|
+
|
463
|
+
// ../core/lib/use-reset-auto-zoom.ts
|
428
464
|
init_react_import();
|
429
|
-
import { useMemo } from "react";
|
430
465
|
|
431
466
|
// ../core/store/index.ts
|
432
467
|
init_react_import();
|
@@ -1396,7 +1431,8 @@ init_react_import();
|
|
1396
1431
|
var defaultViewports = [
|
1397
1432
|
{ width: 360, height: "auto", icon: "Smartphone", label: "Small" },
|
1398
1433
|
{ width: 768, height: "auto", icon: "Tablet", label: "Medium" },
|
1399
|
-
{ width: 1280, height: "auto", icon: "Monitor", label: "Large" }
|
1434
|
+
{ width: 1280, height: "auto", icon: "Monitor", label: "Large" },
|
1435
|
+
{ width: "100%", height: "auto", icon: "FullWidth", label: "Full-width" }
|
1400
1436
|
];
|
1401
1437
|
|
1402
1438
|
// ../../node_modules/zustand/esm/vanilla.mjs
|
@@ -2292,7 +2328,8 @@ var defaultAppState = {
|
|
2292
2328
|
options: [],
|
2293
2329
|
controlsVisible: true
|
2294
2330
|
},
|
2295
|
-
field: { focus: null }
|
2331
|
+
field: { focus: null },
|
2332
|
+
plugin: { current: null }
|
2296
2333
|
},
|
2297
2334
|
indexes: {
|
2298
2335
|
nodes: {},
|
@@ -2308,6 +2345,7 @@ var createAppStore = (initialAppStore) => create()(
|
|
2308
2345
|
subscribeWithSelector((set, get) => {
|
2309
2346
|
var _a, _b;
|
2310
2347
|
return __spreadProps(__spreadValues({
|
2348
|
+
instanceId: generateId(),
|
2311
2349
|
state: defaultAppState,
|
2312
2350
|
config: { components: {} },
|
2313
2351
|
componentState: {},
|
@@ -2478,203 +2516,14 @@ var createAppStore = (initialAppStore) => create()(
|
|
2478
2516
|
})
|
2479
2517
|
);
|
2480
2518
|
var appStoreContext = createContext(createAppStore());
|
2481
|
-
function useAppStore(selector) {
|
2482
|
-
const context = useContext(appStoreContext);
|
2483
|
-
return useStore(context, selector);
|
2484
|
-
}
|
2485
|
-
function useAppStoreApi() {
|
2486
|
-
return useContext(appStoreContext);
|
2487
|
-
}
|
2488
|
-
|
2489
|
-
// ../core/lib/use-breadcrumbs.ts
|
2490
|
-
var useBreadcrumbs = (renderCount) => {
|
2491
|
-
const selectedId = useAppStore((s) => {
|
2492
|
-
var _a;
|
2493
|
-
return (_a = s.selectedItem) == null ? void 0 : _a.props.id;
|
2494
|
-
});
|
2495
|
-
const config = useAppStore((s) => s.config);
|
2496
|
-
const path = useAppStore((s) => {
|
2497
|
-
var _a;
|
2498
|
-
return (_a = s.state.indexes.nodes[selectedId]) == null ? void 0 : _a.path;
|
2499
|
-
});
|
2500
|
-
const appStore = useAppStoreApi();
|
2501
|
-
return useMemo(() => {
|
2502
|
-
const breadcrumbs = (path == null ? void 0 : path.map((zoneCompound) => {
|
2503
|
-
var _a, _b, _c;
|
2504
|
-
const [componentId] = zoneCompound.split(":");
|
2505
|
-
if (componentId === "root") {
|
2506
|
-
return {
|
2507
|
-
label: "Page",
|
2508
|
-
selector: null
|
2509
|
-
};
|
2510
|
-
}
|
2511
|
-
const node = appStore.getState().state.indexes.nodes[componentId];
|
2512
|
-
const parentId = node.path[node.path.length - 1];
|
2513
|
-
const contentIds = ((_a = appStore.getState().state.indexes.zones[parentId]) == null ? void 0 : _a.contentIds) || [];
|
2514
|
-
const index = contentIds.indexOf(componentId);
|
2515
|
-
const label = node ? (_c = (_b = config.components[node.data.type]) == null ? void 0 : _b.label) != null ? _c : node.data.type : "Component";
|
2516
|
-
return {
|
2517
|
-
label,
|
2518
|
-
selector: node ? {
|
2519
|
-
index,
|
2520
|
-
zone: node.path[node.path.length - 1]
|
2521
|
-
} : null
|
2522
|
-
};
|
2523
|
-
})) || [];
|
2524
|
-
if (renderCount) {
|
2525
|
-
return breadcrumbs.slice(breadcrumbs.length - renderCount);
|
2526
|
-
}
|
2527
|
-
return breadcrumbs;
|
2528
|
-
}, [path, renderCount]);
|
2529
|
-
};
|
2530
|
-
|
2531
|
-
// ../core/components/Loader/index.tsx
|
2532
|
-
init_react_import();
|
2533
|
-
|
2534
|
-
// ../core/lib/index.ts
|
2535
|
-
init_react_import();
|
2536
|
-
|
2537
|
-
// ../core/lib/filter.ts
|
2538
|
-
init_react_import();
|
2539
|
-
|
2540
|
-
// ../core/lib/data/reorder.ts
|
2541
|
-
init_react_import();
|
2542
|
-
|
2543
|
-
// ../core/lib/data/replace.ts
|
2544
|
-
init_react_import();
|
2545
|
-
|
2546
|
-
// ../core/lib/use-reset-auto-zoom.ts
|
2547
|
-
init_react_import();
|
2548
2519
|
|
2549
2520
|
// ../core/lib/get-zoom-config.ts
|
2550
2521
|
init_react_import();
|
2551
2522
|
|
2552
|
-
// css-module:/home/runner/work/puck/puck/packages/core/components/Loader/styles.module.css#css-module
|
2553
|
-
init_react_import();
|
2554
|
-
var styles_module_default3 = { "Loader": "_Loader_nacdm_13", "loader-animation": "_loader-animation_nacdm_1" };
|
2555
|
-
|
2556
|
-
// ../core/components/Loader/index.tsx
|
2557
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
2558
|
-
var getClassName2 = get_class_name_factory_default("Loader", styles_module_default3);
|
2559
|
-
var Loader = (_a) => {
|
2560
|
-
var _b = _a, {
|
2561
|
-
color,
|
2562
|
-
size = 16
|
2563
|
-
} = _b, props = __objRest(_b, [
|
2564
|
-
"color",
|
2565
|
-
"size"
|
2566
|
-
]);
|
2567
|
-
return /* @__PURE__ */ jsx2(
|
2568
|
-
"span",
|
2569
|
-
__spreadValues({
|
2570
|
-
className: getClassName2(),
|
2571
|
-
style: {
|
2572
|
-
width: size,
|
2573
|
-
height: size,
|
2574
|
-
color
|
2575
|
-
},
|
2576
|
-
"aria-label": "loading"
|
2577
|
-
}, props)
|
2578
|
-
);
|
2579
|
-
};
|
2580
|
-
|
2581
|
-
// ../core/components/SidebarSection/index.tsx
|
2582
|
-
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
2583
|
-
var getClassName3 = get_class_name_factory_default("SidebarSection", styles_module_default);
|
2584
|
-
var SidebarSection = ({
|
2585
|
-
children,
|
2586
|
-
title,
|
2587
|
-
background,
|
2588
|
-
showBreadcrumbs,
|
2589
|
-
noBorderTop,
|
2590
|
-
noPadding,
|
2591
|
-
isLoading
|
2592
|
-
}) => {
|
2593
|
-
const setUi = useAppStore((s) => s.setUi);
|
2594
|
-
const breadcrumbs = useBreadcrumbs(1);
|
2595
|
-
return /* @__PURE__ */ jsxs(
|
2596
|
-
"div",
|
2597
|
-
{
|
2598
|
-
className: getClassName3({ noBorderTop, noPadding }),
|
2599
|
-
style: { background },
|
2600
|
-
children: [
|
2601
|
-
/* @__PURE__ */ jsx3("div", { className: getClassName3("title"), children: /* @__PURE__ */ jsxs("div", { className: getClassName3("breadcrumbs"), children: [
|
2602
|
-
showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ jsxs("div", { className: getClassName3("breadcrumb"), children: [
|
2603
|
-
/* @__PURE__ */ jsx3(
|
2604
|
-
"button",
|
2605
|
-
{
|
2606
|
-
type: "button",
|
2607
|
-
className: getClassName3("breadcrumbLabel"),
|
2608
|
-
onClick: () => setUi({ itemSelector: breadcrumb.selector }),
|
2609
|
-
children: breadcrumb.label
|
2610
|
-
}
|
2611
|
-
),
|
2612
|
-
/* @__PURE__ */ jsx3(ChevronRight, { size: 16 })
|
2613
|
-
] }, i)) : null,
|
2614
|
-
/* @__PURE__ */ jsx3("div", { className: getClassName3("heading"), children: /* @__PURE__ */ jsx3(Heading, { rank: "2", size: "xs", children: title }) })
|
2615
|
-
] }) }),
|
2616
|
-
/* @__PURE__ */ jsx3("div", { className: getClassName3("content"), children }),
|
2617
|
-
isLoading && /* @__PURE__ */ jsx3("div", { className: getClassName3("loadingOverlay"), children: /* @__PURE__ */ jsx3(Loader, { size: 32 }) })
|
2618
|
-
]
|
2619
|
-
}
|
2620
|
-
);
|
2621
|
-
};
|
2622
|
-
|
2623
|
-
// ../core/components/OutlineList/index.tsx
|
2624
|
-
init_react_import();
|
2625
|
-
|
2626
|
-
// css-module:/home/runner/work/puck/puck/packages/core/components/OutlineList/styles.module.css#css-module
|
2627
|
-
init_react_import();
|
2628
|
-
var styles_module_default4 = { "OutlineList": "_OutlineList_w4lzv_1", "OutlineListItem": "_OutlineListItem_w4lzv_25", "OutlineListItem--clickable": "_OutlineListItem--clickable_w4lzv_45" };
|
2629
|
-
|
2630
|
-
// ../core/components/OutlineList/index.tsx
|
2631
|
-
import { jsx as jsx4 } from "react/jsx-runtime";
|
2632
|
-
var getClassName4 = get_class_name_factory_default("OutlineList", styles_module_default4);
|
2633
|
-
var getClassNameItem = get_class_name_factory_default("OutlineListItem", styles_module_default4);
|
2634
|
-
var OutlineList = ({ children }) => {
|
2635
|
-
return /* @__PURE__ */ jsx4("ul", { className: getClassName4(), children });
|
2636
|
-
};
|
2637
|
-
OutlineList.Clickable = ({ children }) => /* @__PURE__ */ jsx4("div", { className: getClassNameItem({ clickable: true }), children });
|
2638
|
-
OutlineList.Item = ({
|
2639
|
-
children,
|
2640
|
-
onClick
|
2641
|
-
}) => {
|
2642
|
-
return /* @__PURE__ */ jsx4(
|
2643
|
-
"li",
|
2644
|
-
{
|
2645
|
-
className: getClassNameItem({ clickable: !!onClick }),
|
2646
|
-
onClick,
|
2647
|
-
children
|
2648
|
-
}
|
2649
|
-
);
|
2650
|
-
};
|
2651
|
-
|
2652
|
-
// ../core/lib/scroll-into-view.ts
|
2653
|
-
init_react_import();
|
2654
|
-
var scrollIntoView = (el) => {
|
2655
|
-
const oldStyle = __spreadValues({}, el.style);
|
2656
|
-
el.style.scrollMargin = "256px";
|
2657
|
-
if (el) {
|
2658
|
-
el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
|
2659
|
-
el.style.scrollMargin = oldStyle.scrollMargin || "";
|
2660
|
-
}
|
2661
|
-
};
|
2662
|
-
|
2663
|
-
// ../core/lib/get-frame.ts
|
2664
|
-
init_react_import();
|
2665
|
-
var getFrame = () => {
|
2666
|
-
if (typeof window === "undefined") return;
|
2667
|
-
let frameEl = document.querySelector("#preview-frame");
|
2668
|
-
if ((frameEl == null ? void 0 : frameEl.tagName) === "IFRAME") {
|
2669
|
-
return frameEl.contentDocument || document;
|
2670
|
-
}
|
2671
|
-
return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
|
2672
|
-
};
|
2673
|
-
|
2674
2523
|
// src/HeadingAnalyzer.tsx
|
2675
2524
|
import ReactFromJSONModule from "react-from-json";
|
2676
|
-
import { Fragment, jsx as
|
2677
|
-
var
|
2525
|
+
import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
|
2526
|
+
var getClassName2 = get_class_name_factory_default("HeadingAnalyzer", HeadingAnalyzer_module_default);
|
2678
2527
|
var getClassNameItem2 = get_class_name_factory_default("HeadingAnalyzerItem", HeadingAnalyzer_module_default);
|
2679
2528
|
var ReactFromJSON = ReactFromJSONModule.default || ReactFromJSONModule;
|
2680
2529
|
var getOutline = ({ frame } = {}) => {
|
@@ -2765,11 +2614,11 @@ var HeadingAnalyzer = () => {
|
|
2765
2614
|
frameObserver.disconnect();
|
2766
2615
|
};
|
2767
2616
|
}, [data]);
|
2768
|
-
return /* @__PURE__ */
|
2769
|
-
/* @__PURE__ */
|
2617
|
+
return /* @__PURE__ */ jsxs("div", { className: getClassName2(), children: [
|
2618
|
+
/* @__PURE__ */ jsxs(
|
2770
2619
|
"small",
|
2771
2620
|
{
|
2772
|
-
className:
|
2621
|
+
className: getClassName2("cssWarning"),
|
2773
2622
|
style: {
|
2774
2623
|
color: "var(--puck-color-red-04)",
|
2775
2624
|
display: "block",
|
@@ -2778,19 +2627,19 @@ var HeadingAnalyzer = () => {
|
|
2778
2627
|
children: [
|
2779
2628
|
"Heading analyzer styles not loaded. Please review the",
|
2780
2629
|
" ",
|
2781
|
-
/* @__PURE__ */
|
2630
|
+
/* @__PURE__ */ jsx2("a", { href: "https://github.com/measuredco/puck/blob/main/packages/plugin-heading-analyzer/README.md", children: "README" }),
|
2782
2631
|
"."
|
2783
2632
|
]
|
2784
2633
|
}
|
2785
2634
|
),
|
2786
|
-
hierarchy.length === 0 && /* @__PURE__ */
|
2787
|
-
/* @__PURE__ */
|
2635
|
+
hierarchy.length === 0 && /* @__PURE__ */ jsx2("div", { children: "No headings." }),
|
2636
|
+
/* @__PURE__ */ jsx2(OutlineList, { children: /* @__PURE__ */ jsx2(
|
2788
2637
|
ReactFromJSON,
|
2789
2638
|
{
|
2790
2639
|
mapping: {
|
2791
|
-
Root: (props) => /* @__PURE__ */
|
2792
|
-
OutlineListItem: (props) => /* @__PURE__ */
|
2793
|
-
/* @__PURE__ */
|
2640
|
+
Root: (props) => /* @__PURE__ */ jsx2(Fragment, { children: props.children }),
|
2641
|
+
OutlineListItem: (props) => /* @__PURE__ */ jsxs(OutlineList.Item, { children: [
|
2642
|
+
/* @__PURE__ */ jsx2(OutlineList.Clickable, { children: /* @__PURE__ */ jsx2(
|
2794
2643
|
"small",
|
2795
2644
|
{
|
2796
2645
|
className: getClassNameItem2({ missing: props.missing }),
|
@@ -2808,14 +2657,14 @@ var HeadingAnalyzer = () => {
|
|
2808
2657
|
}, 2e3);
|
2809
2658
|
}
|
2810
2659
|
},
|
2811
|
-
children: props.missing ? /* @__PURE__ */
|
2812
|
-
/* @__PURE__ */
|
2660
|
+
children: props.missing ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
2661
|
+
/* @__PURE__ */ jsxs("b", { children: [
|
2813
2662
|
"H",
|
2814
2663
|
props.rank
|
2815
2664
|
] }),
|
2816
2665
|
": Missing"
|
2817
|
-
] }) : /* @__PURE__ */
|
2818
|
-
/* @__PURE__ */
|
2666
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
2667
|
+
/* @__PURE__ */ jsxs("b", { children: [
|
2819
2668
|
"H",
|
2820
2669
|
props.rank
|
2821
2670
|
] }),
|
@@ -2824,7 +2673,7 @@ var HeadingAnalyzer = () => {
|
|
2824
2673
|
] })
|
2825
2674
|
}
|
2826
2675
|
) }),
|
2827
|
-
/* @__PURE__ */
|
2676
|
+
/* @__PURE__ */ jsx2(OutlineList, { children: props.children })
|
2828
2677
|
] })
|
2829
2678
|
},
|
2830
2679
|
entry: {
|
@@ -2845,12 +2694,10 @@ var HeadingAnalyzer = () => {
|
|
2845
2694
|
] });
|
2846
2695
|
};
|
2847
2696
|
var headingAnalyzer = {
|
2848
|
-
|
2849
|
-
|
2850
|
-
|
2851
|
-
|
2852
|
-
] })
|
2853
|
-
}
|
2697
|
+
name: "heading-analyzer",
|
2698
|
+
label: "Audit",
|
2699
|
+
render: HeadingAnalyzer,
|
2700
|
+
icon: /* @__PURE__ */ jsx2(Heading1, {})
|
2854
2701
|
};
|
2855
2702
|
var HeadingAnalyzer_default = headingAnalyzer;
|
2856
2703
|
export {
|
@@ -2897,7 +2744,7 @@ lucide-react/dist/esm/createLucideIcon.js:
|
|
2897
2744
|
* See the LICENSE file in the root directory of this source tree.
|
2898
2745
|
*)
|
2899
2746
|
|
2900
|
-
lucide-react/dist/esm/icons/
|
2747
|
+
lucide-react/dist/esm/icons/heading-1.js:
|
2901
2748
|
(**
|
2902
2749
|
* @license lucide-react v0.468.0 - ISC
|
2903
2750
|
*
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@measured/puck-plugin-heading-analyzer",
|
3
|
-
"version": "0.21.0-canary.
|
3
|
+
"version": "0.21.0-canary.2e1b5267",
|
4
4
|
"author": "Chris Villa <chris@puckeditor.com>",
|
5
5
|
"repository": "measuredco/puck",
|
6
6
|
"bugs": "https://github.com/measuredco/puck/issues",
|
@@ -25,7 +25,7 @@
|
|
25
25
|
"dist"
|
26
26
|
],
|
27
27
|
"devDependencies": {
|
28
|
-
"@measured/puck": "^0.21.0-canary.
|
28
|
+
"@measured/puck": "^0.21.0-canary.2e1b5267",
|
29
29
|
"@types/react": "^19.0.1",
|
30
30
|
"@types/react-dom": "^19.0.2",
|
31
31
|
"eslint": "^7.32.0",
|