@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');
@@ -29,7 +29,7 @@ function _interopNamespace(e) {
29
29
  return Object.freeze(n);
30
30
  }
31
31
 
32
- var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
32
+ var React6__namespace = /*#__PURE__*/_interopNamespace(React6);
33
33
  var AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive);
34
34
  var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
35
35
 
@@ -112,7 +112,7 @@ function useNavigation({
112
112
  href,
113
113
  onClick
114
114
  } = {}) {
115
- const linkType = React4__namespace.useMemo(() => {
115
+ const linkType = React6__namespace.useMemo(() => {
116
116
  if (!href || href.trim() === "") {
117
117
  return onClick ? "none" : "none";
118
118
  }
@@ -133,7 +133,7 @@ function useNavigation({
133
133
  return "internal";
134
134
  }
135
135
  }, [href, onClick]);
136
- const normalizedHref = React4__namespace.useMemo(() => {
136
+ const normalizedHref = React6__namespace.useMemo(() => {
137
137
  if (!href || href.trim() === "") {
138
138
  return void 0;
139
139
  }
@@ -151,7 +151,7 @@ function useNavigation({
151
151
  return trimmed;
152
152
  }
153
153
  }, [href, linkType]);
154
- const target = React4__namespace.useMemo(() => {
154
+ const target = React6__namespace.useMemo(() => {
155
155
  switch (linkType) {
156
156
  case "external":
157
157
  return "_blank";
@@ -164,7 +164,7 @@ function useNavigation({
164
164
  return void 0;
165
165
  }
166
166
  }, [linkType]);
167
- const rel = React4__namespace.useMemo(() => {
167
+ const rel = React6__namespace.useMemo(() => {
168
168
  if (linkType === "external") {
169
169
  return "noopener noreferrer";
170
170
  }
@@ -173,7 +173,7 @@ function useNavigation({
173
173
  const isExternal = linkType === "external";
174
174
  const isInternal = linkType === "internal";
175
175
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
176
- const handleClick = React4__namespace.useCallback(
176
+ const handleClick = React6__namespace.useCallback(
177
177
  (event) => {
178
178
  if (onClick) {
179
179
  try {
@@ -357,7 +357,7 @@ var buttonVariants = classVarianceAuthority.cva(baseStyles, {
357
357
  size: "default"
358
358
  }
359
359
  });
360
- var Pressable = React4__namespace.forwardRef(
360
+ var Pressable = React6__namespace.forwardRef(
361
361
  ({
362
362
  children,
363
363
  className,
@@ -463,10 +463,10 @@ function DynamicIcon({
463
463
  className,
464
464
  alt
465
465
  }) {
466
- const [svgContent, setSvgContent] = React4__namespace.useState(null);
467
- const [isLoading, setIsLoading] = React4__namespace.useState(true);
468
- const [error, setError] = React4__namespace.useState(null);
469
- const { url, iconName } = React4__namespace.useMemo(() => {
466
+ const [svgContent, setSvgContent] = React6__namespace.useState(null);
467
+ const [isLoading, setIsLoading] = React6__namespace.useState(true);
468
+ const [error, setError] = React6__namespace.useState(null);
469
+ const { url, iconName } = React6__namespace.useMemo(() => {
470
470
  const separator = name.includes("/") ? "/" : ":";
471
471
  const [prefix, iconName2] = name.split(separator);
472
472
  const baseUrl = `https://icons.opensite.ai/api/icon/${prefix}/${iconName2}?format=svg&width=${size}&height=${size}`;
@@ -475,7 +475,7 @@ function DynamicIcon({
475
475
  iconName: iconName2
476
476
  };
477
477
  }, [name, size]);
478
- React4__namespace.useEffect(() => {
478
+ React6__namespace.useEffect(() => {
479
479
  let isMounted = true;
480
480
  const fetchSvg = async () => {
481
481
  const cached = svgCache.get(url);
@@ -696,174 +696,379 @@ function Separator({
696
696
  }
697
697
  );
698
698
  }
699
+ var maxWidthStyles = {
700
+ sm: "max-w-screen-sm",
701
+ md: "max-w-screen-md",
702
+ lg: "max-w-screen-lg",
703
+ xl: "max-w-7xl",
704
+ "2xl": "max-w-screen-2xl",
705
+ "4xl": "max-w-[1536px]",
706
+ full: "max-w-full"
707
+ };
708
+ var Container = React6__namespace.default.forwardRef(
709
+ ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
710
+ const Component = as;
711
+ return /* @__PURE__ */ jsxRuntime.jsx(
712
+ Component,
713
+ {
714
+ ref,
715
+ className: cn(
716
+ "mx-auto w-full px-2 sm:px-4 lg:px-8",
717
+ maxWidthStyles[maxWidth],
718
+ className
719
+ ),
720
+ ...props,
721
+ children
722
+ }
723
+ );
724
+ }
725
+ );
726
+ Container.displayName = "Container";
699
727
 
700
- // lib/mediaPlaceholders.ts
701
- var imagePlaceholders = [
702
- "https://toastability-production.s3.amazonaws.com/xlp46pzk3a4d73jgjx4s7xdafwpn",
703
- "https://toastability-production.s3.amazonaws.com/g1iuifb3yzoofo9c7a00koyn6q1t",
704
- "https://toastability-production.s3.amazonaws.com/z9u4sdrj2oq3eds0qyui0nxsus3j",
705
- "https://toastability-production.s3.amazonaws.com/63aotyt2pb4gqpccej2kkw8reson",
706
- "https://toastability-production.s3.amazonaws.com/pjgb223h1bjywdk15i3zi7pjhutg",
707
- "https://toastability-production.s3.amazonaws.com/we9r4e711an6d0bd3dwbl9tb9z7q",
708
- "https://toastability-production.s3.amazonaws.com/f8rfrurzo743ym1s7m5xtbombunz",
709
- "https://toastability-production.s3.amazonaws.com/oe0y4bgiylx81fbfvsw31mhdgjzs",
710
- "https://toastability-production.s3.amazonaws.com/sr370c2cnf7uk5k4f6znyshualv0",
711
- "https://toastability-production.s3.amazonaws.com/cen5x90p3kbdafb80liq1a5j222x",
712
- "https://toastability-production.s3.amazonaws.com/ygob90kp07hxmi5jj4sned76dnmc",
713
- "https://toastability-production.s3.amazonaws.com/qhz2kawawq3bbh7nusz3bvahln3v",
714
- "https://toastability-production.s3.amazonaws.com/zykfhuapdqzu94ee1535gsgnvyac",
715
- "https://toastability-production.s3.amazonaws.com/kh1p8y15v55ctp5ulobm4pd77etm",
716
- "https://toastability-production.s3.amazonaws.com/8x62o6350p1ejm3pjrp1jwvcbh4v",
717
- "https://toastability-production.s3.amazonaws.com/vvixyoo7ybq3h04q2q0kact0s5wc",
718
- "https://toastability-production.s3.amazonaws.com/t502cfynqso7ntkdvmcmfc87yjkt",
719
- "https://toastability-production.s3.amazonaws.com/ihgx63s5nfzp2e93e3ccljjnnrov",
720
- "https://toastability-production.s3.amazonaws.com/b555hwjt7ltr81et05v5254q1ak6",
721
- "https://toastability-production.s3.amazonaws.com/c4sgsy0g7o2rrjmvm9x7evxems82",
722
- "https://toastability-production.s3.amazonaws.com/a3m42usevv0iet0fpfwa1fsytxmv",
723
- "https://toastability-production.s3.amazonaws.com/qghzqu1i99vaubyew9s5dxcbel9l",
724
- "https://toastability-production.s3.amazonaws.com/9covpitzpuuobkg1m4mfokpi0enw",
725
- "https://toastability-production.s3.amazonaws.com/2d4k8d5shwg82276hzj2ztbj7mxq",
726
- "https://toastability-production.s3.amazonaws.com/op92dycs7w856e2jsvx20st0nyz9",
727
- "https://toastability-production.s3.amazonaws.com/f921uoblxbv8f9bmr4s2ik7xxugl",
728
- "https://toastability-production.s3.amazonaws.com/gl7n7p6atndufbsm6q2ac5jeqttp",
729
- "https://toastability-production.s3.amazonaws.com/sj8cs2gpbanaowqwxar1uhhwd23z",
730
- "https://toastability-production.s3.amazonaws.com/hu4gmd93sp95wdyr9qijze0rgim9",
731
- "https://toastability-production.s3.amazonaws.com/uh2vd59np82h8sevbmfnsha89sf1",
732
- "https://toastability-production.s3.amazonaws.com/gxs6zevccphti0hdq5l9fwytprpr",
733
- "https://toastability-production.s3.amazonaws.com/s4vho0wfbjhf758oife8qfuekou8",
734
- "https://toastability-production.s3.amazonaws.com/1b0gd8ul22q799d62dvm3sgyll85",
735
- "https://toastability-production.s3.amazonaws.com/102grjqg8aigxkj585s9x3xbxfv7",
736
- "https://toastability-production.s3.amazonaws.com/dvz0441h9fxjhh88lzqbwdoyxv52",
737
- "https://toastability-production.s3.amazonaws.com/50y066ms7rb5sw62u9u08jzkk8rj",
738
- "https://toastability-production.s3.amazonaws.com/9uxe0jw1zl1tujy0m5yalo7m2ht8",
739
- "https://toastability-production.s3.amazonaws.com/cyhcpla6me8vs936i3fw6wbhypi2",
740
- "https://toastability-production.s3.amazonaws.com/6ntdz6xwid3fswjz8y0otdxmzs40",
741
- "https://toastability-production.s3.amazonaws.com/y1aezpa78m2fhfvj8whcx337y9cb",
742
- "https://toastability-production.s3.amazonaws.com/eoa76d31ynbg34urr6e4619la1f7",
743
- "https://toastability-production.s3.amazonaws.com/0mh8a1dg7ftcqnyzgv303u501c8y",
744
- "https://toastability-production.s3.amazonaws.com/vvucxqs128w2d0z3n4s2z131rq7p",
745
- "https://toastability-production.s3.amazonaws.com/2rbqbw9778770i8izdeabx8v2w2k",
746
- "https://toastability-production.s3.amazonaws.com/90rcw2mljzpeuxlac8q77mor15xz",
747
- "https://toastability-production.s3.amazonaws.com/vh1aowwr93yz4qrzct2s4je0cxdo",
748
- "https://toastability-production.s3.amazonaws.com/ssgb7unxdwdqokfvhkp7cok2v79s",
749
- "https://toastability-production.s3.amazonaws.com/vvkma6b8whdkiq5nq8z4eyfe00vo",
750
- "https://toastability-production.s3.amazonaws.com/9797jh6slgbf9oq6lzlimcdiuziv",
751
- "https://toastability-production.s3.amazonaws.com/betxbx61fkijt0aygineplf489ze",
752
- "https://toastability-production.s3.amazonaws.com/0o6d7z4mm9nzeufhv9kefrhihbip",
753
- "https://toastability-production.s3.amazonaws.com/1xdx70c7gp9l883soyh5d3exesvt",
754
- "https://toastability-production.s3.amazonaws.com/jhjfvkmdzktacyijd9fh6acc7o2c",
755
- "https://toastability-production.s3.amazonaws.com/n001o4pfpszmyw03ubctig7kvf0e",
756
- "https://toastability-production.s3.amazonaws.com/l080sx0lcx51x44dqrb8006nqf08",
757
- "https://toastability-production.s3.amazonaws.com/2t36c7l0ywchaz4nys8yj2l5amae",
758
- "https://toastability-production.s3.amazonaws.com/gg5qnvb4nsl2k3g4dw4ls8bsllwh",
759
- "https://toastability-production.s3.amazonaws.com/3nqc7xvjy3e8d7jo1gdvbzty0oqg",
760
- "https://toastability-production.s3.amazonaws.com/0kx9umbfmv881wt9dfqnohv8efgi",
761
- "https://toastability-production.s3.amazonaws.com/9z0sbfnskx70vse99e3dfhper7i1",
762
- "https://toastability-production.s3.amazonaws.com/9keidwrag6g7jtqr7rdwb1ryt6ht",
763
- "https://toastability-production.s3.amazonaws.com/zm88vf14geh1gh0frd3yrdlb6pl8",
764
- "https://toastability-production.s3.amazonaws.com/0x7ktdk01jfaoysst0emzvqevu19",
765
- "https://toastability-production.s3.amazonaws.com/e83zsyvl0an0owzdmpwjnnty641x",
766
- "https://toastability-production.s3.amazonaws.com/t3k42fbzq7r7j93feldqm5cj1o1n",
767
- "https://toastability-production.s3.amazonaws.com/5sm6wc4no8fyzxfki5njmnv6gql5",
768
- "https://toastability-production.s3.amazonaws.com/w41h7890eivogu3sr78vlwkpzz8g",
769
- "https://toastability-production.s3.amazonaws.com/vrezhtksoqbw1nyo4hwnoqizrus5",
770
- "https://toastability-production.s3.amazonaws.com/8qkikcd43paeqgvw9gc1032j3yup",
771
- "https://toastability-production.s3.amazonaws.com/ihhq8unynafk4aikmys3rhbfibaz",
772
- "https://toastability-production.s3.amazonaws.com/rews5enr9ynu6izioj66s8ec90nc",
773
- "https://toastability-production.s3.amazonaws.com/6ku135fhv528eei3agnoc3zd7y75",
774
- "https://toastability-production.s3.amazonaws.com/x4scuzhsozrwrg703df5wbhygkgo",
775
- "https://toastability-production.s3.amazonaws.com/73e0s79u4crdu7cmjfp99j1l2v55",
776
- "https://toastability-production.s3.amazonaws.com/rddfyzvfpdlbzwhgep2myppwxn05",
777
- "https://toastability-production.s3.amazonaws.com/mat88x8zzdek7wpgtocjrehfivsh",
778
- "https://toastability-production.s3.amazonaws.com/3vwfdbekbkskxj2mvlvu85fz787u",
779
- "https://toastability-production.s3.amazonaws.com/ms4s4zyqpmboh0slez1cwat9qhw4",
780
- "https://toastability-production.s3.amazonaws.com/5jsc0b4e3gxnjs81iotw2c3e6da3",
781
- "https://toastability-production.s3.amazonaws.com/0g6t701zqr2r7najmdgftpeqnxmz",
782
- "https://toastability-production.s3.amazonaws.com/u3p1hlbm2c1vvkwlm8h668pe132z",
783
- "https://toastability-production.s3.amazonaws.com/ehgbcugs782765ke1l2dtbtzd918",
784
- "https://toastability-production.s3.amazonaws.com/kka8f550on7acx1lf82xleu6zhzo",
785
- "https://toastability-production.s3.amazonaws.com/67fnapqepn7f8vwt0x4nqho70hbz",
786
- "https://toastability-production.s3.amazonaws.com/t4cidbsfz3z468bn45yqdrkbx7ou",
787
- "https://toastability-production.s3.amazonaws.com/gq3c9qalkiomu0rzdzxymkdaazdu",
788
- "https://toastability-production.s3.amazonaws.com/9ujya2tfhxja7y5s9wb7d2u8crhd",
789
- "https://toastability-production.s3.amazonaws.com/hotlo54tsvl2k3eht9gg0460l9zw",
790
- "https://toastability-production.s3.amazonaws.com/ytbyjrcvrghc7wl6w1g7g8fwka22",
791
- "https://toastability-production.s3.amazonaws.com/uv0g605yf5mz106nrm1uspt9l0rr",
792
- "https://toastability-production.s3.amazonaws.com/yrp5k5xszwpe26fquupey6a6g0uu",
793
- "https://toastability-production.s3.amazonaws.com/97gctpna2hdozl1f8u5xq4ew8h0o",
794
- "https://toastability-production.s3.amazonaws.com/xjtepune0scj9yjkkqgaiwlq9hls",
795
- "https://toastability-production.s3.amazonaws.com/g607vblaarqctl1cvgxffhx4pw6g",
796
- "https://toastability-production.s3.amazonaws.com/4xpu1ljr9c8g6qzmfum5ygjzbzpb",
797
- "https://toastability-production.s3.amazonaws.com/yw5f7iwyypf4kctpr5ye5e495swt",
798
- "https://toastability-production.s3.amazonaws.com/z37cidvud212bzqhhalrhvk7ipaa",
799
- "https://toastability-production.s3.amazonaws.com/pfllskt7q7144l288lrnpc6gx606",
800
- "https://toastability-production.s3.amazonaws.com/fokd3hxzvdtsomagbfhqooyvndyv",
801
- "https://toastability-production.s3.amazonaws.com/6fffnb4phovtqkjhtzifs4rhb84u",
802
- "https://toastability-production.s3.amazonaws.com/mt87xjr79wxdhjy7496v3r6m2m9t",
803
- "https://toastability-production.s3.amazonaws.com/3dy9ge962uarlaf2xl7imdcviqgx",
804
- "https://toastability-production.s3.amazonaws.com/okf6fg4n9yv59up8ivgcdjy3w030",
805
- "https://toastability-production.s3.amazonaws.com/t7iteqw4xhtppkiws88bsoia25hv",
806
- "https://toastability-production.s3.amazonaws.com/klr5tuvulkyqfb721txtu4hgzxdm",
807
- "https://toastability-production.s3.amazonaws.com/9eddibiq5ovc9cvs3ekijkrjpahg",
808
- "https://toastability-production.s3.amazonaws.com/3ghn8dz3g9qtt4pf4nwbriaydvzb",
809
- "https://toastability-production.s3.amazonaws.com/82ykd8s8boiqaxypkulb0v0s2qiw",
810
- "https://toastability-production.s3.amazonaws.com/4eqmdeanxfk6jzvigo42y5ryv2c8",
811
- "https://toastability-production.s3.amazonaws.com/9ughnl9wnko2vdboib8n3wl3cxsy",
812
- "https://toastability-production.s3.amazonaws.com/4xjcgtlwseruezhoh3o1ga4umhj4",
813
- "https://toastability-production.s3.amazonaws.com/xwh1zzxgyd887thfm1j9lu9qnd6c",
814
- "https://toastability-production.s3.amazonaws.com/ri0dqx79spe6771np76mkmno5xfd",
815
- "https://toastability-production.s3.amazonaws.com/e13qu3083lkhdg7th64vb628172a",
816
- "https://toastability-production.s3.amazonaws.com/w87w0fyjdol9yzwo7yywkgxidvzo"
817
- ];
818
- var defaultArticleContent = (optixFlowConfig) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
819
- /* @__PURE__ */ jsxRuntime.jsx(
820
- img.Img,
728
+ // lib/patternSvgs.ts
729
+ var patternSvgs = {
730
+ squareAltGrid: "https://cdn.ing/assets/files/record/286187/4gpn0yq2ptra8iwlvmwwv860ggwv",
731
+ grid1: "https://cdn.ing/assets/files/record/286186/nbdflpgp4ostrno079hygibsflp3",
732
+ noise: "https://cdn.ing/assets/i/r/286188/zrqcp9hynh3j7p2laihwzfbujgrl/noise.png",
733
+ dots: "https://cdn.ing/assets/files/record/286198/yfsjx9thvtxzhl2qtshxyhkrm524",
734
+ dotPattern: "https://cdn.ing/assets/files/record/286192/7ig0cku8aqbboiza8nuk6hw0nnsr",
735
+ dotPattern2: "https://cdn.ing/assets/files/record/286189/arez6gd2s7isn9i1o6c7sexdq7bl",
736
+ circles: "https://cdn.ing/assets/files/record/286190/gtmia3sncjtzetdshc20zf1d3c17",
737
+ waves: "https://cdn.ing/assets/files/record/286191/mqlb33fzxz9cdth1bx7if0wmpkp1",
738
+ crossPattern: "https://cdn.ing/assets/files/record/286193/9yfqwdbnqaipbp7fsb3wbzzmq472",
739
+ architect: "https://cdn.ing/assets/files/record/286194/vgs88ugpvyhxu13wqgy0acvae6re",
740
+ tinyCheckers: "https://cdn.ing/assets/files/record/286195/65efaknsw8kcpf9o3c2gybytsl5b",
741
+ p6: "https://cdn.ing/assets/i/r/286196/6kl0rqnd6mjk8j7e525fo8fo0vkc/p6.webp"
742
+ };
743
+ var maskTop = "radial-gradient(ellipse 70% 60% at 50% 0%, #000 60%, transparent 100%)";
744
+ var maskBottom = "radial-gradient(ellipse 100% 80% at 50% 100%, #000 50%, transparent 90%)";
745
+ var maskCenter = "radial-gradient(ellipse 60% 60% at 50% 50%, #000 30%, transparent 70%)";
746
+ var maskTopLeft = "radial-gradient(ellipse 80% 80% at 0% 0%, #000 50%, transparent 90%)";
747
+ var maskTopRight = "radial-gradient(ellipse 80% 80% at 100% 0%, #000 50%, transparent 90%)";
748
+ var maskBottomLeft = "radial-gradient(ellipse 80% 80% at 0% 100%, #000 50%, transparent 90%)";
749
+ var maskBottomRight = "radial-gradient(ellipse 80% 80% at 100% 100%, #000 50%, transparent 90%)";
750
+ var circuitBoardPattern = (id, mask) => /* @__PURE__ */ jsxRuntime.jsxs(
751
+ "svg",
752
+ {
753
+ className: "h-full w-full",
754
+ xmlns: "http://www.w3.org/2000/svg",
755
+ style: mask ? {
756
+ maskImage: mask,
757
+ WebkitMaskImage: mask
758
+ } : void 0,
759
+ children: [
760
+ /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsxs(
761
+ "pattern",
762
+ {
763
+ id,
764
+ x: "0",
765
+ y: "0",
766
+ width: "100",
767
+ height: "100",
768
+ patternUnits: "userSpaceOnUse",
769
+ children: [
770
+ /* @__PURE__ */ jsxRuntime.jsx(
771
+ "path",
772
+ {
773
+ d: "M0 50h40M60 50h40M50 0v40M50 60v40",
774
+ stroke: "hsl(var(--muted))",
775
+ strokeWidth: "1",
776
+ fill: "none"
777
+ }
778
+ ),
779
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "50", cy: "50", r: "3", fill: "hsl(var(--muted))" }),
780
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "0", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
781
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "100", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
782
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "50", cy: "0", r: "2", fill: "hsl(var(--muted))" }),
783
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "50", cy: "100", r: "2", fill: "hsl(var(--muted))" })
784
+ ]
785
+ }
786
+ ) }),
787
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
788
+ ]
789
+ }
790
+ );
791
+ var gridDotsPattern = (id, mask) => /* @__PURE__ */ jsxRuntime.jsxs(
792
+ "svg",
793
+ {
794
+ className: "h-full w-full",
795
+ xmlns: "http://www.w3.org/2000/svg",
796
+ style: mask ? {
797
+ maskImage: mask,
798
+ WebkitMaskImage: mask
799
+ } : void 0,
800
+ children: [
801
+ /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsxs(
802
+ "pattern",
803
+ {
804
+ id,
805
+ x: "0",
806
+ y: "0",
807
+ width: "40",
808
+ height: "40",
809
+ patternUnits: "userSpaceOnUse",
810
+ children: [
811
+ /* @__PURE__ */ jsxRuntime.jsx(
812
+ "path",
813
+ {
814
+ d: "M0 20h40M20 0v40",
815
+ stroke: "hsl(var(--muted))",
816
+ strokeWidth: "0.5",
817
+ fill: "none"
818
+ }
819
+ ),
820
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "20", cy: "20", r: "2", fill: "hsl(var(--muted))" })
821
+ ]
822
+ }
823
+ ) }),
824
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
825
+ ]
826
+ }
827
+ );
828
+ var gridPattern = (size, mask) => /* @__PURE__ */ jsxRuntime.jsx(
829
+ "div",
830
+ {
831
+ 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)]",
832
+ style: {
833
+ backgroundSize: `${size}px ${size}px`,
834
+ ...mask ? {
835
+ maskImage: mask,
836
+ WebkitMaskImage: mask
837
+ } : {}
838
+ }
839
+ }
840
+ );
841
+ var diagonalCrossPattern = (mask) => /* @__PURE__ */ jsxRuntime.jsx(
842
+ "div",
843
+ {
844
+ className: "h-full w-full",
845
+ style: {
846
+ 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)",
847
+ ...mask ? {
848
+ maskImage: mask,
849
+ WebkitMaskImage: mask
850
+ } : {}
851
+ }
852
+ }
853
+ );
854
+ 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)";
855
+ var dashedGridPattern = (fadeMask) => {
856
+ const mask = fadeMask ? `${dashedGridMaskBase}, ${fadeMask}` : dashedGridMaskBase;
857
+ return /* @__PURE__ */ jsxRuntime.jsx(
858
+ "div",
821
859
  {
822
- src: imagePlaceholders[6],
823
- alt: "Article hero",
824
- className: "my-8 aspect-video w-full rounded-lg object-cover",
825
- optixFlowConfig
860
+ className: "h-full w-full",
861
+ style: {
862
+ backgroundImage: "linear-gradient(to right, hsl(var(--muted)) 1px, transparent 1px), linear-gradient(to bottom, hsl(var(--muted)) 1px, transparent 1px)",
863
+ backgroundSize: "20px 20px",
864
+ backgroundPosition: "0 0, 0 0",
865
+ maskImage: mask,
866
+ WebkitMaskImage: mask,
867
+ maskComposite: "intersect",
868
+ WebkitMaskComposite: "source-in"
869
+ }
826
870
  }
827
- ),
828
- /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "overview", children: [
829
- /* @__PURE__ */ jsxRuntime.jsx("h2", { children: "Overview" }),
830
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Performance optimization is crucial for delivering exceptional user experiences. In this comprehensive guide, we'll explore proven strategies for improving web application performance." }),
831
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "From initial page load to runtime performance, every millisecond counts. Users expect fast, responsive applications, and search engines reward sites that deliver." })
832
- ] }),
833
- /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "key-features", children: [
834
- /* @__PURE__ */ jsxRuntime.jsx("h2", { children: "Key Features" }),
835
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Modern performance optimization encompasses several key areas:" }),
836
- /* @__PURE__ */ jsxRuntime.jsxs("ul", { children: [
837
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: "Code splitting and lazy loading" }),
838
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: "Image optimization and responsive images" }),
839
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: "Caching strategies and CDN utilization" }),
840
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: "Bundle size optimization" })
841
- ] }),
842
- /* @__PURE__ */ jsxRuntime.jsx(
843
- img.Img,
871
+ );
872
+ };
873
+ var gradientGlow = (position) => /* @__PURE__ */ jsxRuntime.jsx(
874
+ "div",
875
+ {
876
+ className: cn(
877
+ "pointer-events-none absolute left-1/2 z-0 aspect-square w-3/4 -translate-x-1/2 rounded-full opacity-50 blur-3xl",
878
+ position === "top" ? "-top-1/4" : "-bottom-1/4"
879
+ ),
880
+ style: {
881
+ background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
882
+ }
883
+ }
884
+ );
885
+ var spotlight = (position) => /* @__PURE__ */ jsxRuntime.jsx(
886
+ "div",
887
+ {
888
+ className: cn(
889
+ "pointer-events-none absolute top-1/2 z-0 aspect-square w-3/4 -translate-y-1/2 rounded-full opacity-40 blur-3xl",
890
+ position === "left" ? "-left-1/4" : "-right-1/4"
891
+ ),
892
+ style: {
893
+ background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
894
+ }
895
+ }
896
+ );
897
+ var patternOverlays = {
898
+ circuitBoardBasic: () => circuitBoardPattern("circuit-board-basic"),
899
+ circuitBoardFadeTop: () => circuitBoardPattern("circuit-board-fade-top", maskTop),
900
+ circuitBoardFadeBottom: () => circuitBoardPattern("circuit-board-fade-bottom", maskBottom),
901
+ circuitBoardFadeCenter: () => circuitBoardPattern("circuit-board-fade-center", maskCenter),
902
+ circuitBoardFadeTopLeft: () => circuitBoardPattern("circuit-board-fade-top-left", maskTopLeft),
903
+ circuitBoardFadeTopRight: () => circuitBoardPattern("circuit-board-fade-top-right", maskTopRight),
904
+ circuitBoardFadeBottomLeft: () => circuitBoardPattern("circuit-board-fade-bottom-left", maskBottomLeft),
905
+ circuitBoardFadeBottomRight: () => circuitBoardPattern("circuit-board-fade-bottom-right", maskBottomRight),
906
+ dashedGridBasic: () => dashedGridPattern(),
907
+ dashedGridFadeTop: () => dashedGridPattern(maskTop),
908
+ dashedGridFadeBottom: () => dashedGridPattern(maskBottom),
909
+ dashedGridFadeCenter: () => dashedGridPattern(maskCenter),
910
+ dashedGridFadeTopLeft: () => dashedGridPattern(maskTopLeft),
911
+ dashedGridFadeTopRight: () => dashedGridPattern(maskTopRight),
912
+ dashedGridFadeBottomLeft: () => dashedGridPattern(maskBottomLeft),
913
+ dashedGridFadeBottomRight: () => dashedGridPattern(maskBottomRight),
914
+ diagonalCrossBasic: () => diagonalCrossPattern(),
915
+ diagonalCrossFadeTop: () => diagonalCrossPattern(maskTop),
916
+ diagonalCrossFadeBottom: () => diagonalCrossPattern(maskBottom),
917
+ diagonalCrossFadeCenter: () => diagonalCrossPattern(maskCenter),
918
+ diagonalCrossFadeTopLeft: () => diagonalCrossPattern(maskTopLeft),
919
+ diagonalCrossFadeTopRight: () => diagonalCrossPattern(maskTopRight),
920
+ diagonalCrossFadeBottomLeft: () => diagonalCrossPattern(maskBottomLeft),
921
+ diagonalCrossFadeBottomRight: () => diagonalCrossPattern(maskBottomRight),
922
+ gridBasic: () => gridPattern(40),
923
+ gridFadeTop: () => gridPattern(32, maskTop),
924
+ gridFadeBottom: () => gridPattern(32, maskBottom),
925
+ gridFadeCenter: () => gridPattern(40, maskCenter),
926
+ gridFadeTopLeft: () => gridPattern(32, maskTopLeft),
927
+ gridFadeTopRight: () => gridPattern(32, maskTopRight),
928
+ gridFadeBottomLeft: () => gridPattern(32, maskBottomLeft),
929
+ gridFadeBottomRight: () => gridPattern(32, maskBottomRight),
930
+ gridDotsBasic: () => gridDotsPattern("grid-dots-basic"),
931
+ gridDotsFadeCenter: () => gridDotsPattern("grid-dots-fade-center", maskCenter),
932
+ gradientGlowTop: () => gradientGlow("top"),
933
+ gradientGlowBottom: () => gradientGlow("bottom"),
934
+ spotlightLeft: () => spotlight("left"),
935
+ spotlightRight: () => spotlight("right")
936
+ };
937
+ var inlinePatternStyles = {
938
+ radialGradientTop: {
939
+ background: "radial-gradient(125% 125% at 50% 10%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
940
+ },
941
+ radialGradientBottom: {
942
+ background: "radial-gradient(125% 125% at 50% 90%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
943
+ }
944
+ };
945
+ function PatternBackground({
946
+ pattern,
947
+ opacity = 0.08,
948
+ className,
949
+ style
950
+ }) {
951
+ if (!pattern) {
952
+ return null;
953
+ }
954
+ if (pattern in inlinePatternStyles) {
955
+ const inlineStyle = inlinePatternStyles[pattern];
956
+ return /* @__PURE__ */ jsxRuntime.jsx(
957
+ "div",
844
958
  {
845
- src: imagePlaceholders[7],
846
- alt: "Performance metrics",
847
- className: "my-8 aspect-video w-full rounded-lg object-cover",
848
- optixFlowConfig
959
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
960
+ style: { ...inlineStyle, opacity, ...style },
961
+ "aria-hidden": "true"
849
962
  }
850
- )
851
- ] }),
852
- /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "implementation", children: [
853
- /* @__PURE__ */ jsxRuntime.jsx("h2", { children: "Implementation" }),
854
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Implementing performance optimizations requires a systematic approach. Start by measuring your current performance using tools like Lighthouse, WebPageTest, or Chrome DevTools." }),
855
- /* @__PURE__ */ jsxRuntime.jsx("blockquote", { children: "\u201CYou can't improve what you don't measure.\u201D - Peter Drucker" }),
856
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Once you have baseline metrics, prioritize optimizations based on their potential impact and implementation effort." })
857
- ] }),
858
- /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "performance", children: [
859
- /* @__PURE__ */ jsxRuntime.jsx("h2", { children: "Performance Metrics" }),
860
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Focus on Core Web Vitals: Largest Contentful Paint (LCP), First Input Delay (FID), and Cumulative Layout Shift (CLS). These metrics directly impact user experience and SEO rankings." })
861
- ] }),
862
- /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "summary", children: [
863
- /* @__PURE__ */ jsxRuntime.jsx("h2", { children: "Summary" }),
864
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Performance optimization is an ongoing process, not a one-time task. Continuously monitor your metrics, identify bottlenecks, and iterate on improvements to maintain a fast, responsive application." })
865
- ] })
866
- ] });
963
+ );
964
+ }
965
+ if (pattern in patternOverlays) {
966
+ const Overlay = patternOverlays[pattern];
967
+ return /* @__PURE__ */ jsxRuntime.jsx(
968
+ "div",
969
+ {
970
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
971
+ style: { opacity, ...style },
972
+ "aria-hidden": "true",
973
+ children: Overlay()
974
+ }
975
+ );
976
+ }
977
+ const patternUrl = pattern in patternSvgs ? patternSvgs[pattern] : pattern;
978
+ return /* @__PURE__ */ jsxRuntime.jsx(
979
+ "div",
980
+ {
981
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
982
+ style: {
983
+ backgroundImage: `url(${patternUrl})`,
984
+ backgroundRepeat: "repeat",
985
+ backgroundSize: "auto",
986
+ opacity,
987
+ ...style
988
+ },
989
+ "aria-hidden": "true"
990
+ }
991
+ );
992
+ }
993
+ var backgroundStyles = {
994
+ default: "bg-background text-foreground",
995
+ white: "bg-white text-dark",
996
+ gray: "bg-muted/30 text-foreground",
997
+ dark: "bg-foreground text-background",
998
+ transparent: "bg-transparent text-foreground",
999
+ gradient: "bg-linear-to-br from-primary via-primary/90 to-foreground text-primary-foreground",
1000
+ primary: "bg-primary text-primary-foreground",
1001
+ secondary: "bg-secondary text-secondary-foreground",
1002
+ muted: "bg-muted text-muted-foreground"
1003
+ };
1004
+ var spacingStyles = {
1005
+ none: "py-0 md:py-0",
1006
+ sm: "py-12 md:py-16",
1007
+ md: "py-16 md:py-24",
1008
+ lg: "py-20 md:py-32",
1009
+ xl: "py-24 md:py-40"
1010
+ };
1011
+ var Section = React6__namespace.default.forwardRef(
1012
+ ({
1013
+ id,
1014
+ title,
1015
+ subtitle,
1016
+ children,
1017
+ className,
1018
+ style,
1019
+ background = "default",
1020
+ spacing = "lg",
1021
+ pattern,
1022
+ patternOpacity,
1023
+ patternClassName,
1024
+ containerClassName,
1025
+ containerMaxWidth = "xl",
1026
+ ...props
1027
+ }, ref) => {
1028
+ const effectivePatternOpacity = patternOpacity !== void 0 ? patternOpacity : pattern ? 1 : 0;
1029
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1030
+ "section",
1031
+ {
1032
+ ref,
1033
+ id,
1034
+ className: cn(
1035
+ "relative",
1036
+ pattern ? "overflow-hidden" : null,
1037
+ backgroundStyles[background],
1038
+ spacingStyles[spacing],
1039
+ className
1040
+ ),
1041
+ style,
1042
+ ...props,
1043
+ children: [
1044
+ /* @__PURE__ */ jsxRuntime.jsx(
1045
+ PatternBackground,
1046
+ {
1047
+ pattern,
1048
+ opacity: effectivePatternOpacity,
1049
+ className: patternClassName
1050
+ }
1051
+ ),
1052
+ /* @__PURE__ */ jsxRuntime.jsxs(
1053
+ Container,
1054
+ {
1055
+ maxWidth: containerMaxWidth,
1056
+ className: cn("relative z-10", containerClassName),
1057
+ children: [
1058
+ (title || subtitle) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-12 text-center md:mb-16", children: [
1059
+ subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-sm font-semibold uppercase tracking-wider text-primary", children: subtitle }),
1060
+ title && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", children: title })
1061
+ ] }),
1062
+ children
1063
+ ]
1064
+ }
1065
+ )
1066
+ ]
1067
+ }
1068
+ );
1069
+ }
1070
+ );
1071
+ Section.displayName = "Section";
867
1072
  function ArticleBreadcrumbSocialComponent({
868
1073
  className,
869
1074
  containerClassName,
@@ -898,7 +1103,11 @@ function ArticleBreadcrumbSocialComponent({
898
1103
  children,
899
1104
  enableTocTracking,
900
1105
  enableBackToTop,
901
- optixFlowConfig
1106
+ optixFlowConfig,
1107
+ background,
1108
+ spacing,
1109
+ pattern,
1110
+ patternOpacity
902
1111
  }) {
903
1112
  const author = authorProp ?? (authorName ? { name: authorName, image: authorImage, role: authorRole } : void 0);
904
1113
  const platformLabels = {
@@ -915,11 +1124,11 @@ function ArticleBreadcrumbSocialComponent({
915
1124
  "aria-label": `Share on ${platformLabels[platform] || platform.charAt(0).toUpperCase() + platform.slice(1)}`,
916
1125
  className: void 0
917
1126
  })) : []);
918
- const [activeSection, setActiveSection] = React4__namespace.useState(
1127
+ const [activeSection, setActiveSection] = React6__namespace.useState(
919
1128
  sections?.[0]?.id || ""
920
1129
  );
921
- const [showBackToTop, setShowBackToTop] = React4__namespace.useState(false);
922
- React4__namespace.useEffect(() => {
1130
+ const [showBackToTop, setShowBackToTop] = React6__namespace.useState(false);
1131
+ React6__namespace.useEffect(() => {
923
1132
  if (!enableTocTracking || !sections || sections.length === 0) return;
924
1133
  const observer = new IntersectionObserver(
925
1134
  (entries) => {
@@ -937,7 +1146,7 @@ function ArticleBreadcrumbSocialComponent({
937
1146
  });
938
1147
  return () => observer.disconnect();
939
1148
  }, [sections, enableTocTracking]);
940
- React4__namespace.useEffect(() => {
1149
+ React6__namespace.useEffect(() => {
941
1150
  if (!enableBackToTop) return;
942
1151
  const handleScroll = () => {
943
1152
  setShowBackToTop(window.scrollY > 400);
@@ -945,15 +1154,15 @@ function ArticleBreadcrumbSocialComponent({
945
1154
  window.addEventListener("scroll", handleScroll);
946
1155
  return () => window.removeEventListener("scroll", handleScroll);
947
1156
  }, [enableBackToTop]);
948
- const scrollToTop = React4__namespace.useCallback(() => {
1157
+ const scrollToTop = React6__namespace.useCallback(() => {
949
1158
  window.scrollTo({ top: 0, behavior: "smooth" });
950
1159
  }, []);
951
- const breadcrumbsContent = React4__namespace.useMemo(() => {
1160
+ const breadcrumbsContent = React6__namespace.useMemo(() => {
952
1161
  if (breadcrumbsSlot) return breadcrumbsSlot;
953
1162
  if (!breadcrumbs || breadcrumbs.length === 0) return null;
954
1163
  return /* @__PURE__ */ jsxRuntime.jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(BreadcrumbList, { children: [
955
1164
  /* @__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 }) }) }) }),
956
- breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxRuntime.jsxs(React4__namespace.Fragment, { children: [
1165
+ breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxRuntime.jsxs(React6__namespace.Fragment, { children: [
957
1166
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, {}),
958
1167
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
959
1168
  ] }, index)),
@@ -963,7 +1172,7 @@ function ArticleBreadcrumbSocialComponent({
963
1172
  ] })
964
1173
  ] }) });
965
1174
  }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
966
- const authorContent = React4__namespace.useMemo(() => {
1175
+ const authorContent = React6__namespace.useMemo(() => {
967
1176
  if (authorSlot) return authorSlot;
968
1177
  if (!author) return null;
969
1178
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-6 flex items-center gap-4 not-prose", authorClassName), children: [
@@ -977,7 +1186,7 @@ function ArticleBreadcrumbSocialComponent({
977
1186
  ] })
978
1187
  ] });
979
1188
  }, [authorSlot, author, publishDate, readTime, authorClassName]);
980
- const heroMediaContent = React4__namespace.useMemo(() => {
1189
+ const heroMediaContent = React6__namespace.useMemo(() => {
981
1190
  if (heroMediaSlot) return heroMediaSlot;
982
1191
  if (!heroImageSrc) return null;
983
1192
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -990,7 +1199,7 @@ function ArticleBreadcrumbSocialComponent({
990
1199
  }
991
1200
  );
992
1201
  }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
993
- const tocContent = React4__namespace.useMemo(() => {
1202
+ const tocContent = React6__namespace.useMemo(() => {
994
1203
  if (tocSlot) return tocSlot;
995
1204
  if (!sections || sections.length === 0) return null;
996
1205
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
@@ -998,7 +1207,7 @@ function ArticleBreadcrumbSocialComponent({
998
1207
  /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "space-y-2", children: sections.map((section) => {
999
1208
  const isActive = activeSection === section.id;
1000
1209
  if (renderSectionLink) {
1001
- return /* @__PURE__ */ jsxRuntime.jsx(React4__namespace.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
1210
+ return /* @__PURE__ */ jsxRuntime.jsx(React6__namespace.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
1002
1211
  }
1003
1212
  return /* @__PURE__ */ jsxRuntime.jsx(
1004
1213
  Pressable,
@@ -1015,7 +1224,7 @@ function ArticleBreadcrumbSocialComponent({
1015
1224
  }) })
1016
1225
  ] });
1017
1226
  }, [tocSlot, sections, activeSection, renderSectionLink, tocClassName]);
1018
- const shareButtonsContent = React4__namespace.useMemo(() => {
1227
+ const shareButtonsContent = React6__namespace.useMemo(() => {
1019
1228
  if (shareSlot) return shareSlot;
1020
1229
  if (!socialLinks || socialLinks.length === 0) return null;
1021
1230
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-lg border p-4", shareClassName), children: [
@@ -1035,33 +1244,43 @@ function ArticleBreadcrumbSocialComponent({
1035
1244
  )) })
1036
1245
  ] });
1037
1246
  }, [shareSlot, socialLinks, shareClassName]);
1038
- return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: cn("py-32", className), children: [
1039
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
1040
- breadcrumbsContent,
1041
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,1fr)_280px]", children: [
1042
- /* @__PURE__ */ jsxRuntime.jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
1043
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
1044
- authorContent,
1045
- /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "my-8" }),
1046
- heroMediaContent,
1047
- children || defaultArticleContent(optixFlowConfig)
1247
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1248
+ Section,
1249
+ {
1250
+ background,
1251
+ spacing,
1252
+ pattern,
1253
+ patternOpacity,
1254
+ className,
1255
+ children: [
1256
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
1257
+ breadcrumbsContent,
1258
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,1fr)_280px]", children: [
1259
+ children && /* @__PURE__ */ jsxRuntime.jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
1260
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
1261
+ authorContent,
1262
+ /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "my-8" }),
1263
+ heroMediaContent,
1264
+ children
1265
+ ] }),
1266
+ /* @__PURE__ */ jsxRuntime.jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-8 space-y-6", children: [
1267
+ tocContent,
1268
+ shareButtonsContent
1269
+ ] }) })
1270
+ ] })
1048
1271
  ] }),
