themed-markdown 0.1.42 → 0.1.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -4016,7 +4016,7 @@ function extractAllSlideTitles(slides) {
4016
4016
  }
4017
4017
 
4018
4018
  // industryMarkdown/components/SlideNavigationHeader.tsx
4019
- import { ChevronLeft, ChevronRight, Maximize2, Minimize2, Menu, X } from "lucide-react";
4019
+ import { ChevronLeft, ChevronRight, Maximize2, Minimize2, Menu, X, PanelLeftClose, PanelRightClose } from "lucide-react";
4020
4020
  import React13 from "react";
4021
4021
  var SlideNavigationHeader = ({
4022
4022
  currentSlide,
@@ -4026,10 +4026,15 @@ var SlideNavigationHeader = ({
4026
4026
  showSlideCounter,
4027
4027
  showFullscreenButton,
4028
4028
  theme: theme2,
4029
+ viewMode = "single",
4030
+ collapseLeft = false,
4031
+ collapseRight = false,
4029
4032
  onPrevious,
4030
4033
  onNext,
4031
4034
  onToggleTOC,
4032
- onToggleFullscreen
4035
+ onToggleFullscreen,
4036
+ onCollapseLeft,
4037
+ onCollapseRight
4033
4038
  }) => {
4034
4039
  const navigationHeight = "48px";
4035
4040
  return /* @__PURE__ */ React13.createElement("div", {
@@ -4111,7 +4116,34 @@ var SlideNavigationHeader = ({
4111
4116
  }
4112
4117
  }, /* @__PURE__ */ React13.createElement(ChevronLeft, {
4113
4118
  size: 18
4114
- }), "Previous")), showSlideCounter && /* @__PURE__ */ React13.createElement("div", {
4119
+ }), "Previous"), viewMode === "book" && onCollapseLeft && /* @__PURE__ */ React13.createElement("button", {
4120
+ onClick: onCollapseLeft,
4121
+ style: {
4122
+ display: "flex",
4123
+ alignItems: "center",
4124
+ justifyContent: "center",
4125
+ width: "36px",
4126
+ height: "36px",
4127
+ backgroundColor: collapseLeft ? theme2.colors.backgroundSecondary : "transparent",
4128
+ border: `1px solid ${theme2.colors.border}`,
4129
+ borderRadius: theme2.radii[1],
4130
+ color: theme2.colors.textSecondary,
4131
+ cursor: "pointer",
4132
+ transition: "all 0.2s ease"
4133
+ },
4134
+ onMouseOver: (e) => {
4135
+ e.currentTarget.style.backgroundColor = theme2.colors.backgroundSecondary;
4136
+ e.currentTarget.style.borderColor = theme2.colors.text;
4137
+ },
4138
+ onMouseOut: (e) => {
4139
+ e.currentTarget.style.backgroundColor = collapseLeft ? theme2.colors.backgroundSecondary : "transparent";
4140
+ e.currentTarget.style.borderColor = theme2.colors.border;
4141
+ },
4142
+ title: collapseLeft ? "Expand left panel" : "Collapse left panel"
4143
+ }, /* @__PURE__ */ React13.createElement(PanelLeftClose, {
4144
+ size: 18,
4145
+ style: { transform: collapseLeft ? "rotate(180deg)" : "none" }
4146
+ }))), showSlideCounter && /* @__PURE__ */ React13.createElement("div", {
4115
4147
  style: {
4116
4148
  display: "flex",
4117
4149
  alignItems: "center",
@@ -4131,7 +4163,34 @@ var SlideNavigationHeader = ({
4131
4163
  alignItems: "center",
4132
4164
  gap: theme2.space[2]
4133
4165
  }
4134
- }, /* @__PURE__ */ React13.createElement("button", {
4166
+ }, viewMode === "book" && onCollapseRight && /* @__PURE__ */ React13.createElement("button", {
4167
+ onClick: onCollapseRight,
4168
+ style: {
4169
+ display: "flex",
4170
+ alignItems: "center",
4171
+ justifyContent: "center",
4172
+ width: "36px",
4173
+ height: "36px",
4174
+ backgroundColor: collapseRight ? theme2.colors.backgroundSecondary : "transparent",
4175
+ border: `1px solid ${theme2.colors.border}`,
4176
+ borderRadius: theme2.radii[1],
4177
+ color: theme2.colors.textSecondary,
4178
+ cursor: "pointer",
4179
+ transition: "all 0.2s ease"
4180
+ },
4181
+ onMouseOver: (e) => {
4182
+ e.currentTarget.style.backgroundColor = theme2.colors.backgroundSecondary;
4183
+ e.currentTarget.style.borderColor = theme2.colors.text;
4184
+ },
4185
+ onMouseOut: (e) => {
4186
+ e.currentTarget.style.backgroundColor = collapseRight ? theme2.colors.backgroundSecondary : "transparent";
4187
+ e.currentTarget.style.borderColor = theme2.colors.border;
4188
+ },
4189
+ title: collapseRight ? "Expand right panel" : "Collapse right panel"
4190
+ }, /* @__PURE__ */ React13.createElement(PanelRightClose, {
4191
+ size: 18,
4192
+ style: { transform: collapseRight ? "rotate(180deg)" : "none" }
4193
+ })), /* @__PURE__ */ React13.createElement("button", {
4135
4194
  onClick: onNext,
4136
4195
  disabled: currentSlide === totalSlides - 1,
4137
4196
  style: {
@@ -7272,6 +7331,8 @@ var SlidePresentationBook = ({
7272
7331
  const [searchResults, setSearchResults] = useState13([]);
7273
7332
  const [currentSearchResult, setCurrentSearchResult] = useState13(-1);
7274
7333
  const [searchStartSlide, setSearchStartSlide] = useState13(0);
7334
+ const [collapsedSide, setCollapsedSide] = useState13(null);
7335
+ const [lastInteractedSide, setLastInteractedSide] = useState13("left");
7275
7336
  const containerRef = useRef12(null);
7276
7337
  const { theme: theme2 } = useTheme();
7277
7338
  const slideTitles = extractAllSlideTitles(slides);
@@ -7332,6 +7393,14 @@ var SlidePresentationBook = ({
7332
7393
  const goToNextSlide = useCallback5(() => {
7333
7394
  navigateToSlide(currentSlide + stepSize);
7334
7395
  }, [currentSlide, navigateToSlide, stepSize]);
7396
+ const handleCollapseLeft = useCallback5(() => {
7397
+ setLastInteractedSide("left");
7398
+ setCollapsedSide(collapsedSide === "left" ? null : "left");
7399
+ }, [collapsedSide]);
7400
+ const handleCollapseRight = useCallback5(() => {
7401
+ setLastInteractedSide("right");
7402
+ setCollapsedSide(collapsedSide === "right" ? null : "right");
7403
+ }, [collapsedSide]);
7335
7404
  const toggleFullscreen = useCallback5(() => {
7336
7405
  if (!containerRef.current)
7337
7406
  return;
@@ -7473,10 +7542,15 @@ var SlidePresentationBook = ({
7473
7542
  showSlideCounter,
7474
7543
  showFullscreenButton,
7475
7544
  theme: theme2,
7545
+ viewMode,
7546
+ collapseLeft: collapsedSide === "left",
7547
+ collapseRight: collapsedSide === "right",
7476
7548
  onPrevious: goToPreviousSlide,
7477
7549
  onNext: goToNextSlide,
7478
7550
  onToggleTOC: () => setShowTOC((prev) => !prev),
7479
- onToggleFullscreen: toggleFullscreen
7551
+ onToggleFullscreen: toggleFullscreen,
7552
+ onCollapseLeft: handleCollapseLeft,
7553
+ onCollapseRight: handleCollapseRight
7480
7554
  }), /* @__PURE__ */ React17.createElement("div", {
7481
7555
  style: {
7482
7556
  flex: 1,
@@ -7607,6 +7681,9 @@ var SlidePresentationBook = ({
7607
7681
  backgroundColor: theme2.colors.background
7608
7682
  }
7609
7683
  }, slides.length > 0 ? viewMode === "book" ? /* @__PURE__ */ React17.createElement(AnimatedResizableLayout, {
7684
+ key: `${lastInteractedSide}-${collapsedSide}`,
7685
+ collapsed: collapsedSide !== null,
7686
+ collapsibleSide: lastInteractedSide,
7610
7687
  leftPanel: /* @__PURE__ */ React17.createElement("div", {
7611
7688
  style: {
7612
7689
  height: "100%",
@@ -8,10 +8,15 @@ export interface SlideNavigationHeaderProps {
8
8
  showSlideCounter: boolean;
9
9
  showFullscreenButton: boolean;
10
10
  theme: Theme;
11
+ viewMode?: 'single' | 'book';
12
+ collapseLeft?: boolean;
13
+ collapseRight?: boolean;
11
14
  onPrevious: () => void;
12
15
  onNext: () => void;
13
16
  onToggleTOC: () => void;
14
17
  onToggleFullscreen: () => void;
18
+ onCollapseLeft?: () => void;
19
+ onCollapseRight?: () => void;
15
20
  }
16
21
  export declare const SlideNavigationHeader: React.FC<SlideNavigationHeaderProps>;
17
22
  //# sourceMappingURL=SlideNavigationHeader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SlideNavigationHeader.d.ts","sourceRoot":"","sources":["../../../industryMarkdown/components/SlideNavigationHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAgMtE,CAAC"}
1
+ {"version":3,"file":"SlideNavigationHeader.d.ts","sourceRoot":"","sources":["../../../industryMarkdown/components/SlideNavigationHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAmQtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SlidePresentationBook.d.ts","sourceRoot":"","sources":["../../../industryMarkdown/components/SlidePresentationBook.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,KAAmD,MAAM,OAAO,CAAC;AASxE,MAAM,WAAW,0BAA0B;IAEzC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAGtF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAG7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACzD,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrG,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAgtBtE,CAAC"}
1
+ {"version":3,"file":"SlidePresentationBook.d.ts","sourceRoot":"","sources":["../../../industryMarkdown/components/SlidePresentationBook.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,KAAmD,MAAM,OAAO,CAAC;AASxE,MAAM,WAAW,0BAA0B;IAEzC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAGtF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAG7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACzD,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrG,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAquBtE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "themed-markdown",
3
- "version": "0.1.42",
3
+ "version": "0.1.44",
4
4
  "description": "Industry-themed markdown renderer with presentation capabilities",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",