pptx-react-viewer 1.22.1 → 1.22.2
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/CHANGELOG.md +2 -0
- package/dist/{chunk-DZUI64SO.mjs → chunk-3MZ7IARF.mjs} +9 -0
- package/dist/chunk-3MZ7IARF.mjs.br +0 -0
- package/dist/{chunk-DZUI64SO.mjs.gz → chunk-3MZ7IARF.mjs.gz} +0 -0
- package/dist/{chunk-YPZV4KJT.js → chunk-JUFGTL2A.js} +398 -395
- package/dist/chunk-JUFGTL2A.js.br +0 -0
- package/dist/chunk-JUFGTL2A.js.gz +0 -0
- package/dist/{chunk-QVQTDWB7.js → chunk-KA7ST7IH.js} +9 -0
- package/dist/chunk-KA7ST7IH.js.br +0 -0
- package/dist/{chunk-QVQTDWB7.js.gz → chunk-KA7ST7IH.js.gz} +0 -0
- package/dist/{chunk-B7JRQB5F.mjs → chunk-OIAKQGMC.mjs} +7 -4
- package/dist/chunk-OIAKQGMC.mjs.br +0 -0
- package/dist/chunk-OIAKQGMC.mjs.gz +0 -0
- package/dist/hooks-unstable.d.ts +3 -0
- package/dist/hooks-unstable.d.ts.map +1 -1
- package/dist/hooks-unstable.js +71 -71
- package/dist/hooks-unstable.js.br +0 -0
- package/dist/hooks-unstable.js.gz +0 -0
- package/dist/hooks-unstable.mjs +1 -1
- package/dist/hooks-unstable.mjs.br +0 -0
- package/dist/hooks-unstable.mjs.gz +0 -0
- package/dist/index.js +7 -7
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/viewer/index.js +18 -18
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +2 -2
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/chunk-B7JRQB5F.mjs.br +0 -0
- package/dist/chunk-B7JRQB5F.mjs.gz +0 -0
- package/dist/chunk-DZUI64SO.mjs.br +0 -0
- package/dist/chunk-QVQTDWB7.js.br +0 -0
- package/dist/chunk-YPZV4KJT.js.br +0 -0
- package/dist/chunk-YPZV4KJT.js.gz +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkKA7ST7IH_js = require('./chunk-KA7ST7IH.js');
|
|
4
4
|
var chunkVSNXVKJI_js = require('./chunk-VSNXVKJI.js');
|
|
5
5
|
var chunkZISXRMDJ_js = require('./chunk-ZISXRMDJ.js');
|
|
6
6
|
var chunkAD3EAEY6_js = require('./chunk-AD3EAEY6.js');
|
|
@@ -42,7 +42,7 @@ function CollaborationProvider({
|
|
|
42
42
|
canvasHeight,
|
|
43
43
|
children
|
|
44
44
|
}) {
|
|
45
|
-
const value =
|
|
45
|
+
const value = chunkKA7ST7IH_js.useCollaborativeState({
|
|
46
46
|
config,
|
|
47
47
|
canvasWidth,
|
|
48
48
|
canvasHeight
|
|
@@ -474,7 +474,7 @@ function LoadingState({ className }) {
|
|
|
474
474
|
role: "status",
|
|
475
475
|
"aria-live": "polite",
|
|
476
476
|
"aria-atomic": "true",
|
|
477
|
-
className:
|
|
477
|
+
className: chunkKA7ST7IH_js.cn(
|
|
478
478
|
"h-full w-full flex items-center justify-center text-muted-foreground",
|
|
479
479
|
className
|
|
480
480
|
),
|
|
@@ -497,7 +497,7 @@ function ErrorState({ className, error }) {
|
|
|
497
497
|
{
|
|
498
498
|
role: "alert",
|
|
499
499
|
"aria-live": "assertive",
|
|
500
|
-
className:
|
|
500
|
+
className: chunkKA7ST7IH_js.cn(
|
|
501
501
|
"h-full w-full flex items-center justify-center p-6 text-center text-red-400",
|
|
502
502
|
className
|
|
503
503
|
),
|
|
@@ -528,7 +528,7 @@ function ShortcutPanel({ isOpen, onClose }) {
|
|
|
528
528
|
}
|
|
529
529
|
)
|
|
530
530
|
] }),
|
|
531
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-64 overflow-y-auto p-2 space-y-1", children:
|
|
531
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-64 overflow-y-auto p-2 space-y-1", children: chunkKA7ST7IH_js.SHORTCUT_REFERENCE_ITEMS.map((shortcut) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
532
532
|
"div",
|
|
533
533
|
{
|
|
534
534
|
className: "flex items-center justify-between gap-3 rounded bg-muted/80 px-2 py-1.5",
|
|
@@ -588,14 +588,14 @@ function AccessibilityPanel({
|
|
|
588
588
|
"aria-label": t("pptx.accessibility.reduceMotion"),
|
|
589
589
|
"aria-checked": reducedMotion ?? false,
|
|
590
590
|
onClick: onToggleReducedMotion,
|
|
591
|
-
className:
|
|
591
|
+
className: chunkKA7ST7IH_js.cn(
|
|
592
592
|
"relative inline-flex h-5 w-9 items-center rounded-full transition-colors",
|
|
593
593
|
reducedMotion ? "bg-primary" : "bg-muted-foreground/30"
|
|
594
594
|
),
|
|
595
595
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
596
596
|
"span",
|
|
597
597
|
{
|
|
598
|
-
className:
|
|
598
|
+
className: chunkKA7ST7IH_js.cn(
|
|
599
599
|
"inline-block h-3.5 w-3.5 rounded-full bg-white transition-transform",
|
|
600
600
|
reducedMotion ? "translate-x-4" : "translate-x-0.5"
|
|
601
601
|
)
|
|
@@ -614,7 +614,7 @@ function AccessibilityPanel({
|
|
|
614
614
|
"div",
|
|
615
615
|
{
|
|
616
616
|
role: "listitem",
|
|
617
|
-
className:
|
|
617
|
+
className: chunkKA7ST7IH_js.cn(
|
|
618
618
|
"flex items-start gap-2 rounded px-2 py-1.5 text-xs",
|
|
619
619
|
/* Severity-based background and text colouring */
|
|
620
620
|
issue.severity === "error" ? "bg-red-900/30 text-red-300" : issue.severity === "warning" ? "bg-amber-900/30 text-amber-300" : "bg-muted/50 text-muted-foreground"
|
|
@@ -738,7 +738,7 @@ function StatusBar({
|
|
|
738
738
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
739
739
|
"span",
|
|
740
740
|
{
|
|
741
|
-
className:
|
|
741
|
+
className: chunkKA7ST7IH_js.cn(
|
|
742
742
|
"shrink-0 max-md:hidden",
|
|
743
743
|
autosaveStatus?.state === "error" ? "text-red-400" : autosaveStatus?.state === "saving" ? "text-yellow-400" : ""
|
|
744
744
|
),
|
|
@@ -751,7 +751,7 @@ function StatusBar({
|
|
|
751
751
|
{
|
|
752
752
|
type: "button",
|
|
753
753
|
onClick: onToggleNotes,
|
|
754
|
-
className:
|
|
754
|
+
className: chunkKA7ST7IH_js.cn(
|
|
755
755
|
vb,
|
|
756
756
|
"flex items-center gap-1 text-[10px]",
|
|
757
757
|
isNotesExpanded && "text-primary"
|
|
@@ -771,7 +771,7 @@ function StatusBar({
|
|
|
771
771
|
{
|
|
772
772
|
type: "button",
|
|
773
773
|
onClick: () => onSetMode("edit"),
|
|
774
|
-
className:
|
|
774
|
+
className: chunkKA7ST7IH_js.cn(vb, mode === "edit" && "text-primary"),
|
|
775
775
|
title: t("pptx.statusBar.normalView"),
|
|
776
776
|
"aria-label": t("pptx.statusBar.normalView"),
|
|
777
777
|
children: /* @__PURE__ */ jsxRuntime.jsx(lu.LuMonitor, { className: "w-3.5 h-3.5" })
|
|
@@ -793,7 +793,7 @@ function StatusBar({
|
|
|
793
793
|
{
|
|
794
794
|
type: "button",
|
|
795
795
|
onClick: () => onSetMode("present"),
|
|
796
|
-
className:
|
|
796
|
+
className: chunkKA7ST7IH_js.cn(vb, mode === "present" && "text-primary"),
|
|
797
797
|
title: t("pptx.statusBar.slideShow"),
|
|
798
798
|
"aria-label": t("pptx.statusBar.slideShow"),
|
|
799
799
|
children: /* @__PURE__ */ jsxRuntime.jsx(lu.LuPresentation, { className: "w-3.5 h-3.5" })
|
|
@@ -883,7 +883,7 @@ function ResizeHandle({
|
|
|
883
883
|
{
|
|
884
884
|
role: "separator",
|
|
885
885
|
"aria-orientation": direction,
|
|
886
|
-
className:
|
|
886
|
+
className: chunkKA7ST7IH_js.cn(
|
|
887
887
|
// Outer container: generous hit area for easy clicking.
|
|
888
888
|
// The visible indicator is rendered via the inner pseudo-element (::after).
|
|
889
889
|
"relative flex-shrink-0 z-20 group",
|
|
@@ -894,7 +894,7 @@ function ResizeHandle({
|
|
|
894
894
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
895
895
|
"div",
|
|
896
896
|
{
|
|
897
|
-
className:
|
|
897
|
+
className: chunkKA7ST7IH_js.cn(
|
|
898
898
|
"absolute transition-colors",
|
|
899
899
|
direction === "horizontal" ? "top-0 bottom-0 left-1/2 -translate-x-1/2 w-0.5 group-hover:w-1 group-hover:bg-primary/40 group-active:w-1 group-active:bg-primary/60" : "left-0 right-0 top-1/2 -translate-y-1/2 h-0.5 group-hover:h-1 group-hover:bg-primary/40 group-active:h-1 group-active:bg-primary/60"
|
|
900
900
|
)
|
|
@@ -961,7 +961,7 @@ function ChartElementView({
|
|
|
961
961
|
const selectedPart = selection?.elementId === element.id ? selection.part : null;
|
|
962
962
|
const canEdit = editable && Boolean(onUpdateElement);
|
|
963
963
|
const viewModel = React14.useMemo(
|
|
964
|
-
() => canEdit ?
|
|
964
|
+
() => canEdit ? chunkKA7ST7IH_js.buildReactChartViewModel(element) : null,
|
|
965
965
|
[canEdit, element]
|
|
966
966
|
);
|
|
967
967
|
React14.useEffect(ensureInteractionStyles, []);
|
|
@@ -1107,7 +1107,7 @@ function ChartElementView({
|
|
|
1107
1107
|
onPointerUp: handlePointerUp,
|
|
1108
1108
|
onDoubleClick: handleDoubleClick,
|
|
1109
1109
|
children: [
|
|
1110
|
-
|
|
1110
|
+
chunkKA7ST7IH_js.renderChartElement(renderedElement),
|
|
1111
1111
|
dragValue !== null && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1 right-1 z-10 rounded bg-primary/90 px-1.5 py-0.5 text-[10px] font-medium text-white pointer-events-none", children: chunkVSNXVKJI_js.formatAxisValue(dragValue) }),
|
|
1112
1112
|
titleDraft !== null && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1113
1113
|
"input",
|
|
@@ -1300,7 +1300,7 @@ function renderImg(el, style, filter, alt, opacity) {
|
|
|
1300
1300
|
...filter ? { filter } : {},
|
|
1301
1301
|
...opacity !== void 0 ? { opacity } : {}
|
|
1302
1302
|
};
|
|
1303
|
-
if (
|
|
1303
|
+
if (chunkKA7ST7IH_js.isImageTiled(el)) {
|
|
1304
1304
|
const tileSrc = imgSrc(el);
|
|
1305
1305
|
if (!tileSrc) {
|
|
1306
1306
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-gray-500 bg-gray-100", children: "Image" });
|
|
@@ -1311,7 +1311,7 @@ function renderImg(el, style, filter, alt, opacity) {
|
|
|
1311
1311
|
"div",
|
|
1312
1312
|
{
|
|
1313
1313
|
className: "pointer-events-none select-none w-full h-full",
|
|
1314
|
-
style: { ...
|
|
1314
|
+
style: { ...chunkKA7ST7IH_js.getImageTilingStyle(el), ...effectStyles }
|
|
1315
1315
|
}
|
|
1316
1316
|
)
|
|
1317
1317
|
] });
|
|
@@ -1320,7 +1320,7 @@ function renderImg(el, style, filter, alt, opacity) {
|
|
|
1320
1320
|
chunkAD3EAEY6_js.isImageLikeElement(el) ? el.imageEffects?.colorWash : void 0
|
|
1321
1321
|
);
|
|
1322
1322
|
const clrChange = "imageEffects" in el ? el.imageEffects?.clrChange : void 0;
|
|
1323
|
-
const duotoneColors =
|
|
1323
|
+
const duotoneColors = chunkKA7ST7IH_js.getDuotoneColors(el);
|
|
1324
1324
|
const useDuotoneCanvas = Boolean(duotoneColors && !clrChange);
|
|
1325
1325
|
const filterForImg = useDuotoneCanvas ? chunkVSNXVKJI_js.getImageEffectsFilter(el, { excludeDuotone: true }) : filter;
|
|
1326
1326
|
const canvasEffectStyles = {
|
|
@@ -1533,7 +1533,7 @@ function ResizeHandles({
|
|
|
1533
1533
|
"button",
|
|
1534
1534
|
{
|
|
1535
1535
|
type: "button",
|
|
1536
|
-
className:
|
|
1536
|
+
className: chunkKA7ST7IH_js.cn("absolute z-10 group", posClass, cursor),
|
|
1537
1537
|
style: peStyle,
|
|
1538
1538
|
onPointerDown: (e) => handleResizePointer(e, handle),
|
|
1539
1539
|
onMouseDown: (e) => {
|
|
@@ -1551,7 +1551,7 @@ function ResizeHandles({
|
|
|
1551
1551
|
"button",
|
|
1552
1552
|
{
|
|
1553
1553
|
type: "button",
|
|
1554
|
-
className:
|
|
1554
|
+
className: chunkKA7ST7IH_js.cn("absolute z-10", posClass, cursor),
|
|
1555
1555
|
style: peStyle,
|
|
1556
1556
|
onPointerDown: (e) => handleResizePointer(e, handle),
|
|
1557
1557
|
onMouseDown: (e) => {
|
|
@@ -1559,7 +1559,7 @@ function ResizeHandles({
|
|
|
1559
1559
|
onResizePointerDown(elementId, e, handle);
|
|
1560
1560
|
},
|
|
1561
1561
|
children: [
|
|
1562
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
1562
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkKA7ST7IH_js.cn(sizeClass, "border border-white bg-primary shadow") }),
|
|
1563
1563
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -inset-2 max-md:-inset-1" })
|
|
1564
1564
|
]
|
|
1565
1565
|
},
|
|
@@ -1640,7 +1640,7 @@ var ConnectorElementRenderer = React14__default.default.memo(
|
|
|
1640
1640
|
const viewHeight = Math.max(el.height, 1);
|
|
1641
1641
|
const ss = shapeEl?.shapeStyle;
|
|
1642
1642
|
const strokeWidth = Math.max(0, ss?.strokeWidth ?? 2);
|
|
1643
|
-
const strokeColor = chunkVSNXVKJI_js.normalizeHexColor(ss?.strokeColor,
|
|
1643
|
+
const strokeColor = chunkVSNXVKJI_js.normalizeHexColor(ss?.strokeColor, chunkKA7ST7IH_js.DEFAULT_STROKE_COLOR);
|
|
1644
1644
|
const strokePaint = chunkVSNXVKJI_js.colorWithOpacity(strokeColor, ss?.strokeOpacity);
|
|
1645
1645
|
const dashType = chunkVSNXVKJI_js.normalizeStrokeDashType(ss?.strokeDash);
|
|
1646
1646
|
const dashArray = chunkVSNXVKJI_js.getSvgStrokeDasharray(
|
|
@@ -1661,7 +1661,7 @@ var ConnectorElementRenderer = React14__default.default.memo(
|
|
|
1661
1661
|
const connectorText = textEl?.text?.trim() ?? "";
|
|
1662
1662
|
const connectorTextSegments = textEl?.textSegments;
|
|
1663
1663
|
const connectorTextStyle = textEl?.textStyle;
|
|
1664
|
-
const pathGeometry = shapeEl ?
|
|
1664
|
+
const pathGeometry = shapeEl ? chunkKA7ST7IH_js.getConnectorPathGeometry(shapeEl) : {
|
|
1665
1665
|
pathData: `M 0 0 L ${viewWidth} ${viewHeight}`,
|
|
1666
1666
|
startX: 0,
|
|
1667
1667
|
startY: 0,
|
|
@@ -1670,8 +1670,8 @@ var ConnectorElementRenderer = React14__default.default.memo(
|
|
|
1670
1670
|
};
|
|
1671
1671
|
const hitTargetWidth = Math.max(strokeWidth * 3, 14);
|
|
1672
1672
|
const selColor = selClr === "blue-400" ? "#60a5fa" : "#3b82f6";
|
|
1673
|
-
const lineShadow =
|
|
1674
|
-
const lineGlow =
|
|
1673
|
+
const lineShadow = chunkKA7ST7IH_js.buildLineShadowCss(el);
|
|
1674
|
+
const lineGlow = chunkKA7ST7IH_js.buildLineGlowFilter(el);
|
|
1675
1675
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1676
1676
|
"div",
|
|
1677
1677
|
{
|
|
@@ -1681,8 +1681,8 @@ var ConnectorElementRenderer = React14__default.default.memo(
|
|
|
1681
1681
|
style: {
|
|
1682
1682
|
left: el.x,
|
|
1683
1683
|
top: el.y,
|
|
1684
|
-
width: Math.max(el.width,
|
|
1685
|
-
height: Math.max(el.height,
|
|
1684
|
+
width: Math.max(el.width, chunkKA7ST7IH_js.MIN_ELEMENT_SIZE),
|
|
1685
|
+
height: Math.max(el.height, chunkKA7ST7IH_js.MIN_ELEMENT_SIZE),
|
|
1686
1686
|
transform: chunkVSNXVKJI_js.getElementTransform(el),
|
|
1687
1687
|
transformOrigin: "center",
|
|
1688
1688
|
background: "transparent",
|
|
@@ -1704,14 +1704,14 @@ var ConnectorElementRenderer = React14__default.default.memo(
|
|
|
1704
1704
|
style: { overflow: "visible", pointerEvents: "none" },
|
|
1705
1705
|
children: [
|
|
1706
1706
|
/* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
|
|
1707
|
-
|
|
1707
|
+
chunkKA7ST7IH_js.renderConnectorMarker(
|
|
1708
1708
|
startMarkerId,
|
|
1709
1709
|
startArrow,
|
|
1710
1710
|
strokePaint,
|
|
1711
1711
|
ss?.connectorStartArrowWidth,
|
|
1712
1712
|
ss?.connectorStartArrowLength
|
|
1713
1713
|
),
|
|
1714
|
-
|
|
1714
|
+
chunkKA7ST7IH_js.renderConnectorMarker(
|
|
1715
1715
|
endMarkerId,
|
|
1716
1716
|
endArrow,
|
|
1717
1717
|
strokePaint,
|
|
@@ -1923,14 +1923,14 @@ function elementHasTextHyperlink(el) {
|
|
|
1923
1923
|
return Boolean(el.textSegments?.some((segment) => Boolean(segment.style?.hyperlink)));
|
|
1924
1924
|
}
|
|
1925
1925
|
function renderDagDuotoneFilterForElement(el) {
|
|
1926
|
-
if (!
|
|
1926
|
+
if (!chunkKA7ST7IH_js.hasDagDuotoneEffect(el)) {
|
|
1927
1927
|
return null;
|
|
1928
1928
|
}
|
|
1929
1929
|
const duotone = el.shapeStyle?.dagDuotone;
|
|
1930
1930
|
if (!duotone) {
|
|
1931
1931
|
return null;
|
|
1932
1932
|
}
|
|
1933
|
-
return
|
|
1933
|
+
return chunkKA7ST7IH_js.renderDagDuotoneSvgFilter(el.id, duotone.color1, duotone.color2);
|
|
1934
1934
|
}
|
|
1935
1935
|
function getContainerStyle({
|
|
1936
1936
|
el,
|
|
@@ -1947,12 +1947,12 @@ function getContainerStyle({
|
|
|
1947
1947
|
return {
|
|
1948
1948
|
left: isFullscreenMedia ? 0 : el.x,
|
|
1949
1949
|
top: isFullscreenMedia ? 0 : el.y,
|
|
1950
|
-
width: isFullscreenMedia ? "100%" : Math.max(el.width,
|
|
1951
|
-
height: isFullscreenMedia ? "100%" : Math.max(el.height,
|
|
1950
|
+
width: isFullscreenMedia ? "100%" : Math.max(el.width, chunkKA7ST7IH_js.MIN_ELEMENT_SIZE),
|
|
1951
|
+
height: isFullscreenMedia ? "100%" : Math.max(el.height, chunkKA7ST7IH_js.MIN_ELEMENT_SIZE),
|
|
1952
1952
|
transform: isFullscreenMedia ? "none" : chunkVSNXVKJI_js.getElementTransform(el),
|
|
1953
1953
|
transformOrigin: "center",
|
|
1954
1954
|
overflow: overflowValue,
|
|
1955
|
-
clipPath: isImg && !has3DExtrusion ?
|
|
1955
|
+
clipPath: isImg && !has3DExtrusion ? chunkKA7ST7IH_js.getCropShapeClipPath(el) : void 0,
|
|
1956
1956
|
zIndex: isFullscreenMedia ? 20 : zIndex,
|
|
1957
1957
|
opacity,
|
|
1958
1958
|
visibility: animationState?.visible === false ? "hidden" : "visible",
|
|
@@ -1986,8 +1986,8 @@ function ActionIndicator({
|
|
|
1986
1986
|
function shapeParams(element) {
|
|
1987
1987
|
const style = chunkAD3EAEY6_js.hasShapeProperties(element) ? element.shapeStyle : void 0;
|
|
1988
1988
|
const strokeWidth = Math.max(0, style?.strokeWidth || 0);
|
|
1989
|
-
const strokeColor = chunkVSNXVKJI_js.normalizeHexColor(style?.strokeColor,
|
|
1990
|
-
const fillColor = chunkVSNXVKJI_js.normalizeHexColor(style?.fillColor,
|
|
1989
|
+
const strokeColor = chunkVSNXVKJI_js.normalizeHexColor(style?.strokeColor, chunkKA7ST7IH_js.DEFAULT_STROKE_COLOR);
|
|
1990
|
+
const fillColor = chunkVSNXVKJI_js.normalizeHexColor(style?.fillColor, chunkKA7ST7IH_js.DEFAULT_FILL_COLOR);
|
|
1991
1991
|
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunkVSNXVKJI_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
|
|
1992
1992
|
return { hf: hasFill, fc: fillColor, sw: strokeWidth, sc: strokeColor };
|
|
1993
1993
|
}
|
|
@@ -2109,15 +2109,15 @@ var ElementRenderer = React14__default.default.memo(
|
|
|
2109
2109
|
const elementLocks = el.locks;
|
|
2110
2110
|
const isTxt = chunkVSNXVKJI_js.isEditableTextElement(el) && !elementLocks?.noTextEdit;
|
|
2111
2111
|
const txtSE = chunkAD3EAEY6_js.hasTextProperties(el) ? el.textStyle : void 0;
|
|
2112
|
-
const ss =
|
|
2113
|
-
const ts =
|
|
2114
|
-
const vs =
|
|
2112
|
+
const ss = chunkKA7ST7IH_js.getShapeVisualStyle(el, hf, fc, sw, sc);
|
|
2113
|
+
const ts = chunkKA7ST7IH_js.getTextStyleForElement(el, chunkKA7ST7IH_js.DEFAULT_TEXT_COLOR);
|
|
2114
|
+
const vs = chunkKA7ST7IH_js.renderVectorShape(el, hf, fc, sw, sc);
|
|
2115
2115
|
const isImg = el.type === "picture" || el.type === "image";
|
|
2116
2116
|
const isModel3D = el.type === "model3d";
|
|
2117
|
-
const isConn =
|
|
2117
|
+
const isConn = chunkKA7ST7IH_js.isConnectorOrLineElement(el);
|
|
2118
2118
|
const shapeStyle3d = chunkAD3EAEY6_js.hasShapeProperties(el) ? el.shapeStyle : void 0;
|
|
2119
2119
|
const extrusionData = React14.useMemo(
|
|
2120
|
-
() =>
|
|
2120
|
+
() => chunkKA7ST7IH_js.build3DExtrusionData(shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height),
|
|
2121
2121
|
[shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height]
|
|
2122
2122
|
);
|
|
2123
2123
|
const [isMediaPlaying, setIsMediaPlaying] = React14.useState(false);
|
|
@@ -2181,7 +2181,7 @@ var ElementRenderer = React14__default.default.memo(
|
|
|
2181
2181
|
"aria-roledescription": ariaRoleDescription,
|
|
2182
2182
|
"aria-selected": isSelected ? true : void 0,
|
|
2183
2183
|
tabIndex: isFocusable ? 0 : -1,
|
|
2184
|
-
className:
|
|
2184
|
+
className: chunkKA7ST7IH_js.cn(
|
|
2185
2185
|
"absolute border",
|
|
2186
2186
|
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",
|
|
2187
2187
|
cur,
|
|
@@ -2214,7 +2214,7 @@ var ElementRenderer = React14__default.default.memo(
|
|
|
2214
2214
|
txtSE,
|
|
2215
2215
|
txtS: ts,
|
|
2216
2216
|
vecShape: vs,
|
|
2217
|
-
imgStyle:
|
|
2217
|
+
imgStyle: chunkKA7ST7IH_js.getImageRenderStyle(el),
|
|
2218
2218
|
imgFilter: chunkVSNXVKJI_js.getImageEffectsFilter(el),
|
|
2219
2219
|
imgOpacity: chunkVSNXVKJI_js.getImageEffectsOpacity(el),
|
|
2220
2220
|
imgAlt: imageAltText,
|
|
@@ -2358,9 +2358,9 @@ function renderInk(el, options) {
|
|
|
2358
2358
|
function renderGroup(children) {
|
|
2359
2359
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full h-full pointer-events-none", children: children.map((c, childIndex) => {
|
|
2360
2360
|
const { hf, fc, sw, sc } = shapeParams(c);
|
|
2361
|
-
const ss =
|
|
2362
|
-
const vs =
|
|
2363
|
-
const ts =
|
|
2361
|
+
const ss = chunkKA7ST7IH_js.getShapeVisualStyle(c, hf, fc, sw, sc);
|
|
2362
|
+
const vs = chunkKA7ST7IH_js.renderVectorShape(c, hf, fc, sw, sc);
|
|
2363
|
+
const ts = chunkKA7ST7IH_js.getTextStyleForElement(c, chunkKA7ST7IH_js.DEFAULT_TEXT_COLOR);
|
|
2364
2364
|
const isTxt = chunkVSNXVKJI_js.isEditableTextElement(c);
|
|
2365
2365
|
const isI = c.type === "picture" || c.type === "image";
|
|
2366
2366
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2370,12 +2370,12 @@ function renderGroup(children) {
|
|
|
2370
2370
|
style: {
|
|
2371
2371
|
left: c.x,
|
|
2372
2372
|
top: c.y,
|
|
2373
|
-
width: Math.max(c.width,
|
|
2374
|
-
height: Math.max(c.height,
|
|
2373
|
+
width: Math.max(c.width, chunkKA7ST7IH_js.MIN_ELEMENT_SIZE),
|
|
2374
|
+
height: Math.max(c.height, chunkKA7ST7IH_js.MIN_ELEMENT_SIZE),
|
|
2375
2375
|
transform: chunkVSNXVKJI_js.getElementTransform(c),
|
|
2376
2376
|
transformOrigin: "center",
|
|
2377
2377
|
overflow: isI ? "hidden" : void 0,
|
|
2378
|
-
clipPath: isI ?
|
|
2378
|
+
clipPath: isI ? chunkKA7ST7IH_js.getCropShapeClipPath(c) : void 0,
|
|
2379
2379
|
...ss,
|
|
2380
2380
|
// Explicit z-index preserves document order stacking within the
|
|
2381
2381
|
// group: later children in the array (= later in p:grpSp XML)
|
|
@@ -2383,11 +2383,11 @@ function renderGroup(children) {
|
|
|
2383
2383
|
// Placed after ...ss to ensure it is never overwritten.
|
|
2384
2384
|
zIndex: childIndex
|
|
2385
2385
|
},
|
|
2386
|
-
children: isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ?
|
|
2386
|
+
children: isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? chunkKA7ST7IH_js.isImageTiled(c) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2387
2387
|
"div",
|
|
2388
2388
|
{
|
|
2389
2389
|
className: "pointer-events-none select-none w-full h-full",
|
|
2390
|
-
style:
|
|
2390
|
+
style: chunkKA7ST7IH_js.getImageTilingStyle(c)
|
|
2391
2391
|
}
|
|
2392
2392
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2393
2393
|
"img",
|
|
@@ -2395,7 +2395,7 @@ function renderGroup(children) {
|
|
|
2395
2395
|
src: "svgData" in c && c.svgData ? c.svgData : c.imageData,
|
|
2396
2396
|
alt: chunkZISXRMDJ_js.translationsEn["pptx.ink.groupChildAlt"],
|
|
2397
2397
|
className: "pointer-events-none select-none",
|
|
2398
|
-
style:
|
|
2398
|
+
style: chunkKA7ST7IH_js.getImageRenderStyle(c),
|
|
2399
2399
|
draggable: false
|
|
2400
2400
|
}
|
|
2401
2401
|
) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -2405,7 +2405,7 @@ function renderGroup(children) {
|
|
|
2405
2405
|
{
|
|
2406
2406
|
className: "relative z-10 w-full h-full pointer-events-none whitespace-pre-wrap break-words leading-[1.3]",
|
|
2407
2407
|
style: ts,
|
|
2408
|
-
children:
|
|
2408
|
+
children: chunkKA7ST7IH_js.renderTextSegments(c, chunkKA7ST7IH_js.DEFAULT_TEXT_COLOR)
|
|
2409
2409
|
}
|
|
2410
2410
|
) : null
|
|
2411
2411
|
] })
|
|
@@ -2754,7 +2754,7 @@ function InlineTextEditor({
|
|
|
2754
2754
|
pending.endOffset
|
|
2755
2755
|
);
|
|
2756
2756
|
});
|
|
2757
|
-
const warpStyle =
|
|
2757
|
+
const warpStyle = chunkKA7ST7IH_js.getTextWarpStyle(textStyleRaw);
|
|
2758
2758
|
const compensationTransform = chunkVSNXVKJI_js.getTextCompensationTransform(element);
|
|
2759
2759
|
const warpTransform = warpStyle?.transform;
|
|
2760
2760
|
const mergedTransform = [compensationTransform, warpTransform].filter(Boolean).join(" ") || void 0;
|
|
@@ -2830,7 +2830,7 @@ function InlineTextEditor({
|
|
|
2830
2830
|
const text = e.clipboardData.getData("text/plain");
|
|
2831
2831
|
document.execCommand("insertText", false, text);
|
|
2832
2832
|
},
|
|
2833
|
-
children: seed.hasRichSegments ?
|
|
2833
|
+
children: seed.hasRichSegments ? chunkKA7ST7IH_js.renderTextSegments(element, chunkKA7ST7IH_js.DEFAULT_TEXT_COLOR) : seed.initialText
|
|
2834
2834
|
}
|
|
2835
2835
|
);
|
|
2836
2836
|
}
|
|
@@ -3401,8 +3401,8 @@ function DrawingShapeRenderer({
|
|
|
3401
3401
|
}
|
|
3402
3402
|
const drawingW = maxX - minX || 1;
|
|
3403
3403
|
const drawingH = maxY - minY || 1;
|
|
3404
|
-
const shadow =
|
|
3405
|
-
const sw =
|
|
3404
|
+
const shadow = chunkKA7ST7IH_js.styleShadow(style);
|
|
3405
|
+
const sw = chunkKA7ST7IH_js.styleStroke(style);
|
|
3406
3406
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3407
3407
|
"svg",
|
|
3408
3408
|
{
|
|
@@ -3411,7 +3411,7 @@ function DrawingShapeRenderer({
|
|
|
3411
3411
|
preserveAspectRatio: "xMidYMid meet",
|
|
3412
3412
|
"data-testid": "smartart-drawing-shapes",
|
|
3413
3413
|
children: shapes.map((shape, i) => {
|
|
3414
|
-
const fill = shape.fillColor ??
|
|
3414
|
+
const fill = shape.fillColor ?? chunkKA7ST7IH_js.colour(i, palette);
|
|
3415
3415
|
const relX = shape.x - minX;
|
|
3416
3416
|
const relY = shape.y - minY;
|
|
3417
3417
|
const rx = shape.shapeType === "roundRect" ? Math.min(shape.width, shape.height) * 0.1 : 0;
|
|
@@ -3420,10 +3420,10 @@ function DrawingShapeRenderer({
|
|
|
3420
3420
|
const rotation = shape.rotation ? `rotate(${shape.rotation} ${relX + shape.width / 2} ${relY + shape.height / 2})` : void 0;
|
|
3421
3421
|
const strokeCol = shape.strokeColor ?? (sw > 0 ? "rgba(255,255,255,0.3)" : "none");
|
|
3422
3422
|
const strokeW = shape.strokeWidth ?? sw;
|
|
3423
|
-
const fontSize = shape.fontSize ??
|
|
3423
|
+
const fontSize = shape.fontSize ?? chunkKA7ST7IH_js.fitFontSize(shape.text ?? "", shape.width * 0.85, shape.height, 14);
|
|
3424
3424
|
const nodeId = nodes ? chunkVSNXVKJI_js.resolveDrawingShapeNodeId(shape, i, shapes, nodes) : void 0;
|
|
3425
3425
|
const nodeLabel = nodeId ? nodeLabels?.get(nodeId) : void 0;
|
|
3426
|
-
const groupProps = nodeId ?
|
|
3426
|
+
const groupProps = nodeId ? chunkKA7ST7IH_js.smartArtNodeGroupProps(nodeId, shadow, nodeLabel) : { style: { filter: shadow } };
|
|
3427
3427
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { ...groupProps, children: [
|
|
3428
3428
|
nodeLabel ? /* @__PURE__ */ jsxRuntime.jsx("title", { children: nodeLabel }) : null,
|
|
3429
3429
|
isEllipse ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3441,7 +3441,7 @@ function DrawingShapeRenderer({
|
|
|
3441
3441
|
) : isChevron ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3442
3442
|
"polygon",
|
|
3443
3443
|
{
|
|
3444
|
-
points:
|
|
3444
|
+
points: chunkKA7ST7IH_js.chevronPoints(relX, relY, shape.width, shape.height),
|
|
3445
3445
|
fill,
|
|
3446
3446
|
stroke: strokeCol,
|
|
3447
3447
|
strokeWidth: strokeW,
|
|
@@ -3462,11 +3462,11 @@ function DrawingShapeRenderer({
|
|
|
3462
3462
|
}
|
|
3463
3463
|
),
|
|
3464
3464
|
shape.text ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3465
|
-
|
|
3465
|
+
chunkKA7ST7IH_js.SmartArtNodeText,
|
|
3466
3466
|
{
|
|
3467
3467
|
x: relX + shape.width / 2,
|
|
3468
3468
|
y: relY + shape.height / 2,
|
|
3469
|
-
text:
|
|
3469
|
+
text: chunkKA7ST7IH_js.truncate(shape.text, 40),
|
|
3470
3470
|
fill: shape.fontColor ?? "white",
|
|
3471
3471
|
fontSize,
|
|
3472
3472
|
className: "pointer-events-none"
|
|
@@ -3482,7 +3482,7 @@ function DrawingShapeRenderer({
|
|
|
3482
3482
|
function resolveNodeStyle(node, index, palette) {
|
|
3483
3483
|
const style = node.style;
|
|
3484
3484
|
return {
|
|
3485
|
-
fill: style?.fillColor ??
|
|
3485
|
+
fill: style?.fillColor ?? chunkKA7ST7IH_js.colour(index, palette),
|
|
3486
3486
|
fontColor: style?.fontColor ?? "white",
|
|
3487
3487
|
fontWeight: style?.bold ? 700 : void 0,
|
|
3488
3488
|
fontStyle: style?.italic ? "italic" : void 0,
|
|
@@ -3504,8 +3504,8 @@ function ListRenderer({
|
|
|
3504
3504
|
const itemH = (usableH - gap * (nodes.length - 1)) / nodes.length;
|
|
3505
3505
|
const itemW = w - pad * 2;
|
|
3506
3506
|
const rx = Math.min(6, itemH * 0.15);
|
|
3507
|
-
const shadow =
|
|
3508
|
-
const sw =
|
|
3507
|
+
const shadow = chunkKA7ST7IH_js.styleShadow(style);
|
|
3508
|
+
const sw = chunkKA7ST7IH_js.styleStroke(style);
|
|
3509
3509
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3510
3510
|
"svg",
|
|
3511
3511
|
{
|
|
@@ -3515,13 +3515,13 @@ function ListRenderer({
|
|
|
3515
3515
|
"data-testid": "smartart-list",
|
|
3516
3516
|
children: nodes.map((node, i) => {
|
|
3517
3517
|
const y = pad + i * (itemH + gap);
|
|
3518
|
-
const fontSize =
|
|
3518
|
+
const fontSize = chunkKA7ST7IH_js.fitFontSize(node.text, itemW * 0.9, itemH, 12);
|
|
3519
3519
|
const ns = resolveNodeStyle(node, i, palette);
|
|
3520
3520
|
const label = nodeLabels?.get(node.id);
|
|
3521
3521
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3522
3522
|
"g",
|
|
3523
3523
|
{
|
|
3524
|
-
...
|
|
3524
|
+
...chunkKA7ST7IH_js.smartArtNodeGroupProps(node.id, shadow, label),
|
|
3525
3525
|
children: [
|
|
3526
3526
|
label ? /* @__PURE__ */ jsxRuntime.jsx("title", { children: label }) : null,
|
|
3527
3527
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3533,17 +3533,17 @@ function ListRenderer({
|
|
|
3533
3533
|
height: itemH,
|
|
3534
3534
|
rx,
|
|
3535
3535
|
fill: ns.fill,
|
|
3536
|
-
opacity:
|
|
3536
|
+
opacity: chunkKA7ST7IH_js.nodeOpacity(i, nodes.length, style),
|
|
3537
3537
|
stroke: ns.strokeColor ?? (sw > 0 ? "rgba(255,255,255,0.3)" : "none"),
|
|
3538
3538
|
strokeWidth: sw
|
|
3539
3539
|
}
|
|
3540
3540
|
),
|
|
3541
3541
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3542
|
-
|
|
3542
|
+
chunkKA7ST7IH_js.SmartArtNodeText,
|
|
3543
3543
|
{
|
|
3544
3544
|
x: pad + itemW / 2,
|
|
3545
3545
|
y: y + itemH / 2,
|
|
3546
|
-
text:
|
|
3546
|
+
text: chunkKA7ST7IH_js.truncate(node.text, 40),
|
|
3547
3547
|
fill: ns.fontColor,
|
|
3548
3548
|
fontWeight: ns.fontWeight,
|
|
3549
3549
|
fontStyle: ns.fontStyle,
|
|
@@ -3575,8 +3575,8 @@ function ProcessRenderer({
|
|
|
3575
3575
|
const itemW = (usableW - gap * (nodes.length - 1)) / nodes.length;
|
|
3576
3576
|
const itemH = Math.min(h - pad * 2, h * 0.6);
|
|
3577
3577
|
const yMid = h / 2;
|
|
3578
|
-
const shadow =
|
|
3579
|
-
const sw =
|
|
3578
|
+
const shadow = chunkKA7ST7IH_js.styleShadow(style);
|
|
3579
|
+
const sw = chunkKA7ST7IH_js.styleStroke(style);
|
|
3580
3580
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3581
3581
|
"svg",
|
|
3582
3582
|
{
|
|
@@ -3590,13 +3590,13 @@ function ProcessRenderer({
|
|
|
3590
3590
|
const isFirst = i === 0;
|
|
3591
3591
|
const isLast = i === nodes.length - 1;
|
|
3592
3592
|
const points = isFirst ? `${x},${yMid - halfH} ${x + itemW - chevronDepth},${yMid - halfH} ${x + itemW},${yMid} ${x + itemW - chevronDepth},${yMid + halfH} ${x},${yMid + halfH}` : isLast ? `${x},${yMid - halfH} ${x + itemW},${yMid - halfH} ${x + itemW},${yMid + halfH} ${x},${yMid + halfH} ${x + chevronDepth},${yMid}` : `${x},${yMid - halfH} ${x + itemW - chevronDepth},${yMid - halfH} ${x + itemW},${yMid} ${x + itemW - chevronDepth},${yMid + halfH} ${x},${yMid + halfH} ${x + chevronDepth},${yMid}`;
|
|
3593
|
-
const fontSize =
|
|
3593
|
+
const fontSize = chunkKA7ST7IH_js.fitFontSize(node.text, itemW * 0.7, itemH, 12);
|
|
3594
3594
|
const ns = resolveNodeStyle(node, i, palette);
|
|
3595
3595
|
const label = nodeLabels?.get(node.id);
|
|
3596
3596
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3597
3597
|
"g",
|
|
3598
3598
|
{
|
|
3599
|
-
...
|
|
3599
|
+
...chunkKA7ST7IH_js.smartArtNodeGroupProps(node.id, shadow, label),
|
|
3600
3600
|
children: [
|
|
3601
3601
|
label ? /* @__PURE__ */ jsxRuntime.jsx("title", { children: label }) : null,
|
|
3602
3602
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3604,17 +3604,17 @@ function ProcessRenderer({
|
|
|
3604
3604
|
{
|
|
3605
3605
|
points,
|
|
3606
3606
|
fill: ns.fill,
|
|
3607
|
-
opacity:
|
|
3607
|
+
opacity: chunkKA7ST7IH_js.nodeOpacity(i, nodes.length, style),
|
|
3608
3608
|
stroke: ns.strokeColor ?? (sw > 0 ? "rgba(255,255,255,0.3)" : "none"),
|
|
3609
3609
|
strokeWidth: sw
|
|
3610
3610
|
}
|
|
3611
3611
|
),
|
|
3612
3612
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3613
|
-
|
|
3613
|
+
chunkKA7ST7IH_js.SmartArtNodeText,
|
|
3614
3614
|
{
|
|
3615
3615
|
x: x + itemW / 2,
|
|
3616
3616
|
y: yMid,
|
|
3617
|
-
text:
|
|
3617
|
+
text: chunkKA7ST7IH_js.truncate(node.text, 25),
|
|
3618
3618
|
fill: ns.fontColor,
|
|
3619
3619
|
fontWeight: ns.fontWeight,
|
|
3620
3620
|
fontStyle: ns.fontStyle,
|
|
@@ -3644,8 +3644,8 @@ function CycleRenderer({
|
|
|
3644
3644
|
const cy = h / 2;
|
|
3645
3645
|
const radius = size * 0.35;
|
|
3646
3646
|
const nodeR = Math.max(size * 0.06, Math.min(size * 0.12, 200 / nodes.length));
|
|
3647
|
-
const shadow =
|
|
3648
|
-
const sw =
|
|
3647
|
+
const shadow = chunkKA7ST7IH_js.styleShadow(style);
|
|
3648
|
+
const sw = chunkKA7ST7IH_js.styleStroke(style);
|
|
3649
3649
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3650
3650
|
"svg",
|
|
3651
3651
|
{
|
|
@@ -3684,13 +3684,13 @@ function CycleRenderer({
|
|
|
3684
3684
|
const angle = i / nodes.length * Math.PI * 2 - Math.PI / 2;
|
|
3685
3685
|
const nx = cx + radius * Math.cos(angle);
|
|
3686
3686
|
const ny = cy + radius * Math.sin(angle);
|
|
3687
|
-
const fontSize =
|
|
3687
|
+
const fontSize = chunkKA7ST7IH_js.fitFontSize(node.text, nodeR * 1.4, nodeR * 2, 11);
|
|
3688
3688
|
const ns = resolveNodeStyle(node, i, palette);
|
|
3689
3689
|
const label = nodeLabels?.get(node.id);
|
|
3690
3690
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3691
3691
|
"g",
|
|
3692
3692
|
{
|
|
3693
|
-
...
|
|
3693
|
+
...chunkKA7ST7IH_js.smartArtNodeGroupProps(node.id, shadow, label),
|
|
3694
3694
|
children: [
|
|
3695
3695
|
label ? /* @__PURE__ */ jsxRuntime.jsx("title", { children: label }) : null,
|
|
3696
3696
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3700,17 +3700,17 @@ function CycleRenderer({
|
|
|
3700
3700
|
cy: ny,
|
|
3701
3701
|
r: nodeR,
|
|
3702
3702
|
fill: ns.fill,
|
|
3703
|
-
opacity:
|
|
3703
|
+
opacity: chunkKA7ST7IH_js.nodeOpacity(i, nodes.length, style),
|
|
3704
3704
|
stroke: ns.strokeColor ?? (sw > 0 ? "rgba(255,255,255,0.3)" : "none"),
|
|
3705
3705
|
strokeWidth: sw
|
|
3706
3706
|
}
|
|
3707
3707
|
),
|
|
3708
3708
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3709
|
-
|
|
3709
|
+
chunkKA7ST7IH_js.SmartArtNodeText,
|
|
3710
3710
|
{
|
|
3711
3711
|
x: nx,
|
|
3712
3712
|
y: ny,
|
|
3713
|
-
text:
|
|
3713
|
+
text: chunkKA7ST7IH_js.truncate(node.text, 20),
|
|
3714
3714
|
fill: ns.fontColor,
|
|
3715
3715
|
fontWeight: ns.fontWeight,
|
|
3716
3716
|
fontStyle: ns.fontStyle,
|
|
@@ -3745,8 +3745,8 @@ function MatrixRenderer({
|
|
|
3745
3745
|
const cellW = (usableW - gap * (cols - 1)) / cols;
|
|
3746
3746
|
const cellH = (usableH - gap * (rows - 1)) / rows;
|
|
3747
3747
|
const rx = Math.min(6, Math.min(cellW, cellH) * 0.1);
|
|
3748
|
-
const shadow =
|
|
3749
|
-
const sw =
|
|
3748
|
+
const shadow = chunkKA7ST7IH_js.styleShadow(style);
|
|
3749
|
+
const sw = chunkKA7ST7IH_js.styleStroke(style);
|
|
3750
3750
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3751
3751
|
"svg",
|
|
3752
3752
|
{
|
|
@@ -3759,13 +3759,13 @@ function MatrixRenderer({
|
|
|
3759
3759
|
const row = Math.floor(i / cols);
|
|
3760
3760
|
const x = pad + col * (cellW + gap);
|
|
3761
3761
|
const y = pad + row * (cellH + gap);
|
|
3762
|
-
const fontSize =
|
|
3762
|
+
const fontSize = chunkKA7ST7IH_js.fitFontSize(node.text, cellW * 0.85, cellH, 12);
|
|
3763
3763
|
const ns = resolveNodeStyle(node, i, palette);
|
|
3764
3764
|
const label = nodeLabels?.get(node.id);
|
|
3765
3765
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3766
3766
|
"g",
|
|
3767
3767
|
{
|
|
3768
|
-
...
|
|
3768
|
+
...chunkKA7ST7IH_js.smartArtNodeGroupProps(node.id, shadow, label),
|
|
3769
3769
|
children: [
|
|
3770
3770
|
label ? /* @__PURE__ */ jsxRuntime.jsx("title", { children: label }) : null,
|
|
3771
3771
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3777,17 +3777,17 @@ function MatrixRenderer({
|
|
|
3777
3777
|
height: cellH,
|
|
3778
3778
|
rx,
|
|
3779
3779
|
fill: ns.fill,
|
|
3780
|
-
opacity:
|
|
3780
|
+
opacity: chunkKA7ST7IH_js.nodeOpacity(i, nodes.length, style),
|
|
3781
3781
|
stroke: ns.strokeColor ?? (sw > 0 ? "rgba(255,255,255,0.3)" : "none"),
|
|
3782
3782
|
strokeWidth: sw
|
|
3783
3783
|
}
|
|
3784
3784
|
),
|
|
3785
3785
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3786
|
-
|
|
3786
|
+
chunkKA7ST7IH_js.SmartArtNodeText,
|
|
3787
3787
|
{
|
|
3788
3788
|
x: x + cellW / 2,
|
|
3789
3789
|
y: y + cellH / 2,
|
|
3790
|
-
text:
|
|
3790
|
+
text: chunkKA7ST7IH_js.truncate(node.text, 30),
|
|
3791
3791
|
fill: ns.fontColor,
|
|
3792
3792
|
fontWeight: ns.fontWeight ?? 500,
|
|
3793
3793
|
fontStyle: ns.fontStyle,
|
|
@@ -3816,8 +3816,8 @@ function PyramidRenderer({
|
|
|
3816
3816
|
const usableH = h - pad * 2;
|
|
3817
3817
|
const bandH = (usableH - gap * (nodes.length - 1)) / nodes.length;
|
|
3818
3818
|
const maxW = w - pad * 2;
|
|
3819
|
-
const shadow =
|
|
3820
|
-
const sw =
|
|
3819
|
+
const shadow = chunkKA7ST7IH_js.styleShadow(style);
|
|
3820
|
+
const sw = chunkKA7ST7IH_js.styleStroke(style);
|
|
3821
3821
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3822
3822
|
"svg",
|
|
3823
3823
|
{
|
|
@@ -3841,28 +3841,28 @@ function PyramidRenderer({
|
|
|
3841
3841
|
`${bottomRight},${y + bandH}`,
|
|
3842
3842
|
`${bottomLeft},${y + bandH}`
|
|
3843
3843
|
].join(" ");
|
|
3844
|
-
const fontSize =
|
|
3844
|
+
const fontSize = chunkKA7ST7IH_js.fitFontSize(node.text, topW * 0.85, bandH, 12);
|
|
3845
3845
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3846
3846
|
"g",
|
|
3847
3847
|
{
|
|
3848
|
-
...
|
|
3848
|
+
...chunkKA7ST7IH_js.smartArtNodeGroupProps(node.id, shadow),
|
|
3849
3849
|
children: [
|
|
3850
3850
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3851
3851
|
"polygon",
|
|
3852
3852
|
{
|
|
3853
3853
|
points,
|
|
3854
|
-
fill:
|
|
3855
|
-
opacity:
|
|
3854
|
+
fill: chunkKA7ST7IH_js.colour(i, palette),
|
|
3855
|
+
opacity: chunkKA7ST7IH_js.nodeOpacity(i, nodes.length, style),
|
|
3856
3856
|
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
3857
3857
|
strokeWidth: sw
|
|
3858
3858
|
}
|
|
3859
3859
|
),
|
|
3860
3860
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3861
|
-
|
|
3861
|
+
chunkKA7ST7IH_js.SmartArtNodeText,
|
|
3862
3862
|
{
|
|
3863
3863
|
x: w / 2,
|
|
3864
3864
|
y: y + bandH / 2,
|
|
3865
|
-
text:
|
|
3865
|
+
text: chunkKA7ST7IH_js.truncate(node.text, 30),
|
|
3866
3866
|
fill: "white",
|
|
3867
3867
|
fontSize,
|
|
3868
3868
|
className: "pointer-events-none"
|
|
@@ -3884,7 +3884,7 @@ function VennRenderer({
|
|
|
3884
3884
|
}) {
|
|
3885
3885
|
const w = element.width;
|
|
3886
3886
|
const h = element.height;
|
|
3887
|
-
const shadow =
|
|
3887
|
+
const shadow = chunkKA7ST7IH_js.styleShadow(style);
|
|
3888
3888
|
if (nodes.length <= 4) {
|
|
3889
3889
|
const cx = w / 2;
|
|
3890
3890
|
const cy2 = h / 2;
|
|
@@ -3901,19 +3901,19 @@ function VennRenderer({
|
|
|
3901
3901
|
const angle = i / nodes.length * Math.PI * 2 - Math.PI / 2;
|
|
3902
3902
|
const nx = cx + spread * Math.cos(angle);
|
|
3903
3903
|
const ny = cy2 + spread * Math.sin(angle);
|
|
3904
|
-
const fontSize =
|
|
3904
|
+
const fontSize = chunkKA7ST7IH_js.fitFontSize(node.text, r2 * 1.2, r2 * 2, 11);
|
|
3905
3905
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3906
3906
|
"g",
|
|
3907
3907
|
{
|
|
3908
|
-
...
|
|
3908
|
+
...chunkKA7ST7IH_js.smartArtNodeGroupProps(node.id, shadow),
|
|
3909
3909
|
children: [
|
|
3910
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: nx, cy: ny, r: r2, fill:
|
|
3910
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: nx, cy: ny, r: r2, fill: chunkKA7ST7IH_js.colour(i, palette), opacity: 0.35 }),
|
|
3911
3911
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3912
|
-
|
|
3912
|
+
chunkKA7ST7IH_js.SmartArtNodeText,
|
|
3913
3913
|
{
|
|
3914
3914
|
x: nx,
|
|
3915
3915
|
y: ny,
|
|
3916
|
-
text:
|
|
3916
|
+
text: chunkKA7ST7IH_js.truncate(node.text, 20),
|
|
3917
3917
|
fill: "white",
|
|
3918
3918
|
fontSize,
|
|
3919
3919
|
fontWeight: "bold",
|
|
@@ -3942,19 +3942,19 @@ function VennRenderer({
|
|
|
3942
3942
|
"data-testid": "smartart-venn",
|
|
3943
3943
|
children: nodes.map((node, i) => {
|
|
3944
3944
|
const nx = offsetX + i * (r * 2 - overlap);
|
|
3945
|
-
const fontSize =
|
|
3945
|
+
const fontSize = chunkKA7ST7IH_js.fitFontSize(node.text, r * 1.2, r * 2, 10);
|
|
3946
3946
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3947
3947
|
"g",
|
|
3948
3948
|
{
|
|
3949
|
-
...
|
|
3949
|
+
...chunkKA7ST7IH_js.smartArtNodeGroupProps(node.id, shadow),
|
|
3950
3950
|
children: [
|
|
3951
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: nx, cy, r, fill:
|
|
3951
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: nx, cy, r, fill: chunkKA7ST7IH_js.colour(i, palette), opacity: 0.35 }),
|
|
3952
3952
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3953
|
-
|
|
3953
|
+
chunkKA7ST7IH_js.SmartArtNodeText,
|
|
3954
3954
|
{
|
|
3955
3955
|
x: nx,
|
|
3956
3956
|
y: cy,
|
|
3957
|
-
text:
|
|
3957
|
+
text: chunkKA7ST7IH_js.truncate(node.text, 20),
|
|
3958
3958
|
fill: "white",
|
|
3959
3959
|
fontSize,
|
|
3960
3960
|
fontWeight: "bold",
|
|
@@ -3980,7 +3980,7 @@ function FunnelRenderer({
|
|
|
3980
3980
|
const pad = 8;
|
|
3981
3981
|
const usableW = w - pad * 2;
|
|
3982
3982
|
const stageH = (h - pad * 2) / nodes.length;
|
|
3983
|
-
const shadow =
|
|
3983
|
+
const shadow = chunkKA7ST7IH_js.styleShadow(style);
|
|
3984
3984
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3985
3985
|
"svg",
|
|
3986
3986
|
{
|
|
@@ -4002,26 +4002,26 @@ function FunnelRenderer({
|
|
|
4002
4002
|
`${bottomRight},${y + stageH}`,
|
|
4003
4003
|
`${bottomLeft},${y + stageH}`
|
|
4004
4004
|
].join(" ");
|
|
4005
|
-
const fontSize =
|
|
4005
|
+
const fontSize = chunkKA7ST7IH_js.fitFontSize(node.text, topWidth * 0.85, stageH, 11);
|
|
4006
4006
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4007
4007
|
"g",
|
|
4008
4008
|
{
|
|
4009
|
-
...
|
|
4009
|
+
...chunkKA7ST7IH_js.smartArtNodeGroupProps(node.id, shadow),
|
|
4010
4010
|
children: [
|
|
4011
4011
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4012
4012
|
"polygon",
|
|
4013
4013
|
{
|
|
4014
4014
|
points,
|
|
4015
|
-
fill:
|
|
4016
|
-
opacity:
|
|
4015
|
+
fill: chunkKA7ST7IH_js.colour(i, palette),
|
|
4016
|
+
opacity: chunkKA7ST7IH_js.nodeOpacity(i, nodes.length, style)
|
|
4017
4017
|
}
|
|
4018
4018
|
),
|
|
4019
4019
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4020
|
-
|
|
4020
|
+
chunkKA7ST7IH_js.SmartArtNodeText,
|
|
4021
4021
|
{
|
|
4022
4022
|
x: w / 2,
|
|
4023
4023
|
y: y + stageH / 2,
|
|
4024
|
-
text:
|
|
4024
|
+
text: chunkKA7ST7IH_js.truncate(node.text, 30),
|
|
4025
4025
|
fill: "white",
|
|
4026
4026
|
fontSize,
|
|
4027
4027
|
className: "pointer-events-none"
|
|
@@ -4048,7 +4048,7 @@ function TargetRenderer({
|
|
|
4048
4048
|
const maxR = Math.min(cx - 8, cy - 8);
|
|
4049
4049
|
const fontSize = Math.max(7, Math.min(10, maxR / (nodes.length + 1)));
|
|
4050
4050
|
const labelX = cx + maxR + 8;
|
|
4051
|
-
const shadow =
|
|
4051
|
+
const shadow = chunkKA7ST7IH_js.styleShadow(style);
|
|
4052
4052
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4053
4053
|
"svg",
|
|
4054
4054
|
{
|
|
@@ -4061,7 +4061,7 @@ function TargetRenderer({
|
|
|
4061
4061
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4062
4062
|
"g",
|
|
4063
4063
|
{
|
|
4064
|
-
...
|
|
4064
|
+
...chunkKA7ST7IH_js.smartArtNodeGroupProps(node.id, shadow),
|
|
4065
4065
|
children: [
|
|
4066
4066
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4067
4067
|
"circle",
|
|
@@ -4069,8 +4069,8 @@ function TargetRenderer({
|
|
|
4069
4069
|
cx,
|
|
4070
4070
|
cy,
|
|
4071
4071
|
r: Math.max(r, 4),
|
|
4072
|
-
fill:
|
|
4073
|
-
opacity:
|
|
4072
|
+
fill: chunkKA7ST7IH_js.colour(i, palette),
|
|
4073
|
+
opacity: chunkKA7ST7IH_js.nodeOpacity(i, nodes.length, style)
|
|
4074
4074
|
}
|
|
4075
4075
|
),
|
|
4076
4076
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4080,7 +4080,7 @@ function TargetRenderer({
|
|
|
4080
4080
|
y1: cy,
|
|
4081
4081
|
x2: labelX - 2,
|
|
4082
4082
|
y2: 8 + i * (fontSize + 6),
|
|
4083
|
-
stroke:
|
|
4083
|
+
stroke: chunkKA7ST7IH_js.colour(i, palette),
|
|
4084
4084
|
strokeWidth: 1,
|
|
4085
4085
|
opacity: 0.6
|
|
4086
4086
|
}
|
|
@@ -4092,10 +4092,10 @@ function TargetRenderer({
|
|
|
4092
4092
|
y: 8 + i * (fontSize + 6) + fontSize / 2,
|
|
4093
4093
|
textAnchor: "start",
|
|
4094
4094
|
dominantBaseline: "central",
|
|
4095
|
-
fill:
|
|
4095
|
+
fill: chunkKA7ST7IH_js.colour(i, palette),
|
|
4096
4096
|
fontSize,
|
|
4097
4097
|
className: "pointer-events-none",
|
|
4098
|
-
children:
|
|
4098
|
+
children: chunkKA7ST7IH_js.truncate(node.text, 30)
|
|
4099
4099
|
}
|
|
4100
4100
|
)
|
|
4101
4101
|
]
|
|
@@ -4112,12 +4112,12 @@ function HierarchyRenderer({
|
|
|
4112
4112
|
palette,
|
|
4113
4113
|
style
|
|
4114
4114
|
}) {
|
|
4115
|
-
const roots =
|
|
4115
|
+
const roots = chunkKA7ST7IH_js.buildTree(nodes);
|
|
4116
4116
|
if (roots.length === 0) {
|
|
4117
4117
|
return /* @__PURE__ */ jsxRuntime.jsx(ListRenderer, { element, nodes, palette, style });
|
|
4118
4118
|
}
|
|
4119
|
-
const totalLeaves = roots.reduce((s, r) => s +
|
|
4120
|
-
const depth = Math.max(...roots.map(
|
|
4119
|
+
const totalLeaves = roots.reduce((s, r) => s + chunkKA7ST7IH_js.treeWidth(r), 0);
|
|
4120
|
+
const depth = Math.max(...roots.map(chunkKA7ST7IH_js.treeDepth));
|
|
4121
4121
|
const svgW = element.width;
|
|
4122
4122
|
const svgH = element.height;
|
|
4123
4123
|
const cellW = svgW / totalLeaves;
|
|
@@ -4125,24 +4125,24 @@ function HierarchyRenderer({
|
|
|
4125
4125
|
const boxW = Math.min(cellW * 0.8, 140);
|
|
4126
4126
|
const boxH = Math.min(cellH * 0.4, 36);
|
|
4127
4127
|
const rx = Math.min(6, boxH * 0.15);
|
|
4128
|
-
const shadow =
|
|
4129
|
-
const sw =
|
|
4128
|
+
const shadow = chunkKA7ST7IH_js.styleShadow(style);
|
|
4129
|
+
const sw = chunkKA7ST7IH_js.styleStroke(style);
|
|
4130
4130
|
const elements = [];
|
|
4131
4131
|
let colourIdx = 0;
|
|
4132
4132
|
function renderTreeNode(t, xOffset, level) {
|
|
4133
|
-
const w =
|
|
4133
|
+
const w = chunkKA7ST7IH_js.treeWidth(t);
|
|
4134
4134
|
const nodeCx = (xOffset + w / 2) * cellW;
|
|
4135
4135
|
const nodeCy = level * cellH + cellH / 2;
|
|
4136
4136
|
const ci = colourIdx++;
|
|
4137
|
-
const fontSize =
|
|
4137
|
+
const fontSize = chunkKA7ST7IH_js.fitFontSize(t.node.text, boxW * 0.9, boxH, 11);
|
|
4138
4138
|
for (const child of t.children) {
|
|
4139
|
-
const childW =
|
|
4139
|
+
const childW = chunkKA7ST7IH_js.treeWidth(child);
|
|
4140
4140
|
let childOffset2 = xOffset;
|
|
4141
4141
|
for (const c of t.children) {
|
|
4142
4142
|
if (c === child) {
|
|
4143
4143
|
break;
|
|
4144
4144
|
}
|
|
4145
|
-
childOffset2 +=
|
|
4145
|
+
childOffset2 += chunkKA7ST7IH_js.treeWidth(c);
|
|
4146
4146
|
}
|
|
4147
4147
|
const childCx = (childOffset2 + childW / 2) * cellW;
|
|
4148
4148
|
const childCy = (level + 1) * cellH + cellH / 2;
|
|
@@ -4165,7 +4165,7 @@ function HierarchyRenderer({
|
|
|
4165
4165
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4166
4166
|
"g",
|
|
4167
4167
|
{
|
|
4168
|
-
...
|
|
4168
|
+
...chunkKA7ST7IH_js.smartArtNodeGroupProps(t.node.id, shadow),
|
|
4169
4169
|
children: [
|
|
4170
4170
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4171
4171
|
"rect",
|
|
@@ -4175,18 +4175,18 @@ function HierarchyRenderer({
|
|
|
4175
4175
|
width: boxW,
|
|
4176
4176
|
height: boxH,
|
|
4177
4177
|
rx,
|
|
4178
|
-
fill:
|
|
4179
|
-
opacity:
|
|
4178
|
+
fill: chunkKA7ST7IH_js.colour(ci, palette),
|
|
4179
|
+
opacity: chunkKA7ST7IH_js.nodeOpacity(ci, nodes.length, style),
|
|
4180
4180
|
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
4181
4181
|
strokeWidth: sw
|
|
4182
4182
|
}
|
|
4183
4183
|
),
|
|
4184
4184
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4185
|
-
|
|
4185
|
+
chunkKA7ST7IH_js.SmartArtNodeText,
|
|
4186
4186
|
{
|
|
4187
4187
|
x: nodeCx,
|
|
4188
4188
|
y: nodeCy,
|
|
4189
|
-
text:
|
|
4189
|
+
text: chunkKA7ST7IH_js.truncate(t.node.text, 40),
|
|
4190
4190
|
fill: "white",
|
|
4191
4191
|
fontSize,
|
|
4192
4192
|
className: "pointer-events-none"
|
|
@@ -4200,7 +4200,7 @@ function HierarchyRenderer({
|
|
|
4200
4200
|
let childOffset = xOffset;
|
|
4201
4201
|
for (const child of t.children) {
|
|
4202
4202
|
renderTreeNode(child, childOffset, level + 1);
|
|
4203
|
-
childOffset +=
|
|
4203
|
+
childOffset += chunkKA7ST7IH_js.treeWidth(child);
|
|
4204
4204
|
}
|
|
4205
4205
|
return w;
|
|
4206
4206
|
}
|
|
@@ -4235,7 +4235,7 @@ function GearRenderer({
|
|
|
4235
4235
|
const gearR = Math.min(spacing * 0.4, h * 0.35);
|
|
4236
4236
|
const innerR = gearR * 0.7;
|
|
4237
4237
|
const teethCount = 8;
|
|
4238
|
-
const shadow =
|
|
4238
|
+
const shadow = chunkKA7ST7IH_js.styleShadow(style);
|
|
4239
4239
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4240
4240
|
"svg",
|
|
4241
4241
|
{
|
|
@@ -4247,27 +4247,27 @@ function GearRenderer({
|
|
|
4247
4247
|
gearNodes.map((node, i) => {
|
|
4248
4248
|
const gx = spacing * (i + 1);
|
|
4249
4249
|
const gy = h / 2 + (i % 2 === 0 ? 0 : gearR * 0.35);
|
|
4250
|
-
const fontSize =
|
|
4250
|
+
const fontSize = chunkKA7ST7IH_js.fitFontSize(node.text, innerR * 1.2, innerR * 2, 11);
|
|
4251
4251
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4252
4252
|
"g",
|
|
4253
4253
|
{
|
|
4254
|
-
...
|
|
4254
|
+
...chunkKA7ST7IH_js.smartArtNodeGroupProps(node.id, shadow),
|
|
4255
4255
|
children: [
|
|
4256
4256
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4257
4257
|
"path",
|
|
4258
4258
|
{
|
|
4259
|
-
d:
|
|
4260
|
-
fill:
|
|
4261
|
-
opacity:
|
|
4259
|
+
d: chunkKA7ST7IH_js.gearPath(gx, gy, gearR, innerR, teethCount),
|
|
4260
|
+
fill: chunkKA7ST7IH_js.colour(i, palette),
|
|
4261
|
+
opacity: chunkKA7ST7IH_js.nodeOpacity(i, nodes.length, style)
|
|
4262
4262
|
}
|
|
4263
4263
|
),
|
|
4264
4264
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: gx, cy: gy, r: innerR * 0.5, fill: "white", opacity: 0.25 }),
|
|
4265
4265
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4266
|
-
|
|
4266
|
+
chunkKA7ST7IH_js.SmartArtNodeText,
|
|
4267
4267
|
{
|
|
4268
4268
|
x: gx,
|
|
4269
4269
|
y: gy,
|
|
4270
|
-
text:
|
|
4270
|
+
text: chunkKA7ST7IH_js.truncate(node.text, 20),
|
|
4271
4271
|
fill: "white",
|
|
4272
4272
|
fontSize,
|
|
4273
4273
|
fontWeight: "bold",
|
|
@@ -4289,8 +4289,8 @@ function GearRenderer({
|
|
|
4289
4289
|
cx: lx,
|
|
4290
4290
|
cy: ly,
|
|
4291
4291
|
r: 3,
|
|
4292
|
-
fill:
|
|
4293
|
-
opacity:
|
|
4292
|
+
fill: chunkKA7ST7IH_js.colour(gearCount + i, palette),
|
|
4293
|
+
opacity: chunkKA7ST7IH_js.nodeOpacity(gearCount + i, nodes.length, style)
|
|
4294
4294
|
}
|
|
4295
4295
|
),
|
|
4296
4296
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4300,10 +4300,10 @@ function GearRenderer({
|
|
|
4300
4300
|
y: ly,
|
|
4301
4301
|
textAnchor: "start",
|
|
4302
4302
|
dominantBaseline: "central",
|
|
4303
|
-
fill:
|
|
4303
|
+
fill: chunkKA7ST7IH_js.colour(gearCount + i, palette),
|
|
4304
4304
|
fontSize: 10,
|
|
4305
4305
|
className: "pointer-events-none",
|
|
4306
|
-
children:
|
|
4306
|
+
children: chunkKA7ST7IH_js.truncate(node.text, 30)
|
|
4307
4307
|
}
|
|
4308
4308
|
)
|
|
4309
4309
|
] }, `${element.id}-gear-extra-${node.id}-${i}`);
|
|
@@ -4327,7 +4327,7 @@ function TimelineRenderer({
|
|
|
4327
4327
|
const lineLen = lineEndX - lineStartX;
|
|
4328
4328
|
const dotR = Math.max(4, Math.min(8, lineLen / (nodes.length * 4)));
|
|
4329
4329
|
const labelOffset = Math.min(h * 0.28, 40);
|
|
4330
|
-
const shadow =
|
|
4330
|
+
const shadow = chunkKA7ST7IH_js.styleShadow(style);
|
|
4331
4331
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4332
4332
|
"svg",
|
|
4333
4333
|
{
|
|
@@ -4349,11 +4349,11 @@ function TimelineRenderer({
|
|
|
4349
4349
|
const above = i % 2 === 0;
|
|
4350
4350
|
const textY = above ? lineY - labelOffset : lineY + labelOffset;
|
|
4351
4351
|
const stemEndY = above ? lineY - dotR - 2 : lineY + dotR + 2;
|
|
4352
|
-
const fontSize =
|
|
4352
|
+
const fontSize = chunkKA7ST7IH_js.fitFontSize(node.text, lineLen / nodes.length * 0.9, labelOffset, 10);
|
|
4353
4353
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4354
4354
|
"g",
|
|
4355
4355
|
{
|
|
4356
|
-
...
|
|
4356
|
+
...chunkKA7ST7IH_js.smartArtNodeGroupProps(node.id, shadow),
|
|
4357
4357
|
children: [
|
|
4358
4358
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4359
4359
|
"line",
|
|
@@ -4362,7 +4362,7 @@ function TimelineRenderer({
|
|
|
4362
4362
|
y1: stemEndY,
|
|
4363
4363
|
x2: x,
|
|
4364
4364
|
y2: textY + (above ? fontSize : -fontSize),
|
|
4365
|
-
stroke:
|
|
4365
|
+
stroke: chunkKA7ST7IH_js.colour(i, palette),
|
|
4366
4366
|
strokeWidth: 1,
|
|
4367
4367
|
opacity: 0.5
|
|
4368
4368
|
}
|
|
@@ -4373,17 +4373,17 @@ function TimelineRenderer({
|
|
|
4373
4373
|
cx: x,
|
|
4374
4374
|
cy: lineY,
|
|
4375
4375
|
r: dotR,
|
|
4376
|
-
fill:
|
|
4377
|
-
opacity:
|
|
4376
|
+
fill: chunkKA7ST7IH_js.colour(i, palette),
|
|
4377
|
+
opacity: chunkKA7ST7IH_js.nodeOpacity(i, nodes.length, style)
|
|
4378
4378
|
}
|
|
4379
4379
|
),
|
|
4380
4380
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4381
|
-
|
|
4381
|
+
chunkKA7ST7IH_js.SmartArtNodeText,
|
|
4382
4382
|
{
|
|
4383
|
-
text:
|
|
4383
|
+
text: chunkKA7ST7IH_js.truncate(node.text, 20) ?? "",
|
|
4384
4384
|
x,
|
|
4385
4385
|
y: textY,
|
|
4386
|
-
fill:
|
|
4386
|
+
fill: chunkKA7ST7IH_js.colour(i, palette),
|
|
4387
4387
|
fontSize,
|
|
4388
4388
|
anchor: above ? "bottom" : "top",
|
|
4389
4389
|
className: "pointer-events-none"
|
|
@@ -4416,8 +4416,8 @@ function BendingProcessRenderer({
|
|
|
4416
4416
|
const boxH = Math.min(cellH * 0.6, 32);
|
|
4417
4417
|
const rx = Math.min(5, boxH * 0.15);
|
|
4418
4418
|
const arrowSize = 6;
|
|
4419
|
-
const shadow =
|
|
4420
|
-
const sw =
|
|
4419
|
+
const shadow = chunkKA7ST7IH_js.styleShadow(style);
|
|
4420
|
+
const sw = chunkKA7ST7IH_js.styleStroke(style);
|
|
4421
4421
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4422
4422
|
"svg",
|
|
4423
4423
|
{
|
|
@@ -4431,7 +4431,7 @@ function BendingProcessRenderer({
|
|
|
4431
4431
|
const col = row % 2 === 0 ? colInRow : COLS - 1 - colInRow;
|
|
4432
4432
|
const nodeCx = padX + col * cellW + cellW / 2;
|
|
4433
4433
|
const nodeCy = padY + row * cellH + cellH / 2;
|
|
4434
|
-
const fontSize =
|
|
4434
|
+
const fontSize = chunkKA7ST7IH_js.fitFontSize(node.text, boxW * 0.85, boxH, 10);
|
|
4435
4435
|
let arrow = null;
|
|
4436
4436
|
if (i < nodes.length - 1) {
|
|
4437
4437
|
const nextRow = Math.floor((i + 1) / COLS);
|
|
@@ -4491,7 +4491,7 @@ function BendingProcessRenderer({
|
|
|
4491
4491
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4492
4492
|
"g",
|
|
4493
4493
|
{
|
|
4494
|
-
...
|
|
4494
|
+
...chunkKA7ST7IH_js.smartArtNodeGroupProps(node.id, shadow),
|
|
4495
4495
|
children: [
|
|
4496
4496
|
arrow,
|
|
4497
4497
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4502,18 +4502,18 @@ function BendingProcessRenderer({
|
|
|
4502
4502
|
width: boxW,
|
|
4503
4503
|
height: boxH,
|
|
4504
4504
|
rx,
|
|
4505
|
-
fill:
|
|
4506
|
-
opacity:
|
|
4505
|
+
fill: chunkKA7ST7IH_js.colour(i, palette),
|
|
4506
|
+
opacity: chunkKA7ST7IH_js.nodeOpacity(i, nodes.length, style),
|
|
4507
4507
|
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
4508
4508
|
strokeWidth: sw
|
|
4509
4509
|
}
|
|
4510
4510
|
),
|
|
4511
4511
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4512
|
-
|
|
4512
|
+
chunkKA7ST7IH_js.SmartArtNodeText,
|
|
4513
4513
|
{
|
|
4514
4514
|
x: nodeCx,
|
|
4515
4515
|
y: nodeCy,
|
|
4516
|
-
text:
|
|
4516
|
+
text: chunkKA7ST7IH_js.truncate(node.text, 20),
|
|
4517
4517
|
fill: "white",
|
|
4518
4518
|
fontSize,
|
|
4519
4519
|
className: "pointer-events-none"
|
|
@@ -4554,8 +4554,8 @@ function SmartArtRendererImpl({
|
|
|
4554
4554
|
}
|
|
4555
4555
|
);
|
|
4556
4556
|
}
|
|
4557
|
-
const palette =
|
|
4558
|
-
const style =
|
|
4557
|
+
const palette = chunkKA7ST7IH_js.resolvePalette(element);
|
|
4558
|
+
const style = chunkKA7ST7IH_js.resolveStyle(element);
|
|
4559
4559
|
const a11y = chunkVSNXVKJI_js.buildSmartArtA11y(smartArtData);
|
|
4560
4560
|
const nodeLabels = new Map(a11y.nodes.map((n) => [n.id, n.label]));
|
|
4561
4561
|
const editable = canEdit && Boolean(onUpdateElement);
|
|
@@ -4568,7 +4568,7 @@ function SmartArtRendererImpl({
|
|
|
4568
4568
|
const reflowed = chunkVSNXVKJI_js.rebuildDrawingShapesIfCleared(
|
|
4569
4569
|
updated,
|
|
4570
4570
|
smartArtData.layout,
|
|
4571
|
-
|
|
4571
|
+
chunkKA7ST7IH_js.resolveSmartArtDataPalette(updated),
|
|
4572
4572
|
style,
|
|
4573
4573
|
element.id,
|
|
4574
4574
|
box
|
|
@@ -4585,7 +4585,7 @@ function SmartArtRendererImpl({
|
|
|
4585
4585
|
const reflowed = chunkVSNXVKJI_js.rebuildDrawingShapesIfCleared(
|
|
4586
4586
|
next,
|
|
4587
4587
|
smartArtData.layout,
|
|
4588
|
-
|
|
4588
|
+
chunkKA7ST7IH_js.resolveSmartArtDataPalette(next),
|
|
4589
4589
|
style,
|
|
4590
4590
|
element.id,
|
|
4591
4591
|
box
|
|
@@ -4608,7 +4608,7 @@ function SmartArtRendererImpl({
|
|
|
4608
4608
|
);
|
|
4609
4609
|
} else {
|
|
4610
4610
|
const namedLayout = smartArtData.layout;
|
|
4611
|
-
const layoutType = namedLayout ?
|
|
4611
|
+
const layoutType = namedLayout ? chunkKA7ST7IH_js.layoutToCategory(namedLayout) : (smartArtData.resolvedLayoutType ?? smartArtData.layoutType ?? "list").toLowerCase();
|
|
4612
4612
|
content = renderLayout(layoutType, element, nodes, palette, style, nodeLabels);
|
|
4613
4613
|
}
|
|
4614
4614
|
const body = editable ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4622,7 +4622,7 @@ function SmartArtRendererImpl({
|
|
|
4622
4622
|
children: content
|
|
4623
4623
|
}
|
|
4624
4624
|
) : content;
|
|
4625
|
-
return
|
|
4625
|
+
return chunkKA7ST7IH_js.wrapChrome(chrome, body, className, { role: a11y.role, label: a11y.label });
|
|
4626
4626
|
}
|
|
4627
4627
|
function renderLayout(layoutType, element, nodes, palette, style, nodeLabels) {
|
|
4628
4628
|
if (layoutType.includes("hierarchy") || layoutType.includes("org")) {
|
|
@@ -4686,34 +4686,34 @@ function renderLayout(layoutType, element, nodes, palette, style, nodeLabels) {
|
|
|
4686
4686
|
return /* @__PURE__ */ jsxRuntime.jsx(BendingProcessRenderer, { element, nodes, palette, style });
|
|
4687
4687
|
}
|
|
4688
4688
|
if (layoutType.includes("stepdown")) {
|
|
4689
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children:
|
|
4689
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: chunkKA7ST7IH_js.renderStepDownProcess(element, nodes, palette, style) });
|
|
4690
4690
|
}
|
|
4691
4691
|
if (layoutType.includes("alternatingflow") || layoutType.includes("alternating")) {
|
|
4692
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children:
|
|
4692
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: chunkKA7ST7IH_js.renderAlternatingFlow(element, nodes, palette, style) });
|
|
4693
4693
|
}
|
|
4694
4694
|
if (layoutType.includes("descending")) {
|
|
4695
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children:
|
|
4695
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: chunkKA7ST7IH_js.renderDescendingProcess(element, nodes, palette, style) });
|
|
4696
4696
|
}
|
|
4697
4697
|
if (layoutType.includes("pictureaccent")) {
|
|
4698
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children:
|
|
4698
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: chunkKA7ST7IH_js.renderPictureAccentList(element, nodes, palette, style) });
|
|
4699
4699
|
}
|
|
4700
4700
|
if (layoutType.includes("verticalblock")) {
|
|
4701
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children:
|
|
4701
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: chunkKA7ST7IH_js.renderVerticalBlockList(element, nodes, palette, style) });
|
|
4702
4702
|
}
|
|
4703
4703
|
if (layoutType.includes("grouped")) {
|
|
4704
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children:
|
|
4704
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: chunkKA7ST7IH_js.renderGroupedList(element, nodes, palette, style) });
|
|
4705
4705
|
}
|
|
4706
4706
|
if (layoutType.includes("pyramidlist")) {
|
|
4707
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children:
|
|
4707
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: chunkKA7ST7IH_js.renderPyramidList(element, nodes, palette, style) });
|
|
4708
4708
|
}
|
|
4709
4709
|
if (layoutType.includes("horizontalpicture")) {
|
|
4710
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children:
|
|
4710
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: chunkKA7ST7IH_js.renderHorizontalPictureList(element, nodes, palette, style) });
|
|
4711
4711
|
}
|
|
4712
4712
|
if (layoutType.includes("accentprocess")) {
|
|
4713
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children:
|
|
4713
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: chunkKA7ST7IH_js.renderAccentProcess(element, nodes, palette, style) });
|
|
4714
4714
|
}
|
|
4715
4715
|
if (layoutType.includes("verticalchevron")) {
|
|
4716
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children:
|
|
4716
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: chunkKA7ST7IH_js.renderVerticalChevronList(element, nodes, palette, style) });
|
|
4717
4717
|
}
|
|
4718
4718
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4719
4719
|
ListRenderer,
|
|
@@ -4812,8 +4812,8 @@ function SmartArt3DRenderer({
|
|
|
4812
4812
|
if (nodes.length === 0) {
|
|
4813
4813
|
return null;
|
|
4814
4814
|
}
|
|
4815
|
-
const palette =
|
|
4816
|
-
const style =
|
|
4815
|
+
const palette = chunkKA7ST7IH_js.resolvePalette(element);
|
|
4816
|
+
const style = chunkKA7ST7IH_js.resolveStyle(element);
|
|
4817
4817
|
const layoutResult = chunkVSNXVKJI_js.computeSmartArtLayout(
|
|
4818
4818
|
nodes,
|
|
4819
4819
|
{ width: element.width, height: element.height },
|
|
@@ -4933,13 +4933,13 @@ function getSegmentTspanProps(segment, element, fallbackColor) {
|
|
|
4933
4933
|
if (s.strikethrough) {
|
|
4934
4934
|
decos.push("line-through");
|
|
4935
4935
|
}
|
|
4936
|
-
const fill = s.hyperlink ? chunkVSNXVKJI_js.normalizeHexColor(s.color || element.textStyle?.color,
|
|
4936
|
+
const fill = s.hyperlink ? chunkVSNXVKJI_js.normalizeHexColor(s.color || element.textStyle?.color, chunkKA7ST7IH_js.HYPERLINK_COLOR) : chunkVSNXVKJI_js.normalizeHexColor(s.color || element.textStyle?.color, fallbackColor);
|
|
4937
4937
|
return {
|
|
4938
4938
|
fill,
|
|
4939
|
-
fontSize: s.fontSize ?? element.textStyle?.fontSize ??
|
|
4939
|
+
fontSize: s.fontSize ?? element.textStyle?.fontSize ?? chunkKA7ST7IH_js.DEFAULT_TEXT_FONT_SIZE,
|
|
4940
4940
|
fontWeight: s.bold ? 700 : 400,
|
|
4941
4941
|
fontStyle: s.italic ? "italic" : void 0,
|
|
4942
|
-
fontFamily: s.fontFamily || element.textStyle?.fontFamily ? chunkAD3EAEY6_js.getSubstituteFontFamily(s.fontFamily || element.textStyle?.fontFamily || "") :
|
|
4942
|
+
fontFamily: s.fontFamily || element.textStyle?.fontFamily ? chunkAD3EAEY6_js.getSubstituteFontFamily(s.fontFamily || element.textStyle?.fontFamily || "") : chunkKA7ST7IH_js.DEFAULT_FONT_FAMILY,
|
|
4943
4943
|
textDecoration: decos.length > 0 ? decos.join(" ") : void 0
|
|
4944
4944
|
};
|
|
4945
4945
|
}
|
|
@@ -4968,8 +4968,8 @@ function WarpedText({
|
|
|
4968
4968
|
const warpAdj2 = textEl.textStyle?.textWarpAdj2;
|
|
4969
4969
|
const align = textEl.textStyle?.align ?? "center";
|
|
4970
4970
|
const { startOffset, textAnchor } = getAlignmentProps(align);
|
|
4971
|
-
const baseFontSize = textEl.textStyle?.fontSize ??
|
|
4972
|
-
const baseFontFamily = textEl.textStyle?.fontFamily ? chunkAD3EAEY6_js.getSubstituteFontFamily(textEl.textStyle.fontFamily) :
|
|
4971
|
+
const baseFontSize = textEl.textStyle?.fontSize ?? chunkKA7ST7IH_js.DEFAULT_TEXT_FONT_SIZE;
|
|
4972
|
+
const baseFontFamily = textEl.textStyle?.fontFamily ? chunkAD3EAEY6_js.getSubstituteFontFamily(textEl.textStyle.fontFamily) : chunkKA7ST7IH_js.DEFAULT_FONT_FAMILY;
|
|
4973
4973
|
const baseFill = chunkVSNXVKJI_js.normalizeHexColor(textEl.textStyle?.color, fallbackColor);
|
|
4974
4974
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4975
4975
|
"svg",
|
|
@@ -5098,7 +5098,7 @@ function renderTextElementBody(options) {
|
|
|
5098
5098
|
const useSvgWarp = chunkVSNXVKJI_js.shouldUseSvgWarp(
|
|
5099
5099
|
chunkAD3EAEY6_js.hasTextProperties(el) ? el.textStyle?.textWarpPreset : void 0
|
|
5100
5100
|
);
|
|
5101
|
-
const scene3dStyle = chunkAD3EAEY6_js.hasTextProperties(el) ?
|
|
5101
|
+
const scene3dStyle = chunkAD3EAEY6_js.hasTextProperties(el) ? chunkKA7ST7IH_js.buildTextBody3DSceneStyle(el.textStyle) : void 0;
|
|
5102
5102
|
const composedTransform = [chunkVSNXVKJI_js.getTextCompensationTransform(el), scene3dStyle?.transform].filter(Boolean).join(" ") || void 0;
|
|
5103
5103
|
const transformStyle = {
|
|
5104
5104
|
transform: composedTransform,
|
|
@@ -5115,18 +5115,18 @@ function renderTextElementBody(options) {
|
|
|
5115
5115
|
shouldRenderText && (useSvgWarp ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5116
5116
|
"div",
|
|
5117
5117
|
{
|
|
5118
|
-
className:
|
|
5118
|
+
className: chunkKA7ST7IH_js.cn(
|
|
5119
5119
|
"relative z-10 w-full h-full",
|
|
5120
5120
|
onHyperlinkClick ? "" : "pointer-events-none"
|
|
5121
5121
|
),
|
|
5122
|
-
style: { ...
|
|
5122
|
+
style: { ...chunkKA7ST7IH_js.getTextLayoutStyle(el), ...transformStyle },
|
|
5123
5123
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5124
5124
|
WarpedText,
|
|
5125
5125
|
{
|
|
5126
5126
|
element: el,
|
|
5127
5127
|
width: el.width,
|
|
5128
5128
|
height: el.height,
|
|
5129
|
-
fallbackColor:
|
|
5129
|
+
fallbackColor: chunkKA7ST7IH_js.DEFAULT_TEXT_COLOR,
|
|
5130
5130
|
findHighlights: findHl,
|
|
5131
5131
|
fieldContext
|
|
5132
5132
|
}
|
|
@@ -5135,19 +5135,19 @@ function renderTextElementBody(options) {
|
|
|
5135
5135
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
5136
5136
|
"div",
|
|
5137
5137
|
{
|
|
5138
|
-
className:
|
|
5138
|
+
className: chunkKA7ST7IH_js.cn(
|
|
5139
5139
|
"relative z-10 w-full h-full whitespace-pre-wrap break-words leading-[1.3]",
|
|
5140
5140
|
onHyperlinkClick ? "" : "pointer-events-none"
|
|
5141
5141
|
),
|
|
5142
5142
|
style: {
|
|
5143
|
-
...
|
|
5143
|
+
...chunkKA7ST7IH_js.getTextLayoutStyle(el),
|
|
5144
5144
|
...txtS,
|
|
5145
|
-
...
|
|
5145
|
+
...chunkKA7ST7IH_js.getTextWarpStyle(txtSE),
|
|
5146
5146
|
...transformStyle
|
|
5147
5147
|
},
|
|
5148
|
-
children:
|
|
5148
|
+
children: chunkKA7ST7IH_js.renderTextSegments(
|
|
5149
5149
|
el,
|
|
5150
|
-
|
|
5150
|
+
chunkKA7ST7IH_js.DEFAULT_TEXT_COLOR,
|
|
5151
5151
|
void 0,
|
|
5152
5152
|
findHl,
|
|
5153
5153
|
onHyperlinkClick,
|
|
@@ -5447,7 +5447,7 @@ function renderBody(options) {
|
|
|
5447
5447
|
textDirection: txtSE?.textDirection,
|
|
5448
5448
|
textStyle: txtS,
|
|
5449
5449
|
textStyleRaw: txtSE,
|
|
5450
|
-
layoutStyle:
|
|
5450
|
+
layoutStyle: chunkKA7ST7IH_js.getTextLayoutStyle(el),
|
|
5451
5451
|
element: el,
|
|
5452
5452
|
onCommit,
|
|
5453
5453
|
onCancel,
|
|
@@ -5458,7 +5458,7 @@ function renderBody(options) {
|
|
|
5458
5458
|
] });
|
|
5459
5459
|
}
|
|
5460
5460
|
if (el.type === "table") {
|
|
5461
|
-
return
|
|
5461
|
+
return chunkKA7ST7IH_js.renderTableElement(el, txtS, {
|
|
5462
5462
|
editable: isSel,
|
|
5463
5463
|
selectedCell: isSel ? tableSt : null,
|
|
5464
5464
|
onSelectCell: onCellSel,
|
|
@@ -5489,7 +5489,7 @@ function renderBody(options) {
|
|
|
5489
5489
|
);
|
|
5490
5490
|
}
|
|
5491
5491
|
if (el.type === "media") {
|
|
5492
|
-
return
|
|
5492
|
+
return chunkKA7ST7IH_js.renderMediaElement(el, media, {
|
|
5493
5493
|
autoPlay: isPresentationPassive,
|
|
5494
5494
|
fullScreen: isPresentationPassive && Boolean(el.fullScreen),
|
|
5495
5495
|
isPresentationMode: isPresentationPassive,
|
|
@@ -5514,7 +5514,7 @@ function renderBody(options) {
|
|
|
5514
5514
|
}
|
|
5515
5515
|
return renderGroup(el.children);
|
|
5516
5516
|
}
|
|
5517
|
-
if (
|
|
5517
|
+
if (chunkKA7ST7IH_js.shouldRenderFallbackLabel(el, isTxtEl)) {
|
|
5518
5518
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkVSNXVKJI_js.getElementLabel(el) });
|
|
5519
5519
|
}
|
|
5520
5520
|
return renderTextElementBody(options);
|
|
@@ -5533,13 +5533,13 @@ function StaticElementRenderer({
|
|
|
5533
5533
|
}) {
|
|
5534
5534
|
const style = chunkAD3EAEY6_js.hasShapeProperties(element) ? element.shapeStyle : void 0;
|
|
5535
5535
|
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunkVSNXVKJI_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
|
|
5536
|
-
const fill = chunkVSNXVKJI_js.normalizeHexColor(style?.fillColor,
|
|
5536
|
+
const fill = chunkVSNXVKJI_js.normalizeHexColor(style?.fillColor, chunkKA7ST7IH_js.DEFAULT_FILL_COLOR);
|
|
5537
5537
|
const strokeWidth = Math.max(0, style?.strokeWidth || 0);
|
|
5538
|
-
const stroke = chunkVSNXVKJI_js.normalizeHexColor(style?.strokeColor,
|
|
5539
|
-
const visualStyle =
|
|
5540
|
-
const textStyle =
|
|
5538
|
+
const stroke = chunkVSNXVKJI_js.normalizeHexColor(style?.strokeColor, chunkKA7ST7IH_js.DEFAULT_STROKE_COLOR);
|
|
5539
|
+
const visualStyle = chunkKA7ST7IH_js.getShapeVisualStyle(element, hasFill, fill, strokeWidth, stroke);
|
|
5540
|
+
const textStyle = chunkKA7ST7IH_js.getTextStyleForElement(
|
|
5541
5541
|
element,
|
|
5542
|
-
element.type === "shape" && hasFill ? "#ffffff" :
|
|
5542
|
+
element.type === "shape" && hasFill ? "#ffffff" : chunkKA7ST7IH_js.DEFAULT_TEXT_COLOR
|
|
5543
5543
|
);
|
|
5544
5544
|
const isImage = element.type === "picture" || element.type === "image";
|
|
5545
5545
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -5576,8 +5576,8 @@ function StaticElementRenderer({
|
|
|
5576
5576
|
spellCheck: false,
|
|
5577
5577
|
txtSE: chunkAD3EAEY6_js.hasTextProperties(element) ? element.textStyle : void 0,
|
|
5578
5578
|
txtS: textStyle,
|
|
5579
|
-
vecShape:
|
|
5580
|
-
imgStyle:
|
|
5579
|
+
vecShape: chunkKA7ST7IH_js.renderVectorShape(element, hasFill, fill, strokeWidth, stroke),
|
|
5580
|
+
imgStyle: chunkKA7ST7IH_js.getImageRenderStyle(element),
|
|
5581
5581
|
imgFilter: chunkVSNXVKJI_js.getImageEffectsFilter(element),
|
|
5582
5582
|
imgOpacity: chunkVSNXVKJI_js.getImageEffectsOpacity(element),
|
|
5583
5583
|
imgAlt: "",
|
|
@@ -5607,12 +5607,12 @@ function SlideThumbnailImpl({
|
|
|
5607
5607
|
}) {
|
|
5608
5608
|
const safeCanvasWidth = Math.max(canvasSize.width, 1);
|
|
5609
5609
|
const safeCanvasHeight = Math.max(canvasSize.height, 1);
|
|
5610
|
-
const scale =
|
|
5610
|
+
const scale = chunkKA7ST7IH_js.SLIDE_NAV_THUMBNAIL_WIDTH / safeCanvasWidth;
|
|
5611
5611
|
const previewHeight = Math.max(56, Math.round(safeCanvasHeight * scale));
|
|
5612
5612
|
const previewElements = [...templateElements, ...slide.elements].slice(0, 60);
|
|
5613
5613
|
const { t } = reactI18next.useTranslation();
|
|
5614
5614
|
const transitionLabel = slide.transition ? (() => {
|
|
5615
|
-
const opt =
|
|
5615
|
+
const opt = chunkKA7ST7IH_js.SLIDE_TRANSITION_OPTIONS.find((o) => o.value === slide.transition?.type);
|
|
5616
5616
|
return opt ? t(opt.i18nKey) : slide.transition.type;
|
|
5617
5617
|
})() : void 0;
|
|
5618
5618
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -6305,7 +6305,7 @@ function SectionHeader({
|
|
|
6305
6305
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6306
6306
|
lu.LuChevronDown,
|
|
6307
6307
|
{
|
|
6308
|
-
className:
|
|
6308
|
+
className: chunkKA7ST7IH_js.cn(
|
|
6309
6309
|
"h-3 w-3 flex-shrink-0 transition-transform",
|
|
6310
6310
|
isCollapsed ? "-rotate-90" : "rotate-0"
|
|
6311
6311
|
)
|
|
@@ -6407,7 +6407,7 @@ function LazyThumbnailInner({
|
|
|
6407
6407
|
className: "relative w-full overflow-hidden rounded border border-border bg-muted/30 animate-pulse",
|
|
6408
6408
|
style: {
|
|
6409
6409
|
height: previewHeight,
|
|
6410
|
-
minWidth:
|
|
6410
|
+
minWidth: chunkKA7ST7IH_js.SLIDE_NAV_THUMBNAIL_WIDTH
|
|
6411
6411
|
}
|
|
6412
6412
|
}
|
|
6413
6413
|
) });
|
|
@@ -6444,7 +6444,7 @@ function buildFlatPaneItems(sectionGroups, showSectionHeaders, collapsedSections
|
|
|
6444
6444
|
function estimateSlideItemHeight(canvasWidth, canvasHeight) {
|
|
6445
6445
|
const safeW = Math.max(canvasWidth, 1);
|
|
6446
6446
|
const safeH = Math.max(canvasHeight, 1);
|
|
6447
|
-
const scale =
|
|
6447
|
+
const scale = chunkKA7ST7IH_js.SLIDE_NAV_THUMBNAIL_WIDTH / safeW;
|
|
6448
6448
|
const previewHeight = Math.max(56, Math.round(safeH * scale));
|
|
6449
6449
|
return previewHeight + 30;
|
|
6450
6450
|
}
|
|
@@ -6481,7 +6481,7 @@ function SlideItemInner({
|
|
|
6481
6481
|
);
|
|
6482
6482
|
const safeCanvasWidth = Math.max(canvasSize.width, 1);
|
|
6483
6483
|
const safeCanvasHeight = Math.max(canvasSize.height, 1);
|
|
6484
|
-
const scale =
|
|
6484
|
+
const scale = chunkKA7ST7IH_js.SLIDE_NAV_THUMBNAIL_WIDTH / safeCanvasWidth;
|
|
6485
6485
|
const previewHeight = Math.max(56, Math.round(safeCanvasHeight * scale));
|
|
6486
6486
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6487
6487
|
"button",
|
|
@@ -6490,7 +6490,7 @@ function SlideItemInner({
|
|
|
6490
6490
|
ref: slideRef,
|
|
6491
6491
|
"aria-label": `Go to slide ${slideIndex + 1}`,
|
|
6492
6492
|
"aria-current": isActive ? "true" : void 0,
|
|
6493
|
-
className:
|
|
6493
|
+
className: chunkKA7ST7IH_js.cn(
|
|
6494
6494
|
"group relative flex w-full items-center gap-1 cursor-pointer border-0 bg-transparent py-0.5 px-1 text-left transition-all",
|
|
6495
6495
|
isActive && "bg-accent/40 before:absolute before:left-0 before:top-1 before:bottom-1 before:w-[3px] before:bg-primary before:rounded-r",
|
|
6496
6496
|
isHidden && "opacity-50"
|
|
@@ -6506,7 +6506,7 @@ function SlideItemInner({
|
|
|
6506
6506
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6507
6507
|
"span",
|
|
6508
6508
|
{
|
|
6509
|
-
className:
|
|
6509
|
+
className: chunkKA7ST7IH_js.cn(
|
|
6510
6510
|
"text-[10px] tabular-nums text-right select-none w-full",
|
|
6511
6511
|
isActive ? "text-primary font-medium" : "text-muted-foreground"
|
|
6512
6512
|
),
|
|
@@ -6526,7 +6526,7 @@ function SlideItemInner({
|
|
|
6526
6526
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6527
6527
|
"div",
|
|
6528
6528
|
{
|
|
6529
|
-
className:
|
|
6529
|
+
className: chunkKA7ST7IH_js.cn(
|
|
6530
6530
|
"relative flex-1 overflow-hidden border transition-colors bg-white",
|
|
6531
6531
|
isActive ? "border-primary/60" : "border-transparent group-hover:border-border/40"
|
|
6532
6532
|
),
|
|
@@ -6731,7 +6731,7 @@ function SlidesPaneSidebar({
|
|
|
6731
6731
|
[sectionGroups, showSectionHeaders, collapsedSections]
|
|
6732
6732
|
);
|
|
6733
6733
|
const shouldVirtualize = slides.length >= VIRTUALIZATION_THRESHOLD;
|
|
6734
|
-
const { startIndex, endIndex, totalHeight, offsetY, scrollContainerRef, scrollToIndex } =
|
|
6734
|
+
const { startIndex, endIndex, totalHeight, offsetY, scrollContainerRef, scrollToIndex } = chunkKA7ST7IH_js.useVirtualizedSlides({
|
|
6735
6735
|
totalItems: shouldVirtualize ? flatItems.length : 0,
|
|
6736
6736
|
itemHeight: estimatedItemHeight
|
|
6737
6737
|
});
|
|
@@ -6961,7 +6961,7 @@ function HandoutMasterPanel({
|
|
|
6961
6961
|
{
|
|
6962
6962
|
type: "button",
|
|
6963
6963
|
"aria-pressed": slidesPerPage === count,
|
|
6964
|
-
className:
|
|
6964
|
+
className: chunkKA7ST7IH_js.cn(
|
|
6965
6965
|
"px-2 py-1.5 rounded text-[11px] font-medium transition-colors",
|
|
6966
6966
|
slidesPerPage === count ? "bg-primary text-white" : "bg-accent/50 text-muted-foreground hover:bg-accent/70 hover:text-foreground"
|
|
6967
6967
|
),
|
|
@@ -7089,7 +7089,7 @@ function SlideMastersList({
|
|
|
7089
7089
|
"div",
|
|
7090
7090
|
{
|
|
7091
7091
|
ref: isMasterActive ? activeRef : void 0,
|
|
7092
|
-
className:
|
|
7092
|
+
className: chunkKA7ST7IH_js.cn(
|
|
7093
7093
|
"group relative cursor-pointer rounded-lg border-2 p-1 transition-all",
|
|
7094
7094
|
isMasterActive ? "border-amber-500 bg-amber-500/10" : "border-border bg-background/40 hover:border-border"
|
|
7095
7095
|
),
|
|
@@ -7106,7 +7106,7 @@ function SlideMastersList({
|
|
|
7106
7106
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 px-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7107
7107
|
"span",
|
|
7108
7108
|
{
|
|
7109
|
-
className:
|
|
7109
|
+
className: chunkKA7ST7IH_js.cn(
|
|
7110
7110
|
"text-[10px] font-medium",
|
|
7111
7111
|
isMasterActive ? "text-amber-400" : "text-muted-foreground"
|
|
7112
7112
|
),
|
|
@@ -7122,7 +7122,7 @@ function SlideMastersList({
|
|
|
7122
7122
|
"div",
|
|
7123
7123
|
{
|
|
7124
7124
|
ref: isLayoutActive ? activeRef : void 0,
|
|
7125
|
-
className:
|
|
7125
|
+
className: chunkKA7ST7IH_js.cn(
|
|
7126
7126
|
"group relative cursor-pointer rounded-md border-2 p-0.5 transition-all",
|
|
7127
7127
|
isLayoutActive ? "border-primary bg-primary/10" : "border-border bg-background/40 hover:border-border"
|
|
7128
7128
|
),
|
|
@@ -7139,7 +7139,7 @@ function SlideMastersList({
|
|
|
7139
7139
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 px-0.5", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7140
7140
|
"span",
|
|
7141
7141
|
{
|
|
7142
|
-
className:
|
|
7142
|
+
className: chunkKA7ST7IH_js.cn(
|
|
7143
7143
|
"text-[9px]",
|
|
7144
7144
|
isLayoutActive ? "text-primary" : "text-muted-foreground"
|
|
7145
7145
|
),
|
|
@@ -7223,7 +7223,7 @@ function MasterViewSidebar({
|
|
|
7223
7223
|
type: "button",
|
|
7224
7224
|
role: "tab",
|
|
7225
7225
|
"aria-selected": masterViewTab === tab.key,
|
|
7226
|
-
className:
|
|
7226
|
+
className: chunkKA7ST7IH_js.cn(
|
|
7227
7227
|
"flex-1 px-1 py-1.5 text-[10px] font-medium transition-colors border-b-2",
|
|
7228
7228
|
masterViewTab === tab.key ? "border-amber-500 text-amber-400" : "border-transparent text-muted-foreground hover:text-foreground"
|
|
7229
7229
|
),
|
|
@@ -7695,7 +7695,7 @@ function SectionBlock({
|
|
|
7695
7695
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7696
7696
|
lu.LuChevronDown,
|
|
7697
7697
|
{
|
|
7698
|
-
className:
|
|
7698
|
+
className: chunkKA7ST7IH_js.cn("h-3 w-3 transition-transform", collapsed ? "-rotate-90" : "rotate-0")
|
|
7699
7699
|
}
|
|
7700
7700
|
),
|
|
7701
7701
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-left", children: section.label }),
|
|
@@ -7742,7 +7742,7 @@ function SlideCardImpl({
|
|
|
7742
7742
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7743
7743
|
"div",
|
|
7744
7744
|
{
|
|
7745
|
-
className:
|
|
7745
|
+
className: chunkKA7ST7IH_js.cn(
|
|
7746
7746
|
"group relative cursor-pointer rounded-lg border-2 p-1 transition-all",
|
|
7747
7747
|
isDragTarget ? "border-primary bg-primary/20" : isSelected ? "border-primary bg-primary/10 ring-1 ring-primary/50" : isActive ? "border-primary/50 bg-primary/5" : "border-border bg-background/50 hover:border-border",
|
|
7748
7748
|
slide.hidden && "opacity-40"
|
|
@@ -7761,7 +7761,7 @@ function SlideCardImpl({
|
|
|
7761
7761
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7762
7762
|
"span",
|
|
7763
7763
|
{
|
|
7764
|
-
className:
|
|
7764
|
+
className: chunkKA7ST7IH_js.cn(
|
|
7765
7765
|
"text-[11px] font-medium",
|
|
7766
7766
|
isSelected ? "text-primary" : isActive ? "text-primary/70" : "text-muted-foreground"
|
|
7767
7767
|
),
|
|
@@ -9496,7 +9496,7 @@ var SlideNotesPanel = ({
|
|
|
9496
9496
|
});
|
|
9497
9497
|
const hasNotes = draft.trim().length > 0;
|
|
9498
9498
|
const slideLabel = activeSlide ? t("pptx.notes.slideN", { n: activeSlide.slideNumber }) : t("pptx.notes.noSlide");
|
|
9499
|
-
const { dragY, handlers: dragHandlers } =
|
|
9499
|
+
const { dragY, handlers: dragHandlers } = chunkKA7ST7IH_js.useSheetDismissDrag(onToggle);
|
|
9500
9500
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
9501
9501
|
isExpanded && /* @__PURE__ */ jsxRuntime.jsx(
|
|
9502
9502
|
"button",
|
|
@@ -9510,7 +9510,7 @@ var SlideNotesPanel = ({
|
|
|
9510
9510
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
9511
9511
|
"div",
|
|
9512
9512
|
{
|
|
9513
|
-
className:
|
|
9513
|
+
className: chunkKA7ST7IH_js.cn(
|
|
9514
9514
|
"flex flex-col border-t border-border/60 bg-background select-none",
|
|
9515
9515
|
// On mobile, hide the entire notes strip when collapsed: the
|
|
9516
9516
|
// MobileBottomBar's Notes button is the entry point instead.
|
|
@@ -9861,7 +9861,7 @@ function SlideDiffRow({
|
|
|
9861
9861
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
9862
9862
|
"div",
|
|
9863
9863
|
{
|
|
9864
|
-
className:
|
|
9864
|
+
className: chunkKA7ST7IH_js.cn(
|
|
9865
9865
|
"rounded-lg border transition-colors",
|
|
9866
9866
|
isResolved ? "border-border/60 bg-card/40 opacity-60" : "border-border bg-background/70"
|
|
9867
9867
|
),
|
|
@@ -9875,7 +9875,7 @@ function SlideDiffRow({
|
|
|
9875
9875
|
children: [
|
|
9876
9876
|
expanded ? /* @__PURE__ */ jsxRuntime.jsx(lu.LuChevronDown, { className: "w-3.5 h-3.5 text-muted-foreground flex-shrink-0" }) : /* @__PURE__ */ jsxRuntime.jsx(lu.LuChevronRight, { className: "w-3.5 h-3.5 text-muted-foreground flex-shrink-0" }),
|
|
9877
9877
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-foreground", children: t("pptx.compare.slideNumber", { number: slideNumber }) }),
|
|
9878
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
9878
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkKA7ST7IH_js.cn("rounded-full px-2 py-0.5 text-[10px] font-medium", statusColor), children: statusLabel }),
|
|
9879
9879
|
diff.changes.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-muted-foreground", children: [
|
|
9880
9880
|
diff.changes.length,
|
|
9881
9881
|
" ",
|
|
@@ -9885,7 +9885,7 @@ function SlideDiffRow({
|
|
|
9885
9885
|
isResolved && /* @__PURE__ */ jsxRuntime.jsx(
|
|
9886
9886
|
"span",
|
|
9887
9887
|
{
|
|
9888
|
-
className:
|
|
9888
|
+
className: chunkKA7ST7IH_js.cn(
|
|
9889
9889
|
"text-[10px] font-medium",
|
|
9890
9890
|
accepted ? "text-green-400" : "text-muted-foreground"
|
|
9891
9891
|
),
|
|
@@ -9913,7 +9913,7 @@ function SlideDiffRow({
|
|
|
9913
9913
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
9914
9914
|
"div",
|
|
9915
9915
|
{
|
|
9916
|
-
className:
|
|
9916
|
+
className: chunkKA7ST7IH_js.cn(
|
|
9917
9917
|
"rounded border overflow-hidden",
|
|
9918
9918
|
diff.status === "added" ? "border-green-700/60" : diff.status === "changed" ? "border-amber-700/60" : "border-border"
|
|
9919
9919
|
),
|
|
@@ -10634,7 +10634,7 @@ function DocumentPropertiesDialog({
|
|
|
10634
10634
|
const handleClose = React14.useCallback(() => {
|
|
10635
10635
|
onClose();
|
|
10636
10636
|
}, [onClose]);
|
|
10637
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
10637
|
+
const { panelStyle, handlers: dragHandlers } = chunkKA7ST7IH_js.useModalDismissDrag(handleClose);
|
|
10638
10638
|
if (!isOpen) {
|
|
10639
10639
|
return null;
|
|
10640
10640
|
}
|
|
@@ -12253,7 +12253,7 @@ function SelectionPane({
|
|
|
12253
12253
|
setDragIndex(null);
|
|
12254
12254
|
setDragOverIndex(null);
|
|
12255
12255
|
},
|
|
12256
|
-
className:
|
|
12256
|
+
className: chunkKA7ST7IH_js.cn(
|
|
12257
12257
|
"flex items-center gap-1.5 px-2 py-1 text-xs cursor-pointer transition-colors",
|
|
12258
12258
|
isSelected ? "bg-primary/30 text-primary" : "hover:bg-muted text-foreground",
|
|
12259
12259
|
dragOverIndex === realIndex ? "border-t-2 border-primary" : ""
|
|
@@ -12310,7 +12310,7 @@ function RibbonGroup({
|
|
|
12310
12310
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
12311
12311
|
"section",
|
|
12312
12312
|
{
|
|
12313
|
-
className:
|
|
12313
|
+
className: chunkKA7ST7IH_js.cn(
|
|
12314
12314
|
"relative flex min-h-[78px] shrink-0 items-start gap-1 border-r border-border/60 px-2 pb-4 pt-1 last:border-r-0",
|
|
12315
12315
|
className
|
|
12316
12316
|
),
|
|
@@ -12338,7 +12338,7 @@ function RibbonCommand({
|
|
|
12338
12338
|
onClick,
|
|
12339
12339
|
disabled,
|
|
12340
12340
|
title: title ?? label,
|
|
12341
|
-
className:
|
|
12341
|
+
className: chunkKA7ST7IH_js.cn(
|
|
12342
12342
|
"inline-flex rounded-sm text-foreground transition-colors hover:bg-accent disabled:cursor-not-allowed disabled:opacity-35",
|
|
12343
12343
|
active && "bg-primary/15 text-primary ring-1 ring-primary/35",
|
|
12344
12344
|
compact ? "h-[26px] min-w-[88px] items-center gap-1.5 px-1.5 text-left text-[10px] leading-3" : "h-[58px] min-w-[54px] max-w-[72px] flex-col items-center justify-start gap-0.5 px-1 py-1 text-center text-[9px] leading-[11px]"
|
|
@@ -12347,7 +12347,7 @@ function RibbonCommand({
|
|
|
12347
12347
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12348
12348
|
"span",
|
|
12349
12349
|
{
|
|
12350
|
-
className:
|
|
12350
|
+
className: chunkKA7ST7IH_js.cn(
|
|
12351
12351
|
"grid shrink-0 place-items-center text-primary",
|
|
12352
12352
|
compact ? "h-4 w-4 [&>svg]:h-4 [&>svg]:w-4" : "h-7 w-7 [&>svg]:h-6 [&>svg]:w-6"
|
|
12353
12353
|
),
|
|
@@ -12376,7 +12376,7 @@ function RibbonToggle({
|
|
|
12376
12376
|
"label",
|
|
12377
12377
|
{
|
|
12378
12378
|
title,
|
|
12379
|
-
className:
|
|
12379
|
+
className: chunkKA7ST7IH_js.cn(
|
|
12380
12380
|
"flex h-[19px] items-center gap-1 whitespace-nowrap rounded-sm px-1 text-[10px] text-foreground",
|
|
12381
12381
|
checked && "bg-primary/15 text-primary"
|
|
12382
12382
|
),
|
|
@@ -12778,7 +12778,7 @@ function ArrangeSection(p) {
|
|
|
12778
12778
|
disabled: !p.canEdit || p.canActivateFormatPainter === false && !p.formatPainterActive,
|
|
12779
12779
|
"data-testid": "format-painter-toggle",
|
|
12780
12780
|
"data-active": p.formatPainterActive ? "true" : "false",
|
|
12781
|
-
className:
|
|
12781
|
+
className: chunkKA7ST7IH_js.cn(
|
|
12782
12782
|
pill,
|
|
12783
12783
|
p.formatPainterActive ? "bg-amber-600 hover:bg-amber-500 text-amber-50" : ""
|
|
12784
12784
|
),
|
|
@@ -12891,7 +12891,7 @@ function DesignSection(p) {
|
|
|
12891
12891
|
{
|
|
12892
12892
|
onClick: p.onToggleThemeGallery,
|
|
12893
12893
|
disabled: !p.canEdit,
|
|
12894
|
-
className:
|
|
12894
|
+
className: chunkKA7ST7IH_js.cn(
|
|
12895
12895
|
pill,
|
|
12896
12896
|
p.isThemeGalleryOpen ? "bg-primary hover:bg-primary/80 text-white" : ""
|
|
12897
12897
|
),
|
|
@@ -12907,7 +12907,7 @@ function DesignSection(p) {
|
|
|
12907
12907
|
{
|
|
12908
12908
|
onClick: p.onToggleThemeEditor,
|
|
12909
12909
|
disabled: !p.canEdit,
|
|
12910
|
-
className:
|
|
12910
|
+
className: chunkKA7ST7IH_js.cn(pill, p.isThemeEditorOpen ? "bg-primary hover:bg-primary/80 text-white" : ""),
|
|
12911
12911
|
title: t("pptx.ribbon.editThemeTitle"),
|
|
12912
12912
|
children: [
|
|
12913
12913
|
/* @__PURE__ */ jsxRuntime.jsx(lu.LuPencil, { className: ics }),
|
|
@@ -12932,7 +12932,7 @@ function DesignSection(p) {
|
|
|
12932
12932
|
"button",
|
|
12933
12933
|
{
|
|
12934
12934
|
onClick: p.onToggleInspector,
|
|
12935
|
-
className:
|
|
12935
|
+
className: chunkKA7ST7IH_js.cn(
|
|
12936
12936
|
pill,
|
|
12937
12937
|
p.isInspectorPaneOpen ? "bg-primary hover:bg-primary/80 text-white" : ""
|
|
12938
12938
|
),
|
|
@@ -12974,7 +12974,7 @@ function TransitionsSection(p) {
|
|
|
12974
12974
|
{
|
|
12975
12975
|
type: "button",
|
|
12976
12976
|
onClick: () => setSelected(preset.value),
|
|
12977
|
-
className:
|
|
12977
|
+
className: chunkKA7ST7IH_js.cn(
|
|
12978
12978
|
"flex-shrink-0 px-2 py-1 max-md:min-h-[44px] rounded border text-[11px] leading-tight transition-colors",
|
|
12979
12979
|
selected === preset.value ? "border-primary bg-primary/10 text-primary font-medium" : "border-border bg-muted hover:bg-accent text-foreground"
|
|
12980
12980
|
),
|
|
@@ -13059,7 +13059,7 @@ function TransitionsSection(p) {
|
|
|
13059
13059
|
{
|
|
13060
13060
|
type: "button",
|
|
13061
13061
|
onClick: p.onToggleInspector,
|
|
13062
|
-
className:
|
|
13062
|
+
className: chunkKA7ST7IH_js.cn(
|
|
13063
13063
|
pill,
|
|
13064
13064
|
p.isInspectorPaneOpen ? "bg-primary hover:bg-primary/80 text-white" : ""
|
|
13065
13065
|
),
|
|
@@ -13080,7 +13080,7 @@ function DrawSection(p) {
|
|
|
13080
13080
|
{
|
|
13081
13081
|
type: "button",
|
|
13082
13082
|
onClick: () => p.onSetActiveTool(tool.id),
|
|
13083
|
-
className:
|
|
13083
|
+
className: chunkKA7ST7IH_js.cn(
|
|
13084
13084
|
i < a.length - 1 ? gB : gL,
|
|
13085
13085
|
p.activeTool === tool.id ? tool.ac ?? "bg-accent text-foreground" : ""
|
|
13086
13086
|
),
|
|
@@ -13164,7 +13164,7 @@ function AccountPage() {
|
|
|
13164
13164
|
return void 0;
|
|
13165
13165
|
});
|
|
13166
13166
|
};
|
|
13167
|
-
const version = "1.22.
|
|
13167
|
+
const version = "1.22.1" ;
|
|
13168
13168
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
|
|
13169
13169
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: cardClass, children: [
|
|
13170
13170
|
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
|
|
@@ -13204,7 +13204,7 @@ function AccountPage() {
|
|
|
13204
13204
|
"aria-label": color,
|
|
13205
13205
|
"aria-pressed": profile.avatarColor === color,
|
|
13206
13206
|
onClick: () => updateProfile({ avatarColor: color }),
|
|
13207
|
-
className:
|
|
13207
|
+
className: chunkKA7ST7IH_js.cn(
|
|
13208
13208
|
"size-7 rounded-full border-2 transition-transform",
|
|
13209
13209
|
profile.avatarColor === color ? "border-foreground scale-110" : "border-transparent hover:scale-105"
|
|
13210
13210
|
),
|
|
@@ -13354,7 +13354,7 @@ function FileSection(p) {
|
|
|
13354
13354
|
const [page, setPage] = React14.useState("home");
|
|
13355
13355
|
const [query, setQuery] = React14.useState("");
|
|
13356
13356
|
const [recent, setRecent] = React14.useState([]);
|
|
13357
|
-
const { isHidden } =
|
|
13357
|
+
const { isHidden } = chunkKA7ST7IH_js.useToolbarVisibility(p.hiddenActions);
|
|
13358
13358
|
const exportHidden = isHidden("export");
|
|
13359
13359
|
React14.useEffect(() => {
|
|
13360
13360
|
void chunkVSNXVKJI_js.listBackstageRecentFiles().then(setRecent);
|
|
@@ -13685,7 +13685,7 @@ function SlidesGroup(p) {
|
|
|
13685
13685
|
type: "button",
|
|
13686
13686
|
onClick: handleNewSlide,
|
|
13687
13687
|
disabled: !p.canEdit || p.layoutOptions.length === 0,
|
|
13688
|
-
className:
|
|
13688
|
+
className: chunkKA7ST7IH_js.cn(
|
|
13689
13689
|
pill,
|
|
13690
13690
|
"whitespace-nowrap",
|
|
13691
13691
|
p.layoutOptions.length > 0 ? "rounded-r-none" : ""
|
|
@@ -13875,7 +13875,7 @@ function HomeSection(p) {
|
|
|
13875
13875
|
setTimeout(() => setCutFeedback(false), 600);
|
|
13876
13876
|
},
|
|
13877
13877
|
disabled: !p.canEdit,
|
|
13878
|
-
className:
|
|
13878
|
+
className: chunkKA7ST7IH_js.cn(gB, cutFeedback && "bg-green-600/20 text-green-400"),
|
|
13879
13879
|
title: t("pptx.arrange.cut"),
|
|
13880
13880
|
children: /* @__PURE__ */ jsxRuntime.jsx(lu.LuScissors, { className: ic2 })
|
|
13881
13881
|
}
|
|
@@ -13889,7 +13889,7 @@ function HomeSection(p) {
|
|
|
13889
13889
|
setCopiedFeedback(true);
|
|
13890
13890
|
setTimeout(() => setCopiedFeedback(false), 600);
|
|
13891
13891
|
},
|
|
13892
|
-
className:
|
|
13892
|
+
className: chunkKA7ST7IH_js.cn(gB, copiedFeedback && "bg-green-600/20 text-green-400"),
|
|
13893
13893
|
title: t("pptx.arrange.copy"),
|
|
13894
13894
|
children: /* @__PURE__ */ jsxRuntime.jsx(lu.LuCopy, { className: ic2 })
|
|
13895
13895
|
}
|
|
@@ -13902,7 +13902,7 @@ function HomeSection(p) {
|
|
|
13902
13902
|
disabled: !p.canEdit || p.canActivateFormatPainter === false && !p.formatPainterActive,
|
|
13903
13903
|
"data-testid": "format-painter-toggle",
|
|
13904
13904
|
"data-active": p.formatPainterActive ? "true" : "false",
|
|
13905
|
-
className:
|
|
13905
|
+
className: chunkKA7ST7IH_js.cn(
|
|
13906
13906
|
gL,
|
|
13907
13907
|
p.formatPainterActive ? "bg-amber-600 hover:bg-amber-500 text-amber-50" : ""
|
|
13908
13908
|
),
|
|
@@ -14077,7 +14077,7 @@ function InsertSection(p) {
|
|
|
14077
14077
|
onChange: (e) => p.onSetNewShapeType(e.target.value),
|
|
14078
14078
|
className: "bg-transparent py-1.5 pl-2 pr-1 outline-none text-xs",
|
|
14079
14079
|
title: t("pptx.insert.shapeType"),
|
|
14080
|
-
children:
|
|
14080
|
+
children: chunkKA7ST7IH_js.SHAPE_PRESETS.map((sp) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: sp.type, className: "bg-background", children: t(sp.i18nKey) }, sp.type))
|
|
14081
14081
|
}
|
|
14082
14082
|
),
|
|
14083
14083
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -14088,7 +14088,7 @@ function InsertSection(p) {
|
|
|
14088
14088
|
className: "inline-flex items-center gap-1.5 px-2.5 py-1.5 border-l border-border hover:bg-accent transition-colors text-xs",
|
|
14089
14089
|
title: t("pptx.insert.addShape"),
|
|
14090
14090
|
children: [
|
|
14091
|
-
|
|
14091
|
+
chunkKA7ST7IH_js.SHAPE_PRESETS.find((sp) => sp.type === p.newShapeType)?.icon || /* @__PURE__ */ jsxRuntime.jsx(lu.LuSquare, { className: ic2 }),
|
|
14092
14092
|
t("pptx.insert.shape")
|
|
14093
14093
|
]
|
|
14094
14094
|
}
|
|
@@ -14571,7 +14571,7 @@ function ReviewSection(p) {
|
|
|
14571
14571
|
}
|
|
14572
14572
|
function SlideShowSection(p) {
|
|
14573
14573
|
const { t } = reactI18next.useTranslation();
|
|
14574
|
-
const { isHidden } =
|
|
14574
|
+
const { isHidden } = chunkKA7ST7IH_js.useToolbarVisibility(p.hiddenActions);
|
|
14575
14575
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
14576
14576
|
/* @__PURE__ */ jsxRuntime.jsxs(RibbonGroup, { label: t("pptx.slideShow.start", { defaultValue: "Start Slide Show" }), children: [
|
|
14577
14577
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -15640,11 +15640,14 @@ function ViewSection(p) {
|
|
|
15640
15640
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15641
15641
|
RibbonCommand,
|
|
15642
15642
|
{
|
|
15643
|
-
label: t("pptx.
|
|
15643
|
+
label: t(p.editTemplateMode ? "pptx.ribbon.templatesOn" : "pptx.ribbon.templatesOff"),
|
|
15644
15644
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lu.LuRuler, {}),
|
|
15645
15645
|
onClick: () => p.onSetEditTemplateMode(!p.editTemplateMode),
|
|
15646
15646
|
active: p.editTemplateMode,
|
|
15647
|
-
disabled: !p.canEdit
|
|
15647
|
+
disabled: !p.canEdit,
|
|
15648
|
+
title: t("pptx.view.templateEditingTooltip", {
|
|
15649
|
+
defaultValue: "Toggle template/master element editing"
|
|
15650
|
+
})
|
|
15648
15651
|
}
|
|
15649
15652
|
),
|
|
15650
15653
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -15670,7 +15673,7 @@ function MobileSheet({
|
|
|
15670
15673
|
headerRight
|
|
15671
15674
|
}) {
|
|
15672
15675
|
const sheetRef = React14.useRef(null);
|
|
15673
|
-
const { dragY, dragging, handlers } =
|
|
15676
|
+
const { dragY, dragging, handlers } = chunkKA7ST7IH_js.useSheetDismissDrag(onClose);
|
|
15674
15677
|
useModalFocus(open, sheetRef, onClose);
|
|
15675
15678
|
if (!open) {
|
|
15676
15679
|
return null;
|
|
@@ -15694,7 +15697,7 @@ function MobileSheet({
|
|
|
15694
15697
|
"aria-modal": "true",
|
|
15695
15698
|
"aria-label": typeof title === "string" ? title : "Mobile panel",
|
|
15696
15699
|
tabIndex: -1,
|
|
15697
|
-
className:
|
|
15700
|
+
className: chunkKA7ST7IH_js.cn(
|
|
15698
15701
|
"relative bg-background border-t border-border rounded-t-2xl shadow-2xl flex flex-col overflow-hidden",
|
|
15699
15702
|
"animate-in slide-in-from-bottom duration-200",
|
|
15700
15703
|
className
|
|
@@ -15757,14 +15760,14 @@ function MobileMenuSheet(props) {
|
|
|
15757
15760
|
const { t } = reactI18next.useTranslation();
|
|
15758
15761
|
const { open, onClose } = props;
|
|
15759
15762
|
const [active, setActive] = React14.useState("home");
|
|
15760
|
-
const { isTabVisible } =
|
|
15763
|
+
const { isTabVisible } = chunkKA7ST7IH_js.useToolbarVisibility(props.hiddenActions);
|
|
15761
15764
|
return /* @__PURE__ */ jsxRuntime.jsx(MobileSheet, { open, onClose, autoHeight: true, title: t("pptx.mobileToolbar.menu"), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
|
|
15762
15765
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "sticky top-0 z-10 bg-background border-b border-border", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5 px-3 py-2", children: MENU_ITEMS.filter(({ key }) => isTabVisible(key)).map(({ key, label, icon: Icon }) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15763
15766
|
"button",
|
|
15764
15767
|
{
|
|
15765
15768
|
type: "button",
|
|
15766
15769
|
onClick: () => setActive(active === key ? null : key),
|
|
15767
|
-
className:
|
|
15770
|
+
className: chunkKA7ST7IH_js.cn(
|
|
15768
15771
|
"inline-flex items-center gap-1.5 shrink-0 px-3 py-2 rounded-full text-[12px] font-medium border transition-colors min-h-[36px]",
|
|
15769
15772
|
active === key ? "bg-primary text-white border-primary" : "border-border text-muted-foreground hover:text-foreground hover:bg-accent/40"
|
|
15770
15773
|
),
|
|
@@ -16000,7 +16003,7 @@ function MobileToolbar(props) {
|
|
|
16000
16003
|
const { t } = reactI18next.useTranslation();
|
|
16001
16004
|
const { mode, canUndo, canRedo, onUndo, onRedo, onSetMode, onSaveAsPptx } = props;
|
|
16002
16005
|
const [menuOpen, setMenuOpen] = React14.useState(false);
|
|
16003
|
-
const { isHidden } =
|
|
16006
|
+
const { isHidden } = chunkKA7ST7IH_js.useToolbarVisibility(props.hiddenActions);
|
|
16004
16007
|
const showEdit = mode === "edit" || mode === "master";
|
|
16005
16008
|
const btn = "inline-flex items-center justify-center min-w-[44px] min-h-[44px] rounded-md text-foreground/80 hover:bg-accent/60 disabled:opacity-40 disabled:cursor-not-allowed active:scale-95 transition-transform";
|
|
16006
16009
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -16062,7 +16065,7 @@ function MobileToolbar(props) {
|
|
|
16062
16065
|
{
|
|
16063
16066
|
type: "button",
|
|
16064
16067
|
onClick: () => onSetMode("present"),
|
|
16065
|
-
className:
|
|
16068
|
+
className: chunkKA7ST7IH_js.cn(btn, "text-primary"),
|
|
16066
16069
|
title: t("pptx.toolbar.present"),
|
|
16067
16070
|
"aria-label": t("pptx.toolbar.present"),
|
|
16068
16071
|
children: /* @__PURE__ */ jsxRuntime.jsx(lu.LuPresentation, { className: "w-5 h-5" })
|
|
@@ -16073,7 +16076,7 @@ function MobileToolbar(props) {
|
|
|
16073
16076
|
{
|
|
16074
16077
|
type: "button",
|
|
16075
16078
|
onClick: props.onOpenShareDialog ?? props.onPackageForSharing,
|
|
16076
|
-
className:
|
|
16079
|
+
className: chunkKA7ST7IH_js.cn(btn, "bg-primary text-white hover:bg-primary/90 px-3"),
|
|
16077
16080
|
title: t("pptx.toolbar.share"),
|
|
16078
16081
|
"aria-label": t("pptx.toolbar.share"),
|
|
16079
16082
|
children: /* @__PURE__ */ jsxRuntime.jsx(lu.LuShare2, { className: "w-4 h-4" })
|
|
@@ -16098,7 +16101,7 @@ var FILL_COLORS = [
|
|
|
16098
16101
|
"#008888",
|
|
16099
16102
|
"#888888"
|
|
16100
16103
|
];
|
|
16101
|
-
var TOP_SHAPES =
|
|
16104
|
+
var TOP_SHAPES = chunkKA7ST7IH_js.SHAPE_PRESETS.slice(0, 12);
|
|
16102
16105
|
function DrawingGroup(p) {
|
|
16103
16106
|
const { t } = reactI18next.useTranslation();
|
|
16104
16107
|
const [shapesOpen, setShapesOpen] = React14.useState(false);
|
|
@@ -16179,7 +16182,7 @@ function DrawingGroup(p) {
|
|
|
16179
16182
|
"button",
|
|
16180
16183
|
{
|
|
16181
16184
|
type: "button",
|
|
16182
|
-
className:
|
|
16185
|
+
className: chunkKA7ST7IH_js.cn(
|
|
16183
16186
|
"flex items-center gap-2 w-full px-3 py-1.5 text-xs text-foreground hover:bg-muted transition-colors",
|
|
16184
16187
|
p.newShapeType === s.type && "bg-accent"
|
|
16185
16188
|
),
|
|
@@ -16325,7 +16328,7 @@ function DrawingGroup(p) {
|
|
|
16325
16328
|
{
|
|
16326
16329
|
type: "button",
|
|
16327
16330
|
disabled: true,
|
|
16328
|
-
className:
|
|
16331
|
+
className: chunkKA7ST7IH_js.cn(pill, "opacity-50 cursor-not-allowed"),
|
|
16329
16332
|
title: t("pptx.drawing.shapeEffectsUnavailable"),
|
|
16330
16333
|
children: /* @__PURE__ */ jsxRuntime.jsx(lu.LuSparkles, { className: ic2 })
|
|
16331
16334
|
}
|
|
@@ -16432,7 +16435,7 @@ function TabRowActions(p) {
|
|
|
16432
16435
|
const { t } = reactI18next.useTranslation();
|
|
16433
16436
|
const collab = useCollaboration();
|
|
16434
16437
|
const isCollaborating = collab && collab.status === "connected";
|
|
16435
|
-
const { isHidden } =
|
|
16438
|
+
const { isHidden } = chunkKA7ST7IH_js.useToolbarVisibility(p.hiddenActions);
|
|
16436
16439
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1 pr-1", children: [
|
|
16437
16440
|
p.onEnterRehearsalMode && !isHidden("record") && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
16438
16441
|
"button",
|
|
@@ -16453,7 +16456,7 @@ function TabRowActions(p) {
|
|
|
16453
16456
|
{
|
|
16454
16457
|
type: "button",
|
|
16455
16458
|
onClick: p.onOpenShareDialog ?? p.onPackageForSharing,
|
|
16456
|
-
className:
|
|
16459
|
+
className: chunkKA7ST7IH_js.cn(
|
|
16457
16460
|
"relative inline-flex items-center gap-1 px-2.5 py-1 rounded-sm text-[11px] font-medium transition-colors whitespace-nowrap",
|
|
16458
16461
|
isCollaborating ? "bg-green-600 hover:bg-green-500 text-white" : "bg-primary hover:bg-primary/90 text-white"
|
|
16459
16462
|
),
|
|
@@ -16533,7 +16536,7 @@ function CustomShowsControls({
|
|
|
16533
16536
|
{
|
|
16534
16537
|
type: "button",
|
|
16535
16538
|
onClick: onToggleCurrentSlideInActiveShow,
|
|
16536
|
-
className:
|
|
16539
|
+
className: chunkKA7ST7IH_js.cn(
|
|
16537
16540
|
"px-2 py-1 rounded text-[11px] transition-colors",
|
|
16538
16541
|
isCurrentSlideInActiveShow ? "bg-primary text-white" : "bg-muted hover:bg-accent"
|
|
16539
16542
|
),
|
|
@@ -16581,7 +16584,7 @@ function PresentDropdown({
|
|
|
16581
16584
|
{
|
|
16582
16585
|
type: "button",
|
|
16583
16586
|
onClick: onPresent,
|
|
16584
|
-
className:
|
|
16587
|
+
className: chunkKA7ST7IH_js.cn(
|
|
16585
16588
|
"px-2 py-1 transition-colors",
|
|
16586
16589
|
isActive ? "bg-primary text-white" : "hover:bg-accent text-foreground"
|
|
16587
16590
|
),
|
|
@@ -16594,7 +16597,7 @@ function PresentDropdown({
|
|
|
16594
16597
|
{
|
|
16595
16598
|
type: "button",
|
|
16596
16599
|
onClick: () => setOpen((prev) => !prev),
|
|
16597
|
-
className:
|
|
16600
|
+
className: chunkKA7ST7IH_js.cn(
|
|
16598
16601
|
"px-1 py-1 transition-colors border-l border-border",
|
|
16599
16602
|
open ? "bg-primary text-white" : "hover:bg-accent text-foreground"
|
|
16600
16603
|
),
|
|
@@ -16782,7 +16785,7 @@ function OverflowMenu(p) {
|
|
|
16782
16785
|
{
|
|
16783
16786
|
type: "button",
|
|
16784
16787
|
onClick: () => p.onSetOverflowMenuOpen(!p.isOverflowMenuOpen),
|
|
16785
|
-
className:
|
|
16788
|
+
className: chunkKA7ST7IH_js.cn(
|
|
16786
16789
|
"p-1.5 rounded transition-colors",
|
|
16787
16790
|
p.isOverflowMenuOpen ? "bg-primary/80 text-white" : "bg-muted hover:bg-accent"
|
|
16788
16791
|
),
|
|
@@ -16837,7 +16840,7 @@ function ToolbarPrimaryRow(p) {
|
|
|
16837
16840
|
{
|
|
16838
16841
|
type: "button",
|
|
16839
16842
|
onClick: onToggleSidebar,
|
|
16840
|
-
className:
|
|
16843
|
+
className: chunkKA7ST7IH_js.cn(qab, !isSidebarCollapsed ? "text-foreground" : "text-muted-foreground"),
|
|
16841
16844
|
title: t("pptx.toolbar.toggleSlidesPanel"),
|
|
16842
16845
|
"aria-label": t("pptx.toolbar.toggleSlidesPanel"),
|
|
16843
16846
|
children: /* @__PURE__ */ jsxRuntime.jsx(lu.LuPanelLeft, { className: ic2 })
|
|
@@ -16849,7 +16852,7 @@ function ToolbarPrimaryRow(p) {
|
|
|
16849
16852
|
{
|
|
16850
16853
|
type: "button",
|
|
16851
16854
|
onClick: p.onToggleComments,
|
|
16852
|
-
className:
|
|
16855
|
+
className: chunkKA7ST7IH_js.cn(
|
|
16853
16856
|
qab,
|
|
16854
16857
|
"relative max-md:hidden",
|
|
16855
16858
|
p.isCommentsPanelOpen ? "text-foreground" : "text-muted-foreground"
|
|
@@ -16916,7 +16919,7 @@ function ToolbarPrimaryRow(p) {
|
|
|
16916
16919
|
{
|
|
16917
16920
|
type: "button",
|
|
16918
16921
|
onClick: onToggleInspector,
|
|
16919
|
-
className:
|
|
16922
|
+
className: chunkKA7ST7IH_js.cn(qab, isInspectorPaneOpen ? "text-foreground" : "text-muted-foreground"),
|
|
16920
16923
|
title: t("pptx.toolbar.toggleInspector"),
|
|
16921
16924
|
"aria-label": t("pptx.toolbar.toggleInspector"),
|
|
16922
16925
|
children: /* @__PURE__ */ jsxRuntime.jsx(lu.LuPanelRight, { className: ic2 })
|
|
@@ -16927,7 +16930,7 @@ function ToolbarPrimaryRow(p) {
|
|
|
16927
16930
|
{
|
|
16928
16931
|
type: "button",
|
|
16929
16932
|
onClick: p.onOpenSettings ?? p.onToggleShortcuts,
|
|
16930
|
-
className:
|
|
16933
|
+
className: chunkKA7ST7IH_js.cn(qab, "text-muted-foreground"),
|
|
16931
16934
|
title: t("pptx.toolbar.settingsShortcuts"),
|
|
16932
16935
|
"aria-label": t("pptx.toolbar.settings"),
|
|
16933
16936
|
children: /* @__PURE__ */ jsxRuntime.jsx(lu.LuSettings, { className: ics })
|
|
@@ -16940,7 +16943,7 @@ function ToolbarPrimaryRow(p) {
|
|
|
16940
16943
|
function Toolbar(p) {
|
|
16941
16944
|
const { mode, isNarrowViewport, isCompactToolbarOpen, toolbarSection, onSetToolbarSection } = p;
|
|
16942
16945
|
const { t } = reactI18next.useTranslation();
|
|
16943
|
-
const { isTabVisible } =
|
|
16946
|
+
const { isTabVisible } = chunkKA7ST7IH_js.useToolbarVisibility(p.hiddenActions);
|
|
16944
16947
|
if (isNarrowViewport && mode !== "present") {
|
|
16945
16948
|
return /* @__PURE__ */ jsxRuntime.jsx(MobileToolbar, { ...p });
|
|
16946
16949
|
}
|
|
@@ -16973,14 +16976,14 @@ function Toolbar(p) {
|
|
|
16973
16976
|
role: "tablist",
|
|
16974
16977
|
className: "flex items-center border-b border-border/60 px-1 max-md:overflow-x-auto max-md:scrollbar-none",
|
|
16975
16978
|
children: [
|
|
16976
|
-
|
|
16979
|
+
chunkKA7ST7IH_js.TOOLBAR_SECTIONS.filter((s) => isTabVisible(s.id)).map((s) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
16977
16980
|
"button",
|
|
16978
16981
|
{
|
|
16979
16982
|
type: "button",
|
|
16980
16983
|
role: "tab",
|
|
16981
16984
|
"aria-selected": toolbarSection === s.id,
|
|
16982
16985
|
onClick: () => onSetToolbarSection(s.id),
|
|
16983
|
-
className:
|
|
16986
|
+
className: chunkKA7ST7IH_js.cn(
|
|
16984
16987
|
"relative px-3.5 py-2 text-[12px] font-medium whitespace-nowrap transition-colors max-md:min-h-[36px] max-md:px-3",
|
|
16985
16988
|
toolbarSection === s.id ? s.id === "file" ? "text-white bg-primary/80 rounded-sm" : "text-foreground after:absolute after:-bottom-px after:left-0 after:right-0 after:h-[2.5px] after:bg-primary" : s.id === "file" ? "text-primary hover:bg-primary/15 rounded-sm" : "text-muted-foreground hover:text-foreground hover:bg-accent/30"
|
|
16986
16989
|
),
|
|
@@ -17003,7 +17006,7 @@ function Toolbar(p) {
|
|
|
17003
17006
|
{
|
|
17004
17007
|
type: "button",
|
|
17005
17008
|
onClick: p.onToggleCompactToolbar,
|
|
17006
|
-
className:
|
|
17009
|
+
className: chunkKA7ST7IH_js.cn(
|
|
17007
17010
|
"px-2 py-1 rounded text-[11px] transition-colors mr-1",
|
|
17008
17011
|
isCompactToolbarOpen ? "bg-primary/80 text-white" : "text-muted-foreground hover:text-foreground"
|
|
17009
17012
|
),
|
|
@@ -17019,7 +17022,7 @@ function Toolbar(p) {
|
|
|
17019
17022
|
showRibbon && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17020
17023
|
"div",
|
|
17021
17024
|
{
|
|
17022
|
-
className:
|
|
17025
|
+
className: chunkKA7ST7IH_js.cn(
|
|
17023
17026
|
"flex min-h-[82px] items-stretch gap-0 overflow-visible px-1 py-0.5 max-md:min-h-0 max-md:px-1 max-md:py-0.5 flex-nowrap",
|
|
17024
17027
|
isNarrowViewport && !isCompactToolbarOpen && "hidden"
|
|
17025
17028
|
),
|
|
@@ -17274,13 +17277,13 @@ function Toolbar(p) {
|
|
|
17274
17277
|
}
|
|
17275
17278
|
var INPUT_CLS = "bg-muted border border-border rounded px-2 py-1 w-full text-[11px]";
|
|
17276
17279
|
var SELECT_CLS = "bg-muted border border-border rounded px-2 py-1 w-full text-[11px]";
|
|
17277
|
-
var ENTRANCE_PRESETS =
|
|
17280
|
+
var ENTRANCE_PRESETS = chunkKA7ST7IH_js.ANIMATION_PRESET_OPTIONS.filter(
|
|
17278
17281
|
(o) => o.value === "fadeIn" || o.value === "flyIn" || o.value === "zoomIn"
|
|
17279
17282
|
);
|
|
17280
|
-
var EXIT_PRESETS =
|
|
17283
|
+
var EXIT_PRESETS = chunkKA7ST7IH_js.ANIMATION_PRESET_OPTIONS.filter(
|
|
17281
17284
|
(o) => o.value === "fadeOut" || o.value === "flyOut" || o.value === "zoomOut"
|
|
17282
17285
|
);
|
|
17283
|
-
var EMPHASIS_PRESETS =
|
|
17286
|
+
var EMPHASIS_PRESETS = chunkKA7ST7IH_js.ANIMATION_PRESET_OPTIONS.filter(
|
|
17284
17287
|
(o) => o.value === "spin" || o.value === "pulse" || o.value === "colorWave" || o.value === "bounce" || o.value === "flash" || o.value === "growShrink" || o.value === "teeter"
|
|
17285
17288
|
);
|
|
17286
17289
|
var TRIGGER_OPTIONS = [
|
|
@@ -17382,7 +17385,7 @@ function AnimationTimelineSection({
|
|
|
17382
17385
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-6 rounded bg-muted/50 border border-border overflow-hidden", children: timelineBarData.map((bar) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
17383
17386
|
"div",
|
|
17384
17387
|
{
|
|
17385
|
-
className:
|
|
17388
|
+
className: chunkKA7ST7IH_js.cn(
|
|
17386
17389
|
"absolute top-0.5 bottom-0.5 rounded-sm transition-colors",
|
|
17387
17390
|
animationTypeColor(bar.anim),
|
|
17388
17391
|
bar.anim.elementId === selectedElementId && "ring-1 ring-primary"
|
|
@@ -17416,7 +17419,7 @@ function AnimationTimelineSection({
|
|
|
17416
17419
|
onDragEnd: handleDragEnd,
|
|
17417
17420
|
onMouseEnter: () => handleAnimationHover(anim),
|
|
17418
17421
|
onMouseLeave: handleAnimationHoverEnd,
|
|
17419
|
-
className:
|
|
17422
|
+
className: chunkKA7ST7IH_js.cn(
|
|
17420
17423
|
"flex items-center gap-1 px-1 py-0.5 rounded text-[10px] cursor-grab transition-colors",
|
|
17421
17424
|
isSelected ? "bg-primary/30 text-primary" : "bg-muted/50 text-muted-foreground",
|
|
17422
17425
|
isDragging && "opacity-40",
|
|
@@ -17580,13 +17583,13 @@ function useAnimationPreview({
|
|
|
17580
17583
|
if (!preset || preset === "none") {
|
|
17581
17584
|
return;
|
|
17582
17585
|
}
|
|
17583
|
-
|
|
17586
|
+
chunkKA7ST7IH_js.startPreviewAnimation(anim.elementId, preset, {
|
|
17584
17587
|
direction: anim.direction,
|
|
17585
17588
|
durationMs: anim.durationMs ?? 500,
|
|
17586
17589
|
timingCurve: anim.timingCurve
|
|
17587
17590
|
});
|
|
17588
17591
|
}, []);
|
|
17589
|
-
const handleAnimationHoverEnd = React14.useCallback(() =>
|
|
17592
|
+
const handleAnimationHoverEnd = React14.useCallback(() => chunkKA7ST7IH_js.stopPreviewAnimation(), []);
|
|
17590
17593
|
const handlePreviewClick = React14.useCallback(() => {
|
|
17591
17594
|
if (!selectedElementAnimation) {
|
|
17592
17595
|
return;
|
|
@@ -17595,7 +17598,7 @@ function useAnimationPreview({
|
|
|
17595
17598
|
if (!preset || preset === "none") {
|
|
17596
17599
|
return;
|
|
17597
17600
|
}
|
|
17598
|
-
|
|
17601
|
+
chunkKA7ST7IH_js.startPreviewAnimation(selectedElementId, preset, {
|
|
17599
17602
|
direction: selectedElementAnimation.direction,
|
|
17600
17603
|
durationMs: selectedElementAnimation.durationMs ?? 500,
|
|
17601
17604
|
timingCurve: selectedElementAnimation.timingCurve
|
|
@@ -17927,7 +17930,7 @@ function AnimationPanel({
|
|
|
17927
17930
|
{
|
|
17928
17931
|
type: "button",
|
|
17929
17932
|
disabled: !canEdit,
|
|
17930
|
-
className:
|
|
17933
|
+
className: chunkKA7ST7IH_js.cn(
|
|
17931
17934
|
"flex items-center justify-center w-7 h-7 rounded border transition-colors",
|
|
17932
17935
|
isActive ? "border-primary bg-primary/20 text-primary" : "border-border bg-muted text-muted-foreground hover:bg-accent"
|
|
17933
17936
|
),
|
|
@@ -18169,7 +18172,7 @@ function ActionTriggerSection({
|
|
|
18169
18172
|
"select",
|
|
18170
18173
|
{
|
|
18171
18174
|
disabled: !canEdit,
|
|
18172
|
-
className:
|
|
18175
|
+
className: chunkKA7ST7IH_js.cn(INPUT, "w-full"),
|
|
18173
18176
|
value: activeType,
|
|
18174
18177
|
onChange: (e) => onChangeType(e.target.value),
|
|
18175
18178
|
children: ACTION_TYPE_OPTIONS.map((o) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: o.value, children: t(o.label) }, o.value))
|
|
@@ -18180,7 +18183,7 @@ function ActionTriggerSection({
|
|
|
18180
18183
|
{
|
|
18181
18184
|
type: "text",
|
|
18182
18185
|
disabled: !canEdit,
|
|
18183
|
-
className:
|
|
18186
|
+
className: chunkKA7ST7IH_js.cn(INPUT, "w-full"),
|
|
18184
18187
|
placeholder: "https://...",
|
|
18185
18188
|
value: action?.url ?? fallbackUrl ?? "",
|
|
18186
18189
|
onChange: (e) => onChangeUrl(e.target.value)
|
|
@@ -18191,7 +18194,7 @@ function ActionTriggerSection({
|
|
|
18191
18194
|
{
|
|
18192
18195
|
type: "number",
|
|
18193
18196
|
disabled: !canEdit,
|
|
18194
|
-
className:
|
|
18197
|
+
className: chunkKA7ST7IH_js.cn(INPUT, "w-full"),
|
|
18195
18198
|
placeholder: t("pptx.action.slideNumberPlaceholder"),
|
|
18196
18199
|
min: 1,
|
|
18197
18200
|
max: slideCount,
|
|
@@ -19846,7 +19849,7 @@ function ConnectorPanel({
|
|
|
19846
19849
|
"select",
|
|
19847
19850
|
{
|
|
19848
19851
|
disabled: !canEdit,
|
|
19849
|
-
className:
|
|
19852
|
+
className: chunkKA7ST7IH_js.cn(INPUT, "w-full"),
|
|
19850
19853
|
value: selectedElement.shapeStyle?.[key] ?? "none",
|
|
19851
19854
|
onChange: (e) => onUpdateElementStyle({ [key]: e.target.value }),
|
|
19852
19855
|
children: [
|
|
@@ -19898,7 +19901,7 @@ function OlePropertiesPanel({
|
|
|
19898
19901
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
19899
19902
|
"span",
|
|
19900
19903
|
{
|
|
19901
|
-
className:
|
|
19904
|
+
className: chunkKA7ST7IH_js.cn(
|
|
19902
19905
|
"inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium",
|
|
19903
19906
|
ole.isLinked ? "bg-blue-500/20 text-blue-400" : "bg-green-500/20 text-green-400"
|
|
19904
19907
|
),
|
|
@@ -19957,7 +19960,7 @@ function LayerOrderButtons({
|
|
|
19957
19960
|
"button",
|
|
19958
19961
|
{
|
|
19959
19962
|
type: "button",
|
|
19960
|
-
className:
|
|
19963
|
+
className: chunkKA7ST7IH_js.cn("flex-1", BTN),
|
|
19961
19964
|
disabled: !canEdit,
|
|
19962
19965
|
onClick: () => onMoveLayer("forward"),
|
|
19963
19966
|
children: "\u2191 Forward"
|
|
@@ -19967,7 +19970,7 @@ function LayerOrderButtons({
|
|
|
19967
19970
|
"button",
|
|
19968
19971
|
{
|
|
19969
19972
|
type: "button",
|
|
19970
|
-
className:
|
|
19973
|
+
className: chunkKA7ST7IH_js.cn("flex-1", BTN),
|
|
19971
19974
|
disabled: !canEdit,
|
|
19972
19975
|
onClick: () => onMoveLayer("backward"),
|
|
19973
19976
|
children: "\u2193 Backward"
|
|
@@ -19991,7 +19994,7 @@ function ArtisticEffectsGallery({
|
|
|
19991
19994
|
{
|
|
19992
19995
|
type: "button",
|
|
19993
19996
|
disabled: !canEdit,
|
|
19994
|
-
className:
|
|
19997
|
+
className: chunkKA7ST7IH_js.cn(
|
|
19995
19998
|
"flex flex-col items-center gap-0.5 rounded border p-0.5 hover:bg-accent/50",
|
|
19996
19999
|
isActive ? "border-primary bg-primary/10" : "border-border"
|
|
19997
20000
|
),
|
|
@@ -20440,7 +20443,7 @@ function ImagePropertiesPanel({
|
|
|
20440
20443
|
{
|
|
20441
20444
|
rows: 2,
|
|
20442
20445
|
disabled: !canEdit,
|
|
20443
|
-
className:
|
|
20446
|
+
className: chunkKA7ST7IH_js.cn(INPUT, "resize-none text-[11px]"),
|
|
20444
20447
|
value: selectedElement.altText ?? "",
|
|
20445
20448
|
onChange: (e) => onUpdateElement({
|
|
20446
20449
|
altText: e.target.value
|
|
@@ -21399,11 +21402,11 @@ function ShapeTextPanels({
|
|
|
21399
21402
|
{
|
|
21400
21403
|
value: selectedElement.shapeType || "rect",
|
|
21401
21404
|
disabled: !canEdit,
|
|
21402
|
-
className:
|
|
21405
|
+
className: chunkKA7ST7IH_js.cn(INPUT, "w-full"),
|
|
21403
21406
|
onChange: (e) => onUpdateElement({
|
|
21404
21407
|
shapeType: e.target.value
|
|
21405
21408
|
}),
|
|
21406
|
-
children:
|
|
21409
|
+
children: chunkKA7ST7IH_js.SHAPE_PRESETS.filter((p) => p.type !== "connector").map((p) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: p.type, children: t(p.i18nKey) }, p.type))
|
|
21407
21410
|
}
|
|
21408
21411
|
)
|
|
21409
21412
|
] }),
|
|
@@ -21533,7 +21536,7 @@ function TextFormatToggle({
|
|
|
21533
21536
|
{
|
|
21534
21537
|
type: "button",
|
|
21535
21538
|
disabled,
|
|
21536
|
-
className:
|
|
21539
|
+
className: chunkKA7ST7IH_js.cn(
|
|
21537
21540
|
"px-2 py-1 rounded text-[11px] transition-colors",
|
|
21538
21541
|
italic && "italic",
|
|
21539
21542
|
underline && "underline",
|
|
@@ -21825,7 +21828,7 @@ function SmartArtLayoutSwitcher({
|
|
|
21825
21828
|
type: "button",
|
|
21826
21829
|
"data-testid": `smartart-layout-${type}`,
|
|
21827
21830
|
disabled: !canEdit,
|
|
21828
|
-
className:
|
|
21831
|
+
className: chunkKA7ST7IH_js.cn(
|
|
21829
21832
|
"flex flex-col items-center gap-0.5 rounded border p-1.5 transition-colors",
|
|
21830
21833
|
"text-[9px] leading-tight",
|
|
21831
21834
|
isActive ? "border-primary bg-primary/15 text-primary" : "border-border text-muted-foreground hover:bg-muted hover:text-foreground",
|
|
@@ -21897,7 +21900,7 @@ function SmartArtNodeStyleControls({
|
|
|
21897
21900
|
disabled: !canEdit,
|
|
21898
21901
|
"aria-label": `Bold ${label}`,
|
|
21899
21902
|
"aria-pressed": bold,
|
|
21900
|
-
className:
|
|
21903
|
+
className: chunkKA7ST7IH_js.cn(
|
|
21901
21904
|
EMPHASIS_BTN,
|
|
21902
21905
|
"font-bold",
|
|
21903
21906
|
bold ? "border-primary bg-primary/20 text-primary" : "border-border text-muted-foreground"
|
|
@@ -21913,7 +21916,7 @@ function SmartArtNodeStyleControls({
|
|
|
21913
21916
|
disabled: !canEdit,
|
|
21914
21917
|
"aria-label": `Italic ${label}`,
|
|
21915
21918
|
"aria-pressed": italic,
|
|
21916
|
-
className:
|
|
21919
|
+
className: chunkKA7ST7IH_js.cn(
|
|
21917
21920
|
EMPHASIS_BTN,
|
|
21918
21921
|
"italic",
|
|
21919
21922
|
italic ? "border-primary bg-primary/20 text-primary" : "border-border text-muted-foreground"
|
|
@@ -21952,7 +21955,7 @@ function SmartArtNodeRow({
|
|
|
21952
21955
|
"div",
|
|
21953
21956
|
{
|
|
21954
21957
|
role: "listitem",
|
|
21955
|
-
className:
|
|
21958
|
+
className: chunkKA7ST7IH_js.cn(
|
|
21956
21959
|
"rounded border bg-background/60 p-1.5",
|
|
21957
21960
|
isChild ? "border-border/60 ml-4" : "border-border"
|
|
21958
21961
|
),
|
|
@@ -21967,7 +21970,7 @@ function SmartArtNodeRow({
|
|
|
21967
21970
|
"data-testid": "smartart-node-text",
|
|
21968
21971
|
disabled: !canEdit,
|
|
21969
21972
|
"aria-label": label,
|
|
21970
|
-
className:
|
|
21973
|
+
className: chunkKA7ST7IH_js.cn(INPUT, "flex-1 text-[11px] py-0.5"),
|
|
21971
21974
|
value: text,
|
|
21972
21975
|
onChange: (e) => onChangeText(nodeId, e.target.value),
|
|
21973
21976
|
onKeyDown: (e) => onKeyDown(e, nodeId),
|
|
@@ -22016,7 +22019,7 @@ function SmartArtNodeRow({
|
|
|
22016
22019
|
{
|
|
22017
22020
|
type: "button",
|
|
22018
22021
|
disabled: !canEdit || removeDisabled,
|
|
22019
|
-
className:
|
|
22022
|
+
className: chunkKA7ST7IH_js.cn(MINI_BTN, "hover:text-red-400"),
|
|
22020
22023
|
onClick: () => onRemove(nodeId),
|
|
22021
22024
|
"aria-label": `Remove ${label}`,
|
|
22022
22025
|
title: removeDisabled ? t("pptx.smartArt.layoutMinimum") : t("pptx.smartArt.remove"),
|
|
@@ -22074,7 +22077,7 @@ function SmartArtPropertiesPanel({
|
|
|
22074
22077
|
const reflowed = box ? chunkVSNXVKJI_js.rebuildDrawingShapesIfCleared(
|
|
22075
22078
|
newData,
|
|
22076
22079
|
newData.layout,
|
|
22077
|
-
|
|
22080
|
+
chunkKA7ST7IH_js.resolveSmartArtDataPalette(newData),
|
|
22078
22081
|
newData.style ?? "flat",
|
|
22079
22082
|
"inspector",
|
|
22080
22083
|
box
|
|
@@ -22183,7 +22186,7 @@ function SmartArtPropertiesPanel({
|
|
|
22183
22186
|
disabled: !canEdit,
|
|
22184
22187
|
"data-testid": "smartart-color-scheme",
|
|
22185
22188
|
"aria-label": t("pptx.smartart.colorScheme"),
|
|
22186
|
-
className:
|
|
22189
|
+
className: chunkKA7ST7IH_js.cn(INPUT, "w-full"),
|
|
22187
22190
|
value: smartArtData.colorScheme ?? "colorful1",
|
|
22188
22191
|
onChange: (e) => updateSmartArt({ colorScheme: e.target.value }),
|
|
22189
22192
|
children: COLOR_SCHEMES.map((cs) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: cs, children: cs }, cs))
|
|
@@ -22198,7 +22201,7 @@ function SmartArtPropertiesPanel({
|
|
|
22198
22201
|
type: "button",
|
|
22199
22202
|
disabled: !canEdit,
|
|
22200
22203
|
"aria-pressed": (smartArtData.style ?? "flat") === s,
|
|
22201
|
-
className:
|
|
22204
|
+
className: chunkKA7ST7IH_js.cn(
|
|
22202
22205
|
"flex-1 px-2 py-1 text-[10px] rounded border transition-colors",
|
|
22203
22206
|
(smartArtData.style ?? "flat") === s ? "border-primary bg-primary/20 text-primary" : "border-border text-muted-foreground hover:bg-muted"
|
|
22204
22207
|
),
|
|
@@ -22602,7 +22605,7 @@ function TableCellFormattingPanel({
|
|
|
22602
22605
|
{
|
|
22603
22606
|
type: "button",
|
|
22604
22607
|
disabled: !canEdit,
|
|
22605
|
-
className:
|
|
22608
|
+
className: chunkKA7ST7IH_js.cn(
|
|
22606
22609
|
"px-2 py-1 rounded text-[11px] transition-colors",
|
|
22607
22610
|
cls,
|
|
22608
22611
|
cs[key] ? "bg-primary text-white" : "bg-muted hover:bg-accent"
|
|
@@ -22621,7 +22624,7 @@ function TableCellFormattingPanel({
|
|
|
22621
22624
|
{
|
|
22622
22625
|
type: "button",
|
|
22623
22626
|
disabled: !canEdit,
|
|
22624
|
-
className:
|
|
22627
|
+
className: chunkKA7ST7IH_js.cn(
|
|
22625
22628
|
"px-2 py-1 rounded text-[11px] transition-colors",
|
|
22626
22629
|
cs.align === val ? "bg-primary text-white" : "bg-muted hover:bg-accent"
|
|
22627
22630
|
),
|
|
@@ -22639,7 +22642,7 @@ function TableCellFormattingPanel({
|
|
|
22639
22642
|
{
|
|
22640
22643
|
type: "button",
|
|
22641
22644
|
disabled: !canEdit,
|
|
22642
|
-
className:
|
|
22645
|
+
className: chunkKA7ST7IH_js.cn(
|
|
22643
22646
|
"px-2 py-1 rounded text-[11px] transition-colors",
|
|
22644
22647
|
cs.vAlign === val ? "bg-primary text-white" : "bg-muted hover:bg-accent"
|
|
22645
22648
|
),
|
|
@@ -22672,7 +22675,7 @@ function TableCellFormattingPanel({
|
|
|
22672
22675
|
{
|
|
22673
22676
|
type: "number",
|
|
22674
22677
|
disabled: !canEdit,
|
|
22675
|
-
className:
|
|
22678
|
+
className: chunkKA7ST7IH_js.cn(INPUT, "w-14"),
|
|
22676
22679
|
min: 0,
|
|
22677
22680
|
max: 10,
|
|
22678
22681
|
value: cs[widthKey] ?? 1,
|
|
@@ -22688,7 +22691,7 @@ function TableCellFormattingPanel({
|
|
|
22688
22691
|
{
|
|
22689
22692
|
type: "button",
|
|
22690
22693
|
disabled: !canEdit,
|
|
22691
|
-
className:
|
|
22694
|
+
className: chunkKA7ST7IH_js.cn(BTN, "text-center"),
|
|
22692
22695
|
onClick: () => {
|
|
22693
22696
|
const newRows = chunkVSNXVKJI_js.computeMergeCellRight(td, rowIndex, columnIndex);
|
|
22694
22697
|
if (newRows) {
|
|
@@ -22703,7 +22706,7 @@ function TableCellFormattingPanel({
|
|
|
22703
22706
|
{
|
|
22704
22707
|
type: "button",
|
|
22705
22708
|
disabled: !canEdit,
|
|
22706
|
-
className:
|
|
22709
|
+
className: chunkKA7ST7IH_js.cn(BTN, "text-center"),
|
|
22707
22710
|
onClick: () => {
|
|
22708
22711
|
const newRows = chunkVSNXVKJI_js.computeMergeCellDown(td, rowIndex, columnIndex);
|
|
22709
22712
|
if (newRows) {
|
|
@@ -22718,7 +22721,7 @@ function TableCellFormattingPanel({
|
|
|
22718
22721
|
{
|
|
22719
22722
|
type: "button",
|
|
22720
22723
|
disabled: !canEdit,
|
|
22721
|
-
className:
|
|
22724
|
+
className: chunkKA7ST7IH_js.cn(BTN, "text-center"),
|
|
22722
22725
|
onClick: () => {
|
|
22723
22726
|
const newRows = chunkVSNXVKJI_js.computeSplitCell(td, rowIndex, columnIndex);
|
|
22724
22727
|
if (newRows) {
|
|
@@ -23126,7 +23129,7 @@ function InspectorCommentRow({
|
|
|
23126
23129
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
23127
23130
|
"div",
|
|
23128
23131
|
{
|
|
23129
|
-
className:
|
|
23132
|
+
className: chunkKA7ST7IH_js.cn(
|
|
23130
23133
|
"rounded border border-border bg-card p-2",
|
|
23131
23134
|
depth > 0 && "ml-3 border-l-2 border-l-primary/40"
|
|
23132
23135
|
),
|
|
@@ -23214,7 +23217,7 @@ function InspectorCommentRow({
|
|
|
23214
23217
|
"button",
|
|
23215
23218
|
{
|
|
23216
23219
|
type: "button",
|
|
23217
|
-
className:
|
|
23220
|
+
className: chunkKA7ST7IH_js.cn(
|
|
23218
23221
|
"inline-flex items-center justify-center p-1.5 border-l border-border transition-colors",
|
|
23219
23222
|
comment.resolved ? "bg-green-900/40 text-green-300 hover:bg-green-900/60" : "hover:bg-accent text-foreground hover:text-foreground"
|
|
23220
23223
|
),
|
|
@@ -23408,7 +23411,7 @@ function InspectorCommentsSection({
|
|
|
23408
23411
|
type: "button",
|
|
23409
23412
|
onClick: onAddComment,
|
|
23410
23413
|
disabled: !commentDraft.trim(),
|
|
23411
|
-
className:
|
|
23414
|
+
className: chunkKA7ST7IH_js.cn(
|
|
23412
23415
|
"w-full inline-flex items-center justify-center gap-1 rounded px-2 py-1 text-[11px] font-medium transition-colors",
|
|
23413
23416
|
commentDraft.trim() ? "bg-primary hover:bg-primary/80 text-white" : "bg-muted text-muted-foreground cursor-not-allowed"
|
|
23414
23417
|
),
|
|
@@ -23433,7 +23436,7 @@ function InspectorPaneHeader({
|
|
|
23433
23436
|
{
|
|
23434
23437
|
type: "button",
|
|
23435
23438
|
title: label,
|
|
23436
|
-
className:
|
|
23439
|
+
className: chunkKA7ST7IH_js.cn(
|
|
23437
23440
|
"flex items-center gap-1 px-2 py-1 rounded text-[11px] transition-colors",
|
|
23438
23441
|
activeTab === key ? "bg-primary text-white" : "text-muted-foreground hover:text-foreground hover:bg-accent"
|
|
23439
23442
|
),
|
|
@@ -23542,7 +23545,7 @@ function CustomPropertiesBlock({
|
|
|
23542
23545
|
"button",
|
|
23543
23546
|
{
|
|
23544
23547
|
type: "button",
|
|
23545
|
-
className:
|
|
23548
|
+
className: chunkKA7ST7IH_js.cn(BTN, "px-1.5 text-red-400 hover:text-red-300"),
|
|
23546
23549
|
onClick: () => onUpdate(customProperties.filter((_, i) => i !== index)),
|
|
23547
23550
|
children: "\xD7"
|
|
23548
23551
|
}
|
|
@@ -23677,7 +23680,7 @@ function PresentationSettingsCard({
|
|
|
23677
23680
|
"select",
|
|
23678
23681
|
{
|
|
23679
23682
|
disabled: !canEdit,
|
|
23680
|
-
className:
|
|
23683
|
+
className: chunkKA7ST7IH_js.cn(INPUT, "w-28"),
|
|
23681
23684
|
value: presentationProperties.showType ?? "presented",
|
|
23682
23685
|
onChange: (e) => onUpdate({
|
|
23683
23686
|
showType: e.target.value
|
|
@@ -23735,7 +23738,7 @@ function PresentationSettingsCard({
|
|
|
23735
23738
|
min: 1,
|
|
23736
23739
|
max: 16,
|
|
23737
23740
|
disabled: !canEdit,
|
|
23738
|
-
className:
|
|
23741
|
+
className: chunkKA7ST7IH_js.cn(INPUT, "w-20"),
|
|
23739
23742
|
value: presentationProperties.printSlidesPerPage ?? 1,
|
|
23740
23743
|
onChange: (e) => onUpdate({ printSlidesPerPage: Number(e.target.value) })
|
|
23741
23744
|
}
|
|
@@ -24032,7 +24035,7 @@ function TagsSection({
|
|
|
24032
24035
|
"button",
|
|
24033
24036
|
{
|
|
24034
24037
|
type: "button",
|
|
24035
|
-
className:
|
|
24038
|
+
className: chunkKA7ST7IH_js.cn(BTN, "px-1.5 text-red-400 hover:text-red-300"),
|
|
24036
24039
|
title: t("pptx.tags.deleteTag"),
|
|
24037
24040
|
onClick: () => deleteTag(tag.colIdx, tag.tagIdx),
|
|
24038
24041
|
children: /* @__PURE__ */ jsxRuntime.jsx(lu.LuTrash2, { className: "w-3 h-3" })
|
|
@@ -24132,7 +24135,7 @@ function PresentationPropertiesPanel({
|
|
|
24132
24135
|
canEdit
|
|
24133
24136
|
}
|
|
24134
24137
|
),
|
|
24135
|
-
activeSlide && /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
24138
|
+
activeSlide && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkKA7ST7IH_js.cn(CARD, "space-y-1"), children: [
|
|
24136
24139
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: HEADING, children: "Slide" }),
|
|
24137
24140
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-[11px] text-muted-foreground", children: [
|
|
24138
24141
|
activeSlide.elements?.length ?? 0,
|
|
@@ -24153,7 +24156,7 @@ function SlideBackgroundPanel({
|
|
|
24153
24156
|
const { t } = reactI18next.useTranslation();
|
|
24154
24157
|
const bgImageInputRef = React14.useRef(null);
|
|
24155
24158
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
24156
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
24159
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkKA7ST7IH_js.cn(CARD, "space-y-2"), children: [
|
|
24157
24160
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: HEADING, children: "Background" }),
|
|
24158
24161
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 text-[11px]", children: [
|
|
24159
24162
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground w-10 shrink-0", children: "Colour" }),
|
|
@@ -24199,7 +24202,7 @@ function SlideBackgroundPanel({
|
|
|
24199
24202
|
"button",
|
|
24200
24203
|
{
|
|
24201
24204
|
type: "button",
|
|
24202
|
-
className:
|
|
24205
|
+
className: chunkKA7ST7IH_js.cn(BTN, "flex-1 text-center"),
|
|
24203
24206
|
disabled: !canEdit,
|
|
24204
24207
|
onClick: () => bgImageInputRef.current?.click(),
|
|
24205
24208
|
children: activeSlide.backgroundImage ? t("pptx.slideBackground.replaceImage") : t("pptx.slideBackground.chooseImage")
|
|
@@ -24232,7 +24235,7 @@ function SlideBackgroundPanel({
|
|
|
24232
24235
|
"button",
|
|
24233
24236
|
{
|
|
24234
24237
|
type: "button",
|
|
24235
|
-
className:
|
|
24238
|
+
className: chunkKA7ST7IH_js.cn(BTN, "w-full text-center text-red-400 hover:text-red-300"),
|
|
24236
24239
|
disabled: !canEdit,
|
|
24237
24240
|
onClick: () => onUpdateSlide({
|
|
24238
24241
|
backgroundColor: void 0,
|
|
@@ -24263,7 +24266,7 @@ function TemplateBackgroundCard({
|
|
|
24263
24266
|
onGetTemplateBackgroundColor
|
|
24264
24267
|
}) {
|
|
24265
24268
|
const { t } = reactI18next.useTranslation();
|
|
24266
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
24269
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkKA7ST7IH_js.cn(CARD, "space-y-2"), children: [
|
|
24267
24270
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: HEADING, children: t("pptx.slideBackground.templateBackgroundsHeading") }),
|
|
24268
24271
|
activeSlide.layoutPath && /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 text-[11px]", children: [
|
|
24269
24272
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -24410,7 +24413,7 @@ function InspectorPane(props) {
|
|
|
24410
24413
|
} = props;
|
|
24411
24414
|
const hasSelection = selectedElement !== null;
|
|
24412
24415
|
const { t } = reactI18next.useTranslation();
|
|
24413
|
-
const { dragY, handlers: dragHandlers } =
|
|
24416
|
+
const { dragY, handlers: dragHandlers } = chunkKA7ST7IH_js.useSheetDismissDrag(onClose);
|
|
24414
24417
|
const {
|
|
24415
24418
|
animationPanelHeight,
|
|
24416
24419
|
effectiveThemeOptions,
|
|
@@ -24431,7 +24434,7 @@ function InspectorPane(props) {
|
|
|
24431
24434
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
24432
24435
|
"div",
|
|
24433
24436
|
{
|
|
24434
|
-
className:
|
|
24437
|
+
className: chunkKA7ST7IH_js.cn(
|
|
24435
24438
|
// Shared styles
|
|
24436
24439
|
"bg-background flex flex-col text-xs text-foreground shadow-xl",
|
|
24437
24440
|
// Mobile: absolute bottom sheet overlay sized via dvh so it
|
|
@@ -24469,7 +24472,7 @@ function InspectorPane(props) {
|
|
|
24469
24472
|
),
|
|
24470
24473
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 overflow-y-auto p-3 space-y-3", children: [
|
|
24471
24474
|
activeTab === "elements" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
|
|
24472
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
24475
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkKA7ST7IH_js.cn(HEADING, "mb-2"), children: t("pptx.inspector.layerOrder") }),
|
|
24473
24476
|
activeSlide ? [...activeSlide.elements || []].reverse().map((el, ri) => {
|
|
24474
24477
|
const idx = (activeSlide.elements || []).length - 1 - ri;
|
|
24475
24478
|
const sel = selectedElement?.id === el.id || selectedElementIds.includes(el.id);
|
|
@@ -24478,7 +24481,7 @@ function InspectorPane(props) {
|
|
|
24478
24481
|
"div",
|
|
24479
24482
|
{
|
|
24480
24483
|
title: `${el.type} \u2014 ${el.id}`,
|
|
24481
|
-
className:
|
|
24484
|
+
className: chunkKA7ST7IH_js.cn(
|
|
24482
24485
|
"flex items-center gap-2 px-2 py-1 rounded cursor-pointer transition-colors",
|
|
24483
24486
|
sel ? "bg-primary/30 text-primary" : "hover:bg-muted text-foreground"
|
|
24484
24487
|
),
|
|
@@ -25082,7 +25085,7 @@ function PresentationTouchControls({
|
|
|
25082
25085
|
hideNavigation = false
|
|
25083
25086
|
}) {
|
|
25084
25087
|
const { t } = reactI18next.useTranslation();
|
|
25085
|
-
const { isTouchDevice } =
|
|
25088
|
+
const { isTouchDevice } = chunkKA7ST7IH_js.useIsMobile();
|
|
25086
25089
|
if (!isTouchDevice) {
|
|
25087
25090
|
return null;
|
|
25088
25091
|
}
|
|
@@ -25783,7 +25786,7 @@ function PrintDialog({
|
|
|
25783
25786
|
defaultFrameSlides
|
|
25784
25787
|
}) {
|
|
25785
25788
|
const { t } = reactI18next.useTranslation();
|
|
25786
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
25789
|
+
const { panelStyle, handlers: dragHandlers } = chunkKA7ST7IH_js.useModalDismissDrag(onClose);
|
|
25787
25790
|
const [printWhat, setPrintWhat] = React14.useState("slides");
|
|
25788
25791
|
const [orientation, setOrientation] = React14.useState("landscape");
|
|
25789
25792
|
const [colorMode, setColorMode] = React14.useState("color");
|
|
@@ -26312,7 +26315,7 @@ function BroadcastDialog({
|
|
|
26312
26315
|
const [serverUrl, setServerUrl] = React14.useState("");
|
|
26313
26316
|
const [copied, setCopied] = React14.useState(false);
|
|
26314
26317
|
const dialogRef = React14.useRef(null);
|
|
26315
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
26318
|
+
const { panelStyle, handlers: dragHandlers } = chunkKA7ST7IH_js.useModalDismissDrag(onClose);
|
|
26316
26319
|
useModalFocus(open, dialogRef, onClose);
|
|
26317
26320
|
React14.useEffect(() => {
|
|
26318
26321
|
if (open && !isBroadcasting) {
|
|
@@ -26875,7 +26878,7 @@ function ShareDialog({
|
|
|
26875
26878
|
const [invitation, setInvitation] = React14.useState("");
|
|
26876
26879
|
const [copied, setCopied] = React14.useState(false);
|
|
26877
26880
|
const dialogRef = React14.useRef(null);
|
|
26878
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
26881
|
+
const { panelStyle, handlers: dragHandlers } = chunkKA7ST7IH_js.useModalDismissDrag(onClose);
|
|
26879
26882
|
useModalFocus(open, dialogRef, onClose);
|
|
26880
26883
|
React14.useEffect(() => {
|
|
26881
26884
|
if (activeCollaboration) {
|
|
@@ -27150,12 +27153,12 @@ function HyperlinkEditDialog({
|
|
|
27150
27153
|
onCancel
|
|
27151
27154
|
}) {
|
|
27152
27155
|
const { t } = reactI18next.useTranslation();
|
|
27153
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
27156
|
+
const { panelStyle, handlers: dragHandlers } = chunkKA7ST7IH_js.useModalDismissDrag(onCancel);
|
|
27154
27157
|
const inputRef = React14.useRef(null);
|
|
27155
|
-
const detectedType =
|
|
27156
|
-
const emailParts =
|
|
27157
|
-
const detectedSlide =
|
|
27158
|
-
const detectedVerb = initialAction ?
|
|
27158
|
+
const detectedType = chunkKA7ST7IH_js.detectTargetType(initialUrl, initialAction);
|
|
27159
|
+
const emailParts = chunkKA7ST7IH_js.parseEmailUrl(initialUrl || "");
|
|
27160
|
+
const detectedSlide = chunkKA7ST7IH_js.parseSlideFromUrl(initialUrl, initialAction);
|
|
27161
|
+
const detectedVerb = initialAction ? chunkKA7ST7IH_js.ACTION_VERB_MAP[initialAction.toLowerCase()] || "nextSlide" : "nextSlide";
|
|
27159
27162
|
const [targetType, setTargetType] = React14.useState(detectedType);
|
|
27160
27163
|
const [url, setUrl] = React14.useState(
|
|
27161
27164
|
detectedType === "email" || detectedType === "slide" || detectedType === "action" ? "" : initialUrl || ""
|
|
@@ -27186,7 +27189,7 @@ function HyperlinkEditDialog({
|
|
|
27186
27189
|
actionVerb
|
|
27187
27190
|
});
|
|
27188
27191
|
};
|
|
27189
|
-
const tabCls = (active) =>
|
|
27192
|
+
const tabCls = (active) => chunkKA7ST7IH_js.cn(
|
|
27190
27193
|
"px-3 py-1.5 text-xs rounded-t border-b-2 transition-colors",
|
|
27191
27194
|
active ? "border-primary text-primary font-medium" : "border-transparent text-muted-foreground hover:text-foreground hover:border-border"
|
|
27192
27195
|
);
|
|
@@ -27576,7 +27579,7 @@ function DrawingOverlaySvg({
|
|
|
27576
27579
|
}
|
|
27577
27580
|
);
|
|
27578
27581
|
}
|
|
27579
|
-
function GridOverlay({ canvasSize, gridSpacingPx =
|
|
27582
|
+
function GridOverlay({ canvasSize, gridSpacingPx = chunkKA7ST7IH_js.GRID_SIZE, visible }) {
|
|
27580
27583
|
const spacing = Math.max(gridSpacingPx, 2);
|
|
27581
27584
|
const patternId = React14.useMemo(() => `grid-dot-pattern-${Math.random().toString(36).slice(2, 8)}`, []);
|
|
27582
27585
|
if (!visible) {
|
|
@@ -28857,7 +28860,7 @@ function ViewerBottomPanels({
|
|
|
28857
28860
|
hideStatusBar = false,
|
|
28858
28861
|
hiddenActions
|
|
28859
28862
|
}) {
|
|
28860
|
-
const { isHidden } =
|
|
28863
|
+
const { isHidden } = chunkKA7ST7IH_js.useToolbarVisibility(hiddenActions);
|
|
28861
28864
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
28862
28865
|
onResizeBottom && !isSlideNotesCollapsed && /* @__PURE__ */ jsxRuntime.jsx(ResizeHandle, { direction: "vertical", onResize: onResizeBottom }),
|
|
28863
28866
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -29076,7 +29079,7 @@ function scopeLayoutOptionsToActiveSlide(options, activeSlide) {
|
|
|
29076
29079
|
function TitleBar(p) {
|
|
29077
29080
|
const { t } = reactI18next.useTranslation();
|
|
29078
29081
|
const editing = (p.mode === "edit" || p.mode === "master") && p.canEdit;
|
|
29079
|
-
const { isHidden } =
|
|
29082
|
+
const { isHidden } = chunkKA7ST7IH_js.useToolbarVisibility(p.hiddenActions);
|
|
29080
29083
|
const [searchQuery, setSearchQuery] = React14.useState("");
|
|
29081
29084
|
const [searchFocused, setSearchFocused] = React14.useState(false);
|
|
29082
29085
|
const searchRef = React14.useRef(null);
|
|
@@ -29132,7 +29135,7 @@ function TitleBar(p) {
|
|
|
29132
29135
|
role: "switch",
|
|
29133
29136
|
"aria-checked": p.autosaveEnabled,
|
|
29134
29137
|
onClick: p.onToggleAutosave,
|
|
29135
|
-
className:
|
|
29138
|
+
className: chunkKA7ST7IH_js.cn(
|
|
29136
29139
|
chunkVSNXVKJI_js.TITLE_BAR_CLASSES.toggleTrack,
|
|
29137
29140
|
p.autosaveEnabled ? chunkVSNXVKJI_js.TITLE_BAR_CLASSES.toggleTrackOn : chunkVSNXVKJI_js.TITLE_BAR_CLASSES.toggleTrackOff
|
|
29138
29141
|
),
|
|
@@ -29141,7 +29144,7 @@ function TitleBar(p) {
|
|
|
29141
29144
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
29142
29145
|
"span",
|
|
29143
29146
|
{
|
|
29144
|
-
className:
|
|
29147
|
+
className: chunkKA7ST7IH_js.cn(
|
|
29145
29148
|
chunkVSNXVKJI_js.TITLE_BAR_CLASSES.toggleKnob,
|
|
29146
29149
|
p.autosaveEnabled ? chunkVSNXVKJI_js.TITLE_BAR_CLASSES.toggleKnobOn : chunkVSNXVKJI_js.TITLE_BAR_CLASSES.toggleKnobOff
|
|
29147
29150
|
)
|
|
@@ -29196,7 +29199,7 @@ function TitleBar(p) {
|
|
|
29196
29199
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
29197
29200
|
"span",
|
|
29198
29201
|
{
|
|
29199
|
-
className:
|
|
29202
|
+
className: chunkKA7ST7IH_js.cn(
|
|
29200
29203
|
chunkVSNXVKJI_js.TITLE_BAR_CLASSES.statusText,
|
|
29201
29204
|
p.autosaveStatus?.state === "error" && p.autosaveEnabled && chunkVSNXVKJI_js.TITLE_BAR_CLASSES.statusError,
|
|
29202
29205
|
p.autosaveStatus?.state === "saving" && p.autosaveEnabled && chunkVSNXVKJI_js.TITLE_BAR_CLASSES.statusSaving
|
|
@@ -29210,7 +29213,7 @@ function TitleBar(p) {
|
|
|
29210
29213
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
29211
29214
|
"div",
|
|
29212
29215
|
{
|
|
29213
|
-
className:
|
|
29216
|
+
className: chunkKA7ST7IH_js.cn(
|
|
29214
29217
|
chunkVSNXVKJI_js.TITLE_BAR_CLASSES.searchBox,
|
|
29215
29218
|
(searchFocused || p.findReplaceOpen) && "text-foreground bg-background"
|
|
29216
29219
|
),
|
|
@@ -29810,7 +29813,7 @@ function EquationEditorDialog({
|
|
|
29810
29813
|
existingOmml
|
|
29811
29814
|
}) {
|
|
29812
29815
|
const { t } = reactI18next.useTranslation();
|
|
29813
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
29816
|
+
const { panelStyle, handlers: dragHandlers } = chunkKA7ST7IH_js.useModalDismissDrag(onClose);
|
|
29814
29817
|
const initialLatex = React14.useMemo(() => {
|
|
29815
29818
|
if (!existingOmml) {
|
|
29816
29819
|
return "";
|
|
@@ -29943,7 +29946,7 @@ function EquationEditorDialog({
|
|
|
29943
29946
|
{
|
|
29944
29947
|
type: "button",
|
|
29945
29948
|
onClick: () => handleTemplateClick(tmpl.latex),
|
|
29946
|
-
className:
|
|
29949
|
+
className: chunkKA7ST7IH_js.cn(
|
|
29947
29950
|
"flex flex-col items-center gap-1 p-2 rounded-lg border transition-colors",
|
|
29948
29951
|
latex === tmpl.latex ? "border-primary bg-primary/10" : "border-border bg-muted/40 hover:bg-accent/60 hover:border-border"
|
|
29949
29952
|
),
|
|
@@ -30042,7 +30045,7 @@ function InsertSmartArtDialog({
|
|
|
30042
30045
|
onInsert
|
|
30043
30046
|
}) {
|
|
30044
30047
|
const { t } = reactI18next.useTranslation();
|
|
30045
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
30048
|
+
const { panelStyle, handlers: dragHandlers } = chunkKA7ST7IH_js.useModalDismissDrag(onClose);
|
|
30046
30049
|
const [activeCategory, setActiveCategory] = React14.useState("list");
|
|
30047
30050
|
const [selectedLayout, setSelectedLayout] = React14.useState(null);
|
|
30048
30051
|
const dialogRef = React14.useRef(null);
|
|
@@ -30123,7 +30126,7 @@ function InsertSmartArtDialog({
|
|
|
30123
30126
|
setActiveCategory(cat.id);
|
|
30124
30127
|
setSelectedLayout(null);
|
|
30125
30128
|
},
|
|
30126
|
-
className:
|
|
30129
|
+
className: chunkKA7ST7IH_js.cn(
|
|
30127
30130
|
"w-full text-left px-3 py-1.5 text-xs transition-colors",
|
|
30128
30131
|
activeCategory === cat.id ? "bg-primary text-white" : "text-foreground hover:bg-muted"
|
|
30129
30132
|
),
|
|
@@ -30151,7 +30154,7 @@ function InsertSmartArtDialog({
|
|
|
30151
30154
|
onInsert(preset.layout, preset.defaultItems);
|
|
30152
30155
|
onClose();
|
|
30153
30156
|
},
|
|
30154
|
-
className:
|
|
30157
|
+
className: chunkKA7ST7IH_js.cn(
|
|
30155
30158
|
"flex flex-col items-center gap-1 p-2 rounded border transition-colors",
|
|
30156
30159
|
selectedLayout === preset.layout ? "border-primary bg-primary/20" : "border-border hover:border-border hover:bg-muted/50"
|
|
30157
30160
|
),
|
|
@@ -30181,7 +30184,7 @@ function InsertSmartArtDialog({
|
|
|
30181
30184
|
type: "button",
|
|
30182
30185
|
onClick: handleInsert,
|
|
30183
30186
|
disabled: !selectedLayout,
|
|
30184
|
-
className:
|
|
30187
|
+
className: chunkKA7ST7IH_js.cn(
|
|
30185
30188
|
"px-3 py-1.5 text-xs rounded transition-colors",
|
|
30186
30189
|
selectedLayout ? "bg-primary hover:bg-primary/80 text-white" : "bg-muted text-muted-foreground cursor-not-allowed"
|
|
30187
30190
|
),
|
|
@@ -30483,7 +30486,7 @@ function ViewerCanvasArea(props) {
|
|
|
30483
30486
|
hiddenActions
|
|
30484
30487
|
} = props;
|
|
30485
30488
|
const { t } = reactI18next.useTranslation();
|
|
30486
|
-
const { isHidden } =
|
|
30489
|
+
const { isHidden } = chunkKA7ST7IH_js.useToolbarVisibility(hiddenActions);
|
|
30487
30490
|
const effectiveSlide = mode === "master" ? masterPseudoSlide : activeSlide;
|
|
30488
30491
|
const effectiveTemplateElements = mode === "master" ? s.activeLayout ? s.activeMaster?.elements ?? [] : [] : templateElements;
|
|
30489
30492
|
const fieldContext = React14.useMemo(() => {
|
|
@@ -30572,7 +30575,7 @@ function ViewerCanvasArea(props) {
|
|
|
30572
30575
|
s.setActiveSlideIndex((i) => Math.max(0, i - 1));
|
|
30573
30576
|
}
|
|
30574
30577
|
}, [mode, presentation, s]);
|
|
30575
|
-
const swipe =
|
|
30578
|
+
const swipe = chunkKA7ST7IH_js.useSwipeNavigation({
|
|
30576
30579
|
enabled: swipeEnabled,
|
|
30577
30580
|
onNext: handleSwipeNext,
|
|
30578
30581
|
onPrev: handleSwipePrev
|
|
@@ -31360,7 +31363,7 @@ function MobileDismissSheet({
|
|
|
31360
31363
|
className,
|
|
31361
31364
|
children
|
|
31362
31365
|
}) {
|
|
31363
|
-
const { dragY, handlers } =
|
|
31366
|
+
const { dragY, handlers } = chunkKA7ST7IH_js.useSheetDismissDrag(onClose);
|
|
31364
31367
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
31365
31368
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
31366
31369
|
"button",
|
|
@@ -31629,7 +31632,7 @@ function ThemeThumbnail({
|
|
|
31629
31632
|
{
|
|
31630
31633
|
type: "button",
|
|
31631
31634
|
onClick,
|
|
31632
|
-
className:
|
|
31635
|
+
className: chunkKA7ST7IH_js.cn(
|
|
31633
31636
|
"group relative flex flex-col rounded-lg border-2 transition-all overflow-hidden",
|
|
31634
31637
|
selected ? "border-primary shadow-lg scale-[1.02]" : "border-border hover:border-primary/50 hover:shadow-md"
|
|
31635
31638
|
),
|
|
@@ -32263,7 +32266,7 @@ function MobileBottomBar({
|
|
|
32263
32266
|
{
|
|
32264
32267
|
type: "button",
|
|
32265
32268
|
onClick,
|
|
32266
|
-
className:
|
|
32269
|
+
className: chunkKA7ST7IH_js.cn(
|
|
32267
32270
|
"relative flex flex-col items-center justify-center gap-0.5 flex-1 min-h-[56px] py-1.5 text-[10px] font-medium transition-colors active:scale-95",
|
|
32268
32271
|
active ? "text-primary" : "text-muted-foreground hover:text-foreground"
|
|
32269
32272
|
),
|
|
@@ -32311,7 +32314,7 @@ function MobileChromeOverlay(props) {
|
|
|
32311
32314
|
canEdit,
|
|
32312
32315
|
commentCount
|
|
32313
32316
|
} = props;
|
|
32314
|
-
const { keyboardInset, isKeyboardOpen } =
|
|
32317
|
+
const { keyboardInset, isKeyboardOpen } = chunkKA7ST7IH_js.useKeyboardInsets();
|
|
32315
32318
|
const activeSheet = s.isSlidesPaneOpen ? "slides" : s.isInspectorPaneOpen ? s.sidebarPanelMode === "comments" ? "comments" : "inspector" : !s.isSlideNotesCollapsed ? "notes" : null;
|
|
32316
32319
|
const closeAllSheets = () => {
|
|
32317
32320
|
s.setIsSlidesPaneOpen(false);
|
|
@@ -32411,7 +32414,7 @@ function SettingsAppearanceTab({
|
|
|
32411
32414
|
type: "button",
|
|
32412
32415
|
onClick: () => onSelectTheme(entry.key),
|
|
32413
32416
|
"aria-pressed": isActive,
|
|
32414
|
-
className:
|
|
32417
|
+
className: chunkKA7ST7IH_js.cn(
|
|
32415
32418
|
"flex items-center gap-3 rounded-lg border px-3 py-2.5 text-left transition-colors",
|
|
32416
32419
|
isActive ? "border-primary bg-primary/10" : "border-border hover:border-primary/50 hover:bg-accent"
|
|
32417
32420
|
),
|
|
@@ -32428,7 +32431,7 @@ function SettingsAppearanceTab({
|
|
|
32428
32431
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
32429
32432
|
"span",
|
|
32430
32433
|
{
|
|
32431
|
-
className:
|
|
32434
|
+
className: chunkKA7ST7IH_js.cn("text-xs font-medium", isActive ? "text-primary" : "text-foreground"),
|
|
32432
32435
|
children: t(entry.labelKey)
|
|
32433
32436
|
}
|
|
32434
32437
|
)
|
|
@@ -32451,7 +32454,7 @@ function SettingsLanguageTab({
|
|
|
32451
32454
|
type: "button",
|
|
32452
32455
|
onClick: () => onSelectLocale(locale.code),
|
|
32453
32456
|
"aria-pressed": isActive,
|
|
32454
|
-
className:
|
|
32457
|
+
className: chunkKA7ST7IH_js.cn(
|
|
32455
32458
|
"flex w-full items-center justify-between rounded px-3 py-2.5 text-left transition-colors",
|
|
32456
32459
|
isActive ? "bg-primary/10 text-primary" : "text-foreground hover:bg-accent"
|
|
32457
32460
|
),
|
|
@@ -32476,7 +32479,7 @@ function ToggleSwitch({
|
|
|
32476
32479
|
{
|
|
32477
32480
|
type: "button",
|
|
32478
32481
|
onClick: onToggle,
|
|
32479
|
-
className:
|
|
32482
|
+
className: chunkKA7ST7IH_js.cn(
|
|
32480
32483
|
"relative inline-flex h-5 w-9 items-center rounded-full transition-colors",
|
|
32481
32484
|
enabled ? "bg-primary" : "bg-muted-foreground/30"
|
|
32482
32485
|
),
|
|
@@ -32486,7 +32489,7 @@ function ToggleSwitch({
|
|
|
32486
32489
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
32487
32490
|
"span",
|
|
32488
32491
|
{
|
|
32489
|
-
className:
|
|
32492
|
+
className: chunkKA7ST7IH_js.cn(
|
|
32490
32493
|
"inline-block h-3.5 w-3.5 rounded-full bg-white transition-transform",
|
|
32491
32494
|
enabled ? "translate-x-[18px]" : "translate-x-[3px]"
|
|
32492
32495
|
)
|
|
@@ -32510,7 +32513,7 @@ function SettingsDialog({
|
|
|
32510
32513
|
}) {
|
|
32511
32514
|
const [activeTab, setActiveTab] = React14.useState("general");
|
|
32512
32515
|
const { t } = reactI18next.useTranslation();
|
|
32513
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
32516
|
+
const { panelStyle, handlers: dragHandlers } = chunkKA7ST7IH_js.useModalDismissDrag(onClose);
|
|
32514
32517
|
const handleKeyDown = React14.useCallback(
|
|
32515
32518
|
(e) => {
|
|
32516
32519
|
if (e.key === "Escape") {
|
|
@@ -32584,7 +32587,7 @@ function SettingsDialog({
|
|
|
32584
32587
|
{
|
|
32585
32588
|
type: "button",
|
|
32586
32589
|
onClick: () => setActiveTab(tab.id),
|
|
32587
|
-
className:
|
|
32590
|
+
className: chunkKA7ST7IH_js.cn(
|
|
32588
32591
|
"px-3 py-2 text-xs font-medium transition-colors relative",
|
|
32589
32592
|
activeTab === tab.id ? "text-primary" : "text-muted-foreground hover:text-foreground"
|
|
32590
32593
|
),
|
|
@@ -32621,10 +32624,10 @@ function SettingsDialog({
|
|
|
32621
32624
|
onSelectLocale
|
|
32622
32625
|
}
|
|
32623
32626
|
),
|
|
32624
|
-
activeTab === "shortcuts" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-0.5", children:
|
|
32627
|
+
activeTab === "shortcuts" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-0.5", children: chunkKA7ST7IH_js.SHORTCUT_REFERENCE_ITEMS.map((shortcut, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
32625
32628
|
"div",
|
|
32626
32629
|
{
|
|
32627
|
-
className:
|
|
32630
|
+
className: chunkKA7ST7IH_js.cn(
|
|
32628
32631
|
"flex items-center justify-between gap-3 rounded px-3 py-2",
|
|
32629
32632
|
i % 2 === 0 ? "bg-muted/60" : ""
|
|
32630
32633
|
),
|
|
@@ -32766,8 +32769,8 @@ var PowerPointViewer = React14.forwardRef(
|
|
|
32766
32769
|
const [isHeaderFooterOpen, setIsHeaderFooterOpen] = React14.useState(false);
|
|
32767
32770
|
const [autosaveEnabled, setAutosaveEnabled] = React14.useState(true);
|
|
32768
32771
|
const [isShareDialogOpen, setIsShareDialogOpen] = React14.useState(false);
|
|
32769
|
-
const { reducedMotion, toggleReducedMotion } =
|
|
32770
|
-
const state =
|
|
32772
|
+
const { reducedMotion, toggleReducedMotion } = chunkKA7ST7IH_js.useReducedMotion();
|
|
32773
|
+
const state = chunkKA7ST7IH_js.useViewerState({ content, canEdit });
|
|
32771
32774
|
const {
|
|
32772
32775
|
containerRef,
|
|
32773
32776
|
mode,
|
|
@@ -32827,10 +32830,10 @@ var PowerPointViewer = React14.forwardRef(
|
|
|
32827
32830
|
},
|
|
32828
32831
|
[state, reducedMotion, toggleReducedMotion]
|
|
32829
32832
|
);
|
|
32830
|
-
const mobile =
|
|
32833
|
+
const mobile = chunkKA7ST7IH_js.useIsMobile({ containerRef });
|
|
32831
32834
|
const { isMobile, isTouchDevice, isVirtualKeyboardOpen } = mobile;
|
|
32832
|
-
const resizablePanels =
|
|
32833
|
-
const { gridSpacingPx, visibleSlideIndexes, slideSectionGroups, masterPseudoSlide } =
|
|
32835
|
+
const resizablePanels = chunkKA7ST7IH_js.useResizablePanels();
|
|
32836
|
+
const { gridSpacingPx, visibleSlideIndexes, slideSectionGroups, masterPseudoSlide } = chunkKA7ST7IH_js.useDerivedSlideState({
|
|
32834
32837
|
slides,
|
|
32835
32838
|
sections: state.sections,
|
|
32836
32839
|
customShows: state.customShows,
|
|
@@ -32852,11 +32855,11 @@ var PowerPointViewer = React14.forwardRef(
|
|
|
32852
32855
|
state.isDrawingRef
|
|
32853
32856
|
]
|
|
32854
32857
|
);
|
|
32855
|
-
const zoom =
|
|
32858
|
+
const zoom = chunkKA7ST7IH_js.useZoomViewport({
|
|
32856
32859
|
canvasSize,
|
|
32857
32860
|
selectedElements: state.selectedElements
|
|
32858
32861
|
});
|
|
32859
|
-
const history =
|
|
32862
|
+
const history = chunkKA7ST7IH_js.useEditorHistory({
|
|
32860
32863
|
slides,
|
|
32861
32864
|
canvasSize,
|
|
32862
32865
|
activeSlideIndex,
|
|
@@ -32878,7 +32881,7 @@ var PowerPointViewer = React14.forwardRef(
|
|
|
32878
32881
|
setEditTemplateMode: state.setEditTemplateMode,
|
|
32879
32882
|
setHeaderFooter: state.setHeaderFooter
|
|
32880
32883
|
});
|
|
32881
|
-
const { presentation, annotations, actionSoundHandlerRef } =
|
|
32884
|
+
const { presentation, annotations, actionSoundHandlerRef } = chunkKA7ST7IH_js.usePresentationSetup({
|
|
32882
32885
|
mode,
|
|
32883
32886
|
slides,
|
|
32884
32887
|
visibleSlideIndexes,
|
|
@@ -32892,7 +32895,7 @@ var PowerPointViewer = React14.forwardRef(
|
|
|
32892
32895
|
setSlides: state.setSlides,
|
|
32893
32896
|
history
|
|
32894
32897
|
});
|
|
32895
|
-
|
|
32898
|
+
chunkKA7ST7IH_js.useTouchGestures({
|
|
32896
32899
|
targetRef: zoom.canvasViewportRef,
|
|
32897
32900
|
currentScale: zoom.scale,
|
|
32898
32901
|
callbacks: {
|
|
@@ -32914,7 +32917,7 @@ var PowerPointViewer = React14.forwardRef(
|
|
|
32914
32917
|
},
|
|
32915
32918
|
enabled: isTouchDevice
|
|
32916
32919
|
});
|
|
32917
|
-
const dialogs =
|
|
32920
|
+
const dialogs = chunkKA7ST7IH_js.useViewerDialogs({
|
|
32918
32921
|
mode,
|
|
32919
32922
|
slides,
|
|
32920
32923
|
activeSlide,
|
|
@@ -32955,7 +32958,7 @@ var PowerPointViewer = React14.forwardRef(
|
|
|
32955
32958
|
zoom.handleZoomToFit();
|
|
32956
32959
|
zoom.canvasViewportRef.current?.scrollTo({ left: 0, top: 0 });
|
|
32957
32960
|
}, [mode]);
|
|
32958
|
-
const editorOps =
|
|
32961
|
+
const editorOps = chunkKA7ST7IH_js.useEditorOperations({
|
|
32959
32962
|
state,
|
|
32960
32963
|
history,
|
|
32961
32964
|
zoom,
|
|
@@ -32987,7 +32990,7 @@ var PowerPointViewer = React14.forwardRef(
|
|
|
32987
32990
|
autosaveStatus,
|
|
32988
32991
|
isEncryptedDialogOpen,
|
|
32989
32992
|
setIsEncryptedDialogOpen
|
|
32990
|
-
} =
|
|
32993
|
+
} = chunkKA7ST7IH_js.useViewerIntegration({
|
|
32991
32994
|
state,
|
|
32992
32995
|
zoom,
|
|
32993
32996
|
history,
|
|
@@ -33347,7 +33350,7 @@ function CollaborationDocumentSync({
|
|
|
33347
33350
|
}
|
|
33348
33351
|
return bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);
|
|
33349
33352
|
}, []);
|
|
33350
|
-
|
|
33353
|
+
chunkKA7ST7IH_js.useYjsDocumentSync({
|
|
33351
33354
|
doc: collab?.doc ?? null,
|
|
33352
33355
|
slides,
|
|
33353
33356
|
templateElementsBySlideId,
|
|
@@ -33365,13 +33368,13 @@ function CollaborationFollowLayer({
|
|
|
33365
33368
|
slideCount
|
|
33366
33369
|
}) {
|
|
33367
33370
|
const collab = useCollaboration();
|
|
33368
|
-
const { followedClientId, followUser } =
|
|
33371
|
+
const { followedClientId, followUser } = chunkKA7ST7IH_js.useFollowMode({
|
|
33369
33372
|
collab,
|
|
33370
33373
|
activeSlideIndex,
|
|
33371
33374
|
setActiveSlideIndex,
|
|
33372
33375
|
slideCount
|
|
33373
33376
|
});
|
|
33374
|
-
|
|
33377
|
+
chunkKA7ST7IH_js.useBroadcastFollower({
|
|
33375
33378
|
collab,
|
|
33376
33379
|
activeSlideIndex,
|
|
33377
33380
|
setActiveSlideIndex,
|