@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,5 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
+ import { f as SectionBackground, g as SectionSpacing } from './community-initiatives-31vhKBa1.js';
4
+ import { P as PatternName } from './pattern-background-a7gKHzHy.js';
3
5
  import { O as OptixFlowConfig } from './blocks-k17uluAz.js';
4
6
  import 'class-variance-authority';
5
7
  import './button-variants-lRElsmTc.js';
@@ -98,7 +100,23 @@ interface ArticleSidebarStickyProps {
98
100
  * OptixFlow image optimization configuration
99
101
  */
100
102
  optixFlowConfig?: OptixFlowConfig;
103
+ /**
104
+ * Background style for the section
105
+ */
106
+ background?: SectionBackground;
107
+ /**
108
+ * Vertical spacing for the section
109
+ */
110
+ spacing?: SectionSpacing;
111
+ /**
112
+ * Background pattern
113
+ */
114
+ pattern?: PatternName;
115
+ /**
116
+ * Pattern opacity (0-1)
117
+ */
118
+ patternOpacity?: number;
101
119
  }
102
- declare function ArticleSidebarStickyComponent({ className, containerClassName, sidebarClassName, articleClassName, titleClassName, authorClassName, heroImageClassName, backLinkClassName, backHref, backText, backIcon, backLinkSlot, title, authorName, authorImage, authorHref, publishDate, authorSlot, heroImageSrc, heroImageAlt, heroMediaSlot, children, optixFlowConfig, }: ArticleSidebarStickyProps): react_jsx_runtime.JSX.Element;
120
+ declare function ArticleSidebarStickyComponent({ className, containerClassName, sidebarClassName, articleClassName, titleClassName, authorClassName, heroImageClassName, backLinkClassName, backHref, backText, backIcon, backLinkSlot, title, authorName, authorImage, authorHref, publishDate, authorSlot, heroImageSrc, heroImageAlt, heroMediaSlot, children, optixFlowConfig, background, spacing, pattern, patternOpacity, }: ArticleSidebarStickyProps): react_jsx_runtime.JSX.Element;
103
121
 
104
122
  export { ArticleSidebarStickyComponent as ArticleSidebarSticky, type ArticleSidebarStickyProps };
@@ -1,10 +1,11 @@
1
1
  "use client";
2
2
  import * as React from 'react';
3
+ import React__default from 'react';
3
4
  import { clsx } from 'clsx';
4
5
  import { twMerge } from 'tailwind-merge';
5
6
  import { Img } from '@page-speed/img';
6
7
  import { cva } from 'class-variance-authority';
7
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
+ import { jsx, jsxs } from 'react/jsx-runtime';
8
9
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
9
10
 
10
11
  // components/blocks/article/article-sidebar-sticky.tsx
@@ -579,147 +580,379 @@ function AvatarFallback({
579
580
  }
580
581
  );
581
582
  }
583
+ var maxWidthStyles = {
584
+ sm: "max-w-screen-sm",
585
+ md: "max-w-screen-md",
586
+ lg: "max-w-screen-lg",
587
+ xl: "max-w-7xl",
588
+ "2xl": "max-w-screen-2xl",
589
+ "4xl": "max-w-[1536px]",
590
+ full: "max-w-full"
591
+ };
592
+ var Container = React__default.forwardRef(
593
+ ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
594
+ const Component = as;
595
+ return /* @__PURE__ */ jsx(
596
+ Component,
597
+ {
598
+ ref,
599
+ className: cn(
600
+ "mx-auto w-full px-2 sm:px-4 lg:px-8",
601
+ maxWidthStyles[maxWidth],
602
+ className
603
+ ),
604
+ ...props,
605
+ children
606
+ }
607
+ );
608
+ }
609
+ );
610
+ Container.displayName = "Container";
582
611
 
