@opensite/ui 0.6.3 → 0.6.5

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.
Files changed (61) hide show
  1. package/dist/about-startup-team.cjs +2 -2
  2. package/dist/about-startup-team.js +2 -2
  3. package/dist/article-breadcrumb-social.cjs +434 -215
  4. package/dist/article-breadcrumb-social.d.cts +19 -1
  5. package/dist/article-breadcrumb-social.d.ts +19 -1
  6. package/dist/article-breadcrumb-social.js +434 -214
  7. package/dist/article-chapters-author.cjs +422 -204
  8. package/dist/article-chapters-author.d.cts +19 -1
  9. package/dist/article-chapters-author.d.ts +19 -1
  10. package/dist/article-chapters-author.js +422 -203
  11. package/dist/article-compact-toc.cjs +429 -73
  12. package/dist/article-compact-toc.d.cts +19 -1
  13. package/dist/article-compact-toc.d.ts +19 -1
  14. package/dist/article-compact-toc.js +430 -73
  15. package/dist/article-hero-prose.cjs +394 -347
  16. package/dist/article-hero-prose.d.cts +19 -1
  17. package/dist/article-hero-prose.d.ts +19 -1
  18. package/dist/article-hero-prose.js +396 -348
  19. package/dist/article-sidebar-sticky.cjs +398 -152
  20. package/dist/article-sidebar-sticky.d.cts +19 -1
  21. package/dist/article-sidebar-sticky.d.ts +19 -1
  22. package/dist/article-sidebar-sticky.js +400 -153
  23. package/dist/article-split-animated.cjs +422 -35
  24. package/dist/article-split-animated.d.cts +19 -1
  25. package/dist/article-split-animated.d.ts +19 -1
  26. package/dist/article-split-animated.js +423 -35
  27. package/dist/article-toc-sidebar.cjs +417 -356
  28. package/dist/article-toc-sidebar.d.cts +19 -1
  29. package/dist/article-toc-sidebar.d.ts +19 -1
  30. package/dist/article-toc-sidebar.js +417 -355
  31. package/dist/blog-cards-read-time.cjs +66 -27
  32. package/dist/blog-cards-read-time.js +66 -27
  33. package/dist/blog-cards-tagline-cta.cjs +64 -14
  34. package/dist/blog-cards-tagline-cta.js +64 -14
  35. package/dist/blog-carousel-apple.cjs +1255 -0
  36. package/dist/blog-carousel-apple.d.cts +113 -0
  37. package/dist/blog-carousel-apple.d.ts +113 -0
  38. package/dist/blog-carousel-apple.js +1234 -0
  39. package/dist/blog-category-overlay.cjs +77 -15
  40. package/dist/blog-category-overlay.js +77 -15
  41. package/dist/blog-featured-popular.cjs +72 -14
  42. package/dist/blog-featured-popular.js +72 -14
  43. package/dist/blog-filtered-results.cjs +122 -39
  44. package/dist/blog-filtered-results.js +122 -39
  45. package/dist/blog-grid-author-cards.cjs +40 -6
  46. package/dist/blog-grid-author-cards.js +40 -6
  47. package/dist/blog-grid-nine-posts.cjs +40 -6
  48. package/dist/blog-grid-nine-posts.js +40 -6
  49. package/dist/blog-horizontal-cards.cjs +34 -6
  50. package/dist/blog-horizontal-cards.js +34 -6
  51. package/dist/blog-horizontal-timeline.cjs +41 -12
  52. package/dist/blog-horizontal-timeline.js +41 -12
  53. package/dist/blog-masonry-featured.cjs +96 -52
  54. package/dist/blog-masonry-featured.js +96 -52
  55. package/dist/blog-related-articles.cjs +47 -9
  56. package/dist/blog-related-articles.js +47 -9
  57. package/dist/blog-tech-insights.cjs +78 -14
  58. package/dist/blog-tech-insights.js +78 -14
  59. package/dist/registry.cjs +1036 -687
  60. package/dist/registry.js +1036 -687
  61. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React4 = require('react');
4
+ var React6 = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var img = require('@page-speed/img');
@@ -28,7 +28,7 @@ function _interopNamespace(e) {
28
28
  return Object.freeze(n);
29
29
  }
30
30
 
31
- var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
31
+ var React6__namespace = /*#__PURE__*/_interopNamespace(React6);
32
32
  var AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive);
33
33
 
34
34
  // components/blocks/article/article-chapters-author.tsx
