@yurikilian/lex4 1.5.1 → 1.5.3
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/components/BlockTypePicker.d.ts +11 -0
- package/dist/components/BlockTypePicker.d.ts.map +1 -0
- package/dist/components/Toolbar.d.ts.map +1 -1
- package/dist/extensions/extension-context.d.ts +3 -3
- package/dist/extensions/extension-context.d.ts.map +1 -1
- package/dist/lex4-editor.cjs +164 -45
- package/dist/lex4-editor.cjs.map +1 -1
- package/dist/lex4-editor.js +164 -45
- package/dist/lex4-editor.js.map +1 -1
- package/dist/style.css +145 -2
- package/package.json +1 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { Lex4Translations } from '../i18n';
|
|
3
|
+
import { BlockType } from '../lexical/commands/block-commands';
|
|
4
|
+
export declare function getBlockTypeLabel(t: Lex4Translations, blockType: BlockType): string;
|
|
5
|
+
interface BlockTypePickerProps {
|
|
6
|
+
value: BlockType;
|
|
7
|
+
onChange: (blockType: BlockType) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const BlockTypePicker: React.FC<BlockTypePickerProps>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=BlockTypePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockTypePicker.d.ts","sourceRoot":"","sources":["../../src/components/BlockTypePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAYpE,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,CAiBnF;AAMD,UAAU,oBAAoB;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAkG1D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/components/Toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/components/Toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAqEhE,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAoa3B,CAAC"}
|
|
@@ -2,9 +2,9 @@ import { default as React } from 'react';
|
|
|
2
2
|
import { ResolvedExtensions, ExtensionContext, Lex4Extension } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Provides resolved extension data to all child components.
|
|
5
|
-
* Extensions are resolved when the
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Extensions are resolved when the extension instances change.
|
|
6
|
+
* This keeps providers and side panels in sync when an extension
|
|
7
|
+
* keeps the same name but receives fresh configuration.
|
|
8
8
|
*/
|
|
9
9
|
export declare const ExtensionProvider: React.FC<{
|
|
10
10
|
extensions?: Lex4Extension[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-context.d.ts","sourceRoot":"","sources":["../../src/extensions/extension-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"extension-context.d.ts","sourceRoot":"","sources":["../../src/extensions/extension-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA2B7C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAuBA,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,IAAI,kBAAkB,CAElD;AAMD,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAO1E,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB;UAGvB,CAAC,iBAAiB,MAAM,KAAG,CAAC,GAAG,SAAS;UACxC,CAAC,iBAAiB,MAAM,SAAS,CAAC;EAI3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,gBAAgB,CAAC,aAAa,CAAC,EAC5C,eAAe,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GACnD,gBAAgB,CAWlB"}
|
package/dist/lex4-editor.cjs
CHANGED
|
@@ -1460,33 +1460,33 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
1460
1460
|
* This source code is licensed under the ISC license.
|
|
1461
1461
|
* See the LICENSE file in the root directory of this source tree.
|
|
1462
1462
|
*/
|
|
1463
|
-
const __iconNode$
|
|
1463
|
+
const __iconNode$r = [
|
|
1464
1464
|
["path", { d: "m15 16 2.536-7.328a1.02 1.02 1 0 1 1.928 0L22 16", key: "xik6mr" }],
|
|
1465
1465
|
["path", { d: "M15.697 14h5.606", key: "1stdlc" }],
|
|
1466
1466
|
["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16", key: "d5nyq2" }],
|
|
1467
1467
|
["path", { d: "M3.304 13h6.392", key: "1q3zxz" }]
|
|
1468
1468
|
];
|
|
1469
|
-
const ALargeSmall = createLucideIcon("a-large-small", __iconNode$
|
|
1469
|
+
const ALargeSmall = createLucideIcon("a-large-small", __iconNode$r);
|
|
1470
1470
|
/**
|
|
1471
1471
|
* @license lucide-react v1.8.0 - ISC
|
|
1472
1472
|
*
|
|
1473
1473
|
* This source code is licensed under the ISC license.
|
|
1474
1474
|
* See the LICENSE file in the root directory of this source tree.
|
|
1475
1475
|
*/
|
|
1476
|
-
const __iconNode$
|
|
1476
|
+
const __iconNode$q = [
|
|
1477
1477
|
[
|
|
1478
1478
|
"path",
|
|
1479
1479
|
{ d: "M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8", key: "mg9rjx" }
|
|
1480
1480
|
]
|
|
1481
1481
|
];
|
|
1482
|
-
const Bold = createLucideIcon("bold", __iconNode$
|
|
1482
|
+
const Bold = createLucideIcon("bold", __iconNode$q);
|
|
1483
1483
|
/**
|
|
1484
1484
|
* @license lucide-react v1.8.0 - ISC
|
|
1485
1485
|
*
|
|
1486
1486
|
* This source code is licensed under the ISC license.
|
|
1487
1487
|
* See the LICENSE file in the root directory of this source tree.
|
|
1488
1488
|
*/
|
|
1489
|
-
const __iconNode$
|
|
1489
|
+
const __iconNode$p = [
|
|
1490
1490
|
[
|
|
1491
1491
|
"path",
|
|
1492
1492
|
{ d: "M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1", key: "ezmyqa" }
|
|
@@ -1499,7 +1499,23 @@ const __iconNode$n = [
|
|
|
1499
1499
|
}
|
|
1500
1500
|
]
|
|
1501
1501
|
];
|
|
1502
|
-
const Braces = createLucideIcon("braces", __iconNode$
|
|
1502
|
+
const Braces = createLucideIcon("braces", __iconNode$p);
|
|
1503
|
+
/**
|
|
1504
|
+
* @license lucide-react v1.8.0 - ISC
|
|
1505
|
+
*
|
|
1506
|
+
* This source code is licensed under the ISC license.
|
|
1507
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
1508
|
+
*/
|
|
1509
|
+
const __iconNode$o = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
1510
|
+
const Check = createLucideIcon("check", __iconNode$o);
|
|
1511
|
+
/**
|
|
1512
|
+
* @license lucide-react v1.8.0 - ISC
|
|
1513
|
+
*
|
|
1514
|
+
* This source code is licensed under the ISC license.
|
|
1515
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
1516
|
+
*/
|
|
1517
|
+
const __iconNode$n = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
1518
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$n);
|
|
1503
1519
|
/**
|
|
1504
1520
|
* @license lucide-react v1.8.0 - ISC
|
|
1505
1521
|
*
|
|
@@ -1991,7 +2007,9 @@ const EMPTY_RESOLVED = {
|
|
|
1991
2007
|
handleFactories: []
|
|
1992
2008
|
};
|
|
1993
2009
|
const ExtensionResolvedContext = React.createContext(EMPTY_RESOLVED);
|
|
1994
|
-
function
|
|
2010
|
+
function extensionArraysEqual(a, b) {
|
|
2011
|
+
if (a === b) return true;
|
|
2012
|
+
if (!a || !b) return !a && !b;
|
|
1995
2013
|
if (a.length !== b.length) return false;
|
|
1996
2014
|
for (let i = 0; i < a.length; i++) {
|
|
1997
2015
|
if (a[i] !== b[i]) return false;
|
|
@@ -1999,12 +2017,11 @@ function arraysEqual(a, b) {
|
|
|
1999
2017
|
return true;
|
|
2000
2018
|
}
|
|
2001
2019
|
const ExtensionProvider = ({ extensions, children }) => {
|
|
2002
|
-
const
|
|
2020
|
+
const prevExtensionsRef = React.useRef(void 0);
|
|
2003
2021
|
const resolvedRef = React.useRef(EMPTY_RESOLVED);
|
|
2004
|
-
|
|
2005
|
-
if (!arraysEqual(currentNames, prevNamesRef.current)) {
|
|
2022
|
+
if (!extensionArraysEqual(extensions, prevExtensionsRef.current)) {
|
|
2006
2023
|
resolvedRef.current = extensions && extensions.length > 0 ? resolveExtensions(extensions) : EMPTY_RESOLVED;
|
|
2007
|
-
|
|
2024
|
+
prevExtensionsRef.current = extensions;
|
|
2008
2025
|
}
|
|
2009
2026
|
const resolved = resolvedRef.current;
|
|
2010
2027
|
let wrapped = /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
|
|
@@ -2486,6 +2503,136 @@ function readSelectedVariableFormatting(editor) {
|
|
|
2486
2503
|
fontSize: extractFontSizePtFromStyle(style)
|
|
2487
2504
|
};
|
|
2488
2505
|
}
|
|
2506
|
+
const BLOCK_TYPE_OPTIONS = [
|
|
2507
|
+
{ value: "paragraph", shortLabel: "P" },
|
|
2508
|
+
{ value: "h1", shortLabel: "H1" },
|
|
2509
|
+
{ value: "h2", shortLabel: "H2" },
|
|
2510
|
+
{ value: "h3", shortLabel: "H3" },
|
|
2511
|
+
{ value: "h4", shortLabel: "H4" },
|
|
2512
|
+
{ value: "h5", shortLabel: "H5" },
|
|
2513
|
+
{ value: "h6", shortLabel: "H6" }
|
|
2514
|
+
];
|
|
2515
|
+
function getBlockTypeLabel(t, blockType) {
|
|
2516
|
+
switch (blockType) {
|
|
2517
|
+
case "h1":
|
|
2518
|
+
return t.toolbar.heading1;
|
|
2519
|
+
case "h2":
|
|
2520
|
+
return t.toolbar.heading2;
|
|
2521
|
+
case "h3":
|
|
2522
|
+
return t.toolbar.heading3;
|
|
2523
|
+
case "h4":
|
|
2524
|
+
return t.toolbar.heading4;
|
|
2525
|
+
case "h5":
|
|
2526
|
+
return t.toolbar.heading5;
|
|
2527
|
+
case "h6":
|
|
2528
|
+
return t.toolbar.heading6;
|
|
2529
|
+
default:
|
|
2530
|
+
return t.toolbar.paragraph;
|
|
2531
|
+
}
|
|
2532
|
+
}
|
|
2533
|
+
function getBlockTypeShortLabel(blockType) {
|
|
2534
|
+
var _a;
|
|
2535
|
+
return ((_a = BLOCK_TYPE_OPTIONS.find((option) => option.value === blockType)) == null ? void 0 : _a.shortLabel) ?? "P";
|
|
2536
|
+
}
|
|
2537
|
+
const BlockTypePicker = ({ value, onChange }) => {
|
|
2538
|
+
const t = useTranslations();
|
|
2539
|
+
const [open, setOpen] = React.useState(false);
|
|
2540
|
+
const containerRef = React.useRef(null);
|
|
2541
|
+
React.useEffect(() => {
|
|
2542
|
+
if (!open) {
|
|
2543
|
+
return;
|
|
2544
|
+
}
|
|
2545
|
+
const handleClickOutside = (event) => {
|
|
2546
|
+
if (containerRef.current && !containerRef.current.contains(event.target)) {
|
|
2547
|
+
setOpen(false);
|
|
2548
|
+
}
|
|
2549
|
+
};
|
|
2550
|
+
const handleEscape = (event) => {
|
|
2551
|
+
if (event.key === "Escape") {
|
|
2552
|
+
setOpen(false);
|
|
2553
|
+
}
|
|
2554
|
+
};
|
|
2555
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
2556
|
+
document.addEventListener("keydown", handleEscape);
|
|
2557
|
+
return () => {
|
|
2558
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
2559
|
+
document.removeEventListener("keydown", handleEscape);
|
|
2560
|
+
};
|
|
2561
|
+
}, [open]);
|
|
2562
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2563
|
+
"div",
|
|
2564
|
+
{
|
|
2565
|
+
ref: containerRef,
|
|
2566
|
+
className: "lex4-block-type-picker",
|
|
2567
|
+
"data-testid": "block-type-picker",
|
|
2568
|
+
children: [
|
|
2569
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2570
|
+
"button",
|
|
2571
|
+
{
|
|
2572
|
+
type: "button",
|
|
2573
|
+
className: `lex4-block-type-trigger${open ? " open" : ""}`,
|
|
2574
|
+
"data-testid": "block-type-selector",
|
|
2575
|
+
"aria-label": t.toolbar.blockType,
|
|
2576
|
+
"aria-expanded": open,
|
|
2577
|
+
"aria-haspopup": "menu",
|
|
2578
|
+
title: getBlockTypeLabel(t, value),
|
|
2579
|
+
onMouseDown: (event) => event.preventDefault(),
|
|
2580
|
+
onClick: () => setOpen((current) => !current),
|
|
2581
|
+
children: [
|
|
2582
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2583
|
+
"span",
|
|
2584
|
+
{
|
|
2585
|
+
className: `lex4-block-type-trigger-code${value === "paragraph" ? "" : " heading"}`,
|
|
2586
|
+
children: getBlockTypeShortLabel(value)
|
|
2587
|
+
}
|
|
2588
|
+
),
|
|
2589
|
+
/* @__PURE__ */ jsxRuntime.jsx(ChevronDown, { size: 14, className: `lex4-block-type-trigger-chevron${open ? " open" : ""}` })
|
|
2590
|
+
]
|
|
2591
|
+
}
|
|
2592
|
+
),
|
|
2593
|
+
open && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2594
|
+
"div",
|
|
2595
|
+
{
|
|
2596
|
+
className: "lex4-block-type-menu",
|
|
2597
|
+
role: "menu",
|
|
2598
|
+
"data-testid": "block-type-menu",
|
|
2599
|
+
children: BLOCK_TYPE_OPTIONS.map((option) => {
|
|
2600
|
+
const label = getBlockTypeLabel(t, option.value);
|
|
2601
|
+
const active = option.value === value;
|
|
2602
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2603
|
+
"button",
|
|
2604
|
+
{
|
|
2605
|
+
type: "button",
|
|
2606
|
+
role: "menuitemradio",
|
|
2607
|
+
"aria-checked": active,
|
|
2608
|
+
className: `lex4-block-type-item${active ? " active" : ""}`,
|
|
2609
|
+
"data-testid": `block-type-option-${option.value}`,
|
|
2610
|
+
onMouseDown: (event) => event.preventDefault(),
|
|
2611
|
+
onClick: () => {
|
|
2612
|
+
onChange(option.value);
|
|
2613
|
+
setOpen(false);
|
|
2614
|
+
},
|
|
2615
|
+
children: [
|
|
2616
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2617
|
+
"span",
|
|
2618
|
+
{
|
|
2619
|
+
className: `lex4-block-type-item-code${option.value === "paragraph" ? "" : " heading"}${active ? " active" : ""}`,
|
|
2620
|
+
children: option.shortLabel
|
|
2621
|
+
}
|
|
2622
|
+
),
|
|
2623
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "lex4-block-type-item-label", children: label }),
|
|
2624
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "lex4-block-type-item-check", "aria-hidden": "true", children: active ? /* @__PURE__ */ jsxRuntime.jsx(Check, { size: 14 }) : null })
|
|
2625
|
+
]
|
|
2626
|
+
},
|
|
2627
|
+
option.value
|
|
2628
|
+
);
|
|
2629
|
+
})
|
|
2630
|
+
}
|
|
2631
|
+
)
|
|
2632
|
+
]
|
|
2633
|
+
}
|
|
2634
|
+
);
|
|
2635
|
+
};
|
|
2489
2636
|
const HeaderFooterToggle = ({
|
|
2490
2637
|
enabled,
|
|
2491
2638
|
onToggle,
|
|
@@ -2984,19 +3131,9 @@ const Toolbar = () => {
|
|
|
2984
3131
|
[activeEditor, applyToBodyEditors, runToolbarAction, t.history.actions.fontSizeChanged]
|
|
2985
3132
|
);
|
|
2986
3133
|
const handleBlockTypeChange = React.useCallback(
|
|
2987
|
-
(
|
|
2988
|
-
const blockType = e.target.value;
|
|
2989
|
-
const labelMap = {
|
|
2990
|
-
paragraph: t.toolbar.paragraph,
|
|
2991
|
-
h1: t.toolbar.heading1,
|
|
2992
|
-
h2: t.toolbar.heading2,
|
|
2993
|
-
h3: t.toolbar.heading3,
|
|
2994
|
-
h4: t.toolbar.heading4,
|
|
2995
|
-
h5: t.toolbar.heading5,
|
|
2996
|
-
h6: t.toolbar.heading6
|
|
2997
|
-
};
|
|
3134
|
+
(blockType) => {
|
|
2998
3135
|
runToolbarAction(
|
|
2999
|
-
interpolate(t.history.actions.blockTypeChanged, { value:
|
|
3136
|
+
interpolate(t.history.actions.blockTypeChanged, { value: getBlockTypeLabel(t, blockType) }),
|
|
3000
3137
|
() => {
|
|
3001
3138
|
applyToBodyEditors((editor) => setBlockType(editor, blockType));
|
|
3002
3139
|
}
|
|
@@ -3006,13 +3143,7 @@ const Toolbar = () => {
|
|
|
3006
3143
|
applyToBodyEditors,
|
|
3007
3144
|
runToolbarAction,
|
|
3008
3145
|
t.history.actions.blockTypeChanged,
|
|
3009
|
-
t
|
|
3010
|
-
t.toolbar.heading2,
|
|
3011
|
-
t.toolbar.heading3,
|
|
3012
|
-
t.toolbar.heading4,
|
|
3013
|
-
t.toolbar.heading5,
|
|
3014
|
-
t.toolbar.heading6,
|
|
3015
|
-
t.toolbar.paragraph
|
|
3146
|
+
t
|
|
3016
3147
|
]
|
|
3017
3148
|
);
|
|
3018
3149
|
const handleToggleHistory = React.useCallback(() => {
|
|
@@ -3047,23 +3178,11 @@ const Toolbar = () => {
|
|
|
3047
3178
|
)
|
|
3048
3179
|
] }),
|
|
3049
3180
|
/* @__PURE__ */ jsxRuntime.jsx(Divider, {}),
|
|
3050
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "lex4-toolbar-group
|
|
3051
|
-
|
|
3181
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "lex4-toolbar-group", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3182
|
+
BlockTypePicker,
|
|
3052
3183
|
{
|
|
3053
|
-
className: "lex4-toolbar-select lex4-toolbar-select-block",
|
|
3054
|
-
"data-testid": "block-type-selector",
|
|
3055
|
-
"aria-label": t.toolbar.blockType,
|
|
3056
3184
|
value: activeBlockType,
|
|
3057
|
-
onChange: handleBlockTypeChange
|
|
3058
|
-
children: [
|
|
3059
|
-
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "paragraph", children: t.toolbar.paragraph }),
|
|
3060
|
-
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "h1", children: t.toolbar.heading1 }),
|
|
3061
|
-
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "h2", children: t.toolbar.heading2 }),
|
|
3062
|
-
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "h3", children: t.toolbar.heading3 }),
|
|
3063
|
-
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "h4", children: t.toolbar.heading4 }),
|
|
3064
|
-
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "h5", children: t.toolbar.heading5 }),
|
|
3065
|
-
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "h6", children: t.toolbar.heading6 })
|
|
3066
|
-
]
|
|
3185
|
+
onChange: handleBlockTypeChange
|
|
3067
3186
|
}
|
|
3068
3187
|
) }),
|
|
3069
3188
|
/* @__PURE__ */ jsxRuntime.jsx(Divider, {}),
|