583
- // lib/mediaPlaceholders.ts
584
- var imagePlaceholders = [
585
- "https://toastability-production.s3.amazonaws.com/xlp46pzk3a4d73jgjx4s7xdafwpn",
586
- "https://toastability-production.s3.amazonaws.com/g1iuifb3yzoofo9c7a00koyn6q1t",
587
- "https://toastability-production.s3.amazonaws.com/z9u4sdrj2oq3eds0qyui0nxsus3j",
588
- "https://toastability-production.s3.amazonaws.com/63aotyt2pb4gqpccej2kkw8reson",
589
- "https://toastability-production.s3.amazonaws.com/pjgb223h1bjywdk15i3zi7pjhutg",
590
- "https://toastability-production.s3.amazonaws.com/we9r4e711an6d0bd3dwbl9tb9z7q",
591
- "https://toastability-production.s3.amazonaws.com/f8rfrurzo743ym1s7m5xtbombunz",
592
- "https://toastability-production.s3.amazonaws.com/oe0y4bgiylx81fbfvsw31mhdgjzs",
593
- "https://toastability-production.s3.amazonaws.com/sr370c2cnf7uk5k4f6znyshualv0",
594
- "https://toastability-production.s3.amazonaws.com/cen5x90p3kbdafb80liq1a5j222x",
595
- "https://toastability-production.s3.amazonaws.com/ygob90kp07hxmi5jj4sned76dnmc",
596
- "https://toastability-production.s3.amazonaws.com/qhz2kawawq3bbh7nusz3bvahln3v",
597
- "https://toastability-production.s3.amazonaws.com/zykfhuapdqzu94ee1535gsgnvyac",
598
- "https://toastability-production.s3.amazonaws.com/kh1p8y15v55ctp5ulobm4pd77etm",
599
- "https://toastability-production.s3.amazonaws.com/8x62o6350p1ejm3pjrp1jwvcbh4v",
600
- "https://toastability-production.s3.amazonaws.com/vvixyoo7ybq3h04q2q0kact0s5wc",
601
- "https://toastability-production.s3.amazonaws.com/t502cfynqso7ntkdvmcmfc87yjkt",
602
- "https://toastability-production.s3.amazonaws.com/ihgx63s5nfzp2e93e3ccljjnnrov",
603
- "https://toastability-production.s3.amazonaws.com/b555hwjt7ltr81et05v5254q1ak6",
604
- "https://toastability-production.s3.amazonaws.com/c4sgsy0g7o2rrjmvm9x7evxems82",
605
- "https://toastability-production.s3.amazonaws.com/a3m42usevv0iet0fpfwa1fsytxmv",
606
- "https://toastability-production.s3.amazonaws.com/qghzqu1i99vaubyew9s5dxcbel9l",
607
- "https://toastability-production.s3.amazonaws.com/9covpitzpuuobkg1m4mfokpi0enw",
608
- "https://toastability-production.s3.amazonaws.com/2d4k8d5shwg82276hzj2ztbj7mxq",
609
- "https://toastability-production.s3.amazonaws.com/op92dycs7w856e2jsvx20st0nyz9",
610
- "https://toastability-production.s3.amazonaws.com/f921uoblxbv8f9bmr4s2ik7xxugl",
611
- "https://toastability-production.s3.amazonaws.com/gl7n7p6atndufbsm6q2ac5jeqttp",
612
- "https://toastability-production.s3.amazonaws.com/sj8cs2gpbanaowqwxar1uhhwd23z",
613
- "https://toastability-production.s3.amazonaws.com/hu4gmd93sp95wdyr9qijze0rgim9",
614
- "https://toastability-production.s3.amazonaws.com/uh2vd59np82h8sevbmfnsha89sf1",
615
- "https://toastability-production.s3.amazonaws.com/gxs6zevccphti0hdq5l9fwytprpr",
616
- "https://toastability-production.s3.amazonaws.com/s4vho0wfbjhf758oife8qfuekou8",
617
- "https://toastability-production.s3.amazonaws.com/1b0gd8ul22q799d62dvm3sgyll85",
618
- "https://toastability-production.s3.amazonaws.com/102grjqg8aigxkj585s9x3xbxfv7",
619
- "https://toastability-production.s3.amazonaws.com/dvz0441h9fxjhh88lzqbwdoyxv52",
620
- "https://toastability-production.s3.amazonaws.com/50y066ms7rb5sw62u9u08jzkk8rj",
621
- "https://toastability-production.s3.amazonaws.com/9uxe0jw1zl1tujy0m5yalo7m2ht8",
622
- "https://toastability-production.s3.amazonaws.com/cyhcpla6me8vs936i3fw6wbhypi2",
623
- "https://toastability-production.s3.amazonaws.com/6ntdz6xwid3fswjz8y0otdxmzs40",
624
- "https://toastability-production.s3.amazonaws.com/y1aezpa78m2fhfvj8whcx337y9cb",
625
- "https://toastability-production.s3.amazonaws.com/eoa76d31ynbg34urr6e4619la1f7",
626
- "https://toastability-production.s3.amazonaws.com/0mh8a1dg7ftcqnyzgv303u501c8y",
627
- "https://toastability-production.s3.amazonaws.com/vvucxqs128w2d0z3n4s2z131rq7p",
628
- "https://toastability-production.s3.amazonaws.com/2rbqbw9778770i8izdeabx8v2w2k",
629
- "https://toastability-production.s3.amazonaws.com/90rcw2mljzpeuxlac8q77mor15xz",
630
- "https://toastability-production.s3.amazonaws.com/vh1aowwr93yz4qrzct2s4je0cxdo",
631
- "https://toastability-production.s3.amazonaws.com/ssgb7unxdwdqokfvhkp7cok2v79s",
632
- "https://toastability-production.s3.amazonaws.com/vvkma6b8whdkiq5nq8z4eyfe00vo",
633
- "https://toastability-production.s3.amazonaws.com/9797jh6slgbf9oq6lzlimcdiuziv",
634
- "https://toastability-production.s3.amazonaws.com/betxbx61fkijt0aygineplf489ze",
635
- "https://toastability-production.s3.amazonaws.com/0o6d7z4mm9nzeufhv9kefrhihbip",
636
- "https://toastability-production.s3.amazonaws.com/1xdx70c7gp9l883soyh5d3exesvt",
637
- "https://toastability-production.s3.amazonaws.com/jhjfvkmdzktacyijd9fh6acc7o2c",
638
- "https://toastability-production.s3.amazonaws.com/n001o4pfpszmyw03ubctig7kvf0e",
639
- "https://toastability-production.s3.amazonaws.com/l080sx0lcx51x44dqrb8006nqf08",
640
- "https://toastability-production.s3.amazonaws.com/2t36c7l0ywchaz4nys8yj2l5amae",
641
- "https://toastability-production.s3.amazonaws.com/gg5qnvb4nsl2k3g4dw4ls8bsllwh",
642
- "https://toastability-production.s3.amazonaws.com/3nqc7xvjy3e8d7jo1gdvbzty0oqg",
643
- "https://toastability-production.s3.amazonaws.com/0kx9umbfmv881wt9dfqnohv8efgi",
644
- "https://toastability-production.s3.amazonaws.com/9z0sbfnskx70vse99e3dfhper7i1",
645
- "https://toastability-production.s3.amazonaws.com/9keidwrag6g7jtqr7rdwb1ryt6ht",
646
- "https://toastability-production.s3.amazonaws.com/zm88vf14geh1gh0frd3yrdlb6pl8",
647
- "https://toastability-production.s3.amazonaws.com/0x7ktdk01jfaoysst0emzvqevu19",
648
- "https://toastability-production.s3.amazonaws.com/e83zsyvl0an0owzdmpwjnnty641x",
649
- "https://toastability-production.s3.amazonaws.com/t3k42fbzq7r7j93feldqm5cj1o1n",
650
- "https://toastability-production.s3.amazonaws.com/5sm6wc4no8fyzxfki5njmnv6gql5",
651
- "https://toastability-production.s3.amazonaws.com/w41h7890eivogu3sr78vlwkpzz8g",
652
- "https://toastability-production.s3.amazonaws.com/vrezhtksoqbw1nyo4hwnoqizrus5",
653
- "https://toastability-production.s3.amazonaws.com/8qkikcd43paeqgvw9gc1032j3yup",
654
- "https://toastability-production.s3.amazonaws.com/ihhq8unynafk4aikmys3rhbfibaz",
655
- "https://toastability-production.s3.amazonaws.com/rews5enr9ynu6izioj66s8ec90nc",
656
- "https://toastability-production.s3.amazonaws.com/6ku135fhv528eei3agnoc3zd7y75",
657
- "https://toastability-production.s3.amazonaws.com/x4scuzhsozrwrg703df5wbhygkgo",
658
- "https://toastability-production.s3.amazonaws.com/73e0s79u4crdu7cmjfp99j1l2v55",
659
- "https://toastability-production.s3.amazonaws.com/rddfyzvfpdlbzwhgep2myppwxn05",
660
- "https://toastability-production.s3.amazonaws.com/mat88x8zzdek7wpgtocjrehfivsh",
661
- "https://toastability-production.s3.amazonaws.com/3vwfdbekbkskxj2mvlvu85fz787u",
662
- "https://toastability-production.s3.amazonaws.com/ms4s4zyqpmboh0slez1cwat9qhw4",
663
- "https://toastability-production.s3.amazonaws.com/5jsc0b4e3gxnjs81iotw2c3e6da3",
664
- "https://toastability-production.s3.amazonaws.com/0g6t701zqr2r7najmdgftpeqnxmz",
665
- "https://toastability-production.s3.amazonaws.com/u3p1hlbm2c1vvkwlm8h668pe132z",
666
- "https://toastability-production.s3.amazonaws.com/ehgbcugs782765ke1l2dtbtzd918",
667
- "https://toastability-production.s3.amazonaws.com/kka8f550on7acx1lf82xleu6zhzo",
668
- "https://toastability-production.s3.amazonaws.com/67fnapqepn7f8vwt0x4nqho70hbz",
669
- "https://toastability-production.s3.amazonaws.com/t4cidbsfz3z468bn45yqdrkbx7ou",
670
- "https://toastability-production.s3.amazonaws.com/gq3c9qalkiomu0rzdzxymkdaazdu",
671
- "https://toastability-production.s3.amazonaws.com/9ujya2tfhxja7y5s9wb7d2u8crhd",
672
- "https://toastability-production.s3.amazonaws.com/hotlo54tsvl2k3eht9gg0460l9zw",
673
- "https://toastability-production.s3.amazonaws.com/ytbyjrcvrghc7wl6w1g7g8fwka22",
674
- "https://toastability-production.s3.amazonaws.com/uv0g605yf5mz106nrm1uspt9l0rr",
675
- "https://toastability-production.s3.amazonaws.com/yrp5k5xszwpe26fquupey6a6g0uu",
676
- "https://toastability-production.s3.amazonaws.com/97gctpna2hdozl1f8u5xq4ew8h0o",
677
- "https://toastability-production.s3.amazonaws.com/xjtepune0scj9yjkkqgaiwlq9hls",
678
- "https://toastability-production.s3.amazonaws.com/g607vblaarqctl1cvgxffhx4pw6g",
679
- "https://toastability-production.s3.amazonaws.com/4xpu1ljr9c8g6qzmfum5ygjzbzpb",
680
- "https://toastability-production.s3.amazonaws.com/yw5f7iwyypf4kctpr5ye5e495swt",
681
- "https://toastability-production.s3.amazonaws.com/z37cidvud212bzqhhalrhvk7ipaa",
682
- "https://toastability-production.s3.amazonaws.com/pfllskt7q7144l288lrnpc6gx606",
683
- "https://toastability-production.s3.amazonaws.com/fokd3hxzvdtsomagbfhqooyvndyv",
684
- "https://toastability-production.s3.amazonaws.com/6fffnb4phovtqkjhtzifs4rhb84u",
685
- "https://toastability-production.s3.amazonaws.com/mt87xjr79wxdhjy7496v3r6m2m9t",
686
- "https://toastability-production.s3.amazonaws.com/3dy9ge962uarlaf2xl7imdcviqgx",
687
- "https://toastability-production.s3.amazonaws.com/okf6fg4n9yv59up8ivgcdjy3w030",
688
- "https://toastability-production.s3.amazonaws.com/t7iteqw4xhtppkiws88bsoia25hv",
689
- "https://toastability-production.s3.amazonaws.com/klr5tuvulkyqfb721txtu4hgzxdm",
690
- "https://toastability-production.s3.amazonaws.com/9eddibiq5ovc9cvs3ekijkrjpahg",
691
- "https://toastability-production.s3.amazonaws.com/3ghn8dz3g9qtt4pf4nwbriaydvzb",
692
- "https://toastability-production.s3.amazonaws.com/82ykd8s8boiqaxypkulb0v0s2qiw",
693
- "https://toastability-production.s3.amazonaws.com/4eqmdeanxfk6jzvigo42y5ryv2c8",
694
- "https://toastability-production.s3.amazonaws.com/9ughnl9wnko2vdboib8n3wl3cxsy",
695
- "https://toastability-production.s3.amazonaws.com/4xjcgtlwseruezhoh3o1ga4umhj4",
696
- "https://toastability-production.s3.amazonaws.com/xwh1zzxgyd887thfm1j9lu9qnd6c",
697
- "https://toastability-production.s3.amazonaws.com/ri0dqx79spe6771np76mkmno5xfd",
698
- "https://toastability-production.s3.amazonaws.com/e13qu3083lkhdg7th64vb628172a",
699
- "https://toastability-production.s3.amazonaws.com/w87w0fyjdol9yzwo7yywkgxidvzo"
700
- ];
701
- var defaultArticleContent = (optixFlowConfig) => /* @__PURE__ */ jsxs(Fragment, { children: [
702
- /* @__PURE__ */ jsx("p", { className: "lead", children: "In the ever-evolving landscape of web development, staying current with best practices and emerging technologies is crucial for building exceptional digital experiences." }),
703
- /* @__PURE__ */ jsx("h2", { children: "Understanding the Fundamentals" }),
704
- /* @__PURE__ */ jsx("p", { children: "Before diving into advanced concepts, it's essential to have a solid grasp of the fundamentals. HTML, CSS, and JavaScript form the backbone of web development, and mastering these technologies opens doors to more complex frameworks and tools." }),
705
- /* @__PURE__ */ jsx("p", { children: "Modern web development has evolved significantly over the past decade. What once required extensive server-side rendering can now be accomplished with client-side frameworks that offer improved performance and user experience." }),
706
- /* @__PURE__ */ jsx("h2", { children: "The Rise of Component-Based Architecture" }),
707
- /* @__PURE__ */ jsx("p", { children: "Component-based architecture has revolutionized how we build web applications. By breaking down interfaces into reusable, self-contained components, developers can create more maintainable and scalable codebases." }),
708
- /* @__PURE__ */ jsx("blockquote", { children: "\u201CThe best code is no code at all. Every new line of code you willingly bring into the world is code that has to be debugged, code that has to be read and understood.\u201D" }),
709
- /* @__PURE__ */ jsx("h2", { children: "Performance Optimization" }),
710
- /* @__PURE__ */ jsx("p", { children: "Performance is no longer optional\u2014it's a critical factor in user experience and search engine rankings. Techniques like code splitting, lazy loading, and image optimization have become standard practices in modern web development." }),
711
- /* @__PURE__ */ jsx(
712
- Img,
612
+ // lib/patternSvgs.ts
613
+ var patternSvgs = {
614
+ squareAltGrid: "https://cdn.ing/assets/files/record/286187/4gpn0yq2ptra8iwlvmwwv860ggwv",
615
+ grid1: "https://cdn.ing/assets/files/record/286186/nbdflpgp4ostrno079hygibsflp3",
616
+ noise: "https://cdn.ing/assets/i/r/286188/zrqcp9hynh3j7p2laihwzfbujgrl/noise.png",
617
+ dots: "https://cdn.ing/assets/files/record/286198/yfsjx9thvtxzhl2qtshxyhkrm524",
618
+ dotPattern: "https://cdn.ing/assets/files/record/286192/7ig0cku8aqbboiza8nuk6hw0nnsr",
619
+ dotPattern2: "https://cdn.ing/assets/files/record/286189/arez6gd2s7isn9i1o6c7sexdq7bl",
620
+ circles: "https://cdn.ing/assets/files/record/286190/gtmia3sncjtzetdshc20zf1d3c17",
621
+ waves: "https://cdn.ing/assets/files/record/286191/mqlb33fzxz9cdth1bx7if0wmpkp1",
622
+ crossPattern: "https://cdn.ing/assets/files/record/286193/9yfqwdbnqaipbp7fsb3wbzzmq472",
623
+ architect: "https://cdn.ing/assets/files/record/286194/vgs88ugpvyhxu13wqgy0acvae6re",
624
+ tinyCheckers: "https://cdn.ing/assets/files/record/286195/65efaknsw8kcpf9o3c2gybytsl5b",
625
+ p6: "https://cdn.ing/assets/i/r/286196/6kl0rqnd6mjk8j7e525fo8fo0vkc/p6.webp"
626
+ };
627
+ var maskTop = "radial-gradient(ellipse 70% 60% at 50% 0%, #000 60%, transparent 100%)";
628
+ var maskBottom = "radial-gradient(ellipse 100% 80% at 50% 100%, #000 50%, transparent 90%)";
629
+ var maskCenter = "radial-gradient(ellipse 60% 60% at 50% 50%, #000 30%, transparent 70%)";
630
+ var maskTopLeft = "radial-gradient(ellipse 80% 80% at 0% 0%, #000 50%, transparent 90%)";
631
+ var maskTopRight = "radial-gradient(ellipse 80% 80% at 100% 0%, #000 50%, transparent 90%)";
632
+ var maskBottomLeft = "radial-gradient(ellipse 80% 80% at 0% 100%, #000 50%, transparent 90%)";
633
+ var maskBottomRight = "radial-gradient(ellipse 80% 80% at 100% 100%, #000 50%, transparent 90%)";
634
+ var circuitBoardPattern = (id, mask) => /* @__PURE__ */ jsxs(
635
+ "svg",
636
+ {
637
+ className: "h-full w-full",
638
+ xmlns: "http://www.w3.org/2000/svg",
639
+ style: mask ? {
640
+ maskImage: mask,
641
+ WebkitMaskImage: mask
642
+ } : void 0,
643
+ children: [
644
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
645
+ "pattern",
646
+ {
647
+ id,
648
+ x: "0",
649
+ y: "0",
650
+ width: "100",
651
+ height: "100",
652
+ patternUnits: "userSpaceOnUse",
653
+ children: [
654
+ /* @__PURE__ */ jsx(
655
+ "path",
656
+ {
657
+ d: "M0 50h40M60 50h40M50 0v40M50 60v40",
658
+ stroke: "hsl(var(--muted))",
659
+ strokeWidth: "1",
660
+ fill: "none"
661
+ }
662
+ ),
663
+ /* @__PURE__ */ jsx("circle", { cx: "50", cy: "50", r: "3", fill: "hsl(var(--muted))" }),
664
+ /* @__PURE__ */ jsx("circle", { cx: "0", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
665
+ /* @__PURE__ */ jsx("circle", { cx: "100", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
666
+ /* @__PURE__ */ jsx("circle", { cx: "50", cy: "0", r: "2", fill: "hsl(var(--muted))" }),
667
+ /* @__PURE__ */ jsx("circle", { cx: "50", cy: "100", r: "2", fill: "hsl(var(--muted))" })
668
+ ]
669
+ }
670
+ ) }),
671
+ /* @__PURE__ */ jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
672
+ ]
673
+ }
674
+ );
675
+ var gridDotsPattern = (id, mask) => /* @__PURE__ */ jsxs(
676
+ "svg",
677
+ {
678
+ className: "h-full w-full",
679
+ xmlns: "http://www.w3.org/2000/svg",
680
+ style: mask ? {
681
+ maskImage: mask,
682
+ WebkitMaskImage: mask
683
+ } : void 0,
684
+ children: [
685
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
686
+ "pattern",
687
+ {
688
+ id,
689
+ x: "0",
690
+ y: "0",
691
+ width: "40",
692
+ height: "40",
693
+ patternUnits: "userSpaceOnUse",
694
+ children: [
695
+ /* @__PURE__ */ jsx(
696
+ "path",
697
+ {
698
+ d: "M0 20h40M20 0v40",
699
+ stroke: "hsl(var(--muted))",
700
+ strokeWidth: "0.5",
701
+ fill: "none"
702
+ }
703
+ ),
704
+ /* @__PURE__ */ jsx("circle", { cx: "20", cy: "20", r: "2", fill: "hsl(var(--muted))" })
705
+ ]
706
+ }
707
+ ) }),
708
+ /* @__PURE__ */ jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
709
+ ]
710
+ }
711
+ );
712
+ var gridPattern = (size, mask) => /* @__PURE__ */ jsx(
713
+ "div",
714
+ {
715
+ 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)]",
716
+ style: {
717
+ backgroundSize: `${size}px ${size}px`,
718
+ ...mask ? {
719
+ maskImage: mask,
720
+ WebkitMaskImage: mask
721
+ } : {}
722
+ }
723
+ }
724
+ );
725
+ var diagonalCrossPattern = (mask) => /* @__PURE__ */ jsx(
726
+ "div",
727
+ {
728
+ className: "h-full w-full",
729
+ style: {
730
+ 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)",
731
+ ...mask ? {
732
+ maskImage: mask,
733
+ WebkitMaskImage: mask
734
+ } : {}
735
+ }
736
+ }
737
+ );
738
+ 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)";
739
+ var dashedGridPattern = (fadeMask) => {
740
+ const mask = fadeMask ? `${dashedGridMaskBase}, ${fadeMask}` : dashedGridMaskBase;
741
+ return /* @__PURE__ */ jsx(
742
+ "div",
713
743
  {
714
- src: imagePlaceholders[3],
715
- alt: "Performance optimization illustration",
716
- className: "my-8 aspect-video w-full rounded-lg object-cover",
717
- optixFlowConfig
744
+ className: "h-full w-full",
745
+ style: {
746
+ backgroundImage: "linear-gradient(to right, hsl(var(--muted)) 1px, transparent 1px), linear-gradient(to bottom, hsl(var(--muted)) 1px, transparent 1px)",
747
+ backgroundSize: "20px 20px",
748
+ backgroundPosition: "0 0, 0 0",
749
+ maskImage: mask,
750
+ WebkitMaskImage: mask,
751
+ maskComposite: "intersect",
752
+ WebkitMaskComposite: "source-in"
753
+ }
754
+ }
755
+ );
756
+ };
757
+ var gradientGlow = (position) => /* @__PURE__ */ jsx(
758
+ "div",
759
+ {
760
+ className: cn(
761
+ "pointer-events-none absolute left-1/2 z-0 aspect-square w-3/4 -translate-x-1/2 rounded-full opacity-50 blur-3xl",
762
+ position === "top" ? "-top-1/4" : "-bottom-1/4"
763
+ ),
764
+ style: {
765
+ background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
766
+ }
767
+ }
768
+ );
769
+ var spotlight = (position) => /* @__PURE__ */ jsx(
770
+ "div",
771
+ {
772
+ className: cn(
773
+ "pointer-events-none absolute top-1/2 z-0 aspect-square w-3/4 -translate-y-1/2 rounded-full opacity-40 blur-3xl",
774
+ position === "left" ? "-left-1/4" : "-right-1/4"
775
+ ),
776
+ style: {
777
+ background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
718
778
  }
719
- ),
720
- /* @__PURE__ */ jsx("h2", { children: "Looking Ahead" }),
721
- /* @__PURE__ */ jsx("p", { children: "The future of web development is exciting, with emerging technologies like WebAssembly, Edge Computing, and AI-powered development tools reshaping how we build for the web. Staying curious and continuously learning will be key to thriving in this dynamic field." })
722
- ] });
779
+ }
780
+ );
781
+ var patternOverlays = {
782
+ circuitBoardBasic: () => circuitBoardPattern("circuit-board-basic"),
783
+ circuitBoardFadeTop: () => circuitBoardPattern("circuit-board-fade-top", maskTop),
784
+ circuitBoardFadeBottom: () => circuitBoardPattern("circuit-board-fade-bottom", maskBottom),
785
+ circuitBoardFadeCenter: () => circuitBoardPattern("circuit-board-fade-center", maskCenter),
786
+ circuitBoardFadeTopLeft: () => circuitBoardPattern("circuit-board-fade-top-left", maskTopLeft),
787
+ circuitBoardFadeTopRight: () => circuitBoardPattern("circuit-board-fade-top-right", maskTopRight),
788
+ circuitBoardFadeBottomLeft: () => circuitBoardPattern("circuit-board-fade-bottom-left", maskBottomLeft),
789
+ circuitBoardFadeBottomRight: () => circuitBoardPattern("circuit-board-fade-bottom-right", maskBottomRight),
790
+ dashedGridBasic: () => dashedGridPattern(),
791
+ dashedGridFadeTop: () => dashedGridPattern(maskTop),
792
+ dashedGridFadeBottom: () => dashedGridPattern(maskBottom),
793
+ dashedGridFadeCenter: () => dashedGridPattern(maskCenter),
794
+ dashedGridFadeTopLeft: () => dashedGridPattern(maskTopLeft),
795
+ dashedGridFadeTopRight: () => dashedGridPattern(maskTopRight),
796
+ dashedGridFadeBottomLeft: () => dashedGridPattern(maskBottomLeft),
797
+ dashedGridFadeBottomRight: () => dashedGridPattern(maskBottomRight),
798
+ diagonalCrossBasic: () => diagonalCrossPattern(),
799
+ diagonalCrossFadeTop: () => diagonalCrossPattern(maskTop),
800
+ diagonalCrossFadeBottom: () => diagonalCrossPattern(maskBottom),
801
+ diagonalCrossFadeCenter: () => diagonalCrossPattern(maskCenter),
802
+ diagonalCrossFadeTopLeft: () => diagonalCrossPattern(maskTopLeft),
803
+ diagonalCrossFadeTopRight: () => diagonalCrossPattern(maskTopRight),
804
+ diagonalCrossFadeBottomLeft: () => diagonalCrossPattern(maskBottomLeft),
805
+ diagonalCrossFadeBottomRight: () => diagonalCrossPattern(maskBottomRight),
806
+ gridBasic: () => gridPattern(40),
807
+ gridFadeTop: () => gridPattern(32, maskTop),
808
+ gridFadeBottom: () => gridPattern(32, maskBottom),
809
+ gridFadeCenter: () => gridPattern(40, maskCenter),
810
+ gridFadeTopLeft: () => gridPattern(32, maskTopLeft),
811
+ gridFadeTopRight: () => gridPattern(32, maskTopRight),
812
+ gridFadeBottomLeft: () => gridPattern(32, maskBottomLeft),
813
+ gridFadeBottomRight: () => gridPattern(32, maskBottomRight),
814
+ gridDotsBasic: () => gridDotsPattern("grid-dots-basic"),
815
+ gridDotsFadeCenter: () => gridDotsPattern("grid-dots-fade-center", maskCenter),
816
+ gradientGlowTop: () => gradientGlow("top"),
817
+ gradientGlowBottom: () => gradientGlow("bottom"),
818
+ spotlightLeft: () => spotlight("left"),
819
+ spotlightRight: () => spotlight("right")
820
+ };
821
+ var inlinePatternStyles = {
822
+ radialGradientTop: {
823
+ background: "radial-gradient(125% 125% at 50% 10%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
824
+ },
825
+ radialGradientBottom: {
826
+ background: "radial-gradient(125% 125% at 50% 90%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
827
+ }
828
+ };
829
+ function PatternBackground({
830
+ pattern,
831
+ opacity = 0.08,
832
+ className,
833
+ style
834
+ }) {
835
+ if (!pattern) {
836
+ return null;
837
+ }
838
+ if (pattern in inlinePatternStyles) {
839
+ const inlineStyle = inlinePatternStyles[pattern];
840
+ return /* @__PURE__ */ jsx(
841
+ "div",
842
+ {
843
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
844
+ style: { ...inlineStyle, opacity, ...style },
845
+ "aria-hidden": "true"
846
+ }
847
+ );
848
+ }
849
+ if (pattern in patternOverlays) {
850
+ const Overlay = patternOverlays[pattern];
851
+ return /* @__PURE__ */ jsx(
852
+ "div",
853
+ {
854
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
855
+ style: { opacity, ...style },
856
+ "aria-hidden": "true",
857
+ children: Overlay()
858
+ }
859
+ );
860
+ }
861
+ const patternUrl = pattern in patternSvgs ? patternSvgs[pattern] : pattern;
862
+ return /* @__PURE__ */ jsx(
863
+ "div",
864
+ {
865
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
866
+ style: {
867
+ backgroundImage: `url(${patternUrl})`,
868
+ backgroundRepeat: "repeat",
869
+ backgroundSize: "auto",
870
+ opacity,
871
+ ...style
872
+ },
873
+ "aria-hidden": "true"
874
+ }
875
+ );
876
+ }
877
+ var backgroundStyles = {
878
+ default: "bg-background text-foreground",
879
+ white: "bg-white text-dark",
880
+ gray: "bg-muted/30 text-foreground",
881
+ dark: "bg-foreground text-background",
882
+ transparent: "bg-transparent text-foreground",
883
+ gradient: "bg-linear-to-br from-primary via-primary/90 to-foreground text-primary-foreground",
884
+ primary: "bg-primary text-primary-foreground",
885
+ secondary: "bg-secondary text-secondary-foreground",
886
+ muted: "bg-muted text-muted-foreground"
887
+ };
888
+ var spacingStyles = {
889
+ none: "py-0 md:py-0",
890
+ sm: "py-12 md:py-16",
891
+ md: "py-16 md:py-24",
892
+ lg: "py-20 md:py-32",
893
+ xl: "py-24 md:py-40"
894
+ };
895
+ var Section = React__default.forwardRef(
896
+ ({
897
+ id,
898
+ title,
899
+ subtitle,
900
+ children,
901
+ className,
902
+ style,
903
+ background = "default",
904
+ spacing = "lg",
905
+ pattern,
906
+ patternOpacity,
907
+ patternClassName,
908
+ containerClassName,
909
+ containerMaxWidth = "xl",
910
+ ...props
911
+ }, ref) => {
912
+ const effectivePatternOpacity = patternOpacity !== void 0 ? patternOpacity : pattern ? 1 : 0;
913
+ return /* @__PURE__ */ jsxs(
914
+ "section",
915
+ {
916
+ ref,
917
+ id,
918
+ className: cn(
919
+ "relative",
920
+ pattern ? "overflow-hidden" : null,
921
+ backgroundStyles[background],
922
+ spacingStyles[spacing],
923
+ className
924
+ ),
925
+ style,
926
+ ...props,
927
+ children: [
928
+ /* @__PURE__ */ jsx(
929
+ PatternBackground,
930
+ {
931
+ pattern,
932
+ opacity: effectivePatternOpacity,
933
+ className: patternClassName
934
+ }
935
+ ),
936
+ /* @__PURE__ */ jsxs(
937
+ Container,
938
+ {
939
+ maxWidth: containerMaxWidth,
940
+ className: cn("relative z-10", containerClassName),
941
+ children: [
942
+ (title || subtitle) && /* @__PURE__ */ jsxs("div", { className: "mb-12 text-center md:mb-16", children: [
943
+ subtitle && /* @__PURE__ */ jsx("p", { className: "mb-2 text-sm font-semibold uppercase tracking-wider text-primary", children: subtitle }),
944
+ title && /* @__PURE__ */ jsx("h2", { className: "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", children: title })
945
+ ] }),
946
+ children
947
+ ]
948
+ }
949
+ )
950
+ ]
951
+ }
952
+ );
953
+ }
954
+ );
955
+ Section.displayName = "Section";
723
956
  function ArticleSidebarStickyComponent({
724
957
  className,
725
958
  containerClassName,
@@ -743,7 +976,11 @@ function ArticleSidebarStickyComponent({
743
976
  heroImageAlt,
744
977
  heroMediaSlot,
745
978
  children,
746
- optixFlowConfig
979
+ optixFlowConfig,
980
+ background,
981
+ spacing,
982
+ pattern,
983
+ patternOpacity
747
984
  }) {
748
985
  const backLinkContent = React.useMemo(() => {
749
986
  if (backLinkSlot) return backLinkSlot;
@@ -788,19 +1025,29 @@ function ArticleSidebarStickyComponent({
788
1025
  }
789
1026
  );
790
1027
  }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
791
- return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-[1fr_minmax(0,2fr)]", children: [
792
- /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: "sticky top-8 space-y-6", children: [
793
- backLinkContent,
794
- /* @__PURE__ */ jsx("div", { className: "space-y-4", children: renderAuthor(false) })
795
- ] }) }),
796
- /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
797
- /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: backLinkContent }),
798
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
799
- /* @__PURE__ */ jsx("div", { className: "mt-4 lg:hidden", children: renderAuthor(true) }),
800
- heroMediaContent,
801
- children || defaultArticleContent(optixFlowConfig)
802
- ] })
803
- ] }) }) });
1028
+ return /* @__PURE__ */ jsx(
1029
+ Section,
1030
+ {
1031
+ background,
1032
+ spacing,
1033
+ pattern,
1034
+ patternOpacity,
1035
+ className,
1036
+ children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-[1fr_minmax(0,2fr)]", children: [
1037
+ /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: "sticky top-8 space-y-6", children: [
1038
+ backLinkContent,
1039
+ /* @__PURE__ */ jsx("div", { className: "space-y-4", children: renderAuthor(false) })
1040
+ ] }) }),
1041
+ /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
1042
+ /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: backLinkContent }),
1043
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
1044
+ /* @__PURE__ */ jsx("div", { className: "mt-4 lg:hidden", children: renderAuthor(true) }),
1045
+ heroMediaContent,
1046
+ children
1047
+ ] })
1048
+ ] }) })
1049
+ }
1050
+ );
804
1051
  }
805
1052
 
806
1053
  export { ArticleSidebarStickyComponent as ArticleSidebarSticky };