1049
- /* @__PURE__ */ jsxRuntime.jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-8 space-y-6", children: [
1050
- tocContent,
1051
- shareButtonsContent
1052
- ] }) })
1053
- ] })
1054
- ] }),
1055
- enableBackToTop && showBackToTop && /* @__PURE__ */ jsxRuntime.jsx(
1056
- "button",
1057
- {
1058
- onClick: scrollToTop,
1059
- className: "fixed bottom-8 right-8 flex h-10 w-10 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg transition-opacity hover:opacity-90",
1060
- "aria-label": "Back to top",
1061
- children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-up", size: 20 })
1062
- }
1063
- )
1064
- ] });
1272
+ enableBackToTop && showBackToTop && /* @__PURE__ */ jsxRuntime.jsx(
1273
+ "button",
1274
+ {
1275
+ onClick: scrollToTop,
1276
+ className: "fixed bottom-8 right-8 flex h-10 w-10 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg transition-opacity hover:opacity-90",
1277
+ "aria-label": "Back to top",
1278
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-up", size: 20 })
1279
+ }
1280
+ )
1281
+ ]
1282
+ }
1283
+ );
1065
1284
  }
1066
1285
 
1067
1286
  exports.ArticleBreadcrumbSocial = ArticleBreadcrumbSocialComponent;