promptslide 0.2.5 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -338,14 +338,6 @@ interface SlideThemeProviderProps {
338
338
  */
339
339
  declare function SlideThemeProvider({ theme, children }: SlideThemeProviderProps): react_jsx_runtime.JSX.Element;
340
340
 
341
- interface SlideFooterProps {
342
- slideNumber: number;
343
- totalSlides: number;
344
- /** Use light text/logo for dark slide backgrounds */
345
- variant?: "default" | "light";
346
- }
347
- declare function SlideFooter({ slideNumber, totalSlides, variant }: SlideFooterProps): react_jsx_runtime.JSX.Element | null;
348
-
349
341
  interface SlideRendererProps {
350
342
  slides: SlideConfig[];
351
343
  currentSlide: number;
@@ -412,4 +404,4 @@ declare class SlideErrorBoundary extends React$1.Component<SlideErrorBoundaryPro
412
404
 
413
405
  declare function cn(...inputs: ClassValue[]): string;
414
406
 
415
- export { Animated, AnimatedGroup, AnimationProvider, type AnimationType, DEFAULT_SLIDE_TRANSITION, EASE_DEFAULT, EASE_IN, EASE_MORPH, EASE_OUT, ELEMENT_SLIDE_DISTANCE, MORPH_DURATION, MORPH_TRANSITION, Morph, MorphGroup, MorphItem, MorphText, type NavigationDirection, SLIDE_DIMENSIONS, SLIDE_DISTANCE, SLIDE_TRANSITION, SLIDE_TRANSITION_DURATION, SLIDE_VARIANTS, SPRING_BOUNCY, SPRING_SMOOTH, SPRING_SNAPPY, STAGGER_DELAY, STEP_ANIMATION_DURATION, STEP_TRANSITION, type SlideComponent, type SlideConfig, SlideDeck, SlideEmbed, SlideErrorBoundary, SlideFooter, type SlideProps, SlideRenderer, type SlideRendererProps, SlideThemeProvider, type SlideTransitionConfig, type SlideTransitionType, type ThemeConfig, type UseSlideNavigationOptions, type UseSlideNavigationReturn, cn, createDirectionalVariants, directionalSlideX, directionalSlideY, getSlideTransition, getSlideVariants, useAnimationContext, useSlideNavigation, useTheme };
407
+ export { Animated, AnimatedGroup, AnimationProvider, type AnimationType, DEFAULT_SLIDE_TRANSITION, EASE_DEFAULT, EASE_IN, EASE_MORPH, EASE_OUT, ELEMENT_SLIDE_DISTANCE, MORPH_DURATION, MORPH_TRANSITION, Morph, MorphGroup, MorphItem, MorphText, type NavigationDirection, SLIDE_DIMENSIONS, SLIDE_DISTANCE, SLIDE_TRANSITION, SLIDE_TRANSITION_DURATION, SLIDE_VARIANTS, SPRING_BOUNCY, SPRING_SMOOTH, SPRING_SNAPPY, STAGGER_DELAY, STEP_ANIMATION_DURATION, STEP_TRANSITION, type SlideComponent, type SlideConfig, SlideDeck, SlideEmbed, SlideErrorBoundary, type SlideProps, SlideRenderer, type SlideRendererProps, SlideThemeProvider, type SlideTransitionConfig, type SlideTransitionType, type ThemeConfig, type UseSlideNavigationOptions, type UseSlideNavigationReturn, cn, createDirectionalVariants, directionalSlideX, directionalSlideY, getSlideTransition, getSlideVariants, useAnimationContext, useSlideNavigation, useTheme };
package/dist/index.js CHANGED
@@ -467,40 +467,12 @@ function SlideThemeProvider({ theme, children }) {
467
467
  return /* @__PURE__ */ jsx4(ThemeContext.Provider, { value: theme, children: /* @__PURE__ */ jsx4("div", { style: cssOverrides, className: "contents", children }) });
468
468
  }
469
469
 
470
- // src/core/layouts/shared-footer.tsx
471
- import { jsx as jsx5, jsxs } from "react/jsx-runtime";
472
- function SlideFooter({ slideNumber, totalSlides, variant = "default" }) {
473
- const theme = useTheme();
474
- if (!theme) return null;
475
- const logoUrl = variant === "light" ? theme.logo?.fullLight ?? theme.logo?.full : theme.logo?.full;
476
- const textClass = variant === "light" ? "text-white/70" : "text-muted-foreground";
477
- const nameClass = variant === "light" ? "text-white font-semibold" : "text-foreground font-semibold";
478
- return /* @__PURE__ */ jsxs("div", { className: `mt-4 flex shrink-0 items-center justify-between text-sm ${textClass}`, children: [
479
- /* @__PURE__ */ jsxs("div", { className: `flex items-center gap-3 tracking-tight ${nameClass}`, children: [
480
- logoUrl && /* @__PURE__ */ jsx5(
481
- "img",
482
- {
483
- src: logoUrl,
484
- alt: `${theme.name} Logo`,
485
- className: "h-8 w-auto"
486
- }
487
- ),
488
- /* @__PURE__ */ jsx5("span", { className: "text-lg", children: theme.name })
489
- ] }),
490
- /* @__PURE__ */ jsxs("div", { className: "font-mono", children: [
491
- slideNumber,
492
- " / ",
493
- totalSlides
494
- ] })
495
- ] });
496
- }
497
-
498
470
  // src/core/slide-renderer.tsx
499
471
  import { AnimatePresence, motion as motion3 } from "framer-motion";
500
472
 
501
473
  // src/core/slide-error-boundary.tsx
502
474
  import React from "react";
503
- import { jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
475
+ import { jsx as jsx5, jsxs } from "react/jsx-runtime";
504
476
  var SlideErrorBoundary = class extends React.Component {
505
477
  constructor() {
506
478
  super(...arguments);
@@ -518,18 +490,18 @@ var SlideErrorBoundary = class extends React.Component {
518
490
  }
519
491
  render() {
520
492
  if (this.state.hasError) {
521
- return /* @__PURE__ */ jsxs2("div", { className: "flex h-full w-full flex-col items-center justify-center bg-red-950/20 p-12", children: [
522
- /* @__PURE__ */ jsxs2("div", { className: "mb-4 text-lg font-semibold text-red-400", children: [
493
+ return /* @__PURE__ */ jsxs("div", { className: "flex h-full w-full flex-col items-center justify-center bg-red-950/20 p-12", children: [
494
+ /* @__PURE__ */ jsxs("div", { className: "mb-4 text-lg font-semibold text-red-400", children: [
523
495
  "Slide ",
524
496
  this.props.slideIndex + 1,
525
497
  " Error",
526
- this.props.slideTitle && /* @__PURE__ */ jsxs2("span", { className: "ml-2 font-normal text-red-400/70", children: [
498
+ this.props.slideTitle && /* @__PURE__ */ jsxs("span", { className: "ml-2 font-normal text-red-400/70", children: [
527
499
  "(",
528
500
  this.props.slideTitle,
529
501
  ")"
530
502
  ] })
531
503
  ] }),
532
- /* @__PURE__ */ jsx6("div", { className: "max-w-2xl text-center font-mono text-sm break-words text-red-300/80", children: this.state.error?.message ?? "Unknown error" })
504
+ /* @__PURE__ */ jsx5("div", { className: "max-w-2xl text-center font-mono text-sm break-words text-red-300/80", children: this.state.error?.message ?? "Unknown error" })
533
505
  ] });
534
506
  }
535
507
  return this.props.children;
@@ -537,7 +509,7 @@ var SlideErrorBoundary = class extends React.Component {
537
509
  };
538
510
 
539
511
  // src/core/slide-renderer.tsx
540
- import { jsx as jsx7 } from "react/jsx-runtime";
512
+ import { jsx as jsx6 } from "react/jsx-runtime";
541
513
  function SlideRenderer({
542
514
  slides,
543
515
  currentSlide,
@@ -557,7 +529,7 @@ function SlideRenderer({
557
529
  direction
558
530
  );
559
531
  const CurrentSlideComponent = slides[currentSlide].component;
560
- return /* @__PURE__ */ jsx7(AnimatePresence, { initial: false, children: /* @__PURE__ */ jsx7(
532
+ return /* @__PURE__ */ jsx6(AnimatePresence, { initial: false, children: /* @__PURE__ */ jsx6(
561
533
  motion3.div,
562
534
  {
563
535
  variants: slideVariants,
@@ -571,18 +543,18 @@ function SlideRenderer({
571
543
  }
572
544
  },
573
545
  className: "absolute inset-0 h-full w-full",
574
- children: /* @__PURE__ */ jsx7(
546
+ children: /* @__PURE__ */ jsx6(
575
547
  AnimationProvider,
576
548
  {
577
549
  currentStep: animationStep,
578
550
  totalSteps,
579
551
  showAllAnimations,
580
- children: /* @__PURE__ */ jsx7(
552
+ children: /* @__PURE__ */ jsx6(
581
553
  SlideErrorBoundary,
582
554
  {
583
555
  slideIndex: currentSlide,
584
556
  slideTitle: slides[currentSlide]?.title,
585
- children: /* @__PURE__ */ jsx7(
557
+ children: /* @__PURE__ */ jsx6(
586
558
  CurrentSlideComponent,
587
559
  {
588
560
  slideNumber: currentSlide + 1,
@@ -600,7 +572,7 @@ function SlideRenderer({
600
572
 
601
573
  // src/core/slide-embed.tsx
602
574
  import { useCallback as useCallback2, useEffect as useEffect2, useState as useState2 } from "react";
603
- import { jsx as jsx8 } from "react/jsx-runtime";
575
+ import { jsx as jsx7 } from "react/jsx-runtime";
604
576
  function SlideEmbed({ slides, transition, directionalTransition }) {
605
577
  const [scale, setScale] = useState2(1);
606
578
  const {
@@ -658,15 +630,13 @@ function SlideEmbed({ slides, transition, directionalTransition }) {
658
630
  }, [handleMessage]);
659
631
  useEffect2(() => {
660
632
  const calculateScale = () => {
661
- const scaleX = window.innerWidth / SLIDE_DIMENSIONS.width;
662
- const scaleY = window.innerHeight / SLIDE_DIMENSIONS.height;
663
- setScale(Math.min(scaleX, scaleY));
633
+ setScale(window.innerWidth / SLIDE_DIMENSIONS.width);
664
634
  };
665
635
  calculateScale();
666
636
  window.addEventListener("resize", calculateScale);
667
637
  return () => window.removeEventListener("resize", calculateScale);
668
638
  }, []);
669
- return /* @__PURE__ */ jsx8("div", { className: "flex h-screen w-screen items-center justify-center overflow-hidden bg-black", children: /* @__PURE__ */ jsx8(
639
+ return /* @__PURE__ */ jsx7("div", { className: "flex h-screen w-screen items-center justify-center overflow-hidden bg-black", children: /* @__PURE__ */ jsx7(
670
640
  "div",
671
641
  {
672
642
  className: "relative overflow-hidden bg-black",
@@ -676,7 +646,7 @@ function SlideEmbed({ slides, transition, directionalTransition }) {
676
646
  transform: `scale(${scale})`,
677
647
  transformOrigin: "center center"
678
648
  },
679
- children: /* @__PURE__ */ jsx8(
649
+ children: /* @__PURE__ */ jsx7(
680
650
  SlideRenderer,
681
651
  {
682
652
  slides,
@@ -707,7 +677,7 @@ function cn(...inputs) {
707
677
  }
708
678
 
709
679
  // src/core/slide-deck.tsx
710
- import { jsx as jsx9, jsxs as jsxs3 } from "react/jsx-runtime";
680
+ import { jsx as jsx8, jsxs as jsxs2 } from "react/jsx-runtime";
711
681
  function SlideExportView({ slides, slideIndex }) {
712
682
  const [ready, setReady] = useState3(false);
713
683
  const clampedIndex = Math.max(0, Math.min(slideIndex, slides.length - 1));
@@ -716,7 +686,7 @@ function SlideExportView({ slides, slideIndex }) {
716
686
  useEffect3(() => {
717
687
  setReady(true);
718
688
  }, []);
719
- return /* @__PURE__ */ jsx9(
689
+ return /* @__PURE__ */ jsx8(
720
690
  "div",
721
691
  {
722
692
  "data-export-ready": ready ? "true" : void 0,
@@ -727,13 +697,13 @@ function SlideExportView({ slides, slideIndex }) {
727
697
  position: "relative",
728
698
  background: "black"
729
699
  },
730
- children: /* @__PURE__ */ jsx9(
700
+ children: /* @__PURE__ */ jsx8(
731
701
  AnimationProvider,
732
702
  {
733
703
  currentStep: slideConfig.steps,
734
704
  totalSteps: slideConfig.steps,
735
705
  showAllAnimations: true,
736
- children: /* @__PURE__ */ jsx9(SlideErrorBoundary, { slideIndex: clampedIndex, slideTitle: slideConfig.title, children: /* @__PURE__ */ jsx9(SlideComponent, { slideNumber: clampedIndex + 1, totalSlides: slides.length }) })
706
+ children: /* @__PURE__ */ jsx8(SlideErrorBoundary, { slideIndex: clampedIndex, slideTitle: slideConfig.title, children: /* @__PURE__ */ jsx8(SlideComponent, { slideNumber: clampedIndex + 1, totalSlides: slides.length }) })
737
707
  }
738
708
  )
739
709
  }
@@ -747,7 +717,7 @@ function SlideDeck({ slides, transition, directionalTransition }) {
747
717
  return { slideIndex: parseInt(params.get("slide") || "0", 10) };
748
718
  });
749
719
  if (exportParams) {
750
- return /* @__PURE__ */ jsx9(SlideExportView, { slides, slideIndex: exportParams.slideIndex });
720
+ return /* @__PURE__ */ jsx8(SlideExportView, { slides, slideIndex: exportParams.slideIndex });
751
721
  }
752
722
  const [viewMode, setViewMode] = useState3("slide");
753
723
  const [isPresentationMode, setIsPresentationMode] = useState3(false);
@@ -830,8 +800,8 @@ function SlideDeck({ slides, transition, directionalTransition }) {
830
800
  window.addEventListener("keydown", handleKeyDown);
831
801
  return () => window.removeEventListener("keydown", handleKeyDown);
832
802
  }, [advance, goBack, viewMode, togglePresentationMode]);
833
- return /* @__PURE__ */ jsxs3("div", { className: "min-h-screen w-full bg-neutral-950 text-foreground", children: [
834
- /* @__PURE__ */ jsx9("style", { children: `
803
+ return /* @__PURE__ */ jsxs2("div", { className: "min-h-screen w-full bg-neutral-950 text-foreground", children: [
804
+ /* @__PURE__ */ jsx8("style", { children: `
835
805
  @media print {
836
806
  @page {
837
807
  size: 1920px 1080px;
@@ -852,7 +822,7 @@ function SlideDeck({ slides, transition, directionalTransition }) {
852
822
  }
853
823
  }
854
824
  ` }),
855
- /* @__PURE__ */ jsxs3(
825
+ /* @__PURE__ */ jsxs2(
856
826
  "div",
857
827
  {
858
828
  className: cn(
@@ -860,7 +830,7 @@ function SlideDeck({ slides, transition, directionalTransition }) {
860
830
  isPresentationMode && "hidden"
861
831
  ),
862
832
  children: [
863
- /* @__PURE__ */ jsx9(
833
+ /* @__PURE__ */ jsx8(
864
834
  "button",
865
835
  {
866
836
  onClick: () => setViewMode("slide"),
@@ -869,10 +839,10 @@ function SlideDeck({ slides, transition, directionalTransition }) {
869
839
  viewMode === "slide" && "bg-neutral-800 text-white"
870
840
  ),
871
841
  title: "Presentation View",
872
- children: /* @__PURE__ */ jsx9(Monitor, { className: "h-4 w-4" })
842
+ children: /* @__PURE__ */ jsx8(Monitor, { className: "h-4 w-4" })
873
843
  }
874
844
  ),
875
- /* @__PURE__ */ jsx9(
845
+ /* @__PURE__ */ jsx8(
876
846
  "button",
877
847
  {
878
848
  onClick: () => setViewMode("list"),
@@ -881,10 +851,10 @@ function SlideDeck({ slides, transition, directionalTransition }) {
881
851
  viewMode === "list" && "bg-neutral-800 text-white"
882
852
  ),
883
853
  title: "List View",
884
- children: /* @__PURE__ */ jsx9(List, { className: "h-4 w-4" })
854
+ children: /* @__PURE__ */ jsx8(List, { className: "h-4 w-4" })
885
855
  }
886
856
  ),
887
- /* @__PURE__ */ jsx9(
857
+ /* @__PURE__ */ jsx8(
888
858
  "button",
889
859
  {
890
860
  onClick: () => setViewMode("grid"),
@@ -893,32 +863,32 @@ function SlideDeck({ slides, transition, directionalTransition }) {
893
863
  viewMode === "grid" && "bg-neutral-800 text-white"
894
864
  ),
895
865
  title: "Grid View",
896
- children: /* @__PURE__ */ jsx9(Grid3X3, { className: "h-4 w-4" })
866
+ children: /* @__PURE__ */ jsx8(Grid3X3, { className: "h-4 w-4" })
897
867
  }
898
868
  ),
899
- /* @__PURE__ */ jsx9("div", { className: "mx-1 w-px bg-neutral-800" }),
900
- /* @__PURE__ */ jsx9(
869
+ /* @__PURE__ */ jsx8("div", { className: "mx-1 w-px bg-neutral-800" }),
870
+ /* @__PURE__ */ jsx8(
901
871
  "button",
902
872
  {
903
873
  onClick: handleExportPdf,
904
874
  className: "rounded-md p-2 text-neutral-400 transition-colors hover:bg-neutral-800 hover:text-white",
905
875
  title: "Download PDF",
906
- children: /* @__PURE__ */ jsx9(Download, { className: "h-4 w-4" })
876
+ children: /* @__PURE__ */ jsx8(Download, { className: "h-4 w-4" })
907
877
  }
908
878
  ),
909
- /* @__PURE__ */ jsx9(
879
+ /* @__PURE__ */ jsx8(
910
880
  "button",
911
881
  {
912
882
  onClick: togglePresentationMode,
913
883
  className: "rounded-md p-2 text-neutral-400 transition-colors hover:bg-neutral-800 hover:text-white",
914
884
  title: "Present (F)",
915
- children: /* @__PURE__ */ jsx9(Maximize, { className: "h-4 w-4" })
885
+ children: /* @__PURE__ */ jsx8(Maximize, { className: "h-4 w-4" })
916
886
  }
917
887
  )
918
888
  ]
919
889
  }
920
890
  ),
921
- viewMode === "slide" && /* @__PURE__ */ jsxs3(
891
+ viewMode === "slide" && /* @__PURE__ */ jsxs2(
922
892
  "div",
923
893
  {
924
894
  ref: containerRef,
@@ -933,7 +903,7 @@ function SlideDeck({ slides, transition, directionalTransition }) {
933
903
  if (e.key === "Enter" || e.key === " ") advance();
934
904
  } : void 0,
935
905
  children: [
936
- /* @__PURE__ */ jsx9(LayoutGroup, { id: "slide-deck", children: isPresentationMode ? /* @__PURE__ */ jsx9(
906
+ /* @__PURE__ */ jsx8(LayoutGroup, { id: "slide-deck", children: isPresentationMode ? /* @__PURE__ */ jsx8(
937
907
  "div",
938
908
  {
939
909
  className: "pointer-events-none relative overflow-hidden bg-black",
@@ -943,7 +913,7 @@ function SlideDeck({ slides, transition, directionalTransition }) {
943
913
  transform: `scale(${scale})`,
944
914
  transformOrigin: "center center"
945
915
  },
946
- children: /* @__PURE__ */ jsx9(
916
+ children: /* @__PURE__ */ jsx8(
947
917
  SlideRenderer,
948
918
  {
949
919
  slides,
@@ -958,7 +928,7 @@ function SlideDeck({ slides, transition, directionalTransition }) {
958
928
  }
959
929
  )
960
930
  }
961
- ) : /* @__PURE__ */ jsx9("div", { className: "relative aspect-video w-full max-w-7xl overflow-hidden rounded-xl border border-neutral-800 bg-black shadow-2xl", children: /* @__PURE__ */ jsx9(
931
+ ) : /* @__PURE__ */ jsx8("div", { className: "relative aspect-video w-full max-w-7xl overflow-hidden rounded-xl border border-neutral-800 bg-black shadow-2xl", children: /* @__PURE__ */ jsx8(
962
932
  SlideRenderer,
963
933
  {
964
934
  slides,
@@ -972,42 +942,42 @@ function SlideDeck({ slides, transition, directionalTransition }) {
972
942
  onTransitionComplete
973
943
  }
974
944
  ) }) }),
975
- !isPresentationMode && /* @__PURE__ */ jsxs3("div", { className: "mt-6 flex items-center gap-4", children: [
976
- /* @__PURE__ */ jsx9(
945
+ !isPresentationMode && /* @__PURE__ */ jsxs2("div", { className: "mt-6 flex items-center gap-4", children: [
946
+ /* @__PURE__ */ jsx8(
977
947
  "button",
978
948
  {
979
949
  onClick: goBack,
980
950
  className: "rounded-full border border-neutral-800 bg-black/50 p-2 text-neutral-400 backdrop-blur-sm transition-colors hover:bg-neutral-900 hover:text-white",
981
- children: /* @__PURE__ */ jsx9(ChevronLeft, { className: "h-5 w-5" })
951
+ children: /* @__PURE__ */ jsx8(ChevronLeft, { className: "h-5 w-5" })
982
952
  }
983
953
  ),
984
- /* @__PURE__ */ jsxs3("div", { className: "flex min-w-[4rem] flex-col items-center", children: [
985
- /* @__PURE__ */ jsxs3("span", { className: "font-mono text-sm text-neutral-500", children: [
954
+ /* @__PURE__ */ jsxs2("div", { className: "flex min-w-[4rem] flex-col items-center", children: [
955
+ /* @__PURE__ */ jsxs2("span", { className: "font-mono text-sm text-neutral-500", children: [
986
956
  currentSlide + 1,
987
957
  " / ",
988
958
  slides.length
989
959
  ] }),
990
- slides[currentSlide]?.title && /* @__PURE__ */ jsx9("span", { className: "mt-0.5 text-xs text-neutral-600", children: slides[currentSlide].title })
960
+ slides[currentSlide]?.title && /* @__PURE__ */ jsx8("span", { className: "mt-0.5 text-xs text-neutral-600", children: slides[currentSlide].title })
991
961
  ] }),
992
- /* @__PURE__ */ jsx9(
962
+ /* @__PURE__ */ jsx8(
993
963
  "button",
994
964
  {
995
965
  onClick: advance,
996
966
  className: "rounded-full border border-neutral-800 bg-black/50 p-2 text-neutral-400 backdrop-blur-sm transition-colors hover:bg-neutral-900 hover:text-white",
997
- children: /* @__PURE__ */ jsx9(ChevronRight, { className: "h-5 w-5" })
967
+ children: /* @__PURE__ */ jsx8(ChevronRight, { className: "h-5 w-5" })
998
968
  }
999
969
  )
1000
970
  ] })
1001
971
  ]
1002
972
  }
1003
973
  ),
1004
- viewMode === "grid" && /* @__PURE__ */ jsx9("div", { className: "mx-auto max-w-7xl p-8 pt-16 print:hidden", children: /* @__PURE__ */ jsx9("div", { className: "grid grid-cols-2 gap-4 md:grid-cols-3 lg:grid-cols-4", children: slides.map((slideConfig, index) => {
974
+ viewMode === "grid" && /* @__PURE__ */ jsx8("div", { className: "mx-auto max-w-7xl p-8 pt-16 print:hidden", children: /* @__PURE__ */ jsx8("div", { className: "grid grid-cols-2 gap-4 md:grid-cols-3 lg:grid-cols-4", children: slides.map((slideConfig, index) => {
1005
975
  const SlideComponent = slideConfig.component;
1006
976
  const prevSection = index > 0 ? slides[index - 1]?.section : void 0;
1007
977
  const showSectionHeader = slideConfig.section && slideConfig.section !== prevSection;
1008
- return /* @__PURE__ */ jsxs3("div", { className: showSectionHeader ? "col-span-full" : void 0, children: [
1009
- showSectionHeader && /* @__PURE__ */ jsx9("h3", { className: "mt-4 mb-3 text-xs font-bold tracking-[0.2em] text-neutral-500 uppercase first:mt-0", children: slideConfig.section }),
1010
- /* @__PURE__ */ jsxs3(
978
+ return /* @__PURE__ */ jsxs2("div", { className: showSectionHeader ? "col-span-full" : void 0, children: [
979
+ showSectionHeader && /* @__PURE__ */ jsx8("h3", { className: "mt-4 mb-3 text-xs font-bold tracking-[0.2em] text-neutral-500 uppercase first:mt-0", children: slideConfig.section }),
980
+ /* @__PURE__ */ jsxs2(
1011
981
  "button",
1012
982
  {
1013
983
  onClick: () => {
@@ -1016,30 +986,30 @@ function SlideDeck({ slides, transition, directionalTransition }) {
1016
986
  },
1017
987
  className: "group relative aspect-video w-full overflow-hidden rounded-lg border border-neutral-800 bg-black shadow-sm transition-all hover:border-primary hover:shadow-lg hover:shadow-primary/10",
1018
988
  children: [
1019
- /* @__PURE__ */ jsx9(
989
+ /* @__PURE__ */ jsx8(
1020
990
  "div",
1021
991
  {
1022
992
  className: "h-full w-full origin-top-left scale-[0.25]",
1023
993
  style: { width: "400%", height: "400%" },
1024
- children: /* @__PURE__ */ jsx9(
994
+ children: /* @__PURE__ */ jsx8(
1025
995
  AnimationProvider,
1026
996
  {
1027
997
  currentStep: slideConfig.steps,
1028
998
  totalSteps: slideConfig.steps,
1029
999
  showAllAnimations: true,
1030
- children: /* @__PURE__ */ jsx9(SlideErrorBoundary, { slideIndex: index, slideTitle: slideConfig.title, children: /* @__PURE__ */ jsx9(SlideComponent, { slideNumber: index + 1, totalSlides: slides.length }) })
1000
+ children: /* @__PURE__ */ jsx8(SlideErrorBoundary, { slideIndex: index, slideTitle: slideConfig.title, children: /* @__PURE__ */ jsx8(SlideComponent, { slideNumber: index + 1, totalSlides: slides.length }) })
1031
1001
  }
1032
1002
  )
1033
1003
  }
1034
1004
  ),
1035
- /* @__PURE__ */ jsx9("div", { className: "absolute inset-0 bg-black/0 transition-colors group-hover:bg-black/20" }),
1036
- /* @__PURE__ */ jsx9("div", { className: "absolute bottom-2 left-2 rounded bg-black/70 px-2 py-1 text-xs font-medium text-white", children: slideConfig.title ? `${index + 1}. ${slideConfig.title}` : index + 1 })
1005
+ /* @__PURE__ */ jsx8("div", { className: "absolute inset-0 bg-black/0 transition-colors group-hover:bg-black/20" }),
1006
+ /* @__PURE__ */ jsx8("div", { className: "absolute bottom-2 left-2 rounded bg-black/70 px-2 py-1 text-xs font-medium text-white", children: slideConfig.title ? `${index + 1}. ${slideConfig.title}` : index + 1 })
1037
1007
  ]
1038
1008
  }
1039
1009
  )
1040
1010
  ] }, index);
1041
1011
  }) }) }),
1042
- /* @__PURE__ */ jsx9(
1012
+ /* @__PURE__ */ jsx8(
1043
1013
  "div",
1044
1014
  {
1045
1015
  className: cn(
@@ -1047,19 +1017,19 @@ function SlideDeck({ slides, transition, directionalTransition }) {
1047
1017
  "print:m-0 print:block print:max-w-none print:p-0",
1048
1018
  viewMode === "list" ? "block" : "hidden print:block"
1049
1019
  ),
1050
- children: /* @__PURE__ */ jsx9("div", { className: "grid grid-cols-1 gap-8 print:block", children: slides.map((slideConfig, index) => {
1020
+ children: /* @__PURE__ */ jsx8("div", { className: "grid grid-cols-1 gap-8 print:block", children: slides.map((slideConfig, index) => {
1051
1021
  const SlideComponent = slideConfig.component;
1052
- return /* @__PURE__ */ jsx9(
1022
+ return /* @__PURE__ */ jsx8(
1053
1023
  "div",
1054
1024
  {
1055
1025
  className: "aspect-video w-full overflow-hidden rounded-xl border border-neutral-800 bg-black shadow-sm print:relative print:m-0 print:h-[1080px] print:w-[1920px] print:break-after-page print:overflow-hidden print:rounded-none print:border-0 print:shadow-none",
1056
- children: /* @__PURE__ */ jsx9("div", { className: "h-full w-full print:h-[720px] print:w-[1280px] print:origin-top-left print:scale-[1.5]", children: /* @__PURE__ */ jsx9(
1026
+ children: /* @__PURE__ */ jsx8("div", { className: "h-full w-full print:h-[720px] print:w-[1280px] print:origin-top-left print:scale-[1.5]", children: /* @__PURE__ */ jsx8(
1057
1027
  AnimationProvider,
1058
1028
  {
1059
1029
  currentStep: slideConfig.steps,
1060
1030
  totalSteps: slideConfig.steps,
1061
1031
  showAllAnimations: true,
1062
- children: /* @__PURE__ */ jsx9(SlideErrorBoundary, { slideIndex: index, slideTitle: slideConfig.title, children: /* @__PURE__ */ jsx9(SlideComponent, { slideNumber: index + 1, totalSlides: slides.length }) })
1032
+ children: /* @__PURE__ */ jsx8(SlideErrorBoundary, { slideIndex: index, slideTitle: slideConfig.title, children: /* @__PURE__ */ jsx8(SlideComponent, { slideNumber: index + 1, totalSlides: slides.length }) })
1063
1033
  }
1064
1034
  ) })
1065
1035
  },
@@ -1100,7 +1070,6 @@ export {
1100
1070
  SlideDeck,
1101
1071
  SlideEmbed,
1102
1072
  SlideErrorBoundary,
1103
- SlideFooter,
1104
1073
  SlideRenderer,
1105
1074
  SlideThemeProvider,
1106
1075
  cn,