@@ -110,7 +110,7 @@ function useNavigation({
110
110
  href,
111
111
  onClick
112
112
  } = {}) {
113
- const linkType = React4__namespace.useMemo(() => {
113
+ const linkType = React6__namespace.useMemo(() => {
114
114
  if (!href || href.trim() === "") {
115
115
  return onClick ? "none" : "none";
116
116
  }
@@ -131,7 +131,7 @@ function useNavigation({
131
131
  return "internal";
132
132
  }
133
133
  }, [href, onClick]);
134
- const normalizedHref = React4__namespace.useMemo(() => {
134
+ const normalizedHref = React6__namespace.useMemo(() => {
135
135
  if (!href || href.trim() === "") {
136
136
  return void 0;
137
137
  }
@@ -149,7 +149,7 @@ function useNavigation({
149
149
  return trimmed;
150
150
  }
151
151
  }, [href, linkType]);
152
- const target = React4__namespace.useMemo(() => {
152
+ const target = React6__namespace.useMemo(() => {
153
153
  switch (linkType) {
154
154
  case "external":
155
155
  return "_blank";
@@ -162,7 +162,7 @@ function useNavigation({
162
162
  return void 0;
163
163
  }
164
164
  }, [linkType]);
165
- const rel = React4__namespace.useMemo(() => {
165
+ const rel = React6__namespace.useMemo(() => {
166
166
  if (linkType === "external") {
167
167
  return "noopener noreferrer";
168
168
  }
@@ -171,7 +171,7 @@ function useNavigation({
171
171
  const isExternal = linkType === "external";
172
172
  const isInternal = linkType === "internal";
173
173
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
174
- const handleClick = React4__namespace.useCallback(
174
+ const handleClick = React6__namespace.useCallback(
175
175
  (event) => {
176
176
  if (onClick) {
177
177
  try {
@@ -355,7 +355,7 @@ var buttonVariants = classVarianceAuthority.cva(baseStyles, {
355
355
  size: "default"
356
356
  }
357
357
  });
358
- var Pressable = React4__namespace.forwardRef(
358
+ var Pressable = React6__namespace.forwardRef(
359
359
  ({
360
360
  children,
361
361
  className,
@@ -461,10 +461,10 @@ function DynamicIcon({
461
461
  className,
462
462
  alt
463
463
  }) {
464
- const [svgContent, setSvgContent] = React4__namespace.useState(null);
465
- const [isLoading, setIsLoading] = React4__namespace.useState(true);
466
- const [error, setError] = React4__namespace.useState(null);
467
- const { url, iconName } = React4__namespace.useMemo(() => {
464
+ const [svgContent, setSvgContent] = React6__namespace.useState(null);
465
+ const [isLoading, setIsLoading] = React6__namespace.useState(true);
466
+ const [error, setError] = React6__namespace.useState(null);
467
+ const { url, iconName } = React6__namespace.useMemo(() => {
468
468
  const separator = name.includes("/") ? "/" : ":";
469
469
  const [prefix, iconName2] = name.split(separator);
470
470
  const baseUrl = `https://icons.opensite.ai/api/icon/${prefix}/${iconName2}?format=svg&width=${size}&height=${size}`;
@@ -473,7 +473,7 @@ function DynamicIcon({
473
473
  iconName: iconName2
474
474
  };
475
475
  }, [name, size]);
476
- React4__namespace.useEffect(() => {
476
+ React6__namespace.useEffect(() => {
477
477
  let isMounted = true;
478
478
  const fetchSvg = async () => {
479
479
  const cached = svgCache.get(url);
@@ -674,175 +674,379 @@ function BreadcrumbSeparator({
674
674
  }
675
675
  );
676
676
  }
677
+ var maxWidthStyles = {
678
+ sm: "max-w-screen-sm",
679
+ md: "max-w-screen-md",
680
+ lg: "max-w-screen-lg",
681
+ xl: "max-w-7xl",
682
+ "2xl": "max-w-screen-2xl",
683
+ "4xl": "max-w-[1536px]",
684
+ full: "max-w-full"
685
+ };
686
+ var Container = React6__namespace.default.forwardRef(
687
+ ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
688
+ const Component = as;
689
+ return /* @__PURE__ */ jsxRuntime.jsx(
690
+ Component,
691
+ {
692
+ ref,
693
+ className: cn(
694
+ "mx-auto w-full px-2 sm:px-4 lg:px-8",
695
+ maxWidthStyles[maxWidth],
696
+ className
697
+ ),
698
+ ...props,
699
+ children
700
+ }
701
+ );
702
+ }
703
+ );
704
+ Container.displayName = "Container";
677
705
 
678
- // lib/mediaPlaceholders.ts
679
- var imagePlaceholders = [
680
- "https://toastability-production.s3.amazonaws.com/xlp46pzk3a4d73jgjx4s7xdafwpn",
681
- "https://toastability-production.s3.amazonaws.com/g1iuifb3yzoofo9c7a00koyn6q1t",
682
- "https://toastability-production.s3.amazonaws.com/z9u4sdrj2oq3eds0qyui0nxsus3j",
683
- "https://toastability-production.s3.amazonaws.com/63aotyt2pb4gqpccej2kkw8reson",
684
- "https://toastability-production.s3.amazonaws.com/pjgb223h1bjywdk15i3zi7pjhutg",
685
- "https://toastability-production.s3.amazonaws.com/we9r4e711an6d0bd3dwbl9tb9z7q",
686
- "https://toastability-production.s3.amazonaws.com/f8rfrurzo743ym1s7m5xtbombunz",
687
- "https://toastability-production.s3.amazonaws.com/oe0y4bgiylx81fbfvsw31mhdgjzs",
688
- "https://toastability-production.s3.amazonaws.com/sr370c2cnf7uk5k4f6znyshualv0",
689
- "https://toastability-production.s3.amazonaws.com/cen5x90p3kbdafb80liq1a5j222x",
690
- "https://toastability-production.s3.amazonaws.com/ygob90kp07hxmi5jj4sned76dnmc",
691
- "https://toastability-production.s3.amazonaws.com/qhz2kawawq3bbh7nusz3bvahln3v",
692
- "https://toastability-production.s3.amazonaws.com/zykfhuapdqzu94ee1535gsgnvyac",
693
- "https://toastability-production.s3.amazonaws.com/kh1p8y15v55ctp5ulobm4pd77etm",
694
- "https://toastability-production.s3.amazonaws.com/8x62o6350p1ejm3pjrp1jwvcbh4v",
695
- "https://toastability-production.s3.amazonaws.com/vvixyoo7ybq3h04q2q0kact0s5wc",
696
- "https://toastability-production.s3.amazonaws.com/t502cfynqso7ntkdvmcmfc87yjkt",
697
- "https://toastability-production.s3.amazonaws.com/ihgx63s5nfzp2e93e3ccljjnnrov",
698
- "https://toastability-production.s3.amazonaws.com/b555hwjt7ltr81et05v5254q1ak6",
699
- "https://toastability-production.s3.amazonaws.com/c4sgsy0g7o2rrjmvm9x7evxems82",
700
- "https://toastability-production.s3.amazonaws.com/a3m42usevv0iet0fpfwa1fsytxmv",
701
- "https://toastability-production.s3.amazonaws.com/qghzqu1i99vaubyew9s5dxcbel9l",
702
- "https://toastability-production.s3.amazonaws.com/9covpitzpuuobkg1m4mfokpi0enw",
703
- "https://toastability-production.s3.amazonaws.com/2d4k8d5shwg82276hzj2ztbj7mxq",
704
- "https://toastability-production.s3.amazonaws.com/op92dycs7w856e2jsvx20st0nyz9",
705
- "https://toastability-production.s3.amazonaws.com/f921uoblxbv8f9bmr4s2ik7xxugl",
706
- "https://toastability-production.s3.amazonaws.com/gl7n7p6atndufbsm6q2ac5jeqttp",
707
- "https://toastability-production.s3.amazonaws.com/sj8cs2gpbanaowqwxar1uhhwd23z",
708
- "https://toastability-production.s3.amazonaws.com/hu4gmd93sp95wdyr9qijze0rgim9",
709
- "https://toastability-production.s3.amazonaws.com/uh2vd59np82h8sevbmfnsha89sf1",
710
- "https://toastability-production.s3.amazonaws.com/gxs6zevccphti0hdq5l9fwytprpr",
711
- "https://toastability-production.s3.amazonaws.com/s4vho0wfbjhf758oife8qfuekou8",
712
- "https://toastability-production.s3.amazonaws.com/1b0gd8ul22q799d62dvm3sgyll85",
713
- "https://toastability-production.s3.amazonaws.com/102grjqg8aigxkj585s9x3xbxfv7",
714
- "https://toastability-production.s3.amazonaws.com/dvz0441h9fxjhh88lzqbwdoyxv52",
715
- "https://toastability-production.s3.amazonaws.com/50y066ms7rb5sw62u9u08jzkk8rj",
716
- "https://toastability-production.s3.amazonaws.com/9uxe0jw1zl1tujy0m5yalo7m2ht8",
717
- "https://toastability-production.s3.amazonaws.com/cyhcpla6me8vs936i3fw6wbhypi2",
718
- "https://toastability-production.s3.amazonaws.com/6ntdz6xwid3fswjz8y0otdxmzs40",
719
- "https://toastability-production.s3.amazonaws.com/y1aezpa78m2fhfvj8whcx337y9cb",
720
- "https://toastability-production.s3.amazonaws.com/eoa76d31ynbg34urr6e4619la1f7",
721
- "https://toastability-production.s3.amazonaws.com/0mh8a1dg7ftcqnyzgv303u501c8y",
722
- "https://toastability-production.s3.amazonaws.com/vvucxqs128w2d0z3n4s2z131rq7p",
723
- "https://toastability-production.s3.amazonaws.com/2rbqbw9778770i8izdeabx8v2w2k",
724
- "https://toastability-production.s3.amazonaws.com/90rcw2mljzpeuxlac8q77mor15xz",
725
- "https://toastability-production.s3.amazonaws.com/vh1aowwr93yz4qrzct2s4je0cxdo",
726
- "https://toastability-production.s3.amazonaws.com/ssgb7unxdwdqokfvhkp7cok2v79s",
727
- "https://toastability-production.s3.amazonaws.com/vvkma6b8whdkiq5nq8z4eyfe00vo",
728
- "https://toastability-production.s3.amazonaws.com/9797jh6slgbf9oq6lzlimcdiuziv",
729
- "https://toastability-production.s3.amazonaws.com/betxbx61fkijt0aygineplf489ze",
730
- "https://toastability-production.s3.amazonaws.com/0o6d7z4mm9nzeufhv9kefrhihbip",
731
- "https://toastability-production.s3.amazonaws.com/1xdx70c7gp9l883soyh5d3exesvt",
732
- "https://toastability-production.s3.amazonaws.com/jhjfvkmdzktacyijd9fh6acc7o2c",
733
- "https://toastability-production.s3.amazonaws.com/n001o4pfpszmyw03ubctig7kvf0e",
734
- "https://toastability-production.s3.amazonaws.com/l080sx0lcx51x44dqrb8006nqf08",
735
- "https://toastability-production.s3.amazonaws.com/2t36c7l0ywchaz4nys8yj2l5amae",
736
- "https://toastability-production.s3.amazonaws.com/gg5qnvb4nsl2k3g4dw4ls8bsllwh",
737
- "https://toastability-production.s3.amazonaws.com/3nqc7xvjy3e8d7jo1gdvbzty0oqg",
738
- "https://toastability-production.s3.amazonaws.com/0kx9umbfmv881wt9dfqnohv8efgi",
739
- "https://toastability-production.s3.amazonaws.com/9z0sbfnskx70vse99e3dfhper7i1",
740
- "https://toastability-production.s3.amazonaws.com/9keidwrag6g7jtqr7rdwb1ryt6ht",
741
- "https://toastability-production.s3.amazonaws.com/zm88vf14geh1gh0frd3yrdlb6pl8",
742
- "https://toastability-production.s3.amazonaws.com/0x7ktdk01jfaoysst0emzvqevu19",
743
- "https://toastability-production.s3.amazonaws.com/e83zsyvl0an0owzdmpwjnnty641x",
744
- "https://toastability-production.s3.amazonaws.com/t3k42fbzq7r7j93feldqm5cj1o1n",
745
- "https://toastability-production.s3.amazonaws.com/5sm6wc4no8fyzxfki5njmnv6gql5",
746
- "https://toastability-production.s3.amazonaws.com/w41h7890eivogu3sr78vlwkpzz8g",
747
- "https://toastability-production.s3.amazonaws.com/vrezhtksoqbw1nyo4hwnoqizrus5",
748
- "https://toastability-production.s3.amazonaws.com/8qkikcd43paeqgvw9gc1032j3yup",
749
- "https://toastability-production.s3.amazonaws.com/ihhq8unynafk4aikmys3rhbfibaz",
750
- "https://toastability-production.s3.amazonaws.com/rews5enr9ynu6izioj66s8ec90nc",
751
- "https://toastability-production.s3.amazonaws.com/6ku135fhv528eei3agnoc3zd7y75",
752
- "https://toastability-production.s3.amazonaws.com/x4scuzhsozrwrg703df5wbhygkgo",
753
- "https://toastability-production.s3.amazonaws.com/73e0s79u4crdu7cmjfp99j1l2v55",
754
- "https://toastability-production.s3.amazonaws.com/rddfyzvfpdlbzwhgep2myppwxn05",
755
- "https://toastability-production.s3.amazonaws.com/mat88x8zzdek7wpgtocjrehfivsh",
756
- "https://toastability-production.s3.amazonaws.com/3vwfdbekbkskxj2mvlvu85fz787u",
757
- "https://toastability-production.s3.amazonaws.com/ms4s4zyqpmboh0slez1cwat9qhw4",
758
- "https://toastability-production.s3.amazonaws.com/5jsc0b4e3gxnjs81iotw2c3e6da3",
759
- "https://toastability-production.s3.amazonaws.com/0g6t701zqr2r7najmdgftpeqnxmz",
760
- "https://toastability-production.s3.amazonaws.com/u3p1hlbm2c1vvkwlm8h668pe132z",
761
- "https://toastability-production.s3.amazonaws.com/ehgbcugs782765ke1l2dtbtzd918",
762
- "https://toastability-production.s3.amazonaws.com/kka8f550on7acx1lf82xleu6zhzo",
763
- "https://toastability-production.s3.amazonaws.com/67fnapqepn7f8vwt0x4nqho70hbz",
764
- "https://toastability-production.s3.amazonaws.com/t4cidbsfz3z468bn45yqdrkbx7ou",
765
- "https://toastability-production.s3.amazonaws.com/gq3c9qalkiomu0rzdzxymkdaazdu",
766
- "https://toastability-production.s3.amazonaws.com/9ujya2tfhxja7y5s9wb7d2u8crhd",
767
- "https://toastability-production.s3.amazonaws.com/hotlo54tsvl2k3eht9gg0460l9zw",
768
- "https://toastability-production.s3.amazonaws.com/ytbyjrcvrghc7wl6w1g7g8fwka22",
769
- "https://toastability-production.s3.amazonaws.com/uv0g605yf5mz106nrm1uspt9l0rr",
770
- "https://toastability-production.s3.amazonaws.com/yrp5k5xszwpe26fquupey6a6g0uu",
771
- "https://toastability-production.s3.amazonaws.com/97gctpna2hdozl1f8u5xq4ew8h0o",
772
- "https://toastability-production.s3.amazonaws.com/xjtepune0scj9yjkkqgaiwlq9hls",
773
- "https://toastability-production.s3.amazonaws.com/g607vblaarqctl1cvgxffhx4pw6g",
774
- "https://toastability-production.s3.amazonaws.com/4xpu1ljr9c8g6qzmfum5ygjzbzpb",
775
- "https://toastability-production.s3.amazonaws.com/yw5f7iwyypf4kctpr5ye5e495swt",
776
- "https://toastability-production.s3.amazonaws.com/z37cidvud212bzqhhalrhvk7ipaa",
777
- "https://toastability-production.s3.amazonaws.com/pfllskt7q7144l288lrnpc6gx606",
778
- "https://toastability-production.s3.amazonaws.com/fokd3hxzvdtsomagbfhqooyvndyv",
779
- "https://toastability-production.s3.amazonaws.com/6fffnb4phovtqkjhtzifs4rhb84u",
780
- "https://toastability-production.s3.amazonaws.com/mt87xjr79wxdhjy7496v3r6m2m9t",
781
- "https://toastability-production.s3.amazonaws.com/3dy9ge962uarlaf2xl7imdcviqgx",
782
- "https://toastability-production.s3.amazonaws.com/okf6fg4n9yv59up8ivgcdjy3w030",
783
- "https://toastability-production.s3.amazonaws.com/t7iteqw4xhtppkiws88bsoia25hv",
784
- "https://toastability-production.s3.amazonaws.com/klr5tuvulkyqfb721txtu4hgzxdm",
785
- "https://toastability-production.s3.amazonaws.com/9eddibiq5ovc9cvs3ekijkrjpahg",
786
- "https://toastability-production.s3.amazonaws.com/3ghn8dz3g9qtt4pf4nwbriaydvzb",
787
- "https://toastability-production.s3.amazonaws.com/82ykd8s8boiqaxypkulb0v0s2qiw",
788
- "https://toastability-production.s3.amazonaws.com/4eqmdeanxfk6jzvigo42y5ryv2c8",
789
- "https://toastability-production.s3.amazonaws.com/9ughnl9wnko2vdboib8n3wl3cxsy",
790
- "https://toastability-production.s3.amazonaws.com/4xjcgtlwseruezhoh3o1ga4umhj4",
791
- "https://toastability-production.s3.amazonaws.com/xwh1zzxgyd887thfm1j9lu9qnd6c",
792
- "https://toastability-production.s3.amazonaws.com/ri0dqx79spe6771np76mkmno5xfd",
793
- "https://toastability-production.s3.amazonaws.com/e13qu3083lkhdg7th64vb628172a",
794
- "https://toastability-production.s3.amazonaws.com/w87w0fyjdol9yzwo7yywkgxidvzo"
795
- ];
796
- var defaultArticleContent = (optixFlowConfig) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
797
- /* @__PURE__ */ jsxRuntime.jsx(
798
- img.Img,
706
+ // lib/patternSvgs.ts
707
+ var patternSvgs = {
708
+ squareAltGrid: "https://cdn.ing/assets/files/record/286187/4gpn0yq2ptra8iwlvmwwv860ggwv",
709
+ grid1: "https://cdn.ing/assets/files/record/286186/nbdflpgp4ostrno079hygibsflp3",
710
+ noise: "https://cdn.ing/assets/i/r/286188/zrqcp9hynh3j7p2laihwzfbujgrl/noise.png",
711
+ dots: "https://cdn.ing/assets/files/record/286198/yfsjx9thvtxzhl2qtshxyhkrm524",
712
+ dotPattern: "https://cdn.ing/assets/files/record/286192/7ig0cku8aqbboiza8nuk6hw0nnsr",
713
+ dotPattern2: "https://cdn.ing/assets/files/record/286189/arez6gd2s7isn9i1o6c7sexdq7bl",
714
+ circles: "https://cdn.ing/assets/files/record/286190/gtmia3sncjtzetdshc20zf1d3c17",
715
+ waves: "https://cdn.ing/assets/files/record/286191/mqlb33fzxz9cdth1bx7if0wmpkp1",
716
+ crossPattern: "https://cdn.ing/assets/files/record/286193/9yfqwdbnqaipbp7fsb3wbzzmq472",
717
+ architect: "https://cdn.ing/assets/files/record/286194/vgs88ugpvyhxu13wqgy0acvae6re",
718
+ tinyCheckers: "https://cdn.ing/assets/files/record/286195/65efaknsw8kcpf9o3c2gybytsl5b",
719
+ p6: "https://cdn.ing/assets/i/r/286196/6kl0rqnd6mjk8j7e525fo8fo0vkc/p6.webp"
720
+ };
721
+ var maskTop = "radial-gradient(ellipse 70% 60% at 50% 0%, #000 60%, transparent 100%)";
722
+ var maskBottom = "radial-gradient(ellipse 100% 80% at 50% 100%, #000 50%, transparent 90%)";
723
+ var maskCenter = "radial-gradient(ellipse 60% 60% at 50% 50%, #000 30%, transparent 70%)";
724
+ var maskTopLeft = "radial-gradient(ellipse 80% 80% at 0% 0%, #000 50%, transparent 90%)";
725
+ var maskTopRight = "radial-gradient(ellipse 80% 80% at 100% 0%, #000 50%, transparent 90%)";
726
+ var maskBottomLeft = "radial-gradient(ellipse 80% 80% at 0% 100%, #000 50%, transparent 90%)";
727
+ var maskBottomRight = "radial-gradient(ellipse 80% 80% at 100% 100%, #000 50%, transparent 90%)";
728
+ var circuitBoardPattern = (id, mask) => /* @__PURE__ */ jsxRuntime.jsxs(
729
+ "svg",
730
+ {
731
+ className: "h-full w-full",
732
+ xmlns: "http://www.w3.org/2000/svg",
733
+ style: mask ? {
734
+ maskImage: mask,
735
+ WebkitMaskImage: mask
736
+ } : void 0,
737
+ children: [
738
+ /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsxs(
739
+ "pattern",
740
+ {
741
+ id,
742
+ x: "0",
743
+ y: "0",
744
+ width: "100",
745
+ height: "100",
746
+ patternUnits: "userSpaceOnUse",
747
+ children: [
748
+ /* @__PURE__ */ jsxRuntime.jsx(
749
+ "path",
750
+ {
751
+ d: "M0 50h40M60 50h40M50 0v40M50 60v40",
752
+ stroke: "hsl(var(--muted))",
753
+ strokeWidth: "1",
754
+ fill: "none"
755
+ }
756
+ ),
757
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "50", cy: "50", r: "3", fill: "hsl(var(--muted))" }),
758
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "0", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
759
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "100", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
760
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "50", cy: "0", r: "2", fill: "hsl(var(--muted))" }),
761
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "50", cy: "100", r: "2", fill: "hsl(var(--muted))" })
762
+ ]
763
+ }
764
+ ) }),
765
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
766
+ ]
767
+ }
768
+ );
769
+ var gridDotsPattern = (id, mask) => /* @__PURE__ */ jsxRuntime.jsxs(
770
+ "svg",
771
+ {
772
+ className: "h-full w-full",
773
+ xmlns: "http://www.w3.org/2000/svg",
774
+ style: mask ? {
775
+ maskImage: mask,
776
+ WebkitMaskImage: mask
777
+ } : void 0,
778
+ children: [
779
+ /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsxs(
780
+ "pattern",
781
+ {
782
+ id,
783
+ x: "0",
784
+ y: "0",
785
+ width: "40",
786
+ height: "40",
787
+ patternUnits: "userSpaceOnUse",
788
+ children: [
789
+ /* @__PURE__ */ jsxRuntime.jsx(
790
+ "path",
791
+ {
792
+ d: "M0 20h40M20 0v40",
793
+ stroke: "hsl(var(--muted))",
794
+ strokeWidth: "0.5",
795
+ fill: "none"
796
+ }
797
+ ),
798
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "20", cy: "20", r: "2", fill: "hsl(var(--muted))" })
799
+ ]
800
+ }
801
+ ) }),
802
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
803
+ ]
804
+ }
805
+ );
806
+ var gridPattern = (size, mask) => /* @__PURE__ */ jsxRuntime.jsx(
807
+ "div",
808
+ {
809
+ className: "h-full w-full bg-[linear-gradient(to_right,_hsl(var(--muted))_1px,_transparent_1px),linear-gradient(to_bottom,_hsl(var(--muted))_1px,_transparent_1px)]",
810
+ style: {
811
+ backgroundSize: `${size}px ${size}px`,
812
+ ...mask ? {
813
+ maskImage: mask,
814
+ WebkitMaskImage: mask
815
+ } : {}
816
+ }
817
+ }
818
+ );
819
+ var diagonalCrossPattern = (mask) => /* @__PURE__ */ jsxRuntime.jsx(
820
+ "div",
821
+ {
822
+ className: "h-full w-full",
823
+ style: {
824
+ backgroundImage: "repeating-linear-gradient(45deg, transparent, transparent 32px, hsl(var(--muted)) 32px, hsl(var(--muted)) 33px), repeating-linear-gradient(135deg, transparent, transparent 32px, hsl(var(--muted)) 32px, hsl(var(--muted)) 33px)",
825
+ ...mask ? {
826
+ maskImage: mask,
827
+ WebkitMaskImage: mask
828
+ } : {}
829
+ }
830
+ }
831
+ );
832
+ var dashedGridMaskBase = "repeating-linear-gradient(to right, black 0px, black 3px, transparent 3px, transparent 8px), repeating-linear-gradient(to bottom, black 0px, black 3px, transparent 3px, transparent 8px)";
833
+ var dashedGridPattern = (fadeMask) => {
834
+ const mask = fadeMask ? `${dashedGridMaskBase}, ${fadeMask}` : dashedGridMaskBase;
835
+ return /* @__PURE__ */ jsxRuntime.jsx(
836
+ "div",
799
837
  {
800
- src: imagePlaceholders[0],
801
- alt: "Article hero",
802
- className: "my-8 aspect-video w-full rounded-lg object-cover",
803
- optixFlowConfig
838
+ className: "h-full w-full",
839
+ style: {
840
+ backgroundImage: "linear-gradient(to right, hsl(var(--muted)) 1px, transparent 1px), linear-gradient(to bottom, hsl(var(--muted)) 1px, transparent 1px)",
841
+ backgroundSize: "20px 20px",
842
+ backgroundPosition: "0 0, 0 0",
843
+ maskImage: mask,
844
+ WebkitMaskImage: mask,
845
+ maskComposite: "intersect",
846
+ WebkitMaskComposite: "source-in"
847
+ }
804
848
  }
805
- ),
806
- /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "chapter-1", children: [
807
- /* @__PURE__ */ jsxRuntime.jsx("h2", { children: "Chapter 1: The Foundation" }),
808
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Design patterns are reusable solutions to common problems in software design. They represent best practices evolved over time by experienced software developers." }),
809
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Understanding the foundation of design patterns helps you recognize when and how to apply them effectively in your own projects." })
810
- ] }),
811
- /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "chapter-2", children: [
812
- /* @__PURE__ */ jsxRuntime.jsx("h2", { children: "Chapter 2: Building Blocks" }),
813
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "The building blocks of design patterns include creational, structural, and behavioral patterns. Each category addresses different aspects of software design." }),
814
- /* @__PURE__ */ jsxRuntime.jsx(
815
- img.Img,
849
+ );
850
+ };
851
+ var gradientGlow = (position) => /* @__PURE__ */ jsxRuntime.jsx(
852
+ "div",
853
+ {
854
+ className: cn(
855
+ "pointer-events-none absolute left-1/2 z-0 aspect-square w-3/4 -translate-x-1/2 rounded-full opacity-50 blur-3xl",
856
+ position === "top" ? "-top-1/4" : "-bottom-1/4"
857
+ ),
858
+ style: {
859
+ background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
860
+ }
861
+ }
862
+ );
863
+ var spotlight = (position) => /* @__PURE__ */ jsxRuntime.jsx(
864
+ "div",
865
+ {
866
+ className: cn(
867
+ "pointer-events-none absolute top-1/2 z-0 aspect-square w-3/4 -translate-y-1/2 rounded-full opacity-40 blur-3xl",
868
+ position === "left" ? "-left-1/4" : "-right-1/4"
869
+ ),
870
+ style: {
871
+ background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
872
+ }
873
+ }
874
+ );
875
+ var patternOverlays = {
876
+ circuitBoardBasic: () => circuitBoardPattern("circuit-board-basic"),
877
+ circuitBoardFadeTop: () => circuitBoardPattern("circuit-board-fade-top", maskTop),
878
+ circuitBoardFadeBottom: () => circuitBoardPattern("circuit-board-fade-bottom", maskBottom),
879
+ circuitBoardFadeCenter: () => circuitBoardPattern("circuit-board-fade-center", maskCenter),
880
+ circuitBoardFadeTopLeft: () => circuitBoardPattern("circuit-board-fade-top-left", maskTopLeft),
881
+ circuitBoardFadeTopRight: () => circuitBoardPattern("circuit-board-fade-top-right", maskTopRight),
882
+ circuitBoardFadeBottomLeft: () => circuitBoardPattern("circuit-board-fade-bottom-left", maskBottomLeft),
883
+ circuitBoardFadeBottomRight: () => circuitBoardPattern("circuit-board-fade-bottom-right", maskBottomRight),
884
+ dashedGridBasic: () => dashedGridPattern(),
885
+ dashedGridFadeTop: () => dashedGridPattern(maskTop),
886
+ dashedGridFadeBottom: () => dashedGridPattern(maskBottom),
887
+ dashedGridFadeCenter: () => dashedGridPattern(maskCenter),
888
+ dashedGridFadeTopLeft: () => dashedGridPattern(maskTopLeft),
889
+ dashedGridFadeTopRight: () => dashedGridPattern(maskTopRight),
890
+ dashedGridFadeBottomLeft: () => dashedGridPattern(maskBottomLeft),
891
+ dashedGridFadeBottomRight: () => dashedGridPattern(maskBottomRight),
892
+ diagonalCrossBasic: () => diagonalCrossPattern(),
893
+ diagonalCrossFadeTop: () => diagonalCrossPattern(maskTop),
894
+ diagonalCrossFadeBottom: () => diagonalCrossPattern(maskBottom),
895
+ diagonalCrossFadeCenter: () => diagonalCrossPattern(maskCenter),
896
+ diagonalCrossFadeTopLeft: () => diagonalCrossPattern(maskTopLeft),
897
+ diagonalCrossFadeTopRight: () => diagonalCrossPattern(maskTopRight),
898
+ diagonalCrossFadeBottomLeft: () => diagonalCrossPattern(maskBottomLeft),
899
+ diagonalCrossFadeBottomRight: () => diagonalCrossPattern(maskBottomRight),
900
+ gridBasic: () => gridPattern(40),
901
+ gridFadeTop: () => gridPattern(32, maskTop),
902
+ gridFadeBottom: () => gridPattern(32, maskBottom),
903
+ gridFadeCenter: () => gridPattern(40, maskCenter),
904
+ gridFadeTopLeft: () => gridPattern(32, maskTopLeft),
905
+ gridFadeTopRight: () => gridPattern(32, maskTopRight),
906
+ gridFadeBottomLeft: () => gridPattern(32, maskBottomLeft),
907
+ gridFadeBottomRight: () => gridPattern(32, maskBottomRight),
908
+ gridDotsBasic: () => gridDotsPattern("grid-dots-basic"),
909
+ gridDotsFadeCenter: () => gridDotsPattern("grid-dots-fade-center", maskCenter),
910
+ gradientGlowTop: () => gradientGlow("top"),
911
+ gradientGlowBottom: () => gradientGlow("bottom"),
912
+ spotlightLeft: () => spotlight("left"),
913
+ spotlightRight: () => spotlight("right")
914
+ };
915
+ var inlinePatternStyles = {
916
+ radialGradientTop: {
917
+ background: "radial-gradient(125% 125% at 50% 10%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
918
+ },
919
+ radialGradientBottom: {
920
+ background: "radial-gradient(125% 125% at 50% 90%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
921
+ }
922
+ };
923
+ function PatternBackground({
924
+ pattern,
925
+ opacity = 0.08,
926
+ className,
927
+ style
928
+ }) {
929
+ if (!pattern) {
930
+ return null;
931
+ }
932
+ if (pattern in inlinePatternStyles) {
933
+ const inlineStyle = inlinePatternStyles[pattern];
934
+ return /* @__PURE__ */ jsxRuntime.jsx(
935
+ "div",
816
936
  {
817
- src: imagePlaceholders[1],
818
- alt: "Pattern categories",
819
- className: "my-8 aspect-video w-full rounded-lg object-cover",
820
- optixFlowConfig
937
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
938
+ style: { ...inlineStyle, opacity, ...style },
939
+ "aria-hidden": "true"
821
940
  }
822
- ),
823
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Creational patterns deal with object creation mechanisms, structural patterns focus on class composition, and behavioral patterns characterize object interaction." })
824
- ] }),
825
- /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "chapter-3", children: [
826
- /* @__PURE__ */ jsxRuntime.jsx("h2", { children: "Chapter 3: Advanced Patterns" }),
827
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Advanced patterns build upon the fundamentals to address more complex scenarios. These include patterns for concurrency, distributed systems, and enterprise applications." }),
828
- /* @__PURE__ */ jsxRuntime.jsx("blockquote", { children: "\u201CPatterns are not invented, they are discovered.\u201D - Christopher Alexander" })
829
- ] }),
830
- /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "chapter-4", children: [
831
- /* @__PURE__ */ jsxRuntime.jsx("h2", { children: "Chapter 4: Real-World Applications" }),
832
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Seeing patterns in action helps solidify understanding. This chapter explores how major frameworks and libraries implement design patterns." }),
833
- /* @__PURE__ */ jsxRuntime.jsxs("ul", { children: [
834
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: "React's use of the Observer pattern" }),
835
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: "Express.js middleware as Chain of Responsibility" }),
836
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: "Redux implementing the Flux pattern" }),
837
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: "Dependency injection in Angular" })
838
- ] })
839
- ] }),
840
- /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "chapter-5", children: [
841
- /* @__PURE__ */ jsxRuntime.jsx("h2", { children: "Chapter 5: Future Directions" }),
842
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "As software development evolves, new patterns emerge while others become less relevant. Understanding the principles behind patterns helps you adapt to changing technologies." }),
843
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "The rise of functional programming, microservices, and serverless architectures has introduced new patterns and variations on classic ones." })
844
- ] })
845
- ] });
941
+ );
942
+ }
943
+ if (pattern in patternOverlays) {
944
+ const Overlay = patternOverlays[pattern];
945
+ return /* @__PURE__ */ jsxRuntime.jsx(
946
+ "div",
947
+ {
948
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
949
+ style: { opacity, ...style },
950
+ "aria-hidden": "true",
951
+ children: Overlay()
952
+ }
953
+ );
954
+ }
955
+ const patternUrl = pattern in patternSvgs ? patternSvgs[pattern] : pattern;
956
+ return /* @__PURE__ */ jsxRuntime.jsx(
957
+ "div",
958
+ {
959
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
960
+ style: {
961
+ backgroundImage: `url(${patternUrl})`,
962
+ backgroundRepeat: "repeat",
963
+ backgroundSize: "auto",
964
+ opacity,
965
+ ...style
966
+ },
967
+ "aria-hidden": "true"
968
+ }
969
+ );
970
+ }
971
+ var backgroundStyles = {
972
+ default: "bg-background text-foreground",
973
+ white: "bg-white text-dark",
974
+ gray: "bg-muted/30 text-foreground",
975
+ dark: "bg-foreground text-background",
976
+ transparent: "bg-transparent text-foreground",
977
+ gradient: "bg-linear-to-br from-primary via-primary/90 to-foreground text-primary-foreground",
978
+ primary: "bg-primary text-primary-foreground",
979
+ secondary: "bg-secondary text-secondary-foreground",
980
+ muted: "bg-muted text-muted-foreground"
981
+ };
982
+ var spacingStyles = {
983
+ none: "py-0 md:py-0",
984
+ sm: "py-12 md:py-16",
985
+ md: "py-16 md:py-24",
986
+ lg: "py-20 md:py-32",
987
+ xl: "py-24 md:py-40"
988
+ };
989
+ var Section = React6__namespace.default.forwardRef(
990
+ ({
991
+ id,
992
+ title,
993
+ subtitle,
994
+ children,
995
+ className,
996
+ style,
997
+ background = "default",
998
+ spacing = "lg",
999
+ pattern,
1000
+ patternOpacity,
1001
+ patternClassName,
1002
+ containerClassName,
1003
+ containerMaxWidth = "xl",
1004
+ ...props
1005
+ }, ref) => {
1006
+ const effectivePatternOpacity = patternOpacity !== void 0 ? patternOpacity : pattern ? 1 : 0;
1007
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1008
+ "section",
1009
+ {
1010
+ ref,
1011
+ id,
1012
+ className: cn(
1013
+ "relative",
1014
+ pattern ? "overflow-hidden" : null,
1015
+ backgroundStyles[background],
1016
+ spacingStyles[spacing],
1017
+ className
1018
+ ),
1019
+ style,
1020
+ ...props,
1021
+ children: [
1022
+ /* @__PURE__ */ jsxRuntime.jsx(
1023
+ PatternBackground,
1024
+ {
1025
+ pattern,
1026
+ opacity: effectivePatternOpacity,
1027
+ className: patternClassName
1028
+ }
1029
+ ),
1030
+ /* @__PURE__ */ jsxRuntime.jsxs(
1031
+ Container,
1032
+ {
1033
+ maxWidth: containerMaxWidth,
1034
+ className: cn("relative z-10", containerClassName),
1035
+ children: [
1036
+ (title || subtitle) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-12 text-center md:mb-16", children: [
1037
+ subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-sm font-semibold uppercase tracking-wider text-primary", children: subtitle }),
1038
+ title && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", children: title })
1039
+ ] }),
1040
+ children
1041
+ ]
1042
+ }
1043
+ )
1044
+ ]
1045
+ }
1046
+ );
1047
+ }
1048
+ );
1049
+ Section.displayName = "Section";
846
1050
  function ArticleChaptersAuthorComponent({
847
1051
  className,
848
1052
  containerClassName,
@@ -877,13 +1081,17 @@ function ArticleChaptersAuthorComponent({
877
1081
  conclusionSlot,
878
1082
  children,
879
1083
  enableChapterTracking = true,
880
- optixFlowConfig
1084
+ optixFlowConfig,
1085
+ background,
1086
+ spacing,
1087
+ pattern,
1088
+ patternOpacity
881
1089
  }) {
882
1090
  const conclusionActions = conclusionActionsProp ?? (conclusionButtonText ? [{ label: conclusionButtonText, href: conclusionButtonHref || "#", variant: "default" }] : []);
883
- const [activeChapter, setActiveChapter] = React4__namespace.useState(
1091
+ const [activeChapter, setActiveChapter] = React6__namespace.useState(
884
1092
  chapters?.[0]?.id || ""
885
1093
  );
886
- React4__namespace.useEffect(() => {
1094
+ React6__namespace.useEffect(() => {
887
1095
  if (!enableChapterTracking || !chapters || chapters.length === 0) return;
888
1096
  const observer = new IntersectionObserver(
889
1097
  (entries) => {
@@ -901,12 +1109,12 @@ function ArticleChaptersAuthorComponent({
901
1109
  });
902
1110
  return () => observer.disconnect();
903
1111
  }, [chapters, enableChapterTracking]);
904
- const breadcrumbsContent = React4__namespace.useMemo(() => {
1112
+ const breadcrumbsContent = React6__namespace.useMemo(() => {
905
1113
  if (breadcrumbsSlot) return breadcrumbsSlot;
906
1114
  if (!breadcrumbs || breadcrumbs.length === 0) return null;
907
1115
  return /* @__PURE__ */ jsxRuntime.jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(BreadcrumbList, { children: [
908
1116
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
909
- breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxRuntime.jsxs(React4__namespace.Fragment, { children: [
1117
+ breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxRuntime.jsxs(React6__namespace.Fragment, { children: [
910
1118
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, {}),
911
1119
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
912
1120
  ] }, index)),
@@ -914,7 +1122,7 @@ function ArticleChaptersAuthorComponent({
914
1122
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
915
1123
  ] }) });
916
1124
  }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
917
- const chaptersNavContent = React4__namespace.useMemo(() => {
1125
+ const chaptersNavContent = React6__namespace.useMemo(() => {
918
1126
  if (chaptersSlot) return chaptersSlot;
919
1127
  if (!chapters || chapters.length === 0) return null;
920
1128
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-lg border p-4", chaptersClassName), children: [
@@ -922,7 +1130,7 @@ function ArticleChaptersAuthorComponent({
922
1130
  /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "space-y-2", children: chapters.map((chapter) => {
923
1131
  const isActive = activeChapter === chapter.id;
924
1132
  if (renderChapterLink) {
925
- return /* @__PURE__ */ jsxRuntime.jsx(React4__namespace.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
1133
+ return /* @__PURE__ */ jsxRuntime.jsx(React6__namespace.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
926
1134
  }
927
1135
  return /* @__PURE__ */ jsxRuntime.jsxs(
928
1136
  Pressable,
@@ -942,7 +1150,7 @@ function ArticleChaptersAuthorComponent({
942
1150
  }) })
943
1151
  ] });
944
1152
  }, [chaptersSlot, chapters, activeChapter, renderChapterLink, chaptersClassName]);
945
- const authorCardContent = React4__namespace.useMemo(() => {
1153
+ const authorCardContent = React6__namespace.useMemo(() => {
946
1154
  if (authorSlot) return authorSlot;
947
1155
  if (!author) return null;
948
1156
  let socialLinksContent = null;
@@ -1003,7 +1211,7 @@ function ArticleChaptersAuthorComponent({
1003
1211
  socialLinksContent
1004
1212
  ] });
1005
1213
  }, [authorSlot, author, authorClassName]);
1006
- const heroMediaContent = React4__namespace.useMemo(() => {
1214
+ const heroMediaContent = React6__namespace.useMemo(() => {
1007
1215
  if (heroMediaSlot) return heroMediaSlot;
1008
1216
  if (!heroImageSrc) return null;
1009
1217
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -1016,7 +1224,7 @@ function ArticleChaptersAuthorComponent({
1016
1224
  }
1017
1225
  );
1018
1226
  }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
1019
- const conclusionContent = React4__namespace.useMemo(() => {
1227
+ const conclusionContent = React6__namespace.useMemo(() => {
1020
1228
  if (conclusionSlot) return conclusionSlot;
1021
1229
  if (!conclusionTitle && !conclusionDescription && (!conclusionActions || conclusionActions.length === 0)) return null;
1022
1230
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-12 rounded-lg border bg-muted/50 p-6 not-prose", conclusionClassName), children: [
@@ -1041,24 +1249,34 @@ function ArticleChaptersAuthorComponent({
1041
1249
  }) })
1042
1250
  ] });
1043
1251
  }, [conclusionSlot, conclusionTitle, conclusionDescription, conclusionActions, conclusionClassName]);
1044
- return /* @__PURE__ */ jsxRuntime.jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
1045
- breadcrumbsContent,
1046
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
1047
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
1048
- subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-lg text-muted-foreground md:text-xl", subtitleClassName), children: subtitle }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", subtitleClassName), children: subtitle }))
1049
- ] }),
1050
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-10 lg:grid-cols-[280px_minmax(0,1fr)]", children: [
1051
- /* @__PURE__ */ jsxRuntime.jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-8 space-y-6", children: [
1052
- chaptersNavContent,
1053
- authorCardContent
1054
- ] }) }),
1055
- /* @__PURE__ */ jsxRuntime.jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
1056
- heroMediaContent,
1057
- children || defaultArticleContent(optixFlowConfig),
1058
- conclusionContent
1252
+ return /* @__PURE__ */ jsxRuntime.jsx(
1253
+ Section,
1254
+ {
1255
+ background,
1256
+ spacing,
1257
+ pattern,
1258
+ patternOpacity,
1259
+ className,
1260
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
1261
+ breadcrumbsContent,
1262
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
1263
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
1264
+ subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-lg text-muted-foreground md:text-xl", subtitleClassName), children: subtitle }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", subtitleClassName), children: subtitle }))
1265
+ ] }),
1266
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-10 lg:grid-cols-[280px_minmax(0,1fr)]", children: [
1267
+ /* @__PURE__ */ jsxRuntime.jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-8 space-y-6", children: [
1268
+ chaptersNavContent,
1269
+ authorCardContent
1270
+ ] }) }),
1271
+ /* @__PURE__ */ jsxRuntime.jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
1272
+ heroMediaContent,
1273
+ children,
1274
+ conclusionContent
1275
+ ] })
1276
+ ] })
1059
1277
  ] })
1060
- ] })
1061
- ] }) });
1278
+ }
1279
+ );
1062
1280
  }
1063
1281
 
1064
1282
  exports.ArticleChaptersAuthor = ArticleChaptersAuthorComponent;