themed-markdown 0.1.16 → 0.1.17

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
@@ -1,6 +1,6 @@
1
1
  // industryMarkdown/components/IndustryMarkdownSlide.tsx
2
2
  import { defaultSchema } from "hast-util-sanitize";
3
- import React11, { useRef as useRef7, useEffect as useEffect6, useState as useState8, useMemo as useMemo2, useCallback } from "react";
3
+ import React11, { useRef as useRef7, useEffect as useEffect7, useState as useState9, useMemo as useMemo2, useCallback } from "react";
4
4
  import ReactMarkdown from "react-markdown";
5
5
  import rehypeHighlight from "rehype-highlight";
6
6
  import rehypeRaw from "rehype-raw";
@@ -9,7 +9,20 @@ import rehypeSlug from "rehype-slug";
9
9
  import remarkGfm from "remark-gfm";
10
10
 
11
11
  // industryTheme/ThemeProvider.tsx
12
- import React, { createContext, useContext } from "react";
12
+ import React, { createContext, useContext, useState, useEffect } from "react";
13
+
14
+ // industryTheme/themeHelpers.ts
15
+ function getMode(theme, mode) {
16
+ if (!mode || !theme.modes || !theme.modes[mode]) {
17
+ return theme.colors;
18
+ }
19
+ return {
20
+ ...theme.colors,
21
+ ...theme.modes[mode]
22
+ };
23
+ }
24
+
25
+ // industryTheme/ThemeProvider.tsx
13
26
  var ThemeContext;
