@measured/puck-plugin-heading-analyzer 0.11.3 → 0.12.0-canary.0b6a527
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.d.ts +144 -1
- package/dist/index.js +39 -27
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
@@ -1,4 +1,147 @@
|
|
1
|
-
import {
|
1
|
+
import { ReactNode, ReactElement } from 'react';
|
2
|
+
|
3
|
+
type ItemSelector = {
|
4
|
+
index: number;
|
5
|
+
zone?: string;
|
6
|
+
};
|
7
|
+
|
8
|
+
type InsertAction = {
|
9
|
+
type: "insert";
|
10
|
+
componentType: string;
|
11
|
+
destinationIndex: number;
|
12
|
+
destinationZone: string;
|
13
|
+
};
|
14
|
+
type DuplicateAction = {
|
15
|
+
type: "duplicate";
|
16
|
+
sourceIndex: number;
|
17
|
+
sourceZone: string;
|
18
|
+
};
|
19
|
+
type ReplaceAction = {
|
20
|
+
type: "replace";
|
21
|
+
destinationIndex: number;
|
22
|
+
destinationZone: string;
|
23
|
+
data: any;
|
24
|
+
};
|
25
|
+
type ReorderAction = {
|
26
|
+
type: "reorder";
|
27
|
+
sourceIndex: number;
|
28
|
+
destinationIndex: number;
|
29
|
+
destinationZone: string;
|
30
|
+
};
|
31
|
+
type MoveAction = {
|
32
|
+
type: "move";
|
33
|
+
sourceIndex: number;
|
34
|
+
sourceZone: string;
|
35
|
+
destinationIndex: number;
|
36
|
+
destinationZone: string;
|
37
|
+
};
|
38
|
+
type RemoveAction = {
|
39
|
+
type: "remove";
|
40
|
+
index: number;
|
41
|
+
zone: string;
|
42
|
+
};
|
43
|
+
type SetUiAction = {
|
44
|
+
type: "setUi";
|
45
|
+
ui: Partial<UiState> | ((previous: UiState) => Partial<UiState>);
|
46
|
+
};
|
47
|
+
type SetDataAction = {
|
48
|
+
type: "setData";
|
49
|
+
data: Partial<Data> | ((previous: Data) => Partial<Data>);
|
50
|
+
};
|
51
|
+
type SetAction = {
|
52
|
+
type: "set";
|
53
|
+
state: Partial<AppState>;
|
54
|
+
};
|
55
|
+
type RegisterZoneAction = {
|
56
|
+
type: "registerZone";
|
57
|
+
zone: string;
|
58
|
+
};
|
59
|
+
type UnregisterZoneAction = {
|
60
|
+
type: "unregisterZone";
|
61
|
+
zone: string;
|
62
|
+
};
|
63
|
+
type PuckAction = {
|
64
|
+
recordHistory?: boolean;
|
65
|
+
} & (ReorderAction | InsertAction | MoveAction | ReplaceAction | RemoveAction | DuplicateAction | SetAction | SetDataAction | SetUiAction | RegisterZoneAction | UnregisterZoneAction);
|
66
|
+
|
67
|
+
type WithPuckProps<Props> = Props & {
|
68
|
+
id: string;
|
69
|
+
};
|
70
|
+
type DefaultRootProps = {
|
71
|
+
title?: string;
|
72
|
+
[key: string]: any;
|
73
|
+
};
|
74
|
+
type DefaultComponentProps = {
|
75
|
+
[key: string]: any;
|
76
|
+
editMode?: boolean;
|
77
|
+
};
|
78
|
+
type Content<Props extends {
|
79
|
+
[key: string]: any;
|
80
|
+
} = {
|
81
|
+
[key: string]: any;
|
82
|
+
}> = ComponentData<Props>[];
|
83
|
+
type BaseData<Props extends {
|
84
|
+
[key: string]: any;
|
85
|
+
} = {
|
86
|
+
[key: string]: any;
|
87
|
+
}> = {
|
88
|
+
readOnly?: Partial<Record<keyof Props, boolean>>;
|
89
|
+
};
|
90
|
+
type ComponentData<Props extends DefaultComponentProps = DefaultComponentProps> = {
|
91
|
+
type: keyof Props;
|
92
|
+
props: WithPuckProps<Props>;
|
93
|
+
} & BaseData<Props>;
|
94
|
+
type RootDataWithProps<Props extends DefaultRootProps = DefaultRootProps> = {
|
95
|
+
props: Props;
|
96
|
+
};
|
97
|
+
type RootDataWithoutProps<Props extends DefaultRootProps = DefaultRootProps> = Props;
|
98
|
+
type RootData<Props extends DefaultRootProps = DefaultRootProps> = BaseData<Props> & Partial<RootDataWithProps<Props>> & Partial<RootDataWithoutProps<Props>>;
|
99
|
+
type Data<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultRootProps = DefaultRootProps> = {
|
100
|
+
root: RootData<RootProps>;
|
101
|
+
content: Content<WithPuckProps<Props>>;
|
102
|
+
zones?: Record<string, Content<WithPuckProps<Props>>>;
|
103
|
+
};
|
104
|
+
type ItemWithId = {
|
105
|
+
_arrayId: string;
|
106
|
+
data: any;
|
107
|
+
};
|
108
|
+
type ArrayState = {
|
109
|
+
items: ItemWithId[];
|
110
|
+
openId: string;
|
111
|
+
};
|
112
|
+
type UiState = {
|
113
|
+
leftSideBarVisible: boolean;
|
114
|
+
itemSelector: ItemSelector | null;
|
115
|
+
arrayState: Record<string, ArrayState | undefined>;
|
116
|
+
componentList: Record<string, {
|
117
|
+
components?: string[];
|
118
|
+
title?: string;
|
119
|
+
visible?: boolean;
|
120
|
+
expanded?: boolean;
|
121
|
+
}>;
|
122
|
+
};
|
123
|
+
type AppState = {
|
124
|
+
data: Data;
|
125
|
+
ui: UiState;
|
126
|
+
};
|
127
|
+
|
128
|
+
type Plugin = {
|
129
|
+
renderRootFields?: (props: {
|
130
|
+
children: ReactNode;
|
131
|
+
dispatch: (action: PuckAction) => void;
|
132
|
+
state: AppState;
|
133
|
+
}) => ReactElement<any>;
|
134
|
+
renderRoot?: (props: {
|
135
|
+
children: ReactNode;
|
136
|
+
dispatch: (action: PuckAction) => void;
|
137
|
+
state: AppState;
|
138
|
+
}) => ReactElement<any>;
|
139
|
+
renderFields?: (props: {
|
140
|
+
children: ReactNode;
|
141
|
+
dispatch: (action: PuckAction) => void;
|
142
|
+
state: AppState;
|
143
|
+
}) => ReactElement<any>;
|
144
|
+
};
|
2
145
|
|
3
146
|
declare const HeadingAnalyzer: Plugin;
|
4
147
|
|
package/dist/index.js
CHANGED
@@ -1476,6 +1476,7 @@ function ClipLoader(_a) {
|
|
1476
1476
|
var ClipLoader_default = ClipLoader;
|
1477
1477
|
|
1478
1478
|
// ../core/components/SidebarSection/index.tsx
|
1479
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
1479
1480
|
var getClassName2 = get_class_name_factory_default("SidebarSection", styles_module_default);
|
1480
1481
|
var SidebarSection = ({
|
1481
1482
|
children,
|
@@ -1487,14 +1488,24 @@ var SidebarSection = ({
|
|
1487
1488
|
}) => {
|
1488
1489
|
const { setUi } = useAppContext();
|
1489
1490
|
const breadcrumbs = useBreadcrumbs(1);
|
1490
|
-
return /* @__PURE__ */
|
1491
|
-
"div",
|
1492
|
-
|
1493
|
-
|
1494
|
-
|
1495
|
-
|
1496
|
-
|
1497
|
-
|
1491
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: getClassName2({ noPadding }), style: { background }, children: [
|
1492
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName2("title"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: getClassName2("breadcrumbs"), children: [
|
1493
|
+
showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: getClassName2("breadcrumb"), children: [
|
1494
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
1495
|
+
"div",
|
1496
|
+
{
|
1497
|
+
className: getClassName2("breadcrumbLabel"),
|
1498
|
+
onClick: () => setUi({ itemSelector: breadcrumb.selector }),
|
1499
|
+
children: breadcrumb.label
|
1500
|
+
}
|
1501
|
+
),
|
1502
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(chevron_right_default, { size: 16 })
|
1503
|
+
] }, i)) : null,
|
1504
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName2("heading"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Heading, { rank: 2, size: "xs", children: title }) })
|
1505
|
+
] }) }),
|
1506
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName2("content"), children }),
|
1507
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName2("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ClipLoader_default, {}) })
|
1508
|
+
] });
|
1498
1509
|
};
|
1499
1510
|
|
1500
1511
|
// ../core/components/OutlineList/index.tsx
|
@@ -1505,23 +1516,24 @@ init_react_import();
|
|
1505
1516
|
var styles_module_default3 = { "OutlineList": "_OutlineList_pnv2s_1", "OutlineListItem": "_OutlineListItem_pnv2s_21", "OutlineListItem--clickable": "_OutlineListItem--clickable_pnv2s_36" };
|
1506
1517
|
|
1507
1518
|
// ../core/components/OutlineList/index.tsx
|
1519
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
1508
1520
|
var getClassName3 = get_class_name_factory_default("OutlineList", styles_module_default3);
|
1509
1521
|
var getClassNameItem = get_class_name_factory_default("OutlineListItem", styles_module_default3);
|
1510
1522
|
var OutlineList = ({ children }) => {
|
1511
|
-
return /* @__PURE__ */
|
1523
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("ul", { className: getClassName3(), children });
|
1512
1524
|
};
|
1513
|
-
OutlineList.Clickable = ({ children }) => /* @__PURE__ */
|
1525
|
+
OutlineList.Clickable = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: getClassNameItem({ clickable: true }), children });
|
1514
1526
|
OutlineList.Item = ({
|
1515
1527
|
children,
|
1516
1528
|
onClick
|
1517
1529
|
}) => {
|
1518
|
-
return /* @__PURE__ */
|
1530
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
1519
1531
|
"li",
|
1520
1532
|
{
|
1521
1533
|
className: getClassNameItem({ clickable: !!onClick }),
|
1522
|
-
onClick
|
1523
|
-
|
1524
|
-
|
1534
|
+
onClick,
|
1535
|
+
children
|
1536
|
+
}
|
1525
1537
|
);
|
1526
1538
|
};
|
1527
1539
|
|
@@ -1538,7 +1550,7 @@ var scrollIntoView = (el) => {
|
|
1538
1550
|
|
1539
1551
|
// src/HeadingAnalyzer.tsx
|
1540
1552
|
var import_react_from_json = __toESM(require("react-from-json"));
|
1541
|
-
var
|
1553
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
1542
1554
|
var dataAttr = "data-puck-heading-analyzer-id";
|
1543
1555
|
var getOutline = ({
|
1544
1556
|
addDataAttr = false
|
@@ -1608,17 +1620,17 @@ var HeadingOutlineAnalyer = ({
|
|
1608
1620
|
setHierarchy(buildHierarchy());
|
1609
1621
|
}
|
1610
1622
|
}, [data.content]);
|
1611
|
-
return /* @__PURE__ */ (0,
|
1623
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
|
1612
1624
|
children,
|
1613
|
-
/* @__PURE__ */ (0,
|
1614
|
-
hierarchy.length === 0 && /* @__PURE__ */ (0,
|
1615
|
-
/* @__PURE__ */ (0,
|
1625
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(SidebarSection, { title: "Heading Outline", children: [
|
1626
|
+
hierarchy.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { children: "No headings." }),
|
1627
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(OutlineList, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
1616
1628
|
import_react_from_json.default,
|
1617
1629
|
{
|
1618
1630
|
mapping: {
|
1619
|
-
Root: (props) => /* @__PURE__ */ (0,
|
1620
|
-
OutlineListItem: (props) => /* @__PURE__ */ (0,
|
1621
|
-
/* @__PURE__ */ (0,
|
1631
|
+
Root: (props) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_jsx_runtime5.Fragment, { children: props.children }),
|
1632
|
+
OutlineListItem: (props) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(OutlineList.Item, { children: [
|
1633
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(OutlineList.Clickable, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
1622
1634
|
"small",
|
1623
1635
|
{
|
1624
1636
|
onClick: typeof props.analyzeId == "undefined" ? void 0 : (e) => {
|
@@ -1637,14 +1649,14 @@ var HeadingOutlineAnalyer = ({
|
|
1637
1649
|
}, 2e3);
|
1638
1650
|
}
|
1639
1651
|
},
|
1640
|
-
children: props.missing ? /* @__PURE__ */ (0,
|
1641
|
-
/* @__PURE__ */ (0,
|
1652
|
+
children: props.missing ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { style: { color: "var(--puck-color-red)" }, children: [
|
1653
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("b", { children: [
|
1642
1654
|
"H",
|
1643
1655
|
props.rank
|
1644
1656
|
] }),
|
1645
1657
|
": Missing"
|
1646
|
-
] }) : /* @__PURE__ */ (0,
|
1647
|
-
/* @__PURE__ */ (0,
|
1658
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { children: [
|
1659
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("b", { children: [
|
1648
1660
|
"H",
|
1649
1661
|
props.rank
|
1650
1662
|
] }),
|
@@ -1653,7 +1665,7 @@ var HeadingOutlineAnalyer = ({
|
|
1653
1665
|
] })
|
1654
1666
|
}
|
1655
1667
|
) }),
|
1656
|
-
/* @__PURE__ */ (0,
|
1668
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(OutlineList, { children: props.children })
|
1657
1669
|
] })
|
1658
1670
|
},
|
1659
1671
|
entry: {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@measured/puck-plugin-heading-analyzer",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.12.0-canary.0b6a527",
|
4
4
|
"private": false,
|
5
5
|
"main": "./dist/index.js",
|
6
6
|
"types": "./dist/index.d.ts",
|
@@ -14,7 +14,7 @@
|
|
14
14
|
"dist"
|
15
15
|
],
|
16
16
|
"devDependencies": {
|
17
|
-
"@measured/puck": "^0.
|
17
|
+
"@measured/puck": "^0.12.0-canary.0b6a527",
|
18
18
|
"@types/react": "^18.2.0",
|
19
19
|
"@types/react-dom": "^18.2.0",
|
20
20
|
"eslint": "^7.32.0",
|