14
27
  var getThemeContext = () => {
15
28
  if (typeof window !== "undefined") {
@@ -35,10 +48,38 @@ var useTheme = () => {
35
48
  };
36
49
  var ThemeProvider = ({
37
50
  children,
38
- theme: customTheme = theme
51
+ theme: customTheme = theme,
52
+ initialMode
39
53
  }) => {
54
+ const [mode, setMode] = useState(initialMode);
55
+ const activeTheme = React.useMemo(() => {
56
+ if (!mode || !customTheme.modes || !customTheme.modes[mode]) {
57
+ return customTheme;
58
+ }
59
+ return {
60
+ ...customTheme,
61
+ colors: getMode(customTheme, mode)
62
+ };
63
+ }, [customTheme, mode]);
64
+ useEffect(() => {
65
+ if (!initialMode) {
66
+ const savedMode = localStorage.getItem("principlemd-theme-mode");
67
+ if (savedMode) {
68
+ setMode(savedMode);
69
+ }
70
+ }
71
+ }, [initialMode]);
72
+ useEffect(() => {
73
+ if (mode) {
74
+ localStorage.setItem("principlemd-theme-mode", mode);
75
+ } else {
76
+ localStorage.removeItem("principlemd-theme-mode");
77
+ }
78
+ }, [mode]);
40
79
  const value = {
41
- theme: customTheme
80
+ theme: activeTheme,
81
+ mode,
82
+ setMode
42
83
  };
43
84
  return /* @__PURE__ */ React.createElement(ThemeContextSingleton.Provider, {
44
85
  value
@@ -265,10 +306,10 @@ function parseMarkdownChunks(markdownContent, idPrefix) {
265
306
  }
266
307
 
267
308
  // industryMarkdown/components/IndustryHtmlModal.tsx
268
- import React2, { useState } from "react";
309
+ import React2, { useState as useState2 } from "react";
269
310
  var useIndustryHtmlModal = () => {
270
- const [htmlModalOpen, setHtmlModalOpen] = useState(false);
271
- const [htmlModalContent, setHtmlModalContent] = useState("");
311
+ const [htmlModalOpen, setHtmlModalOpen] = useState2(false);
312
+ const [htmlModalContent, setHtmlModalContent] = useState2("");
272
313
  const openHtmlModal = (content) => {
273
314
  setHtmlModalContent(content);
274
315
  setHtmlModalOpen(true);
@@ -379,11 +420,11 @@ function IndustryHtmlModal({ isOpen, onClose, htmlContent, theme: theme2 }) {
379
420
 
380
421
  // industryMarkdown/components/IndustryLazyMermaidDiagram.tsx
381
422
  import { MoveRight } from "lucide-react";
382
- import React4, { useEffect as useEffect2, useRef as useRef2, useState as useState3 } from "react";
423
+ import React4, { useEffect as useEffect3, useRef as useRef2, useState as useState4 } from "react";
383
424
 
384
425
  // industryMarkdown/components/IndustryMermaidDiagram.tsx
385
426
  import { ZoomIn, ZoomOut, RotateCcw } from "lucide-react";
386
- import React3, { useEffect, useRef, useState as useState2 } from "react";
427
+ import React3, { useEffect as useEffect2, useRef, useState as useState3 } from "react";
387
428
  var getMermaidSync = () => {
388
429
  if (typeof window !== "undefined") {
389
430
  const mermaid = window.mermaid;
@@ -403,11 +444,11 @@ function IndustryMermaidDiagram({
403
444
  isModalMode = false
404
445
  }) {
405
446
  const theme2 = themeOverride || theme;
406
- const [errorDetails, setErrorDetails] = useState2(null);
407
- const [isIntersecting, setIsIntersecting] = useState2(false);
408
- const [hasRendered, setHasRendered] = useState2(false);
409
- const [containerElement, setContainerElement] = useState2(null);
410
- const [zoomLevel, setZoomLevel] = useState2(1);
447
+ const [errorDetails, setErrorDetails] = useState3(null);
448
+ const [isIntersecting, setIsIntersecting] = useState3(false);
449
+ const [hasRendered, setHasRendered] = useState3(false);
450
+ const [containerElement, setContainerElement] = useState3(null);
451
+ const [zoomLevel, setZoomLevel] = useState3(1);
411
452
  const observerRef = useRef(null);
412
453
  const containerRef = React3.useCallback((node) => {
413
454
  setContainerElement(node);
@@ -433,14 +474,14 @@ function IndustryMermaidDiagram({
433
474
  observerRef.current.observe(node);
434
475
  }
435
476
  }, [rootMargin, hasRendered, isModalMode]);
436
- useEffect(() => {
477
+ useEffect2(() => {
437
478
  return () => {
438
479
  if (observerRef.current) {
439
480
  observerRef.current.disconnect();
440
481
  }
441
482
  };
442
483
  }, []);
443
- useEffect(() => {
484
+ useEffect2(() => {
444
485
  if (!hasRendered)
445
486
  return;
446
487
  const renderDiagram = async () => {
@@ -544,7 +585,7 @@ function IndustryMermaidDiagram({
544
585
  };
545
586
  renderDiagram();
546
587
  }, [hasRendered, code, id, theme2, containerElement, onError, isModalMode]);
547
- useEffect(() => {
588
+ useEffect2(() => {
548
589
  if (!containerElement || !hasRendered)
549
590
  return;
550
591
  const svgElement = containerElement.querySelector("svg");
@@ -569,7 +610,7 @@ function IndustryMermaidDiagram({
569
610
  }
570
611
  }
571
612
  }, [zoomLevel, containerElement, hasRendered, isModalMode]);
572
- useEffect(() => {
613
+ useEffect2(() => {
573
614
  if (errorDetails && onCopyError) {
574
615
  const handleKeyDown = (e) => {
575
616
  if ((e.ctrlKey || e.metaKey) && e.key === "c" && window.getSelection()?.toString()) {
@@ -715,15 +756,15 @@ function IndustryLazyMermaidDiagram({
715
756
  onShowInPanel,
716
757
  theme: theme2 = theme
717
758
  }) {
718
- const [isIntersecting, setIsIntersecting] = useState3(false);
719
- const [hasRendered, setHasRendered] = useState3(false);
720
- const [isMounted, setIsMounted] = useState3(false);
721
- const [hasError, setHasError] = useState3(false);
759
+ const [isIntersecting, setIsIntersecting] = useState4(false);
760
+ const [hasRendered, setHasRendered] = useState4(false);
761
+ const [isMounted, setIsMounted] = useState4(false);
762
+ const [hasError, setHasError] = useState4(false);
722
763
  const containerRef = useRef2(null);
723
- useEffect2(() => {
764
+ useEffect3(() => {
724
765
  setIsMounted(true);
725
766
  }, []);
726
- useEffect2(() => {
767
+ useEffect3(() => {
727
768
  if (!isMounted)
728
769
  return;
729
770
  if (typeof IntersectionObserver === "undefined") {
@@ -843,7 +884,7 @@ function IndustryLazyMermaidDiagram({
843
884
 
844
885
  // industryMarkdown/components/IndustryMarkdownComponents.tsx
845
886
  import { Copy, Monitor, FileText, Check } from "lucide-react";
846
- import React7, { useMemo, useState as useState5, useRef as useRef4 } from "react";
887
+ import React7, { useMemo, useState as useState6, useRef as useRef4 } from "react";
847
888
 
848
889
  // industryMarkdown/utils/bashCommandParser.ts
849
890
  function parseBashCommands(codeString) {
@@ -996,7 +1037,7 @@ function transformImageUrl(src, repositoryInfo) {
996
1037
 
997
1038
  // industryMarkdown/components/IndustryBashCommandDropdown.tsx
998
1039
  import { Play, ChevronDown } from "lucide-react";
999
- import React6, { useState as useState4, useRef as useRef3, useEffect as useEffect3 } from "react";
1040
+ import React6, { useState as useState5, useRef as useRef3, useEffect as useEffect4 } from "react";
1000
1041
  var IndustryBashCommandDropdown = ({
1001
1042
  commands,
1002
1043
  allCommands,
@@ -1005,12 +1046,12 @@ var IndustryBashCommandDropdown = ({
1005
1046
  slideIdPrefix: _slideIdPrefix,
1006
1047
  theme: themeOverride
1007
1048
  }) => {
1008
- const [isOpen, setIsOpen] = useState4(false);
1009
- const [isRunning, setIsRunning] = useState4(false);
1049
+ const [isOpen, setIsOpen] = useState5(false);
1050
+ const [isRunning, setIsRunning] = useState5(false);
1010
1051
  const dropdownRef = useRef3(null);
1011
1052
  const { theme: contextTheme } = useTheme();
1012
1053
  const theme2 = themeOverride || contextTheme;
1013
- useEffect3(() => {
1054
+ useEffect4(() => {
1014
1055
  const handleClickOutside = (event) => {
1015
1056
  if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
1016
1057
  setIsOpen(false);
@@ -1129,7 +1170,7 @@ var IndustryBashCommandDropdown = ({
1129
1170
  e.currentTarget.style.backgroundColor = theme2.colors.muted;
1130
1171
  }
1131
1172
  }, "\uD83D\uDE80 Run all (", commands.length, " commands)"), commands.map((cmd, index) => {
1132
- const [isHovered, setIsHovered] = useState4(false);
1173
+ const [isHovered, setIsHovered] = useState5(false);
1133
1174
  return /* @__PURE__ */ React6.createElement("div", {
1134
1175
  key: index,
1135
1176
  style: dropdownItemStyle(isHovered),
@@ -1171,7 +1212,7 @@ var OptimizedMarkdownImage = React7.memo(({
1171
1212
  const transformedSrc = useMemo(() => {
1172
1213
  return transformImageUrl(src, repositoryInfo);
1173
1214
  }, [src, repositoryInfo]);
1174
- const [hasErrored, setHasErrored] = useState5(() => failedImageCache.has(transformedSrc));
1215
+ const [hasErrored, setHasErrored] = useState6(() => failedImageCache.has(transformedSrc));
1175
1216
  const retryCount = useRef4(0);
1176
1217
  const imageStyle = useMemo(() => ({
1177
1218
  maxWidth: "100%",
@@ -1474,7 +1515,7 @@ var createIndustryMarkdownComponents = ({
1474
1515
  const codeString = extractTextFromChildren(children);
1475
1516
  const matchLang = /language-(\w+)/.exec(className || "");
1476
1517
  const language = matchLang ? matchLang[1] : null;
1477
- const [copied, setCopied] = useState5(false);
1518
+ const [copied, setCopied] = useState6(false);
1478
1519
  let isInline;
1479
1520
  let isCodeBlock;
1480
1521
  const hasNewlines = codeString.includes(`
@@ -1698,11 +1739,11 @@ var createIndustryMarkdownComponents = ({
1698
1739
  };
1699
1740
 
1700
1741
  // industryMarkdown/components/IndustryMermaidModal.tsx
1701
- import React9, { useEffect as useEffect5, useRef as useRef6 } from "react";
1742
+ import React9, { useEffect as useEffect6, useRef as useRef6 } from "react";
1702
1743
  import ReactDOM from "react-dom";
1703
1744
 
1704
1745
  // industryMarkdown/components/IndustryZoomableMermaidDiagram.tsx
1705
- import React8, { useEffect as useEffect4, useRef as useRef5, useState as useState6 } from "react";
1746
+ import React8, { useEffect as useEffect5, useRef as useRef5, useState as useState7 } from "react";
1706
1747
  import { TransformWrapper, TransformComponent } from "react-zoom-pan-pinch";
1707
1748
  function IndustryZoomableMermaidDiagram({
1708
1749
  code,
@@ -1713,11 +1754,11 @@ function IndustryZoomableMermaidDiagram({
1713
1754
  }) {
1714
1755
  const { theme: contextTheme } = useTheme();
1715
1756
  const theme2 = themeOverride || contextTheme;
1716
- const [calculatedScale, setCalculatedScale] = useState6(0.8);
1757
+ const [calculatedScale, setCalculatedScale] = useState7(0.8);
1717
1758
  const containerRef = useRef5(null);
1718
1759
  const diagramRef = useRef5(null);
1719
- const [isCalculating, setIsCalculating] = useState6(true);
1720
- useEffect4(() => {
1760
+ const [isCalculating, setIsCalculating] = useState7(true);
1761
+ useEffect5(() => {
1721
1762
  if (!containerRef.current || !diagramRef.current)
1722
1763
  return;
1723
1764
  const calculateOptimalScale = () => {
@@ -1891,7 +1932,7 @@ function IndustryMermaidModal({
1891
1932
  theme: theme2
1892
1933
  }) {
1893
1934
  const modalRef = useRef6(null);
1894
- useEffect5(() => {
1935
+ useEffect6(() => {
1895
1936
  const handleEscape = (event) => {
1896
1937
  if (event.key === "Escape") {
1897
1938
  onClose();
@@ -1983,7 +2024,7 @@ function IndustryMermaidModal({
1983
2024
  }
1984
2025
 
1985
2026
  // industryMarkdown/components/IndustryPlaceholderModal.tsx
1986
- import React10, { useState as useState7 } from "react";
2027
+ import React10, { useState as useState8 } from "react";
1987
2028
  function IndustryPlaceholderModal({
1988
2029
  isOpen,
1989
2030
  onClose,
@@ -1992,7 +2033,7 @@ function IndustryPlaceholderModal({
1992
2033
  onCopy,
1993
2034
  theme: theme2
1994
2035
  }) {
1995
- const [values, setValues] = useState7({});
2036
+ const [values, setValues] = useState8({});
1996
2037
  if (!isOpen)
1997
2038
  return null;
1998
2039
  const handleSubmit = (e) => {
@@ -2275,6 +2316,32 @@ var fontTransitionCSS = `
2275
2316
  .markdown-slide label[for*="checkbox"] {
2276
2317
  font-size: 1rem !important; /* Fixed size for checkbox labels */
2277
2318
  }
2319
+
2320
+ /* Remove top margin from headings when they're the first element */
2321
+ .markdown-slide > :first-child h1:first-child,
2322
+ .markdown-slide > :first-child h2:first-child,
2323
+ .markdown-slide > :first-child h3:first-child,
2324
+ .markdown-slide > :first-child h4:first-child,
2325
+ .markdown-slide > :first-child h5:first-child,
2326
+ .markdown-slide > :first-child h6:first-child {
2327
+ margin-top: 0 !important;
2328
+ }
2329
+
2330
+ /* Also handle when heading is inside the first paragraph/div from ReactMarkdown */
2331
+ .markdown-slide > div:first-child > h1:first-child,
2332
+ .markdown-slide > div:first-child > h2:first-child,
2333
+ .markdown-slide > div:first-child > h3:first-child,
2334
+ .markdown-slide > div:first-child > h4:first-child,
2335
+ .markdown-slide > div:first-child > h5:first-child,
2336
+ .markdown-slide > div:first-child > h6:first-child,
2337
+ .markdown-slide > p:first-child > h1:first-child,
2338
+ .markdown-slide > p:first-child > h2:first-child,
2339
+ .markdown-slide > p:first-child > h3:first-child,
2340
+ .markdown-slide > p:first-child > h4:first-child,
2341
+ .markdown-slide > p:first-child > h5:first-child,
2342
+ .markdown-slide > p:first-child > h6:first-child {
2343
+ margin-top: 0 !important;
2344
+ }
2278
2345
  `;
2279
2346
  var stylesInjected = false;
2280
2347
  var injectStyles = () => {
@@ -2318,7 +2385,7 @@ var IndustryMarkdownSlide = React11.memo(function IndustryMarkdownSlide2({
2318
2385
  }) {
2319
2386
  const slideRef = useRef7(null);
2320
2387
  const scrollPositionRef = useRef7(0);
2321
- const [measuredContainerWidth, setMeasuredContainerWidth] = useState8(null);
2388
+ const [measuredContainerWidth, setMeasuredContainerWidth] = useState9(null);
2322
2389
  let chunks = [];
2323
2390
  try {
2324
2391
  if (typeof content === "string") {
@@ -2327,16 +2394,16 @@ var IndustryMarkdownSlide = React11.memo(function IndustryMarkdownSlide2({
2327
2394
  } catch (error) {
2328
2395
  console.error("Error parsing markdown chunks:", error);
2329
2396
  }
2330
- const [checkedItems, setCheckedItems] = useState8({});
2397
+ const [checkedItems, setCheckedItems] = useState9({});
2331
2398
  const { htmlModalOpen, htmlModalContent, openHtmlModal, closeHtmlModal } = useIndustryHtmlModal();
2332
- const [mermaidModalOpen, setMermaidModalOpen] = useState8(false);
2333
- const [mermaidModalCode, setMermaidModalCode] = useState8("");
2334
- const [placeholderModalOpen, setPlaceholderModalOpen] = useState8(false);
2335
- const [placeholderModalData, setPlaceholderModalData] = useState8(null);
2336
- useEffect6(() => {
2399
+ const [mermaidModalOpen, setMermaidModalOpen] = useState9(false);
2400
+ const [mermaidModalCode, setMermaidModalCode] = useState9("");
2401
+ const [placeholderModalOpen, setPlaceholderModalOpen] = useState9(false);
2402
+ const [placeholderModalData, setPlaceholderModalData] = useState9(null);
2403
+ useEffect7(() => {
2337
2404
  injectStyles();
2338
2405
  }, []);
2339
- useEffect6(() => {
2406
+ useEffect7(() => {
2340
2407
  if (containerWidth !== undefined) {
2341
2408
  return;
2342
2409
  }
@@ -2505,7 +2572,7 @@ var IndustryMarkdownSlide = React11.memo(function IndustryMarkdownSlide2({
2505
2572
  }, scrollConfig.smoothScroll ? 100 : 0);
2506
2573
  }
2507
2574
  }, [enableKeyboardScrolling, isVisible, slideIndex, scrollConfig]);
2508
- useEffect6(() => {
2575
+ useEffect7(() => {
2509
2576
  if (isVisible && slideRef.current) {
2510
2577
  console.log("\uD83C\uDFAF Auto-focusing slide container");
2511
2578
  slideRef.current.focus();
@@ -2555,7 +2622,7 @@ var IndustryMarkdownSlide = React11.memo(function IndustryMarkdownSlide2({
2555
2622
  };
2556
2623
  return result;
2557
2624
  }, [containerWidth, measuredContainerWidth]);
2558
- useEffect6(() => {
2625
+ useEffect7(() => {
2559
2626
  const slideElement = slideRef.current;
2560
2627
  if (slideElement) {
2561
2628
  const handleScroll = () => {
@@ -2568,7 +2635,7 @@ var IndustryMarkdownSlide = React11.memo(function IndustryMarkdownSlide2({
2568
2635
  }
2569
2636
  return;
2570
2637
  }, []);
2571
- useEffect6(() => {
2638
+ useEffect7(() => {
2572
2639
  if (slideRef.current && scrollPositionRef.current) {
2573
2640
  slideRef.current.scrollTop = scrollPositionRef.current;
2574
2641
  }
@@ -2739,7 +2806,7 @@ var IndustryMarkdownSlide = React11.memo(function IndustryMarkdownSlide2({
2739
2806
  });
2740
2807
  // industryMarkdown/components/SlidePresentation.tsx
2741
2808
  import { ChevronLeft, ChevronRight, Maximize2, Minimize2, Menu, X } from "lucide-react";
2742
- import React12, { useState as useState9, useCallback as useCallback2, useRef as useRef8, useEffect as useEffect7 } from "react";
2809
+ import React12, { useState as useState10, useCallback as useCallback2, useRef as useRef8, useEffect as useEffect8 } from "react";
2743
2810
 
2744
2811
  // industryMarkdown/utils/extractSlideTitles.ts
2745
2812
  function extractSlideTitle(content, slideIndex) {
@@ -2778,9 +2845,9 @@ var SlidePresentation = ({
2778
2845
  handlePromptCopy,
2779
2846
  fontSizeScale
2780
2847
  }) => {
2781
- const [currentSlide, setCurrentSlide] = useState9(initialSlide);
2782
- const [isFullscreen, setIsFullscreen] = useState9(false);
2783
- const [showTOC, setShowTOC] = useState9(false);
2848
+ const [currentSlide, setCurrentSlide] = useState10(initialSlide);
2849
+ const [isFullscreen, setIsFullscreen] = useState10(false);
2850
+ const [showTOC, setShowTOC] = useState10(false);
2784
2851
  const containerRef = useRef8(null);
2785
2852
  const { theme: theme2 } = useTheme();
2786
2853
  const slideTitles = extractAllSlideTitles(slides);
@@ -2808,7 +2875,7 @@ var SlidePresentation = ({
2808
2875
  setIsFullscreen(false);
2809
2876
  }
2810
2877
  }, [isFullscreen]);
2811
- useEffect7(() => {
2878
+ useEffect8(() => {
2812
2879
  const handleKeyDown = (event) => {
2813
2880
  if (event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement) {
2814
2881
  return;
@@ -2874,7 +2941,7 @@ var SlidePresentation = ({
2874
2941
  window.addEventListener("keydown", handleKeyDown);
2875
2942
  return () => window.removeEventListener("keydown", handleKeyDown);
2876
2943
  }, [goToPreviousSlide, goToNextSlide, navigateToSlide, slides.length, toggleFullscreen, showTOC]);
2877
- useEffect7(() => {
2944
+ useEffect8(() => {
2878
2945
  if (currentSlide >= slides.length && slides.length > 0) {
2879
2946
  setCurrentSlide(slides.length - 1);
2880
2947
  }
@@ -3395,7 +3462,7 @@ var DocumentView = ({
3395
3462
  };
3396
3463
  // industryMarkdown/components/IndustryEditableMarkdownSlide.tsx
3397
3464
  import { Pencil, Save, X as X2 } from "lucide-react";
3398
- import React14, { useState as useState10, useCallback as useCallback4, useRef as useRef10, useEffect as useEffect8 } from "react";
3465
+ import React14, { useState as useState11, useCallback as useCallback4, useRef as useRef10, useEffect as useEffect9 } from "react";
3399
3466
  var IndustryEditableMarkdownSlide = ({
3400
3467
  content,
3401
3468
  onContentChange,
@@ -3415,15 +3482,15 @@ var IndustryEditableMarkdownSlide = ({
3415
3482
  if (!theme2) {
3416
3483
  throw new Error("IndustryEditableMarkdownSlide: theme must be provided either as a prop or through ThemeProvider");
3417
3484
  }
3418
- const [isEditing, setIsEditing] = useState10(false);
3419
- const [editContent, setEditContent] = useState10(content);
3420
- const [isSaving, setIsSaving] = useState10(false);
3485
+ const [isEditing, setIsEditing] = useState11(false);
3486
+ const [editContent, setEditContent] = useState11(content);
3487
+ const [isSaving, setIsSaving] = useState11(false);
3421
3488
  const textareaRef = useRef10(null);
3422
3489
  const saveTimeoutRef = useRef10(undefined);
3423
- useEffect8(() => {
3490
+ useEffect9(() => {
3424
3491
  setEditContent(content);
3425
3492
  }, [content]);
3426
- useEffect8(() => {
3493
+ useEffect9(() => {
3427
3494
  if (isEditing && autoSaveDelay && onSave) {
3428
3495
  if (saveTimeoutRef.current) {
3429
3496
  clearTimeout(saveTimeoutRef.current);
@@ -1 +1 @@
1
- {"version":3,"file":"IndustryMarkdownSlide.d.ts","sourceRoot":"","sources":["../../../industryMarkdown/components/IndustryMarkdownSlide.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AAGH,OAAO,KAA4D,MAAM,OAAO,CAAC;AAQjF,OAAO,EAAY,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAS9F,MAAM,WAAW,0BAA0B;IAEzC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACzD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtF,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,oBAAoB,CAAC,EAAE,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChC,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAGlD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAG5C,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AA0GD,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAGD,wBAAgB,4BAA4B,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,eAAe,EAAE,CA8D7F;AAED,eAAO,MAAM,qBAAqB,wDAylBhC,CAAC"}
1
+ {"version":3,"file":"IndustryMarkdownSlide.d.ts","sourceRoot":"","sources":["../../../industryMarkdown/components/IndustryMarkdownSlide.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AAGH,OAAO,KAA4D,MAAM,OAAO,CAAC;AAQjF,OAAO,EAAY,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAS9F,MAAM,WAAW,0BAA0B;IAEzC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACzD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtF,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,oBAAoB,CAAC,EAAE,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChC,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAGlD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAG5C,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAoID,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAGD,wBAAgB,4BAA4B,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,eAAe,EAAE,CA8D7F;AAED,eAAO,MAAM,qBAAqB,wDAylBhC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SlidePresentationWithThemeSwitcher.stories.d.ts","sourceRoot":"","sources":["../../../industryMarkdown/components/SlidePresentationWithThemeSwitcher.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAqPxD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,iBAAiB,CAWxC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AA0LnC,eAAO,MAAM,iBAAiB,EAAE,KAS/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAgClC,CAAC"}
1
+ {"version":3,"file":"SlidePresentationWithThemeSwitcher.stories.d.ts","sourceRoot":"","sources":["../../../industryMarkdown/components/SlidePresentationWithThemeSwitcher.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AA0NxD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,iBAAiB,CAWxC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAoMnC,eAAO,MAAM,iBAAiB,EAAE,KAS/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAgClC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj<typeof meta>;
5
+ export declare const ModesDemo: Story;
6
+ export declare const OverrideColors: Story;
7
+ export declare const MakeThemeDemo: Story;
8
+ //# sourceMappingURL=ThemeHelpers.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeHelpers.stories.d.ts","sourceRoot":"","sources":["../../industryTheme/ThemeHelpers.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAsMvD,QAAA,MAAM,IAAI,EAAE,IAKX,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,SAAS,EAAE,KAEvB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAE5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KA0D3B,CAAC"}
@@ -2,11 +2,14 @@ import React, { ReactNode } from 'react';
2
2
  import { Theme } from './index';
3
3
  interface ThemeContextValue {
4
4
  theme: Theme;
5
+ mode?: string;
6
+ setMode: (mode: string) => void;
5
7
  }
6
8
  export declare const useTheme: () => ThemeContextValue;
7
9
  interface ThemeProviderProps {
8
10
  children: ReactNode;
9
11
  theme?: Theme;
12
+ initialMode?: string;
10
13
  }
11
14
  export declare const ThemeProvider: React.FC<ThemeProviderProps>;
12
15
  export declare const withTheme: <P extends object>(Component: React.ComponentType<P & {
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../industryTheme/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,KAAK,EAAyB,MAAM,SAAS,CAAC;AAGvD,UAAU,iBAAiB;IACzB,KAAK,EAAE,KAAK,CAAC;CACd;AA+BD,eAAO,MAAM,QAAQ,QAAO,iBAO3B,CAAC;AAGF,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAStD,CAAC;AAGF,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EACxC,WAAW,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,MAE5C,OAAO,CAAC,sBAIjB,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../industryTheme/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6B,SAAS,EAAuB,MAAM,OAAO,CAAC;AAEzF,OAAO,EAAE,KAAK,EAAyB,MAAM,SAAS,CAAC;AAIvD,UAAU,iBAAiB;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AA+BD,eAAO,MAAM,QAAQ,QAAO,iBAO3B,CAAC;AAGF,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA8CtD,CAAC;AAGF,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EACxC,WAAW,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,MAE5C,OAAO,CAAC,sBAIjB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -34,6 +34,9 @@ type CardVariant = {
34
34
  borderColor?: string;
35
35
  };
36
36
  export interface Theme {
37
+ modes?: {
38
+ [modeName: string]: Partial<Theme['colors']>;
39
+ };
37
40
  space: number[];
38
41
  fonts: {
39
42
  body: string;
@@ -117,5 +120,6 @@ export declare function decreaseFontScale(theme: Theme): Theme;
117
120
  export declare function resetFontScale(theme: Theme): Theme;
118
121
  export { ThemeProvider, useTheme, withTheme, } from './ThemeProvider';
119
122
  export { getColor, getSpace, getFontSize, getRadius, getShadow, getZIndex, responsive, sx, createStyle, mergeThemes, } from './utils';
123
+ export { overrideColors, makeTheme, addMode, getMode } from './themeHelpers';
120
124
  export default theme;
121
125
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../industryTheme/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../industryTheme/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { Theme } from './index';
2
+ /**
3
+ * Override colors in a theme with type checking
4
+ */
5
+ export declare function overrideColors<T extends Theme>(theme: T, colors: Partial<T['colors']>): T;
6
+ /**
7
+ * Create a new theme by extending a base theme
8
+ */
9
+ export declare function makeTheme<T extends Theme>(baseTheme: T, overrides: Partial<{
10
+ colors: Partial<T['colors']>;
11
+ fonts: Partial<T['fonts']>;
12
+ fontSizes: T['fontSizes'];
13
+ space: T['space'];
14
+ radii: T['radii'];
15
+ }>): T;
16
+ /**
17
+ * Add a new mode to a theme
18
+ * @param theme - The theme to add the mode to
19
+ * @param modeName - The name of the new mode (e.g., 'dark', 'light', 'high-contrast')
20
+ * @param colors - Partial colors to override for this mode
21
+ * @param baseMode - Optional existing mode to extend from (defaults to base colors)
22
+ */
23
+ export declare function addMode<T extends Theme>(theme: T, modeName: string, colors: Partial<T['colors']>, baseMode?: string): T;
24
+ /**
25
+ * Get colors for a specific mode
26
+ * @param theme - The theme to get colors from
27
+ * @param mode - The mode name (returns base colors if mode doesn't exist)
28
+ */
29
+ export declare function getMode<T extends Theme>(theme: T, mode?: string): T['colors'];
30
+ //# sourceMappingURL=themeHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themeHelpers.d.ts","sourceRoot":"","sources":["../../industryTheme/themeHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,KAAK,EAC5C,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAC3B,CAAC,CAQH;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,KAAK,EACvC,SAAS,EAAE,CAAC,EACZ,SAAS,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAClB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;CACnB,CAAC,GACD,CAAC,CAaH;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,KAAK,EACrC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,CAAC,CA6BH;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,KAAK,EACrC,KAAK,EAAE,CAAC,EACR,IAAI,CAAC,EAAE,MAAM,GACZ,CAAC,CAAC,QAAQ,CAAC,CASb"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "themed-markdown",
3
- "version": "0.1.16",
3
+ "version": "0.1.17",
4
4
  "description": "Industry-themed markdown renderer with presentation capabilities",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",